Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.NET Framework proporciona varias formas de comunicarse con objetos en distintos dominios de aplicación, cada una diseñada teniendo en cuenta un determinado grado de experiencia y flexibilidad. Por ejemplo, gracias al crecimiento de Internet, los servicios Web XML constituyen un atractivo método de comunicación, porque están basados en la infraestructura común del protocolo HTTP y el formato SOAP, que utiliza XML. Se trata de estándares públicos que se pueden utilizar inmediatamente con las infraestructuras Web existentes sin necesidad de tener en cuenta cuestiones adicionales relativas a objetos proxy o servidores de seguridad.
No obstante, no todas las aplicaciones deben crearse utilizando algún tipo de servicio Web XML, aunque sólo sea debido a cuestiones relativas al rendimiento y relacionadas con la serialización SOAP en una conexión HTTP. Utilice esta sección para que le ayude a decidir qué forma de comunicación entre objetos desea utilizar para su aplicación.
ASP.NET o interacción remota
Tanto ASP.NET como .NET remoting son implementaciones de la comunicación entre procesos. ASP.NET proporciona una infraestructura, alojada en los Servicios de Internet Information Server (IIS), que controla correctamente los tipos básicos y con la que están familiarizados los programadores de aplicaciones Web. .NET remoting es un sistema genérico y extensible de comunicación entre procesos que se puede utilizar para crear servicios Web XML alojados en IIS (y así contar con la seguridad, escalabilidad y conocimiento del estado de la sesión y de la aplicación que proporcionan ASP.NET e IIS) o aplicaciones que utilicen cualquier otro tipo de protocolo de comunicación o formato de serialización.
El tipo de comunicación que necesita y el modelo de programación con el que está familiarizado son los dos criterios más importantes que deben influir en su elección entre los dos modelos de programación. Elija el tipo de comunicación entre procesos y el modelo de programación que permita implementar sus decisiones de la forma más sencilla. A continuación figuran algunos criterios (por orden de prioridad) para elegir el tipo de comunicación entre procesos que requiere, junto con una comparación entre los servicios Web XML creados con ASP.NET y servicios Web XML generados con .NET remoting:
Necesidades de seguridad.
Si necesita proteger sus llamadas, debe utilizar una aplicación basada en HTTP y alojada en IIS, tanto si es una aplicación ASP.NET como si es una aplicación de interacción remota. Esto es debido a que ASP.NET y .NET remoting utilizan los servicios de seguridad proporcionados por IIS. .NET remoting no proporciona ningún servicio de seguridad cuando está alojado fuera de IIS (por ejemplo, en un servicio de Windows). Si bien puede utilizar .NET remoting en cualquier dominio de aplicación ( a diferencia de los servicios Web XML generados con ASP.NET, que deben alojarse en IIS), deberá proporcionar las características de seguridad requeridas cuando utilice .NET remoting fuera de IIS. No necesita usar el formato de codificación SOAP al utilizar una conexión HTTP; puede utilizar la codificación binaria para aumentar la velocidad.
Velocidad.
.NET remoting ofrece una posible ventaja de rendimiento con respecto a los servicios Web XML generados con ASP.NET ya que permite utilizar la codificación binaria y el TcpChannel predeterminado, que ofrece el mejor rendimiento para la comunicación entre procesos. La codificación binaria puede especificarse incluso si no se utiliza el TcpChannel predeterminado mediante el formateador binario con la clase HttpChannel que utiliza la comunicación POST con IIS (o cualquier aplicación de escucha HttpChannel de interacción remota). El uso del formato binario sólo aumentará radicalmente el rendimiento de las llamadas en la interacción remota, aunque utilice el HttpChannel. Si no tiene un interés especial en la seguridad (por ejemplo, si está creando una aplicación pequeña que se ejecuta totalmente dentro de su servidor de seguridad), el TcpChannel predeterminado con formato binario dará mejores resultados. Los servicios Web XML generados con ASP.NET utilizan siempre la codificación SOAP, cuyo rendimiento suele ser peor que la codificación binaria. No obstante, en situaciones en las que no se requieren las características de .NET remoting pero sí el protocolo HTTP con los mensajes SOAP, los servicios Web XML creados con ASP.NET ofrecen un mejor rendimiento.
Interoperación.
Si necesita interoperar entre diferentes sistemas operativos, normalmente utilizará el protocolo de formato SOAP, tanto si usa .NET remoting como si utiliza ASP.NET. Los servicios Web XML creados con ASP.NET proporcionan una flexibilidad considerablemente mayor a la hora de definir la forma y el estilo de la comunicación SOAP que en el caso de .NET remoting. Esto puede facilitar la interoperación con diferentes plataformas y clientes. .NET remoting está optimizado para la comunicación con clientes de .NET, si bien se puede interoperar entre diferentes sistemas operativos mediante una aplicación de interacción remota.
Escalabilidad.
Alojar su aplicación dentro de IIS le proporciona la escalabilidad que necesita, tanto si usa .NET remoting como si utiliza ASP.NET.
Uso de las características de Common Language Runtime.
Dado que .NET remoting aprovecha mejor los clientes de .NET, se pueden utilizar las características de .NET en una aplicación de interacción remota que no estén disponibles para un servicio Web XML creado con ASP.NET. Algunas de estas características son:
- interfaces.
- CallContext.
- propiedades.
- indizadores.
- Extensiones administradas para C++
- Fidelidad de tipos entre las aplicaciones de cliente y servidor.
- delegados.
Diseño de aplicaciones orientado a objetos.
Los servicios Web XML creados con ASP.NET no representan un paradigma de diseño orientado a objetos. Son fundamentalmente recursos Web sin estado, como las páginas Web, si bien la infraestructura de IIS y ASP.NET proporciona algunos servicios de estado. Los objetos de .NET son objetos y pueden tratarse como tales. Por tanto, se pueden utilizar las siguientes características de .NET orientadas a objetos que no están disponibles para ASP.NET:
- Referencias a objetos remotos.
- Varias opciones de activación de objetos.
- Administración de estado orientada a objetos.
- Administración de la duración de objetos distribuidos.
A continuación se incluye un breve resumen de algunas de las diferencias entre los servicios Web XML creados mediante ASP.NET, el espacio de nombres System.Net y los creados mediante .NET remoting.
Servicios Web XML
Si crea aplicaciones ASP y desea utilizar el modelo de aplicación Web y la eficacia del motor de tiempo de ejecución para HTTP de ASP.NET, incluida la excelente compatibilidad en Microsoft Visual Studio .NET, lo que necesita son los servicios Web XML creados mediante ASP.NET. Con la infraestructura de servicios Web XML, puede crear con facilidad componentes para que los utilicen otras aplicaciones o utilizar componentes creados por terceros con los protocolos, formatos y tipos de datos más apropiados para las aplicaciones Web. No se admite la fidelidad absoluta de tipos entre equipos y sólo se pueden pasar algunos tipos de argumentos. Para obtener más información, vea Servicios Web XML creados con ASP.NET y clientes de servicios Web XML.
Espacio de nombres System.Net
Puede utilizar las clases que aparecen en el espacio de nombres System.Net para crear desde el principio toda una estructura de comunicación. También puede utilizar las clases System.Net con el fin de implementar protocolos de comunicación y formatos de serialización para conectarlos a la arquitectura de interacción remota. Para obtener más información, vea Acceso a Internet.
.NET Remoting
.NET remoting proporciona herramientas para todo tipo de escenarios de comunicación exhaustiva que incluyan, entre otros, servicios Web XML. Mediante .NET remoting, se puede:
Publicar o utilizar servicios en cualquier tipo de dominio de aplicación, tanto si ese dominio es una aplicación de consola, un formulario Windows Forms, un servicio de IIS (Internet Information Server), un servicio Web XML o un servicio de Windows.
Conservar una fidelidad absoluta del sistema de tipos de código totalmente administrado en comunicaciones de formato binario.
Nota Los servicios Web XML utilizan el formato SOAP, que no conserva todos los detalles de los tipos.
Pasar objetos por referencia y volver a un determinado objeto en un determinado dominio de aplicación.
Controlar directamente las características de activación y la duración de los objetos.
Implementar y utilizar canales o protocolos de terceros para extender la comunicación y así satisfacer sus necesidades particulares.
Participar directamente en el proceso de comunicación para crear la funcionalidad que necesita.
Vea también
Acceso a objetos de otros dominios de aplicación mediante .NET Remoting | Información general de .NET Remoting | Ejemplos de interacción remota | Interacción remota avanzada