Anda di halaman 1dari 32

Servicios Web

Jorge Castillo
Cristóbal Puente
Nelson Vinueza
Agenda
API

SOA

¿Qué es un Servicio Web?

¿Por qué usar servicios Web?

SOAP

REST

Bibliografía
API
Application Programming
Interface (API)
Procesos, funciones y métodos que brinda una
biblioteca de programación a modo de capa de
abstracción para que sea empleada por otro programa
informático.

Conjunto de reglas (código) y especificaciones que las


aplicaciones pueden seguir para comunicarse entre
ellas.

Una de las claves del funcionamiento de las API es la


facilidad de integración.
Service Oriented Architecture

SOA
SOA

Arquitectura Orientada a Servicios

Paradigma de arquitectura que permite diseñar


software basado en la composición de
aplicaciones independientes.

Creación de sistemas de información altamente


escalables.
Arquitectura Orientada a
Servicios
Una aproximación para construir sistemas
usando servicios los cuales se adhieren a 4
pilares:
Los limites son explícitos
Los servicios son autónomos
Los servicios comparten esquemas y
contratos, no clases
La compatibilidad de los servicios, se
determina basados en las políticas
Beneficios de la Arquitectura
Orientada a Servicios
Proveer servicios a los consumidores vía interfaces
estándares, publicadas y de fácil ubicación
Soluciones basadas en protocolos estándares no en
productos
Eleva el nivel de abstracción para reutilización del código
Solventando problemas de heterogeneidad
Provee de un modelo claro para integrar sistemas de software
Dentro de a empresa
Mas allá de las fronteras organizacionales
Provee de la bases para aplicaciones conectadas de clase
mundial
El valor de negocio de las aplicaciones aisladas es limitado
¿Qué es un Servicio
Web?
Servicios Web

Tecnología que permite que las aplicaciones se


comuniquen en una forma que no depende de la
plataforma ni del lenguaje de programación.

Un servicio web es una interfaz que describe un


conjunto de operaciones a las cuales se puede
acceder por la red a través de mensajería
estandarizada.
RESTFul
API
Web Sevvev !

':.:.:..:.:.-
...
/ ...
....

¿Por qué usar Servicios


Web?
¿Por qué usar Servicios
Web?

Reuso del código

Interoperabilidad con otros sistemas

Posibilidad de usar microservicios como


arquietctura
SOAP fv1essage
I
I IISOAP_.Heade�

,, 1
1
J 1
1
Loglcal
MessageContext

\ Payload
\
\ ·····- .
-
··· ..·······················
··············,.,.,..

SOAP
XML

Extensible Markup Language.

Lenguaje que permite definir lenguajes de marcas


o tags desarrollado por World Wide Web
Consortium (W3C).

Se usa para almacenar datos en forma legible


(?:xm ve rs i.o n= ,, .1. 0 rr st:anaaJ.011e=
0
ee rr>
<B ankl\ccount
> <Number>1234</Number>
<Type>Checking</Type>
<OpenDate>ll/04/1974</0penDate>
<Balance>25382.20</Balance>
<AccountHo1der>
<LastName>Singh</LastName>
<FirstName>Darshan</FirstName�
</AccountHolder>
c/BankAccowit> �-��-�--�-
�����-�.

K1xm1I v rsion="l .0' ne ding='UTF-811?>


<?xrnl-stylcs e ty =·iext/Xs. • h l="bookc sc.xslº?>
b o case>
<boak
)<ti le>Sense and Sensibility</1i 1
<a >thor>Jane Austen<Jauthor>
</book)

<bcuk>
<U le>Kidnapped</titl >
<aulhor>Robert ouis Stevenson</author>
</book>
</bookcasc>
SOAP
Simple Object Access Protocol

Formato de mensaje XML utilizado en interacciones de


servicios web. Los mensajes SOAP habitualmente se
envían sobre HTTP o JMS, pero se pueden utilizar
otros protocolos.

Protocolo que te permite la comunicación entre


aplicaciones a través de mensajes por medio de
Internet, independiente de la plataforma y el lenguaje.
defi n
itions
Tipos de datos usados en los mensajes (XML Schema)

Definición abstracta de los datos transmitidos.

ortT e Conjunto de operaciones abstractas

Protocolo concreto y especificaciones de los


bindin formatos de las operaciones del mensaje
g
Especifica una dirección para el enlace definiendo
por un único punto de destino
t
serv1 Colección de puntos de destino

.
ce

WSDL
WSDL
Web Services Description Language.

Notación XML para describir un servicio web

El uso de SOAP en un servicio web específico se


describe mediante la definición WSDL.

Una definición WSDL indica a un cliente cómo


componer una solicitud de servicio web y describe la
interfaz que proporciona el proveedor del servicio
web.
- <wsdl: definirious a1 aetNainespace=•http;//rrucrosoft co webserncesl'
+ <wsdl: t)lles></\\·-sdl· 1")11�s>
+ <wsdkrnessaze l\ilJne="G�tPnmeNumbersSoapct1"><fw::;dl:1nP�s.1gP> name space
+ < vsdl.message ní\Ine- GetPrüne1"TumbersSoapOut"></v;scll:1nessage>
11

+ <v. sdl.mess: ge naine="GetPrimeJ:TwnbersHttpGetln"></,\·scll:1nessage>


+ <wsdlnness. ge nnm�="GetPnmel,TwnbersI1ttpGet(JuL"></,""sdl:1nessng
+ < \ sdl.message e>
+ < vsdl.inessage u�e,-"GetPtimel'-Tt.ml: er�HttpPostln »et«. sdl.mess .-
1

+ <wsdl.poi t'I'ype name=T'nmeNumbersSoap


.ge> ></wsdl port'I'ype>
+ <wsdl.porr'Iype name=T'nme NumbersfittpGet' ><Jl\·scll port'I'yp
uame="(}etPruneNL:rnler�Ht:pFostúut 11 e>
><fwsdl:message>
+ <wsdl.p oi r'Iype naine=�nmeNumbersHtrpPost ><lwscll·po1tType>
11

-<wsdltbindinz name=T'nmeNumbers Soap" type=ttns.PrtmeNumbers Soap '>


<soap: bindins transpor t "http //schemas.11,nlsoap. org/soap/http" sryle=tdocumenr'">
-<wsdl.operation nru.ne;:::"GetPrimeNumber-;:;">
<s nap: operatíor �o apActiou=·h ://rrúcrosoft com/websen.nces/GetPrunel�umbers"
-<, sdl.inpu >
<soap: ho<ly use=rhter J."/>
<fr,,.-sdl: • SOAPActio
n
J
input>
- <n sdl: output>
<so ap: bodv use='hteral">
<rwsdl: ourpur> ServiceName
<rwsdl: operanon>
<bs« rU· bindine>
+
+ <<wsdl: hindino-naine;;
, sdl:bindiug name=tPrim-1'T imbersHttpGer" �1>e;:::"tns:Primi:_Num�t
'Pnme1'TumbersHttpPost" ��e1'T mbersHttpPo::-t"></�</,\-�<11·
1
vsdl:bindmg> r
bindins>
- < sdl: ervice nmne:::''Pnrnel- --�--�---;--;:--=---------- PortNam
Tumbers' e
"""'ll•L endpointUrl

+ <wsdl.p orr name=" Pnme.NumbersldttpGet' bindmg bs.J?nmel�umbers.tlttpGet"><fwsdl:po1 t>


11

+ <wsdl.port uame=T'nme.Numbersfittp'Posr" bmding "tns Pnrnel\fumbersHttpPost ></v,sdl:po1t>


11

<rwsdl servir e>


<fwsrll: definitions>
XSD
Es un mecanismo para comprobar la validez de un documento XML, es decir,
definir su estructura: qué elementos, qué tipos de datos, que atributos, en qué
orden, cuántas veces se repiten, etc.

Se compone de las etiquetas:

xmlns:xsi para declarar el espacio de nombres del esquema XSD.

xsi:noNamespaceSchemaLocation para vincular el documento XML con el


esquema local XSD.

xs:element <xs:element name="nombre" type="xs:string" default="TicArte"


minOccurs="1" maxOccurs="unbounded" />

xs:attribute <xs:attribute name="moneda" type="xs:string" default="euro"


use="required" />
?xml veraion•fll.O" l!ñ�oa!ng-"tfl:r-��?�
xs : acherna accrit;·_:ce:-ormDefau.. t="unqual 1 fied" elementFormDefau! r="'lUal1fied" xmlns: x.s=rh-�/J!f'JUl4-WJ .su:·a/..2JJSJ.J.1
cxs : elemenc nare=·1eo.stomers">
<xs:coffiplexType>
<xs:sequence>
<x!J;c1e:menc nan:.e•"CttsCo:uer">
<xs:cc�lexType>
<xs:sequence>
-cxs : e Lemenc name=" Customerid" 1:ype="xs :unsignedint" />
<xs: eLement, nan:e=··1....11stomerName" type=11.x.s: str1ng" />
<xs:elem�nt r.an:.eª"A.t1d.resses">
<x�:complcxTypc>
<xs::,eQ\.ence>
cxs : e Lernent; maxOccu_s=,.unbounded11 na;11.e="Address">
<xs:coir.plexTyp
e>
<x�:seguence>
cxs : �l�e�t name•11AdresType'ID'' t.:ype•"xs: w1sigued.Byte" />
<xs: elen-..ent namiaoz"AdressStreet11 t'.):pe•"xc¡ · gtring'1 /»
<xs:ele.rten� nare="AddressPostalCode" ty¡-e="Jt.S:str1ng" />
-cxs : e.Lement, nar'e="AddressCi ty" t}rpe="xs: str1ng11 />
</ xs : aequeaceo-
</xs:complexType>
</x�:clc�cnc.>
</xs:sequence>
</xs:cornplexiype
>
</xs:elemenc>
</xs::,equence>
</x.,:comp1exType
>
</xs:elerrient>
</x:,:.,e.quec
,..,... ce>
</xs:complexType>
"

.<./.x..s:el.e.....o.. ent>
Namespaces
Los espacios de nombres (namespaces) son uno de
los pilares de XML

Medio para organizar clases dentro de un entorno,


agrupándolas de un modo más lógico y jerárquico

Permiten eliminar las ambigüedades y solucionar los


problemas de homonimia que se producen en los
documentos, ya que en un mismo documento existen
palabras con el mismo nombre, pero con diferentes
significados y espacios semánticos.
SQL NoSQ File Externa
Databas L Storage l
e Documents Servlce
s

Reusable of REST
Set APls

App 1 App2 App3 App4

REST
JSON
"ernpid": "SJ011MS",
"persona I": {
JavaScript Object Notation II
name": 'Srnith Jones",
''gender": "Mate",
Formato de texto ligero para el intercambio de II
age": 28,
datos
'
1
add ress":
Está constituído por dos estructuras: {
"streetaddress": 7 24th Street •
11

Una colección de pares de nombre/valor. En "citv": "Ne\lV York" 1


varios lenguajes esto es conocido como un "state": " Y",
objeto, registro, estructura, diccionario, tabla "postalcode": "10038 1
'

hash, lista de claves o un arreglo asociativo.


J,
Una lista ordenada de valores. En la mayoría 11
profile": {
de los lenguajes, esto se implementa como "d esignatio n Deputy General .. ,
11
: ''

arreglos, vectores, listas o secuencias. "departrnent": "Finance"


}
Métodos estándar HTTP

GET: Para consultar y leer recursos

POST: Para crear recursos

PUT: Para editar recursos

DELETE: Para eliminar recursos.


REST
Representational State Transfer

Tipo de arquitectura de desarrollo web que se apoya


totalmente en el estándar HTTP.

Más simple y convencional que otras alternativas como


SOAP y XML-RPC.

Nunca se debe guardar estado en el servidor, toda la


información que se requiere para mostrar la información
que se solicita debe estar en la consulta por parte del
cliente.
REST
Leonard Richardson, padre de la arquitectura
orientada a recursos, define tres niveles de calidad
para usar REST:

Uso correcto de URIs

Uso correcto de HTTP.

Implementar Hypermedia (conectar mediante


vínculos las aplicaciones clientes con las APIs).
GET POST PUT DELET
E
REST based Service

lnteroperate with service using XML

JAVA PHP ASP


RESTFUL

Hace referencia a un servicio web que implementa


la arquitectura REST.
SAMPLE:
Common operations SOAP RESTfu
on news ftem object app�oach approach

Create news item CreateNewsltem(stñng ld, string ütJe


/news.svc/{id)
) HTIP METHOD: PUT

/n
Update news ítem UpdateNewsltem(stnng id)
ews.svc/ {id} PUT
HTTP METHOD:

/news.svc/Iidl
Get news ltem GelNewsltem(slring id1 slring Utle)
HITP METHOO: GET

1
Get news items GetNewsltems()
/news.svc/
HTTP METHOD: GET

/news.svc/{id
Delete news item DeleteNewsltem(slring id)
} DELETE
HTTP METHOD:
Bibliografía
Bibliografía
http://www.ibm.com/developerworks/ssa/webservices/newto/service.htmlVallecillo, Antonio. El
Futuro de los Servicios Web. Universidad de Málaga

Naranjo, Julio. Arquitectura Basada en Servicios, Microsoft.

Álvarez, José Mauricio. EL Valor de Negocio de Arquitecturas Orientadas a Servicios. Microsoft.

NET Architecture Center: Service Oriented Architecture


http://msdn.microsoft.com/architecture/soa/

Understanding Service-Oriented Architecture


http://msdn.microsoft.com/architecture/soa/default.aspx?pull=/library/en-us/dnmaj/html/aj1soa.asp

Patterns & Practices http://www.microsoft.com/resources/practices

FTPOnline: SPECIAL REPORT: Service-Oriented Architecture


http://www.ftponline.com/special/soa/

Anda mungkin juga menyukai