Grátis
175 pág.

Denunciar
5 de 5 estrelas









3 avaliações
Enviado por
Akira Tanaka
5 de 5 estrelas









3 avaliações
Enviado por
Akira Tanaka
Pré-visualização | Página 7 de 43
empresa não “sentir tanto” o impacto de um evento negativo no mercado, por estar organizada de forma que consegue absorver com menos “dor”. 6 Responsividade é usada para expressar a capacidade da empresa em responder rápido ao mercado quando há oportunidades não previstas. Responder inclui perceber logo e agir no contexto da oportunidade. Arquitetura Orientada a Serviço Aula 03 Fundamentos da SOA: Arquitetura Distribuída e Sistemas de Softwares Objetivos Específicos • Identificar os tipos de softwares existentes e compreender como a SOA integra aplicações de tecnologia distintas. Temas Introdução 1 Saindo do modelo de silos para a arquitetura distribuída 2 A computação distribuída 3 A importância da criação de padrões 4 Softwares importantes para a SOA Considerações finais Referências Mikiko Ishida Professor Autor Senac São Paulo - Todos os Direitos Reservados Arquitetura Orientada a Serviço 2 Introdução Como chegamos à arquitetura orientada a serviço? De aplicações monolíticas à arquitetura de sistemas distribuídos até chegar à arquitetura orientada a serviço. Como foi possível? Quais são os softwares1 ou tecnologias que ajudam a aplicar realmente os princípios da orientação a serviços? Nesta aula, vamos voltar um pouco no tempo e ver as respostas a essas perguntas e também entender como tudo se encaixa através da arquitetura de software, que viabiliza a implementação das regras, as quais devem ser cumpridas para que a orientação a serviços e seus princípios sejam continuamente aplicados. 1 Saindo do modelo de silos para a arquitetura distribuída No início da Tecnologia da Informação, o “usuário” (quem solicitava um sistema para automatizar ou resolver um problema) explicava quais funcionalidades queria e o programador anotava o que entendia para começar a codificar o programa, sem criar uma arquitetura. À medida que os negócios evoluíram e os requisitos aumentaram, os programadores criaram estruturas sistemáticas para organizar os programas e o negócio. Assim começou a arquitetura, no começo, qualquer design básico de um sistema era conhecido como uma arquitetura. Ao descrever uma estrutura de software, os princípios de design fundamentais aplicados são chamados de “arquitetura de software”. A ideia da arquitetura implica em um planejamento de acordo com um conjunto de diretrizes e regras. Uma boa arquitetura de software especifica como os dados são armazenados, como os usuários interagem com o sistema, como os programas se comunicam e assim por diante. Na ciência da computação, a arquitetura descreve o design geral e a estrutura de um sistema de computador. Já os diagramas de arquitetura de software descrevem os componentes de um sistema de computação, oferecendo indicação de como eles se conectam e interagem (HURWITZ et al., 2009, p. 45). Na época dos silos, as empresas ou governos tinham aplicações de software especializadas para executar funções de negócio, por exemplo, receber e executar um pedido de cliente. Porém, a otimização dos processos de negócio demandou a necessidade de interagir com outros sistemas para acessar informações de locais diferentes. A necessidade de integrar outros sistemas implicava em altos custos e esforços, levando muitas vezes os programadores a criarem novos códigos para resolver o problema, por exemplo, criando uma base replicada de outro sistema, o que, consequentemente, resultou em mais silos. Veja a seguir uma figura ilustrativa (Figura 1) para entender o que acontecia com uma aplicação. 1 Softwares são programas de computador, as estruturas de dados e a documentação associada juntos. Os softwares podem ser: sistema básico: do tipo editor, compilador, sistemas operacionais, drivers; aplicação ou aplicativo: controla os negócios e processos; embutido; Web e legado. Senac São Paulo - Todos os Direitos Reservados Arquitetura Orientada a Serviço 3 Figura 1 – Aplicação monolítica – todos os tipos de operação em um bloco autocontido Fonte: Adaptada de IBM (2015). 2 A computação distribuída A computação distribuída surgiu para atender à necessidade de integração entre sistemas que estão em computadores de locais diferentes, para realizar uma tarefa de negócio. É um termo que descreve uma arquitetura de hardware e software em que mais de um computador participa da realização de determinada tarefa. Veja como Pulier e Taylor (2008, p. 7) descrevem a computação distribuída. Cada computador que participa da execução da tarefa de negócio deve ser apto a se comunicar com o outro computador ou outros computadores envolvidos na tarefa. E como os computadores em ambiente distribuído se comunicam? As máquinas podem se comunicar através de uma variedade de métodos, da Internet à Rede de Longa Distância (WANs2) ou Redes Locais (LANs3) dedicadas. Virtualmente, mensagens são a fonte de todas as questões e soluções relacionadas ao gerenciamento de computação distribuída. A troca eletrônica de dados (EDI4), a integração de aplicações corporativas (EAI5) ou outras formas com as quais os fornecedores de TI tentam resolver os desafios da computação distribuída realizam a transmissão, o recebimento e a resposta a mensagens entre os computadores envolvidos para solucionar a necessidade de integração. 2 WAN vem do termo em inglês, Wide Area Network. 3 LAN vem do termo em inglês, Local Area Network. 4 EDI vem do termo em inglês, Electronic Data Interchange. 5 EAI vem do termo em inglês, Enterprise Application Integration. Senac São Paulo - Todos os Direitos Reservados Arquitetura Orientada a Serviço 4 Já o Web service é uma evolução dessas técnicas utilizadas para transmitir mensagens entre computadores em ambientes distribuídos e mais, com padronização. 2.1 Problemas da interoperabilidade Geralmente, os computadores eram de diferentes fabricantes com diferentes sistemas operacionais, que rodavam vários softwares escritos também de forma diferente e por equipes distintas. Ou seja, as informações não eram entendidas e nem transmitidas de forma compatível. Os sistemas precisavam de um “tradutor” entre eles, ou seja, uma interface. Uma interface é como um software (intermediário), que interpreta e transmite mensagens entre dois computadores que estão operando em uma arquitetura distribuída, representada na Figura 2. E é claro que esta interface precisa estar disponível para que esta comunicação aconteça. Porém, a partir do uso de interfaces alguns problemas surgiram. Figura 2 – Primeira forma de integração – início da computação distribuída Fonte: Adaptada de Pulier e Taylor,(2008, p. 9). Na computação distribuída, as interfaces de software servem como intermediárias de processamento de mensagens entre computadores que precisam se comunicar. Algumas características das interfaces desta época são: a. Padrões proprietários – a utilização de interfaces feitas sob medida começou a crescer. Quando havia necessidade de criar uma comunicação entre um sistema e o outro, ao tentar reutilizar a interface já existente, verificava-se que não atendia totalmente à necessidade e o programador geralmente decidia escrever outra interface específica para o novo problema que estava sendo solucionado. Com isso, o volume de interfaces do tipo sob medida aumentou, contendo padrões proprietários e funções redundantes. Senac São Paulo - Todos os Direitos Reservados Arquitetura Orientada a Serviço 5 b. Acoplamento forte – a adição de novos computadores a uma interface existente que trabalha com padrão proprietários adiciona mais código proprietário e cria uma arquitetura de integração fortemente acoplada (Figura 3). E a cada novo sistema que precisar se comunicar com estes já existentes, precisará criar um programa de interface de software para estabelecer a conectividade. Qualquer mudança que seja requerida neste cenário implica em gastar muito tempo e dinheiro. Cada computador tem suas próprias “fechadura e chave” para transmitir e receber mensagens. Neste contexto, a expressão