Successfully reported this slideshow.
Engenharia de Software Orientada a Serviços Leonardo Eloy FATENE Abril/2010
JavaCE www.javace.org
GURU-CE www.guruce.org
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
Conceituação Teórica <ul><li>Praticamente todos os sistemas baseados em grandes computadores são distribuídos </li></ul>
Conceituação Teórica (2) <ul><li>Sistema Distribuído: </li></ul><ul><li>“ aquele em que as informações em fase de processa...
Surgimento dos Serviços <ul><li>O desenvolvimento Web  promoveu  o acesso de computadores clientes aos servidores remotos ...
Surgimento dos Serviços Web <ul><li>A noção de Web Service foi proposta para contornar este problema </li></ul><ul><li>Org...
Um Serviço <ul><li>Exemplo: </li></ul>Serviço de Imposto declara imposto Usuário Receita SEFAZ SEFIN
Conceituação de Serviço <ul><li>A essência de um serviço é que </li></ul><ul><ul><li>“ o fornecimento dos serviços é  inde...
Serviços  vs.  Objetos Distribuídos <ul><li>Objetos distribuídos podem suprir essa necessidade </li></ul><ul><li>Porém, o ...
Arquitetura Orientada a Serviços Registrador de serviços Provedor de serviços Solicitador de serviços publica vincula enco...
Workflow de Web Services Serviço de Compra Serviço de Venda out in Pedido in out Bens Fonte:  (Kreger, 2001)
Fluxos Públicos & Privados Serviço de Emissão de Diplomas Serviço de Verificação de Débitos in out SPC SERASA Biblioteca S...
Passando a Régua <ul><li>Sistemas Distribuídos   >  Processamento em diversas máquinas </li></ul><ul><li>Uso da Web via HT...
Na Teoria <ul><li>Sistemas orientados a serviços são criados pela  ligação de serviços de software  fornecidos por diversa...
Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
Engenharia de Software Orientada a Serviços <ul><li>A utilização do SOA é um meio para  facilitar a computação interorgani...
Padronização: Na Teoria <ul><li>Há uma tendência à padronização, juntamente com os desenvolvimentos técnicos </li></ul><ul...
Padronização: Na Prática <ul><li>É difícil padronizar, vejamos o Unix como exemplo  [Martin, 1995] </li></ul><ul><li>Mudan...
Padrões de Comunicação <ul><li>SOAP  – Simple Object Access Protocol </li></ul><ul><ul><li>Organização para troca estrutur...
Os Padrões Utilizam XML <ul><li>XML é </li></ul>“ uma linguagem para marcação legível para humanos e máquinas”   [Skonnard...
SOA + Padrões Registrador de serviços Provedor de serviços Solicitador de serviços publica vincula encontra Fonte:  (Krege...
Padrões de Web Service <ul><li>Têm a intenção de apoiar o SOA em diferentes tipos de aplicações </li></ul><ul><li>WS-BPEL ...
Padrões de Web Service (2) <ul><li>WS-Security </li></ul><ul><ul><li>Padrões de segurança, inclusive no uso de assinaturas...
Pilha de Padrões Tecnologias XML (XML, XSD, XST, ...) Apoio (WS-Security, WS-Addressing, ...) Processo (WS-BPEL) Definição...
Serviço como Abstração Reusável <ul><li>Engenharia de Serviço </li></ul><ul><ul><li>Identificar e projetar  componentes re...
Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte:...
Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte:...
Identificação do Serviço Candidato <ul><li>Serviços de Utilidades </li></ul><ul><ul><li>Funcionalidades gerais  que podem ...
Identificação do Serviço Candidato (2) <ul><li>Podem ser orientados a Tarefas ou Entidades </li></ul><ul><li>Tarefas: asso...
Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte:...
Projeto do Serviço <ul><li>Projeto de Interface Lógica </li></ul><ul><ul><li>Identificar as operações </li></ul></ul><ul><...
Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte:...
Implementação do Serviço <ul><li>Desenvolvimento usual numa linguagem que suporte as tecnologias </li></ul><ul><ul><li>Jav...
Desenvolvimento de Software como Serviço <ul><li>O Desenvolvedor compõe e configura serviços para criar um novo serviço co...
Desenvolvimento de Software como Serviço (2) Projeto de Implementação de Workflow Testar Serviço Declarar o workflow (BPMN...
Passando a Régua <ul><li>Eng. de Serviços   >  Procedimentos para criação e composição de serviços </li></ul><ul><ul><li>O...
Bibliografia <ul><li>KREGER, H.  Web Services Conceptual Architecture (WSCA 1.0),  2001. Disponível em: http://www.cs.uoi....
Obrigado! <ul><li>Mais recursos:  www.javace.org ,  www.guruce.org </li></ul><ul><li>No meu site:  www.leonardoeloy.com </...
Upcoming SlideShare
Loading in …5
×

Arquitetura orientada a servicos soa

4,245 views

Published on

  • Muito boa a apresentação.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Arquitetura orientada a servicos soa

  1. 1. Engenharia de Software Orientada a Serviços Leonardo Eloy FATENE Abril/2010
  2. 2. JavaCE www.javace.org
  3. 3. GURU-CE www.guruce.org
  4. 4. Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
  5. 5. Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
  6. 6. Conceituação Teórica <ul><li>Praticamente todos os sistemas baseados em grandes computadores são distribuídos </li></ul>
  7. 7. Conceituação Teórica (2) <ul><li>Sistema Distribuído: </li></ul><ul><li>“ aquele em que as informações em fase de processamento são distribuídas por vários computadores, em vez de ficarem confinadas em uma só máquina” [Sommerville, 2007] </li></ul>
  8. 8. Surgimento dos Serviços <ul><li>O desenvolvimento Web promoveu o acesso de computadores clientes aos servidores remotos </li></ul><ul><li>Porém, as informações eram estritamente em HTML </li></ul><ul><li>Navegadores eram o meio principal de extrair informações da rede </li></ul><ul><li>Portanto, o acesso a um diretório de informações não era algo prático </li></ul>
  9. 9. Surgimento dos Serviços Web <ul><li>A noção de Web Service foi proposta para contornar este problema </li></ul><ul><li>Organizações que desejam expor informações podem definir e publicar Web Services </li></ul><ul><li>Essa interface define os dados disponíveis e como eles podem ser acessados </li></ul>
  10. 10. Um Serviço <ul><li>Exemplo: </li></ul>Serviço de Imposto declara imposto Usuário Receita SEFAZ SEFIN
  11. 11. Conceituação de Serviço <ul><li>A essência de um serviço é que </li></ul><ul><ul><li>“ o fornecimento dos serviços é independente da aplicação que usa o serviço” [Turner, et al., 2003] </li></ul></ul>
  12. 12. Serviços vs. Objetos Distribuídos <ul><li>Objetos distribuídos podem suprir essa necessidade </li></ul><ul><li>Porém, o conceito de serviços provê uma série de vantagens: [Sommerville, 2007] </li></ul><ul><ul><li>Podem ser fornecidos por qualquer provedor de serviços </li></ul></ul><ul><ul><li>Utilizado por usuários autorizados </li></ul></ul><ul><ul><li>Podem mudar dinamicamente durante a execução </li></ul></ul><ul><ul><li>Composição de serviços </li></ul></ul><ul><ul><li>Aplicações menores; tratamento externo de exceções </li></ul></ul>
  13. 13. Arquitetura Orientada a Serviços Registrador de serviços Provedor de serviços Solicitador de serviços publica vincula encontra Fonte: (Kreger, 2001), com adaptações. Serviços
  14. 14. Workflow de Web Services Serviço de Compra Serviço de Venda out in Pedido in out Bens Fonte: (Kreger, 2001)
  15. 15. Fluxos Públicos & Privados Serviço de Emissão de Diplomas Serviço de Verificação de Débitos in out SPC SERASA Biblioteca Sistema Gestão Acadêmica Fonte: (Kreger, 2001), com adaptações. Serviços Privados
  16. 16. Passando a Régua <ul><li>Sistemas Distribuídos > Processamento em diversas máquinas </li></ul><ul><li>Uso da Web via HTML > Evolui para Serviços </li></ul><ul><li>Serviços > Melhores que Objetos Distribuídos </li></ul><ul><li>Web Services > Utilizam padrões </li></ul><ul><li>SOA > Princípio Conceitual </li></ul>
  17. 17. Na Teoria <ul><li>Sistemas orientados a serviços são criados pela ligação de serviços de software fornecidos por diversas organizações. </li></ul><ul><li>Um aspecto importante é que no SOA, a ligação de serviços aos componentes de arquitetura pode ser postergada até que o sistema seja implantando ou esteja em execução. </li></ul>
  18. 18. Agenda Conceituação Teórica Arquitetura Engenharia de Software Orientada a Serviços
  19. 19. Engenharia de Software Orientada a Serviços <ul><li>A utilização do SOA é um meio para facilitar a computação interorganizacional </li></ul><ul><li>Tem um uso significativo em aplicações de negócios </li></ul><ul><li>Por meio do empacotamento de serviços legados , empresas podem preservar seus investimentos </li></ul><ul><li>Possibilita a utilização em plataforma e usos distintos, promovendo a interoperação </li></ul>
  20. 20. Padronização: Na Teoria <ul><li>Há uma tendência à padronização, juntamente com os desenvolvimentos técnicos </li></ul><ul><li>Como resultado, SOA não sofreria com incompatibilidade nas evoluções tecnológicas </li></ul><ul><li>Web Services são independentes do protocolo de aplicação e transporte </li></ul><ul><li>Todas as principais empresas de HW e SW estão comprometidas com padrões </li></ul>
  21. 21. Padronização: Na Prática <ul><li>É difícil padronizar, vejamos o Unix como exemplo [Martin, 1995] </li></ul><ul><li>Mudanças tecnológicas conseguem manter padrões; mudanças de paradigma são mais difíceis </li></ul><ul><li>Na prática, Web Services utilizam HTTP e HTTPS </li></ul><ul><li>Quem garante que a Oracle não vai inventar o “Oracle Services 4 Web”? </li></ul>
  22. 22. Padrões de Comunicação <ul><li>SOAP – Simple Object Access Protocol </li></ul><ul><ul><li>Organização para troca estruturada de dados </li></ul></ul><ul><li>WSDL – Web Services Description Language </li></ul><ul><ul><li>Representação das Interfaces dos Web Services </li></ul></ul><ul><li>UDDI – Universal Description, Discovery and Integration </li></ul><ul><ul><li>Utilizado pelo Solicitante para descobrir serviços </li></ul></ul>
  23. 23. Os Padrões Utilizam XML <ul><li>XML é </li></ul>“ uma linguagem para marcação legível para humanos e máquinas” [Skonnard e Gugdin, 2002]
  24. 24. SOA + Padrões Registrador de serviços Provedor de serviços Solicitador de serviços publica vincula encontra Fonte: (Kreger, 2001), com adaptações. Serviços SOAP WSDL UDDI
  25. 25. Padrões de Web Service <ul><li>Têm a intenção de apoiar o SOA em diferentes tipos de aplicações </li></ul><ul><li>WS-BPEL </li></ul><ul><ul><li>Padrão da linguagem de workflow utilizada para definir processos </li></ul></ul><ul><li>WS-Reliable Messaging </li></ul><ul><ul><li>Garante que as mensagens serão entregue somente uma vez </li></ul></ul>
  26. 26. Padrões de Web Service (2) <ul><li>WS-Security </li></ul><ul><ul><li>Padrões de segurança, inclusive no uso de assinaturas digitais </li></ul></ul><ul><li>WS-Addressing </li></ul><ul><ul><li>Define as opções de endereçamento para utilização com o SOAP </li></ul></ul><ul><li>WS-Transactions </li></ul><ul><ul><li>Coordenação de transações distribuídas </li></ul></ul>
  27. 27. Pilha de Padrões Tecnologias XML (XML, XSD, XST, ...) Apoio (WS-Security, WS-Addressing, ...) Processo (WS-BPEL) Definição de Serviço (UDDI, WSDL) Serviço de Mensagem (SOAP) Transporte (HTTP, HTTPS, SMTP, ...) Fonte: (Sommerville, 2007).
  28. 28. Serviço como Abstração Reusável <ul><li>Engenharia de Serviço </li></ul><ul><ul><li>Identificar e projetar componentes reusáveis </li></ul></ul><ul><li>Desenvolvimento de Software como Serviço </li></ul><ul><ul><li>Desenvolver software como uma composição de serviços e promover o reuso </li></ul></ul>
  29. 29. Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte: (Sommerville, 2007). Requisito do Serviço Especificação de Interface do Serviço Serviço Implantado e Validado
  30. 30. Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte: (Sommerville, 2007). Requisito do Serviço Especificação de Interface do Serviço Serviço Implantado e Validado
  31. 31. Identificação do Serviço Candidato <ul><li>Serviços de Utilidades </li></ul><ul><ul><li>Funcionalidades gerais que podem ser utilizadas por diferentes processos de negócio </li></ul></ul><ul><li>Serviços de Negócios </li></ul><ul><ul><li>Função específica do negócio </li></ul></ul><ul><li>Serviços de Coordenação ou de Processo </li></ul><ul><ul><li>Apóiam os processo de negócios mais gerais que envolvem diferentes atores e atividades </li></ul></ul>
  32. 32. Identificação do Serviço Candidato (2) <ul><li>Podem ser orientados a Tarefas ou Entidades </li></ul><ul><li>Tarefas: associados a atividades </li></ul><ul><li>Entidades: funcionam como objetos </li></ul><ul><ul><li>Utilidade : </li></ul></ul><ul><ul><ul><li>conversor de moeda (tarefa) </li></ul></ul></ul><ul><ul><ul><li>verificador de estilo de documento (entidade) </li></ul></ul></ul><ul><ul><li>Negócio : </li></ul></ul><ul><ul><ul><li>avaliar o crédito (tarefa) </li></ul></ul></ul><ul><ul><ul><li>formulário de gastos (entidade) </li></ul></ul></ul><ul><ul><li>Coordenação: </li></ul></ul><ul><ul><ul><li>pagar fornecedor externo (?) </li></ul></ul></ul><ul><ul><ul><ul><li>Coordenação só aceitam tarefas. </li></ul></ul></ul></ul>
  33. 33. Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte: (Sommerville, 2007). Requisito do Serviço Especificação de Interface do Serviço Serviço Implantado e Validado
  34. 34. Projeto do Serviço <ul><li>Projeto de Interface Lógica </li></ul><ul><ul><li>Identificar as operações </li></ul></ul><ul><ul><li>Identificar as entradas e saídas </li></ul></ul><ul><li>Projeto de Mensagem </li></ul><ul><ul><li>Estrutura das mensagens enviadas e recebidas </li></ul></ul><ul><li>Desenvolvimento do WSDL </li></ul><ul><ul><li>Transformar o projeto lógico em um arquivo no padrão WSDL </li></ul></ul>
  35. 35. Engenharia de Serviços Identificação do Serviço Candidato Projeto do Serviço Implementação e Implantação do Serviço Fonte: (Sommerville, 2007). Requisito do Serviço Especificação de Interface do Serviço Serviço Implantado e Validado
  36. 36. Implementação do Serviço <ul><li>Desenvolvimento usual numa linguagem que suporte as tecnologias </li></ul><ul><ul><li>Java, C# </li></ul></ul><ul><li>Testes a cada iteração do desenvolvimento </li></ul><ul><li>Utilização de componentes de terceiros para sistemas legados </li></ul><ul><li>Registro com UDDI </li></ul>
  37. 37. Desenvolvimento de Software como Serviço <ul><li>O Desenvolvedor compõe e configura serviços para criar um novo serviço composto </li></ul><ul><li>Abre-se a possibilidade para ampliar o reuso dentro da empresa </li></ul><ul><li>Possibilita a visão de um “mercado de serviços” no futuro </li></ul>
  38. 38. Desenvolvimento de Software como Serviço (2) Projeto de Implementação de Workflow Testar Serviço Declarar o workflow (BPMN, YAWL) Verificar e Validar Composição
  39. 39. Passando a Régua <ul><li>Eng. de Serviços > Procedimentos para criação e composição de serviços </li></ul><ul><ul><li>Otimização Prematura > Impossível prever todos os aspectos de um serviço </li></ul></ul><ul><ul><li>Muitas composições > Serviços grandes e “pesados” </li></ul></ul><ul><li>Desenv. Sw. como Serv. > Implementação em notação de workflow </li></ul><ul><ul><li>Workflow > Fácil entendimento, difícil manutenção de grandes fluxos </li></ul></ul><ul><ul><li>Testes > Difícil de testar fluxos externos </li></ul></ul>
  40. 40. Bibliografia <ul><li>KREGER, H. Web Services Conceptual Architecture (WSCA 1.0), 2001. Disponível em: http://www.cs.uoi.gr/~pitoura/courses/ds04_gr/webt.pdf. Acessado em: 21/04/2010. </li></ul><ul><li>MARTIN, V. There can be only one: a summary of the Unix standardization movement . Crossroads, V. 1, I. 3, 1995, ACM. </li></ul><ul><li>SKONNARD, A.; GUDGIN, M. Essential XML quick reference: a programmer’s reference to XML, XPath, XSLT, XML Schema, SOAP and more , 2002. Addison-Wesley. </li></ul><ul><li>SOMMERVILLE, I. Software Engineering 8 , 2007, Addison-Wesley. </li></ul>
  41. 41. Obrigado! <ul><li>Mais recursos: www.javace.org , www.guruce.org </li></ul><ul><li>No meu site: www.leonardoeloy.com </li></ul>

×