SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
UNISINOS
  SOA e
Web Services

Giovane 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ão
Publicado em: http://ubuntuone.com/p/3ds/
Mai 10                 SOA e WS             2
Introdução
Porque 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ção
Porque 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 Processos




Mai 10            SOA e WS              5
SOA
Mas 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                6
SOA
Exemplo típico de SOA

                    Ordem de
                     Compra



                                   Contabi-
         Estoque                    lidade
                    Barramento
                    de Serviços
         Fornece-                   NF de
           dor                     Entrada



                     Contas a
                      Pagar

Mai 10                  SOA e WS              7
SOA
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                 8
SOA
Quais os princípios da arquitetura? 1/2


 Encapsulamento
 Baixa Acoplagem
 Contrato
 Abstração
 Reusabilidade




Mai 10             SOA e WS               9
SOA
Quais os princípios da arquitetura? 2/2

 Composição

 Autonomia
 Otimização
 Descoberta
 Relevância




Mai 10            SOA e WS                10
SOA
Quais 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ócios


Mai 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ção

Lógica e dados
encapsulados

                       Serviço Web-Services                       Cliente Web-Services
 SOAP: Simple Object Access Protocol



 Arquitetura Web-Services (WS)                            SOAP
                                              Troca Mensagens
                      WSDL
                                                                    WSDL
Servidor                                                                       Cliente
                   Publicação                                Pesquisa e
SOAP: Simple Object Access Protocol                          Descoberta
UDDI: Universal Description, Discovery   Diretório de
and Integration                          Serviços (UDDI)

 Mai 10                                      SOA e WS                              17
Web Services
Pilha

  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 Services
XML versus HTML




Mai 10            SOA e WS   20
Web Services
Exemplo WSDL 1/2




Mai 10         SOA e WS   21
Web Services
Exemplo WSDL 2/2




Mai 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 Services
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               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 Services
Comandos REST

                    GET

                    PUT
         CLIENTE               RECURSO
                   POST

                   DELETE


                   INVOKE      Atividade 1


         CLIENTE   INVOKE      Atividade 2


                   INVOKE      Atividade 3
Mai 10              SOA e WS                 27
Web Services
SOAP 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 Services
REST 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
                                     AP
integraçã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ços
O 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ços
O 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ços
Design 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ços
Aná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                       35
Implementação
Tí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ção
APIs de Integração




Mai 10               SOA e WS   38
Implementação
Integração SOA–ESB Enterprise Service Bus




Mai 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ção
ESB e SOA Suites (Real-Wold Labs)




Mai 10          SOA e WS            41
Implementação
Mé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                      42
InSOA
Cená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 leves
Mai 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
inSOA
Questã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               45
Linguagem inSOA
Projeto 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                      46
inSOA
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              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
inSOA
Exemplo
-- 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                  49
inSOA
Gramática – Diagrama da sintaxe




Mai 10             SOA e WS       50
inSOA
Design 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
inSOA
Protótipo Funcional




Mai 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
inSOA
Cenário 1: Consulta de Viagem



 ✔ 4 níveis
 ✔ 10 Composições inSOA
 ✔ 10 WS
 ✔ 10 Emuladores




Mai 10                    SOA e WS   54
inSOA
    Comparaçã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                                    55
inSOA
Patterns Implementados/Testados no Estudo de Caso

          Pattern          I?    T?                Pattern               I?    T?
                                        12. Multiple Instances Without
1. Sequence                Sim   Sim                                     Sim   Não
                                        Synchronization
                                        13. Multiple Instances With a
2. Parallel Split          Sim   Sim                                     Sim   Não
                                        Priori Design Time Knowledge
                                        14. Multiple Instances With a
3. Synchronization         Sim   Sim                                     Sim   Não
                                        Priori Runtime Knowledge
                                        15. Multiple Instances Without
4. Exclusive Choice        Sim   Não                                     Sim   Não
                                        a Priori Runtime Knowledge
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
 Mai 10                                SOA e WS                                56
inSOA
Comparação BPEL4WS, OWL-S e inSOA

Linguagem Motivação Componentes Paradigma Tratamento
                                          Retorno
                                          XML
BPEL4WS   WSFL e      partnerLinks, Procedural Externo
          XLANG       variables,
                      faultHandler e
                      sequence
OWL-S     DAML        service,           POO     Externo
                      profile,
                      process e
                      grounding
inSOA     Declarativa Invoke, input, Declarativo Interno
                      into, set, where,
                      return, fail, id e
                      tags


Mai 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 na
atualidade




Mai 10            SOA e WS              59
Referências Bibliográficas
Parcial
[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
  Mai 10                              SOA e WS                                   60
composition standards exposed. IEEE Intelligent Systems. 2003.
Referências Bibliográficas
Parcial
[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
Mai 10                         SOA e WS                                 61
Agradecimentos
Perguntas




            OBRIGADO !




Mai 10           SOA e WS   62

Weitere ähnliche Inhalte

Was ist angesagt?

04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc guest880159
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APINuno Pereira
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web ServicesFabio Leal
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTlucasbarsand
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicosLeonardo Eloy
 
AAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambAAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambMicrosoft Brasil
 
Arquitetura Orientada a Servicos (SOA)
Arquitetura Orientada a Servicos (SOA)Arquitetura Orientada a Servicos (SOA)
Arquitetura Orientada a Servicos (SOA)Marcelo Sávio
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturasrafaslide
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 

Was ist angesagt? (19)

04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Rest
RestRest
Rest
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
AAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambAAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcamb
 
Arquitetura Orientada a Servicos (SOA)
Arquitetura Orientada a Servicos (SOA)Arquitetura Orientada a Servicos (SOA)
Arquitetura Orientada a Servicos (SOA)
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
 
Web services
Web servicesWeb services
Web services
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 

Andere mochten auch

Lista de exercícios tipos de arquitetura infraestrutura de software
Lista de exercícios tipos de arquitetura   infraestrutura de softwareLista de exercícios tipos de arquitetura   infraestrutura de software
Lista de exercícios tipos de arquitetura infraestrutura de softwareIsabel Araujo
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosFernando Palma
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc guest880159
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)Bruno Pedro
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...Mauricio Bitencourt
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Michael Girouard
 
Aulão beneficente
Aulão beneficenteAulão beneficente
Aulão beneficenteVanessa Lins
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
 
The Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the EnterpriseThe Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the EnterpriseAkana
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Definição e Classificação de Serviços
Definição e Classificação de ServiçosDefinição e Classificação de Serviços
Definição e Classificação de ServiçosGPA
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 

Andere mochten auch (18)

Lista de exercícios tipos de arquitetura infraestrutura de software
Lista de exercícios tipos de arquitetura   infraestrutura de softwareLista de exercícios tipos de arquitetura   infraestrutura de software
Lista de exercícios tipos de arquitetura infraestrutura de software
 
Soa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviçosSoa - Arquitetura orientada a serviços
Soa - Arquitetura orientada a serviços
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...
Construção da Arquitetura de Processos: Foco na Proposta de Valor, Governança...
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5
 
Aulão beneficente
Aulão beneficenteAulão beneficente
Aulão beneficente
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)
 
The Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the EnterpriseThe Business Value for Internal APIs in the Enterprise
The Business Value for Internal APIs in the Enterprise
 
Iso 27002-2013
Iso 27002-2013Iso 27002-2013
Iso 27002-2013
 
ERP - Enterprise Resource Planning
ERP - Enterprise Resource PlanningERP - Enterprise Resource Planning
ERP - Enterprise Resource Planning
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Sistema De Gestao Empresarial Erp
Sistema De Gestao Empresarial ErpSistema De Gestao Empresarial Erp
Sistema De Gestao Empresarial Erp
 
Gestão de Serviços
Gestão de ServiçosGestão de Serviços
Gestão de Serviços
 
Definição e Classificação de Serviços
Definição e Classificação de ServiçosDefinição e Classificação de Serviços
Definição e Classificação de Serviços
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Sobre Erp (Basico)
Sobre Erp (Basico)Sobre Erp (Basico)
Sobre Erp (Basico)
 

Ähnlich wie SOA e Web Services

Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHPelliando dias
 
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
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services XmlUFMG
 
SOA - Padrões Associados
SOA - Padrões AssociadosSOA - Padrões Associados
SOA - Padrões Associadosalinebicudo
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoLuiz Matos
 
AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoFernando Botafogo
 
Trabalho asoso tp4
Trabalho asoso   tp4Trabalho asoso   tp4
Trabalho asoso tp4markellycs
 
Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0igorpsoares
 
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
 

Ähnlich wie SOA e Web Services (20)

Mac5700
Mac5700Mac5700
Mac5700
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHP
 
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
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
WebServices intro
WebServices introWebServices intro
WebServices intro
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services Xml
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
SOA - Padrões Associados
SOA - Padrões AssociadosSOA - Padrões Associados
SOA - Padrões Associados
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de caso
 
Web Services
Web ServicesWeb Services
Web Services
 
WCF
WCFWCF
WCF
 
AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo Azevedo
 
Trabalho asoso tp4
Trabalho asoso   tp4Trabalho asoso   tp4
Trabalho asoso tp4
 
Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0Projeto VI: Tecnologias Básicas da Web 2 0
Projeto VI: Tecnologias Básicas da Web 2 0
 
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
 

Mehr von sergiocrespo

Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem csergiocrespo
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...sergiocrespo
 
Novas tecnologias no ensino!
Novas tecnologias no ensino!Novas tecnologias no ensino!
Novas tecnologias no ensino!sergiocrespo
 
Internet Das coisa
Internet Das coisaInternet Das coisa
Internet Das coisasergiocrespo
 
Web Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e TecnologiasWeb Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e Tecnologiassergiocrespo
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Redes sociales y su uso en la internet y en la Ing. de Soft.
Redes sociales y su uso en la internet y en la Ing. de Soft. Redes sociales y su uso en la internet y en la Ing. de Soft.
Redes sociales y su uso en la internet y en la Ing. de Soft. sergiocrespo
 
Pedro II RJ Semana Acadêmica
Pedro II RJ Semana AcadêmicaPedro II RJ Semana Acadêmica
Pedro II RJ Semana Acadêmicasergiocrespo
 

Mehr von sergiocrespo (10)

Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...
 
Novas tecnologias no ensino!
Novas tecnologias no ensino!Novas tecnologias no ensino!
Novas tecnologias no ensino!
 
Cobol
CobolCobol
Cobol
 
Internet Das coisa
Internet Das coisaInternet Das coisa
Internet Das coisa
 
Web Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e TecnologiasWeb Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e Tecnologias
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Redes sociales y su uso en la internet y en la Ing. de Soft.
Redes sociales y su uso en la internet y en la Ing. de Soft. Redes sociales y su uso en la internet y en la Ing. de Soft.
Redes sociales y su uso en la internet y en la Ing. de Soft.
 
Eatis2010
Eatis2010Eatis2010
Eatis2010
 
Pedro II RJ Semana Acadêmica
Pedro II RJ Semana AcadêmicaPedro II RJ Semana Acadêmica
Pedro II RJ Semana Acadêmica
 

SOA e Web Services

  • 1. UNISINOS SOA e Web Services Giovane Barcelos giovanebarcelos@gmail.com São Leopoldo, Maio de 2010
  • 2. Roteiro  Introdução  SOA  Serviços  Web Services  Composição de Serviços  Implementação  InSOA  Conclusão Publicado em: http://ubuntuone.com/p/3ds/ Mai 10 SOA e WS 2
  • 3. Introdução Porque precisamos de SOA e WS?  Integração e Composição de Sistemas e Processos Mai 10 SOA e WS 3
  • 4. 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
  • 5. Introdução Porque 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 Processos Mai 10 SOA e WS 5
  • 6. SOA Mas 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 6
  • 7. SOA Exemplo típico de SOA Ordem de Compra Contabi- Estoque lidade Barramento de Serviços Fornece- NF de dor Entrada Contas a Pagar Mai 10 SOA e WS 7
  • 8. SOA 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 8
  • 9. SOA Quais os princípios da arquitetura? 1/2  Encapsulamento  Baixa Acoplagem  Contrato  Abstração  Reusabilidade Mai 10 SOA e WS 9
  • 10. SOA Quais os princípios da arquitetura? 2/2  Composição  Autonomia  Otimização  Descoberta  Relevância Mai 10 SOA e WS 10
  • 11. SOA Quais 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ócios Mai 10 SOA e WS 11
  • 12. 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
  • 13. Serviços RPC  RPC (Remote Procedure Call) Mai 10 SOA e WS 13
  • 14. Serviços CORBA - OMG  CORBA (Common Object Request Broker Architecture) Mai 10 SOA e WS 14
  • 15. Serviços DCOM - Microsoft  DCOM (Dynamic Component Object Model) Mai 10 SOA e WS 15
  • 16. 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
  • 17. Web Services Arquitetura  Serviços como Web-Services (WS) Troca de mensagens (SOAP) Usuário ou aplicação Lógica e dados encapsulados Serviço Web-Services Cliente Web-Services SOAP: Simple Object Access Protocol  Arquitetura Web-Services (WS) SOAP Troca Mensagens WSDL WSDL Servidor Cliente Publicação Pesquisa e SOAP: Simple Object Access Protocol Descoberta UDDI: Universal Description, Discovery Diretório de and Integration Serviços (UDDI) Mai 10 SOA e WS 17
  • 18. Web Services Pilha 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
  • 19. 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
  • 20. Web Services XML versus HTML Mai 10 SOA e WS 20
  • 21. Web Services Exemplo WSDL 1/2 Mai 10 SOA e WS 21
  • 22. Web Services Exemplo WSDL 2/2 Mai 10 SOA e WS 22
  • 23. Web Services SOAP – Formato Genérico  SOAP Envelope  SOAP Cabeçalho (Header)  SOAP Corpo (Body) Mai 10 SOA e WS 23
  • 24. Web Services Exemplo SOAP  Pedido SOAP  Resposta SOAP Mai 10 SOA e WS 24
  • 25. Web Services 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 25
  • 26. 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
  • 27. Web Services Comandos REST GET PUT CLIENTE RECURSO POST DELETE INVOKE Atividade 1 CLIENTE INVOKE Atividade 2 INVOKE Atividade 3 Mai 10 SOA e WS 27
  • 28. Web Services SOAP 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
  • 29. Web Services REST 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
  • 30. 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 AP integraçã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
  • 31. Composição de Serviços O 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
  • 32. Composição de Serviços O 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
  • 33. Composição de Serviços Design 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
  • 34. 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
  • 35. Composição de Serviços Aná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 35
  • 36. Implementação Tí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
  • 37. 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
  • 39. Implementação Integração SOA–ESB Enterprise Service Bus Mai 10 SOA e WS 39
  • 40. 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
  • 41. Implementação ESB e SOA Suites (Real-Wold Labs) Mai 10 SOA e WS 41
  • 42. Implementação Mé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 42
  • 43. InSOA Cená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 leves Mai 10 SOA e WS 43
  • 44. 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
  • 45. inSOA Questã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 45
  • 46. Linguagem inSOA Projeto 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 46
  • 47. inSOA 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 47
  • 48. 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
  • 49. inSOA Exemplo -- 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 49
  • 50. inSOA Gramática – Diagrama da sintaxe Mai 10 SOA e WS 50
  • 51. inSOA Design 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
  • 53. 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
  • 54. inSOA Cenário 1: Consulta de Viagem ✔ 4 níveis ✔ 10 Composições inSOA ✔ 10 WS ✔ 10 Emuladores Mai 10 SOA e WS 54
  • 55. inSOA Comparaçã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 55
  • 56. inSOA Patterns Implementados/Testados no Estudo de Caso Pattern I? T? Pattern I? T? 12. Multiple Instances Without 1. Sequence Sim Sim Sim Não Synchronization 13. Multiple Instances With a 2. Parallel Split Sim Sim Sim Não Priori Design Time Knowledge 14. Multiple Instances With a 3. Synchronization Sim Sim Sim Não Priori Runtime Knowledge 15. Multiple Instances Without 4. Exclusive Choice Sim Não Sim Não a Priori Runtime Knowledge 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 Mai 10 SOA e WS 56
  • 57. inSOA Comparação BPEL4WS, OWL-S e inSOA Linguagem Motivação Componentes Paradigma Tratamento Retorno XML BPEL4WS WSFL e partnerLinks, Procedural Externo XLANG variables, faultHandler e sequence OWL-S DAML service, POO Externo profile, process e grounding inSOA Declarativa Invoke, input, Declarativo Interno into, set, where, return, fail, id e tags Mai 10 SOA e WS 57
  • 58. 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
  • 59. Conclusão ➢ Integrar é preciso ➢ Quem não se comunica se trumbica ➢ SOA é um conceito e não tecnologia ➢ WS é a tecnologia mais utilizada na atualidade Mai 10 SOA e WS 59
  • 60. Referências Bibliográficas Parcial [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 Mai 10 SOA e WS 60 composition standards exposed. IEEE Intelligent Systems. 2003.
  • 61. Referências Bibliográficas Parcial [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 Mai 10 SOA e WS 61
  • 62. Agradecimentos Perguntas OBRIGADO ! Mai 10 SOA e WS 62