ݺߣ

ݺߣShare a Scribd company logo
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
$(‘cDzԳٱԳ’).Dz(𱫸鳢);   HTTP
                          .
                          .
                                               Service
                          .




Tuesday, March 17, 2009
$(‘cDzԳٱԳ’).Dz(𱫸鳢);   HTTP
                          .
                          .
                                                 Service
                          .

       var data = eval(response);         JSON




Tuesday, March 17, 2009
$(‘cDzԳٱԳ’).Dz(𱫸鳢);       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=/slideshow/soa-no-precisa-ser-buzzword/1158360/quot;http:/delicious.com/feeds/json/fckquot;>
         </script>




Tuesday, March 17, 2009
<script type=quot;text/javascriptquot;
           src=/slideshow/soa-no-precisa-ser-buzzword/1158360/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
ú岹?




                                                 Obrigado!


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

More Related Content

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. $(‘cDzԳٱԳ’).Dz(𱫸鳢); HTTP . . Service . Tuesday, March 17, 2009
  • 53. $(‘cDzԳٱԳ’).Dz(𱫸鳢); HTTP . . Service . var data = eval(response); JSON Tuesday, March 17, 2009
  • 54. $(‘cDzԳٱԳ’).Dz(𱫸鳢); 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=/slideshow/soa-no-precisa-ser-buzzword/1158360/quot;http:/delicious.com/feeds/json/fckquot;> </script> Tuesday, March 17, 2009
  • 56. <script type=quot;text/javascriptquot; src=/slideshow/soa-no-precisa-ser-buzzword/1158360/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. ú岹? Obrigado! fabio.kung@caelum.com.br Tuesday, March 17, 2009