SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosFabio Moura Pereira
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemasFelipe Oliveira
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de EstadosMaikynata
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitosMailson Queiroz
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 

La actualidad más candente (20)

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de Estados
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 

Similar a SOA Arquitetura Orientada Serviços

SOA - Padrões Associados
SOA - Padrões AssociadosSOA - Padrões Associados
SOA - Padrões Associadosalinebicudo
 
Arquitetura e Integração de sistemas
Arquitetura e Integração de sistemasArquitetura e Integração de sistemas
Arquitetura e Integração de sistemasJether Rodrigues
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e restassufmg
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e restassufmg
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTlucasbarsand
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Projeto IV - Tecnologias básicas da Web X.0
Projeto IV - Tecnologias básicas da Web X.0Projeto IV - Tecnologias básicas da Web X.0
Projeto IV - Tecnologias básicas da Web X.0Pablo Fonseca
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesAdriano Teixeira de Souza
 
Trabalho asoso tp4
Trabalho asoso   tp4Trabalho asoso   tp4
Trabalho asoso tp4markellycs
 

Similar a SOA Arquitetura Orientada Serviços (20)

Web Services
Web ServicesWeb Services
Web Services
 
SOA - Padrões Associados
SOA - Padrões AssociadosSOA - Padrões Associados
SOA - Padrões Associados
 
Arquitetura e Integração de sistemas
Arquitetura e Integração de sistemasArquitetura e Integração de sistemas
Arquitetura e Integração de sistemas
 
WebServices
WebServicesWebServices
WebServices
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Projeto IV - Tecnologias básicas da Web X.0
Projeto IV - Tecnologias básicas da Web X.0Projeto IV - Tecnologias básicas da Web X.0
Projeto IV - Tecnologias básicas da Web X.0
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Trabalho asoso tp4
Trabalho asoso   tp4Trabalho asoso   tp4
Trabalho asoso tp4
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Web service
Web serviceWeb service
Web service
 

Más de Helio Henrique L. C. Monte-Alto

Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Helio Henrique L. C. Monte-Alto
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaHelio Henrique L. C. Monte-Alto
 
Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Helio Henrique L. C. Monte-Alto
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasHelio Henrique L. C. Monte-Alto
 
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Helio Henrique L. C. Monte-Alto
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoHelio Henrique L. C. Monte-Alto
 
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTOESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTOHelio Henrique L. C. Monte-Alto
 

Más de Helio Henrique L. C. Monte-Alto (14)

Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
 
Teoremas da Incompletude de Gödel
Teoremas da Incompletude de GödelTeoremas da Incompletude de Gödel
Teoremas da Incompletude de Gödel
 
Suporte à Programação Orientada a Objetos
Suporte à Programação Orientada a ObjetosSuporte à Programação Orientada a Objetos
Suporte à Programação Orientada a Objetos
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando Java
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
Rmi (remote method invocation)
Rmi (remote method invocation)Rmi (remote method invocation)
Rmi (remote method invocation)
 
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTOESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
 

SOA Arquitetura Orientada Serviços

  • 1. Arquitetura Orientada a Serviços (SOA) Acadêmico: Helio Henrique Lopes Costa Monte Alto R.A.: 53729
  • 2. 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
  • 3. 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;
  • 4. 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;
  • 5. 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
  • 6. 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
  • 7. Princípios • Autonomia, fraco acoplamento, abstração e contrato formal são considerados o núcleo fundamental que forma a base da SOA.
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Arquitetura de Web Services • A interação entre os papéis envolve as operações: • Publicação • Descoberta • Ligação
  • 12. Arquitetura de Web Services • Pilha de protocolos
  • 13. 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;
  • 14. 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;
  • 15. SOAP – Simple Object Access Protocol • Estrutura da mensagem SOAP:
  • 16. SOAP – Simple Object Access Protocol
  • 17. 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
  • 18. 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);
  • 19. WSDL – Web Service Description Language • Dividida em seis elementos principais:
  • 20. WSDL – Web Service Description Language
  • 21. 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;
  • 22. 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;
  • 23. 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;
  • 24. 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;
  • 25. 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.