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;




...
Bilhetagem
                            (Ticketagem)




Tuesday, March 17, 2009
Bilhetagem
                                  (Ticketagem)




                     Financeiro                  CRM



    ...
Same Old Architecture
                          SOA




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




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




                 Financeiro           CRM




Tuesday, March...
Remote Procedure Call
                              (RPC)




                 Financeiro                   CRM
          ...
Remote Procedure Call
                              (RPC)




                                      Cadastro


           ...
• 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++)
    ...
Corba

  Financeiro                                   CRM
                                 GIOP
                          ...
Corba

  Financeiro                                           CRM
                                     GIOP
              ...
Corba

  Financeiro                                               CRM
                                       GIOP
        ...
• 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>
                         ...
HTTP
                          XML
                          SOAP
                          WSDL

Tuesday, March 17, 2009
WebService Description
                                Language




Tuesday, March 17, 2009
WebService Description
                                Language

  Financeiro                                        CRM
 ...
WebService Description
                                Language

  Financeiro                                        CRM
 ...
WebService Description
                                Language

  Financeiro                                             ...
WebService Description
                                Language

  Financeiro                                             ...
WebService Description
                                Language

  Financeiro                                             ...
Corba

  Financeiro                                               CRM
                                       GIOP
        ...
WebServices SOAP

  Financeiro                                                                 CRM
                       ...
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;>...
• JAX-WS
                          wsimport
                    ✓



               • Apache CXF
                         ...
WS-*

               • WS-Transaction
               • WS-Security
               • WS-Addressing
               • WS-Reli...
WCF (MS)
                              +
                          Metro (Sun)


Tuesday, March 17, 2009
WebServices
                              W3C



      quot;Sistema de software projetado para
    suportar interações ent...
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;...
<?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
  <rsp stat=quot;okquot;>
    <photos page=quot;1quot; pages=quot;...
JSON
                          JavaScript Object Notation




Tuesday, March 17, 2009
var john = {
                    type: 'Person',
                    name: 'John Doe',
                    email: 'john@do...
var john = {
                    type: 'Person',
                    name: 'John Doe',
                    email: 'john@do...
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;,
...
String url = quot;http://delicious.com/feeds/json/fck?rawquot;;

   HttpClient client = new HttpClient();
   GetMethod get...
$(‘content’).load(serviceURL);   HTTP
                          .
                          .
                            ...
$(‘content’).load(serviceURL);   HTTP
                          .
                          .
                            ...
$(‘content’).load(serviceURL);       HTTP
                          .
                          .
                        ...
<script type=quot;text/javascriptquot;
           src=quot;http://delicious.com/feeds/json/fckquot;>
         </script>


...
<script type=quot;text/javascriptquot;
           src=quot;http://delicious.com/feeds/json/fckquot;>
         </script>


...
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
 ...
Recursos
                                     /clientes
                                      Clientes da
   GET          ...
Recursos
                                     /clientes
                                      Clientes da
   GET          ...
Recursos
                                      /clientes
                                       Clientes da
   GET        ...
Recursos
                                      /clientes
                                         Clientes da
   GET      ...
Recursos
                                      /clientes
                                         Clientes da
   GET      ...
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

...
Dúvidas?




                                                 Obrigado!


                          fabio.kung@caelum.com....
Upcoming SlideShare
Loading in...5
×

SOA não precisa ser buzzword

1,982

Published on

Palestra sobre SOA para os clientes da Stefanini. Visão aplicada sobre SOA, sem tentar vender nenhum produto e sem buzzwords.

Published in: Technology, Business
2 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,982
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
2
Likes
8
Embeds 0
No embeds

No notes for slide












































































































































  • Transcript of "SOA não precisa ser buzzword"

    1. 1. SOA fabio.kung@caelum.com.br Tuesday, March 17, 2009
    2. 2. Tecnologia evolui (legado) Tuesday, March 17, 2009
    3. 3. mas o que? definição Tuesday, March 17, 2009
    4. 4. quot;Uma arquitetura em que serviços independentes se comunicam de uma maneira padronizada.quot; Tuesday, March 17, 2009
    5. 5. Bilhetagem (Ticketagem) Tuesday, March 17, 2009
    6. 6. Bilhetagem (Ticketagem) Financeiro CRM FTP FS Tuesday, March 17, 2009
    7. 7. Same Old Architecture SOA Tuesday, March 17, 2009
    8. 8. Remote Procedure Call (RPC) Tuesday, March 17, 2009
    9. 9. Remote Procedure Call (RPC) Financeiro CRM Tuesday, March 17, 2009
    10. 10. Remote Procedure Call (RPC) Financeiro CRM Lista Tuesday, March 17, 2009
    11. 11. Remote Procedure Call (RPC) Cadastro Financeiro CRM Lista Por Nome Tuesday, March 17, 2009
    12. 12. • RMI • DCOM • EJB Tuesday, March 17, 2009
    13. 13. Corba Tuesday, March 17, 2009
    14. 14. Corba Financeiro CRM (Java) (C++) Tuesday, March 17, 2009
    15. 15. Corba Financeiro CRM GIOP (Java) (C++) IIOP Tuesday, March 17, 2009
    16. 16. Corba Financeiro CRM GIOP ORB ORB (Java) (C++) IIOP Tuesday, March 17, 2009
    17. 17. Corba Financeiro CRM GIOP ORB IDL IDL ORB (Java) (C++) IIOP Tuesday, March 17, 2009
    18. 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. 19. • Firewalls • Mal suportado • Burocracia no desenvolvimento Tuesday, March 17, 2009
    20. 20. HTTP Tuesday, March 17, 2009
    21. 21. HTTP XML Tuesday, March 17, 2009
    22. 22. HTTP XML SOAP Tuesday, March 17, 2009
    23. 23. Simple Object Access Protocol <soap:envelope> <soap:header> ... </soap:header> <soap:body> ... </soap:body> </soap:envelope> Tuesday, March 17, 2009
    24. 24. HTTP XML SOAP WSDL Tuesday, March 17, 2009
    25. 25. WebService Description Language Tuesday, March 17, 2009
    26. 26. WebService Description Language Financeiro CRM (Java) (C++) Tuesday, March 17, 2009
    27. 27. WebService Description Language Financeiro CRM HTTP (Java) (C++) SOAP Tuesday, March 17, 2009
    28. 28. WebService Description Language Financeiro CRM Endpoint Endpoint HTTP (Java) (C++) SOAP Tuesday, March 17, 2009
    29. 29. WebService Description Language Financeiro CRM Endpoint Endpoint HTTP WSDL WSDL (Java) (C++) SOAP Tuesday, March 17, 2009
    30. 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. 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. 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. 33. Same Old Architecture SOA Tuesday, March 17, 2009
    34. 34. Interoperabilidade Tuesday, March 17, 2009
    35. 35. Amazon Tuesday, March 17, 2009
    36. 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. 37. • JAX-WS wsimport ✓ • Apache CXF WSDL2Java ✓ • Axis 2 • WCF (.Net) Tuesday, March 17, 2009
    38. 38. WS-* • WS-Transaction • WS-Security • WS-Addressing • WS-Reliability • ... Tuesday, March 17, 2009
    39. 39. WCF (MS) + Metro (Sun) Tuesday, March 17, 2009
    40. 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. 41. POX Plain Old XML Tuesday, March 17, 2009
    42. 42. Flickr http://api.flickr.com/services/rest/?method=flickr.interestingness.getList Tuesday, March 17, 2009
    43. 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. 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. 45. JSON JavaScript Object Notation Tuesday, March 17, 2009
    46. 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. 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
    48. 48. json.org Tuesday, March 17, 2009
    49. 49. http://delicious.com http://del.icio.us Tuesday, March 17, 2009
    50. 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. 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. 52. $(‘content’).load(serviceURL); HTTP . . Service . Tuesday, March 17, 2009
    53. 53. $(‘content’).load(serviceURL); HTTP . . Service . var data = eval(response); JSON Tuesday, March 17, 2009
    54. 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. 55. <script type=quot;text/javascriptquot; src=quot;http://delicious.com/feeds/json/fckquot;> </script> Tuesday, March 17, 2009
    56. 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. 57. REST REpresentational State Transfer Tuesday, March 17, 2009
    58. 58. Recursos GET POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
    59. 59. Recursos Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
    60. 60. Recursos /clientes Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
    61. 61. Recursos /clientes Clientes da GET Empresa POST PUT DELETE HEADER TRACE OPTIONS Tuesday, March 17, 2009
    62. 62. Recursos /clientes Clientes da GET Empresa POST /clientes/1 PUT Cliente de DELETE id=1 HEADER TRACE OPTIONS Tuesday, March 17, 2009
    63. 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. 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. 65. Muitas opções processos envolvem diversas Tuesday, March 17, 2009
    66. 66. Tuesday, March 17, 2009
    67. 67. ESB Enterprise Service Bus Tuesday, March 17, 2009
    68. 68. Tuesday, March 17, 2009
    69. 69. • Localidade • Transformação de Mensagens • Orquestração / Coreografia • CEP Tuesday, March 17, 2009
    70. 70. Dúvidas? Obrigado! fabio.kung@caelum.com.br Tuesday, March 17, 2009

    ×