SlideShare une entreprise Scribd logo
1  sur  70
SOA
                          fabio.kung@caelum.com.br




Tuesday, March 17, 2009
Tecnologia evolui
                                (legado)




Tuesday, March 17, 2009
mas o que?
                             definição




Tuesday, March 17, 2009
quot;Uma arquitetura em que serviços
        independentes se comunicam de uma
             maneira padronizada.quot;




Tuesday, March 17, 2009
Bilhetagem
                            (Ticketagem)




Tuesday, March 17, 2009
Bilhetagem
                                  (Ticketagem)




                     Financeiro                  CRM



                                     FTP
                                      FS
Tuesday, March 17, 2009
Same Old Architecture
                          SOA




Tuesday, March 17, 2009
Remote Procedure Call
                          (RPC)




Tuesday, March 17, 2009
Remote Procedure Call
                              (RPC)




                 Financeiro           CRM




Tuesday, March 17, 2009
Remote Procedure Call
                              (RPC)




                 Financeiro                   CRM
                                      Lista




Tuesday, March 17, 2009
Remote Procedure Call
                              (RPC)




                                      Cadastro


                 Financeiro                      CRM
                                        Lista


                                      Por Nome




Tuesday, March 17, 2009
• RMI
               • DCOM
               • EJB

Tuesday, March 17, 2009
Corba




Tuesday, March 17, 2009
Corba

  Financeiro                       CRM
     (Java)                       (C++)




Tuesday, March 17, 2009
Corba

  Financeiro                       CRM
                           GIOP
     (Java)                       (C++)
                           IIOP




Tuesday, March 17, 2009
Corba

  Financeiro                                   CRM
                                 GIOP
                          ORB           ORB
     (Java)                                   (C++)
                                 IIOP




Tuesday, March 17, 2009
Corba

  Financeiro                                           CRM
                                     GIOP
                          ORB IDL           IDL ORB
     (Java)                                           (C++)
                                     IIOP




Tuesday, March 17, 2009
Corba

  Financeiro                                               CRM
                                       GIOP
                           ORB IDL              IDL ORB
     (Java)                                               (C++)
                                       IIOP



                                       IDL
                          GP




                                                IIO PIO
                          IO
                            IIO




                                                    P
                                                   G
                                       ORB
                              P




                                     Estoque
                                     (Delphi)
Tuesday, March 17, 2009
• Firewalls
               • Mal suportado
               • Burocracia no desenvolvimento


Tuesday, March 17, 2009
HTTP



Tuesday, March 17, 2009
HTTP
                          XML


Tuesday, March 17, 2009
HTTP
                          XML
                          SOAP


Tuesday, March 17, 2009
Simple Object Access
                         Protocol
                          <soap:envelope>
                            <soap:header>
                              ...
                            </soap:header>

                            <soap:body>
                              ...
                            </soap:body>
                          </soap:envelope>
Tuesday, March 17, 2009
HTTP
                          XML
                          SOAP
                          WSDL

Tuesday, March 17, 2009
WebService Description
                                Language




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                        CRM
     (Java)                                        (C++)




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                        CRM
                                   HTTP
     (Java)                                        (C++)
                                   SOAP




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                             CRM
                           Endpoint




                                             Endpoint
                                      HTTP
     (Java)                                             (C++)
                                      SOAP




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                                           CRM
                           Endpoint




                                                           Endpoint
                                             HTTP

                                      WSDL




                                                    WSDL
     (Java)                                                           (C++)
                                             SOAP




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                                                 CRM
                            Endpoint




                                                                 Endpoint
                                                HTTP

                                       WSDL




                                                          WSDL
     (Java)                                                                 (C++)
                                                SOAP



                                               WSDL
                          HA




                                                            AP P
                                                          SO TT
                          TT P
                           SO




                                                            H
                                               Endpoint
                            P




                                              Estoque
                                              (Delphi)
Tuesday, March 17, 2009
Corba

  Financeiro                                               CRM
                                       GIOP
                           ORB IDL              IDL ORB
     (Java)                                               (C++)
                                       IIOP



                                       IDL
                          GP




                                                IIO PIO
                          IO
                            IIO




                                                    P
                                                   G
                                       ORB
                              P




                                     Estoque
                                     (Delphi)
Tuesday, March 17, 2009
WebServices SOAP

  Financeiro                                                                 CRM
                            Endpoint




                                                                 Endpoint
                                                HTTP

                                       WSDL




                                                          WSDL
     (Java)                                                                 (C++)
                                                SOAP



                                               WSDL
                          HA




                                                            AP P
                                                          SO TT
                          TT P
                           SO




                                                            H
                                               Endpoint
                            P




                                              Estoque
                                              (Delphi)
Tuesday, March 17, 2009
Same Old Architecture
                          SOA




Tuesday, March 17, 2009
Interoperabilidade



Tuesday, March 17, 2009
Amazon



Tuesday, March 17, 2009
<types>
  <xs:schema xmlns:xs=quot;http://www.w3.org/2001/XMLSchemaquot; ...>


    <xs:element name=quot;ItemSearchquot;>
      <xs:complexType>
        <xs:sequence>
          <xs:element name=quot;AWSAccessKeyIdquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/>


             <xs:element name=quot;Requestquot; type=quot;tns:ItemSearchRequestquot;
            minOccurs=quot;0quot; maxOccurs=quot;unboundedquot;/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>


    <xs:complexType name=quot;ItemSearchRequestquot;>
      <xs:sequence>
         <xs:element name=quot;Authorquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/>
         <xs:element name=quot;Keywordsquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/>
         ...
      </xs:sequence>
    </xs:complexType>
  </xs:schema>
</types>


<message name=quot;ItemSearchRequestMsgquot;>


  <part name=quot;bodyquot; element=quot;tns:ItemSearchquot;/>
</message>


<portType name=quot;AWSECommerceServicePortTypequot;>
  <operation name=quot;ItemSearchquot;>


      <input message=quot;tns:ItemSearchRequestMsgquot;/>
      <output message=quot;tns:ItemSearchResponseMsgquot;/>
  </operation>
</portType>

<binding name=quot;AWSECommerceServiceBindingquot; type=quot;tns:AWSECommerceServicePortTypequot;>
  ...
</binding>
<service name=quot;AWSECommerceServicequot;>


  <port name=quot;AWSECommerceServicePortquot; binding=quot;tns:AWSECommerceServiceBindingquot;>
    <soap:address
      location=quot;http://soap.amazon.com/onca/soap?Service=AWSECommerceServicequot;/>
Tuesday, March 17, 2009
  </port>
• JAX-WS
                          wsimport
                    ✓



               • Apache CXF
                          WSDL2Java
                    ✓



               • Axis 2
               • WCF (.Net)

Tuesday, March 17, 2009
WS-*

               • WS-Transaction
               • WS-Security
               • WS-Addressing
               • WS-Reliability
               • ...

Tuesday, March 17, 2009
WCF (MS)
                              +
                          Metro (Sun)


Tuesday, March 17, 2009
WebServices
                              W3C



      quot;Sistema de software projetado para
    suportar interações entre máquinas numa
          rede, de forma interoperável.quot;



                                        granularidade alta
Tuesday, March 17, 2009
POX
                          Plain Old XML




Tuesday, March 17, 2009
Flickr
        http://api.flickr.com/services/rest/?method=flickr.interestingness.getList




Tuesday, March 17, 2009
<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
  <rsp stat=quot;okquot;>
    <photos page=quot;1quot; pages=quot;5quot; perpage=quot;100quot; total=quot;500quot;>
      <photo id=quot;1332244715quot; owner=quot;41848473@N00quot; secret=quot;a6e8177ba8quot;
         server=quot;1215quot; farm=quot;2quot; title=quot;Back to schoolquot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
      <photo id=quot;1331179114quot; owner=quot;84362437@N00quot; secret=quot;0ed6a814a8quot;
         server=quot;1285quot; farm=quot;2quot; title=quot;Big Rig Jigquot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
      <photo id=quot;1329226185quot; owner=quot;46925233@N00quot; secret=quot;4556c3f08bquot;
         server=quot;1194quot; farm=quot;2quot; title=quot;Here they come...quot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
    </photos>
  </rsp>




Tuesday, March 17, 2009
<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
  <rsp stat=quot;okquot;>
    <photos page=quot;1quot; pages=quot;5quot; perpage=quot;100quot; total=quot;500quot;>
      <photo id=quot;1332244715quot; owner=quot;41848473@N00quot; secret=quot;a6e8177ba8quot;
         server=quot;1215quot; farm=quot;2quot; title=quot;Back to schoolquot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
      <photo id=quot;1331179114quot; owner=quot;84362437@N00quot; secret=quot;0ed6a814a8quot;
         server=quot;1285quot; farm=quot;2quot; title=quot;Big Rig Jigquot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
      <photo id=quot;1329226185quot; owner=quot;46925233@N00quot; secret=quot;4556c3f08bquot;
 http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg
         server=quot;1194quot; farm=quot;2quot; title=quot;Here they come...quot;
         ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; />
    </photos>
  </rsp>




Tuesday, March 17, 2009
JSON
                          JavaScript Object Notation




Tuesday, March 17, 2009
var john = {
                    type: 'Person',
                    name: 'John Doe',
                    email: 'john@doe.com',
                    address: {
                      street: 'Doe Street',
                      number: 1223,
                      city: 'New York'
                    }
                  }

Tuesday, March 17, 2009
var john = {
                    type: 'Person',
                    name: 'John Doe',
                    email: 'john@doe.com',
                    address: {
                      street: 'Doe Street',
                      number: 1223,
                      city: 'New York'
                    }
                  }

Tuesday, March 17, 2009
json.org




Tuesday, March 17, 2009
http://delicious.com
                                http://del.icio.us




Tuesday, March 17, 2009
[
       {
            u:quot;https://jaxb.dev.java.net/guide/quot;,
            d:quot;jaxb: Unofficial JAXB Guidequot;,
            t:[quot;jaxbquot;,quot;javaquot;,quot;xmlquot;,quot;webservicesquot;]
       },
       {
            u:quot;http://www.artima.com/intv/gosling3P.htmlquot;,
            d:quot;James Gosling on Java, May 2001quot;,
            t:[quot;javaquot;,quot;inheritancequot;,quot;compositionquot;,quot;designquot;]
       },
       ...
   ]


                          http://delicious.com/feeds/json/fck?raw

Tuesday, March 17, 2009
String url = quot;http://delicious.com/feeds/json/fck?rawquot;;

   HttpClient client = new HttpClient();
   GetMethod get = new GetMethod(url);
   client.executeMethod(get);
   String response = get.getResponseBodyAsString();

   JSONArray x = JSONArray.fromObject(response);
   for (JSONObject bookmark : x) {
     System.out.println(quot;Descrição: quot; + bookmark.get(quot;dquot;));
     System.out.println(quot;Endereço: quot; + bookmark.get(quot;uquot;));
     System.out.println(quot;Tags: quot; + bookmark.get(quot;tquot;));
   }



                          http://json-lib.sourceforge.net/

Tuesday, March 17, 2009
$(‘content’).load(serviceURL);   HTTP
                          .
                          .
                                               Service
                          .




Tuesday, March 17, 2009
$(‘content’).load(serviceURL);   HTTP
                          .
                          .
                                                 Service
                          .

       var data = eval(response);         JSON




Tuesday, March 17, 2009
$(‘content’).load(serviceURL);       HTTP
                          .
                          .
                                                          Service
                          .

       var data = eval(response);              JSON


                              var john = {
                                name: 'John Doe',
                                email: 'john@doe.com',
                                address: {
                                  street: 'Doe Street',
                                  number: 1223,
                                  city: 'New York'
                                }
                              }

Tuesday, March 17, 2009
<script type=quot;text/javascriptquot;
           src=quot;http://delicious.com/feeds/json/fckquot;>
         </script>




Tuesday, March 17, 2009
<script type=quot;text/javascriptquot;
           src=quot;http://delicious.com/feeds/json/fckquot;>
         </script>




             var Delicious = [
               {
                 u:quot;https://jaxb.dev.java.net/guide/quot;,
                 d:quot;jaxb: Unofficial JAXB Guidequot;,
                 t:[quot;jaxbquot;,quot;javaquot;,quot;xmlquot;,quot;webservicesquot;]
               }, ...
             ]
Tuesday, March 17, 2009
REST
                          REpresentational State Transfer




Tuesday, March 17, 2009
Recursos

   GET
   POST
   PUT
   DELETE
   HEADER
   TRACE
   OPTIONS
Tuesday, March 17, 2009
Recursos

                                     Clientes da
   GET                                Empresa

   POST
   PUT
   DELETE
   HEADER
   TRACE
   OPTIONS
Tuesday, March 17, 2009
Recursos
                                     /clientes
                                      Clientes da
   GET                                 Empresa

   POST
   PUT
   DELETE
   HEADER
   TRACE
   OPTIONS
Tuesday, March 17, 2009
Recursos
                                     /clientes
                                      Clientes da
   GET                                 Empresa

   POST
   PUT
   DELETE
   HEADER
   TRACE
   OPTIONS
Tuesday, March 17, 2009
Recursos
                                      /clientes
                                       Clientes da
   GET                                  Empresa

   POST                              /clientes/1
   PUT                                  Cliente de

   DELETE                                  id=1

   HEADER
   TRACE
   OPTIONS
Tuesday, March 17, 2009
Recursos
                                      /clientes
                                         Clientes da
   GET                                    Empresa

   POST                              /clientes/1
   PUT                                   Cliente de

   DELETE                                   id=1

   HEADER                            /clientes/nome/a
   TRACE                                 Clientes de
                                          nome a*
   OPTIONS
Tuesday, March 17, 2009
Recursos
                                      /clientes
                                         Clientes da
   GET                                    Empresa

   POST                              /clientes/1
   PUT                                   Cliente de

   DELETE                                   id=1

                               XML
   HEADER                            /clientes/nome/a
                              JSON
   TRACE                      HTML       Clientes de
                                          nome a*
   OPTIONS
Tuesday, March 17, 2009
Muitas opções
                          processos envolvem diversas




Tuesday, March 17, 2009
Tuesday, March 17, 2009
ESB
                          Enterprise Service Bus




Tuesday, March 17, 2009
Tuesday, March 17, 2009
• Localidade
               • Transformação de Mensagens
               • Orquestração / Coreografia
               • CEP


Tuesday, March 17, 2009
Dúvidas?




                                                 Obrigado!


                          fabio.kung@caelum.com.br
Tuesday, March 17, 2009

Contenu connexe

Plus de Fabio Kung

Linux Containers at scale: challenges in a very dense environment
Linux Containers at scale: challenges in a very dense environmentLinux Containers at scale: challenges in a very dense environment
Linux Containers at scale: challenges in a very dense environmentFabio Kung
 
Dicas e truques para ser um bom inquilino no Cloud
Dicas e truques para ser um bom inquilino no CloudDicas e truques para ser um bom inquilino no Cloud
Dicas e truques para ser um bom inquilino no CloudFabio Kung
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Ruby 2.0: to infinity... and beyond!
Ruby 2.0: to infinity... and beyond!Ruby 2.0: to infinity... and beyond!
Ruby 2.0: to infinity... and beyond!Fabio Kung
 
Cloud IaaS - Detalhes da Infraestrutura como Serviço
Cloud IaaS - Detalhes da Infraestrutura como ServiçoCloud IaaS - Detalhes da Infraestrutura como Serviço
Cloud IaaS - Detalhes da Infraestrutura como ServiçoFabio Kung
 
Usando o Cloud
Usando o CloudUsando o Cloud
Usando o CloudFabio Kung
 
Storage para virtualização
Storage para virtualizaçãoStorage para virtualização
Storage para virtualizaçãoFabio Kung
 
Automacao devops
Automacao devopsAutomacao devops
Automacao devopsFabio Kung
 
DSLs Internas e Ruby
DSLs Internas e RubyDSLs Internas e Ruby
DSLs Internas e RubyFabio Kung
 
Onde mora a produtividade do Ruby on Rails?
Onde mora a produtividade do Ruby on Rails?Onde mora a produtividade do Ruby on Rails?
Onde mora a produtividade do Ruby on Rails?Fabio Kung
 
Ruby, muito mais que reflexivo
Ruby, muito mais que reflexivoRuby, muito mais que reflexivo
Ruby, muito mais que reflexivoFabio Kung
 
JRuby on Rails
JRuby on RailsJRuby on Rails
JRuby on RailsFabio Kung
 

Plus de Fabio Kung (12)

Linux Containers at scale: challenges in a very dense environment
Linux Containers at scale: challenges in a very dense environmentLinux Containers at scale: challenges in a very dense environment
Linux Containers at scale: challenges in a very dense environment
 
Dicas e truques para ser um bom inquilino no Cloud
Dicas e truques para ser um bom inquilino no CloudDicas e truques para ser um bom inquilino no Cloud
Dicas e truques para ser um bom inquilino no Cloud
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Ruby 2.0: to infinity... and beyond!
Ruby 2.0: to infinity... and beyond!Ruby 2.0: to infinity... and beyond!
Ruby 2.0: to infinity... and beyond!
 
Cloud IaaS - Detalhes da Infraestrutura como Serviço
Cloud IaaS - Detalhes da Infraestrutura como ServiçoCloud IaaS - Detalhes da Infraestrutura como Serviço
Cloud IaaS - Detalhes da Infraestrutura como Serviço
 
Usando o Cloud
Usando o CloudUsando o Cloud
Usando o Cloud
 
Storage para virtualização
Storage para virtualizaçãoStorage para virtualização
Storage para virtualização
 
Automacao devops
Automacao devopsAutomacao devops
Automacao devops
 
DSLs Internas e Ruby
DSLs Internas e RubyDSLs Internas e Ruby
DSLs Internas e Ruby
 
Onde mora a produtividade do Ruby on Rails?
Onde mora a produtividade do Ruby on Rails?Onde mora a produtividade do Ruby on Rails?
Onde mora a produtividade do Ruby on Rails?
 
Ruby, muito mais que reflexivo
Ruby, muito mais que reflexivoRuby, muito mais que reflexivo
Ruby, muito mais que reflexivo
 
JRuby on Rails
JRuby on RailsJRuby on Rails
JRuby on Rails
 

Dernier

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Dernier (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

SOA não precisa ser buzzword

  • 1. SOA fabio.kung@caelum.com.br Tuesday, March 17, 2009
  • 2. Tecnologia evolui (legado) Tuesday, March 17, 2009
  • 3. mas o que? definição Tuesday, March 17, 2009
  • 4. quot;Uma arquitetura em que serviços independentes se comunicam de uma maneira padronizada.quot; Tuesday, March 17, 2009
  • 5. Bilhetagem (Ticketagem) Tuesday, March 17, 2009
  • 6. Bilhetagem (Ticketagem) Financeiro CRM FTP FS Tuesday, March 17, 2009
  • 7. Same Old Architecture SOA Tuesday, March 17, 2009
  • 8. Remote Procedure Call (RPC) Tuesday, March 17, 2009
  • 9. Remote Procedure Call (RPC) Financeiro CRM Tuesday, March 17, 2009
  • 10. Remote Procedure Call (RPC) Financeiro CRM Lista Tuesday, March 17, 2009
  • 11. Remote Procedure Call (RPC) Cadastro Financeiro CRM Lista Por Nome Tuesday, March 17, 2009
  • 12. • RMI • DCOM • EJB Tuesday, March 17, 2009
  • 14. Corba Financeiro CRM (Java) (C++) Tuesday, March 17, 2009
  • 15. Corba Financeiro CRM GIOP (Java) (C++) IIOP Tuesday, March 17, 2009
  • 16. Corba Financeiro CRM GIOP ORB ORB (Java) (C++) IIOP Tuesday, March 17, 2009
  • 17. Corba Financeiro CRM GIOP ORB IDL IDL ORB (Java) (C++) IIOP Tuesday, March 17, 2009
  • 18. Corba Financeiro CRM GIOP ORB IDL IDL ORB (Java) (C++) IIOP IDL GP IIO PIO IO IIO P G ORB P Estoque (Delphi) Tuesday, March 17, 2009
  • 19. • Firewalls • Mal suportado • Burocracia no desenvolvimento Tuesday, March 17, 2009
  • 21. HTTP XML Tuesday, March 17, 2009
  • 22. HTTP XML SOAP Tuesday, March 17, 2009
  • 23. Simple Object Access Protocol <soap:envelope> <soap:header> ... </soap:header> <soap:body> ... </soap:body> </soap:envelope> Tuesday, March 17, 2009
  • 24. HTTP XML SOAP WSDL Tuesday, March 17, 2009
  • 25. WebService Description Language Tuesday, March 17, 2009
  • 26. WebService Description Language Financeiro CRM (Java) (C++) Tuesday, March 17, 2009
  • 27. WebService Description Language Financeiro CRM HTTP (Java) (C++) SOAP Tuesday, March 17, 2009
  • 28. WebService Description Language Financeiro CRM Endpoint Endpoint HTTP (Java) (C++) SOAP Tuesday, March 17, 2009
  • 29. WebService Description Language Financeiro CRM Endpoint Endpoint HTTP WSDL WSDL (Java) (C++) SOAP Tuesday, March 17, 2009
  • 30. WebService Description Language Financeiro CRM Endpoint Endpoint HTTP WSDL WSDL (Java) (C++) SOAP WSDL HA AP P SO TT TT P SO H Endpoint P Estoque (Delphi) Tuesday, March 17, 2009
  • 31. Corba Financeiro CRM GIOP ORB IDL IDL ORB (Java) (C++) IIOP IDL GP IIO PIO IO IIO P G ORB P Estoque (Delphi) Tuesday, March 17, 2009
  • 32. WebServices SOAP Financeiro CRM Endpoint Endpoint HTTP WSDL WSDL (Java) (C++) SOAP WSDL HA AP P SO TT TT P SO H Endpoint P Estoque (Delphi) Tuesday, March 17, 2009
  • 33. Same Old Architecture SOA Tuesday, March 17, 2009
  • 36. <types> <xs:schema xmlns:xs=quot;http://www.w3.org/2001/XMLSchemaquot; ...> <xs:element name=quot;ItemSearchquot;> <xs:complexType> <xs:sequence> <xs:element name=quot;AWSAccessKeyIdquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/> <xs:element name=quot;Requestquot; type=quot;tns:ItemSearchRequestquot; minOccurs=quot;0quot; maxOccurs=quot;unboundedquot;/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name=quot;ItemSearchRequestquot;> <xs:sequence> <xs:element name=quot;Authorquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/> <xs:element name=quot;Keywordsquot; type=quot;xs:stringquot; minOccurs=quot;0quot;/> ... </xs:sequence> </xs:complexType> </xs:schema> </types> <message name=quot;ItemSearchRequestMsgquot;> <part name=quot;bodyquot; element=quot;tns:ItemSearchquot;/> </message> <portType name=quot;AWSECommerceServicePortTypequot;> <operation name=quot;ItemSearchquot;> <input message=quot;tns:ItemSearchRequestMsgquot;/> <output message=quot;tns:ItemSearchResponseMsgquot;/> </operation> </portType> <binding name=quot;AWSECommerceServiceBindingquot; type=quot;tns:AWSECommerceServicePortTypequot;> ... </binding> <service name=quot;AWSECommerceServicequot;> <port name=quot;AWSECommerceServicePortquot; binding=quot;tns:AWSECommerceServiceBindingquot;> <soap:address location=quot;http://soap.amazon.com/onca/soap?Service=AWSECommerceServicequot;/> Tuesday, March 17, 2009 </port>
  • 37. • JAX-WS wsimport ✓ • Apache CXF WSDL2Java ✓ • Axis 2 • WCF (.Net) Tuesday, March 17, 2009
  • 38. WS-* • WS-Transaction • WS-Security • WS-Addressing • WS-Reliability • ... Tuesday, March 17, 2009
  • 39. WCF (MS) + Metro (Sun) Tuesday, March 17, 2009
  • 40. WebServices W3C quot;Sistema de software projetado para suportar interações entre máquinas numa rede, de forma interoperável.quot; granularidade alta Tuesday, March 17, 2009
  • 41. POX Plain Old XML Tuesday, March 17, 2009
  • 42. Flickr http://api.flickr.com/services/rest/?method=flickr.interestingness.getList Tuesday, March 17, 2009
  • 43. <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <rsp stat=quot;okquot;> <photos page=quot;1quot; pages=quot;5quot; perpage=quot;100quot; total=quot;500quot;> <photo id=quot;1332244715quot; owner=quot;41848473@N00quot; secret=quot;a6e8177ba8quot; server=quot;1215quot; farm=quot;2quot; title=quot;Back to schoolquot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> <photo id=quot;1331179114quot; owner=quot;84362437@N00quot; secret=quot;0ed6a814a8quot; server=quot;1285quot; farm=quot;2quot; title=quot;Big Rig Jigquot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> <photo id=quot;1329226185quot; owner=quot;46925233@N00quot; secret=quot;4556c3f08bquot; server=quot;1194quot; farm=quot;2quot; title=quot;Here they come...quot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> </photos> </rsp> Tuesday, March 17, 2009
  • 44. <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <rsp stat=quot;okquot;> <photos page=quot;1quot; pages=quot;5quot; perpage=quot;100quot; total=quot;500quot;> <photo id=quot;1332244715quot; owner=quot;41848473@N00quot; secret=quot;a6e8177ba8quot; server=quot;1215quot; farm=quot;2quot; title=quot;Back to schoolquot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> <photo id=quot;1331179114quot; owner=quot;84362437@N00quot; secret=quot;0ed6a814a8quot; server=quot;1285quot; farm=quot;2quot; title=quot;Big Rig Jigquot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> <photo id=quot;1329226185quot; owner=quot;46925233@N00quot; secret=quot;4556c3f08bquot; http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg server=quot;1194quot; farm=quot;2quot; title=quot;Here they come...quot; ispublic=quot;1quot; isfriend=quot;0quot; isfamily=quot;0quot; /> </photos> </rsp> Tuesday, March 17, 2009
  • 45. JSON JavaScript Object Notation Tuesday, March 17, 2009
  • 46. var john = { type: 'Person', name: 'John Doe', email: 'john@doe.com', address: { street: 'Doe Street', number: 1223, city: 'New York' } } Tuesday, March 17, 2009
  • 47. var john = { type: 'Person', name: 'John Doe', email: 'john@doe.com', address: { street: 'Doe Street', number: 1223, city: 'New York' } } Tuesday, March 17, 2009
  • 49. http://delicious.com http://del.icio.us Tuesday, March 17, 2009
  • 50. [ { u:quot;https://jaxb.dev.java.net/guide/quot;, d:quot;jaxb: Unofficial JAXB Guidequot;, t:[quot;jaxbquot;,quot;javaquot;,quot;xmlquot;,quot;webservicesquot;] }, { u:quot;http://www.artima.com/intv/gosling3P.htmlquot;, d:quot;James Gosling on Java, May 2001quot;, t:[quot;javaquot;,quot;inheritancequot;,quot;compositionquot;,quot;designquot;] }, ... ] http://delicious.com/feeds/json/fck?raw Tuesday, March 17, 2009
  • 51. String url = quot;http://delicious.com/feeds/json/fck?rawquot;; HttpClient client = new HttpClient(); GetMethod get = new GetMethod(url); client.executeMethod(get); String response = get.getResponseBodyAsString(); JSONArray x = JSONArray.fromObject(response); for (JSONObject bookmark : x) { System.out.println(quot;Descrição: quot; + bookmark.get(quot;dquot;)); System.out.println(quot;Endereço: quot; + bookmark.get(quot;uquot;)); System.out.println(quot;Tags: quot; + bookmark.get(quot;tquot;)); } http://json-lib.sourceforge.net/ Tuesday, March 17, 2009
  • 52. $(‘content’).load(serviceURL); HTTP . . Service . Tuesday, March 17, 2009
  • 53. $(‘content’).load(serviceURL); HTTP . . Service . var data = eval(response); JSON Tuesday, March 17, 2009
  • 54. $(‘content’).load(serviceURL); HTTP . . Service . var data = eval(response); JSON var john = { name: 'John Doe', email: 'john@doe.com', address: { street: 'Doe Street', number: 1223, city: 'New York' } } Tuesday, March 17, 2009
  • 55. <script type=quot;text/javascriptquot; src=quot;http://delicious.com/feeds/json/fckquot;> </script> Tuesday, March 17, 2009
  • 56. <script type=quot;text/javascriptquot; src=quot;http://delicious.com/feeds/json/fckquot;> </script> var Delicious = [ { u:quot;https://jaxb.dev.java.net/guide/quot;, d:quot;jaxb: Unofficial JAXB Guidequot;, t:[quot;jaxbquot;,quot;javaquot;,quot;xmlquot;,quot;webservicesquot;] }, ... ] Tuesday, March 17, 2009
  • 57. REST REpresentational State Transfer Tuesday, March 17, 2009
  • 58. Recursos GET POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
  • 59. Recursos Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
  • 60. Recursos /clientes Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
  • 61. Recursos /clientes Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
  • 62. Recursos /clientes Clientes da GET Empresa POST /clientes/1 PUT Cliente de DELETE id=1 HEADER TRACE OPTIONS Tuesday, March 17, 2009
  • 63. Recursos /clientes Clientes da GET Empresa POST /clientes/1 PUT Cliente de DELETE id=1 HEADER /clientes/nome/a TRACE Clientes de nome a* OPTIONS Tuesday, March 17, 2009
  • 64. Recursos /clientes Clientes da GET Empresa POST /clientes/1 PUT Cliente de DELETE id=1 XML HEADER /clientes/nome/a JSON TRACE HTML Clientes de nome a* OPTIONS Tuesday, March 17, 2009
  • 65. Muitas opções processos envolvem diversas Tuesday, March 17, 2009
  • 67. ESB Enterprise Service Bus Tuesday, March 17, 2009
  • 69. • Localidade • Transformação de Mensagens • Orquestração / Coreografia • CEP Tuesday, March 17, 2009
  • 70. Dúvidas? Obrigado! fabio.kung@caelum.com.br Tuesday, March 17, 2009

Notes de l'éditeur