Arquitetura Orientada a
Serviços (SOA)
Acadêmico: Helio Henrique Lopes Costa Monte Alto
R.A.: 53729
Sumário
• Definição
• Princípios
• Web Services
• Arquitetura de Web Services
• XML - Extensible Markup Language
• SOAP – Simple Object Access Protocol
• WSDL – Web Service Description Language
• UDDI – Universal Description, Discovery and Integration
• SOA e OO
• Benefícios da SOA
• Referências
Definição
• Arquitetura de software: estrutura do sistema, que inclui
elementos de software, as propriedades externamente
visíveis desses elementos e as relações entre elas
• SOA (Service-oriented architecture):
• Recursos são empacotados como serviços bem definidos;
• Modelo que visa decompor um sistema em uma coleção de
pequenas unidades relacionadas entre si;
Definição
• Serviços:
• Usam linguagem de descrição padrão;
• Se comunicam através de solicitações de execução de operações;
• Provê flexibilidade e agilidade para eliminar barreiras na integração
de aplicações;
• Constituídas de: Interface e implementação;
• Interfaces são independentes de plataforma;
• Coordenação de atividades através de passagens de mensagens
entre serviços;
Princípios
• Reuso (de recursos)
• Contrato formal
• Contratos de serviços definem formalmente as regras e características
do serviço, suas operações e mensagens
• Fraco acoplamento
• Independência entre os serviços
• Abstração
• “Caixa-preta”, detalhes de implementação são escondidos
• Composição
• Um serviço pode ser membro de uma composição de serviços
Princípios
• Autonomia
• Alto nível de controle sobre seu ambiente e seus recursos básicos
• Estado
• Permanecem com informações de estado apenas quando
necessário, minimizando o consumo de recursos
• Descoberta
• São externamente descritos para serem encontrados e
interpretados
Princípios
• Autonomia, fraco acoplamento, abstração e contrato
formal são considerados o núcleo fundamental que forma
a base da SOA.
Web Services
• Tecnologia para implementar SOA;
• Provê padronização
• Através de conjunto de especificações e protocolos que definem
as interfaces e contratos de serviços;
• Disponíveis por meio de uma rede;
• Padrão XML (Extensible Markup Language):
• Mensagens e descrição de serviços
• Sem ligação com qualquer linguagem de programação ou
sistema operacional
Web Services
• Significativa tecnologia na evolução da Web e da
computação distribuída;
• Interfaces de Web Services podem mapear qualquer tipo
de software
• Ex: sistema de middleware, SGDBs e aplicações empacotadas
Arquitetura de Web Services
• Papéis individuais de cada ator:
• Provedor de serviços: implementa e torna-o disponível
• Consumidor de serviços: utiliza-o por meio de uma conexão de rede
e envia uma solicitação XML
• Registro de serviços: onde se publica e se pode encontrar serviços
Arquitetura de Web Services
• A interação entre os papéis envolve as operações:
• Publicação
• Descoberta
• Ligação
Arquitetura de Web Services
• Pilha de protocolos
XML – Extensible Markup Language
• Formato simples e flexível para representar informação
estruturada;
• Principais características:
• Diretamente utilizável na Internet;
• Suporta grande variedade de aplicações;
• Facilidade de escrever programas que processam documento XML
• Devem ser legíveis e claros para os humanos;
• Projeto deve ser formal e conciso;
• Facilidade para criar documentos XML;
• Forma de descrição, armazenamento e transmissão dos dados;
SOAP – Simple Object Access Protocol
• Protocolo de comunicação baseado em XML;
• Transporte: HTTP
• Independente de plataforma;
• Especificação: três partes principais:
• Especificação do envelope SOAP: regras para encapsulamento
dos dados;
• Regras de codificação dos dados: baseadas em XML Schema;
• Convenções RPC: permite ao cliente especificar nome do método
remoto e parâmetros e receber uma resposta;
SOAP – Simple Object Access Protocol
• Estrutura da mensagem SOAP:
SOAP – Simple Object Access Protocol
SOAP – Simple Object Access Protocol
• Considerações:
• SOAP torna possível que Web Services troquem dados,
independente de onde estão localizados;
• Fornece um mecanismo simples e extensível para mapear
múltiplos tipos de interações de mensagens e sistemas de
software subjacente
WSDL – Web Service Description
Language • Define como descrever Web Services com XML;
• Representa um contrato entre o serviço consumidor e o
serviço provedor
• Cliente pode localizar um web service e chamar qualquer uma de
suas funções públicas;
• Informações principais do protocolo:
• De interface (descreve funções disponíveis);
• De tipo de dados (para as mensagens);
• Sobre o protocolo de transporte utilizado;
• De endereço (para localizar o serviço especificado);
WSDL – Web Service Description
Language • Dividida em seis elementos principais:
WSDL – Web Service Description
Language
WSDL – Web Service Description
Language
• Considerações:
• WSDL fornece um mecanismo para a definição de interfaces para
web services;
• Contém descrição dos tipos de dados e estruturas usadas em
mensagens, bem como informações necessárias para o
mapeamento da definição dos web services;
UDDI – Universal Description, Discovery
and Integration • Descrever, descobrir e integrar web services;
• Diretório distribuído de negócios e serviços;
• Dados são divididos em 3 categorias:
• Páginas brancas: informações gerais;
• Páginas amarelas: dados de classificação geral;
• Páginas verdes: informações técnicas, incluindo um ponteiro para
uma especificação externa ou um endereço para chamar o WS
• Fornece um mecanismo flexível, poderoso e extensível para
registrar e descobrir informações de negócio por meio da
Internet;
SOA e OO
• Enquanto o foco do paradigma de Programação Orientada a
Objetos é o empacotamento de dados com operações, o de
SOA é a tarefa ou função de negócio;
• OO pretende unir os métodos a um objeto de dados, SOA
pretende fornecer serviços que têm acesso aos métodos;
• Para usar um objeto, ele primeiro precisa ser instanciado;
• Um objeto expõe a estrutura, mas não a semântica, a não ser
capturando comentários na definição da classe. SOA enfatiza
a necessidade de clarificar a semântica;
Benefícios da SOA
• Facilitar gerenciamento do crescimento dos sistemas
corporativos de larga escala;
• Facilitar escalabilidade da Internet para uso por serviços;
• Escalabilidade para organizar grandes sistemas em rede;
• Reduzir custos nas organizações para cooperação delas;
• Agilidade nos negócios e adaptabilidade
• Habilidade para escalar e evoluir -> portifólio de TI adaptável para
diferentes necessidades de um domínio de problema;
Referências
• CERAMI, E. Web Services Essentials: Distributed Applications with XML-RPC,
• SOAP, UDDI & WSDL. O'Reilly, 2002.
• KREGER, H. Web Services Conceptual Architecture. IBM Software Group.
• 2001.
• Modelo de Referência para Arquitetura Orientada a Serviço 1.0. Comitê de
Especificação 1, 19 de Julho de 2006. Disponível em
<http://www.pcs.usp.br/~pcs5002/oasis/soa-rm-csbr.pdf>. Acesso em Maio de
2011.
• VIVIAN, R. L. "Arquitetura Orientada a Serviços em Aplicações Web Sensíveis ao
Contexto“. Monografia de Especialização de Desenvolvimento de Sistemas para
Web, Universidade Estadual de Maringá, 2010.
• W3C. Extensible Markup Language. Obtido via Internet: http://www.w3.org/XML.
Acesso em: mai. 2011.
Top Related