sábado, 3 de fevereiro de 2007

Webservice: O que é isso? Pra que serve?

Contextualizando


Cada um dos três últimos séculos foi dominado por uma única tecnologia. (..)

As principais conquistas tecnológicas do séc XX se deram no campo da informação. Entre outros desenvolvimentos, vimos a intalação das redes de telefonia em escala mundial(..) o nascimento e o crescimento sem presedentes da industria de computadores e o lançamento de satélites de comunicação.(..)

A medida que cresce a nossa capacidade de colher, processar e distribuir informações, torna-se ainda maior a necessidade de formas de processamento da informação ainda mais sofisticadas "1


Embora o surgimento dos protocolos de chamda remota (RPCs) não tenha nenhuma dependência com a Internet. É impotante considerar que seu aparecimento foi um combustível poderoso para o cenário de conectividade e interoperabilidade que vivenciamos. Antes da Internet, o discurso sobre a possibilidade de sistemas construídos com linguagens diferentes, rodando em plataformas diferentes, interagirem, era algo bem tímido, digamos assim. É bem provável que uma idéia como essa, antes da Internet, só poderia ser cogitada na cabeça de dois tipo extremos: um leigo ou de um Cyber-visionário.

Naquela época, da imaginação até a realização desta idéia, havia um abismo tecnológico a ser atravessado. Como fazer para que uma aplicação possa reconhecer os métodos da minha, e vice-versa? Qual o tipo de dado que uma determinada função da aplicação “X” retorna? Conhecendo, então, o tipo de dado que retorna, será que meu sistema suporta? E os parâmetros de entrada? Quantos seriam, quais seriam e de que tipo? O visionário diria: “...Eu só preciso de uma interface!!!...”. Todavia, a diversificação de arquiteturas, plataformas e linguagens é tamanha que a construção dessa interface seria demasiadamente dispendiosa, tanto no aspecto do trabalho de codificação, quanto no custo financeiro e mesmo assim, esta interface dificilmente poderia ser re-aproveitada em mais de uma circunstância.

O advento da Internet, de fato, fez com que vislumbrássemos mais de perto essa realização. Agora os computadores já podem interagir, evidentemente com algumas restrições. Na verdade, é o usuário que, através de um computador, interage com um outro computador. Podemos dizer que fisicamente está tudo consolidado. Não existem mais barreiras de arquitetura ou plataformas, desde que todos utilizem o mesmo protocolo. O TCP/IP (Transmission Control Protocol/Internet Protocol) é a língua comum dos computadores que integram a Internet.

Considerando que todos os avanços tecnológicos respondem a estímulos, a informática não foge a essa regra. É muito importante analisarmos algumas afirmações que foram propostas como leis a partir da consolidação da Internet, suas implicações para o ramo de desenvolvimento de software ante a demanda do mercado hoje, são elas:

Lei de Moore:

O número de transistores por centímetro quadrado em um chip dobraria a cada 18 meses.

Lei de Guilder:

A largura de banda da rede triplicaria a cada ano.

Lei de Metcalfe:

A utilidade da rede é equivalente ao quadrado do número de nós.

Embora muitos analistas e programadores ainda não tenham se dado conta, essas leis identificaram o espaço de evolução de nossos sistemas e têm sido um paradigma importante para o mercado de desenvolvimento de software.

Considerando a lei de Moore

Apesar das tecnologias convencionais tirarem proveito do aumento de nós nas redes (Lei de Metcalfe) e também do aumento da largura de banda da Internet (Lei de Guilder), o desenvolvimento de sistemas centralizados ou distribuídos, a partir de tecnologias proprietárias, ignora ou pelo menos tira muito pouco proveito da lei de Moore.

Ao levarmos em conta o aumento do poder de processamento e a miniaturização dos computadores (Moore), está cada vez mais próxima a realidade de que nossos equipamentos domésticos estejam capazes de prover serviços. Seu micro, seu Palm, seu celular já são capazes de fornecer diversos serviços, mas talvez você não saiba que isso já está se tornando uma realidade para sua geladeira, televisão e etc. Em breve, esses equipamentos, hoje coadjuvantes no mundo dos grandes servidores, passarão a exigir uma participação mais ativa no mundo dos objetos distribuídos. E como é que nós desenvolvedores iremos criar sistemas, não mais centralizados, que não seguem mais as regras às quais estamos acostumados? Ou como fazer para integrar sistemas de plataformas heterogenias e até mesmo sistemas legados?

Estamos caminhando para um mundo cada vez mais conectado, onde um número crescente de equipamentos, sistemas, aparelhos e pessoas precisarão se comunicar e trocar informações. Conectividade, integração, fusão, tornaram-se termos corriqueiros e são as aplicações construídas com uma arquitetura distribuída que farão desta visão a realidade, a qual somos nós os responsáveis por construir.

Cada vez mais, nos dia de hoje, cresce a demanda nos departamentos de informática dos mais diversos setores, corporativos ou não, por soluções que venham viabilizar e otimizar os serviços, a troca de informação, a interação e a integração de sistemas de informação. Precisamos, então, desenvolver interfaces capazes de atender essas necessidade de maneira eficiente e eficaz.

"...A fusão dos computadores e das comunicações teve uma profunda influência na forma como os sistemas computacionais eram organizados. Está totalmente ultrapassado o conceito de um "centro de computadores", (...) o velho modelo de um computador atendendo a todas as necessidades computacionais da organização foi substituido pelas chamdas redes de computadores, nais quais os trabalhos são realizados por uma série de computadores interconectados..."2

Os WebServices podem conectar os sistemas da empresa com serviços de parceiros, cadeias de fornecimento altamente otimizadas ou canais de entrega mais amplos, provendo um serviço em tempo real ao consumidor de um modo melhorado.

Os WebServices podem ser utilizados ainda, para agregar conteúdo interno e externo a aplicações, provendo portais mais dinâmicos e colaborativos. Eles são um modelo de aplicação que combina aspectos de desenvolvimentos baseados em componentes reutilizáveis. Este modelo está tendo grande aceitação no mercado e apoio de grandes indústrias de software, como Microsoft, IBM e Sun.

Assuntos Relacionados:

http://www.sei.cmu.edu/architecture/
http://pt.wikipedia.org/wiki/Arquitetura_de_software
http://en.wikipedia.org/wiki/Three-tier_%28computing%29
http://en.wikipedia.org/wiki/Distributed_computing

[2]Tanenbaun S. Andrew, Redes de computadores página 2





[1]Tanenbaun S. Andrew, Redes de computadores página 1

Um comentário:

 
BlogBlogs.Com.Br