quarta-feira, 28 de janeiro de 2015

Skype com tradução em tempo real está em fase de testes

Recentemente o Skype anunciou que irá selecionar uma série de usuários para testar sua nova ferramenta de traduções de idiomas em tempo real. A versão que será disponibilizada para testes por enquanto só vai funcionar com o Windows 8.1 e com o Windows 10 Developer Preview.
Segundo o Skype, após a fase de testes, serão lançadas versões para o Windows, Android, iOS, OSX e Windows Phone.
O Skype Translator, fará a tradução em tempo real, identificando o idioma de um determinado usuário traduzindo a mensagem para o idioma de um outro usuário. Recentemente em um evento da Microsoft, o britânico Steve Clayton conversou com sua colega Melanie Schoebel. Ele falava em inglês e ela em alemão e embora tenham ocorrido algumas falhas, que geraram boas gargalhadas, as traduções ocorreram de forma bem eficiente.
A versão final, promete ser compatível com 45 idiomas, atualmente a versão de testes já possui suporte para 12 idiomas incluindo o português.
Quem tiver interesse de participar dos testes, tem que acessar o site do Skype e preencher um cadastro com informações sobre qual sistema operacional utiliza e qual idioma pretende teste. A utilização da ferramenta estará sob aprovação da Microsoft, quem for aprovado, receberá um e-mail com as informações necessárias para o download.
A expectativa da Microsoft é que o Skype Translator seja lançado para os demais usuários em breve.

Hortonworks obtém certificação no Google Cloud Platform

Recentemente a Horthonworks anunciou que sua solução para Big Data o Hortonworks Data Plataform (HDP) está certificado no Google Cloud Platform.
A partir de agora, o Hortonworks Data Plataform poderá ser utilizado com a infraestrutura de nuvem da Google, utilizando os recursos do Google Compute Engine e Google Cloud Platform para armazenar, pesquisar e analisar gigantescos conjuntos de dados.
Um conjunto de conectores nativos da Google forma disponibilizados permitindo a execução de códigos no Hadoop através de tarefas MapReduce, Hadoop Streaming, Pig, Hive entre outros, permitindo o acesso direto de dados armazenados no Google Cloud Storage, Google BigQuery e Google Cloud Datastore.
Maiores informações sobre como utilizar o Hadoop na infraestrutura da nuvem da Google, podem ser encontradas na página da Google Cloud Platform.

O Apache Software Foundation anuncia o Apache Drill como um projeto Top-Level

A Apache Software Foundation (ASF) anunciou o Apache Drill como um projeto de alto-nível (top-level project), o que demonstra a maturidade do projeto. Esse anúncio representa um enorme passo para toda a comunidade envolvida com o desenvolvimento do projeto.
O Apache Drill permite a execução de consultas sobre arquivos auto-descritivos ou semi-estruturados como, por exemplo, os formatos JSON, Parquet, HBase suportanto ainda o padrão ANSI SQL. Essa compatibilidade é extremamente benéfica a todos os desenvolvedores que já possuem conhecimentos de SQL, diminuindo sua curva de aprendizado.
Junto com a graduação foi lançada uma nova versão do Apache Drill (0.7) com diversas correções e novas funcionalidades (foram fechados 228 bugs). As principais melhorias e novas funcionalidades:
  • Suporte ao Hive 0.13.
  • Melhoria de desempenho em consultas realizadas em tabelas Hive usando o operador Like.
  • Melhor gerenciamento de memória.
  • Melhorias relacionadas com as conexões ODBC e JDBC.
  • O Apache Drill a partir de agora não possui dependência direta do UDP multicast possibilitando assim o trabalho com a EC2 e com clusters com várias sub-redes ou configurações com hospedagem múltipla.
A relação completa de todas as melhorias podem ser obtidas através das notas de lançamento relacionadas com esta nova versão.

Novas características implementadas no Hadoop 2.6.0

Com a chegada do Hadoop 2.6.0, agora é possível através do Hadoop File System (HDFS), implementar heterogêneas formas de armazenamento através da utilização de SSD e camadas de memória. Também a partir desta versão, é possível fazer atualizações de aplicações sem a necessidade da interrupção dos servidores ou o cancelamento de trabalhos sendo executados. Essas e diversas outras melhorias já estão disponíveis com esta nova versão do Hadoop.
A comunidade responsável pelo desenvolvimento do Hadoop, conseguiu resolver aproximadamente 900 tickets Jira envolvendo as seguintes áreas:
  • Hadoop Common: 231 JIRAs resolvidos
  • Hadoop HDFS: 305 JIRAs resolvidos
  • Hadoop YARN: 290 JIRAs resolvidos
  • Hadoop MapReduce: 70 JIRAs resolvidos
A relação completa de todas as novas funcionalidades e correção de erros podem ser encontrados na página do Hadoop contendo as notas de lançamento da nova versão 2.6.0.
Abaixo estão relacionadas as principais melhorias que foram implementadas:
  • Camadas heterogêneas de armazenamento, permitindo assim o armazenamento dos dados em camadas de memória ou SSD.
  • Provedor de credenciais e servidor de gerenciamento de chaves
  • Operação segura de DataNodes sem a necessidade de acessos privilegiados de administrador
  • Troca a quente de DataNodes sem a necessidade de reinicializações
  • Suporte para execução nativa de aplicações em Docker
  • Melhorias relacionadas com a autenticação através da utilização de servidores proxy para acesso via WebHDFS.
  • Os usuários podem a partir de agora, submeter e cancelar aplicações através de solicitações Rest.
O Apache Hadoop 2.6.0 pode ser baixado através da página do Hadoop.

Cloudera disponibiliza sua nova versão empresarial

A Cloudera, uma das principais fornecedoras de soluções, suporte e serviços de software com base no Apache Hadoop, recentemente anunciou sua nova versão empresarial, o Cloudera Enterprise 5.3, contendo o CDH 5.3, o Cloudera Manager 5.3 e o Cloudera Navigator 2.2. Com esta nova versão, muitas melhorias foram adicionadas, principalmente relacionadas com segurança envolvendo criptografia.
Com esta nova versão empresarial a Cloudera dá um passo importante com relação á segurança das informações gerenciadas e manipuladas através do Hadoop File System. Em conjunto com a Intel, usando como base o projeto Rhino, as seguintes funcionalidades foram implementadas:
- Criptografia no HDFS utilizando como base pastas, permitindo assim a integração com “Navigation Key Trustee” (HDFS-6134) onde as chaves criptografadas ficam armazenadas separadamente dos dados.
- Opção de executar o “Cloudera Manager Agentcomo um único usuário quando a utilização do usuário root não é permitida.
- Utilização de permissões do Apache Sentry permitindo assim o compartilhamento das informações através do Impala, Hive, Search e outros projetos que possuem métodos de acesso a dados como o MapReduce.
- Correção de erros do Apache Sentry que afetavam a versão CDH 5.2 (SENTRY-500).
Avanços com relação ao gerenciamento dos dados e governança das informações, empacotamentos, utilização nativa do sistema de arquivos S3 melhorando assim o desempenho do AWS (HADOOP-10400), a inclusão no Apache Flume de um canal para uma melhor integração com o Apache Kafka (FLUME-2500) e consideráveis melhorias de desempenho no Apache Hbase (HBASE-2611, HBASE-12529).
A nova versão está disponível para download através da página da Cloudera.

quinta-feira, 3 de novembro de 2011

Algumas questões relacionadas a segurança SOA – Parte II

Existem dois caminhos para se implementar segurança em um ambiente SOA, um, utilizando Transpost-Level Security, também conhecido por TLS/SSL e outro através de Message-Level Security, padrão de segurança definido pela OASIS para segurança de web services.

Transport-Level Security/ Secure Socket Layer
TLS/SSL são protocolos de segurança que atuam sobre conexões TCP. TLS/SSL garantem a confiabilidade e  integridade dos dados além da autenticação, não se preocupando com  o meio utilizado para transporte das informações, independente do protocolo utilizado (http, smtp, rmi, etc).
Através do TLS/SSL,  um canal é estabelecido entre o consumidor e o servidor, garantindo a segurança das informações, feita através de um processo de criptografia dos dados (todos os dados transmitidos), garantindo assim que as informações não sejam capturadas durante o transporte, evitando possíveis adulterações durante a comunicação, enquanto este “canal” estiver ativo.
Com o TLS, podemos trabalhar com um conjunto de portas diferentes e seu algoritmo de criptografia permite trabalhar com HMAC (Keyed-Hashing For Message Authentication Code)  RFC 1024 que é um código de criptografia mais “forte” que o utilizado pelo SSL MAC (Message Authentication Code) RFC 2104.




Message-Level Security

Como exemplo de Message-Level Security, temos o Web Service Security (WSS), padrão OASIS para segurança de web services. Ao contrário do TLS/SSL que faz a criptografia de todas as informações que estão sendo transmitidas, o Message-Level Security, permite que somente parte das informações sejam criptografadas. Por exemplo, em uma operação de compra com cartão de crédito, poderíamos criptografar somente as informações relacionadas a identificação do cliente, como por exemplo o número do cartão de crédito, deixando as demais informações, por exemplo, o que está sendo comprado não criptografado.


Abaixo, temos visualmente as diferenças entre as abordagens de segurança Transport-Level Security e Message-Level Security


Com o Transport-Level Security, as informações serão completamente criptografadas e transmitidas.





Com o Message-Level Security, podemos definir qual parte da mensagem será criptografada.




Em breve, publicar como implementamos WSS em um ambiente SOA com Oracle Service Bus.

Twitter @javalittle


terça-feira, 1 de novembro de 2011

Algumas questões relacionadas a segurança SOA – Parte I


Existem diversas tópicos que devemos abordar e nos preocupar quando nos deparamos com o assunto relacionado a segurança de aplicações.  Não existe uma lista obrigatória de itens a serem seguidos, porque cada aplicação e ambiente, por possuírem características diferentes, possuem também necessidades distintas relacionadas a segurança.


Abaixo, vou procurar relacionar alguns itens que acredito serem preocupações comuns a todos analistas e arquitetos envolvidos com segurança de aplicações, também relacionados a segurança SOA.


Confidencialidade das Informações -  Em um ambiente SOA, todas as mensagens que são trocadas, devem ser criptografadas por algum algoritmo, impedindo assim acesso não autorizado das informações que estão sendo trafegadas pela rede ou que estejam de alguma forma sendo persistidas ou manipuladas.


Integridade das Informações – Em um ambiente SOA, a integridade das informações deve ser suportada, impedindo que as informações possam ser alteradas. Essa integridade é garantida através de uma assinatura digital, que permite que as partes envolvidas possam verificar o conteúdo que está sendo transmitido e/ou recebido, avaliando se algo ao longo do percurso foi alterado/modificado de forma não autorizada.


Controle de Acesso as Informações – Em um ambiente SOA, muitos serviços são disponibilizados, serviços estes que serão consumidos por clientes. Uma boa prática é o estabelecimento de políticas de acesso, que são aplicadas aos serviços, impedindo ou restringindo assim os serviços a clientes específicos. Estas políticas também podem ser referenciadas como “Access Control Lists (ACLs).

Auditoria -  Um fator muito importante em um ambiente SOA, é o da implementação de “boas praticas” relacionadas a auditoria, permitindo assim que levantamentos sejam feitos em logs no sentido de detectar possíveis tentativas de fraudes relacionadas com as operações das aplicações. Eu particularmente trabalhei em uma multinacional americana,  auditada pela Sarbanes-Oxley Act (SOX),  empresa esta que constantemente era auditada, sendo a questão segurança,  item mandatório em todas a operações onde houvesse troca de informações, principalmente informações relacionadas a terceiros.


Privacidade das Informações – Muitas empresas, trocam informações confidenciais relacionadas por exemplo a consumidores. Por exemplo, uma concessionária, pode através de um serviços, solicitar e/ou enviar informações de um determinado cliente. Estas informações podem conter por exemplo, número do CPF, CNPJ, cartão de crédito, endereço, enfim, uma série de informações que devem ser confidenciais as empresas envolvidas em uma determinada transação. Em outros casos, pode-se solicitar e ou enviar comportamento de compra e/ou venda de um determinado cliente, e em alguns casos essas informações devem e podem ser mantidas como anônimas. Um ambiente SOA, deve possuir práticas que permita que as informações classificadas e/ou relacionadas como privativas, não seja acessada ou disponibilizada para pessoas/empresas erradas.


Autenticação – Uma outra questão em um ambiente orientado a mensagens, é o de estabelecer entre o consumidor e o servidor, uma forma de identificação e autorização (implementada pela política) das operações que estão sendo processadas. O consumidor ao enviar uma solicitação/mensagem ao servidor, envia uma “identificação”, provando sua identidade, que será recebida e verificada por um servidor de autenticação.

É claro que existe uma série de outras questões que devem ser levantadas e planejadas em um ambiente envolvendo troca de informações entre aplicações.


No próximo tópico, pretendo falar um pouco sobre “Message-Leve Security” e “Transport-Level Security”.

Abraços.

Twitter    - @javalittle