servicios web

Upload: eliseo-castro

Post on 05-Oct-2015

225 views

Category:

Documents


0 download

DESCRIPTION

Servicios Web con .Net

TRANSCRIPT

SERVICIOS WEB

Esperanza Mndez Rodrguez

N.I.F: 52.616.465

INDICE.

1.- INTRODUCCIN.

2.- SERVICIOS WEB XML.

2.1.- CREAR SERVICIOS WEB.

2.2.- LLAMAR A UN SERVICIO WEB XML.

2.3.- COMUNICACIN CLIENTE.

2.4.- ASPECTOS RELEVANTES A TENER EN CUENTA A LA HORA DE CREAR

SERVICIOS WEB XML.

2.5.- EJEMPLO CREACIN/EJECUCIN SERVICIO WEB XML.

2.6.- EJEMPLO ACCESO SERVICO WEB XML A PARTIR DE UNA APLICACION.

3.- .NET REMOTO.

3.1.- CONSIDERACIONES GENERALES.

3.1.1.- CANALES.

3.1.2.- SUMIDEROS.

3.1.3.- PUERTOS.

3.1.4.- MENSAJES REMOTOS.

3.1.5.- CONTEXTO DE LLAMADA.

3.1.6.- SOAP EN REMOTING.

3.2.- SERVIDORES REMOTING.

3.3.- APLICACIONES HOST.

3.4.- CARGAR UNA CONFIGURACIN.

3.5.- REGISTRO OBJETO SERVIDOR.

3.6.- VERSIONADO.

3.7.- CLIENTES REMOTING.

SERVICIOS WEB

1.- INTRODUCCIN.

La gran repercusin e impacto que ha causado INTERNET en la sociedad ha originado un profundo cambio en el entorno de las aplicaciones informticas.

Una de las mejoras que aporta la plataforma VISUAL STUDIO.NET es la introduccin de los Servicios Web, que nos permite desarrollar proyectos de aplicaciones mas atractivas y modernas.

Principales ventajas que nos ofrece:

Los servicios Web, pueden soportar el desarrollo de aplicaciones para plataformas que no son Windows, incluso no tienen porqu usar Visual Studio.Net.

Hace posible que la comunicacin sea sencilla entre los componentes individuales de una aplicacin ubicada en diferentes mquinas distribuidas a lo largo del mundo.

Los servicios web se comunican utilizando SOAP, (Simple Object Access Protocol), un protocolo fuente abierto que cualquier aplicacin puede utilizar, cuya herencia hace que sus servicios estn disponibles para cualquier lenguaje de desarrollo que se ejecute en cualquier sistema operativo.

La reutilizacin del cdigo toma un nuevo significado porque puede reutilizarse el cdigo a partir de aplicaciones localizadas en cualquier sitio del mundo y a lo largo de mltiples entornos de desarrollo.

Ubicacin de los Servicios Web dentro de la arquitectura .NET.

Arquitectura Servicios Web:

Cortafuegos

Ejemplo: ilustracin grfica de los servicios web

Web Services Process Integration: La integracin del proceso por las organizaciones con los Servicios Web: proceso global que incluye procesos interiores dentro de las dos organizaciones, as como la coreografa de intercambio de mensajes entre las dos organizaciones.

La compaa A podra ser un comprador, el proceso interior podra involucrar aprobacin y una compra en el proceso. La compaa B como un vendedor tambin tendr su proceso de cumplimiento de ventas. Los procesos interiores involucran otro tipo de procesos como aplicaciones de contabilidad, recursos, organizacin empresa...

Los dos procesos para su comunicacin utilizan SOAP, protocolo de comunicaciones que publica un mensaje para transportarlo encapsulando un mensaje XML en lo que se conoce como una envolvente y enva este paquete a travs de Internet utilizando http, que es protocolo de transporte primario de la Web.

Como se puede apreciar la Web es la plataforma ideal para descubrir compaeros comerciales y proporcionar a la vez una fcil integracin.

Ejemplo ilustrativo de un revendedor en lnea.

Dentro de la plataforma .NET cabe la posibilidad de utilizar dos tipos diferentes de servicios WEB, dependiendo de las ventajas/incovenientes asociadas optaremos por uno u otro.

- Servicios Web XML.

- .NET remoto.

Principales diferencias:

Ambos nos permiten desarrollar Servicios Web pero teniendo en cuenta que un Servicio Web XML debe estar ubicado en un servidor Web, mientras que un objeto .NET remoto no requiere un servidor especial para ubicarlo, solo requiere que el CLR est instalado en el servidor.

Los servicios Web XML operan en el mundo sin conexin, y sin estado de Internet. Cada peticin realizada a un Servicio Web XML crea una peticin de ese servicio en el servicio Web, los datos no se pueden compartir por mltiples visitantes a un servicio simple Web XML sin el uso de una base de datos principal o algn formulario de datos que permanezca al pasar los datos. Por otra parte, un objeto Remoting se puede hacer para mltiples clientes y compartir datos entre los que se llaman sin infraestructura principal adicional.

2.- SERVICIOS WEB XML.

Principales caractersticas:

Los servicios Web XML se comunican usando http que es un protocolo implementado y reconocido universalmente, de esta manera podra llamar al cdigo de cualquiera independientemente si es un objeto COM, Java...

Arquitectura en n-capas interactuando entre s, (capa de trabajo separada de la capa de presentacin) de esta manera nos permite reutilizar las funciones de trabajo en otras partes de la aplicacin, as como tambin conseguimos que el resto de usuarios tengan acceso a nuestros servicios y no que nuestro cdigo este disponible para cualquier programador de cualquier parte del mundo.

2.1.- CREAR SERVICIO WEB.

Para crear un servicio Web XML utilizar el atributo . Para hacer una funcin externamente visible a travs de su servicio en su lnea de declaracin poner el atributo . A parte de este detalle sus funciones son y actan de la misma forma. Con este atributo estamos indicando que la funcin est disponible para cualquier usuario del servicio. No necesariamente todas las funciones deben llevar este atributo, se pueden implementar funciones solo para nuestro uso personal.

2.2.- LLAMAR A UN SERVICIO WEB XML.

Utilizando Visual Studio .NET las llamadas a un servicio Web se realizan de forma muy sencilla, para ello tan solo necesitamos la referencia a un Servicio Web XML remoto, esta referencia se utiliza igual que cualquier otra.

Los pasos a seguir para llamar a un servicio web XML son los siguientes:

El programador aade un referencia al servicio Web XML al proyecto.

Visual Studio.Net contacta con el servidor que aloja el servicio para obtener una descripcin de l.

En tiempo de ejecucin , la aplicacin hace una llamada al servicio Web XML.

.NET crea una clase proxy para representar el servicio, formatea un mensaje y le enva su peticin al servicio Web XML.

La clase proxy recibe una respuesta del servicio y le quita el formato del mensaje.

La clase proxy proporciona la respuesta del servicio Web XML al cdigo que lo llam.

Cuando se aade una referencia Visual Studio .NET aprende lo ms posible de nuestro servicio, esta informacin Visual Studio .NET la recoge a travs de un proceso llamado discovery que permite detectar automticamente los servicios web instalados y proporciona a los visitantes una lista de los instalados. Estos servicio son identificados por llevar la extensin .vsdisco.

Nota:

Hay una iniciativa empresarial llamada Universal Description, Discovery End Integratio (UDDI) para proporcionar una base de datos con todos los Servicios Web disponibles en todo el mundo.

Representacin grfica comunicacin con servicios web XML

2.3.- COMUNICACIN CLIENTES.

Los servicios Web XML se comunican con sus clientes mediante el uso de mensajes empleando el protocolo http. Soap es el protocolo de comunicaciones mas robusto cuando se trabaja con servicios Web. La clase proxy muestra que protocolos soporta un servicio Web XML, y formatea sus mensajes usando el mejor posible de los protocolos que soporte. Tambin se pueden utilizar los mtodos get y post para el intercambio de informacin, pero son mucho menos completos.

Una vez localizado el servicio web es fundamental conocer los detalles de los interfaces que soporta el servicio, para ello los servicios web XML tienen una manera de autodescribirse en detalle, esta forma es WSDL.

Un documento WSDL describe las interfaces que soporta un servicio y los parmetros para un cliente. Visual Studio .NET usa esta informacin para generar una clase proxy para el servicio web XML, pero los lenguajes de desarrollo que no son de Visual Studio tambin pueden usar la descripcin WSDL para entender el servicio.

Un documento WSDL tambin describe los protocolos que soporta un servicio y cuales pueden soportar SOAP, GET y POST. Para cada protocolo existente hay una seccin separada que describe las interfaces del servicio, y los parmetros personalizados para dicho servicio.

Aunque es el protocolo SOAP el que hace posible comunicarse para todo el mundo con su servicio web, XML hace que la informacin que proporciona su servicio sea entendible universalmente.

2.4.- ASPECTOS RELEVANTES A TENER EN CUENTA A LA HORA CREAR SERVICIO WEB XML.

La no disponibilidad de los servicios web XML a la hora de programar nuestro servicio es vital que tengamos en cuenta este factor y tomemos las medidas oportunas para que el servicio llegue a buen fn.

Tiempo de acceso a los servicios Web estos tiempos no deberan ser elevados de lo contrario restara relevancia al servicio, en informtica los tiempos de respuesta son de vital relevancia. Hoy en da esto se intenta paliar con los accesos de banda ancha cada vez mas frecuentes. Otra alternativa sera intentar el alojamiento de una copia local de este servicio en la red para que sea ms rpido.

Los proyectos que no son Web no interaccionan con el servidor web por ello solo puedo aadir formularios Web a los tipos de proyectos .NET, stos son las aplicaciones Web ASP.NET y los servicios Web XML, y ASP.NET.

2.5.- EJEMPLO CREACIN /EJECUCIN SERVICIO WEB XML.

Ejemplo de los pasos a realizar a la hora de crear y ejecutar un servicio Web XML.

1.- Crear un nuevo proyecto de servicio Web ASP .NET, (usaremos Visual Basic como lenguaje de programacin). Visual Studio .NET se comunicar con el servidor WEB seleccionado para crear un directorio en el servidor para dicho proyecto.

2.- Pinchamos sobre la superficie de los servicios WEB XML, y en la ventana propiedades cambiamos el nombre del servicio, (propiedad name). Lo llamaremos libro en vez del nombre asignado Service1. Nuestro fichero principal se llamar libro.asmx.

3.- Con el botn derecho del ratn hacemos clic sobre la superficie de la ventana de diseo, y seleccionamos la opcin View Code para acceder al fichero fuente del servicio. Fijarse en la lnea Inherits que hay justamente debajo de la lnea de la declaracin de la clase, dicha lnea nos muestra que nuestra clase hereda de la clase System.Web.Services.WebService.

4.- Aadir las siguientes funciones a la clase libro.

Public Class Libro

Inherits System.Web.Services.WebService

Public Function NombreLibro() as string

NombreLibro = Visual Studio .NET

End function

Public Function CompraLibro(ByVal Quantity as integer) as double

Dim Costetotal as double

Costetotal = 49.99 * CDbl(cantidad)

Costetotal = Costetotal + CalcularCoste(CosteTotal)

Envo y gestin de Coste Total

CosteTotal = Costetotal + 5.99

CompraLibro = Format(CosteTotal, ###,##0)

End Function

Public Function CalcularCoste(ByVal CosteTotal as double) as double

Funcin interna para calcular el coste

CalcularCoste = CosteTotal * 0.04

End Function

End Class

5.- Fijarse que solo dos de las funciones creadas tienen las etiquetas , y que la funcin CompraLibro requiere una entrada para hacer su trabajo.

6.- Guardar el proyecto seleccionando la opcin Archivo>Guardar Todo.

7.- Para ejecutar presionar F5.

8.- Se abrir el navegador Web y ver la ruta URL hacia nuestro servicio en la caja de direcciones. En la parte de arriba de la pgina se ver el nombre de la clase Libro, y debajo se encuentran las dos funciones hechas pblicas mediante la etiqueta , estas funciones son NombreLibro y CompraLibro. Tambin se ver un hiperenlace que muestra la descripcin del servicio informacin WSDL.

9.- Hacer clic en el hiperenlace CompraLibro. La siguiente pgina Web que se ve describe la funcin CompraLibro, del servicio Web XML libroService.

El botn que est en la mitad de la pgina, muestra a los programadores potenciales cmo se formatean las peticiones y respuestas SOAP, GET y POST cuando se usa esta interfaz. Esta informacin es muy til, sino est utilizando Visual Studio .NET para acceder a los servicios Web XML.

La mitad superior de esta pgina le permite comprobar la funcin CompraLibro, proporcionando un TextBox en el que puede introducir el parmetro cantidad. Puede introducir el nmero 2 dentro de este TextBox y hacer clic en Invoke.

10.- Se abre una nueva ventana mostrando el resultado del servicio basado en el parmetro de entrada.

2.6.- EJEMPLO ACCESO SERVICIO WEB XML A PARTIR DE UNA APLICACIN.

El servicio LibroService debe alojarse en un servidor Web disponible, para que la aplicacin de Windows que va a crear pueda acceder a l.

1.- Crear una nueva aplicacin para Windows llamada LibroOrders.

2.- Desde el panel de formularios windows de la ventana de herramientas arrastrar un control TextBox hasta el formulario de windows. Aadir un control Buttn debajo del control TextBox, y debajo del Button aadir un control label. Configurar la propiedad Text para que est en blanco.

3.- En la ventana Solution Explorer hacer clic con el botn derecho del ratn sobre el nombre del proyecto libroOrders y seleccionar la opcin aadir referencia web, de esta manera creamos una refrencia a LibroService. Una vez seleccionada la opcin se abrir una ventana llamada Add web refrence, esta ventana es muy similar a un navegador Web, ya que tiene una caja de direcciones y algunos de los botones de los navegadores como Refresh y Back.. Hay dos paneles debajo de la caja de direcciones. El panel de la derecha, llamado referencias disponibles est en blanco por el momento, mientras que el panel de la izquierda tendr enlaces al UDDI de Microsoft para poder buscar servicios Web Internet.

4.- En el cuadro del texto de direcciones , escribir la URL que apunta al servicio Web LibroService. Si el servicio estuviera alojado en el mismo ordenador sera:

http://localhost/LibroService/libro.asmx5.- Despus de escribir la URL del servicio Web XML presionar intro y Visual Studio .NET contactar con el servicio Web XML. En el panel de la izquierda, se podr ver una pgina web que lista las funciones asociadas con ese servicio. El panel de la derecha, proporciona enlaces a la informacin WSDL y documentacin del servicio localizado. Hacer clic en el botn, aadir referencias que est en el fondo de esta ventana. Podr ver una carpeta de referencias Web debajo del proyecto LibroOrder en la ventana Explorador de soluciones. Si expande esta carpeta, ver que hay una referencia al servidor Web en el que est alojado el servicio LibroService.

6.- En el formulario windows, haga doble clic sobre el botn para acceder al cdigo del evento clic. Aadir el siguiente cdigo.

Private Sub Boton1_Clic(ByVal sender as System.Object, ByVal e _

As System.EventArgs) Handles Boton1.Click

If Not (IsNumeric(TextBox1.text)) Then

MsgBox(ERROR! Introduzca un Nmero)

Exit Sub

End if

Dim ObtenerCoste As New localhost.Libro()

Dim ContarLibro As integer

Dim PrecioFinal As double

ContarLibro = Cint(TextBox1.Text)

PrecioFinal = GetCost.Compralibro(ContarLibro)

Label1.Text = Precio = & Format(PrecioFinal, $###,##0)

End Sub

7.- Al tener ya la referencia al servidor web, usar el servicio es igual que utilizar la referencia a otra clase.

8.- Guardar el proyecto y ejecutarlo presionando F5. Al abrirse el formulario Web introducimos los datos, presionamos el botn y los resultados ser visualizados.

3.- .NET REMOTO.

Para la utilizacin de servicios Web en .Net remoto tendremos que tener en cuenta una serie de factores, que se explicarn en los apartados posteriores.

3.1.- CONSIDERACIONES GENERALES

CANALES

Al conectarse un objeto cliente con un objeto servidor se crea un canal de comunicaciones entre ellos. En .NET remoto se tiene la posibilidad de crear y utilizar dos tipos de canales diferentes para su comunicacin.

- Canal TCP.

- Canal HTTP.

CANAL TCP

Enva los datos entre los objetos cliente y servidor usando un formato binario propio. Los objetos finales en un canal TCP deben permitir entender este mensaje en formato binario, lo que significa que solo debera pensar en utilizar en canal TCP para comunicarse entre un objeto . NET y otro.

En el canal TCP no se pueden encriptar las comunicaciones y con lo cual la seguridad de la informacin es vulnerable.

Es bidireccional, sus objetos pueden enviar y recibir datos a travs de este canal.

El canal TCP es el canal Remoting ms rpido y el ms eficiente que se puede utilizar.

CANAL HTTP

Los objetos cliente y servidor involucrados en un escenario Remoting que utilicen http no tienen porque ser creados en .NET, debido a que SOAP (se basa en tecnologa XML , el mensaje y su entorno cerrado se autodescriben y pueden leerse y crearse por otra aplicacin).

Utiliza el puerto 80 de los ordenadores que es el mismo puerto usado para las peticiones y respuestas del navegador estndar Web.

SOAP es una herramienta que permite a las aplicaciones enviar sus llamadas objeto a objeto a travs de internet usando el protocolo de transmisin http, por ello sus llamadas pueden pasar a travs de firewalls, (cortafuegos) que proporcionan una mayor seguridad frente al canal TCP.

SUMIDEROS

Un sumidero maneja el formato del mensaje preparndolo para su transmisin, mientras otro sumidero maneja la tarea de transmitir ese mensaje con otro formato a travs de la red. En recepcin, otro sumidero recibe el mensaje de la red y lo pasa a otro sumidero, que decodifica el formato del mensaje y entrega el mensaje original al dominio de la aplicacin receptora.

PUERTOS

Las comunicaciones entran o salen de un ordenador a travs de un puerto. El canal http, usa el puerto 80 para enviar sus peticiones mezcladas con el trfico Web.

Nota:

En Windows 2000, Windows NT XP para ver la configuracin del puerto de su mquina utilice el programa Bloc de notas para mirar el archivo Services localizado en C:\Windows\System32\Drivers. Este archivo indica los puertos que tiene definidos el ordenador y cmo se estn utilizando y qu protocolo de comunicaciones utilizan.

El objeto cliente registrar un canal en la mquina que llama y el objeto servidor, tendr un canal registrado para escuchar las peticiones de los clientes. Dado que un objeto servidor, puede tener configurados muchos canales que escuchen, el desarrollador del objeto cliente, debe conocer qu tipo de canal se est usando para configurar y registrar el canal del cliente apropiadamente.

MENSAJES REMOTOS

La interfaz Message en la plataforma .NET est bajo el mbito System.runtime.remoting.Messaging. El mensaje es la peticin del cliente y sus parmetros asociados. El mensaje se enva desde un objeto a otro a travs de un canal, y el formato del mensaje se modifica por uno mas sumideros.

Truco:

A la hora de disear las clases bases de una aplicacin para usar en herencia, si la clase base que se disea se hereda de la clase base System.MarshalByRefObject, cualquier clase derivada de la clase que se est diseando tambin utilizar MarshalByRefObject.

Lo ms eficiente sera pasar los datos Byref (por referencia) y no ByVal (por valor), esto originara un costo excesivo puesto que hace una copia en el servidor, mientras que byRef pasa un punteros sin embargo ByVal proporciona una proteccin de los valores originales.

El sumidero formateador se responsabiliza de publicar el mensaje del objeto cliente y aplica cualquier formato especfico del canal para ese mensaje.

Si los objetos estn usando un canal TCP para comunicarse, el formateador utiliza la clase Binary.BinaryFormatter del mbito System.Runtime.Serialization.Formatters. Si est utilizando el canal http con sus objetos, el formateador se deriva de la clase Soap.SoapFormatter.

Nota:

Se necesita aadir una referencia de la clase base System.Runtime.Serialization.Formatters.Soap para referirse a Soap.SoapFormatter en el cdigo fuente.

La llamada a una funcin remota se hace a travs de una versin local de la funcin que se conoce como Proxy. El proxy reencamina esa llamada a la funcin, al objeto remoto y a continuacin recibe la respuesta del objeto y presenta los resultados en el llamador.

En remoting hay dos niveles de Proxy:

Transparent Proxy.

Real Proxy.

Transparent Proxy: proxy de nivel superior que el objeto cliente llamante trata, y acta como intermediario para la clase Realproxy. Maneja toda la interaccin del objeto cliente, y el empaquetamiento de los datos bsicos.

Real Proxy: maneja el grueso del trabajo, incluyendo las comunicaciones con el objeto servidor.

Clases proxy en una sesin remota cliente-servidor.

CONTEXTO DE LLAMADA

El contexto de llamada es un paquete de informacin que se enva con el mensaje objeto para datos de informacin. Remoting crea un objeto llamado Callcontext para dar al cdigo acceso a esos datos. Los dos mtodos principales de este objeto son Setdata y Getdata que proporcionan acceso de escritura a/o lectura desde los datos almacenados en Callcontext.

El objeto Callcontext se puede encontrar en el mbito System.Runtime.Remoting.Messaging.

SOAP EN REMOTING

Con Soap se puede encapsular un mensaje una llamada a un objeto en un envoltorio basado en XML, que permite enviar el mensaje usando el protocolo http.

Una ventaja primaria del uso de realizar mensajes SOAP a traves de internet utilizando http es que usa un formato de mensajes y un protocolo de red aceptados universalmente y ampliamente comprensibles.

Soap es autodescriptivo, as que el receptor del mensaje no tiene que tener conocimiento previo de ese formato de mensaje, ni haber realizado ningn acuerdo uso de protocolo de comunicaciones propios para recibir los mensajes.

3.2.- SERVIDORES REMOTING

Un objeto servidor es ms difcil de crear que un objeto cliente. Un objeto servidor no es parte de la aplicacin del objeto cliente, incluso aunque las llamadas del objeto cliente al objeto servidor sean para ayuda.

Consideraciones a tener en cuenta a la hora de crear un objeto servidor remoting:

Si es un objeto remoto debera estar disponible a todo el mundo, de lo contrario no puede ser remoto.

Que tipo de activacin debera usar.

Ser el servidor con estado sin estado.

Cual es el instante de vida del objeto servidor.

Debera usar el canal http el canal TCP.

Tipo de formateador a utilizar.

Es la configuracin del objeto servidor reutilizable, y si lo es debera situarla en un archivo de configuracin externo.

Debera administrar la versin del objeto servidor.

3.3.- APLICACIONES HOST.

Los objetos servidor se crearn normalmente en proyectos de la clase library que no son capaces de estar activos y escuchar un puerto en una mquina host por s mismos.

Para un objeto servidor .NET se necesita crear una aplicacin que acte como el oyente y el agente para ese objeto servidor. Esta aplicacin se cargar en el servidor host, y se quedar activa para mostrar los canales registrados. Si la aplicacin host del objeto servidor se cierra, el objeto servidor no ser accesible a sus cliente.

Cuando se inicia la aplicacin host, se registra el canal y el objeto servidor con la plataforma. Una vez que el objeto servidor se ha inicializado, la aplicacin host escucha las peticiones del cliente en el canal registrado. Cuando se recibe una peticin, la aplicacin host carga el objeto servidor en su dominio de aplicacin, y pasa la llamada del cliente al servicio.

Las aplicaciones host y objeto servidor.

Es la aplicacin host quin registra el canal y confirma el medio remoting mediante programacin, a travs del uso de un archivo de configuracin externa. La clase library que contiene el objeto servidor,puede permanecer inactiva y quieta hasta que la llame un cliente. Si la clase que contiene el servidor no est contenida en la aplicacin host, esa aplicacin necesitar una referencia a la clase para que pueda cargarla cuando la necesite. Cuando se llame al objeto servidor, se cargar en el dominio de la aplicacin host y se procesar.

3.4- CARGAR UNA CONFIGURACIN.

En el mbito System.Runtime.Remoting est la clase RemotingConfiguration. Se puede utilizar el mtodo Configure de esta clase para leer en el archivo de texto de configuracin e inicializar la clase.

Remoting de Visual Studio.Net entiende un esquema especfico de etiquetas XML para configurar un objeto.

Etiquetas del esquema del archivo de configuracin Remoting

Nombre de la EtiquetaDescripcin

La etiqueta de apertura para el archivo de configuracin.

El mbito bajo el cual acta Remoting.

Las entradas contenidas en esta etiqueta pertenecen a una aplicacin nica

Contiene las etiquetas de configuracin del objeto servidor.

La etiqueta origen de la seccin de configuracin del canal.

Informacin especfica para configurar el canal, como un tipo de canal http TCP

Etiqueta

Configura el sumidero del canal del objeto del servidor; solo en el servidor.

Encierra las etiquetas de la configuracin del canal del cliente.

Configura el formateador del canal que usa para dar formato a sus mensajes.

Declara la peticin del objeto servidor que usar este objeto cliente.

Se puede usar para congigurar la activacin del objeto.

Utiliza para configurar CAO; solo en el cliente.

Configuracin Programada

Se puede configurar un objeto cliente o servidor y registrarlo directamente desde el cdigo fuente sin tener que llamar a un archivo de configuracin externo, para ello se utilizar la clase RemotingConfiguration en el mbito System.Runtime.Remoting.

Pasos a seguir:

Establecer un canal http TCP, para ello crear una peticin de la clase Tcpchannel Httpchanel y asignarle un nmero de puerto.

Registrar esa peticin del canal con la plataforma .NET.

Registrar el objeto para usar ese canal.

3.5.- REGISTRO OBJETO SERVIDOR

Al registrar un objeto servidor con .NET framework se hace disponible a objetos cliente a travs de Remoting, y se est declarando la URI del objeto y el tipo de activacin.

Utilizar el mtodo Register-WellKnownServiceType de la clase RemotingConfiguration, los parmetro que acepta son:

El tipo del objeto que est registrando.

La Uri que los clientes usarn para identificar ese objeto.

El modo de activacin que el servidor usar para activar el objeto, (si es de llamada nica, mltiple, etc...).

3.6.- VERSIONADO

Es una de las ventajas que ofrece .NET remoting. El cliente controla la activacin del objeto servidor, los parmetros de configuracin del cliente decidirn que versin del objeto servidor se usar para evitar posibles excepciones, esto se consigue especificando un nmero de versin para un objeto servidor no requerido.

3.7.- CLIENTES REMOTING

El objeto cliente solo necesita comprender la interfaz del objeto servidor, y no tiene ningn control sobre como trabaja el objeto servidor como hace su trabajo.

Tipos de Activacion:

Objetos Activados por Servidor:

El objeto servidor permite la activacin del lado del servidor. El objeto servidor se referencia como un objeto WellKnown servicio registrado en la mquina host del objeto servidor, y por tanto conocido, tras esta peticin el cdigo del objeto cliente permitir crear una peticin de clase local proxy del objeto servidor.

Objetos Activados por Clientes:

Nos permite controlar las activaciones del objeto servidor y el tiempo de vida. Si optamos por esta solucin permitimos la activacin del lado del cliente en vez de usar el canal proporcionado por la activacin del lado del servidor.

Si queremos configurar de una manera programada un objeto cliente para activar y controlar un objeto servidor usaremos el objeto Activate.

Relacin de mtodos de la clase Activate.

MtodoDescripcin

CreateComInstanceFromPermite crear una peticin de objeto COM desde una peticin de ensamblaje.

CreateInstanceCrea una peticin de un ensamblaje.

CreateInstanceFromCrea una nueva peticin de ensamblaje desde una peticin de ese ensamblaje que ya se est ejecutando.

GetObjectUsado para crear clases proxy que representen objetos remotos y servicios XML Web.

Como suceda con los objetos servidor , un objeto cliente se puede configurar de forma programada mediante su cdigo fuente mediante la utilizacin de un archivo de configuracin externo.

Para cargar el archivo de configuracin XML en el objeto cliente usar el mtodo RemotingConfiguration.Configure. Este mtodo lee en los parmetros del archivo utilizndolos para configurar los codificadores y canales del objeto cliente que se van a usar con el servidor remoto

3.8.- CREACIN SERVIDOR REMOTING.

Pasos a seguir para la creacin de una aplicacin host y un objeto servidor.

1.- Aadir una referencia al mbito System.Rumtime.Remoting.

2.- Aadir Imports System.Runtime.Remoting en la parte superior del archivo clase de la aplicacin host.

3.- En la funcin inicial de aplicacin host (la subrutina Main() New()) configurar el objeto servidor Remoting de forma programada o usando un archivo de configuracin externo.

4.- Heredar la clase del objeto servidor de la clase base MarshalByReferenceObject.

3.9.- CREACIN APLICACIN CLIENTE REMOTING.

Pasos a seguir para la conexin de un objeto cliente a un objeto servidor.

1.- Aadir una referencia al mbito System.Runtime.Remoting en la aplicacin cliente.

2.- Aadir una referencia al ensamblaje del objeto servidor.

3.- Aadir Imports System.Runtime.remoting en la parte inicial de la clase del objeto cliente.

4.- En la funcin de inicio del objeto cliente (subrutina Main() bien New()), configurar el objeto cliente cargando un archivo de configuracin externo mediante la configuracin del cdigo fuente.

Bibliografa

Introducing Microsoft .NET David S. Platt.

Visual Studio .Net Julian Templeman /David Vitter.

Artculo http://webservicesarchitect.com

Windows

Servicios COM+

Lenguaje comn de ejecucin

Librera de clases base

Datos y XML

Formularios

Windows

Aplicaciones ASP.NET

Servicios WEB

Pginas

ASP.NET

IL (Lenguaje Intermedio)

CLS

C#

C++

JScrip

VB

etc

http Get/Post

xml/http

Cliente

Objeto

Directorio

Aplicacin Internet (http)

Clase proxy

Representacin local del

Servicio

Web XML

Peticin en

Formato

Soap

Respuesta

en formato

Soap

Servicio

Web XML

Dominio de la Aplicacin A

Dominio de la Aplicacin

B

Objeto

Cliente

Proxy Proxy

Transparente Real

Objeto Servidor

Llamada al objeto cliente

Dominio de la aplicacin del servidor remoto

Aplicacin Host

Aplicacin del objeto servidor