quinta-feira, 28 de novembro de 2013

Organizando os compromissos com o Google Agenda

Figura 1. Tela inicial do Google Agenda
Por mais que existam empresas com tamanho e faturamento diferentes uma das outras, todas elas possuem uma coisa em comum: compromissos. Seja lá qual for o tamanho da empresa, existem compromissos que devem ser cumpridos como, pagamento de fornecedor, reunião com funcionários, etc. Nos casos de empresas pequenas muitas vezes os dados são armazenados em uma agenda de papel que é muito vulnerável a perda. 
Para ajudar na organização dos compromissos existe uma ferramenta muito útil chamada Google Agenda.

O que é Google Agenda?

Google Agenda é um serviço na nuvem fornecido pelo Google para todo tipo de empresa. A forma de organização dos compromissos é simples e pode ser salva e compartilhada a qualquer momento.

Como funciona?

O funcionamento é bastante similar ao de uma agenda de papel, por exemplo, a diferença é que os dados estão salvos na nuvem, dessa forma a segurança é muito maior além de ganhar em espaço físico.

Como posso utilizar essa ferramenta na minha empresa?

A implantação do Google Agenda está disponível no pacote de aplicativos do Google Apps for Business. Para utilizar basta ter um conta vinculada ao Google. Existem diferentes tipos de planos que irão variar de acordo com o tamanho da sua empresa mas em casos de empresas pequenas o plano free dá conta do recado.

Figura 2. Google Calendar sendo utilizado em um smartphone.
Qual a vantagem de utilizar?

No século XXI as informações possuem um grande valor, nesse sentido o uso da ferramenta no smartphone irá proporcionar bastante praticidade na hora de visualizar os compromissos independente do lugar em que o usuário esteja. Além disso, ele poderá compartilhar determinado evento ou compromisso somente para os funcionários ou pessoas que estarão envolvidos, facilitando muito a manipulação da informação.

Conclusão

Utilizar ferramenta na nuvem é uma boa solução para empresas que precisam de mais segurança e praticidade na hora de guardar compromissos, além de diminuir o espaço físico com a manipulação da agenda de papel o Google agenda irá proporcionar portabilidade pois o aplicativo móvel pode ser instalado em qualquer smartphone com SO Android, por exemplo, que os dados estarão sincronizados onde quer que os funcionários ou os proprietários estejam.

Resposive Web Design – Flexibilidade na troca de dados e informações.


A onipresença dos dispositivos móveis em redes corporativas como forma de comunicação e meio de trabalho, torna-se indubitavelmente comum. Diversas empresas fazem o uso de Smartphones e/ou Tablets para acessar seus dados e trocar diversos tipos de informações, seja pela mobilidade ou pela praticidade do uso de tais aparelhos.
Entretanto, o aproveitamento de interfaces cujo desenvolvimento é específico para o uso em Desktop, prejudica o envio e a interpretação dos dados quando aproveitado em mobile, por exemplo. Sob este cenário, surge a necessidade do uso do conceito de Responsive Web Design em site para redes corporativas.

O que é Responsive Web Design?

Responsive Web Design é acima de tudo um conceito. Em tese, tal conceito remete apresentar a informação de um website de forma acessível e confortável para diversos meios de acesso. Em outras palavras, seu uso permite que o site obtenha aspectos de usabilidade e acessibilidade.
Sendo assim, o usuário terá uma interface apropriada para manipular de maneira correta as mais diversas informações sob uma perspectiva que tem como objetivo não restringe o acesso independente do tipo de dispositivo do usuário.
Responsive Web Design é um assunto muito extenso, mas muito interessante. Nos faz pensar no futuro de forma diferente. Até 5 anos atrás não tínhamos preocupações com outro dispositivo a não ser um ou outro smartphone e os desktops. É importante que nós possibilitemos que essas informações sejam entregues da melhor maneira possível.

A quem se Destina?

É importante elucidar que o uso do conceito de Responsive Web Design é de suma importância para empresas que desejam ganhar mercado e notoriedade com o acesso de seu site. 
Para empresas que desejam apenas troca dados através de interfaces móveis, seu uso é indubitável pertinente, já que a agilidade para a manipulação dos dados fator primordial e necessário.

Uso e Importância.

O Media Queries é uma utilização de Media Types (definem para qual tipo de media o CSS será direcionado) com uma ou mais expressões envolvendo características de uma media para definir formatações para diversos dispositivos.
Em tese, o Media Type possui um valor denominado SCREEN, que é utilizado quando queremos direcionar uma determinada formatação para aparelhos que tem telas coloridas e /ou de um determinado tamanho. A imagem abaixo exemplifica um código com Media Queries com o emprego do CSS específico para aparelhos que tenham uma largura máxima de tela de 480px. Ou seja, qualquer aparelho que tenha essa largura de tela, deverá utilizar o código CSS que está no arquivo especificado.


Em suma, o uso de Media Queries tornará o portal da empresa flexível para diversos dispositivos independente de seu tamanho e resolução de tela. Seu emprego agrega maior agilidade na troca de informação, visto que o acesso torna-se apropriado e não prejudica a usabilidade com o usuário.

Fonte: http://tableless.com.br/introducao-ao-responsive-web-design/#.Upc92sRDucW
http://blog.popupdesign.com.br/design-responsivo-iii-media-queries-e-compatibilidade/

quarta-feira, 27 de novembro de 2013

Dados e XML



XML & HTML.
Quando a HTML é usada para exibir dados, os dados são armazenados dentro da sua HTML. Com a XML, os dados podem ser armazenados em arquivos XML separados. Deste modo você pode concentrar-se no uso da HTML para o layout e exibição dos dados, e ter certeza de que as mudanças nos dados básicos não irão requerer quaisquer mudanças na sua HTML. Os dados em XML também podem ser armazenados dentro de páginas HTML como "Data Islands" [ilhas de dados]. Você pode ainda concentrar-se no uso da HTML somente para formatar e exibir os dados.

Troca de Dados
Com a XML, os dados podem ser trocados entre sistemas incompatíveis. No mundo real, os sistemas de computadores e bancos de dados contém dados em formatos incompatíveis. Um dos desafios que mais consomem tempo para os desenvolvedores tem sido a troca de dados entre tais sistemas na Internet. Converter os dados para a XML pode reduzir enormemente esta complexidade e criar dados que podem ser lidos por tipos de aplicações muito diferentes.

XML e B2B
Com a XML, informações financeiras poder ser trocadas pela Internet. Espere ver muito XML e B2B (Business To Business) num futuro próximo. A XML será a principal linguagem para trocar informações financeiras entre negócios pela Internet. Muitas das aplicações de interesse no B2B estão em desenvolvimento.

Compartilhamento de Dados
Com a XML, arquivos de texto puro podem ser usados para compartilhar dados. Como os dados em XML são armazenados em formato de texto puro, a XML provê um meio independente de software e hardware para compartilhar dados. Isto torna muito mais fácil criar dados com os quais diferentes aplicações podem trabalhar. Também torna mais fácil expandir ou atualizar um sistema para novos sistemas operacionais, servidores, aplicações, e novos navegadores.

Armazenamento de Dados
Com a XML, arquivos de texto puro podem ser usados para armazenar dados. A XML pode também ser usada para armazenar dados em arquivos ou em bancos de dados. Aplicações podem ser escritas para armazenar e recuperar informações armazenadas, e aplicações genéricas podem ser usadas para exibir os dados.

A XML pode tornar os Dados mais Úteis
Com a XML, os seus dados estão disponíveis para mais usuários. Já que a XML é independente de hardware, de software e de aplicações, você pode tornar os seus dados disponíveis para outros além de somente para os navegadores HTML padrões. Outros clientes e aplicações podem acessar os seus arquivos XML como fontes de dados, como se estivessem acessando bancos de dados. Os seus dados podem estar disponíveis para todos os tipos de "máquinas de leitura" (agentes), e é mais fácil tornar os seus dados disponíveis para pessoas cegas, ou pessoas com outras deficiências.

A XML pode ser usada para Criar Linguagens novas.
A XML é a mãe da WAP e da WML. A Wireless Markup Language (WML) [Linguagem de Marcação (para aparelhos) Sem Fio], usada para marcar aplicações na Internet para aparelhos portáteis como telefones móveis [celulares], é escrita em XML.

Referências: http://www.clem.ufba.br/tuts/xml/c02.htm

Contribuições do W3C para a Web Semântica


Evoluindo a já clássica e conhecida “Web de documentos”, o W3C ajuda no desenvolvimento de tecnologias que darão suporte à “Web dos dados”, viabilizando pesquisas como num banco de dados. O objetivo final da Web de dados é possibilitar com que computadores façam coisas mais úteis e com que o desenvolvimento de sistemas possa oferecer suporte a interações na rede. O termo “Web Semântica” refere-se à visão do W3C da Web dos Dados Linkados. A Web Semântica dá às pessoas a capacidade de criarem repositórios de dados na Web, construírem vocabulários e escreverem regras para interoperarem com esses dados. A linkagem de dados é possível com tecnologias como RDF, SPARQL, OWL, SKOS.

Dados Linkados 
A Web Semântica é a Web de Dados - de datas, títulos; números, propriedades químicas e qualquer outro dado que se possa conceber. O RDF é a base para a publicação e linkagem de dados. Outras tecnologias permitem inserir dados em documentos (RDFa, GRDDL) ou expor o que você tem em um bancos de dados SQL, ou ainda torná-lo disponível no formato RDF.

Vocabulários e Ontologias 
Vocabulários são importantes ferramentas e valiosos instrumentos para organizar os dados de um domínio. Usando OWL (para construir vocabulários, ou "ontologias") e SKOS (para projetar sistemas de gestão do conhecimento), é possível enriquecer os dados adicionando significados, permitindo que mais pessoas (e mais máquinas) possam reutilizá-los e fazerem mais com os dados.

Consultas 
Linguagens de consulta andam de mãos dadas com bancos de dados. E se a Web Semântica é como um banco de dados global, é fácil então perceber que será necessário uma linguagem de consulta para esses dados. SPARQL é a linguagem de consulta para a Web Semântica.

Inferência 
Ao lado da Web Semântica se encontra a inferência - o raciocínio sobre os dados a partir das regras. O W3C trabalhar em regras, principalmente através de RIF e OWL, seu foco está na tradução entre linguagens de regras e intercâmbio entre diferentes sistemas.

Aplicações verticais 
O W3C está trabalhando com diferentes setores - por exemplo nas áreas da Saúde, de Governos e de Energia, para promover e melhorar a colaboração, pesquisa, inovação e adoção da tecnologia de Web Semântica. Na área da Saúde, por exemplo, a Web Semântica auxilia a tomada de decisões no domínio da investigação clínica, e para interoperar informações biológicas e médicas entre as instituições.

Referencias: http://www.w3c.br/Padroes/WebSemantica

Web Semântica?


A Web Semântica é nada mais nada menos, que uma web com toda sua informação organizada de forma que não somente seres humanos possam entendê-la, mas principalmente máquinas, estas que, nos ajudarão em tarefas que hoje fazemos manualmente.
Imagine a situação abaixo e entenda melhor:
Você precisa fazer uma viagem as pressas para a Tailândia, então você pede ao computador encontrar uma companhia aérea que siga as seguintes restrições: que tenha um voo para a manhã seguinte na classe econômica e seja a companhia com o preço mais barato.
O computador, em poucos momentos lhe fornece o resultado da busca com a companhia que melhor se encaixa nas medidas impostas. Depois disso, você apenas tem o trabalho de reservar seu lugar.
Na web de hoje, apenas humanos entendem as informações disponíveis. Com a Web Semântica, as máquinas compreenderão essas informações e assim, poderão nos auxiliar em tarefas corriqueiras, que antes eram feitas manualmente. Atualmente é extremamente complexo fazer um sistema que leia e entenda de maneira sensata qualquer informação que a web provê.
A Web Semântica incorpora significado às informações da web. Isso proporciona um ambiente onde máquinas e usuários trabalhem em conjunto. Tendo cada tipo de informação devidamente identificada, fica fácil para os sistemas encontrarem informações mais precisas sobre um determinado assunto.
O ambiente de que estamos falando terá informações devidamente identificáveis, onde sistemas personalizados possam manipular, compartilhar e reutilizar de forma prática as informações providas pela Web.


Referencias: http://tableless.com.br/a-web-semantica/#.UpVNbdJDuSo

Utilizando técnicas de SEO para aumentar a visibilidade da empresa na web




O que é SEO?

A palavra SEO vem da língua inglesa e significa Search Engine Optimization. Em português, ele é conhecido como otimização de sites ou otimização para buscas. Ele consiste basicamente em um conjunto de técnicas que vai desde o planejamento até a manutenção da página para que as ferramentas de busca possam compreender melhor o site.
 Desenvolver um bom trabalho de SEO na página da empresa é muito importante para dar uma relevância maior nos resultados da busca.

Como funciona?
Os serviços de busca utilizam algoritmos que varrem a web e indexam o conteúdo de acordo com os termos encontrados, esse serviço é feito pelos spiders ou crawlers.  Além disso,  os serviços de busca também utilizam a análise de links para avaliar a quantidade de sites que apresentem links para a página em questão, ou seja, quanto mais sites fazendo referência ao conteúdo do site melhor.

O que fazer para adequar meu site ao SEO?
Algumas técnicas são fundamentais para aumentar a visibilidade do site como produzir um bom conteúdo, manter urls amigáveis, utilização dos padrões web, títulos de página racionais e a correta utilização das tags html. 

Conclusão
As técnicas mais básicas de SEO são simples e fáceis de implantar, basta um pouco de paciência e um pouco de conhecimento sobre HTML para ajudar a aumentar a visibilidade do site da empresa dos serviços de busca.

Referências

SQL Azure - Um Banco de Dados na Nuvem

O Que é o SQL Azure?

O SQL Azure é um conjunto de serviços que oferece capacidades de processamento e armazenamento de dados relacionais na nuvem, sobre a plataforma Windows Azure.

Usando o SQL Azure, as aplicações podem aproveitar recursos como persistência de dados, business intelligence, sincronização, replicação de dados, relatórios, data mining, etc., a partir de uma infraestrutura de alta escalabilidade e provisionamento dinâmico, que são características nativas de um ambiente em nuvem.

Entre os benefícios do SQL Azure podemos destacar seu modelo de programação simétrico, que permite ao desenvolvedor trabalhar com o ambiente SQL Server 2008 local (on-premise) e o ambiente de dados do SQL Azure da mesma forma, aproveitando os mesmo recursos do .NET Framework.
Outro benefício do SQL Azure é permitir o foco na aplicação, uma vez que o administrador de dados ou DBA – Database Administrator – não precisa se preocupar com atividades relacionadas à infraestrutura do ambiente SQL Azure, como:
  • Compra de repositório e espaço de armazenamento de dados para seu datacenter;
  • Configuração física e lógica de repositórios;
  • Dimensionamento de servidores;
  • Instalação e atualização de software de bancos de dados;
  • Diagnóstico e resolução de falhas de hardware, etc.;
O principal recurso do SQL Azure é sua capacidade de persistência de dados relacionais, da mesma forma que temos no SQL Server 2008 local (on-premise). Além do suporte ao modelo relacional, o serviço SQL Azure suporta acesso direto via ADO.NET, da mesma forma como ocorre em aplicações locais acessando dados em um banco SQL Server local, ou seja, de forma transparente para o desenvolvedor.
 O SQL Azure suporta um modelo de provisionamento baseado em contas Azure com servidores e bases de dados (ou instâncias de SQL Azure), o que permite ao usuário do serviço a criação de bases de dados de 1 GB a 50 GB de espaço para armazenamento, permitindo ainda diversas combinações.
Para o modelo de provisionamento do SQL Azure destacamos seus três componentes:
  • Account (conta): Cada conta Azure tem zero ou mais servidores contratados, sendo o instrumento principal para controle de Billing (pagamento);
  • Server (servidor): Cada servidor tem um ou mais bases de dados, sendo o container principal de nossas instâncias de bases. O servidor ainda contém metadados sobre as bases em uso e informações para autenticação. É através do servidor que nos conectamos em nossas bases de dados no SQL Azure, sendo a unidade de autenticação no modelo. Também, o servidor é a unidade de geo-localização, por onde controlamos o datacenter para hospedagem de nossas bases na plataforma Windows Azure, sendo também acessado através de um nome padrão DNS.
  • Database (base de dados): finalmente, cada database ou base de dados no SQL Azure possui os objetos SQL de nossas aplicações. É a unidade de consistência e multi-tenancy do modelo, contendo nossas informações de usuários, tabelas, views, índices, etc. A base de dados é a unidade granular básica para cobrança no SQL Azure.
Por exemplo, para a conta MyAccount, podemos ter um servidor de nome (Fully Qualified DNS name) xaqpblthd.database.windows.net, que conterá nossas bases de dados para aplicações MyDatabaseApp1 e MyDatabaseApp2.
  É possível escolher entre dois tipos de contratação de bases de dados no SQL Azure:
  • Web Edition: que permite instâncias de 1 GB ou 5 GB de espaço para armazenamento de dados;
  • Business Edition: que permite instâncias de 10, 20, 30, 40 e 50 GB de espaço para armazenamento de dados.
 A Quem se Destina:

A empresas que precisam utilizar um banco de dados relacional, e que o mesmo esteja disponível na internet para que possa ser utilizado em sistemas rodando em diferentes locais. Permitindo assim que a empresa não precise se preocupar com a necessidade de ter um servidor local em cada empresa e ainda garantir que os dados estão sincronizados em todos os servidores locais.
O preço cobrado pelo serviço varia de acordo com o tamanho do banco de dados, segue abaixo uma tabela com os preços (tabela usada como base as tarifas em 27/11/2013 e usando como base o dólar a R$ 2,30) cobrados por mês:
 
TAMANHO DO BANCO DE DADOS(RATEADO POR DIA)
De 0 a 100 MB R$ 11,488  
100 MB a 1 GB R$ 22,977  
1 GB a 10 GB R$ 22,977
pelo primeiro GB
R$ 9,19
por cada GB adicional
10 GB a 50 GB R$ 105,708
pelos primeiros 10 GB
R$ 4,59
por cada GB adicional
50 GB a 150 GB R$ 289,524
pelos primeiros 50 GB
R$ 2,297
para cada GB adicional

 Uso e Importância:

Para empresas que utilizam um banco de dados relacional e desejam que o mesmo possa ser acessado pela internet e tenha uma alta disponibilidade é indicado que a empresa contrate um serviço em Nuvem pela alta disponibilidade que a mesma oferece e o SQL Azure é uma alternativa a essa necessidade. O SQL Azure possui uma alta disponibilidade, pode ser utilizado da mesma forma que um banco de dados local (SQL Server 2008 ou superior), possui toda a segurança e controle a falhas que a Nuvem oferece e possui um preço atrativo.
Um banco de dados local tem um custo alto se analisado o valor da licença, hardware necessário para o mesmo (incluindo a redundância do mesmo), a alta disponibilidade de conexão (o custo em se ter um link dedicado ainda é alto) e a preocupação com backups constantes e redundantes para garantir a consistência dos dados e a tolerância a falhas, para garantir que no caso de um problema o banco possa ser recuperado utilizando algum backup e ou utilizando o hardware redundante.
O SQL Azure já garante a alta disponibilidade e a redundância de hardware, garantindo que existam no mínimo 2 cópias do seu banco de dados nos servidores em nuvem (são, na verdade, 3 cópias, 1 principal e 2 secundárias, e o que é garantido é que pelo menos 2 das 3 cópias estão consistentes) e essas cópias ficam em servidores físicos diferentes para garantir que em caso de problemas em um servidor o outro seja ativado automaticamente. A Microsoft garante que no caso de uma manutenção preventiva em que seja necessário a inatividade do seu banco de dados, por algum motivo qualquer, ela se compromete a avisar com no mínimo 5 dias de antecedência.    

Fontes: http://msdn.microsoft.com/pt-br/library/hh147515.aspx#sqlazure
             http://www.windowsazure.com/pt-br/pricing/details/sql-database/#service-webandbusiness 
 

Webservice RESTFul

O que é um Webservice RESTFul?

 A web é amplamente utilizada e reconhecida principalmente por sua arquitetura robusta, escalável e tolerante a falhas. Quem sustenta esses fatores e lhe dá todo este poder é o protocolo HTTP (o protocolo HTTP é utilizado, em regra, quando se deseja evitar que a informação transmitida entre o cliente e o servidor seja visualizada por terceiros, como, por exemplo, no caso de compras online.). Atualmente, muitas vezes necessitamos integrar aplicações em ambientes totalmente diferentes e os WebServices são uma das maneiras mais comuns e fáceis de integrar os diferentes sistemas. Este post mostrará um pouco de um modelo de WebService chamado REST.
Representational State Transfer ou somente REST, é cada vez mais usado como alternativa ao “já antigo” SOAP onde que a principal crítica a este é a burocracia, algo que REST possui em uma escala muito menor. O REST é baseado no design do protocolo HTTP, que já possui diversos mecanismos embutidos para representar recursos como código de status, representação de tipos de conteúdo, cabeçalhos, etc.
O principal nesta arquitetura são as URLs do sistema e os resources (resource é um recurso, entidade). Ele aproveita os métodos HTTP para se comunicar, que são:
    GET: Solicita a representação de um determinado recurso. É definido como um método seguro e não deve ser usado para disparar uma ação (remover um usuário, por exemplo);
    POST: As informações enviadas no corpo (body) da requisição são utilizadas para criar um novo recurso. Também é responsável por fazer processamentos que não são diretamente relacionados a um recurso.
    DELETE: Remove um recurso. Deve retornar o status 204 caso não exista nenhum recurso para a URI especificada.
    PUT: Atualiza um recurso na URI especificada. Caso o recurso não exista, ele pode criar um. A principal diferença entre POST e PUT é que o primeiro pode lidar não somente com recursos, mas também pode fazer processamento de informações.


Esses métodos são utilizados como abstração para o famoso CRUD (Create Read Update Delete - Cadastrar Ler Atualizar Deletar). Onde o GET é utilizado para a busca de informações, fazendo o papel do Read. O POST é utilizado para atualizar informações, fazendo o papel do Update. O PUT é utilizado para cadastrar informações, fazendo o papel do Create. E por fim, o DELETE que é utilizado para apagar as informações, fazendo o papel do Delete.
É possível implementar os Webservices em várias linguagens de programação, a grande maioria delas suporta os protocolos REST (Java, C#, Delphi, entre outras).
O lado cliente pode ser implementado utilizando qualquer linguagem de programação, para ser possível criar um cliente que possa consumir um webservice, só precisa que a linguagem que será utilizada para a implementação do cliente possua uma API (ou que o desenvolvedor crie a API) para a utilização do protocolo HTTP, esse é o único requerimento para a implementação do cliente. Inclusive o lado cliente pode ser implementado em uma linguagem diferente da utilizada no servidor sem se preocupar com conflitos entre as mesmas, pois servidores RESTFul disponibilizam seus serviços com base apenas no HTTP e a troca de informação é sempre em texto (pode ser texto simples ou utilizando uma linguagem de marcação como XML ou mesmo um formato padrão de dados como o JSON).
Um Webservice RESTFul é um Webservice que utiliza o protocolo REST e utiliza linguagem padrão para a troca de informação a notação JSON.

A Quem se Destina:

A qualquer empresa que deseja criar meios para que os seus clientes possam acompanhar em tempo real informações sobre os serviços/produtos aos quais ele contratou. Um bom exemplo é a Amazon, ela disponibiliza Webservices para que o cliente possa ter acesso as informações dos serviços em tempo real, permitindo inclusive que o cliente possa incorporar ao seu aplicativo as informações coletadas da Amazon.
O custo dessa tecnologia está focado apenas em dois pontos:
1- O valor que o Analista/Desenvolvedor de Sistemas poderá cobrar para a implementação do mesmo. O valor de hora varia de R$ 15,00 a R$ 65,00 dependendo da experiência do Desenvolvedor, da Linguagem escolhida e da complexidade do Webservice.
2- O Valor da Hospedagem desse serviço. Esse valor é difícil de ser calculado, pois depende de muitos fatores, como por exemplo, se a empresa usará um servidor próprio, se vai alugar um espaço para colocar seu servidor, se vai alugar um dedicado, se vai alugar um cloud ou se vai precisar de uma hospedagem apenas. O valor de exemplo colocado será baseado na locação de um servidor cloud na Amazon, o valor da mensalidade de um servidor cloud (instância micro) é em média R$ 62,00 por mês (esse valor foi calculado com base na tarifa em 27/11/2013 e tendo como base o valor do dólar a R$ 2,30).

Uso e Importância:

A utilização de Webservices é muito importante para que a empresa possa liberar informações para o cliente de forma segura e controlada (pois o banco de dados da empresa não precisa ficar "exposto" na internet) e permitindo que o cliente possa incorporar em seu aplicativo informações sobre o serviço/produto do fornecedor de forma facilitada, permitindo que o mesmo possa ter a informação atualizada no momento que precisar. Um bom exemplo é dado pela Amazon, onde o cliente pode utilizar o Webservice da Amazon para coletar a informação sobre seu servidor cloud diretamente de seu aplicativo, permitindo que o cliente saiba a informação sem a necessidade de ir até o site da Amazon. Outro bom exemplo seria de uma fornecedora de pneus.Se a fornecedora disponibilizasse um Webservice com a possibilidade de o cliente consultar preços, verificar disponibilidade de produtos e até de permitir que o cliente solicite um pedido de compra. O cliente poderia adicionar isso ao seu sistema, permitindo que ele saiba se o fornecedor tem ou não o produto que ele precisa e já realizar o pedido do produto tudo dentro do próprio sistema.

Fontes: http://www.matera.com/br/2012/10/como-funciona-um-webservice-rest/ 
         http://aws.amazon.com/pt/ec2/pricing/

JSON Um Formato Leve Para Troca de Dados

O que é o JSON?

JSON (JavaScript Object Notation - Notação de Objetos JavaScript) é uma formatação leve de troca de dados. Ele é baseado em um subconjunto da linguagem de programação JavaScript, é em formato texto e completamente independente de linguagem, usa convenções familiares às linguagens C e familiares, incluindo C++, C#, Java, Perl, Python e muitas outras. Estas propriedades fazem com que o JSON seja um formato ideal de troca de dados.
O JSON está constituído de duas estruturas:
  1- Uma coleção de pares/valor.
  2- Uma lista ordenada de valores.
Estas são estruturas de dados universais. É aceitável que um formato de troca de dados que seja independente de linguagem de programação se baseie nestas estruturas.

Em JSON os dados são apresentados dessa forma:
Um objeto é um conjunto desordenado de pares de nome/valor. Um objeto começa com "{" (abrir chave) e termina com "}" (fecha chave). Cada nome é seguido por ":" (dois pontos) e os pares nome/valor são seguidos por "," (vírgula).


Um array é uma coleção de valores ordenados. O array começa "[" (abrir cochete) e termina com "]" (fechar cochete). Os valores são separados por "," (vírgula).
 

Um valor (value, na imagem acima) pode ser uma cadeia de caracteres (string), ou um número, ou true, ou false, ou null, ou um objeto, ou um array. Estas estruturas podem estar aninhadas.
 
 Uma string é uma coleção de nenhum ou mais caracteres Unicode, envolvido entre aspas duplas usando barras invertidas como caracter de escape. Um caracter está representado como um simples caracter de string. Uma cadeia de caracteres é parecida com uma cadeia de caracteres em C ou Java.



 Um número é similar a um número em C ou Java, exceto quando não usa os números octais ou hexadecimais.


A quem se Destina:

A utilização do JSON se destina a qualquer empresa que deseja liberar informações para seus clientes utilizando Webservices, permitindo que o cliente possa se comunicar com a empresa diretamente (isso quer dizer que o cliente pode adicionar ao seu sistema rotinas para se comunicar diretamente com o seu fornecedor). A utilização do JSON não gera custo nenhum para a empresa, ela pode utilizar a tecnologia em seu Webservice sem custo.

Uso e Importância:

O JSON é utilizado em Webservices como forma padrão para troca de dados, surgiu para diminuir os custos com transferência de dados. Em comparação ao XML (hoje é muito utilizada em Webservices SOAP) o JSON tem uma redução em 50% do tamanho do arquivo contendo os mesmos dados, e em alguns casos pode chegar a uma diferença até maior. Com um menor tamanho de arquivo o JSON gera um custo com transferências bem menor se comparado ao XML, e possui uma velocidade maior para a transferência dos mesmos dados (quando comparado ao XML), já que o arquivo é bem menor, por isso, o JSON está sendo escolhido como formato padrão para transferência de dados em novas implementações de Webservices.

Fonte: http://www.json.org/  




terça-feira, 26 de novembro de 2013

Segurança e Controle de Dados com o Google Apps For Business




Segurança e Controle de Dados são fatores de suma importância para empresas que desejam gerencia suas informações na Web com seus Colaboradores, Fornecedores e/ou Clientes. Sob essa perspectiva, o “Google Apps for Business” tem como objetivo solucionar os problemas de Corporações ao incluir dezenas de recursos de Segurança com o intuito de manter os dados do cliente em constante segurança e sob total controle.

O que é Google Apps For Business?

O Google Apps For Business une serviços e produtos com o intuito de prover benefícios para corporações que necessitam de armazenamento e segurança dos seus Dados. Em suma, permite que o cliente possa controlar, inclusive, com quem compartilhar e disponibilizar os dados. Estes ficam disponíveis para os colaboradores através da mobilidade e independência da plataforma do usuário (exemplo: Android, iPhone, Blackberry, Windows Phone). Para a empresa, isso significa que todos os funcionários podem produzir a partir de qualquer lugar, através de qualquer dispositivo com conexão com a internet. Dentre os serviços destacam-se: Google Docs, Drive, Hangouts, Sites e gerenciamento do conteúdo da empresa salvo automaticamente na nuvem.

A quem se Destina:

O próprio titulo do post enfatiza que o “Google Apps For Business” destina-se a empresas que desejam gerenciar seus dados de maneira segura, objetivando reduzir o tempo com o gerenciamento da infraestrutura de TI. Os funcionários tem acesso aos softwares mais recentes, incluindo os recursos mais novos e atualizados para segurança em seus dados. O cliente não precisa comprar ou manter servidores, já que tudo pode ser gerenciado em uma única interface. O Google Apps é rápido para configurar e acompanha o crescimento da empresa. O Serviço custa apenas US$ 5,00 ao mês por usuário.

Uso e Importância:


As ferramentas avançadas e fáceis de usar do Google Apps ajudam os administradores a gerir usuários, documentos e serviços, e a acompanhar a utilização e os dados por meio de painéis de controle. O Google garante o funcionamento e disponibilidade dos dados em 99,9% do tempo. Os centros de dados são projetados para recuperar-se de desastres, garantido segurança e confiabilidade. Por fim, o Google Apps ajuda a corporação interagir com seus parceiros, fornecedores e/ou clientes disponibilizando executar tarefas, marcar reuniões e compartilhar documentos.

Fonte: http://www.google.com/intx/pt-BR/enterprise/apps/business/benefits.html

O que é cloud computing (computação nas nuvens)?

Introdução

A denominação cloud computing chegou ao conhecimento de muita gente em 2008, mas tudo indica que ouviremos este termo ainda por um bom tempo. Também conhecido no Brasil como computação nas nuvens ou computação em nuvem, cloud computing se refere, essencialmente, à ideia de utilizarmos, em qualquer lugar e independente de plataforma, as mais variadas aplicações por meio da internet com a mesma facilidade de tê-las instaladas em nossos próprios computadores.

Neste texto, você entenderá melhor o assunto e será apresentado aos conceitos relacionados.

Entendendo a cloud computing (computação nas nuvens)

Estamos habituados a armazenar arquivos e dados dos mais variados tipos e a utilizar aplicações de maneira on premise, isto é, instaladas em nossos próprios computadores. No ambiente corporativo, este cenário é apenas um pouco diferente, já que nele é mais fácil encontrar aplicações disponíveis em servidores que podem ser acessadas por qualquer terminal autorizado por meio de uma rede.

A principal vantagem deste modelo está no fato de ser possível, pelo menos na maioria das vezes, utilizar as aplicações mesmo sem acesso à internet ou à rede. Em outras palavras, é possível usar estes recursos de maneira off-line. Entretanto, todos os dados gerados estão restritos a este computador, exceto quando compartilhados em rede, coisa que não é muito comum no ambiente doméstico. Mesmo no ambiente corporativo, esta situação pode gerar algumas limitações, como a necessidade de se ter uma licença de um determinado software para cada computador, por exemplo.

A evolução constante da tecnologia computacional e das telecomunicações está fazendo com que o acesso à internet se torne cada vez mais amplo e cada vez mais rápido. Em países mais desenvolvidos, como Japão, Alemanha e Estados Unidos, é possível ter acesso rápido à internet pagando-se muito pouco. Esta tendência cria a condição perfeita para a popularização da cloud computing, fazendo com que o conceito se torne conhecido no mundo todo, inclusive no Brasil.

Com a cloud computing, muitos aplicativos, assim como arquivos e outros dados relacionados, não precisam mais estar instalados ou armazenados no computador do usuário ou em um servidor próximo. Este conteúdo passa a ficar disponível nas nuvens, isto é, na internet. Ao fornecedor da aplicação cabe todas as tarefas de desenvolvimento, armazenamento, manutenção, atualização, backup, escalonamento, etc. O usuário não precisa se preocupar com nenhum destes aspectos, apenas com acessar e utilizar.

Um exemplo prático desta nova realidade é o Google Docs, serviço onde os usuários podem editar textos, fazer planilhas, elaborar apresentações de slides, armazenar arquivos, entre outros, tudo pela internet, sem necessidade de ter programas como Microsoft Office ou OpenOffice.org instalados em suas máquinas. O que o usuário precisa fazer é apenas abrir o navegador de internet e acessar o endereço do Google Docs para começar a trabalhar, não importando qual o sistema operacional ou o computador utilizado para este fim. Neste caso, o único cuidado que o usuário deve ter é o de utilizar um navegador de internet compatível, o que é o caso da maioria dos browsers da atualidade.

Algumas características da cloud computing

Tal como já informado, uma das vantagens da cloud computing é a possibilidade de se utilizar aplicações diretamente da internet, sem que estas estejam instaladas no computador do usuário. Mas, há outras significativos benefícios:

- Na maioria dos casos, o usuário pode acessar determinadas aplicações independente do seu sistema operacional ou de hardware;

- O usuário não precisa se preocupar com a estrutura para executar a aplicação: hardware, procedimentos de backup, controle de segurança, manutenção, entre outros, ficam a cargo do fornecedor do serviço;

- Compartilhamento de dados e trabalho colaborativo se tornam mais fáceis, uma vez que todos os usuários acessam as aplicações e os dados do mesmo lugar: a "nuvem". Muitas aplicações do tipo já são elaboradas considerando estas possibilidades;

- Dependendo do fornecedor, o usuário pode contar com alta disponibilidade, já que se um servidor parar de funcionar, por exemplo, os demais que fazem parte da estrutura continuam a oferecer o serviço;

- O usuário pode contar com melhor controle de gastos. Muitas aplicações em cloud computing são gratuitas e, quando é necessário pagar, o usuário só o fará em relação aos recursos que usar ou ao tempo de utilização. Não é, portanto, necessário pagar por uma licença integral de uso, tal como acontece no modelo tradicional de fornecimento de software;

- Dependendo da aplicação, o usuário pode precisar instalar um programa cliente em seu computador. Mas, neste caso, todo ou a maior parte do processamento (e até mesmo do armazenamento de dados) fica por conta das "nuvens".

Note que, independente da aplicação, com a cloud computing o usuário não necessita conhecer toda a estrutura que há por trás, ou seja, ele não precisa saber quantos servidores executam determinada ferramenta, quais as configurações de hardware utilizadas, como o escalonamento é feito, onde está a localização física do data center, enfim. O que importa ao usuário é saber que a aplicação está disponível nas nuvens, não importa de que forma.

Software as a Service (SaaS)

Intimamente ligado à cloud computing está o conceito de Software as a Service (SaaS) ou, em bom português,Software como Serviço. Em sua essência, trata-se de uma forma de trabalho onde o software é oferecido como serviço, assim, o usuário não precisa adquirir licenças de uso para instalação ou mesmo comprar computadores ou servidores para executá-lo. Nesta modalidade, no máximo, paga-se um valor periódico - como se fosse uma assinatura - somente pelos recursos utilizados e/ou pelo tempo de uso.

Para entender melhor os benefícios do SaaS, suponha que uma empresa que tem vinte funcionários necessita de um software para gerar folhas de pagamento. Há várias soluções prontas para isso no mercado, no entanto, a empresa terá que comprar licenças de uso do software escolhido e, dependendo do caso, até mesmo hardware para executá-lo. Muitas vezes, o preço da licença ou mesmo dos equipamentos pode gerar um custo alto e não compatível com a condição de porte pequeno da empresa.

Se, por outro lado, a empresa encontrar um fornecedor de software para folhas de pagamento que trabalha com o modelo SaaS, a situação pode ficar mais fácil: essa companhia poderá, por exemplo, oferecer este serviço por meio de cloud computing e cobrar apenas pelo número de usuários e/ou pelo tempo de uso.

Desta forma, a empresa interessada paga um valor baixo pelo uso da aplicação. Além disso, hardware, instalação, atualização, manutenção, entre outros, ficam por conta do fornecedor. Também é importante levar em conta que o intervalo entre a contratação do serviço e o início de sua utilização é extremamente baixo, o que não aconteceria se o software tivesse que ser instalado nos computadores do cliente. Este só precisa se preocupar com o acesso ao serviço (no caso, uma conexão à internet) ou, se necessário, com a simples instalação de algum recurso mínimo, como um plugin no navegador de internet de suas máquinas.

IBM e HP são dois exemplos de companhias que já oferecerem soluções em SaaS: HP SaaS; IBM SaaS.
PaaS, DaaS, IaaS e TaaS

O mercado trabalha atualmente com conceitos derivados do SaaS, utilizados por algumas companhias para diferenciar os seus serviços. São eles:

- Platform as a Service (PaaS): Plataforma como Serviço. Trata-se de um tipo de solução mais amplo para determinadas aplicações, incluindo todos (ou quase todos) os recursos necessários à operação, como armazenamento, banco de dados, escalabilidade (aumento automático da capacidade de armazenamento ou processamento), suporte a linguagens de programação, segurança e assim por diante;

- Database as a Service (DaaS): Banco de Dados como Serviço. O nome já deixa claro que esta modalidade é direcionada ao fornecimento de serviços para armazenamento e acesso de volumes de dados. A vantagem aqui é que o detentor da aplicação conta com maior flexibilidade para expandir o banco de dados, compartilhar as informações com outros sistemas, facilitar o acesso remoto por usuários autorizados, entre outros;

- Infrastructure as a Service (IaaS): Infraestrutura como Serviço. Parecido com o conceito de PaaS, mas aqui o foco é a estrutura de hardware ou de máquinas virtuais, com o usuário tendo inclusive acesso a recursos do sistema operacional;

- Testing as a Service (TaaS): Ensaio como Serviço. Oferece um ambiente apropriado para que o usuário possa testar aplicações e sistemas de maneira remota, simulando o comportamento destes em nível de execução.

Exemplos de aplicações em cloud computing

Os termos cloud computing e computação nas nuvens são relativamente recentes, como você já sabe, mas se analisarmos bem, veremos que a ideia não é, necessariamente, nova. Serviços de e-mail, como Gmail e Yahoo! Mail; discos virtuais na internet, como Dropbox; sites de armazenamento e compartilhamento de fotos ou vídeos, como Flickre YouTube. Todos são exemplos de aplicações que, de certa forma, estão dentro do conceito de computação nas nuvens.

Note que todos estes serviços não são executados no computador do usuário, mas este pode acessá-los de qualquer lugar, muitas vezes sem necessidade de instalar aplicativos em sua máquina ou de pagar licenças de software. No máximo, paga-se um valor periódico pelo uso do serviço ou pela contratação de recursos adicionais, como maior capacidade de armazenamento de dados, por exemplo.

Abaixo, uma breve lista de serviços que incorporam claramente o conceito de cloud computing:

- Google Apps: este é um pacote de serviços que o Google oferece que conta com aplicativos de edição de texto, planilhas e apresentações (Google Docs), ferramenta de agenda (Google Calendar), comunicador instantâneo integrado (Google Talk), e-mail com o domínio próprio (por exemplo, contato@infowester.com), entre outros. Todos estes recursos são processados pelo Google - o cliente precisa apenas criar as contas dos usuários e efetuar algumas configurações. O Google Apps oferece pacotes gratuitos e pagos, de acordo com o número de usuários. Um dos maiores clientes do Google Apps é a Procter & Gamble, que contratou os serviços para mais de 130 mil colaboradores;

- Amazon: a Amazon é um dos maiores serviços de comércio eletrônico do mundo. Para suportar o volume de vendas no período de Natal, a empresa montou uma superestrutura de processamento e armazenamento de dados, que acaba ficando ociosa na maior parte do ano. Foi a partir daí que a companhia teve a ideia de "alugar" estes recursos, o que acabou resultando em serviços como o Simple Storage Solution (S3) para armazenamento de dados e Elastic Compute Cloud (EC2) para uso de máquinas virtuais. É possível saber mais sobre as soluções oferecidas pela Amazon nesta página;

- Panda Cloud Antivirus: como o nome indica, este é um programa antivírus da Panda Software, mas com uma grande diferença: a maior parte do trabalho necessário à ferramenta para pesquisar e eliminar malwares fica por conta das "nuvens". Com isso, de acordo com a Panda, essa solução acaba evitando que o antivírus deixe o computador lento;

Panda Cloud Antivirus

- Aprex: brasileiro, o Aprex oferece um conjunto de ferramentas para uso profissional, como calendário, gerenciador de contatos, lista de tarefas, disco virtual, blog, serviço de e-mail marketing, apresentações, entre outros. Tudo é feito pela Web e, no caso de empresas, é possível até mesmo inserir logotipo e alterar o padrão de cores das páginas. Há opções de contas gratuitas e pagas;

iCloud: anunciado em junho de 2011, trata-se de um serviço da Apple que armazena músicas, fotos, vídeos, documentos e outras informações do usuário. Seu objetivo é o de fazer com que a pessoa utilize "as nuvens" em vez de um computador em sua rede como "hub" para centralizar suas informações. Com isso, se o usuário atualizar as informações de um contato no iPhone, por exemplo, o iCloud poderá enviar os dados alterados automaticamente para outros dispositivos.

Nuvem privada (private cloud)

Até agora, tratamos a computação nas nuvens como um sistema composto de duas partes: o provedor da solução e o utilizador, que pode ser uma pessoa, uma empresa ou qualquer outra organização. Podemos entender este contexto como um esquema de nuvem pública. No entanto, especialmente no que diz respeito ao segmento corporativo, é possível também o uso do que se conhece como nuvem privada.

Do ponto de vista do usuário, a nuvem privada (private cloud) oferece praticamente os mesmos benefícios da nuvem pública. A diferença está, essencialmente, nos "bastidores", uma vez que os equipamentos e sistemas utilizados para constituir a nuvem estão dentro da infraestrutura da própria corporação.

Em outras palavras, a empresa faz uso de uma nuvem particular, construída e mantida dentro de seus domínios. Mas o conceito vai mais além: a nuvem privada também considera a cultura corporativa, de forma que políticas, objetivos e outros aspectos inerentes às atividades da companhia sejam respeitados.

A necessidade de segurança e privacidade é um dos motivos que levam uma organização a adotar uma nuvem privada. Em serviços de terceiros, cláusulas contratuais e sistemas de proteção são os recursos oferecidos para evitar acesso não autorizado ou compartilhamento indevido de dados. Mesmo assim, uma empresa pode ter dados críticos por demais para permitir que outra companhia responda pela proteção e disponibilização destas informações. Ou, então, a proteção oferecida pode simplesmente não ser suficiente. Em situações como estas é que o uso de uma nuvem privada se mostra adequado.

Uma nuvem privada também pode oferecer a vantagem de ser "moldada" com precisão às necessidades da companhia, especialmente em relação a empresas de grande porte. Isso porque o acesso à nuvem pode ser melhor controlado, assim como a disponibilização de recursos pode ser direcionada de maneira mais eficiente, aspecto que pode impactar diretamente na rotina corporativa.

Empresas como Microsoft, IBM e HP oferecem soluções para nuvens privadas. As entidades interessadas, no entanto, devem contar com profissionais ou mesmo consultoria especializada na criação e na manutenção da nuvem, afinal, uma implementação mal executada pode interferir negativamente no negócio.

Os custos de equipamentos, sistemas e profissionais da nuvem privada poderão ser elevados no início. Por outro lado, os benefícios obtidos a médio e longo prazo, como ampla disponibilidade, agilidade de processos e os já mencionados aspectos de segurança compensarão os gastos, especialmente se a implementação for otimizada com virtualização, padronização de serviços, entre outros.

Nuvem híbrida (hybrid cloud)

Para a flexibilização de operações e até mesmo para maior controle sobre os custos, as organizações podem optar também pela adoção de nuvens híbridas. Nelas, determinadas aplicações são direcionadas às nuvens públicas, enquanto que outras, normalmente mais críticas, permanecem sob a responsabilidade de sua nuvem privada. Pode haver também recursos que funcionam em sistemas locais (on premise), complementando o que está nas nuvens.

Perceba que nuvens públicas e privadas não são modelos incompatíveis entre si. Não é preciso abrir mão de um tipo para usufruir do outro. Pode-se aproveitar o "melhor dos dois mundos", razão pela qual as nuvens híbridas (hybrid cloud) são uma tendência muito forte nas corporações.

A implementação de uma nuvem híbrida pode ser feita tanto para atender a uma demanda contínua, quanto para dar conta de uma necessidade temporária. Por exemplo, uma instituição financeira pode integrar à sua nuvem privada um serviço público capaz de atender a uma nova exigência tributária. Ou então, uma rede de lojas pode adotar uma solução híbrida por um curto período para atender ao aumento das vendas em uma época festiva.

É claro que a eficácia de uma nuvem híbrida depende da qualidade da sua implementação. É necessário considerar aspectos de segurança, monitoramento, comunicação, treinamento, entre outros. Este planejamento é importante para avaliar inclusive se a solução híbrida vale a pena. Quando o tempo necessário para a implementação é muito grande ou quando há grandes volumes de dados a serem transferidos para os recursos públicos, por exemplo, seu uso pode não ser viável.

Um pouco sobre a história da cloud computing

Computação nas nuvens não é um conceito claramente definido. Não se trata, por exemplo, de uma tecnologia pronta que saiu dos laboratórios pelas mãos de um grupo de pesquisadores e posteriormente foi disponibilizada no mercado. Esta característica faz com que seja difícil identificar com precisão a sua origem. Mas há alguns indícios bastante interessantes.

Um deles remete ao trabalho desenvolvido por John McCarthy. Falecido em outubro de 2011, o pesquisador foi um dos principais nomes por trás da criação do que conhecemos como inteligência artificial, com destaque para a linguagem Lisp, até hoje aplicada em projetos que utilizam tal conceito.

John McCarthy - Imagem por Wikipedia

Além deste trabalho, no início da década de 1960, John McCarthy tratou de uma ideia bastante importante:computação por tempo compartilhado (time sharing), onde um computador pode ser utilizado simultaneamente por dois ou mais usuários para a realização de determinadas tarefas, aproveitando especialmente o intervalo de tempo ocioso entre cada processo.

Perceba que, desta forma, é possível aproveitar melhor o computador (na época, um dispositivo muito caro) e diminuir gastos, uma vez que o usuário somente paga, por exemplo, pelo tempo de uso do equipamento. É, de certa forma, uma ideia presente na computação nas nuvens.

Quase que na mesma época, o físico Joseph Carl Robnett Licklider entrou para a história ao ser um dos pioneiros da internet. Isso porque, ao fazer parte da ARPA (Advanced Research Projects Agency), lidou com a tarefa de encontrar outras utilidades para o computador que não fosse apenas a de ser uma "poderosa calculadora".

Nesta missão, Licklider acabou sendo um dos primeiros a entender que os computadores poderiam ser usados de maneira conectada, de forma a permitir comunicação de maneira global e, consequentemente, o compartilhamento de dados. Seu trabalho determinou a criação da Intergalactic Computer Network, que posteriormente deu origem à ARPANET, que por sua vez "abriu as portas" para a internet.

Embora possamos associar várias tecnologias, conceitos e pesquisadores ao assunto, ao juntarmos os trabalhos de John McCarthy e J.C.R. Licklider podemos ter uma grande ajuda na tarefa de compreender a origem e a evolução da cloud computing.

Por que uma nuvem?

Ao consultar livros de redes, telecomunicações e afins, pode-se perceber que o desenho de uma nuvem é utilizado para fins de abstração. Neste sentido, a nuvem representa uma rede de algum tipo cuja estrutura não precisa ser conhecida, pelo menos não naquele momento.

Por exemplo, se a ideia é a de explicar como funciona uma tecnologia de comunicação que interliga duas redes de computadores, não é necessário detalhar as características de cada uma. Assim, pode-se utilizar uma nuvem para indicar que há redes ali.

A computação nas nuvens simplesmente absorveu esta ideia, mesmo porque o desenho de uma nuvem, seguindo a ideia da abstração, passou também a representar a internet.

Finalizando

Na verdade, qualquer tentativa de definir o que é cloud computing pode não ser 100% precisa. Isso porque as ideias por trás da noção de computação nas nuvens são muito novas e as opiniões de especialistas em computação ainda divergem. Mas a noção básica é a que foi explicada neste artigo.

É claro que ainda há muita coisa por fazer. Por exemplo, a simples ideia de determinadas informações ficarem armazenadas em computadores de terceiros (no caso, os fornecedores de serviço), mesmo com documentos garantindo a privacidade e o sigilo, preocupam pessoas e, principalmente, empresas, motivo pelo qual este ponto precisa ser melhor estudado. Além disso, há outras questões, como o problema da dependência de acesso à internet: o que fazer quando a conexão cair? Algumas companhias já trabalham em formas de sincronizar aplicações off-line com on-line, mas tecnologias para isso ainda precisam evoluir bastante.

De qualquer forma, o futuro aponta para esse caminho. Além das mencionadas empresas neste artigo, companhias como Dell, Intel, Oracle e Microsoft já estão trabalhando nas mais variadas soluções para cloud computing. Esta última, por exemplo, já até anunciou o Azure, uma plataforma própria para a execução de aplicações nas "nuvens".