SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de SoftwareRalph Rassweiler
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dadossamlobo
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviçosalinebicudo
 
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
 

Was ist angesagt? (20)

Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia 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
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Padrões MVC
Padrões MVCPadrões MVC
Padrões MVC
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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.