Do TCP/IP ao Software+Services, passando pelo REST...
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.
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.
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.
Comments
- Anonymous
May 29, 2009
PingBack from http://paidsurveyshub.info/story.php?title=arquitetura-de-solu-es-do-tcp-ip-ao-software-services-passando-pelo