Tecnologia e Análise em Desenvolvimento de Software – Terceiro Ano Introdução • Alguns dos aspectos da tecnologia de Web Services nos despertam muita atenção porque, em primeiro lugar, eles são processados via Internet (à qual praticamente toda empresa está conectada), Intranet ou outras redes baseadas em IP. – Em segundo lugar, importantes fornecedores de tecnologia, como IBM, Microsoft, Oracle e Sun, concordaram em apoiar um conjunto de padrões que definem como sistemas diferentes devem interagir entre si, num nível até então improvável de cooperação entre concorrentes. – Além disso, a abordagem de Web Services não torna necessariamente as tecnologias de integração anteriores obsoletas, mas viabiliza tipos de integração anteriormente muito complexos. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • No início da década de 90, a grande novidade nos sistemas corporativos era a arquitetura cliente/servidor, expressão que designa um tipo de arquitetura de sistemas que se contrapôs a dois modelos utilizados anteriormente: os sistemas centralizados e os micros isolados. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • No primeiro, todos os dados e funcionalidade do sistema da empresa residiam em computadores de grande porte, os chamados Mainframes. Os terminais utilizados não possuíam nenhuma capacidade de processamento ou armazenamento de dados local, caracterizando um sistema extremamente inflexível. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • Com o adventos das LANs (Local Area Network) a situação começou a melhorar. Os arquivos e programas mais importantes passaram a residir num servidor de arquivos, protegidos por senhas e backups automáticos. O gerenciamento das impressoras passou ser também centralizado, otimizando sua utilização. Todo o processamento ainda se concentrava na própria estação de trabalho do usuário. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • Com o adventos das LANs (Local Area Network) a situação começou a melhorar. Os arquivos e programas mais importantes passaram a residir num servidor de arquivos, protegidos por senhas e backups automáticos. O gerenciamento das impressoras passou ser também centralizado, otimizando sua utilização. Todo o processamento ainda se concentrava na própria estação de trabalho do usuário. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • Entretanto, os sistemas baseados em bancos de dados, espinha dorsal da maioria das empresas, continuavam a residir nos Mainframes, com interfaces não-amigáveis. Para integrar os sistemas de bancos de dados aos microcomputadores que tornavam-se cada vez mais comuns nas mesas dos usuários, começou a ser difundido o conceito de arquitetura cliente/servidor. A Evolução dos Sistemas Distribuídos Arquitetura Cliente / Servidor • A grande novidade desta arquitetura é a separação dos aplicativos corporativos e do processamento de transações em duas partes, uma executada no servidor e outra na máquina do cliente. Nesses aplicativos distribuídos, a porção servidor é responsável pela segurança e pela integridade dos dados, enquanto o cliente serve para exibir os dados numa interface amigável e de modo personalizável ao usuário final. Este modelo, embora amplamente difundido, possui um alto custo de suporte e manutenção. A Evolução dos Sistemas Distribuídos Arquitetura Orientada a Objetos • Na programação distribuída usando a arquitetura cliente-servidor, clientes e servidores podem ser implementados usando qualquer paradigma de programação. Assim, é possível que um serviço específico seja executado por um método de algum objeto. No entanto, mesmo que o cliente também tenha sido desenvolvido orientação a objetos, na comunicação entre o cliente e o servidor esse paradigma deve ser esquecido, devendo ser utilizado algum protocolo preestabelecido de troca de mensagens para a solicitação e resposta ao serviço. A Evolução dos Sistemas Distribuídos Arquitetura Orientada a Objetos • Um sistema de objetos distribuídos é aquele que permite a operação com objetos remotos. Dessa forma é possível, a partir de uma aplicação cliente orientada a objetos, obter uma referência para um objeto que oferece o serviço desejado e, através dessa referência, invocar métodos desse objeto, mesmo que a instância desse objeto esteja em uma máquina diferente daquela do objeto cliente. A Evolução dos Sistemas Distribuídos Internet / Intranet • Um sistema de objetos distribuídos é aquele que permite a operação com objetos remotos. Dessa forma é possível, a partir de uma aplicação cliente orientada a objetos, obter uma referência para um objeto que oferece o serviço desejado e, através dessa referência, invocar métodos desse objeto, mesmo que a instância desse objeto esteja em uma máquina diferente daquela do objeto cliente. A Evolução dos Sistemas Distribuídos Internet / Intranet • A partir de 1994, o fenômeno da Web mostrou um novo modelo de integração de sistemas, constituindo-se de padrões abertos, com maior independência em relação aos fornecedores, trazendo um novo enfoque para a relação cliente/servidor. Por meio de formulários desenvolvidos em linguagem HTML (Hypertext Markup Language), clientes e servidores podem trocar informações, pode-se ter acesso a bancos de dados, documentos ficam a disposição de usuários na rede e grupos de trabalho encontram meios para o desenvolvimento de trabalhos colaborativos. A Evolução dos Sistemas Distribuídos Internet / Intranet • Todas estas facilidades encontradas na Web acabaram sendo levadas para dentro das corporações, por meio de uma versão doméstica da Internet, a Intranet, tecnologia que vem varrendo o mundo empresarial. Embora a Intranet ainda apresente limitações no desenvolvimento de aplicações que acessem bancos de dados no estilo do modelo cliente/servidor, seu baixo custo e facilidade de implantação vêm fazendo com que cada vez mais empresas adotem esta tecnologia. A Evolução dos Sistemas Distribuídos Internet / Intranet • Nos últimos anos diversos padrões foram propostos para a implementação do conceito de sistemas distribuídos. Um modelo muito popular tem sido o de separação de uma aplicação em camadas, apresentação, negócio e dados. No entanto, ainda nos deparamos com alguns problemas que impedem que este modelo desenvolva-se plenamente, tais como: A Evolução dos Sistemas Distribuídos Internet / Intranet • complexidade de implementação e, principalmente, implantação. Sistemas escritos em diferentes linguagens, e não raro em plataformas distintas, sofrem ainda de um mal bem mais grave, a incompatibilidade entre os tipos de dados, além da necessidade de forte envolvimento das equipes técnicas de ambos os lados no processo de integração. Estas tem sido as principais causas da baixa integração entre os sistemas de clientes e fornecedores mesmo com toda a facilidade de infraestrutura de comunicação existente hoje em dia.