Arquitetura SOA Service Oriented Architecture Deyvisson Oliveira Flávio Ota Renan Wiezel Battaglin Rodrigo Ferreira Bagni
Agenda Introdução Interesse Repercussão no Mercado Arquitetura Problemas e Soluções Composição, Interação e Exemplos Oferecendo e buscando o Serviço SOA e Design Patterns SOA e Baixo Acoplamento Vantagens X Desvantagens
Introdução Consórcio de gigantes: Microsoft, IBM, BEA Systems, Intel... Enfoque da IBM:  = Hardware (flexibilidade de infra-estrutura) e Software (SOA) SOA (Service Oriented Architecture) Enfoque nos Serviços Tecnologia mais próxima de regras e processos de negócio Investimento em padrões abertos Toda aplicação ou recurso são tratados como serviços
Interesse
Repercussão no Mercado SOAs to have 'profound impact' IDC looks forward to challenges and opportunities Robert Jaques, vnunet.com 03 Apr 2006 http://www.vnunet.com/vnunet/news/2153310/soas-profound-impact ? vnu_lt = vnu_art_related_articles   IT directors dismiss SOA as marketing hype Two-thirds write off Service Oriented Architecture as 'meaningless puff' Matt Chapman, vnunet.com 04 Apr 2006 http://www.whatpc.co.uk/vnunet/news/2153394/directors-believe-soa-hype   IBM's SOA strategy under fire from experts Big Blue's plans dismissed as 'disjointed' and lacking in third-party integration Tom Sanders in California, vnunet.com 24 Mar 2006 http://www.vnunet.com/vnunet/news/2152664/analysts-puzzled-ibm-soa
Repercussão no Mercado The Sun is Shining over SOA Market Softpedia, 20th of June 2005, 10:29 GMT http://news.softpedia.com/news/The-Sun-is-Shining-over-SOA-Market-3402 . shtml   Planejamento em etapas é chave para sucesso de projetos SOA, diz Gartner Por Camila Fusco, do COMPUTERWORLD 18 de abril de 2006 - 11h18 http://computerworld.uol.com.br/gestao/2006/04/18/idgnoticia .2006-04-18.6974930760/ IDGNoticia_view
Arquitetura Evolução da Arquitetura Evolução natural Une o melhor do paradigma de orientação a objetos e de componentização
Problemas Principais problemas a serem enfrentados: Heterogeinidade de sistemas Evoluções constantes Integração com sistemas legados Flexibilidade Escalabilidade Dimunição de custos
Soluções Resolvendo os problemas: Reusabilidade Baixo acoplamento Alta coesão Padronização
Exemplos Exemplos do mundo real: CD Player Um CD diferentes players Validador de cartão de crédtido Um validador para vários cartões
Composição Elementos da arquitetura Funcionais Serviços de qualidade
Interação Entidades que compõem a arquitetura
Oferecendo o Serviço Passo a Passo Serviço : entidade de software que é disponibilizada para ser usada por um consumidor. Através da troca de mensagens o Cliente deseja utilizar o serviço disponibilizado pelo Servidor. Questão: Como saber quais os serviços disponibilizados?
Oferecendo o Serviço Passo a Passo Registry : repositório que armazena dados dos serviços disponíveis. O Servidor informa ao Registry quais são os serviços diponíveis. Cada record do Registry armazena: Local do servidor que provê o serviço; A interface que o servidor utiliza para receber a requisição para o serviço (Contract); A descrição do serviço.
Em busca do Serviço Passo a Passo Buscar o Serviço no Registry usando como critério o descrição do mesmo. Busca também conhecida por Dynamic Discovery. O repositório retorna uma lista com com os serviços encontrados que satisfazem os critérios de busca. Cliente selecionará o serviço que melhor satisfaz a sua necessidade. Com o local e a interface em mãos o Cliente solicita o Serviço desejado
Em busca do Serviço Esquema gráfico Cliente Registry Servidor Dynamic Discovery   Contract Serviços Disponíveis Requisição de Serviço Resultado do Serviço
Estrutura de Registry Observação O Registry pode estar distribuído ou até replicado em várias máquinas. Obtemos maior disponibilidade do serviço de Registry e maior certeza na execução de cada Dynamic Discovery requisitado.
SOA e Baixo Acoplamento Baixo acoplamento advindo do Registry As interfaces disponíveis no Registry devem ser simples, não ambíguas, com semântica e vocabulário comuns a Clientes e Servidores.
SOA e Baixo Acoplamento Baixo acoplamento advindo da comunicação. Através da interface definida pelo  Contract  o Cliente poderá requisitar o serviço sem saber como ele é implementado. Troca de mensagens descritivas e não instrutivas. Para atingir as metas acima contamos com vocabulário e estrutura da comunicação propositadamente limitado.
SOA e Design Patterns Inúmeros Design Patterns podem ser identificados em SOA: Proxy Adapter Microkernel etc. Mas comentaremos apenas dois que se destacam por caracterizarem a própria definição da Arquitetura.
SOA ServiceLocator Descreve a solução de design a ser usada para implementar a busca em repositórios (Registries) de componetes distribuídos. Provê um ponto centralizado de controle  Encapsular as especificidades nas funcionalidades de busca de cada fabricante. Age como um cache que elimina buscas redundantes.
SOA Broker Outra maneira de interpretar a entidade de Registry. Consumidor e o Servidor interagem com o Service Broker (Registry)
SOA Broker
SOA Broker Pode ser visto como um broker dinâmico, já que o Service Provider pode estar atualizando o repositório constantemente.  O uso do Broker passa a ser um dos pilares do baixo acoplamento.
Vantagens Desvantagens Recursos antigos: não é necessário se desfazer de sistemas legados ou parte deles. Aplicações isoladas, não distribuídas que não requerem integração com outras aplicações. Baixo acoplamento: a principal integração que ocorre em SOA é com relação à parte de especificação dos serviços, permitindo liberdade com relação à sua implementação. Aplicações que são desenvolvidas com o intuito de durarem pouco tempo, SOA visa longevidade. Escalabilidade: a arquitetura oferece facilidade de integração de novas funcionalidades e permite respostas rápidas a inovações requeridas pelos usuários. Aplicações homogêneas, por exemplo, desenvolvidas sobre uma única plataforma. Reuso: os serviços disponíveis podem ser combinados para fornecer novos serviços aos clientes sem a necessidade de mais esforço em desenvolvimento. Aplicações que requerem altas taxas de transmissão de dados.

Service Oriented Architecture

  • 1.
    Arquitetura SOA ServiceOriented Architecture Deyvisson Oliveira Flávio Ota Renan Wiezel Battaglin Rodrigo Ferreira Bagni
  • 2.
    Agenda Introdução InteresseRepercussão no Mercado Arquitetura Problemas e Soluções Composição, Interação e Exemplos Oferecendo e buscando o Serviço SOA e Design Patterns SOA e Baixo Acoplamento Vantagens X Desvantagens
  • 3.
    Introdução Consórcio degigantes: Microsoft, IBM, BEA Systems, Intel... Enfoque da IBM: = Hardware (flexibilidade de infra-estrutura) e Software (SOA) SOA (Service Oriented Architecture) Enfoque nos Serviços Tecnologia mais próxima de regras e processos de negócio Investimento em padrões abertos Toda aplicação ou recurso são tratados como serviços
  • 4.
  • 5.
    Repercussão no MercadoSOAs to have 'profound impact' IDC looks forward to challenges and opportunities Robert Jaques, vnunet.com 03 Apr 2006 http://www.vnunet.com/vnunet/news/2153310/soas-profound-impact ? vnu_lt = vnu_art_related_articles IT directors dismiss SOA as marketing hype Two-thirds write off Service Oriented Architecture as 'meaningless puff' Matt Chapman, vnunet.com 04 Apr 2006 http://www.whatpc.co.uk/vnunet/news/2153394/directors-believe-soa-hype IBM's SOA strategy under fire from experts Big Blue's plans dismissed as 'disjointed' and lacking in third-party integration Tom Sanders in California, vnunet.com 24 Mar 2006 http://www.vnunet.com/vnunet/news/2152664/analysts-puzzled-ibm-soa
  • 6.
    Repercussão no MercadoThe Sun is Shining over SOA Market Softpedia, 20th of June 2005, 10:29 GMT http://news.softpedia.com/news/The-Sun-is-Shining-over-SOA-Market-3402 . shtml Planejamento em etapas é chave para sucesso de projetos SOA, diz Gartner Por Camila Fusco, do COMPUTERWORLD 18 de abril de 2006 - 11h18 http://computerworld.uol.com.br/gestao/2006/04/18/idgnoticia .2006-04-18.6974930760/ IDGNoticia_view
  • 7.
    Arquitetura Evolução daArquitetura Evolução natural Une o melhor do paradigma de orientação a objetos e de componentização
  • 8.
    Problemas Principais problemasa serem enfrentados: Heterogeinidade de sistemas Evoluções constantes Integração com sistemas legados Flexibilidade Escalabilidade Dimunição de custos
  • 9.
    Soluções Resolvendo osproblemas: Reusabilidade Baixo acoplamento Alta coesão Padronização
  • 10.
    Exemplos Exemplos domundo real: CD Player Um CD diferentes players Validador de cartão de crédtido Um validador para vários cartões
  • 11.
    Composição Elementos daarquitetura Funcionais Serviços de qualidade
  • 12.
    Interação Entidades quecompõem a arquitetura
  • 13.
    Oferecendo o ServiçoPasso a Passo Serviço : entidade de software que é disponibilizada para ser usada por um consumidor. Através da troca de mensagens o Cliente deseja utilizar o serviço disponibilizado pelo Servidor. Questão: Como saber quais os serviços disponibilizados?
  • 14.
    Oferecendo o ServiçoPasso a Passo Registry : repositório que armazena dados dos serviços disponíveis. O Servidor informa ao Registry quais são os serviços diponíveis. Cada record do Registry armazena: Local do servidor que provê o serviço; A interface que o servidor utiliza para receber a requisição para o serviço (Contract); A descrição do serviço.
  • 15.
    Em busca doServiço Passo a Passo Buscar o Serviço no Registry usando como critério o descrição do mesmo. Busca também conhecida por Dynamic Discovery. O repositório retorna uma lista com com os serviços encontrados que satisfazem os critérios de busca. Cliente selecionará o serviço que melhor satisfaz a sua necessidade. Com o local e a interface em mãos o Cliente solicita o Serviço desejado
  • 16.
    Em busca doServiço Esquema gráfico Cliente Registry Servidor Dynamic Discovery Contract Serviços Disponíveis Requisição de Serviço Resultado do Serviço
  • 17.
    Estrutura de RegistryObservação O Registry pode estar distribuído ou até replicado em várias máquinas. Obtemos maior disponibilidade do serviço de Registry e maior certeza na execução de cada Dynamic Discovery requisitado.
  • 18.
    SOA e BaixoAcoplamento Baixo acoplamento advindo do Registry As interfaces disponíveis no Registry devem ser simples, não ambíguas, com semântica e vocabulário comuns a Clientes e Servidores.
  • 19.
    SOA e BaixoAcoplamento Baixo acoplamento advindo da comunicação. Através da interface definida pelo Contract o Cliente poderá requisitar o serviço sem saber como ele é implementado. Troca de mensagens descritivas e não instrutivas. Para atingir as metas acima contamos com vocabulário e estrutura da comunicação propositadamente limitado.
  • 20.
    SOA e DesignPatterns Inúmeros Design Patterns podem ser identificados em SOA: Proxy Adapter Microkernel etc. Mas comentaremos apenas dois que se destacam por caracterizarem a própria definição da Arquitetura.
  • 21.
    SOA ServiceLocator Descrevea solução de design a ser usada para implementar a busca em repositórios (Registries) de componetes distribuídos. Provê um ponto centralizado de controle Encapsular as especificidades nas funcionalidades de busca de cada fabricante. Age como um cache que elimina buscas redundantes.
  • 22.
    SOA Broker Outramaneira de interpretar a entidade de Registry. Consumidor e o Servidor interagem com o Service Broker (Registry)
  • 23.
  • 24.
    SOA Broker Podeser visto como um broker dinâmico, já que o Service Provider pode estar atualizando o repositório constantemente. O uso do Broker passa a ser um dos pilares do baixo acoplamento.
  • 25.
    Vantagens Desvantagens Recursosantigos: não é necessário se desfazer de sistemas legados ou parte deles. Aplicações isoladas, não distribuídas que não requerem integração com outras aplicações. Baixo acoplamento: a principal integração que ocorre em SOA é com relação à parte de especificação dos serviços, permitindo liberdade com relação à sua implementação. Aplicações que são desenvolvidas com o intuito de durarem pouco tempo, SOA visa longevidade. Escalabilidade: a arquitetura oferece facilidade de integração de novas funcionalidades e permite respostas rápidas a inovações requeridas pelos usuários. Aplicações homogêneas, por exemplo, desenvolvidas sobre uma única plataforma. Reuso: os serviços disponíveis podem ser combinados para fornecer novos serviços aos clientes sem a necessidade de mais esforço em desenvolvimento. Aplicações que requerem altas taxas de transmissão de dados.