Servicios Web

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 17

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.

C#

VB

C++

JScrip

etc

CLS
IL (Lenguaje Intermedio)
Servicios
WEB

Pginas
ASP.NET

Formularios
Windows

Aplicaciones ASP.NET
Datos y XML
Librera de clases base

Lenguaje comn de ejecucin

Windows

Servicios COM+

Arquitectura Servicios Web:

Objeto
Cliente

http Get/Post
xml/http

Directorio

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 <WebMethods>. Para hacer una funcin
externamente visible a travs de su servicio en su lnea de declaracin poner el atributo
<WebMethods>. 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


Aplicacin Internet (http)

Clase proxy
Representacin
local del
Servicio
Web XML

Peticin en
Formato
Soap

Servicio
Web XML

Respuesta
en formato
Soap

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.
<WebService(Namespace:=http://microsift.com/webservices/)>
Public Class Libro
Inherits System.Web.Services.WebService
<WebMethod () > Public Function NombreLibro() as string
NombreLibro = Visual Studio .NET
End function
<WebMethod () > 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 <WebMethod () >, 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 <WebMethods>, 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.asmx
5.- 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.

Dominio de la Aplicacin A
Objeto
Cliente

Proxy
Transparente

Proxy
Real

Dominio de la Aplicacin
B
Objeto 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.

Dominio de la aplicacin del servidor remoto


Llamada al objeto cliente

Aplicacin
Host

Aplicacin del
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 Etiqueta
<configuration>
<system.runtime.remoting>
<application>
<service>
<channels>
<channel>
<clientProviders>
<ServerProviders>
<client>
<Formatter>
<wellknown>

Descripcin
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.

<lifetime>
<activated>

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.
Mtodo
CreateComInstanceFrom

Descripcin
Permite crear una peticin de objeto COM desde una peticin de
ensamblaje.
CreateInstance
Crea una peticin de un ensamblaje.
CreateInstanceFrom
Crea una nueva peticin de ensamblaje desde una peticin de ese
ensamblaje que ya se est ejecutando.
GetObject
Usado 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

También podría gustarte