REMOTING by Juan Martínez Gil.

Slides:



Advertisements
Presentaciones similares
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Advertisements

APLICACIONES DISTRIBUIDAS
SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Internet y tecnologías web
Características Generales y Entornos de Desarrollo
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
La plataforma .NET David Carmona
Red Social: “Un millón de Amigos”.
Introducción a la plataforma .NET.
Rossy Garita Componentes fundamentales de CLR y
ARQUITECTURA CLIENTE-SERVIDOR
INTRODUCCIÓN A JAVA.
Lenguajes Servicios Web
Servicios Web.
Arquitectura Orientada a Servicios (SOA)
"java del lado del servidor" Servlet y JSP Java Server Pages.
Acceso a datos y paso de datos entre capas
Introducción a Remoting
Investigación Servidor de Aplicaciones WebSphere
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
Plataforma Microsoft.NET
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Sistema La Plata Módulo I INTRODUCCION A APLICACIONES WEB.
Interacción Persona Ordenador
Universidad de La Coruña Escuela Universitaria Politécnica Control de Procesos por Computador Diego Cabaleiro 24 de Noviembre 2009.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Tema 6: Clases Antonio J. Sierra.
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación basada en Cliente/Servidor? ¿Qué es la Tecnología de Objetos.
Administración de datos con MS-SQL Server y Visual Basic
Programación e Ingeniería de Software III Informática UNIVERSIDAD AUTÓNOMA DE SINALOA Material Proporcionado por: MC. Gerardo Gálvez Gámez.
Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz.
SQL SERVER Reporting Services
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Programación e Ingeniería de Software III
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
HERRAMIENTAS TELEMATICAS
Desarrollo de aplicaciones para ambientes distribuidos
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Sun Open Network Enviroment (Sun ONE) vs.
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
J2EE vs.Net. Integración de sistemas Integrar = Asimilar y agregar rápidamente gran cantidad de información de sistemas distintos Aspecto crítico No se.
Servidores Conceptos Generales.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Los ensamblados y el código IL Contenido Módulo ¿Qué es un Ensamblado? El código MSIL.
Seminario de Java Programación Orientada a Objetos.
Lenguajes de Programación
Introducción al lenguaje de programación Java
Facilitador: Christian Alexander Martinez
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Clase I Curso Microsoft .NET I.S.F.T. N° 182.
Programación Java y Desarrollo de Aplicaciones Modulo 3 Lenguaje de programación Java Software utilizado.
Introducción a .NET Nombre : Ethel García-Simón Matachana
File Transfer Protocol.
¿Qué es. NET Remoting? Servicios Web que utiliza entorno remoto que se puede ejecutar en cualquier aplicación.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
BASE DE DATOS DISTRIBUIDAS
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
.Net Remoting Conceptos que debemos Conocer Dominio de una Aplicación
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Conociendo el modelo Cliente-Servidor
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
.NET Remoting. 2 Índice Introducción Introducción ¿Qué es.NET Remoting? ¿Qué es.NET Remoting? ¿Por qué utilizar.NET Remoting? ¿Por qué utilizar.NET Remoting?
Transcripción de la presentación:

REMOTING by Juan Martínez Gil

Índice de contenidos Parte 1: Introducción a.NET Parte 2:.NET Remoting

La plataforma.NET: introducción Apuesta de Microsoft para competir con la plataforma Java. Objetivo: desarrollar componentes software utilizando casi cualquier lenguaje, de forma que lo que escribamos en un lenguaje pueda utilizarse desde cualquier otro transparentemente (servicios web como middleware). Compiladores de múltiples lenguajes (Visual Basic.NET, C#, Eiffel, Smalltalk, etc...). Conjunto de tecnologías para desarrollar y utilizar componentes que nos permitan crear formularios web, servicios web y aplicaciones Windows.

La plataforma.NET: modelos Nuevo modelo de ejecución: – Common Language Runtime (CLR): similar a la máquina virtual de Java – Máquina virtual que ejecuta código intermedio (MSIL). – Orientado a objetos, garbage collection, nuevo modelo de delegación de eventos, seguridad,... – Independiente del lenguaje de programación: CTS (Common Type System). CLS (Common Language Specification): permite que puedan interactuar fragmentos de código escritos en distintos lenguajes ( C#, VB.NET. Managed C++, Eiffel.NET, etc...). Nuevo modelo de componentes: – Ensamblados. Reemplazan a COM.

La plataforma.NET: assemblies (1) Los assemblies constituyen la unidad lógica de despliegue en la plataforma.NET. Vienen a ser algo parecido a los ficheros JAR de Java.

La plataforma.NET: assemblies (y 2) Un assembly incluye: – metadatos acerca de los componentes incluidos en el assembly (versiones, tipos, dependencias, etc...). – metadatos acerca de los tipos incluidos (propiedades, atributos, métodos, signaturas, clases base...) – el código intermedio MSIL (Microsoft Intermediate Language, similar a los bytecodes de Java). – los recursos adicionales que sean necesarios (imágenes, textos...). Una aplicación está formada por uno o varios assemblies.

La plataforma.NET: MSIL Para que un lenguaje sea soportado ha de existir un compilador que lo traduzca a MSIL. A la hora de ejecutar el código intermedio, éste es siempre compilado a código nativo.

La plataforma.NET: aportaciones Programación de interfaces gráficas (WinForms) y de interfaces web (ASP.NET, WebForms). Acceso a datos de forma independiente al lenguaje de programación: ADO.net (similar a ADO). Los datos se pueden ver y procesar de forma relacional (tablas) o jerárquica (XML). Framework acceso remoto (.NET Remoting), que sustituye a DCOM. XML y servicios web integrados en la plataforma. Dominios de aplicación, programación orientada a aspectos (atributos), etc...

La plataforma.NET: formularios Los formularios Windows están construidos sobre la base de la plataforma.NET. – Permiten construir complejas aplicaciones Windows en un entorno de desarrollo visual de aplicaciones (RAD: Rapid Application Development).. Los formularios web se construyen con ASP.NET (evolución natural y lógica de ASP). – ASP.NET permite utilizar controles complejos, facilita la gestión de sesiones, permite separar la interfaz de la lógica interna, elimina la distinción entre ASP e ISAPI y nos permite emplear cualquier lenguaje de programación que esté soportado por.NET.

La plataforma.NET: instalación SDK(Software Development Kit): incluye la plataforma.NET y todo lo necesario para desarrollar, compilar, probar y distribuir aplicaciones para la plataforma.NET. Se necesita uno de los siguientes SO’s: – Microsoft Windows NT 4.0 (Service Pack 6a) – Microsoft Windows 2000 (SP 2 recomendado) – Microsoft Windows XP Professional Recomendado Internet Explorer 5.01 o posterior. Visual Studio.NET incluye la plataforma.NET (no hay que instalar el SDK).

La plataforma.NET: comparación.NET vs J2EE (Java 2 Enterprise Edition)

Remoting: introducción (1) Tecnología de objetos distribuidos sucesora de DCOM. Objetivo: crear herramientas que faciliten la distribución de la aplicación en red de forma transparente. Marco variado y extensible para que los objetos de distintos dominios de aplicaciones, procesos y equipos se puedan comunicar sin problemas. Ideas fundamentales encontradas ya en CORBA o Java RMI, aunque la combinación final es algo diferente.

Remoting: introducción (y 2) Gran flexibilidad. Tecnologías independientes del lenguaje de programación y con las comunicaciones en un nivel de abstracción elevado. Modelo de programación sencillo y eficaz, así como compatibilidad en tiempo de ejecución que permite interacciones transparentes. Va un poco más allá de la distribución de aplicaciones en red de forma transparente.

Remoting: definiciones (1) Un AppDomain es el entorno donde se ejecuta la aplicación, por lo que la comunicación se dará entre distintos AppDomains, siendo un AppDomain el cliente y otro el servidor. Un canal es la forma de ordenar, formatear o transmitir mensajes a través de AppDomains, de forma que nosotros podamos decir que queremos transmitir un mensaje bien por medio de un protocolo de transporte como el TCP o de aplicación como pudiese ser el HTTP o cualquier canal implementado por la arquitectura.

NET Remoting: definiciones (y 2) Un proxy es un objeto que se encarga de abstraer la comunicación entre cliente/servidor de forma que los objetos de otro AppDomain (remotos) parezcan locales. Un sumidero (sink) es un recipiente capaz de recibir mensajes de Remoting (IMessage), tratarlos y enviarlos al siguiente sumidero en la cadena de comunicación.

Remoting: comunicación (1) Forma práctica de administrar conversaciones RPC sincrónicas y asincrónicas cliente/servidor a través de dominios de aplicación (AppDomains). Para poder invocar métodos en un objeto remoto necesitamos un proxy en el cliente, y para poder crearlo se necesita especificar el canal y la localización del objeto remoto; este proxy recibe las peticiones del cliente y se comunica remotamente de forma totalmente transparente con el servidor en el otro AppDomain, tratando los objetos como si fuesen locales.

Remoting: comunicación (2) El primer sumidero transforma la invocación del cliente en un mensaje aplanado (serializado) que se irá enviando a cada uno de los sumideros que separan al cliente del sumidero final que introduce la información en el canal real. El mensaje se transmite de un sumidero canal en el cliente a un sumidero canal del servidor, que realiza el proceso inverso al del cliente e invoca el método sobre el objeto indicado. Los parámetros de retorno (si los hay) se envían de vuelta al cliente utilizando el mismo canal.

Remoting: comunicación (y 3)

Remoting: objetos (1) Objetos activados en el servidor cuando el cliente invoca el 1º método (sólo cuando es necesario). Tipos de objetos remotos: – Activados en el servidor (SAO: Server Activated Object): Singleton: 1 sóla instancia sirve a todos los clientes. SingleCall: 1 instancia por cada solicitud. – Activados por el cliente (CAO: Client Actived Object): Objetos activados por el cliente Publicación dinámica: publicación de un determinado objeto en una dirección URL específica.

Remoting: objetos (2) Objetos de llamada única (SingleCall): se activan cuando llega una petición para ellos, ejecutan la petición y se desactivan. No conservan estado entre conexiones (Ej: HTTP 1.0). Objetos "Singleton“: dan servicio a varias peticiones de clientes diferentes manteniendo el estado. Objetos activados en el cliente: llamada “new” o “Activator.CreateInstance()” y se envía la solicitud al servidor; cada cliente es atendido por su propia instancia del servidor específica.

Remoting: objetos (3) Con los servicios remotos.NET se pueden pasar objetos de una aplicación a otra de diversas maneras: – En forma de parámetros en las llamadas a métodos: public int myRemoteMethod (MyRemoteObject myObj) – Como valor de devolución de las llamadas a métodos: public MyRemoteObject myRemoteMethod(String myString) – En forma de valores derivados del acceso a los campos o propiedades de un componente.NET: myObj.myNestedObject

Remoting: objetos (y 4) Cada vez que se pasan objetos definidos como cálculo mediante valor (MBV) de una aplicación a otra, se realiza una copia completa de los mismos. Cada vez que se pasan objetos definidos como cálculo mediante referencia (MBR) de una aplicación a otra, se establece una referencia para los mismos. Cuando la referencia al objeto (ObjRef) llega a la aplicación remota, se convierte en un "proxy" en el objeto original.

NET Remoting: acceso objetos Hay que conocer las interfaces del objeto remoto para poder construir el proxy (ObjRef) que permita acceder a él. Se introducirá su localización en los ficheros de configuración del canal o se pasará su URI al objeto con el que obtener una referencia (proxy). Cuando el propio objeto remoto (no proxy) llega al cliente, se puede utilizar de forma local (copia por valor, no por referencia). El objeto debe pertenecer a una clase serializable, es decir, que se pueda convertir a un estado persistente que se pueda transmitir.

Remoting: ejemplo (1) Código de ejemplo para un objeto simple de servidor de los servicios remotos.NET: using System; using System.Runtime.Remoting; namespace myRemoteService { public class myRemoteObject : MarshalByRefObject { public String myRemoteMethod(String s) { return "Hello World"; }

Remoting: ejemplo (2) Código de ejemplo del cliente para obtener acceso a este objeto (parte 1): using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Http; using myRemoteService; public class Client { public static int Main(string[] args) { ChannelServices.RegisterChannel(new HttpChannel());

Remoting: ejemplo (y 3) Código de ejemplo del cliente para obtener acceso a este objeto (parte 2): // Crear una instancia de la clase myRemoteObject myRemoteObject myObj = (myRemoteObject) Activator.GetObject (typeof(myRemoteObject), " myObj. myRemoteMethod ("Hello World"); return 0; }

Remoting: duración Basada en concesiones. Para los objetos con referencias a objetos que se transportan fuera de la aplicación, se crea una concesión con un tiempo determinado ampliable. Cuando el tiempo de concesión llega a cero, la concesión caduca y el objeto se desconecta del marco de los servicios remotos.NET. Se podrá recopilar durante la siguiente recolección de elementos no utilizados si se han liberado todas las referencias al objeto dentro del dominio de la aplicación.

Remoting: alojamiento Los objetos de servicios remotos.NET se pueden alojar en: – Un ejecutable administrado: cualquier archivo.NET EXE normal o en un servicio administrado. – IIS (Internet Information Server): los objetos reciben los mensajes a través del canal HTTP. Se debe crear una raíz virtual, en la que se copiará"remoting.config“. El ejecutable o la DLL que contiene el objeto remoto se debe colocar en el directorio “bin”, en el directorio al que señala la raíz de IIS. – Servicios de componentes.NET: para aprovechar los diferentes servicios de COM+, tales como las transacciones, JIT, la agrupación de objetos, etc...

Remoting: servicios del canal System.Runtime.Remoting.Channels. Facilitan el medio de transporte necesario para establecer estas comunicaciones. Canales HTTP (protocolo SOAP) y TCP (carga binaria). Se pueden conectar (a través de IChannel) utilizando canales personalizados en los que se puede escribir para permitir la integración de aplicaciones muy diversas.

Remoting: serialización Formateadores de serialización (System.Runtime.Serialization.Formatters). Codifican y decodifican los mensajes con los que se comunican los dominios de aplicaciones y las aplicaciones.NET. 2 formateadores nativos: Binario y SOAP. Se pueden conectar implementando la interfaz IRemotingFormatter y conectándola al canal mencionado anteriormente.

Remoting: contextos (1) Un contexto es un límite que contiene objetos que comparten propiedades comunes en tiempo de ejecución. Cada vez que se activa un objeto.NET, el tiempo de ejecución comprueba si el contexto actual es compatible para, en caso de que no lo fuera, crear un nuevo contexto. En un único contexto se pueden ejecutar varios objetos a la vez, y puede existir más de un contexto en un dominio de aplicación.

Remoting: contextos (y 2) La llamada desde un objeto perteneciente a un contexto hacia otro objeto de un contexto diferente pasará por un proxy de contextos. Existen unas clases relacionadas últimamente a un contexto determinado, a las que se pueden asignar atributos personalizados especiales, conocidos como atributos de contexto. Estos atributos son totalmente extensibles y se pueden generar y adjuntar a la clase. Los objetos que se encuentran limitados a un contexto derivan de System.ContextBoundObject.

Remoting: metadatos Se utilizan para almacenar la información sobre los componentes, permitiendo la programación en varios lenguajes. Permiten crear objetos proxy de forma dinámica. El formateador de serialización utiliza metadatos para convertir las llamadas a métodos en flujo de carga y viceversa.

Remoting: configuración Los archivos de configuración (.config) se utilizan para especificar la información concreta sobre servicios remotos de un objeto determinado. 1 objeto AppDomain – 1 archivo de configuración Se favorece la transparencia de ubicación. Se separa la información transparente de configuración del código del cliente, para así poder realizar cambios modificando simplemente el archivo de configuración, sin necesidad de editar y volver a compilar el de origen. Pueden utilizarlos tanto cliente como servidor.

Remoting: escenarios Combinaciones cliente-servidor

Remoting: conclusiones Arquitectura para distribuir objetos sencilla. No intenta alcanzar potencia y flexibilidad de CORBA. Muy sencilla de utilizar para el desarrollador (los detalles pasan inadvertidos). Marco eficaz, extensible e independiente del lenguaje que permite desarrollar sistemas distribuidos sólidos y escalables. Servicios remotos integrados a la perfección con los servicios Web y permiten exponer objetos.NET para tener acceso en varias plataformas.