Web Services 2.0
Introducción
Las aplicaciones web actuales ya no son suficientes. El modelo actual de negocio electrónico no facilita la integración de las aplicaciones de Internet con el resto de software de las empresas. Si las compañías quieren extraer el máximo beneficio de Internet, los sitios web deben evolucionar. Este es el contexto en el que surgen los web services.
Por eso es que en los últimos tiempos ha surgido con mucha fuerza el concepto de
web
services
, incluso afirmándose que el mismo cambiaría la forma de programar
las aplicaciones orientadas a Internet hacia una arquitectura orientada a servicios.
Podemos decir que un web service es una aplicación que puede ser descripta, publicada,
localizada e invocada a través de una red, generalmente Internet. Combinan los mejores aspectos
del desarrollo basado en componentes y la Web.
Al igual que los componentes, los web services son funcionalidades que se encuentran dentro de
una caja negra, que pueden ser reutilizados sin preocuparse de cómo fueron implementados. A
diferencia de la actual tecnología de componentes, no son accedidos por medio de protocolos
específicos del modelo de objetos como ser RMI, DCOM o IIOP; sino que son accedidos utilizando
protocolos web como ser HTTP y XML.
La interface de los web services está definida en términos de los mensajes que el mismo acepta y
retorna, por lo cual los consumidores de los web services pueden ser implementados en cualquier
plataforma y en cualquier lenguaje de programación, solo tiene que poder crear y consumir los
mensajes definidos por la interface de los web services.
El Modelo Web Services
La arquitectura básica del modelo de web services describe a un consumidor, un proveedor
(Implementador) y ocasionalmente un corredor (bróker UDDI). Relacionados con estos agentes están
las operaciones de publicar, encontrar y enlazar.
La idea básica consiste en que un proveedor publica su servicios en un corredor, luego un
consumidor se conecta el corredor para buscar los servicios deseados y una vez que lo hace se
realiza un lazo entre el consumidor y el proveedor ó implementador.
Cada entidad puede jugar alguno o todos los roles.
Por todo lo anterior hay ciertos requerimientos a la hora de desarrollar o consumir un web services:
- Una forma estándar de representar los datos.
- Un formato común y extensible de mensajes
- Un lenguaje común y extensible para describir los servicios.
- Una forma de descubrir los servicios en Internet.
XML es la opción obvia para este requerimiento.
SOAP es el elegido en este caso; SOAP es un protocolo liviano para el intercambio de información. Más adelante en este documento lo veremos con más detalle.
La opción en este caso es WSDL. Es un lenguaje basado en XML desarrollado en forma conjunta por IBM y Microsoft. Lo veremos con más detalle más adelante en este documento.
UDDI se utiliza en este caso; el mismo especifica un mecanismo para publicar y localizar los servicios por parte de los proveedores y consumidores respectivamente. Se verá con más detalle más adelante en este documento.
Descripción del Servicio Web para Visualizar Acuses por Oca Delivery 2.0
La descripción del Servicio de Oca está disponible a través de los métodos del WebServices SigmaService y están publicados en la URL :
http://www1.oca.com.ar/SigmaWebService/OCASigmaService.asmxEl Método Público de este Web Service que utilizarían en principio es :
- GetURLAcuse
- ClienteLogueo = Es la sigla del cliente en OCA
- Usuario = código de usuario del cliente (UserCLI por ej.)
- Password = contraseña del usuario del cliente (XXXX por ej.)
- NumeroPieza = Es el nro. De pieza de seguimiento o Carta de Rendición que se quiere visualizar la imagen
- Lado = Es el lado del Acuse que se quiere visualizar. Los valores posibles son “F” (Frente) ó “D” (Dorso).
Este método se utiliza para poder visualizar las imágenes de los Acuses Digitalizados de las Piezas tramitadas y entregadas por OCA. Donde se pueden visualizar tanto piezas como cartas de rendición.
Tiene 5 parámetros: clienteLogueo, usuario, password, numeroPieza, Lado a Visualizar.
Donde los 3 primeros parámetros son los mismos utilizados por el otro Web Services para la consulta de piezas.
En caso de encontrar la pieza Devuelve la URL con el PDF correspondiente a la imagen solicitada. Por ej.
http://www1.oca.com.ar/SigmaWebService/Images/Acuses/lvc0qjj.gto.pdf
El manejo de errores les devolverá a los errores como una Excepción directamente desde el Web Services, es decir si su módulo donde van a implementar esto está hecho en Java o .Net van a poder atrapar dicha excepción directamente, que te paso a explicar con más detalle:
- En Caso de algún error tanto funcional, por ej. La Pieza no Existe o que la imagen no está disponible como técnico por ej. La conexión no está disponible, la URL vendrá en blanco y la excepción podrá ser atrapada utilizando la Excepción "SoapException", cuya declaración se debe hacer incorporando en su proyecto el NameSpaces "System.Web.Services.Protocols".
Un código de ejemplo sería :
AcusesService.Service acuseService = new AcusesService.Service(); String url = ""; try { url = acuseService.GetURLAcuse(txtcliente.Text, txtusuario.Text, txtpass.Text, txtnropieza.Text, txtlado.Text); } catch (SoapException soapEx) // Excepción disparada desde el Webservice { if(SoapException.ClientFaultCode.Equals(soapEx.Code)) { // Excepción causada por el cliente } if(SoapException.ServerFaultCode.Equals(soapEx.Code)) { // Excepción causada por el servidor } }
- Donde se puede apreciar claramente que se puede saber si la excepción es causada del lado cliente o del lado servidor, es decir que con sólo mostrar la excepción que se devuelve en éste ejemplo en la variable "soapEx" es más que suficiente.
Para cuando la pieza exista más de una coincidencia con el mismo nro. De Pieza (no debería pasar en vuestro caso), devolverá "Existe más de una Pieza con número XXXX".
Se adjunta una imagen de un Acuse recuperado desde este Web Service.
Credenciales
Para obtener las credenciales y acceder a los webservices debes ponerte en contacto con nuestra area de sistemas. Lo podes solicitar en la siguiente casilla de correo: integraciones@oca.com.ar