Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital Autores: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda 26 de Abril de 2021 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 1 152 Sumário Web Services ................................................................................................................................ 2 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) ............................................................................ 8 Web Services Description Language (WSDL) ..............................................................................11 Universal Description, Discobery and Integration ...................................................................... 15 Especificação de metadados e webservices ............................................................................... 19 WS-SECURITY (WSS) ................................................................................................................. 24 Exercícios Web Services e SOA .................................................................................................. 26 REST .......................................................................................................................................... 85 Exercícios REST .......................................................................................................................... 94 Lista de exercícios Webservices e SOA ..................................................................................... 120 Lista de exercícios REST ........................................................................................................... 144 GABARITO ................................................................................................................................ 151 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 2 152 WEB SERVICES Com a evolução das redes de computadores, surgiram as aplicações distribuídas. Inicialmente, todo o processamento era centralizado em apenas um servidor. Com o surgimento dos middlewares, o processamento começou a ser distribuído entre vários servidores. Com o avanço da internet e dos protocolos de comunicação, surgiram os Web Services com a missão de integrar sistemas heterogêneos. Web Services são componentes de aplicativos baseados em XML, autocontidos e autodescritivos, que se comunicam usando protocolos abertos. Eles podem ser descobertos com UDDI (veremos adiante!) e ser utilizados por outras aplicações. O XML é o formato de mensagem adotado pela W3C para troca de informações entre aplicações distribuídas. Vamos ver mais detalhes... Eles são autocontidos, na medida em que não necessitam ou dependem de outros componentes para existir – eles se bastam. Além disso, eles são considerados autodescritivos, tendo em vista que não necessitam de informações externas para expor suas funcionalidades. Por fim, eles utilizam protocolos abertos, i.e., não-proprietários – protocolos padrões da internet. Outra definição importante – citada por Heather Kreger – destaca que um Web Service é, na verdade, uma interface que descreve uma coleção de operações que são acessíveis pela rede através de mensagens XML padronizadas. Seu uso permite que plataformas heterogêneas de software e hardware sejam integradas de forma transparente. Vejamos mais definições... Web Service é a disponibilização de um serviço pela internet que pode ser acessado em qualquer lugar. Clientes enviam requisições com informações bem definidas e recebem respostas que podem ser síncronas ou assíncronas. Web Service é essencialmente a interoperabilidade entre programas e aplicações – especialmente quando eles usam linguagens, ferramentas ou plataformas diferentes. Segundo a definição do Gartner, Web Services são componentes de software com baixo fator de acoplamento, utilizado por meio de padrões de internet. Um Web Service representa uma função/lógica de negócio ou um serviço que pode ser acessado por uma outra aplicação na web, sobre redes públicas e, geralmente, disponibilizado por protocolos conhecidos. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 3 152 A disponibilização de um serviço ocorre por meio de um contrato, que é uma interface que disponibiliza suas funcionalidades, com uma infraestrutura leve e desacoplada de plataforma que facilita a integração em diferentes tecnologias. Esta tecnologia possibilita que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Um Web Service é um sistema de software projetado para permitir interoperabilidade na interação entre máquinas através de uma rede. É descrito através de uma interface padronizada que disponibiliza um serviço em uma rede de computadores, geralmente a Internet. Uma vez descrito na forma padrão e catalogado, o serviço se torna um componente de software totalmente reutilizável. Isso permite a interoperabilidade entre aplicações e plataformas heterogêneas. Eles representam parte da lógica de negócio, executando em sistemas remotos que os hospedam e os mantêm distribuídos. Podem ser acessados através de protocolos padronizados da internet. Essa comunicação permite que qualquer aplicação que utilize estes protocolos acesse e utilize serviços sem conhecer a implementação. 1. Web Services realizam apenas chamadas síncronas? Não, um cliente pode invocá-lo de forma síncrona e assíncrona. Possibilitar chamadas assíncronas é a chave para permitir sistemas fracamente acoplados. 2. Web Services são baseados em HTML? Não, eles são baseados em XML (para representação e transporte de dados). Nesse último caso, ele elimina qualquer dependência com rede e sistema operacional. 3. Web Services possuem fraco ou forte acoplamento? Eles são fracamente acoplados. A interface de um serviço web pode mudar durante o tempo sem comprometer a habilidade do cliente de interagir com o serviço. 4. Web Services são independentes de tecnologia? Sim, eles são independentes de plataforma, sistema operacional, arquitetura de processador, linguagem de programação, entre outros. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 4 152 5. Web Services possuem granularidade fina ou grossa? Eles possuem granularidade grossa, provendo uma maneira natural de definir serviços que acessam a quantidade correta de lógica de negócio. Sommerville afirma que um Web Service é uma instância de uma noção mais geral de um serviço. A plataforma de serviços web é definidaatravés de uma série de padrões da indústria que são suportados por toda a comunidade de fornecedores. Esta plataforma pode ser dividida em duas gerações claramente identificáveis , cada uma associada com um conjunto de normas e especificações: ▪ Web Services de Primeira Geração: É composta por um núcleo de tecnologias e especificações abertas: WSDL, XSD, SOAP, UDDI e o WS-I1. Essas especificações estão pelo mercado por um bom tempo e têm sido adotadas pela indústria de tecnologia da informação. No entanto, a plataforma que eles coletivamente representam carece de qualidade para executar projetos críticos com funcionalidades de produção em nível de organização. ▪ Web Services de Segunda Geração: Uma das maiores lacunas de qualidade dos Web Services de Primeira Geração residia nas áreas de segurança em nível de mensagem, transações entre serviços e mensageria confiável. Surgiram, então, diversas extensões e especificações para fornecer um conjunto sofisticado de componentes construídos sobre os Web Services de Primeira Geração – foram chamados de WS-*. 1 O WS-I Basic Profile é um conjunto de especificações de serviços da Web não proprietários, juntamente com esclarecimentos e alterações a essas especificações que promovem a interoperabilidade. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 5 152 O WS-* é composto atualmente por diversas especificações: Segurança (Ex: WS-Security, WS- Trust, WS-Encryption, WS-SecureConversation); Políticas (Ex: WS-Policy, WS- PolicyAssertions); Processos de Negócio (Ex: WS-CDL, WS-BPEL); entre outros. Galera, são dezenas de especificações de diversos tipos – não vale a pena ver todos, vamos ver por curiosidade apenas alguns deles: ▪ WS-Security: esta especificação define como anexar uma assinatura digital, usar criptografia e usar tokens de segurança em mensagens SOAP. ▪ WS-Policy: esta especificação define o idioma utilizado para descrever limitações de segurança e a política de intermediários ou nós de extremidade. ▪ WS-Trust: essa especificação define uma estrutura para modelos confiáveis para estabelecer a confiança entre os serviços web. ▪ WS-Privacy: essa especificação define um modelo de como expressar uma política de privacidade para um serviço web e um solicitante. ▪ WS-SecureConversation: essa especificação define como trocar e estabelecer um contexto assegurado, que deriva de chaves de sessão entre os serviços web. ▪ WS-Authorization: essa especificação define as políticas de autorização para um serviço web (web service). Nessa aula, vamos nos ater aos Web Services de Primeira Geração! Utilizar serviços através da rota dos Web Services basicamente envolve três categorias de participantes: Provedor de Serviço, Solicitante do Serviço e Agente de Serviço (em inglês, Service Provider, Service Requester e Service Broker) – basta lembrar do modelo arquitetônico triangular (Find-Bind- Execute). Um provedor de serviços seria, por exemplo, uma indústria, negócio ou empresa, capaz de criar e fornecer serviços baseados em software. Do mesmo modo, um solicitante de serviços seria uma empresa ou um negócio que gostaria de usar o serviço. Por outro lado, o agente seria um lugar, entidade ou sistema, que ajuda o solicitante de serviços a descobrir o provedor de serviços. As interações entre o provedor e o agente são basicamente a publicação dos serviços. A interação entre o solicitador e o agente é a tarefa de pesquisar os serviços e os provedores de Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 6 152 serviços. Finalmente, a interação entre o provedor e o solicitante é chamada de vínculo (em inglês, bind). De acordo com Schneider, algumas das vantagens de se utilizar Web Services são: ▪ Permite utilizar as regras de negócio através da rede; ▪ Baixo custo de comunicação (Internet); ▪ Conecta aplicações de diferentes fornecedores; ▪ Protocolo padronizado (SOAP/WSDL/UDDI); ▪ Permite publicação automática (UDDI). Sabemos que Web Services são sistemas embasados na web que oferecem serviços gerais para aplicações remotas, não requerendo interações imediatas de usuários finais – em geral a interação é máquina-máquina ou aplicação-aplicação. Além da definição, é bom saber a descrição dos três padrões fundamentais que possibilitam as comunicações, isso sozinho resolve uma pancada de questões: SOAP (SIMPLE/SINGLE OBJECT ACCESS PROTOCOL) Baseado em XML, define uma organização para troca estruturada de dados entre Web Services. WSDL (WEB SERVICES DESCRIPTION LANGUAGE) Baseado em XML, define como as interfaces dos Web Services podem ser representadas. UDDI (UNIVERSAL DESCRIPTION, DISCOVERY AND INTEGRATION): Baseado em XML, trata-se do padrão de descobrimento que define como as informações podem ser organizadas. Eu preciso da atenção de vocês agora! É possível implementar serviços utilizando diversos paradigmas. O foco dessa aula é o Paradigma SOAP, mas existem outros (Ex: Paradigma REST). No entanto, vocês verão algumas vezes as provas tratarem serviços apenas aqueles que implementam SOAP, UDDI e WSDL. Não sejam muito rigorosos com isso... Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira ==1c090b== Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 7 152 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 8 152 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) O QUE É SOAP? Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web Services. Trata-se de um formato, baseado em XML, para intercâmbio de mensagens – é utilizado para realizar o encapsulamento e o transporte de dados. Trata-se de um formato para envio e recebimento de mensagens independentemente de plataforma e tecnologia. Trata-se de um protocolo que define uma organização para a troca estruturada de dados entre Web Services. Um dos motivos que tornam os Web Services atrativos é o fato de estes serem baseados em tecnologias padrão, em particular XML e HTTP. Eles são comumente utilizados para disponibilizar serviços interativos na web, podendo ser acessados por outras aplicações. O SOAP é o protocolo mais comum para troca de mensagens, já que é escrito em XML e transportado, via de regra, por HTTP. SOAP é um protocolo projetado para invocar aplicações remotas em um ambiente independente de plataforma, linguagem de programação, entre outros. Ele é, portanto, um padrão normalmente aceito para se utilizar com Web Services. Mas,professor, ele é o único? Não! Veremos mais adiante... não se preocupem com isso nesse momento. Bem, o que se pretende é garantir a interoperabilidade e intercomunicação entre diferentes sistemas, através da utilização de uma linguagem (XML) e de um mecanismo de transporte (HTTP). Pessoal, é obrigatório utilizar esse protocolo de transporte? Não! Pode-se usar qualquer um, no entanto esse é o mais comumente utilizado no mercado atualmente. Entre outras utilizações, SOAP foi desenhado para encapsular e transportar Chamadas RPC e, para isto, utiliza-se dos recursos e flexibilidade do XML, sob HTTP. Por meio do RPC, pode-se acessar os serviços de um objeto localizado em um outro ponto da rede, através de uma chamada local a este objeto. Cada chamada ou requisição exige uma resposta. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 9 152 Galera, os elementos filhos imediatos do cabeçalho são chamados de blocos de cabeçalho. Um bloco de cabeçalhos é um elemento XML definido pelo aplicativo e representa um agrupamento lógicos de dados que pode ser direcionado em nós SOAP que podem ser encontrados no caminho de uma mensagem de um remetente para um receptor final. Bacana? Os blocos de cabeçalhos SOAP podem ser processados por nós intermediários SOAP e pelo nó receptor SOAP final. No entanto, em um aplicativo real, nem sempre cada nó processa cada bloco de cabeçalhos. Cada nó geralmente é projetado para processar determinados blocos de cabeçalhos e cada bloco de cabeçalhos é processado por nós específicos. Nós não dissemos ainda se SOAP é um protocolo Stateful ou Stateless, mas antes de descobrir, temos que saber o que são esses conceitos. Stateful significa que o servidor armazena informações sobre o cliente e as utiliza em diversas requisições. Stateless é justamente o contrário, i.e., o estado do serviço não é persistido entre requisições subsequentes. O HTTP e o SOAP, por default, são protocolos stateless. O SOAP, definido pela W3C, consiste basicamente dos elementos descritos abaixo: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 10 152 ▪ Envelope (Envolope): Trata-se do elemento-raiz do documento XML – identifica o documento XML como uma mensagem SOAP. Ele funciona como um recipiente que contém os demais elementos da mensagem (Ex: Header, Body, etc). Ele possui dois atributos: namespace, que define o Envelope como um Envelope SOAP; e encodingStyle, que define os tipos de dados utilizados em um documento. É obrigatório! ▪ Cabeçalho (Header): Ele carrega informações adicionais específicas para a aplicação, como Autenticação, Autorização, Pagamento, etc. Ele pode, por exemplo, especificar assinatura digital para serviços protegidos por senha. Podem ser definidos vários cabeçalhos. Ele é opcional, mas – caso seja utilizado – deve ser o primeiro elemento do Envelope. Ele tem três atributos: mustUnderstand, actor e encodingStyle. ▪ Corpo (Body): Ele contém o payload, i.e., a mensagem SOAP. Trata-se de um elemento obrigatório que é capaz de empacotar chamadas RPC, reportar erros, enviar operações UDDI, entre outros. O elemento Body pode conter um elemento opcional Fault, usado para carregar mensagens de status e mensagens de erros retornadas pelos nós ao processarem a mensagem. É obrigatório! Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 11 152 WEB SERVICES DESCRIPTION LANGUAGE (WSDL) O QUE É WSDL? Trata-se de uma linguagem de descrição de Web Services, escrita em XML, para descrever serviços web, especificar as formas de acesso, as operações e os métodos disponíveis. Trata-se de uma linguagem para descrever serviços de rede como endpoints (ou portas) que operam em mensagens que contêm informações orientadas à documento/procedimento. Trata-se efetivamente de especificação que define como descrever serviços web em uma gramática XML. Trata-se de um protocolo baseado em XML para troca de informações em ambientes distribuídos e descentralizados (Sim, alguns o consideram um protocolo!). Vocês já pensaram de que forma um cliente de um Web Service sabe qual formato dos métodos a serem chamados? Quais os parâmetros que devem ser passados? Como se deve processar uma requisição específica? Para responder essas questões, criou-se uma linguagem para padronizar as descrições das funcionalidades oferecidas por um Web Service. Essa linguagem, baseada em XML, é utilizada para descrever um Web Service e deve, portanto, definir todas as suas interfaces, operações, métodos, esquemas de codificação, portas de comunicação, protocolos, formatos de mensagens, entre outros, neste documento. Um documento WSDL define um XML Schema (XSD) para descrever um Web Service. Tão logo o cliente tenha acesso à descrição do serviço a ser utilizado, a implementação do Web Service pode ser feita em qualquer linguagem de programação. Normalmente são utilizadas linguagens construídas para interação com a Web, como Java Servlets ou ASP, que, em seguida, chamam um outro programa ou objeto. Quando o cliente deseja enviar uma mensagem para um Web Service, ele obtém a descrição do serviço (em geral, por meio da localização do documento WSDL no UDDI), e em seguida constrói a mensagem, passando os tipos de dados de acordo com a definição encontrada no documento. Em seguida, a mensagem é enviada para o endereço onde o serviço está localizado, a fim de que possa ser processada. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 12 152 O Web Service, quando recebe esta mensagem, valida-a conforme as informações contidas no documento WSDL. A partir daí, o serviço remoto sabe como tratar e processar a mensagem e como responder ao cliente. O WSDL possui um elemento-raiz do documento chamado Description, que se trata de um contêiner de duas categorias de alto nível: WSDL 2.0 e Type System. O WSDL 2.0 é formado pelos componentes Interface, Binding e Service; já o Type System é formado pelos componentes Element Declaration e Type Definition. O Element Declarations é um conjunto de declarações de elementos, como definido por um XML Schema. Já o Type Definitions é um conjunto de definições de tipos de dados – ele é obrigatório (Não confundam com o elemento <types>). COMPONENTE DESCRIÇÃO interface Esse componente descreve sequências de mensagens que um serviço envia e/ou recebe. Ele o faz agrupando mensagens relacionadas em operações (é o antigo <portType>). Interface → Operações → Mensagensbinding Esse componente descreve o formato de mensagens e protocolos de transmissão que podem ser usados para definir um endpoint. Ele define detalhes de implementação necessários para acessar um serviço. service Esse componente descreve um conjunto de endpoints em uma implementação particular do serviço que é fornecido. Endpoints são lugares alternativos em que serviços são fornecidos. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 13 152 Galera, esses três componentes acima são componentes de alto nível que são também elementos. Há também o elemento <types>, que define tipos de dados que serão utilizados nas mensagens e operações. Há também o elemento <operation>, que se encontra dentro do elemento <interface> e descreve as ações suportadas por um serviço. O WSDL separa a descrição de um serviço em duas perspectivas: Abstrata e Concreta! A perspectiva abstrata trata da interface do serviço. Em outras palavras, ela descreve o que o serviço faz – seus tipos, suas operações, suas entradas, suas saídas, suas mensagens fault, entre outros – , porém sem dizer como o serviço faz o seu trabalho nem mesmo como acessar esse serviço. A perspectiva concreta trata da implementação do serviço. Em outras palavras, ela descreve como realizará o serviço – protocolos de comunicação, codificação de dados, localização, portas, endereço de rede, etc. A perspectiva concreta contém a perspectiva abstrata e adiciona informações sobre como o serviço se comunicará e quem pode alcançá-lo. Professor, qual a vantagem de haver essa separação? Trata-se de separação de preocupações! A vantagem é que, caso a implementação do serviço seja modificada por alguma razão, a parte abstrata pode continuar a ser disponibilizada sem problemas – e até reutilizada para diversas implementações diferentes. Podemos ver, na imagem acima, os elementos que compõem as perspectivas concretas e abstratas em ambas as versões da linguagem. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 14 152 De acordo com George Coulouris, os documentos WSDL completos podem ser acessados por meio de seus URIs por clientes e servidores, direta ou indiretamente, por intermédio de um serviço de diretório como o UDDI. Estão disponíveis ferramentas para gerar definições WSDL a partir de informações fornecidas por meio de uma interface gráfica com o usuário. Elas fazem isso ao eliminar a necessidade de envolvimento dos usuários com os detalhes complexos e com a estrutura do WSDL. As definições WSDL também podem ser geradas a partir de definições de interface escritas em outras linguagens, como JAX-RPC. Ele não define características não-funcionais do serviço (Ex: tempo de resposta, escalabilidade, segurança). Ademais, define quatro tipos de operações: TIPO DEFINIÇÃO ONE-WAY A operação pode receber uma mensagem, mas não retornará uma resposta. REQUEST-RESPONSE A operação pode receber uma requisição e retornará uma resposta. SOLICIT-RESPONSE A operação pode enviar uma requisição e esperará por uma resposta. NOTIFICATION A operação pode enviar uma mensagem, mas não esperará por uma resposta. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 15 152 UNIVERSAL DESCRIPTION, DISCOBERY AND INTEGRATION O QUE É UDDI? Trata-se de um serviço de diretório, baseado em XML, em que é possível registrar e localizar Web Services. Trata-se de uma especificação técnica que tem como objetivo descrever, descobrir e integrar Web Services. Trata-se de um diretório/registro para armazenamento de informações sobre Web Services – é um repositório de interfaces de Web Services descritas por WSDL. Trata-se de um protocolo que é um dos maiores blocos de construção requeridos para construir Web Services com sucesso (Sim, alguns o chamam de protocolo!). Trata-se de um padrão de descoberta que define como são organizadas as informações de descrição do serviço, permitindo que os solicitantes descubram os serviços. Quando se constrói um Web Service, ele deve ser disponibilizado em algum lugar para que seja acessível por diversas aplicações-cliente. O UDDI é uma especificação técnica para descrever, descobrir e integrar Web Services (alguns o chamam de protocolo também). Ele contém informações genéricas sobre a organização que o detém e informações básicas sobre os serviços. Vocês entenderam? O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados e fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As informações capturadas no contexto do UDDI são classificadas em três categorias principais: Páginas Brancas, Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com seus respectivos exemplos: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 16 152 As Páginas Brancas contêm informações gerais sobre a organização que está oferecendo o serviço, tais como: nome do negócio e descrição do negócio (de preferência, em diversas línguas). Utilizando essas informações, é possível encontrar algum serviço sobre o qual já se pode conhecer algumas informações. Há também informações de contato do negócio (Ex: Endereço, Telefone, Fax, Identificadores). As Páginas Amarelas contêm uma classificação do serviço ou negócio disponíveis baseado em taxonomias padronizadas (Ex: SIC, NAICS, UNSPSC). Como cada organização pode fornecer uma série de serviços, pode haver várias páginas amarelas (cada uma descrevendo um serviço) associadas a uma página branca (dando informações gerais sobre o negócio). As Páginas Amarelas usam os esquemas de categorização industrial mais aceitos no mercado, códigos de indústria, códigos de produtos, códigos de identificação comerciais e similares para tornar mais fácil para as empresas procurarem por meio de listas e encontrarem exatamente o que elas desejam. As Páginas Amarelas fornecem mais detalhes sobre a empresa. As Páginas Verdes contêm informações técnicas sobre como acessar um Web Service. Elas são utilizadas para indicar os serviços oferecidos por cada negócio, incluindo todas as informações técnicas envolvidas na interação com o serviço. Em geral, essas informações incluem um ponteiro para uma especificação externa e um endereço para invocar o serviço. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda InformáticaAvançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 17 152 A Especificação UDDI fornece duas interfaces importantes: Publisher Interface e Inquiry Interface. A primeira interface define dezesseis operações para que um provedor de serviços possa gerenciar e publicar informações sobre um determinado serviço web. Já a segunda interface define dez operações de busca de registro e informações específicas de registros. Pessoal, não confundam uma coisa: WSDL não fica efetivamente no UDDI, mas lá existem referências para ele! Ok? A UDDI 3.0.2 (versão mais recente) possui um Modelo de Informação Estruturada: Core Data Structure. Ele é composto por uma estrutura hierárquica formada por: Entidade de Negócio (Business Entity), Serviço de Negócio (Business Service), Template de Ligação (Binding Template) e tModel. O Business Entity representa o provedor de Web Services. Essa estrutura contém informações sobre a organização, incluindo informações de contato, categorias de indústria, identificadores de negócio e uma lista de serviços fornecidos. O Business Service representa um Web Service individual fornecido por uma entidade de negócio – define tipo de serviço, conexão, categorias, entre outros. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 18 152 O Binding Template é um conjunto de descrições técnicas dos Web Services representados por uma estrutura de serviços de negócio – ele indica, por exemplo, como se conecta ao serviço. Por fim, o tModel representa um modelo técnico, i.e., uma maneira de descrever os vários negócios, serviços, estruturas de template e informações externas (Ex: WSDL) armazenados dentro de um Registro UDDI. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 19 152 ESPECIFICAÇÃO DE METADADOS E WEBSERVICES Os professores e pesquisadores de países em desenvolvimento, que contam com recursos escassos para a manutenção de suas Universidades e Instituições de Pesquisa, têm dificuldade de acesso à literatura científica tradicional de sua área, sob a forma de periódicos, muitas vezes altamente especializados e com assinaturas caras (quem se graduou em faculdade pública sabe disso!). Recentemente, com o surgimento dos periódicos eletrônicos, esse problema ainda persiste, pois muitos só oferecem acesso aos artigos mediante pagamento. A cada dia, surgem bibliotecas digitais e bases de dados públicas que constituem importante fonte de informação para pesquisadores. O problema é o tempo que se gasta para reunir informações relevantes a um dado assunto de pesquisa. Seja visitando diversos portais de bibliotecas virtuais, seja utilizando a busca convencional oferecida por sites como Google, Bing, entre outros. A pesquisa através de portais de busca tradicionais é imprecisa e atinge apenas as páginas HTML, ignorando as bases de dados que se encontram por trás de algumas destas páginas. Por outro lado, ao tentar divulgar seus trabalhos através dos periódicos, em busca do impacto de suas pesquisas, os pesquisadores esbarram em um processo burocrático e demorado, em que, desde a submissão até a publicação, devido à lenta arbitragem que por vezes ocorre, pode haver um intervalo de tempo tão longo que os efeitos daquela pesquisa já não tenham valor quando de sua publicação. Com a evolução da Internet, várias bibliotecas digitais começaram a surgir – algumas com a finalidade de expor a produção de teses e dissertações das grandes universidades. Tudo isso resultou em um grande avanço, em que informações científicas e acadêmicas já poderiam ser obtidas livremente pela Internet, e disponibilizadas através da publicação nas páginas de seus autores. A falta de padrões para disponibilização e pesquisa de informações científicas na Internet levou à criação da Iniciativa Open Archives (Arquivos Abertos) e ao desenvolvimento de um protocolo com o intuito de oferecer simplicidade e eficiência na tarefa de unificar as consultas a bases de dados científicas e/ou acadêmicas. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 20 152 Com os recursos oferecidos pela iniciativa, é possível melhorar significativamente a precisão das consultas eletrônicas e reduzir o tempo de procura, graças ao compartilhamento de informações (metadados) entre os participantes da iniciativa. A interoperabilidade entre bases de dados tem o objetivo de promover o acesso simultâneo aos dados contidos nestes repositórios de forma a maximizar a pesquisa. O protocolo OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) vem se consolidando como a base para a interoperabilidade entre bibliotecas e repositórios digitais acadêmicos e científicos no mundo todo. Através do OAI-PMH, é possível proporcionar visibilidade e integração de informações (metadados), com custos acessíveis à realidade de países em desenvolvimento, como o Brasil. Então, vamos lá! Em 1999, surgiu a Open Archives Initiative (OAI), que buscava desenvolver e promover soluções de interoperabilidade que facilitassem uma disseminação eficiente de conteúdo. Para tal, foi criado um protocolo aberto, independente de conteúdo, chamado OAI- PMH que faz com que participantes da iniciativa possam compartilhar seus metadados. Lembrando que metadados são dados sobre dados, isto é, informações que descrevem informações dos registros dos repositórios (similar a um dicionário) – no caso, documentos eletrônicos. Para tal, ele segue um padrão que contém, entre outros, título, autor, resumo, palavras-chaves, etc. Os participantes da Iniciativa são divididos em Provedores de Dados (DP) e Provedores de Serviços (SP). Os provedores de dados mantêm repositórios de documentos digitais que implementam o protocolo OAI-PMH como forma de expor os metadados de seus documentos. Já os provedores de serviços oferecem buscas a estes metadados ou outros serviços que visam agregar valor à iniciativa. Galera, esse protocolo trata de um conceito muito importante chamado Harvesting. O Harvesting (ou Colheita Automática de Metadados) é uma técnica ou processo unilateral para extrair metadados de repositórios individuais e colocá-los em um catálogo central. Esse processo é baseado nos metadados produzidos por humanos ou por processos completamente automáticos ou semiautomáticos suportados por software. Bacana? Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira CursoRegular de Desenvolvimento de Software www.estrategiaconcursos.com.br 21 152 Provedores de Serviços (SP) realizam periodicamente uma busca a Provedores de Dados (DP) – registrados em uma lista na OAI – para colher metadados para exibição sob a forma de consultas efetuadas pelos usuários. Essa busca pode ser geral ou baseada em alguns critérios, tais como Date-Based (baseados em data) ou Set-Based (baseados em conjuntos). Existe outra abordagem chamada Federação (Federation). Trata-se de um mecanismo de busca paralela, síncrona e simultânea sobre múltiplas fontes, i.e., o usuário faz uma pesquisa, que é distribuída para motores de busca que participam da federação. Ele, então, agrega os resultados que são recebidos dos motores para apresentar ao usuário. Vamos ver a imagem abaixo para entender as diferenças: Na Federation, o usuário faz uma requisição síncrona a um repositório central (representado por uma Biblioteca Digital) e espera a resposta. O repositório faz diversas requisições a outros repositórios remotos e as respostas retornam para o repositório central onde são consolidadas e devolvidas para o usuário. Bacana? Agora vamos ver como funciona a outra abordagem. No Harvesting, o usuário faz uma requisição a um motor de busca que procura em um repositório central de metadados (Harvested Metadata) que contém metadados anteriormente coletados assincronamente e automaticamente de outros repositórios. Em geral, os metadados são codificados em XML. Esse método é menos sofisticado e acarreta menor sobrecarga sobre os repositórios. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 22 152 Como a busca é executada em uma cópia local dos metadados, resultados podem ser retornados com baixíssima latência. Além disso, como o harvesting é feito periodicamente, mesmo que qualquer biblioteca esteja indisponível, ainda é possível buscar seus metadados. Quanto à especificação de web services, existem diversas categorias de especificações diferentes. Estas especificações estão em diferentes graus de maturidade e são mantidas ou apoiadas por vários órgãos e entidades de normatização. Esta variedade de especificações é a estrutura básica de web services estabelecido pelos padrões de primeira geração representada por WSDL, SOAP e UDDI. As especificações podem se complementar, se sobrepor e competir umas com as outras. Especificações de web services são ocasionalmente chamadas coletivamente de WS- *, embora não haja um único conjunto de especificações que seja contemplada consistentemente por ela, não existe um conjunto específico para eles. Para citar algumas dessas especificações: WS- Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security e WS-Trust. ESPECIFICAÇÃO DESCRIÇÃO WS-Addressing Provê um mecanismo pelo qual se pode identificar web services e mensagens independentemente do protocolo de transporte utilizado. WS-Discovery Define um protocolo de descoberta multicast para localizar serviços em uma rede local. WS-Federation Define mecanismos para disparar realms de segurança para intermediar informações sobre identidade, atributos de identidade e autenticação. WS-Policy Permite que web services utilizem XML para advertir sobre suas políticas (de qualidade, segurança, etc) e também para que clientes possam especificar suas políticas. WS-Security Especifica como integridade e confidencialidade podem ser aplicadas em mensagens e permitir a comunicação com vários formatos de token de segurança. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 23 152 WS-Trust Provê extensões ao WS-Security, especificamente para lidar com emissão, renovação e validação de tokens de segurança. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 24 152 WS-SECURITY (WSS) Vamos lá! Pensem comigo: eu falei alguma vez sobre segurança de Web Services? Não, porque o Protocolo SOAP não prevê a proteção de mensagens, deixando essa tarefa para especificações estendidas! Ora, mas SOAP é um protocolo que roda (na maioria dos casos2) sobre o protocolo HTTP! É verdade, você tem razão! Ele é utilizado para troca de mensagens entre dois nós. Sobre o HTTP, é possível autenticar o remetente, assinar a mensagem e criptografar os dados. Em outras palavras, o remetente é conhecido, o destinatário pode confirmar a integridade e a mensagem se mantém confidencial. No entanto, nem sempre se utiliza esse protocolo; além disso, ele possui diversas limitações quando a mensagem passa por diversos pontos. O Protocolo HTTP só oferece segurança ponto-a-ponto! Muitas vezes, é necessário segurança fim-a-fim. Ademais, pode ser necessária mais de uma chave de criptografia ao longo da rota percorrida e domínios de segurança podem ser cruzados. Logo, para soluções mais complexas, esse protocolo não satisfaz todos os requisitos de segurança. O WS-Security utiliza diversos padrões e especificações de segurança pré-existentes. Ora, para que reinventar a roda? Vamos utilizar o que já existe e está consolidado e evitar definir soluções de segurança novas! Pode-se utilizar Kerberos e X.509 para fornecer autenticação; XML- Encryption e XML-Signature para fornecer criptografia e assinatura do conteúdo das mensagens XML. O que de fato faz o WS-Security? Ele agrupa um conjunto de especificações em um framework a ser embutido em uma Mensagem SOAP! Ele é utilizado para estender os mecanismos do Protocolo SOAP para fornecer segurança (confidencialidade, integridade e não-repúdio) fim-a- fim. Além das especificações citadas, ele também se associa ao WS-Privacy, WS-Test, WS-Policy, WS-Trust, ID-WSD, TAS3, etc. 2 Eventualmente, pode rodar sobre outros protocolos (tais como: JMS e SMTP). Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 25 152 O WS-Privacy determinará de que forma os Web Services serão adotados e implementados. O WS-Policy define como os recursos e restrições das normas de segurança poderão ser expressados. Por fim, o WS-Trust descreve um modelo para que se obtenha um relacionamento de confiança, tanto direto, quanto por meio de agentes (incluindo terceiros e intermediários). Você pode me perguntar: Professor, por que não é utilizado o Protocolo HTTPS para garantir mais segurança para Web Services? Faz muito sentido a sua pergunta! Ora, o Protocolo SSL/TLS é capaz de fornecer diversos mecanismos de segurança. No entanto, ele funciona bem para fornecer segurançaem comunicação ponto-a-ponto, e nós precisamos de segurança em comunicação fim-a-fim. Bacana? O WS-Security define um Header SOAP para carregar dados relacionados à segurança. A especificação diz: “This header contains security information for an intended recipiente”. Se for utilizado o XML-Signature, o header pode conter informações que expressam como a mensagem foi assinada, a chave utilizada e o valor resultante da assinatura. Por fim, cabe falar também sobre o SAML (Security Assertion Markup Language), que é uma infraestrutura baseada em XML para autenticação e autorização entre duas entidades: um Provedor de Serviços e um Provedor de Identidade. Como o próprio nome indica, SAML é uma linguagem de marcação baseada em XML para asserções de segurança. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 26 152 EXERCÍCIOS WEB SERVICES E SOA 1. (CESPE - 2013 - CNJ - Técnico Judiciário - Programação de Sistemas) Uma das formas de comunicação para encapsular dados transferidos no formato XML para aplicações serviço web (Webservice) é o SOAP (Simple Object Access Protocol). Comentários: O QUE É SOAP? Trata-se de uma das formas de comunicação para encapsular dados transferidos no formato XML para Web Services. Conforme vimos em aula, ele realmente é uma forma de comunicação – dado que é um protocolo – para encapsular dados transferidos no formato XML para aplicações web services. Gabarito: C 2. (CESPE - 2013 - CNJ - Técnico Judiciário - Programação de Sistemas) A linguagem WSDL é utilizada para descrever web services limitadas ao tipo request-response. Comentários: TIPO DEFINIÇÃO ONE-WAY A operação pode receber uma mensagem, mas não retornará uma resposta. REQUEST- RESPONSE A operação pode receber uma requisição e retornará uma resposta. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 27 152 SOLICIT-RESPONSE A operação pode enviar uma requisição e esperará por uma resposta. NOTIFICATION A operação pode enviar uma mensagem, mas não esperará por uma resposta. Conforme vimos em aula, não está limitada ao tipo request-response – existem quatri tipos diferentes de operações. Gabarito: E 3. (CESPE - 2013 - CNJ - Técnico Judiciário - Programação de Sistemas) Nos registros de negócio UDDI, a descrição da forma de acesso aos web services é um procedimento contido nas páginas verdes (green pages). Comentários: As Páginas Verdes contêm informações técnicas sobre como acessar um Web Service. Elas são utilizadas para indicar os serviços oferecidos por cada negócio, incluindo todas as informações técnicas envolvidas na interação com o serviço. Em geral, essas informações incluem um ponteiro para uma especificação externa e um endereço para invocar o serviço. Conforme vimos em aula, elas contêm descrições técnicas sobre as formas de acesso aos web services. Gabarito: C 4. (CESPE - 2013 - TRE-MS - Analista Judiciário - Análise de Sistemas) No que se refere a SOA e webservices, assinale a opção correta. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 28 152 a) O WS-Security propõe uma série de extensões para aprimorar a segurança dos web services no UDDI e no WSDL. Por questão de compatibilidade, essas extensões não afetam os cabeçalhos do envelope SOAP. 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 do tipo statefull, independente de sistema operacional, embasado em troca de mensagem one-way e 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. É embasada em XML e incentiva reutilização de código e interoperabilidades entre sistemas. Comentários: (a) Não é tema dessa aula, mas o erro desse item é afirmar que ele aprimora segurança no UDDI e WSDL, quando ele aprimora a segunrança do SOAP. O QUE É UDDI? É um serviço de diretório em que é possível registrar e localizar Web Services. (b) Conforme vimos em aula, UDDI é realmente um serviço de diretório em que é possível registrar e localizar Web Services. O QUE É WSDL? É uma linguagem de descrição de Web Services, escrita em XML, para descrever serviços web, especificar as formas de acesso, as operações e os métodos disponíveis. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 29 152 (c) Conforme vimos em aula, ele descreve o serviço, especifica como acessá-los e seus métodos e operações disponíveis. Nós não dissemos ainda se SOAP é um protocolo Stateful ou Stateless, mas antes de descobrir, temos que saber o que são esses conceitos. Stateful significa que o servidor armazena informações sobre o cliente e as utiliza em diversas requisições. Stateless é justamente o contrário, i.e., o estado do serviço não é persistido entre requisições subsequentes. O HTTP e o SOAP, por default, são protocolos stateless. (d) Conforme vimos em aula, SOAP é – por default – stateless. Além disso, a questão escreveu statefull, em vez de stateful. Ele realmente é independente de sistema operacional, mas pode realizar trocas de mensagens de diversas maneiras – sendo o tipo Request-Response muito mais comum que o tipo One-Way. Agora que já sabemos o que é uma arquitetura e o que é um serviço, podemos juntá-los! A OASIS3 define Arquitetura Orientada a Serviços como um paradigma para organização e utilização de recursos distribuídos que estão sob o controle de diferentes domínios proprietários, permitindo que funcionalidades implementadas sejam disponibilizadas na forma de serviços fracamente acoplados. (e) Conforme vimos em aula, não é uma arquitetura de desenvolvimento – é uma arquitetura corporativa. Além disso, serviços devem ser fracamente acoplados. Gabarito: B 3 OASIS (Organization for the Advancement of Structured Information Standards) é um consórcio global que conduz o desenvolvimento, convergência e adoção de padrões para e- business e web services. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 -Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 30 152 5. (CESPE - 2011 - MEC - Gerente de Projetos) O UDDI (Universal Description Discovery and Integration), que corresponde a um registro de web services, é dividido em páginas brancas, amarelas e verdes, nas quais são prestadas aos clientes informações sobre a empresa, os serviços por ela oferecidos e as especificações WSDL desses serviços. Comentários: O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados e fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As informações capturadas no contexto do UDDI são classificadas em três categorias principais: Páginas Brancas, Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com seus respectivos exemplos: Conforme vimos em aula, a questão trata respectivamente das páginas brancas, amarelas e verdes. Gabarito: C Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 31 152 6. (CESPE - 2011 - BRB - Analista de Tecnologia da Informação) Na estrutura de um documento WSDL, o elemento <portType> descreve os tipos de dados usados por um web service. Comentários: ELEMENTO DESCRIÇÃO <interfaces> Esse elemento descreve as operações que podem ser realizadas e as mensagens trocadas (é o antigo <portType>). Conforme vimos em aula, o antigo <portType> descreve as operações que podem ser realizadas e as mensagens trocadas. Gabarito: E 7. (CESPE - 2011 - CBM-DF - Oficial Bombeiro Militar Complementar - Informática) Embora não tenha publicação automática, um web service permite a utilização das regras de negócio através da rede e conecta aplicações de diferentes fornecedores. Comentários: As interações entre o provedor e o agente são basicamente a publicação dos serviços. A interação entre o solicitador e o agente é a tarefa de pesquisar os serviços e os provedores de serviços. Finalmente, a interação entre o provedor e o solicitante é chamada de vínculo (em inglês, bind). De acordo com Schneider, algumas das vantagens de se utilizar Web Services são: Permite utilizar as regras de negócio através da rede; Baixo custo de comunicação (Internet); Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 32 152 Conecta aplicações de diferentes fornecedores; Protocolo padronizado (SOAP/WSDL/UDDI); Permite publicação automática (UDDI). Conforme vimos em aula, ele permite a publicação automática. Gabarito: E 8. (CESPE - 2011 - PREVIC - Analista de Tecnologia da Informação) No WSDL (Web Services Definition Language), é prescrito o leiaute de banco de dados com descrições de serviços, por meio das quais os clientes de web service podem procurar serviços relevantes. Comentários: SOAP (SIMPLE/SINGLE OBJECT ACCESS PROTOCOL) Baseado em XML, define uma organização para troca estruturada de dados entre Web Services. WSDL (WEB SERVICES DESCRIPTION LANGUAGE) Baseado em XML, define como as interfaces dos Web Services podem ser representadas. UDDI (UNIVERSAL DESCRIPTION, DISCOVERY AND INTEGRATION): Baseado em XML, trata-se do padrão de descobrimento que define como as informações podem ser organizadas. Conforme vimos em aula, WSDL é Web Service Description Language! Além disso, não se prescreve leiaute de banco de dados. Essa descrição está mais para UDDI. Gabarito: E Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 33 152 9. (CESPE - 2011 - PREVIC - Analista de Tecnologia da Informação) Web Services são sistemas embasados na Web que oferecem serviços gerais para aplicações remotas, não requerendo interações imediatas de usuários finais. Comentários: Sabemos que Web Services são sistemas embasados na web que oferecem serviços gerais para aplicações remotas, não requerendo interações imediatas de usuários finais – em geral a interação é máquina-máquina ou aplicação-aplicação. Além da definição, é bom saber a descrição dos três padrões fundamentais que possibilitam as comunicações, isso sozinho resolve uma pancada de questões: Conforme vimos em aula, a maioria das aplicações são desenvolvidas para interagir com usuários; o usuário entra ou procura um dado por meio de uma interface e a aplicação responde à entrada do usuário. Um Web Service faz mais ou menos a mesma coisa, no entanto ele se comunica máquina à máquina ou aplicação à aplicação - em geral, não se tem interação direta do usuário com o Web Service. Logo, não se exige interação imediata de usuários finais. Gabarito: C 10. (CESPE - 2010 - MPU - Técnico de Informática) A descrição de um web service é feita utilizando-se WSDL (Web Services Description Language), que é uma linguagem embasada em RPC (Remote Procedure Call) e UDDI (Universal Description Discovery and Integration), com a qual se descreve a forma de acesso dos serviços e seus parâmetros de entrada e de saída. Comentários: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 34 152 Entre outras utilizações, SOAP foi desenhado para encapsular e transportar Chamadas RPC e, para isto, utiliza-se dos recursos e flexibilidade do XML, sob HTTP. Por meio do RPC, pode-se acessar os serviços de um objeto localizado em um outro ponto da rede, através de uma chamada local a este objeto. Cada chamada ou requisição exige uma resposta. Conforme vimos em aula, esse item não faz o menor sentido! WSDL é uma linguagem de descrição – quem realiza Chamadas RPC é o SOAP. Gabarito: E 11. (CESPE - 2008 - TRT - 5ª Região (BA) - Analista Judiciário - Tecnologia da Informação) O UDDI é uma especificação técnica que tem como objetivo descrever, descobrir e integrar web services; é embasado na tecnologia XML, que fornece uma plataforma neutra de dados e permite descrever relações hierárquicas de modo natural. Comentários: O QUE É UDDI? Trata-se de uma especificação técnica que tem como objetivo descrever, descobrir e integrar Web Services. Pessoal, não confundam uma coisa: WSDL não fica efetivamente no UDDI, mas lá existem referências para ele! Ok? A UDDI 3.0.2 (versão mais recente) possui um Modelo de Informação Estruturada: Core Data Structure. Ele é composto por uma estrutura hierárquica formada por: Entidade de Negócio (Business Entity), Serviço de Negócio (Business Service), Template de Ligação (Binding Template) etModel. Conforme vimos em aula, basta lembrar da sigla! UDDI é Universal Description, Discovery and Integration (Integração, Descoberta e Descrição Universal). Dessa forma, trata-se realmente de uma especificação técnica que tem como objetivo descrever, descobrir e integrar Web Services. É baseada em XML? Sim! Permite descrever relações hierárquicas? Sim! Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 35 152 Gabarito: C 12. (CESPE - 2008 - STJ - Analista Judiciário - Tecnologia da Informação) O serviço UDDI fornece uma interface para publicar e atualizar informações acerca de serviços web; possibilita pesquisar descrições WSDL pelo nome; provê uma interface que possibilita executar consultas de modo a recuperar uma entidade que corresponda a uma chave ou recuperar entidades que correspondam a um conjunto de critérios de busca. Comentários: A Especificação UDDI fornece duas interfaces importantes: Publisher Interface e Inquiry Interface. A primeira interface define dezesseis operações para que um provedor de serviços possa gerenciar e publicar informações sobre um determinado serviço web. Já a segunda interface define dez operações de busca de registro e informações específicas de registros. Conforme vimos em aula, a questão trata das interfaces: Publisher e Inquiry. Gabarito: C 13. (CESPE - 2008 - STJ - Analista Judiciário - Tecnologia da Informação) O WSDL separa a parte abstrata de uma descrição de serviço da parte concreta; nessa descrição, a parte concreta contém as definições de tipos usados pelo serviço e a parte abstrata especifica como e onde o serviço pode ser contatado. Os documentos WSDL podem ser acessados via um serviço de diretório como o UDDI; as definições WSDL podem ser geradas a partir de definições de interfaces escritas em outras linguagens. Comentários: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 36 152 O WSDL separa a descrição de um serviço em duas perspectivas: Abstrata e Concreta! A perspectiva abstrata trata da interface do serviço. Em outras palavras, ela descreve o que o serviço faz – seus tipos, suas operações, suas entradas, suas saídas, suas mensagens fault, entre outros –, porém sem dizer como o serviço faz o seu trabalho nem mesmo como acessar esse serviço. A perspectiva concreta trata da implementação do serviço. Em outras palavras, ela descreve como realizará o serviço – protocolos de comunicação, codificação de dados, localização, portas, endereço de rede, etc. A perspectiva concreta contém a perspectiva abstrata e adiciona informações sobre como o serviço se comunicará e quem pode alcançá-lo. Professor, qual a vantagem de haver essa separação? Elas fazem isso ao eliminar a necessidade de envolvimento dos usuários com os detalhes complexos e com a estrutura do WSDL. As definições WSDL também podem ser geradas a partir de definições de interface escritas em outras linguagens, como JAX-RPC. Ele não define características não- funcionais do serviço (Ex: tempo de resposta, escalabilidade, segurança). Ademais, define quatro tipos de operações: Conforme vimos em aula, a questão inverteu as bolas! As definições de tipo pertencem à parte abstrata; e como/onde o serviço pode ser contatado (endereço de rede, portas, etc) pertence à parte concreta. Alguns me perguntam se as definições WSDL podem ser geradas a partir de definições de interfaces escritas em outras linguagens. Sim, em teoria, elas podem ser escritas em outras linguagens que, não, XML. Gabarito: E 14. (CESPE - 2008 - STJ - Analista Judiciário - Tecnologia da Informação) O SOAP encapsula mensagens que podem ser transmitidas via HTTP; permite o modelo de interação cliente- servidor; define como usar XML para representar mensagens de requisição e resposta. Um documento XML é transportado no corpo de uma mensagem SOAP; no modelo cliente- servidor, o corpo de uma mensagem SOAP pode conter uma requisição, mas não uma resposta. Comentários: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 37 152 SOAP encapsula mensagens que podem ser transmitidas via HTTP? Sim, assim como outros protocolos de comunicação. Permite o modelo de interação cliente-servidor? Define como usar XML para representar mensagens de requisição e resposta? Sim, utiliza um paradigma de requisição/resposta, típico de aplicacões cliente-servidor. Um documento XML é transportado no corpo de uma mensagem SOAP? Sim, ele encapsula um documento XML. O corpo de uma mensagem SOAP pode conter uma requisição, mas não uma resposta? Não, entre outras utilizações, SOAP foi desenhado para encapsular em e transportar em seu corpo chamadas de RPC, que faz uma requisição e exige uma resposta. Gabarito: E 15. (CESPE - 2008 - TRT - 5ª Região (BA) - Analista Judiciário - Tecnologia da Informação) No SOA, os web services permitem que os aplicativos se comuniquem entre si de modo independente da plataforma e da linguagem de programação. Os web services utilizam WSDL para descrever interfaces de aplicativos na linguagem XML. Comentários: WSDL (WEB SERVICES DESCRIPTION LANGUAGE) Baseado em XML, define como as interfaces dos Web Services podem ser representadas. Galera, nós vimos insistentemente que a arquitetura orientada a serviços é independente de implementação e tecnologia. Em outras palavras, há diversas modelos arquitetônicos de implementação de uma arquitetura orientada a serviços. Veremos agora algumas formas de implementar essa arquitetura em uma organização. Vamos começar pelo modelo mais primitivo... Vamos lá! Nessa questão, o sabixão do examinador encontrou – em algum lugar – a seguinte frase: "Os Web Services utilizam XML para descrever as interfaces de aplicativos em uma linguagem chamada WSDL". Ele, então, decidiu inverter XML com WSDL e dizer que o item estava errado. No entanto, ele deu azar, porque mesmo com a inversão o item continua correto. Ora, web Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 38 152 services utilizam WSDL para descrever interfaces de aplicativos na linguagem XML? Sim, porque WSDL é escrito em XML. Logo, a questão está correta! A banca voltou atrás? Não :( Gabarito: E 16. (CESPE - 2008 - TRT - 5ª Região (BA) - Analista Judiciário - Tecnologia da Informação) Na visão do SOA, XML e WSDL são padrões abertos que permitem que os serviços se comuniquem de maneira homogênea, independentemente da plataforma de hardware, do sistema operacional e da linguagem de programação nosquais o serviço está implementado. Comentários: Galera, nós vimos insistentemente que a arquitetura orientada a serviços é independente de implementação e tecnologia. Em outras palavras, há diversas modelos arquitetônicos de implementação de uma arquitetura orientada a serviços. Veremos agora algumas formas de implementar essa arquitetura em uma organização. Vamos começar pelo modelo mais primitivo... Conforme vimos em aula, é realmente independente de tecnologia (plataforma de hardware, sistema operacional, linguagem de programação, entre outros). Gabarito: C 17. (CESPE - 2009 - ANATEL - Analista de Sistemas) Os três padrões fundamentais que possibilitam comunicações entre web services são: simple object access protocol (SOAP) — protocolo que define uma organização para a troca estruturada de dados entre web services; web services description language (WSDL) — protocolo que define como as interfaces dos web services podem ser representadas; universal description, discovery and integration (UDDI) — padrão de descoberta que define como são organizadas as informações de descrição do serviço, permitindo que os solicitantes descubram os serviços. Um desses padrões não utiliza a XML (extensible mark-up language). Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 39 152 Comentários: O QUE É SOAP? Trata-se de um protocolo que define uma organização para a troca estruturada de dados entre Web Services. O QUE É WSDL? Trata-se de um protocolo baseado em XML para troca de informações em ambientes distribuídos e descentralizados (Sim, alguns o consideram um protocolo!). O QUE É UDDI? Trata-se de um padrão de descoberta que define como são organizadas as informações de descrição do serviço, permitindo que os solicitantes descubram os serviços. Conforme vimos em aula, todos esses padrões utilizam XML! Gabarito: E 18. (CESPE - 2009 – CEHAP/PB - Analista de Sistemas – Letra D) São padrões de Web services o SOAP, o WSDL e o UDDI, todos baseados em HTTP. Comentários: SOAP (SIMPLE/SINGLE OBJECT ACCESS PROTOCOL) Baseado em XML, define uma organização para troca estruturada de dados entre Web Services. WSDL (WEB SERVICES DESCRIPTION LANGUAGE) Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 40 152 Baseado em XML, define como as interfaces dos Web Services podem ser representadas. UDDI (UNIVERSAL DESCRIPTION, DISCOVERY AND INTEGRATION): Baseado em XML, trata-se do padrão de descobrimento que define como as informações podem ser organizadas. Conforme vimos em aula, todos são baseados em XML! Gabarito: E 19. (CESPE - 2009 - INMETRO - Analista de Sistemas) Na SOA, a descrição do serviço é mantida em um repositório WSDL, em formato UDDI (universal description, Discovery and integration). Comentários: O UDDI descobre serviços por meio de registries, que são repositórios logicamente centralizados e fisicamente distribuídos que contêm documentos descritores dos dados do negócio. As informações capturadas no contexto do UDDI são classificadas em três categorias principais: Páginas Brancas, Páginas Verdes ou Páginas Amarelas, como mostra a imagem abaixo com seus respectivos exemplos: Conforme vimos em aula, a descrição é mantida em um repositório UDDI, em formado WSDL. Gabarito: E 20. (CESPE - 2009 - ANTAQ - Analista de Sistemas) Nos serviços web, clientes e servidores, direta ou indiretamente, podem acessar documentos UDDI completos por meio de seus URIs (uniform resource identifier), usando um serviço de diretório, tal como o WSDL. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 41 152 Comentários: De acordo com George Coulouris, os documentos WSDL completos podem ser acessados por meio de seus URIs por clientes e servidores, direta ou indiretamente, por intermédio de um serviço de diretório como o UDDI. Estão disponíveis ferramentas para gerar definições WSDL a partir de informações fornecidas por meio de uma interface gráfica com o usuário. Conforme vimos em aula, a questão inverteu os conceitos. Gabarito: E 21. (CESPE - 2009 – TCE/TO - Analista de Sistemas) Acerca da arquitetura orientada ao serviço (SOA), assinale a opção incorreta. a) Os principais conceitos do SOA são a visibilidade, a interação e os efeitos. b) Na programação orientada a objetos, o foco está no empacotamento de dados com operações, enquanto que, no SOA, o foco central é a interface entre as aplicações. c) O SOA se constitui na base mais viável para o desenvolvimento de sistemas de grande escala. d) O UDDI (universal description, discovery, and integration) é um protocolo para descrever componentes de serviços web disponíveis. e) Nos web services, utiliza-se SOAP sobre HTTP para se realizar a comunicação entre os serviços. Comentários: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 14 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Curso Regular de Desenvolvimento de Software www.estrategiaconcursos.com.br 42 152 O Modelo de Referência do SOA apresenta, a partir da perspectiva dinâmica de serviço, três conceitos-chaves dessa arquitetura: a visibilidade entre provedores de serviços e consumidores; a interação entre eles; e os efeitos no mundo real da interação com um serviço. Existem outros conceitos fundamentais, esses são conceitos relacionados à dinâmica dos serviços. (a) Conforme vimos em aula, a questão está perfeita. (b) De acordo com o Modelo de Referência OASIS/SOA: “Diferentemente do paradigma de Programação Orientada a Objeto, onde o foco está no empacotamento de dados com operações, o foco central da Arquitetura Orientada a Serviço é a tarefa ou função de negócio – obtendo alguma coisa feita”. Ele tenta diferenciar POO de SOA – essencialmente trata-se da diferença entre um objeto e um serviço. O primeiro utiliza operações para empacotar dados em um objeto; e o segundo tenta oferecer um serviço (que ofereça algum valor ao negócio). Em outros termos, serviços têm acesso aos métodos dos objetos, mas quem de fato agrega valor é o serviço e, não, o método - o serviço é o fim, o método é o meio. O OASIS ainda afirma: "Ambos, a OO e o SOA são como formas de pensar sobre representação de coisas e ações no mundo referindo-se especificamente sobre a construção de sistemas. A coisa importante é o entendimento e aplicação do paradigma. Portanto a questão não é “o que é um serviço?” muito mais que isto é “o que é um objeto?”. Qualquer coisa pode ser um serviço da mesma forma que qualquer coisa pode ser um objeto. O desafio é aplicar o paradigma para melhorar
Compartilhar