blog Arquitetura de Soluções

por Waldemir Cambiucci

Do TCP/IP ao Software+Services, passando pelo REST...

Do TCP/IP ao Software+Services, passando pelo REST...

  • Comments 1

Olá pessoal, tudo certo?

Algumas tecnologias aparecem por movimentos históricos. Outras através de discussões corporativas ou por oportunidades de negócio. Outras no meio acadêmico como frutos de pesquisa. E existem aquelas que aparecem devido a uma mudança de pensamento, de abordagem ou mesmo pela visão de um grupo de pessoas ou de um fenômeno social. A internet surgiu em nossas vidas como uma mescla de todos esses fatores.

image Vamos olhar um pouquinho de história. Em plena Guerra Fria, a União Soviética cria o programa espacial Sputnik (que em russo significa "amigo"). Isso foi em 1957 e assim os soviéticos lançavam o primeiro satélite artificial a partir da Terra. Um choque para a humanidade.

Como a Guerra Fria movia a corrida tecnológica e sua principal representação estava no ambiente militar, a DARPA - Defense Advanced Research Projects Agency iniciou o projeto de construção de uma rede de computadores distribuída, descentralizada e que permitisse a segmentação de dados, assim como mecanismos de roteamento dinâmico, garantindo a comunicação entre todas as agências americanas envolvidas em caso de falha (ou ataque) de um de seus nós. Guerra Fria! A partir desse projeto surgiram os protocolos TCP/IP, que garantem esses mecanismos de transporte até os dias de hoje. Em outubro de 1969 o primeiro pacote TCP/IP via ARPANet era transmitido.

Os anos 60 e 70 avançavam e em 1974 o termo "internet" era usado pela primeira vez. Surgiram redes famosas como ARPANET, BITNET, MILNET, DARPANET, entre tantas outras. Em julho de 1980, um relatório da DCA - Defense Communications Agency, que administrava a ARPANET nesse período, já registrava 66 nós e mais de 4500 usuários!!! Hoje, somos mais de 1 bilhão e meio de usuários pela internet!!!

No final dos anos 80 a internet era liberada ao público, envolvendo universidades, agências civis e de pesquisa e assim, o mundo começava a mudar de forma irreversível. Em 1991, Tim Berners-Lee apresentou sua criação : a WWW - World Wide Web, uma interface orientada a links e páginas em hiper-texto (HTML), que seria o modo perfeito de navegação pela crescente massa de dados publicados na rede. O mundo não seria mais o mesmo.

A internet avançou pelos anos 90 mostrando seu valor informativo, obtendo adeptos de forma crescente. Vimos o surgimento de ferramentas e protocolos como Veronica, Gopher, Archie, Mozilla, Netscape, Telnet, FTP e assistimos as primeiras discussões sobre cliente/servidor, sistemas operacionais e a Sandra Bullock no filme "The Net". Algumas tecnologias não sobreviveram com o passar dos anos, mas em 1998 surge um elemento importante para a internet: o protocolo SOAP - Simple Object Acess Protocol. Até então, não existia uma especificação sobre XML e o processo de interoperabilidade entre empresas era muito custoso. A rede já se mostrava de grande valor para os negócios e com um potencial crescente para a integração de diversas indústrias. Por isso, a idéia de um padrão SOAP sobre HTTP que cruzasse as fronteiras de firewalls entre empresas era excepcional.

Entre 1998 e 2000, SOAP tornava-se o mecanismo ideal para a troca de informações e mensagens sobre o protocolo HTTP, que é a base da WWW. Nascia a visão dos Web Services, que permitiram a definição de serviços na web.

Nesses últimos 8 anos vimos diversas tecnologias surgindo ao redor da internet. Não vou me arriscar numa lista, mas gostaria de fazer uma simplificação: digamos que a internet passou por 2 grandes fases: da primeira fase, que eu chamo de web de páginas para a segunda fase, que vou chamar de web de serviços.

image Enquanto na primeira fase, SOAP e sua especificação atendia plenamente o modelo rígido de exportação de dados através de API's via Web Services, sendo um veículo perfeito para troca de mensagens entre empresas (com envelopes SOAP), a segunda fase nasceu com o advento da WEB 2.0, com uma abordagem diferente para os portais e presença na web, aplicações de composição, searches e motores de busca sobre dados, etc.

Vamos falar um pouco sobre o fenômeno REST - Representational State Transfer. O termo REST foi definido em 2000, na tese de doutorado do PhD Roy T. Fielding. Entre os principais elementos da arquitetura REST, como definida na tese, temos:

  • Todo recurso deve ser representado por um Id ou URI - Uniform Resource Identifier;
  • Utilize links para a associação de recursos;
  • Utilize métodos padrão, para consulta, alteração, criação ou deleção de recursos;
  • Recursos podem ser representados em múltiplos formatos;
  • Utilize comunicação stateless, sem estado, etc.;

Apesar de seus 8 anos de fundamentação acadêmica, só recentemente a Web 2.0 trouxe a necessidade pela representação de dados num formato mais dinâmico, permitindo a realização de interfaces ricas via web ou RIA - Rich Internet Application, assim como a flexibilidade e experiência do usuário obtidas com o AJAX - Asynchronous Javascript And XML. Essa necessidade fez crescer a discussão sobre arquiteturas RESTful.

Hoje, estamos presenciando até discussões RESTful-manics, por exemplo: sua arquitetura é LOW-REST ou HI-REST? Digamos que LOW-REST são interfaces menos rígidas e mais pragmáticas, mesclando alguns vevrbos do HTTP (GET, POST, PUT e DELETE) com estruturas AJAX e chamadas em formatos JSON, enquanto HI-REST são mais rígidas ou mesmo "puristas" em relação aos princípios do modelo original.

Seja SOAP ou REST, a web está se tornando cada vez mais uma web de serviços. Formatos e protocolos como JSON, ATOM, RSS, SOAP, REST, POX, etc. estão aparecendo enquanto caminhamos entre software local (on-premise) ou na nuvem (in the cloud). Voltamos ao assunto de sempre, o Software + Services. De fato, uma nova plataforma de serviços está sendo desenvolvida e a internet irá mudar novamente. Mais integração, interoperabilidade, escalabilidade, mas acima de tudo, mais opções para nossas arquiteturas e soluções.

Bom, depois dessa discussão, o que podemos dizer?

SOAP é show!!!
REST é show!!! 
Use WCF 3.5 para implementar os dois e fique de olho no Software + Services!!! 

Por enquanto é só! Até o próximo post :)

Waldemir.

Leave a Comment
  • Please add 4 and 1 and type the answer here:
  • Post