Arquitetura orientada a serviços (SOA)

25
Arquitetura Orientada a Serviços (SOA) Acadêmico: Helio Henrique Lopes Costa Monte Alto R.A.: 53729

description

 

Transcript of Arquitetura orientada a serviços (SOA)

Page 1: Arquitetura orientada a serviços (SOA)

Arquitetura Orientada a

Serviços (SOA)

Acadêmico: Helio Henrique Lopes Costa Monte Alto

R.A.: 53729

Page 2: Arquitetura orientada a serviços (SOA)

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

Page 3: Arquitetura orientada a serviços (SOA)

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;

Page 4: Arquitetura orientada a serviços (SOA)

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;

Page 5: Arquitetura orientada a serviços (SOA)

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

Page 6: Arquitetura orientada a serviços (SOA)

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

Page 7: Arquitetura orientada a serviços (SOA)

Princípios

• Autonomia, fraco acoplamento, abstração e contrato

formal são considerados o núcleo fundamental que forma

a base da SOA.

Page 8: Arquitetura orientada a serviços (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

Page 9: Arquitetura orientada a serviços (SOA)

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

Page 10: Arquitetura orientada a serviços (SOA)

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

Page 11: Arquitetura orientada a serviços (SOA)

Arquitetura de Web Services

• A interação entre os papéis envolve as operações:

• Publicação

• Descoberta

• Ligação

Page 12: Arquitetura orientada a serviços (SOA)

Arquitetura de Web Services

• Pilha de protocolos

Page 13: Arquitetura orientada a serviços (SOA)

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;

Page 14: Arquitetura orientada a serviços (SOA)

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;

Page 15: Arquitetura orientada a serviços (SOA)

SOAP – Simple Object Access Protocol

• Estrutura da mensagem SOAP:

Page 16: Arquitetura orientada a serviços (SOA)

SOAP – Simple Object Access Protocol

Page 17: Arquitetura orientada a serviços (SOA)

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

Page 18: Arquitetura orientada a serviços (SOA)

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);

Page 19: Arquitetura orientada a serviços (SOA)

WSDL – Web Service Description

Language • Dividida em seis elementos principais:

Page 20: Arquitetura orientada a serviços (SOA)

WSDL – Web Service Description

Language

Page 21: Arquitetura orientada a serviços (SOA)

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;

Page 22: Arquitetura orientada a serviços (SOA)

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;

Page 23: Arquitetura orientada a serviços (SOA)

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;

Page 24: Arquitetura orientada a serviços (SOA)

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;

Page 25: Arquitetura orientada a serviços (SOA)

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.