Está en la página 1de 6

Introducción

Un Web Service, o Servicio Web, es un método de comunicación entre dos aparatos


electrónicos en una red. Es una colección de protocolos abiertos y
estándares usados para intercambiar datos entre aplicaciones o sistemas. Las
aplicaciones escritas en varios lenguajes de programación que funcionan en
plataformas diferentes pueden utilizar web services para intercambiar información a
través de una red. La interoperatividad, por ejemplo,
entre Java y Python o Windows y Linux se debe al uso de estándares abiertos.

Como sistema de mensajes se utiliza XML estandarizado. El protocolo más simple


para el intercambio de información entre ordenadores es XML-RPC, que emplea
XML para llevar a cabo RPCs. RPC, Remote Procedure Call, es un protocolo de red
que permite a un programa a ejecutar código en una máquina remota. Los XML-
RPC requests son una combinación entre contenido XML y headers HTTP. La
simpleza de los XML-RPC hizo que el estándar evolucionase a SOAP, uno de los
componentes básicos de los Web Services.

La base de comunicación entre web services es por tanto el lenguaje XML y


el protocolo HTTP.

Historia
Los Servicios Web surgieron ante una necesidad de estandarizar la comunicación
entre distintas plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programación
(PHP,C#,Java,etc.).

Anteriormente se habían realizado intentos de crear estándares, pero fracasaron o


no tuvieron el suficiente éxito, algunos de ellos son DCOM y CORBA, por ser
dependientes de la implementación del vendedor DCOM - Microsoft, y CORBA -
ORB (a pesar que CORBA de múltiples vendedores pueden operar entre si, hay
ciertas limitaciones para aplicaciones de niveles más altos en los cuales se necesite
seguridad o administración de transacciones).

Otro gran problema es que se hacía uso de RPC (Remote Procedure Call) para
realizar la comunicación entre diferentes nodos. Esto, además de presentar ciertos
problemas de seguridad, tiene la desventaja de que su implementación en un
ambiente como es Internet, es casi imposible (muchos firewalls bloquean este tipo
de mensajes, lo que hace prácticamente imposible a dos computadoras conectadas
por Internet comunicarse).
Los Web Services surgieron para finalmente poder lograr la tan esperada
comunicación entre diferentes plataformas. En la actualidad muchos sistemas
legacy están pasando a ser web services.

Es por esto que en 1999 se comenzó a plantear un nuevo estándar, el cual


terminaría utilizando XML, SOAP, WSDL, y UDDI.

Características
Las características principales de los servicios Web, son las siguientes:
 Utilización de estándares de internet. La única forma para que los servicios
Web sean utilizados por la cantidad de sistemas heterogéneos existentes
enBasados en tecnologías de paso de mensajes. La interacción entre el
cliente y el proveedor del servicio es empaquetada en unidades
autodesciptivas denominadas mensajes. Dicha interacción se describe en
función de los mensajes intercambiados.
 Combinan lo mejor de la tecnología de componentes y de la tecnología Web.
Los servicios Web presentan una funcionalidad de caja negra que puede ser
reutilizada sin preocuparse de cómo es implementada y ello proporciona
interfaces bien definidas.

Requisitos de un Web Service:


Interoperabilidad: Un servicio remoto debe permitir su utilización por clientes de
otras plataformas.
Amigabilidad con Internet: La solución debe poder funcionar para soportar
clientes que accedan a los servicios remotos desde internet.
Interfaces fuertemente tipadas: procedimentales. Más aún, los tipos de datos
definidos en el servicio remoto deben poderse corresponder razonablemente bien
con los tipos de datos de la mayoría de los lenguaje de programación.
Posibilidad de aprovechar los estándares de Internet existentes: La
implementación del servicio remoto debería aprovechar estándares de Internet
existentes tanto como sea posible y evitar reinventar soluciones a problema que ya
se han resuelto.
Soporte para cualquier lenguaje: Un cliente debería ser capaz de implementar un
nuevo servicio Web existente independientemente del lenguaje de programación en
el que se halla escrito el cliente.
Tecnologías de los servicios web

 XML (eXtensible Markup Language)

Es un lenguaje de etiquetas o marcas de texto (similar al HTML) que permite la


organización jerárquica de información. Al igual que su predecesor HTML, está
basado en SGML, utilizado para estructurar grandes documentos. Sin embargo, es
importante destacar que existen diferencias entre HTML y XML. Tal vez una de las
más importantes sé que, a diferencia de HTML, XML es un metalenguaje y es
extensible. Esto nos permite construir estructuras de datos de acuerdo al dominio
de la aplicación particular en la cual estemos trabajando.

XML no es un lenguaje de programación y, por lo tanto, no contiene estructuras


control es un lenguaje de descripción de información cuya principal utilización,
aunque no es la única, es el intercambio de información estructurada a través de
Internet.

Cada una de estas unidades de información, encerradas entre etiquetas, se


denomina elemento. Los elementos pueden ser agrupados bajo otros elementos,
formando así una estructura jerárquica de la información. A su vez, cada uno de los
elementos puede contener atributos, pudiendo adquirir valores.

 SOAP

Por sus siglas en inglés Simple Object Acces Protocol es un protocolo de


comunicación basado en XML, que se utiliza para el intercambio de información
estructurada entre aplicaciones que define mecanismos para el envío y recepción
de mensajes a través de Internet. Ahora bien, SOAP no presenta restricciones
respecto del paradigma de programación a utilizar ni el patrón de comunicación de
las aplicaciones, simplemente proporciona el mecanismo para que dos aplicaciones
puedan enviarse mensajes através de la Web usando XML.

Un mensaje SOAP es básicamente una trasmisión en un sentido entro dos nodos


un emisor SOAP y un receptor SOAP. Además, de los mensajes de SOAP carecen
de estado, es decir, un emisor no puede asegurar la recepción de un mensaje
eviado. Cómo puede apreciarse, esté protocolo delega las aplicaciones de la
contrucción de interacciones más complejas.

 WSDL

Por sus siglas en inglés Web Services Description Language es un lenguaje


propuesto por el W3C para la descripción de servicios Web y permite definir la
interfaz del servicio en formato XML. WSDL permite describir la ubicación e interfaz
de un servicio web facilitando, de ese modo, el acceso al servicio por parte de los
consumidores.
Un documento WSDL puede verse cómo un contrato sobre la interfaz del servicio
escrito en XML.

Una de las ventajas de usar WSDL es que permite separar la descripción abstracta
de una función ofrecida por un servicio, de los detalles concretos de implementación
del mismo (como el enlace de protocolo de red, o el formato de mensaje concreto.

 UDDI
UDDI son las siglas del catálogo de negocios de Internet denominado Universal
Description, Discovery and Integration. El registro en el catálogo se hace en XML.
UDDI es una iniciativa industrial abierta entroncada en el contexto de los servicios
Web. El registro de un negocio en UDDI tiene tres partes:
• Páginas blancas - dirección, contacto y otros identificadores conocidos.
• Páginas amarillas - categorización industrial basada en taxonomías.
• Páginas verdes - información técnica sobre los servicios que aportan las propias
empresas. UDDI es uno de los estándares básicos de los servicios Web cuyo
objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL,
en los que se describen los requisitos del protocolo y los formatos del mensaje
solicitado para interactuar con los servicios Web del catálogo de registro

 REST
La Transferencia de Estado Representacional o Representational State Transfer,
REST, es una técnica de arquitectura software para sistemas hipermedia
distribuidos como la World Wide Web. El término se originó en el año 2000, en una
tesis doctoral sobre la web escrita por Roy Fielding Si bien el término REST se
refería originalmente a un conjunto de principios de arquitectura, en la actualidad se
usa en el sentido más amplio para describir cualquier interfaz web simple que utiliza
XML y HTTP, sin las abstracciones adicionales de los protocolos basados en
patrones de intercambio de mensajes como el protocolo de servicios web SOAP. Es
posible diseñar sistemas de servicios web de acuerdo con el estilo arquitectural
REST de Fielding y también es posible diseñar interfaces XMLHTTP de acuerdo
con el estilo de llamada a procedimiento remoto, pero sin usar SOAP. REST afirma
que la web ha disfrutado de escalabilidad como resultado de una serie de diseños
fundamentales clave:
• Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la
información necesaria para comprender la petición. Como resultado, ni el cliente ni
el servidor necesitan recordar ningún estado de las comunicaciones entre
mensajes. Sin embargo, en la práctica, muchas aplicaciones basadas en HTTP
utilizan cookies y otros mecanismos para mantener el estado de la sesión (algunas
de estas prácticas, como la reescritura de URLs, no son permitidas por REST)
• Un conjunto de operaciones bien definidas que se aplican a todos los recursos de
información: HTTP en sí define un conjunto pequeño de operaciones, las más
importantes son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se
equiparán a las operaciones CRUD que se requieren para la persistencia de datos,
aunque POST no encaja exactamente en este esquema.
• Una sintaxis universal para identificar los recursos. En un sistema REST, cada
recurso es direccionable únicamente a través de su URI.
• El uso de hipermedios, tanto para la información de la aplicación como para las
transiciones de estado de la aplicación: la representación de este estado en un
sistema REST son típicamente HTML o XML. Como resultado de esto, es posible
navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin
requerir el uso de registros u otra infraestructura adicional. Un concepto importante
en REST es la existencia de recursos, que pueden ser accedidos utilizando un
identificador global. Para manipular estos recursos, los componentes de la red se
comunican a través de una interfaz estándar, HTTP, e intercambian
representaciones de estos recursos
La petición puede ser transmitida por cualquier número de conectores, pero cada
uno lo hace sin "ver más allá" de su propia petición, esto se conoce como separación
en capas. Así, una aplicación puede interactuar con un recurso conociendo el
identificador del recurso y la acción requerida, no necesitando conocer si existen
cachés, proxys, cortafuegos, túneles o cualquier otra cosa entre ella y el servidor
que guarda la información. La aplicación, sin embargo, debe comprender el formato
de la información devuelta, que es por lo general un documento HTML o XML,
aunque también puede ser una imagen o cualquier otro contenido.

Ventajas de los servicios web:


· Aportan interoperabilidad entre aplicaciones de software independientemente de
sus propiedades o de las plataformas sobre las que se instalen.
· Los servicios Web fomentan los estándares y protocolos basados en texto, que
hacen más fácil acceder a su contenido y entender su funcionamiento.
· Permiten que servicios y software de diferentes compañías ubicadas en diferentes
lugares geográficos puedan ser combinados fácilmente para proveer servicios
integrados.
· Basado en estándares
Desventajas de los servicios web:
· Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall
cuyas reglas tratan de bloquear
· La comunicación entre programas.
· Existe poca información de servicios web para algunos lenguajes de programación
· No es la solución a todos los problemas
· Relativamente nuevo, algunos estándares no definidos
· Dependencia de la disponibilidad de servidores y comunicaciones

Conclusión:
Como se dio a conocer en este trabajo los servicios web es la comunicación entre
dos maquinas dentro de la red para poder compartir archivos, aplicaciones entre
otras cosas mas y surgió por la necesidad de que hubiera una comunicación entre
diferentes plataformas, los servicios web utilizan en todas sus plataformas el empleo
del protocolo de transferencia de datos HTTP utilizado por todos los navegadores
Web y XML, y algunos beneficios de los servicios web es que el cliente puede
implementar cualquier lenguaje de programación en él y para concluir los servicios
web ha beneficiado a la humanidad en cuestiones laborales así como las empresas.