Está en la página 1de 6

Definicin: Es un acuerdo entre las partes involucradas, donde se define la forma

de trabajo y los elementos. Contiene las especificaciones de las funciones que


ofrece, as como los tipos de datos que va a recibir o enviar y la forma de cmo
van a ser enviados.
IMPORTANCIA: Permiten que los clientes y los servicios trabajen sobre un mismo
entendimiento de operaciones, estructura de datos y estructura de mensajes.
TRMINOS INVOLUCRADOS
Webservice: Son servicios web que compartan informacin, que contienen
funciones de otras aplicaciones en forma independiente de la forma como han sido
creado las aplicaciones, sistema operativo o plataforma donde se ejecutan, incluso
desde cualquier dispositivo.
CLR: Proporciona un entorno en tiempo de ejecucin denominado Common
Language Runtime, que ejecuta el cdigo y proporciona servicios que facilitan el
proceso de desarrollo.
SOAP: Es un protocolo de mensajera XML que forma la base de los servicios
web. Permite proporcionar un mecanismo simple y consistente que ordena a un
aplicativo enviar mensajes XML. Es independiente del protocolo de transporte, ya
que se pueden intercambiar sobre http, jms o protocolos de transporte de e-mail,
el ms utilizado es el http.
WSDL (Web Services Description Language).

WSDL: Es el lenguaje de

descripcin de servicios Web, basado en XML que contiene e intercambia un


conjunto de mensajes SOAP. Contiene programacin neutral y basado en
estndares, que permiten describir interfaces de servicios XML Web Services que
pueden consumirse desde diversas plataformas y lenguajes de programacin.

Describe el contenido de un mensaje, definiendo el lugar de disponibilidad y el uso


de un protocolo de comunicaciones que se requiere para publicar el servicio.
Un archivo WSDL define los elementos requeridos para escribir un programa que
pueda interactuar con un servicio Web.
WCF Windows Communication Foundation: Es un marco de trabajo para crear
aplicaciones orientadas a servicios. Ya que es posible enviar datos como
mensajes asncronos de un extremo de servicio a otro. Aquel extremo del que se
habla puede estar continuamente hospedado por IIS (servidor web Internet
Information Services),
Hospedaje
RELACIN DE CONTRATOS PARA LA EJECUCIN EN UN LENGUAJE
COMN
CLR

CLR

CLR

Service Contract

Data Contract

Message Contract

WSDL

XML Schema

SOAP

Figura 1.- Relacin de contratos.


Un contrato de servicio convierte entre el CLR y Web Services Description
Language (WSDL).
Un contrato de datos convierte entre el CLR Definicin y esquema XML (XSD).

Un contrato mensaje convierte entre el CLR y Simple Object Access Protocol


(SOAP).

CONTRATO DE SERVICIO: Describe lo que hace el servicio, a travs de un


conjunto de operaciones llamadas Operaciones de Servicio.
Un servicio puede contener al menos un contrato de servicios y ms de uno. Es
una interfaz que sirve para implementar un servicio, el cual es publicado a travs
de un WSDL. Es definido por el Common Language Runtime (CLR) a travs de
clases e interfaces. Cuando son utilizadas por el servicio, son convertidos a un
formato estndar y compatible para que el servicio pueda ser usado por diferentes
plataformas.
Cuando hablamos en programacin el contrato es un tipo Clase o Interfaz donde
sus mtodos son operaciones de servicio.
En visual C# la forma de declara es la siguiente:
namespace BDSirat
{
[ServiceContract]
public interface IRegistroBUC
{
[OperationContract]
List< LsContribuyente > ListarDetalleProduct(string NumRuc);
}
}
TIPOS DE SERVICIOS:
Typed: Son de tipos simples. Las Operaciones de servicio son similares a los
mtodos de una clase y pueden aceptar o devolver ambos tipos de datos simples
y complejos. Dependiendo de la lgica del programa.
[OperationContract]
Contribuyente BuscarContribuyente(string ddp_numruc);

Untyped: Que permite trabajar en el nivel de mensaje a los desarrolladores. Las


operaciones de servicio de ste tipo aceptan o devuelven los objetos de mensaje.
Se utiliza este tipo de servicio cuando es necesario trabajar en forma directa con
los mensajes.
[OperationContract]
Message ProcessMessage(Message request);
Typed message: Se encuentran en los tipos Type y Untype. Las operaciones de
servicio de este tipo aceptan o devuelven informacin utilizando las clases de
mensajes personalizados definidos con contratos de mensajes. Se debe utilizar
cuando se requiere las peticiones y respuestas en forma de mensajes y como
datos estructurados.
[OperationContract]
MyResponseMessage ProcessMessage(MyRequestMessage request);

CONTRATO DE DATOS: Define la estructura del tipo de datos que se va utilizar


en el servicio. Las Operaciones de Servicio trabajan con tipos de datos complejos
como estructuras y tipos simples como cadenas, enteros, booleanos, etc. Para
definir estas estructuras se vale de los contrato de datos, que define la forma se
serializar y deserializar los nuevos datos.
DataContract: permite sealar una clase como un contrato de datos.
DataMember: especfica las variables y propiedades del contrato.

[DataContract]
public class LsContribuyente
{

[DataMember]
public string ddp_nombre { get; set; };
[DataMember]
public string ddp_estado { get; set; }
[DataMember]
public string ddp_numreg { get; set; }
[DataMember]
public string ddp_userna { get; set; }
[DataMember]
public string ddp_coddep { get; set; }
[DataMember]
public DateTime ddp_fecact { get; set; }
}

CONTRATO DE MENSAJES: Definen cmo pasar los mensajes de un lado a otro


extremo en una comunicacin. Existe la posibilidad de definir cmo se guardaran
los datos

en el cuerpo y cabecera del mensaje. Se denota con el atributo

[MessageContract], se especifica los detalles de mensaje para los miembros de la


clase mediante el uso de [MessageBody] y [MessageHeader]
[MessageContract]
public sealed class NumResCoactiva
{
[MessageHeader] public string NumRes;
[MessageBody] public string DesRes;
}

CASO PRACTICO
Contrato de Servcios
Se define un servicio con dos operaciones.
Una operacin GetNombre que a partir del RUC devolver el nombre del
contribuyente,
La operacin GetResolNotif que devuelve el nmero de resolucin a partir del
nmero de RUC.
la operacin GetEtapaResolucin, que devuelve la etapa de la resolucin, a partir
del Nmero de Resolucin.
Operacin GetIndTipDeu que devuelve la descripcin de Tipo de Deuda, a partir
del Nmero de Resolucin.

[ServiceContract]
Public interface IContribuyente
{
[OperationContract]
string GetNombre(string NumRuc)
[OperationContract]
string GetResolNotif(string NumRuc)
[OperationContract]
string GetEtapaResolucin(string NumRes)
[OperationContract]
string GetIndTipDeu(string NumRes)
}
Un motor de ejecucin WCF utiliza atributos para generar en forma correcta el
WSDL del servicio.

También podría gustarte