SlideShare uma empresa Scribd logo
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.

Mais conteúdo relacionado

Mais procurados

Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
Rildo (@rildosan) Santos
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
Wagner Zaparoli
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
Edmilson Filho
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
sergiocrespo
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
Capgemini
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
Alessandro Kieras
 
Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
Manoel Pimentel Medeiros
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
Adriano Tavares
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Cloves da Rocha
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
Marcelo Yamaguti
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
Elaine Cecília Gatto
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
Mauricio Cesar Santos da Purificação
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
Computação Depressão
 
Introdução a Gerência de Configuração
Introdução a Gerência de ConfiguraçãoIntrodução a Gerência de Configuração
Introdução a Gerência de Configuração
Igor Takenami
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Júlia Fernandes Alves
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
Mailson Queiroz
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
André Constantino da Silva
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Estêvão Bissoli Saleme
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 

Mais procurados (20)

Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Introdução a Gerência de Configuração
Introdução a Gerência de ConfiguraçãoIntrodução a Gerência de Configuração
Introdução a Gerência de Configuração
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Semelhante a Arquitetura orientada a serviços (SOA)

Web Services
Web ServicesWeb Services
Web Services
Paulo Neto
 
SOA - Padrões Associados
SOA - Padrões AssociadosSOA - Padrões Associados
SOA - Padrões Associados
alinebicudo
 
Arquitetura e Integração de sistemas
Arquitetura e Integração de sistemasArquitetura e Integração de sistemas
Arquitetura e Integração de sistemas
Jether Rodrigues
 
WebServices
WebServicesWebServices
WebServices
Frederico Madeira
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
João Abussamra Neto
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
assufmg
 
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
Arthur Emanuel
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
Paulo Vitor Antonini Orlandin
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
Juliana Cindra
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
assufmg
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
lucasbarsand
 
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
Helder da Rocha
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
blogspheregroup
 
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
Pablo 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 Services
Adriano Teixeira de Souza
 
Trabalho asoso tp4
Trabalho asoso   tp4Trabalho asoso   tp4
Trabalho asoso tp4
markellycs
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
monicavasconcelos
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
monicavasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
monicavasconcelos
 
Web service
Web serviceWeb service
Web service
Junior Moraes
 

Semelhante a Arquitetura orientada a serviços (SOA) (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
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
 
Web service
Web serviceWeb service
Web service
 

Mais de Helio Henrique L. C. Monte-Alto

Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
Helio Henrique L. C. Monte-Alto
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
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
 
Teoremas da Incompletude de Gödel
Teoremas da Incompletude de GödelTeoremas da Incompletude de Gödel
Teoremas da Incompletude de Gödel
Helio Henrique L. C. Monte-Alto
 
Suporte à Programação Orientada a Objetos
Suporte à Programação Orientada a ObjetosSuporte à Programação Orientada a Objetos
Suporte à Programação Orientada a Objetos
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 Java
Helio Henrique L. C. Monte-Alto
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
Helio 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 ontologias
Helio 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 Contexto
Helio Henrique L. C. Monte-Alto
 
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
Helio Henrique L. C. Monte-Alto
 
Rmi (remote method invocation)
Rmi (remote method invocation)Rmi (remote method invocation)
Rmi (remote method invocation)
Helio 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 CONTEXTO
Helio Henrique L. C. Monte-Alto
 

Mais 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
 

Arquitetura orientada a serviços (SOA)

  • 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.