Conceptos basicos acerca de .Net Remoting

Tratare de englobar a grandes razgos lo que he captado acerca de este tema.  Para mi .Net remoting implica conocer tecnologias cliente-servidor, donde el servidor ofrece la creacion de objetos que pueden ser referenciados o serializados por los clientes.

Comencemos con el diseño de las clases que queremos exponer, para comenzar tenemos que elegir entre si el objeto sera serializado y enviado al cliente o simplemente se enviara la referencia del objeto en el servidor, en caso de ser el primer caso debemos implementar la interfaz ISerializable o el atributo Serializable y tener el cuidado de que los miembros de la clase sean serializables o que hereden de la clase System.MarshalByRefObject, para el segundo caso solo sera necesario heredar de System.MarshalByRefObject.

Una vez definido este punto sera necesario definir la forma en la que seran activados estos objetos, activados por el servidor y activados por el cliente.

Para ser activados por el cliente solo es necesario definirlo por el metodo estatico  RegisterActivatedClientType() de la clase RemotingConfiguration del espacio de nombres System.Runtime.Remoting, quizas los escenarios en los que recomiendan este tipo de activacion son en los que necesitemos que los objetos sean manejados en un diferente dominio de la aplicacion.

La activacion por parte del servidor es muy similar a los servicios web, para este tipo de activacion existen dos formas distintas de administrar las instancias: Singleton y Single Call.

Por singleton el servidor mantiene solo un objeto creado que atiende a las llamadas de los clientes, puede ser util cuando querramos compartir informacion o estados entre clientes.  La forma de hacerlo es usando el metodo estatico RegisterWellKnownServiceType de la clase  RemotingConfiguration del espacio de nombres System.Runtime.Remoting y en el segundo parametro definir con el enumerador WellKnownObjectMode.Singleton.

Para las activaciones por servidor de Single Call donde querremos que cada cliente tenga un objeto nuevo, utilizaremos el mismo metodo que Singleton pero con la diferencia de que usaremos el enumerador WellKnownObjectMode.SingleCall .

One thought on “Conceptos basicos acerca de .Net Remoting

Leave a Reply