Your SlideShare is downloading. ×
SOA não precisa ser buzzword
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SOA não precisa ser buzzword

1,918

Published on

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

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,918
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
2
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide












































































































































  • Transcript

    • 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
    • 13. Corba 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
    • 20. HTTP 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
    • 34. Interoperabilidade Tuesday, March 17, 2009
    • 35. Amazon 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
    • 48. json.org 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
    • 66. Tuesday, March 17, 2009
    • 67. ESB Enterprise Service Bus Tuesday, March 17, 2009
    • 68. 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

    ×