Você está na página 1de 10

Conceptos de SOA

SOA:
http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
La Arquitectura Orientada a Servicios (en ingls Service Oriented Architecture) es un concepto
de arquitectura de so!tware que de!ine la utili"aci#n de servicios para dar soporte a los
requisitos del negocio.
$er%ite la creaci#n de siste%as alta%ente escala&les que re!le'an el negocio de la
organi"aci#n a su ve" &rinda una !or%a &ien de!inida de e(posici#n e invocaci#n de servicios
(co%)n%ente pero no e(clusiva%ente servicios we&) lo cual !acilita la interacci#n entre
di!erentes siste%as propios o de terceros.
Servicios Web:
http://www.w3.org/TR/ws-arch/#id2260892
*s un siste%a de so!tware dise+ado para soportar interacci#n %,quina-a-%,quina so&re una
red. .iene una inter!a" descrita en un !or%ato procesa&le por la %,quina (/S0L).
Los we& services per%iten que las aplicaciones co%partan in!or%aci#n 1 que ade%,s invoquen
!unciones de otras aplicaciones independiente%ente de c#%o se ha1an creado 1 se
encuentren en una variedad de plata!or%as 1/o !ra%eworks.
Son independientes entre s2 pero pueden vincularse 1 !or%ar grupo de cola&oraci#n para
reali"ar tarea.
$ara conseguir esta interopera&ilidad (independencia de tecnolog2a 1 siste%a operativo) los
we& services est,n &asados en tecnolog2as est,ndares: 34L /S0L (/e& Service 0escription
Language) SOA$ (Si%ple O&'ect Access $rotocol) 5006 (5niversal 0escription 0iscover1
and 6ntegration).
Los we& services se invocan en 6nternet por %edio de protocolos est,ndar &asados en 34L. 7
grandes tendencias: 34L-8$9 1 SOA$. (inco%pati&les entre s2)
.anto SOA$ ($rotocolo de acceso a o&'etos si%ple Si%ple O&'ect Access $rotocol) co%o
34L-8$9 son lengua'es de %ensa'er2a &asada en 34L
34L-8$9 est, dise+ado para ser sencillo. SOA$ por el contrario est, creado con idea de dar
un soporte co%pleto 1 %inucioso de todo tipo de servicios we&.
Los protocolos que soportan los we& services se co%unican nor%al%ente por el puerto :; 1
&as,ndose en <..$ %todos =*. 1 $5..
XML:
34L es la &ase de los we& services. 34L es la soluci#n a un pro&le%a de co%unicaci#n entre
progra%as de ordenador. 34L intenta ser un !or%ato a&soluta%ente genrico con el que
descri&ir 95AL>56*8 tipo de !ichero. 9ualquier in!or%aci#n trans%itida por un 34L est,
per!ecta%ente estructurada en !or%a de ,r&ol 1 se e%plea lengua'e de %arcas (tags). 9o%o
34L es un !or%ato universal las %arcas no son !i'as sino varia&les seg)n el su&!or%ato.
WSDL:
*l %ecanis%o de interca%&io est, docu%entado en un /S0 (/S 0escription). /S0 es una
especi!icaci#n procesa&le por la %,quina de la inter!a" del we& service escrita en /S0L. *ste
de!ine el !or%ato de los %ensa'es tipo de datos protocolos de transporte que de&er2an ser
usados entre el cliente 1 proveedor.
UDDI
*s el protocolo para la descripci#n descu&ri%iento e integraci#n universal. $u&lica la
in!or%aci#n de los servicios /e& 1 per%ite a las aplicaciones co%pro&ar qu we& services
est,n disponi&les.
SOAP
*s el protocolo que de!ine el interca%&io de in!or%aci#n en un entorno distri&uido 1
descentrali"ado. *s un protocolo &asado en 34L que consiste en ? partes:
o 5n so&re que de!ine un !ra%ework para descri&ir qu ha1 en el %ensa'e 1 c#%o
procesarlo
o 5n con'unto de reglas para e(presar instancias de tipo de datos de!inidos en nuestra
aplicaci#n
o 5na convenci#n para representar lla%adas en re%oto 1 respuestas.
Axis2
*s el pro1ecto de Apache que nos !acilita el tra&a'o con servicios we&.
$er%ite lo siguiente:
La i%ple%entaci#n del protocolo SOA$.
Asistentes para tra&a'ar con archivos /S0L.
0eseriali"aci#n del contenido 34L (SOA$) en o&'etos @ava que ser,n
utili"ados por el servicio 1 seriali"aci#n de los o&'etos @ava que nos devuelva el
servicio en 34L (SOA$). *l progra%ador s#lo de&e centrarse en la codi!icaci#n
de la l#gica de negocio 1 no de&e preocuparse de la generaci#n de los
%ensa'es SOA$.
Asistentes para la creaci#n de esqueletos de servicio listos para desplegar de
!or%a auto%,tica.
Asistentes para la creaci#n de o&'etos @ava que %odelan los %ensa'es SOA$.
4e'ora de rendi%iento respecto a A(is A usando la tecnolog2a StA3 (Strea%ing
A$6 !or 34L) !usiona las venta'as de SA3 (rendi%iento) 1 0O4 (%odelo Bpull
parsingB) sin sus inconvenientes (%odelo Bpush parsingB de SA3 1 consu%o
e(cesivo de %e%oria de 0O4).
Soporte del %odelo de progra%aci#n as2ncrona 1 s2ncrona para consu%ir
servicios we&.
Soporta di!erentes protocolos de transporte:
o <..$ S4.$ .9$ @4S
o $udiendo indicar en cada sentido de la co%unicaci#n un transporte
di!erente.
*l %apeo B34L/SOA$B C--D B4odelo @ava del 34LB se ha opti%i"ado %ediante
A36O4 (A36s O&'ect 4odel) que usa StA3. *s el A$6 de &a'o nivel de Axis2
para %ane'o de %ensa'es SOA$.
*l %apeo B34L/SOA$B C--D B@ava EeansB se puede i%ple%entar %ediante
varias tecnolog2as: A0E (A(is7 0ata&inding Fra%ework) 34LEeans @A3-4*
@i3E 1 @a(E86. 0e las cuales A0E es la %,s !,cil de usar en Axis21
34LEeans la que o!rece %a1ores prestaciones. Son los A$6s de alto nivel para
el %ane'o de servicios we&. Anotar que @A3-4* 1 @a(E86 se soportan de
%anera Ge(peri%entalG.
Soporta la creaci#n de servicios we& %ediante Spring.
Soporte co%pleto para SOA$ con ad'untos (SwA SOA$ with Attach%ents).
Manual para creacin e invocacin de Web Service
8eali"are%os el siguiente !lu'o:
A continuaci#n se %uestra la co%unicaci#n entre el requester 1 provider (cliente 1
proveedor)
(A)Las entidades requester and provider se conocen entre ellas.
(7) requester 1 provider concuerdan en descripci#n del servicio 1 se%,ntica que go&ernar,
interacci#n entre agentes requester 1 provider.
(?)la descripci#n del servicio 1 se%,ntica son notadas por los agentes requester 1 provider.
(H)agentes requester 1 provider interca%&ian %ensa'es.
Sot!are Utili"ado:
6E4 /e&sphere 6ntegration 0eveloper
Creacin de cliente WS con Axis2 #$%$#
Configuracin de Variables
- Sun @AIA @0J
@AIA_<O4*
A36S7_<O4*
O&tener las li&rer2as necesarias de A36S 1 colocarlas en una ruta
a&soluta la cual ser, indicada en la varia&le.
Modificar PATH
A+adir las varia&les de!inidas anterior%ente de la siguiente !or%a:
KCno%&reIaria&leDK
*'e%plo:
K@AIA_<O4*K/&in
Crear WebService
Si 1a se dispone del descriptor /S0L (/e& Service 0escription Language) se
puede crear la estructura del /S servidor (proveedor) 1/o su cliente.
Situaciones que pueden presentarse:
- Solo creaci#n del cliente utili"ando el /S0L entregado por parte del
proveedor as2 pode%os sa&er c#%o co%unicarnos con el servidor.
- >ue se inicie de cero. A partir de una inter!a" en la que se de!inan las
operaciones se puede generar el /S0L.
*n este caso e%pe"are%os todo de cero.
$asos:
- 9rear una aplicaci#n we& (/S$rue&aA(is)
- 9rear una inter!a" 1 de!inir operaciones
- 9rear i%ple%entaci#n de la inter!a"
- 9rear /S0L:
o 9olocarse so&re la i%ple%entaci#n de la inter!a".
o 9lic 0erecho /Lew/Other/
o Aparecer, una ventana 1 all2 elegir /e&Services//e& Service
o Seguir los pasos del wi"ard. *n uno de ellos se pedir, seleccionar
el servidor de aplicaciones en nuestro caso elegire%os
/e&Sphere $rocess. Final%ente MFinishN 1 se crear,n los
archivos necesarios entre ellos el /S0L M9alculadora.wsdlN .
- La estructura !inal de la aplicaci#n es co%o sigue:
Creacin del cliente del WS a travs de las libreras de A!S
*sta aplicaci#n ser, al !inal un @A8 utilitario para las aplicaciones que
requieran invocar a las operaciones del we& service anterior%ente creado.
$asos:
- 9rear una aplicaci#n @AIA
- 9rear una carpeta wsdl 1 en ella copiar el /S0L generado (en e
e'e%plo 9alculadora.wsdl)
- *'ecutar desde la consola el siguiente co%ando para crear la estructura
del servicio.
%AXIS2_HOME%/bin/WSDL2Java p <nombre del pa!e"e# $!ri
%&dl<nombre del WSDL# $&
Para el e"e#plo$
%AXIS2_HOME%/bin/WSDL2Java p
'om("dp(in"e)ra'ion(%&(&ervi'e $!ri
%&dl/*al'!ladora(%&dl $&
Se crear,n 7 archivos:
o Cno%&re/S0LDService9all&ack<andler.'ava
o Cno%&re/S0LDServiceStu&.'ava
- <ace%os M8e!reshN al pro1ecto 1 de&e quedar la siguiente estructura:
- 9olocar las li&rer2as A36S7 necesarias para solucionar pro&le%as de
re!erencia. (*n la i%agen se ve una li&rer2a de usuario L6E_A36S7)
- *(portar aplicaci#n co%o @A8.
Creacin de aplicacin que utili%a Cliente WS &'A()
*n este paso se va a e(plicar co%o invocar las operaciones del we& service a
travs de las clases creadas en el paso anterior (contenidas en el @A8).
- 9rear una aplicaci#n @AIA
- 9rear una clase principal:
p!bli' 'la&& Principal +
p!bli' &"a"i' void main,S"rin)-. ar)&/ +
in" valida"or 0 12
//E&"a r!"a &e en'!en"ra en el WSDL(
S"rin) !rl034""p5//lo'al4o&"56171/WS8r!ebaA9i&/&ervi'e&/*al'!ladora32
try{
//M:"odo implemen"ado para veri;i'ar ;!n'ionamien"o de la !rl(
valida"or 0 valida<rl,!rl/2
i;, 211 00 valida"or/+
/=
= <"ili>amo& el &"!b )enerado a par"ir del %&dl !e lo)ran e&"able'er
= la 'one9ion 'on el %eb &ervi'e proveedor(
=/
*al'!ladoraServi'eS"!b 'lien"e 0 n!ll2
*al'!ladoraServi'eS"!b(*al'!larEdad8erro re!e&" 0 n!ll2
*al'!ladoraServi'eS"!b(*al'!larEdad8erro?e&pon&e re&pon&e 0 n!ll2
//*reamo& &opor"e
'lien"e 0 ne% *al'!ladoraServi'eS"!b,%&<rlDe&"ino/2
S@&"em(o!"(prin"ln,3$$$$55 Opera'iAn WS $ BSAL<DA?B$ 55$$$3/2
//*reamo& obCe"o pe"i'ion,re!e&"/ de la opera'iAn Sal!dar
*al'!ladoraServi'eS"!b(Sal!dar &al!dar?e!e&" 0 n!ll2
//*reamo& obCe"o re&p!e&"a,re&pon&e/ de la opera'iAn Sal!dar
*al'!ladoraServi'eS"!b(Sal!dar?e&pon&e &al!dar?e&pon&e 0 n!ll2
&al!dar?e!e&" 0 ne% *al'!ladoraServi'eS"!b(Sal!dar,/2
&al!dar?e!e&"(&e"SDombre,38amela3/2
//Invo'amo& opera'ion ESal!darF 'on el &opor"e ,'lien"e/G enviamo& obCe"o
//re!e&" @ lo a&i)namo& al obCe"o re&pon&e(
&al!dar?e&pon&e 0 'lien"e(&al!dar,&al!dar?e!e&"/2
//Ob"enemo& la re&p!e&"a5
S@&"em(o!"(prin"ln,&al!dar?e&pon&e()e"Sal!dar?e"!rn,//2
H
H
catch(Exception e){
S@&"em(o!"(prin"ln,3E9'ep'ion((3 I e()e"Me&&a)e,//2
e(prin"S"a'JKra'e,/2
H
H
$ro&a%os:
ListoO *'ecuci#n e(itosaOO P)
Se ad'unta las ? aplicaciones:
- /e& Service (Servidor) - WSPruebaAxis
- Aplicaci#n 9liente (@A8) - &inalClienteWSPruebaAxis
- Aplicaci#n que consu%e cliente /S. - Pro'Calculadora

Você também pode gostar