• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SOA e Web Services
 

SOA e Web Services

on

  • 4,673 views

SOA e Web Services

SOA e Web Services

Statistics

Views

Total Views
4,673
Views on SlideShare
4,673
Embed Views
0

Actions

Likes
2
Downloads
199
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SOA e Web Services SOA e Web Services Presentation Transcript

    • UNISINOS SOA eWeb ServicesGiovane Barcelos giovanebarcelos@gmail.com São Leopoldo, Maio de 2010
    • Roteiro Introdução SOA Serviços Web Services Composição de Serviços Implementação InSOA ConclusãoPublicado em: http://ubuntuone.com/p/3ds/Mai 10 SOA e WS 2
    • IntroduçãoPorque precisamos de SOA e WS? Integração e Composição de Sistemas e Processos Mai 10 SOA e WS 3
    • Introdução Porque integrar? Vamos reescrever tudo de novo!!! Existem situações em que isto é praticamente impossível: • Por falta de tempo • Recursos financeiros • Problemas técnicos Mai 10 SOA e WS 4
    • IntroduçãoPorque precisamos de SOA e WS? Alinhar TI com o Negócio Automatizar e Integrar Processos de Negócios Gerenciar Fluxo de Processos (Workflow) Compor e Integrar ProcessosMai 10 SOA e WS 5
    • SOAMas afinal, o que é SOA? SOA (Service-Oriented Architecture) SOA é um estilo de arquitetura de software onde as aplicações devem ser disponibilizadas na forma de serviços SOA NÃO É: • uma tecnologia • web services • estratégia de integração de sistemasMai 10 SOA e WS 6
    • SOAExemplo típico de SOA Ordem de Compra Contabi- Estoque lidade Barramento de Serviços Fornece- NF de dor Entrada Contas a PagarMai 10 SOA e WS 7
    • SOAO que SOA requer? Modelagem e simulação de processos (BPMN, BPEL) Orquestração dos processos de negócio como serviços Componentização e reuso de serviços (SCA, WS-*) Integrações de aplicações (WS-*, JNI, JMS) Gerenciamento de processos em servidores de processos Monitoração dos processos de negócio (BAM) Mai 10 SOA e WS 8
    • SOAQuais os princípios da arquitetura? 1/2 Encapsulamento Baixa Acoplagem Contrato Abstração ReusabilidadeMai 10 SOA e WS 9
    • SOAQuais os princípios da arquitetura? 2/2 Composição Autonomia Otimização Descoberta RelevânciaMai 10 SOA e WS 10
    • SOAQuais são os elementos? SOA Aplicação Repositório Barramento Serviço Frontend de Serviços de Serviços Contrato/ Implementação Interface Definição Lógica de Banco de Dados NegóciosMai 10 SOA e WS 11
    • Servicos SOA e os Serviços Implementações SOA utilizam Serviços Web e geralmente SOA utiliza WS Serviços são aplicações disponíveis na Web Principais padrões de serviços: •RPC •CORBA •DCOM •Web Services •REST •DDS •WCF Exemplo WS: http://www.webservicex.net/WCF/ServiceDetails.as px?SID=19 Mai 10 SOA e WS 12
    • Serviços RPC RPC (Remote Procedure Call) Mai 10 SOA e WS 13
    • Serviços CORBA - OMG CORBA (Common Object Request Broker Architecture) Mai 10 SOA e WS 14
    • Serviços DCOM - Microsoft DCOM (Dynamic Component Object Model) Mai 10 SOA e WS 15
    • Web Services Afinal de contas, o que são WS? WS (Web Services) – Serviços Web Web Services fornecem um padrão de interoperabilidade entre aplicações diferentes, rodando sobre plataformas e/ou frameworks distintos Especificação W3C (w3c.org): • XML, XPath, XQuery, ... • Mensagens (SOAP, WS-Addressing, ...) • Metadados de trocas (WSDL, UDDI, WS-Policies, …) • Segurança e Confiabilidade (WS-Security, WS-Trust, …) • Privacidade (P3P) • Recursos (WS-Resource, WS-Transfer, …) • Interoperabilidade (WS-Basic Profile, …) • Processos de Negócios (WS-BPEL, WS-CDL, ..) • Transações (WS-Transaction, WS-Coordination, …) • Gerenciamento (WS-Management, WSDM, ...) Mai 10 SOA e WS 16
    • Web Services Arquitetura Serviços como Web-Services (WS) Troca de mensagens (SOAP) Usuário ou aplicaçãoLógica e dadosencapsulados Serviço Web-Services Cliente Web-Services SOAP: Simple Object Access Protocol Arquitetura Web-Services (WS) SOAP Troca Mensagens WSDL WSDLServidor Cliente Publicação Pesquisa eSOAP: Simple Object Access Protocol DescobertaUDDI: Universal Description, Discovery Diretório deand Integration Serviços (UDDI) Mai 10 SOA e WS 17
    • Web ServicesPilha Pilha de Tecnologias Pilha de Soluções Descoberta UDDI Descrição WSDL Empacotamento SOAP Transporte HTTP (Web) Rede TCP / IP (Internet)Mai 10 SOA e WS 18
    • Web Services O que é XML? eXtensible Markup Language: padrão W3C Maneira de representar informação Não é uma linguagem específica Não define vocabulário de comandos Não define uma gramática, apenas regras mínimas Mai 10 SOA e WS 19
    • Web ServicesXML versus HTMLMai 10 SOA e WS 20
    • Web ServicesExemplo WSDL 1/2Mai 10 SOA e WS 21
    • Web ServicesExemplo WSDL 2/2Mai 10 SOA e WS 22
    • Web Services SOAP – Formato Genérico SOAP Envelope SOAP Cabeçalho (Header) SOAP Corpo (Body) Mai 10 SOA e WS 23
    • Web Services Exemplo SOAP Pedido SOAP Resposta SOAP Mai 10 SOA e WS 24
    • Web ServicesO que é REST ? REST significa REpresentational State Transfer É um estilo de arquitetura de serviços e WS Trabalha essencialmente com o protocolo HTTP Proposto por Roy Fielding (Tese) – autor da especificação HTTP Mai 10 SOA e WS 25
    • Web Services REST versus WS-*? WS-* - Modelo OSI e W3C • Formalidade e overhead de protocolos • Muitas especificações antes de implementar • Modelo Waterfall / Cascata REST – TCP/IP • Simplicidade e flexibilidade • Especificações junto com implementação • Modelo incremental Mai 10 SOA e WS 26
    • Web ServicesComandos REST GET PUT CLIENTE RECURSO POST DELETE INVOKE Atividade 1 CLIENTE INVOKE Atividade 2 INVOKE Atividade 3Mai 10 SOA e WS 27
    • Web ServicesSOAP x REST = Declarativo x Imperativo SOAP <soap:Envelope> <soap:Body> <globo:getBook> <id>SOAP123</id> Operação e parâmetros </globo:getBook> </soap:Body> </soap:Envelope> REST Método HTTP URI do recurso GET /getBook/SOAP123 Como O quêMai 10 SOA e WS 28
    • Web ServicesREST e SOAP – Itens Importantes Recursos URI (Uniform Resource Identifier) Formatos e tipos disponíveis Métodos Retorno Tags e identificadores Mai 10 SOA e WS 29
    • Composição Serviços O que significa compor serviços? Composição de Serviços com SOA (Service Oriented Architecture) WS1 Servidor de composição de Web-Services responsável SO pela Orquestração WS APintegração de múltiplas Usuário ou aplicação plataformas UI WS2 SOAP Cliente Web-Services WS3 AP SO Linguagens BPEL4WS e OWL-S Abordagens distintas Escritas com auxílio de ferramentas gráficas Mai 10 SOA e WS 30
    • Composição de ServiçosO que é Orquestração? Um processo central controle os serviços 1. Inicia 2. 5. Executa Retorno 4. Executa 3. Executa Mai 10 SOA e WS 31 31
    • Composição de ServiçosO que é Coreografia? Não depende de um coordenador central 5. 1. Executa Inicia 3. Retorno 2. Executa 4. Executa Mai 10 SOA e WS 32 32
    • Composição de ServiçosDesign Patterns e Linguagens de Composição Para compor serviços Linguagem de Composição são essenciais Principais patterns de composição: ✔ Controle de fluxo básico (5) ✔ Marcação de sincronização avançados (4) ✔ Estruturais (2) ✔ Múltiplas instâncias (4) ✔ Baseados em estado (3) ✔ Cancelamento (2) ✔ Tratamento de Erros (1)Design Patterns ou Padrões de Projeto: ✔ Descrevem um problema que acontece repetidas vezes ✔ Foco em reutilização e documentação de soluções ✔ Úteis para analisar e comparar aplicações➢ Seguem Patterns: BPEL4WS, XLANG, WSFL, XPDL e OWL-S Mai 10 SOA e WS 33
    • Composição de Serviços Linguagens: BPEL4WS e OWL-S BPEL4WS (Business Process Execution Language for WS): • Originária das especificações WSFL (Web Services Flow Language) da IBM e da XLANG da Microsoft • 4 partes: partnerLinks, variables, faultHandler e sequence • Característica de execução procedural OWL-S (Ontology Web Language for Services) • Predecessor é a linguagem DAML (DARPA Agent Markup Language) utilizada para criação de ontologias • 4 partes: service, profile, process e grounding • Descoberta, Invocação e Composição automática • Característica de definição de Ontologias de Domínios Mai 10 SOA e WS 34
    • Composição de ServiçosAnálise Comparativa – Design Patterns  OWL-S:  Vantagens devido ao suporte a XSLT (Extensible Stylesheet Language Transformations)  BPEL:  Vantagem em itens muito importantes (19 e 20) - tratamento de exceções e compensaçãoMai 10 SOA e WS 35
    • ImplementaçãoTípico roteiro de implementação SOA Processos de Negócios Integração Aplicações Segurança Centralização dos Dados Básicos / Mestres Mai 10 SOA e WS 36
    • Implementação Estratégias de Integração Projeto centralizado ou descentralizado de integração de sistemas Definição da arquitetura a ser utilizada • Hub and Spoke • ESB (Transporte, Transformação e Roteamento) Mai 10 SOA e WS 37
    • ImplementaçãoAPIs de IntegraçãoMai 10 SOA e WS 38
    • ImplementaçãoIntegração SOA–ESB Enterprise Service BusMai 10 SOA e WS 39
    • Implementação ESB e SOA Open Source MULE (http://mule.codehaus.org) - DEMO APACHE (http://incubator.apache.org/servicemix e tuscany) ECLIPSE (http://www.eclipse.org/stp/ ) Mai 10 SOA e WS 40
    • ImplementaçãoESB e SOA Suites (Real-Wold Labs)Mai 10 SOA e WS 41
    • ImplementaçãoMétodos de transporte ESB Software Servidor Barramento MetadadosBEA J2EE JMS OutroCAPE Clear J2EE HTTP BPELFlorano J2EE JMS OutroWebSphere OS Nativo Definido OutroOracle J2EE HTTP BPELAG J2EE JMS OutroSonic J2EE Sonic MQ OutroTIBCO OS Nativo TIBCO OutroMai 10 SOA e WS 42
    • InSOACenário de Convergência e Evolução Arquiteturas Arquiteturas Distribuídas Centralizadas Web Services (WS) SOA (Service Oriented Architecture) Business Process Linguagens de Management + SOA Composição de Serviços Computador Pessoal Dispositivos Móveis Dispositivos Móveis Dispositivos Móveis Clientes Servidores Linguagens Linguagens interpretadas Compiladas e declarativas Embutidas e levesMai 10 SOA e WS 43
    • InSOA Características desejadas Soluções atuais devem: ✔ Ser distribuídas ✔ Orientadas a serviços ✔ Compor serviços ✔ Adequadas a dispositivos móveis ✔ Prover serviços e uso destes ✔ Tendência para linguagens declarativas [Aho 2006] ✔ Possibilidade de ser embutida e leves Mai 10 SOA e WS 44
    • inSOAQuestão de PesquisaComo criar composições de serviços em dispositivos móveis utilizando uma linguagem de composição declarativa?Mai 10 SOA e WS 45
    • Linguagem inSOAProjeto U-SOA ✔ inSOA faz parte do Projeto U-SOA ✔ U-SOA significa Ubiquitous Service- Oriented Architecture ✔ É uma pilha de tecnologias separada em camadas ✔ É uma arquitetura para desenvolvimento de aplicações colaborativas ubíquasMai 10 SOA e WS 46
    • inSOACaracterísticas (1/2)✔ inSOA (invoke SOA) é uma linguagem declarativa de composição de serviços com foco em dispositivos móveis✔ Insensível a capitalização✔ Possui declaração flexível✔ Faz validação de padrões (URI RFC 3986 e XPath 2.0)✔ Comandos são opcionais, com exceção do invokeMai 10 SOA e WS 47
    • inSOA Características (2/2)✔ Suporte a tratamento de falhas✔ Orquestração de WS✔ Organiza invocações de forma otimizada em objetos✔ Gera saída customizável com StringTemplate✔ Pode ser embutida✔ Leve e não exige software de autoria Mai 10 SOA e WS 48
    • inSOAExemplo-- Exemplo inSOA/* Data: 19/02/2009 */invoke http://usoa.insoa/WS1.OperationA as a if way != 1, http://usoa.insoa/WS2.OperationB as b input way type Number default 0 into / as wayPipe, / as wayPipeA set a.field := way, b.field := wayPipeA/result/text()where wayPipe/result/tag/text() == Validreturn wayPipe/result/field/text() type String name Result fail a: invoke http://usoa.insoa/WS2.Operation as c set c.field := Rollback, c.way := way id Identification tags Example;Mai 10 SOA e WS 49
    • inSOAGramática – Diagrama da sintaxeMai 10 SOA e WS 50
    • inSOADesign Patterns Implementados B O in B O in P W S P W S Pattern E L O Pattern E L O L S A L S A 12. Multiple Instances Without 1. Sequence + + + + + + Synchronization 13. Multiple Instances With a 2. Parallel Split + + + + + + Priori Design Time Knowledge 14. Multiple Instances With a 3. Synchronization + + + - - + Priori Runtime Knowledge 15. Multiple Instances Without a 4. Exclusive Choice + + + - - + Priori Runtime Knowledge 5. Simple Merge + + + 16. Deferred Choice + + + 6. Multi-choice + + + 17. Interleaved Parallel +- +- + 7. Synchronizing Merge + + + 18. Milestone - - - 8. Multi-merge - - + 19. Cancel Activity + + + 9. Discriminator - - + 20. Cancel Case + + + 10. Arbitrary Cycles - - + 21. Exception Handling + - + 11. Implicit Termination + + +Mai 10 SOA e WS 51
    • inSOAProtótipo FuncionalMai 10 SOA e WS 52
    • InSOA Estudo de Caso➢ 2 Cenários: ✔ Consulta de Viagem (4 níveis, 10 WS, 10 Composições inSOA) ✔ Consulta de Livros (5 níveis, 8 WS, 12 Composições inSOA)➢ Processo integrado de teste: Mai 10 SOA e WS 53
    • inSOACenário 1: Consulta de Viagem ✔ 4 níveis ✔ 10 Composições inSOA ✔ 10 WS ✔ 10 EmuladoresMai 10 SOA e WS 54
    • inSOA Comparação com os Paradigmas Atuais# Característica BPEL OWL-S inSOAa Insensível a capitalização NÃO NÃO SIMb Declaração Flexível NÃO NÃO SIMc Validação de Padrões NÃO NÃO SIMd Tratamento XML Externo Externo Internoe Opcionalidade NÃO NÃO SIMf Tratamento de Erros SIM SIM SIMg Orquestração SIM SIM SIMh Saída Customizável NÃO NÃO SIMi Invocação Otimizada NÃO NÃO SIMj Embutida NÃO NÃO SIMk Leve NÃO NÃO SIMl Abordagem Funcional Orientada para Objetos Declarativam Baseada XML XML Texto Mai 10 SOA e WS 55
    • inSOAPatterns Implementados/Testados no Estudo de Caso Pattern I? T? Pattern I? T? 12. Multiple Instances Without1. Sequence Sim Sim Sim Não Synchronization 13. Multiple Instances With a2. Parallel Split Sim Sim Sim Não Priori Design Time Knowledge 14. Multiple Instances With a3. Synchronization Sim Sim Sim Não Priori Runtime Knowledge 15. Multiple Instances Without4. Exclusive Choice Sim Não Sim Não a Priori Runtime Knowledge5. Simple Merge Sim Sim 16. Deferred Choice Sim Não6. Multi-choice Sim Não 17. Interleaved Parallel Sim Não7. Synchronizing Merge Sim Sim 18. Milestone Não Não8. Multi-merge Sim Sim 19. Cancel Activity Sim Sim9. Discriminator Sim Não 20. Cancel Case Sim Sim10. Arbitrary Cycles Sim Não 21. Exception Handling Sim Não11. Implicit Termination Sim SimLegenda: I? = Implementado? e T? = Testado Mai 10 SOA e WS 56
    • inSOAComparação BPEL4WS, OWL-S e inSOALinguagem Motivação Componentes Paradigma Tratamento Retorno XMLBPEL4WS WSFL e partnerLinks, Procedural Externo XLANG variables, faultHandler e sequenceOWL-S DAML service, POO Externo profile, process e groundinginSOA Declarativa Invoke, input, Declarativo Interno into, set, where, return, fail, id e tagsMai 10 SOA e WS 57
    • Introdução Críticas SOA SOA é apenas uma nova palavra para WS Dependência de SOA à tecnologia WS Altos custos e riscos ocasionados pela constante evolução dos padrões ligados a SOA Serviços SOA com estado (stateful) criam alto grau de acoplamento e reduz escalabilidade SOA é só uma evolução e não um novo conceito Rigidez nas interfaces gera impacto negativo nas alterações dos serviços Mai 10 SOA e WS 58
    • Conclusão➢ Integrar é preciso➢ Quem não se comunica se trumbica➢ SOA é um conceito e não tecnologia➢ WS é a tecnologia mais utilizada naatualidadeMai 10 SOA e WS 59
    • Referências BibliográficasParcial[Aalst 2003] Aalst, W.M.P van der; Dumas, M. e Hofstede, A.H.M. Ter. Webservice composition languages: old wine in New bottles?. EuromicroConference. IEEE. ISBN: 0-7695-1996-2. 2003.[Aho 2006] Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi e Ullman, Jeffrey D.Compilers: Principles, Techniques, & Tools. Pearson Addison Wesley. 1000Pág. ISBN: 978-0321486813. 2006.[Erl 2005] Erl, Thomas. Service-Oriented Architecture: Concepts, Technology,and Design. Prentice Hall PTR. 792 Pág. ISBN: 978-0131858589. 2005.[Haseman 2008] Haseman, Chris. Android Essentials. Apress. 166 Pág. ISBN:978-1430210641. 2008.[Martin 2004] Martin, D. at al. OWL-S: Semantic Markup for Web Services.W3C. http://www.w3.org/Submission/OWL-S/. 2004.[Parr 2007] Parr, Terence. The Definitive Antlr Reference: Building Domain-Specific Languages. Pragmatic Bookshelf. 376 pag. ISBN: 978-0978739256.2007.[Staab 2003] Staab, S.; van der Aalst, W.; Benjamins, V.R.; Sheth, A.; Miller, J.A.;Bussler, C.; Maedche, A.; Fensel, D. e Gannon, D.. Web services: been there,done that?. IEEE, DOI: 10.1109/MIS.2003.1179197. 2003.[Will 2003] Will, van der Aalst. Dont go with the flow: Web services Mai 10 SOA e WS 60composition standards exposed. IEEE Intelligent Systems. 2003.
    • Referências BibliográficasParcial[1] W3C, “Web Services Architecture”, 2004, disponível em:http://www.w3.org/TR/ws-arch/#introduction, acessado em: 23/05/08.[2] M. Nakamura, H. Igaki,, H. Tamada, K. Matsumoto, “ImplementingIntegrated Services of Networked Home Appliances using serviceoriented Architecture”, In: 2nd International Conference on ServiceOriented Computing, Novembro, 2004[3] M. Hu, “Web Services Composition, Partition, and Quality of Servicein Distributed System Integration and Re-engineering”, 2003, XMLConference & Exposition 2003[4] J. Shen, Y. Yang, C. Zhu e C. Wan, “From BPEL4WS to OWL-S:Integrating E-Business Process Descriptions”, Services Computing, 2005IEEE International Conference.[5] W.M.P van der Aalst, M. Dumas e A.H.M. ter Hofstede, “Web servicecomposition languages: old wine in New bottles?”, 2003, IEEE.[6] E. Gamma, R. Helm, R. Johnson e J.M. Vlissides, “Design Patterns:Elements of Reusable Object-Oriented Software”, 1994, Addison-Wesley.[7] W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, e A.P.Barros, “Workflow Patterns”, 2000Mai 10 SOA e WS 61
    • AgradecimentosPerguntas OBRIGADO !Mai 10 SOA e WS 62