Plataforma Nuvem

Aplicativos baseados na Internet

Archive for abril 2011

Sencha ExtJS 4.0 liberado

leave a comment »

Hoje foi liberada a versão 4.0 do ExtJS, um framework para desenvolvimento de aplicativos em JavaScript.

extjs1

O ExtJS versão 3 já era um dos melhores frameworks disponíveis para criar aplicativos web de interface rica. A versão 4 acrescenta muitas melhorias de funcionalidade e arquitetura. Trata-se de um produto bastante maduro.

Entre as principais novidades temos:

  • Maior facilidade de aprendizado: 40 novos exemplos, o dobro da documentação, 12 novos guias, padronização de nomenclatura.
  • Framework de teste: mais de 4.000 testes automatizados em 21 combinações de browsers e modos.
  • Sistema de classes completo.
  • Isolamento para evitar interferências com outras bibliotecas na mesma página.
  • Arquitetura MVC (model-view-controller).
  • Ferramentas de otimização para deployment.
  • Componentes gráficos em JavaScript nativo.
  • Grid modular, extensível e com suporte a carregamento contínuo (sem paginação).
  • Leiautes e renderização mais inteligentes.
  • Mecanismo de acesso a dados aperfeiçoado.
  • Suporte a armazenamento local do HTML5.
  • Suporte a temas aperfeiçoado.
  • Muitas outras melhorias em componentes.

extjs2

Esse não é um framework para apenas criar alguns efeitos em uma página HTML. É uma verdadeira plataforma de desenvolvimento de aplicativos de interface rica conectados à Internet.

Anúncios

Written by Fernando Correia

26/abr/2011 at 20:25

Publicado em Geral

Tagged with , ,

Plataforma Windows Azure

leave a comment »

A Plataforma Windows Azure é uma plataforma de nuvem da Microsoft utilizada para hospedar aplicativos em datacenters. É uma oferta de plataforma como serviço (PaaS).

Esta plataforma é composta por vários serviços:

  • Windows Azure, um sistema operacional que fornece recursos escaláveis de processamento e armazenamento;
  • SQL Azure, uma versão adaptada para a nuvem do SQL Server;
  • Windows Azure AppFabric, uma coleção de serviços de apoio.

Windows Azure

Windows Azure é um sistema operacional de serviços de nuvem que fornece o ambiente para desenvolvimento, hospedagem e gerenciamento de aplicativos da plataforma Windows Azure. É um serviço de processamento e armazenamento de dados com características de escalabilidade e elasticidade.

O Windows Azure pussui cinco componentes:

  • Compute: Executa código de aplicativos em máquinas virtuais com um ambiente Windows Server modificado. Uma aplicação Azure é composta por várias instâncias de VM, cada uma desempenhando um determinado papel: Web Role para instâncias com aplicativos web ou web services dentro do Internet Information Services (IIS); Worker Role para instâncias que executam código fora do IIS; e VM Role, para executar imagens de disco do Windows Server 2008 R2 preparadas e configuradas pelo cliente do Azure.
  • Storage: Armazena dados de várias maneiras. Table Service armazena entidades na forma de tabelas de forma escalável; Blob Service armazena dados binários; Drive simula um disco (um volume NTFS) dentro do Blob Service; Queue Service é um sistema de enfileiramento de mensagens para comunicação assíncrona.
  • Fabric Controller: Inicia, gerencia, monitora e atualiza aplicativos.
  • Content Delivery Network (CDN): Acelera o acesso a dados binários mantendo cópias em várias regiões do mundo.
  • Connect: Permite estabelecer conexões seguras entre aplicativos locais e aplicativos no Azure.

SQL Azure

SQL Azure é um serviço em nuvem que oferece recursos de armazenamento de dados com alta disponibilidade e tolerância a falhas. Ele permite consultas relacionais aos dados armazenados, que podem ser estruturados, semi-estruturados ou documentos não-estruturados.

O SQL Azure é construído sobre o SQL Server, mas apenas expõe um subconjunto de suas funcionalidades e tipos de dados. Ele utiliza a linguagem Transact-SQL para consultas e o formato Tabular Data Stream como protocolo de acesso. A forma recomendada para acesso a dados é o WCF Data Services.

AppFabric

Windows Azure AppFabric é parte da plataforma Windows Azure e fornece diversos serviços de middleware que aumentam o nível de abstração e diminuem a complexidade de aplicativos para nuvem:

  • Access Control: Fornece uma maneira para aplicativos web e web services identificarem usuários e controlarem acesso. Estabelece um mecanismo para conversão das credenciais de segurança externas em credenciais que o aplicativo entenda. Também pode ser utilizado para gerenciar as permissões dos usuários.
  • Service Bus: Fornece recursos para comunicação segura entre aplicativos distribuídos e desconectados. Suporta diversos protocolos e padrões de comunicação e mensagem e trata aspectos como garantia de entrega, confiabilidade e escala.
  • Caching: Fornece um serviço de cache distribuído em memória, para acesso a dados com alta velocidade, escalabilidade e alta disponibilidade.
  • Integration: Provê recursos do BizTalk Server, tais como conectores, transformação de formatos de mensagens e filas de mensagens. Ainda em desenvolvimento.
  • Composite App: Fornece ferramentas e APIs para desenvolvimento e hospedagem de aplicativos compostos. Ainda em desenvolvimento.

Conclusão

A plataforma Windows Azure inclui uma ampla gama de recursos para desenvolvimento, hospedagem e gerenciamento de aplicativos em nuvem, com características de escalabilidade, elasticidade e alta disponibilidade. A plataforma também fornece recursos para conectar estes aplicativos a outros, tanto na nuvem como locais.

Para maiores informações, visitar o site brasileiro da Windows Azure Platform.

Written by Fernando Correia

23/abr/2011 at 15:41

Publicado em Geral

Tagged with

Computação em nuvem

leave a comment »

O grupo Gartner define computação em nuvem como um estilo de computação em que recursos escaláveis e elásticos habilitados por tecnologia da informação são fornecidos como um serviço para clientes externos utilizando tecnologias da Internet.[1]

Já o NIST (Instituto Nacional de Padrões e Tecnologia) a define como um modelo para habilitar acesso por rede sob demanda e conveniente a um conjunto compartilhado de recursos de computação configuráveis (como redes, servidores, armazenamento, aplicativos e serviços) que possam ser rapidamente provisionados e liberados com o mínimo de esforço de gerenciamento ou interação com o fornecedor do serviço.[2]

O termo “nuvem” vem da figura em forma de nuvem utilizada para representar a Internet em diagramas e, por associação, passou a ser utilizado para referir-se aos serviços de computação fornecidos através da Internet.[3]

As empresas podem utilizar a computação em nuvem para solicitar e utilizar recursos de computação sob demanda. Por exemplo, se uma empresa tem picos de uso inesperados, a computação em nuvem permite atender a carga de trabalho aumentada sem precisar pagar os custos de uma infraestrutura tradicional de hospedagem durante o ano inteiro.

Os cinco atributos da computação em nuvem, segundo o Gartner, são:

  • Baseada em serviços: Interfaces bem definidas abstraem os detalhes de implementação e permitem automação completa das respostas fornecidas aos consumidores dos serviços. O serviço é projetado para atender a necessidades específicas de um conjunto de consumidores, e a tecnologia é ajustada a esta necessidade, em vez do serviço ser adequado ao modo como a tecnologia funciona.
  • Escalável e elástica: O serviço pode aumentar ou diminuir a capacidade conforme a demanda dos consumidores, de forma completamente automatizada.
  • Compartilhada: Os serviços compartilham um conjunto de recursos para criar economias de escala. Os recursos de TI são utilizados com o máximo de eficiência. Os recursos subjacentes são compartilhados entre os consumidores de serviços.
  • Medida pelo uso: Os serviços são monitorados com medições de uso para permitir diversos modelos de pagamento.
  • Usa tecnologias da Internet: O serviço é fornecido através de identificadores, formatos e protocolos da Internet, tais como URLs, HTTP, IP e REST.

Os serviços de computação em nuvem são oferecidos tipicamente em uma destas camadas:[4]

  • Aplicação: Serviços de aplicação na nuvem, conhecidos como “SaaS” (Software as a Service) fornecem software através da Internet, sem a necessidade de instalar e executar o aplicativo em computadores próprios, e simplificando a manutenção e suporte. Exemplos: Gmail, Sales CloudZoho Projects.
  • Plataforma: Serviços de plataforma na nuvem, ou PaaS (Platform as a Service), fornecem uma plataforma de computação e/ou um conjunto de soluções como serviço, geralmente utilizando infraestrutura na nuvem e sustentando aplicações na nuvem. Eles facilitam o fornecimento de aplicações sem o custo e a complexidade de adquirir e gerenciar as camadas subjacentes de hardware e software. Exemplos: Force.comGoogle App Engine, Windows Azure.
  • Infraestrutura: Serviços de infraestrutura na nuvem, ou IaaS (Infrastructure as a Service) fornecem infraestrutura de computação como serviço. Em vez de comprar servidores, software, hospedagem em datacenter e equipamentos de rede, os clientes adquirem estes recursos como um serviço totalmente terceirizado. Os fornecedores cobram pela quantidade de recursos utilizados. Exemplos: Amazon Elastic Compute Cloud (EC2), Microsoft System Center.

A computação em nuvem é um mercado de 100 bilhões de dólares. É uma revolução que está acontecendo e que gera enormes oportunidades e desafios para clientes, fornecedores e profissionais.

Written by Fernando Correia

21/abr/2011 at 17:03

Publicado em Geral

Tagged with ,

Arquitetura do exemplo Guestbook do Azure

with one comment

Um dos melhores recursos de treinamento para aprender a desenvolver para a plataforma Azure é o Windows Azure Platform Training Kit. Ele é um conjunto de tutoriais, apresentações e exemplos que ajudam a aprender como utilizar o Windows Azure.

O primeiro tutorial, chamado Introduction to Windows Azure, ensina como criar um aplicativo do tipo “livro de visitantes”, onde os usuários podem deixar comentários com imagens anexadas, e ver os comentários que outros usuários deixaram.

Este aplicativo é implementado utilizando um Web Role para a interface web, o Table Service para armazenar os registros dos comentários, o Blob Service para armazenar as imagens originais e reduzidas, um Worker Role para rodar um serviço para criar as miniaturas das imagens em segundo plano, e o Queue Service para que o Web Role indique quais imagens o Worker Role deve processar.

O fluxo acontece em três etapas separadas. Na primeira etapa, identificada pelas linhas azuis, o usuário insere um novo comentário com uma imagem. O Web Role salva esta imagem original no Blob Service, cria um registro para o comentário no Table Service e insere uma mensagem no Queue Service indicando qual é o registro que deve ser processado. O Web Role encerra aqui o seu trabalho e mostra a página atualizada para o usuário (ainda sem a miniatura).

Na segunda etapa, identificada pelas linhas rosa, que acontece independente da primeira, o Worker Role obtém a próxima mensagem da fila do Queue Service, busca a imagem original no Blob Service, gera uma miniatura e a salva também no Blob Service, e atualiza o registro no Table Service indicando a URL da miniatura gerada.

A terceira etapa, identificada pelas linhas verdes, é quando um usuário qualquer acessa a página do livro de visitantes. O Web Role busca a lista de comentários por ordem de data e monta a página de resultado com estes comentários. O browser do usuário busca as imagens diretamente do Blob Service, através de uma URL.

Este aplicativo de exemplo demonstra muitos dos princípios arquiteturais de aplicativos em nuvem, como aplicativos Web que não mantêm estado (Web Role), repositórios de dados escaláveis e não relacionais (Table Service), repositórios de dados binários (Blob Service), processamento assíncrono através de serviços de enfileiramento de mensagens (Queue Service e Worker Role).

Esta é uma arquitetura escalável, elástica, tolerante a falhas e simples de entender, sem excesso de complexidade. Uma excelente introdução ao desenvolvimento de aplicativos em plataforma nuvem.

Written by Fernando Correia

17/abr/2011 at 13:29

Publicado em Geral

Tagged with ,

Nenhum click é melhor do que um click

leave a comment »

Exemplo de accordion zero-click no Heroku

 

Em um aplicativo web, quanto menos clicks um usuário precisar dar para realizar a sua tarefa, melhor.

O site Heroku é um excelente exemplo de aplicação deste conceito. Para mostrar como é fácil usar o serviço oferecido, eles mostram três passos. Para alternar entre eles, basta passar o mouse por cima dos títulos.

Esse efeito é criado através de código customizado usando jQuery. Mas o próprio jQuery tem um exemplo de accordion controlado por mouse:

http://jqueryui.com/demos/accordion/#mouseover

Written by Fernando Correia

10/abr/2011 at 11:45

Publicado em Geral

Tagged with , ,