Webservices, SOA, SOAP e REST Flashcards
O que é SOA (Arquitetura Orientada a Serviços) ?
<ul>
<li>A Arquitetura Orientada a Serviços (SOA) é um paradigma para organização e utilização de recursos (capabilities) distribuídos que estão sob o controle de diferentes domínios proprietários. A SOA:
<ul>
<li>É independente de implementação.</li>
<li>Possui foco nos processos de negócio.</li>
<li>Integra processos de negócio e a infraestrutura de TI.</li>
</ul>
</li>
<li>Aplicativo de software identificado por um URI (Uniform Resource Identifier), cujas interfaces e associações podem ser definidas, descritas e descobertas como artefatos XML.</li>
<li>Protocolos base
<ul>
<li>XML</li>
<li>HTTP</li>
<li>SMTP, não muito utilizado</li>
</ul>
</li>
</ul>
Paradigma
<p>Nesse modelo, o provedor do serviço (service provider) publica a descrição/contrato do serviço utilizando um arquivo <strong>WSDL</strong> (<em>Web service description language</em>) no repositório <strong>UDDI</strong> (registro de serviços, service broker/registry, do inglês: Universal Description, Discovery, and Integration). O solicitante (service requester/consumer) utiliza o UDDI para encontrar quais os dados que ele necessita por meio do contrato/descrição do serviço (WSDL). Depois disso, ele contata o provedor do serviço (<strong>service provider</strong>) usando o protocolo <strong>SOAP</strong> (Simple Object Access Protocol) para enviar as requisições. O provedor do serviço valida as informações sobre o requisitante e envia os dados estruturados de resposta em um arquivo XML, usando também o protocolo SOAP. O arquivo XML necessita ser validado novamente pelo requisitante através de um arquivo XSD (XML Schema).</p>
Principais elementos WSDL
<p>Os elementos abstratos do WSDL incluem:</p>
<ul>
<li><strong>Types</strong>: Define os tipos de dados das mensagens trocadas entre as aplicações.
<ul>
<li><strong>Message</strong>: Representa a informação que será trocada entre as aplicações.</li>
</ul>
</li>
<li><strong>Interface</strong>: Descreve sequências de mensagens que um serviço envia e/ou recebe.
<ul>
<li><strong>Operation</strong>: Descreve a ação suportada pelo serviço.</li>
</ul>
</li>
<li><strong>Binding</strong>: aqui devem ser apresentados os protocolos de comunicação que os web services utilizam, incluindo o formato de mensagem.</li>
<li><strong>Service</strong>: Descreve um conjunto de pontos de extremidade em que uma determinada implementação implantada do serviço é fornecida.
<ul>
<li><strong>Endpoint</strong>: Define os detalhes de um ponto de extremidade específico no qual um determinado serviço está disponível.</li>
</ul>
</li>
<li><strong>Description</strong>: É apenas um contêiner para duas categorias de componentes: componentes WSDL 2.0 e componentes do sistema de tipo.</li>
</ul>
Quais as funções do UDDI?
- Publicação
- Descoberta
- Ligação/bind
Quais os tipos de informações do UDDI?
<ul>
<li>Brancas
<ul>
<li>Informações gerais.</li>
</ul>
</li>
<li>Amarelas
<ul>
<li>Informações de categorização.</li>
</ul>
</li>
<li>Verdes
<ul>
<li>Informações técnicas.</li>
</ul>
</li>
</ul>
Quais os elementos de uma mensagem SOAP?
<ul>
<li>Um elemento <strong>Envelope</strong> que identifica o documento XML como uma mensagem SOAP.
<ul>
<li>Estrutura XML obrigatória, raiz da mensagem SOAP, que define <br></br>qual o conteúdo da mensagem e quem será o destinatário que deverá processar a mensagem, com informação do namespace dos tipos de dados utilizados.</li>
</ul>
</li>
<li>Um elemento <strong>Header</strong> que contém informações de cabeçalho.
<ul>
<li>Opcional e contém informações específicas da aplicação sobre a <br></br>mensagem SOAP. Se o elemento Header estiver presente, ele deve ser o primeiro elemento filho de um elemento Envelope.</li>
</ul>
</li>
<li>Um elemento <strong>Body</strong> que contém informações de chamada e de respostas.
<ul>
<li>Obrigatório e contêm a mensagem SOAP real destinada ao ponto <br></br>final. Em caso de falha, pode haver um elemento Fault como filho de Body.</li>
</ul>
</li>
<li>Um elemento <strong>Fault</strong> contendo informações de erro e de status.
<ul>
<li>opcional e é usado para indicar as mensagens de erros. Se um <br></br>elemento Fault estiver presente, ele deve aparecer como um filho do elemento Body e <strong>só pode aparecer uma vez</strong> em uma mensagem SOAP.
<ul>
<li><code><faultcode></code>: Um código que identifica o erro.</li>
<li><code><faultstring></code>: Uma explicação do erro.</li>
<li><code><faultactor></code>: informação sobre quem causou o erro.</li>
<li><code><detail></code>: Contém informação de erro específica da aplicação relatada no elemento Body. </li>
</ul>
</li>
</ul>
</li>
</ul>
Arquitetura REST (Representational State Transfer)
<ul>
<li>Abordagem de design estrutural para criar aplicativos fracamente anexados usando HTTP.</li>
<li>Servidor REST fornece conectividade aos recursos por meio de URIs/IDs <br></br>Globais.</li>
<li>O serviço REST não é uma coleção de um paradigma ou regras específicas; <br></br>é, em vez disso, uma arquitetura de estilo do software.</li>
</ul>
Quais os métodos REST?
<ul>
<li>Métodos
<ul>
<li>GET, acessar;</li>
<li>POST, criar;</li>
<li>DELETE, remover;</li>
<li>PUT, atualizar ou criar.</li>
</ul>
</li>
</ul>
Quais os princípios REST?
<ul>
<li>Princípios
<ul>
<li>Um protocolo cliente/servidor sem estado (stateless).</li>
<li>Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação.</li>
<li>Uma sintaxe universal para identificar os recursos.</li>
<li>O uso de hipermídia, tanto para a informação da aplicação como para as transições de estado da aplicação.</li>
</ul>
</li>
</ul>