Prévia do material em texto
Prof. Me. Michel Fernandes UNIDADE II Desenvolvimento de Sistemas Distribuídos Service-Oriented Architecture (SOA) Método de desenvolvimento de software que utiliza componentes de software denominados serviços com o objetivo de criar aplicações de negócios baseadas em padrões. Serviços podem executar em diferentes computadores a partir de diferentes fornecedores de serviços. Foram desenvolvidos protocolos-padrão para dar suporte à comunicação de serviços. Arquitetura Orientada a Serviços (SOA) Cada serviço é responsável pelo fornecimento de um recurso de negócio, e os serviços podem se comunicar entre si em diversas linguagens de programação e plataformas Arquitetura Orientada a Serviços (SOA) Fonte: Autoria própria. Serviços podem ser prestados localmente ou terceirizados para provedores externos. Os serviços são independentes da linguagem. Investimentos em sistemas legados podem ser preservados. A computação interorganizacional é facilitada por meio da troca simplificada de informações. Benefícios do SOA As principais características do SOA são: Serviços: um serviço é uma representação computacional de uma funcionalidade de negócios. Nível de interoperabilidade elevado: aptidão de se comunicar com diferentes sistemas, dispositivos ou empresas de forma a trocar informações eficientemente e de modo padronizado. Acoplamento fraco: dependências entre os sistemas são reduzidas e, por meio da diminuição delas, os efeitos das modificações são atenuados e os sistemas podem ser executados mesmo quando uma parte fica fora do ar. Arquitetura Orientada a Serviços (SOA) Um processo pode ser entendido como um conjunto definido de atividades executadas para alcançar metas e pode ser realizado por pessoas ou dispositivos computacionais. A Modelagem de Processos de Negócios, em inglês Business Process Modeling (BPM), representa o conhecimento e as análises dos processos e dos relacionamentos com os dados. Divisão de processos de negócios em atividades menores que são os serviços. Ciclo de vida dos serviços define as diferentes etapas necessárias para que um serviço seja implementado. Políticas e Processos Exemplo de aplicação: Sistema gerenciador de planos de saúde aplicando conceitos relacionados à orientação a serviços. Visão SOA Fonte: Adaptado de: Silva (2006, p. 12). Web Services Instância de uma noção mais geral de um serviço. “Um ato ou desempenho oferecido por uma parte à outra. Embora o processo possa estar vinculado a um produto físico, o desempenho é essencialmente intangível e normalmente não resulta em posse de qualquer dos fatores de produção”. Desenvolvimento de sistemas sejam mais ágeis e aumentem a eficiência na comunicação entre aplicações e serviços. Serviços Web Fonte: Rodrigues et al. (2020, p. 186). Sistema web legado Banco de dados Web Service Aplicação mobile iOS Aplicação mobile Android Existem cinco padrões fundamentais utilizados em Serviços Web: XML. HTTP. WSDL. SOAP. UDDI. E os padrões WSDL, SOAP e UDDI foram criados especificamente para Serviços Web. Padrões de Serviços Web XML: para descrever modelos, formatos e tipos de dados. Todos os padrões de serviços são baseados no XML, na definição do esquema XML e no domínio de nomes XML. HTTP: Utilizado para transferência de páginas web entre o cliente e o servidor web na internet. Versão com mais serviços de segurança: HTTPS. XML e HTTP já existiam antes de Serviços Web. Padrões de Serviços Web Qual é o nome do protocolo utilizado como padrão de troca de mensagens que suporta a comunicação de serviço? a) SOA. b) SOAP. c) XML. d) WSDL. e) UDDI. Interatividade Qual é o nome do protocolo utilizado como padrão de troca de mensagens que suporta a comunicação de serviço? a) SOA. b) SOAP. c) XML. d) WSDL. e) UDDI. Resposta Simple Object Access Protocol, ou protocolo simples para acesso de objeto. Protocolo da camada aplicação. O SOAP provê uma forma de comunicação entre as aplicações em execução de diversos sistemas operacionais com diferentes tecnologias e linguagens de programação. Mensagem SOAP é um documento XML tradicional. Especificação padronizada pelo W3C. Define um envelope para transmissão de mensagens, oferece regras para representar “Remote Procedure Calls” (RPCs). Protocolo SOAP Mensagem SOAP é composta de 4 elementos: elemento de envelope que identifica o documento XML e a mensagem SOAP; elemento de cabeçalho ou Header; elemento de corpo da mensagem que contém a informação pedida e a resposta; elemento de falha contendo os erros e o estado da solicitação. Componentes da mensagem SOAP Fonte: Rodrigues et al. (2020, p. 69). Envelope Cabeçalho Bloco do cabeçalho Corpo Falha Estrutura da mensagem SOAP: Estrutura da mensagem SOAP Define o documento XML como uma mensagem SOAP. O nome de domínio do SOAP é colocado após xmlns:soap, como o valor de “http://www.w3.org/2003/05/soap-envelope”. Atributo encodingStyle é utilizado para definição dos tipos de dados presentes no documento. Estrutura da mensagem SOAP: Envelope É opcional e contém informações específicas sobre a aplicação, como autenticação ou pagamento sobre uma mensagem SOAP. Atributos apresentados no cabeçalho definem como o receptor deve processar a mensagem SOAP e são: mustUnderstrand (indicar se a entrada do cabeçalho é mandatória ou opcional); actor (é utilizado para endereçar o elemento do cabeçalho para um endpoint específico); e encodingStyle (tipos de dados a serem trabalhados). Estrutura da mensagem SOAP: Cabeçalho É obrigatório e contém a real mensagem que deseja se transmitir para o endpoint final da mensagem. Todos os elementos filhos de um corpo são chamados de entradas do corpo e cada entrada é codificada de forma independente dentro do corpo do SOAP. Uma entrada de corpo, ou body entry, é identificada por um nome de elemento completamente qualificado, que consiste em um espaço de nomes URI e um nome local. Atributo encodingStyle pode ser indicado para codificar um estilo usado para entradas de corpo. Estrutura da mensagem SOAP: Corpo O elemento de falha é composto por 4 partes: faultcode (código de falha); faultstring (texto sobre a falha); faultactor (falha do ator); details (detalhes). Estrutura da mensagem SOAP: Falha A especificação do SOAP define a estrutura das mensagens SOAP. A forma como a mensagem é enviada. Essa lacuna é coberta pela vinculação do SOAP, ou SOAP Bindings. Mecanismos que permitem a troca efetiva de mensagens SOAP utilizando um protocolo da camada de transporte. SOAP possibilita que dois processos (possivelmente em duas máquinas diferentes) se comuniquem, desconsiderando o hardware e a plataforma em que eles estão sendo executados. SOAP é um protocolo aberto e foi adotado pela maioria das grandes empresas de hardware e software. Estrutura da mensagem SOAP Considere o segmento de código que transporta um objeto denominado revista. Este segmento representa qual campo da mensagem SOAP? a) Envelope. b) Cabeçalho. c) Corpo. d) Checksum. e) Falha. Interatividade Considere o segmento de código que transporta um objeto denominado revista. Este segmento representa qual campo da mensagem SOAP? a) Envelope. b) Cabeçalho. c) Corpo. d) Checksum. e) Falha. Resposta Mensagem SOAP está embutida na requisição do protocolo HTTP: Exemplo de mensagem SOAP: ObterUltimoPreco Mensagem SOAP embutida na resposta do protocolo HTTP: Exemplo de mensagem SOAP: ObterUltimoPreco Prestadores de serviços podem desenvolver serviços especializados e oferecer estes a uma variedade de usuários de serviços de diferentes organizações. 3 papéis em um Serviço Web: Service Consumer ou Consumidor de Serviços. Service Broker ou Corretor de Serviços. Service Provider ou Provedor de Serviços. Papéis em um serviço Web Fonte: Autoria própria. 1: Registro do serviço 2: Descoberta do serviço 3: Chamada do serviço Service Broker Corretor de serviços Service Provider Provedor de serviços Service Consumer Consumidor de serviços Padrão Web Services Description Language (WSDL): Utilizado para definir interfaces de serviço, representada por assinatura dos nomes e parâmetros e detalhes de como acessá-los e dos métodos e operações disponíveis. Baseado no padrão XML. Protocolo Simples de Acesso a Objetos (SOAP): Padrão que define o protocolo de Serviços Web. Protocolo da camada aplicação. Descrição, Localização e Integração Universais (UDDI). Gerenciamento de Serviço Web, por exemplo, para registro e busca de serviços. Padrões de Serviços Web Descrição, Localização e Integração Universais. O foco do UDDI é a definição de um conjunto de serviços que suportam a descrição e descoberta de negócios, organização e outros provedores de Serviços Web e interfaces técnicas que podem ser usados para acessar esses serviços. Padrão UDDI é utilizado para o gerenciamento de Serviço Web, por exemplo, para registro e busca de serviços. O UDDI é um protocolo baseado em SOAP que define como os clientes se comunicam com os registros UDDI. UDDI Padrão Web Services Description Language (WSDL). Utilizado para definir interfaces de serviço e é baseado no padrão XML. A linguagem WSDL descreve dois aspectos distintos de um serviço: sua assinatura representada por nomes e parâmetros e detalhes de como acessá-los e dos métodos e operações disponíveis, abordando questões de protocolo e localização. A linguagem WSDL descreve dois aspectos distintos de um serviço: sua assinatura representada por nomes e parâmetros e detalhes de como acessá-los; e métodos e operações disponíveis, abordando questões de protocolo e localização. WSDL Divisão da plataforma SOA em três componentes básicos: transporte, utilizando SOAP e XML; descrição, através da linguagem WDSL; e a busca por serviços com o UDDI. Arquitetura SOA Fonte: Rodrigues et al. (2020, p. 101). No que se refere à SOA e aos web services, assinale a opção correta: a) O SOAP propõe uma série de extensões para aprimorar a segurança dos web services no UDDI e no WSDL. b) UDDI é um serviço de diretório em que é possível registrar e localizar web services. c) WSDL é descrito em formato XML e tem por única função descrever os valores e formatos dos dados que serão intercambiados entre os sistemas. d) SOAP é um protocolo statefull, independente de sistema operacional, projetado para ser simples e extensível por meio de tecnologia XML. e) SOA é uma arquitetura de desenvolvimento cujo objetivo é criar módulos funcionais denominados serviços, fortemente acoplados e independentes de plataforma. Interatividade No que se refere à SOA e aos web services, assinale a opção correta: a) O SOAP propõe uma série de extensões para aprimorar a segurança dos web services no UDDI e no WSDL. b) UDDI é um serviço de diretório em que é possível registrar e localizar web services. c) WSDL é descrito em formato XML e tem por única função descrever os valores e formatos dos dados que serão intercambiados entre os sistemas. d) SOAP é um protocolo statefull, independente de sistema operacional, projetado para ser simples e extensível por meio de tecnologia XML. e) SOA é uma arquitetura de desenvolvimento cujo objetivo é criar módulos funcionais denominados serviços, fortemente acoplados e independentes de plataforma. Resposta Papéis do Serviço Web e padrões e protocolos utilizados. Arquitetura SOAP X Padrões Fonte: Autoria própria. Padrão alternativo aos Serviços Web é denominado Transferência de Estado Representacional, ou Representational State Transfer (REST). Foi criado em 2000 por Roy Fielding. Arquitetura de redes aplicada para fornecer padrões entre sistemas computacionais na internet com foco no acesso a recursos simples e sem estado (stateless). Sistemas que operam em conformidade com REST são chamados de RESTful. Usados por muitas organizações que executam serviços baseados em sistemas que não dependem de serviços fornecidos externamente. Padrão REST Pontos positivos: Simplicidade. Baixo overhead de comunicação. Pontos a observar: Menor segurança. Menor controle transacional. Padrão REST No caso do RESTful, o HTTP utiliza quatro métodos fundamentais do protocolo HTTP: GET; PUT; POST; e DELETE. Padrão REST WADL (Web Application Description Language) é a linguagem que descreve os elementos para o REST. Similar a WSDL. Cada recurso (substantivo, entidade) é modelado como uma URI. http://editoraexemplo.com.br/api/livros http://editoraexemplo.com.br/api/livros/7 http://editoraexemplo.com.br/api/livros/7/depoimentos?page=2&size=10 Padrão REST Existem 6 diretrizes para considerar uma arquitetura como RESTful: 1. Uma arquitetura formada por recursos, servidores e clientes. 2. Comunicação staless entre servidor e cliente, ou seja, nenhum conteúdo do cliente é armazenado no servidor entre as solicitações. 3. Dados que possam ser armazenados em cache para eliminar a necessidade de algumas interações entre o cliente e o servidor. 4. Uma interface uniforme de componentes para as informações serem transferidas em um formato padronizado, em vez de específico às necessidades de uma aplicação. 5. Uma limitação de sistema em camadas, em que as interações entre cliente e servidor são mediadas por níveis de hierarquia. 6. Código sob demanda, o que possibilita que os servidores ampliem as funcionalidades de um cliente ao transferir os códigos executáveis. Como esse processo também pode reduzir a visibilidade, esta é uma diretriz opcional. Diretrizes da arquitetura RESTful Considerando os protocolos SOAP e REST, assinale a afirmação correta. a) O REST utiliza a informação de estado dos seus elementos. b) O protocolo SOAP é proprietário e não pode ser alterado. c) REST (Representational State Transfer) demanda mais recursos computacionais que o modelo de desenvolvimento de sistemas embasado em SOAP. d) REST garante a segurança da aplicação frente a qualquer vulnerabilidade. e) REST utiliza métodos do HTTP como: GET, POST, PUT e DELETE. Interatividade Considerando os protocolos SOAP e REST, assinale a afirmação correta. a) O REST utiliza a informação de estado dos seus elementos. b) O protocolo SOAP é proprietário e não pode ser alterado. c) REST (Representational State Transfer) demanda mais recursos computacionais que o modelo de desenvolvimento de sistemas embasado em SOAP. d) REST garante a segurança da aplicação frente a qualquer vulnerabilidade. e) REST utiliza métodos do HTTP como: GET, POST, PUT e DELETE. Resposta COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas Distribuídos – Conceitos e Projeto. Porto Alegre: Bookman, 2013. MONTEIRO, Eduarda R.; JUNIOR, Ronaldo C. M.; LIMA, Bruno Santos de et al. Sistemas Distribuídos. Porto Alegre: Grupo A, 2020. RODRIGUES, T. N. et al. Integração de aplicações. Porto Alegre: Grupo A, 2020. SILVA, F. M. SOA – Arquitetura Orientada a Serviços. São Paulo: IME-USP: 2006. TANENBAUM, Andrew S.; STEEN, Maarten Van. Distributed Systems. Distributed- systems.net, 2023. Referências ATÉ A PRÓXIMA!