SOA não precisa ser buzzword

50 %
50 %
Information about SOA não precisa ser buzzword
Technology

Published on March 17, 2009

Author: fabiokung

Source: slideshare.net

Description

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

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

Add a comment

Related presentations

Related pages

SOA não precisa ser buzzword (Example) - coderwall.com

A protip by fabiokung about slideshare. Coderwall is a community of programming tips, tricks & tutorials to help you save time.
Read more

SOA sem tentar vender middleware? | blog.caelum.com.br

A minha palestra fala um pouco sobre como SOA não precisa ser buzzword, SOA é integração: SOA não precisa ser buzzword. ... não faremos SOA de verdade.
Read more

Adoção de SOA - Sensedia

... surgiu como uma buzzword, ... SOA é apenas um conjunto de novas siglas para ... que podem facilmente ser reutilizados e compartilhados entre ...
Read more

Java, Web e Netbeans, parte I: Webservices [Um Estudo de ...

... quanto para que eu não me esqueça dessas coisas ... Uma série de informações deve ser armazenada em um banco de ... essa outra buzzword, ...
Read more

Marketing de Conteúdo é uma ova | Rodrigo Carvalho ...

Marketing de Conteúdo é uma ova Rodrigo Carvalho Silveira. Wall Street rallies on good news for Clinton; Senate control a tossup, and more election 2016 ...
Read more

Create a Module with a Route and Controller | Drupalize.Me

Create a Module with a Route and Controller with ... diz ao Drupal qual função deve ser ... No YAML você normalmente não precisa de aspas ao menos em ...
Read more

O que HTML5 NÃO É?! | Elemar JR

Muitas tecnologias que não fazem parte da especificação estão sendo atribuídas a HTML5. Eu mesmo, escrevendo sobre o assunto, ...
Read more