soa e web services
DESCRIPTION
SOA e Web ServicesTRANSCRIPT
SOA e SOA e Web ServicesWeb Services
UNISINOSUNISINOS
Giovane BarcelosGiovane [email protected]@gmail.com
São Leopoldo, Maio de 2010São Leopoldo, Maio de 2010
Mai 10 SOA e WS 2
RoteiroRoteiro
IntroduçãoIntrodução
SOASOA
ServiçosServiços
Web ServicesWeb Services
Composição de ServiçosComposição de Serviços
ImplementaçãoImplementação
InSOAInSOA
ConclusãoConclusão
Publicado em: http://ubuntuone.com/p/3ds/
Mai 10 SOA e WS 3
Introdução Introdução Porque precisamos de SOA e WSPorque precisamos de SOA e WS??
Integração e Composição de Sistemas e Processos
Mai 10 SOA e WS 4
Introdução Introdução Porque integrar? 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 5
Introdução Introdução Porque precisamos de SOAPorque precisamos de SOA e WS? e WS?
Alinhar TI com o Negócio
Automatizar e Integrar Processos de Negócios
Gerenciar Fluxo de Processos (Workflow)
Compor e Integrar Processos
Mai 10 SOA e WS 6
SOA SOA Mas afinal, o que é 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 sistemas
Mai 10 SOA e WS 7
SOASOAExemplo típico de SOAExemplo típico de SOA
Ordem de Compra
EstoqueContabi-lidade
Contas a Pagar
Fornece-dor
NF de Entrada
Barramento de Serviços
Mai 10 SOA e WS 8
SOA SOA O que SOA requer?O 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 9
SOA SOA Quais os princípios da arquitetura? 1/2Quais os princípios da arquitetura? 1/2
Encapsulamento
Baixa Acoplagem
Contrato
Abstração
Reusabilidade
Mai 10 SOA e WS 10
SOA SOA Quais os princípios da arquitetura? 2/2Quais os princípios da arquitetura? 2/2
Composição
Autonomia
Otimização
Descoberta
Relevância
Composição
Autonomia
Otimização
Descoberta
Relevância
Mai 10 SOA e WS 11
SOA SOA Quais são os elementos?Quais são os elementos?
SOA
Aplicação Frontend
Repositório de Serviços
ServiçoBarramento de Serviços
Contrato/ Definição
InterfaceImplementação
Lógica de Negócios
Banco de Dados
Mai 10 SOA e WS 12
Servicos Servicos SOA e os ServiçosSOA 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.aspx?SID=19
Mai 10 SOA e WS 13
RPC (Remote Procedure Call)
Serviços Serviços RPCRPC
Mai 10 SOA e WS 14
Serviços Serviços CORBA - OMGCORBA - OMG
CORBA (Common Object Request Broker Architecture)
Mai 10 SOA e WS 15
DCOM (Dynamic Component Object Model)
Serviços Serviços DCOM - MicrosoftDCOM - Microsoft
Mai 10 SOA e WS 16
Web Services Web Services Afinal de contas, o que são WS?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 17
Web ServicesWeb Services ArquiteturaArquitetura
Serviços como Web-Services (WS)
Cliente Web-ServicesServiço Web-Services
Usuário ou aplicaçãoTroca de mensagens (SOAP)
Lógica e dados encapsulados
Arquitetura Web-Services (WS)
SOAP: Simple Object Access Protocol
Publicação
Troca Mensagens
Servidor Cliente
Pesquisa e Descoberta
Diretório de Serviços (UDDI)
SOAP
WSDLWSDL
SOAP: Simple Object Access ProtocolUDDI: Universal Description, Discovery and Integration
Mai 10 SOA e WS 18
Rede
Transporte
Empacotamento
Descrição
Web Services Web Services PilhaPilha
Descoberta
TCP / IP (Internet)
HTTP (Web)
SOAP
WSDL
UDDI
Pilha de Tecnologias Pilha de Soluções
Mai 10 SOA e WS 19
Web Services Web Services O que é XML?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 20
Web Services Web Services XML versus HTMLXML versus HTML
Mai 10 SOA e WS 21
Web Services Web Services Exemplo WSDL 1/2Exemplo WSDL 1/2
Mai 10 SOA e WS 22
Web Services Web Services Exemplo WSDL 2/2Exemplo WSDL 2/2
Mai 10 SOA e WS 23
Web Services Web Services SOAP – Formato GenéricoSOAP – Formato Genérico
SOAP Envelope SOAP Cabeçalho (Header) SOAP Corpo (Body)
Mai 10 SOA e WS 24
Web Services Web Services Exemplo SOAPExemplo SOAP
Pedido SOAP
Resposta SOAP
Mai 10 SOA e WS 25
Web Services Web Services O que é REST ?O 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 26
Web Services Web Services REST versus WS-*?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 27
Web Services Web Services Comandos REST Comandos REST
CLIENTE RECURSO
Atividade 1
Atividade 2
Atividade 3
CLIENTE
GET
PUT
POST
DELETE
INVOKE
INVOKE
INVOKE
Mai 10 SOA e WS 28
Web Services Web Services SOAP x REST = Declarativo x ImperativoSOAP x REST = Declarativo x Imperativo
<soap:Envelope> <soap:Body> <globo:getBook> <id>SOAP123</id> </globo:getBook> </soap:Body></soap:Envelope>
Operação e parâmetros
SOAP
REST
GET /getBook/SOAP123
O quêComo
Método HTTP URI do recurso
Mai 10 SOA e WS 29
Web Services Web Services REST e SOAP – Itens ImportantesREST 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 30
Composição Serviços Composição Serviços O que significa compor serviços?O que significa compor serviços?
Composição de Serviços com SOA (Service Oriented Architecture)
WS1
WS2
WS3
UI
Usuário ou aplicação
Cliente Web-Services
SOAP
integração de múltiplas plataformas
Linguagens BPEL4WS e OWL-S Abordagens distintasEscritas com auxílio de ferramentas gráficas
SOAP
SOAP
Servidor de composição de Web-Services responsável pela Orquestração WS
Mai 10 SOA e WS 3131
1. Inicia 2.
Executa
4. Executa
3. Executa
5. Retorno
Composição de Serviços Composição de Serviços O que é Orquestração?O que é Orquestração?
Um processo central controle os serviços
Mai 10 SOA e WS 3232
1. Inicia
2. Executa
4. Executa
3. Retorno
5. Executa
Composição de Serviços Composição de Serviços O que é Coreografia?O que é Coreografia?
Não depende de um coordenador central
Mai 10 SOA e WS 33
Composição de Serviços Composição de Serviços Design Patterns e Linguagens de ComposiçãoDesign 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 34
Composição de Serviços Composição de Serviços Linguagens: BPEL4WS e OWL-SLinguagens: 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 35
Composição de Serviços Composição de Serviços Análise Comparativa – Design PatternsAná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ção
Mai 10 SOA e WS 36
Implementação Implementação Típico roteiro de implementação SOATí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 37
Implementação Implementação Estratégias de IntegraçãoEstraté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 38
Implementação Implementação APIs de IntegraçãoAPIs de Integração
Mai 10 SOA e WS 39
Implementação Implementação Integração Integração SOA–ESB Enterprise Service BusSOA–ESB Enterprise Service Bus
Mai 10 SOA e WS 40
Implementação Implementação ESB e SOA Open SourceESB 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 41
Implementação Implementação ESB e SOA Suites (Real-Wold Labs)ESB e SOA Suites (Real-Wold Labs)
Mai 10 SOA e WS 42
Implementação Implementação Métodos de transporte ESBMétodos de transporte ESB
Software Servidor Barramento Metadados
BEA J2EE JMS Outro
CAPE Clear J2EE HTTP BPEL
Florano J2EE JMS Outro
WebSphere OS Nativo Definido Outro
Oracle J2EE HTTP BPEL
AG J2EE JMS Outro
Sonic J2EE Sonic MQ Outro
TIBCO OS Nativo TIBCO Outro
Mai 10 SOA e WS 43
InSOA InSOA Cenário de Convergência e EvoluçãoCenário de Convergência e Evolução
Arquiteturas Centralizadas
Arquiteturas Distribuídas
Web Services (WS) SOA (Service Oriented Architecture)
Business Process Management + SOA
Linguagens de Composição de Serviços
Computador Pessoal Dispositivos Móveis
Dispositivos Móveis Clientes
Dispositivos Móveis Servidores
Linguagens Compiladas
Linguagens interpretadas e declarativas
Embutidas e leves
Mai 10 SOA e WS 44
InSOA InSOA Características desejadasCaracterí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 45
inSOA inSOA Questão de PesquisaQuestão de Pesquisa
Como criar composições de serviços em
dispositivos móveis utilizando uma
linguagem de composição declarativa?
Mai 10 SOA e WS 46
Linguagem inSOA Linguagem inSOA Projeto U-SOAProjeto 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íquas
Mai 10 SOA e WS 47
inSOA inSOA Características (1/2)Caracterí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 invoke
Mai 10 SOA e WS 48
inSOA inSOA Características (2/2)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 49
inSOA inSOA ExemploExemplo
-- 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() == 'Valid'
return 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 50
inSOA inSOA Gramática – Diagrama da sintaxeGramática – Diagrama da sintaxe
Mai 10 SOA e WS 51
inSOA inSOA Design Patterns ImplementadosDesign Patterns Implementados
PatternBPEL
OWLS
inSOA
PatternBPEL
OWLS
inSOA
1. Sequence + + + 12. Multiple Instances Without Synchronization + + +
2. Parallel Split + + + 13. Multiple Instances With a Priori Design Time Knowledge + + +
3. Synchronization + + + 14. Multiple Instances With a Priori Runtime Knowledge - - +
4. Exclusive Choice + + + 15. Multiple Instances Without a 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 52
inSOA inSOA Protótipo FuncionalProtótipo Funcional
Mai 10 SOA e WS 53
InSOAInSOAEstudo de CasoEstudo 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 54
inSOAinSOACenário 1: Consulta de ViagemCenário 1: Consulta de Viagem
✔ 4 níveis✔ 10 Composições inSOA✔ 10 WS✔ 10 Emuladores
Mai 10 SOA e WS 55
inSOAinSOAComparação com os Paradigmas AtuaisComparação com os Paradigmas Atuais
# Característica BPEL OWL-S inSOA
a Insensível a capitalização NÃO NÃO SIM
b Declaração Flexível NÃO NÃO SIM
c Validação de Padrões NÃO NÃO SIM
d Tratamento XML Externo Externo Interno
e Opcionalidade NÃO NÃO SIM
f Tratamento de Erros SIM SIM SIM
g Orquestração SIM SIM SIM
h Saída Customizável NÃO NÃO SIM
i Invocação Otimizada NÃO NÃO SIM
j Embutida NÃO NÃO SIM
k Leve NÃO NÃO SIM
l Abordagem Funcional Orientada para Objetos Declarativa
m Baseada XML XML Texto
Mai 10 SOA e WS 56
Pattern I? T? Pattern I? T?
1. Sequence Sim Sim 12. Multiple Instances Without Synchronization Sim Não
2. Parallel Split Sim Sim 13. Multiple Instances With a Priori Design Time Knowledge Sim Não
3. Synchronization Sim Sim 14. Multiple Instances With a Priori Runtime Knowledge Sim Não
4. Exclusive Choice Sim Não 15. Multiple Instances Without a Priori Runtime Knowledge Sim Não
5. Simple Merge Sim Sim 16. Deferred Choice Sim Não
6. Multi-choice Sim Não 17. Interleaved Parallel Sim Não
7. Synchronizing Merge Sim Sim 18. Milestone Não Não
8. Multi-merge Sim Sim 19. Cancel Activity Sim Sim
9. Discriminator Sim Não 20. Cancel Case Sim Sim
10. Arbitrary Cycles Sim Não 21. Exception Handling Sim Não
11. Implicit Termination Sim Sim
Legenda: I? = Implementado? e T? = Testado
inSOAinSOAPatterns Implementados/Testados no Estudo de CasoPatterns Implementados/Testados no Estudo de Caso
Mai 10 SOA e WS 57
Linguagem MotivaçãoComponentes Paradigma Tratamento Retorno XML
BPEL4WS WSFL e XLANG
partnerLinks, variables, faultHandler e sequence
Procedural Externo
OWL-S DAML service, profile, process e grounding
POO Externo
inSOA Declarativa Invoke, input, into, set, where, return, fail, id e tags
Declarativo Interno
inSOAinSOAComparação BPEL4WS, OWL-S e inSOAComparação BPEL4WS, OWL-S e inSOA
Mai 10 SOA e WS 58
Introdução Introdução Críticas SOACrí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 59
➢ Integrar é preciso➢ Quem não se comunica se trumbica➢ SOA é um conceito e não tecnologia➢ WS é a tecnologia mais utilizada na atualidade
Conclusão Conclusão
Mai 10 SOA e WS 60
Referências BibliográficasReferências BibliográficasParcialParcial
[Aalst 2003] Aalst, W.M.P van der; Dumas, M. e Hofstede, A.H.M. Ter. Web service composition languages: old wine in New bottles?. Euromicro Conference. 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. 1000 Pá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. Don't go with the flow: Web services composition standards exposed. IEEE Intelligent Systems. 2003.
Mai 10 SOA e WS 61
[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, “Implementing Integrated Services of Networked Home Appliances using service oriented Architecture”, In: 2nd International Conference on Service Oriented Computing, Novembro, 2004
[3] M. Hu, “Web Services Composition, Partition, and Quality of Service in Distributed System Integration and Re-engineering”, 2003, XML Conference & Exposition 2003
[4] J. Shen, Y. Yang, C. Zhu e C. Wan, “From BPEL4WS to OWL-S: Integrating E-Business Process Descriptions”, Services Computing, 2005 IEEE International Conference.
[5] W.M.P van der Aalst, M. Dumas e A.H.M. ter Hofstede, “Web service composition 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”, 2000
Referências BibliográficasReferências BibliográficasParcialParcial
Mai 10 SOA e WS 62
OBRIGADO !OBRIGADO !
AgradecimentosAgradecimentosPerguntasPerguntas