Componentes clave del SDK del adaptador de LOB de WCF
El desarrollo de un adaptador mediante el SDK del adaptador de LOB de WCF requiere el uso de muchos de los siguientes componentes básicos:
Componentes de conexión para ayudar a establecer y mantener una conexión con el sistema de línea de negocio.
Los componentes del controlador definen e implementan procedimientos usados para trabajar con operaciones de metadatos y mensajes entrantes y salientes.
Los componentes de metadatos definen y manipulan los metadatos usados para comunicarse con el sistema de línea de negocio.
Los componentes personalizados proporcionan compatibilidad con transacciones, mensajería confiable y seguridad.
Los componentes principales unen todos los componentes y garantizan una integración perfecta en WCF.
Estos componentes son el foco de este tema.
Componentes de conexión
Los componentes de conexión incluyen interfaces y clases que ayudan a definir y controlar la duración de las conexiones, así como administrar atributos de consulta y atributos de consulta uniformes de recursos (URI). Los componentes de conexión incluyen las interfaces y las clases descritas en la tabla siguiente.
Componente de conexión | ¿Necesario? | Descripción |
---|---|---|
Microsoft.ServiceModel.Channels.Common.ConnectionUri |
Requerido | Clase base para proporcionar una experiencia de creación de URI personalizada para los usuarios que consumirán el adaptador. |
Microsoft.ServiceModel.Channels.Common.IConnection |
Requerido | Interfaz que define el comportamiento de una conexión. Los desarrolladores deben implementar esta interfaz para definir una conexión al sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory |
Requerido | Clase base para un generador de conexiones. Los desarrolladores subclaserán al definir el generador de conexiones para el sistema de destino. |
Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings |
Opcionales | Contiene la configuración que controla el comportamiento del grupo de conexiones. Es posible que los desarrolladores quieran ajustar estos valores en función del comportamiento del sistema de destino. |
Microsoft.ServiceModel.Channels.Common.ConnectionManagerSettings |
Opcionales | Contiene configuraciones estáticas que controlan el comportamiento del grupo de conexiones. Es posible que los desarrolladores quieran ajustar estos valores para su sistema de destino. |
El Asistente para desarrollo de adaptadores de LOB de WCF creará implementaciones de Microsoft.ServiceModel.Channels.Common.IConnection``Microsoft.ServiceModel.Channels.Common.ConnectionUri
e Microsoft.ServiceModel.Channels.Common.IConnectionFactory
independientemente de las opciones del asistente elegidas. Estas implementaciones contendrán código para admitir las opciones elegidas en el asistente (incluidas las propiedades de conexión en el URI de conexión), pero el desarrollador del adaptador tendrá que proporcionar implementaciones para Open, Close y otros métodos de Microsoft.ServiceModel.Channels.Common.IConnection
y Microsoft.ServiceModel.Channels.Common.ConnectionUri
.
Componentes del controlador
Los componentes del controlador proporcionan compatibilidad con diferentes patrones de intercambio de mensajes, como las operaciones de entrada, salida, entrada asincrónica, salida asincrónica y búsqueda de metadatos, exploración y resolución. Los componentes del controlador incluyen las interfaces y las clases descritas en la tabla siguiente.
Componente de controlador | ¿Necesario? | Descripción |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler |
Opcional | Se usa para recibir mensajes de forma asincrónica desde el sistema de destino. La compatibilidad asincrónica es opcional. |
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler |
Opcionales | Se usa para enviar mensajes de forma asincrónica desde el sistema de destino. La compatibilidad asincrónica es opcional. |
Microsoft.ServiceModel.Channels.Common.IInboundHandler |
Opcionales | Se usa para recibir mensajes del sistema de destino. Los desarrolladores deben implementar este controlador si el adaptador necesita escuchar mensajes del sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler |
Opcionales | Proporciona compatibilidad para enviar mensajes al sistema de destino. Aunque es opcional, es necesario para el patrón de mensaje request-response. Las tecnologías de comunicación más fundamentales se basan en este patrón, como HTTP, RPC y muchos otros. |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler |
Opcionales | Este controlador se implementa cuando el adaptador admite el examen de metadatos. Aunque es opcional, los desarrolladores a menudo implementarán este controlador para proporcionar una lista de las operaciones disponibles en el sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler |
Opcionales | Este controlador debe implementarse cuando el adaptador recupera y devuelve metadatos del sistema de destino que representa tipos de datos y lógica específicos del sistema. Los metadatos se pueden recuperar del sistema de destino real o se pueden crear para representar las funcionalidades del sistema de destino. Por ejemplo, un adaptador FTP podría crear operaciones GET y PUT. Aunque no es necesario, los desarrolladores suelen implementar este controlador para proporcionar información sobre una operación específica. |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler |
Opcionales | Este controlador se implementa cuando el adaptador admite la búsqueda de metadatos. |
El Asistente para desarrollo de adaptadores creará implementaciones de , Microsoft.ServiceModel.Channels.Common.IOutboundHandler
Microsoft.ServiceModel.Channels.Common.IInboundHandler
y los controladores de Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler
metadatos en función de las opciones realizadas por el desarrollador. Se proporciona código de soporte técnico; Sin embargo, el desarrollador del adaptador tendrá que proporcionar código para iniciar y detener el agente de escucha entrante y otro código marcado por los comentarios TODO.
Componentes de metadatos
Los componentes de metadatos proporcionan compatibilidad para controlar las solicitudes de metadatos y para describir tipos y operaciones en la aplicación de destino. Los componentes del controlador controlan cómo se tratan las solicitudes de metadatos. Los componentes de metadatos describen los tipos de datos y las operaciones expuestas por el sistema de destino.
Los componentes de metadatos están diseñados para contener dos tipos de información de metadatos: metadatos de tipo y metadatos de operación.
Los metadatos de tipo describen los tipos de datos que están disponibles en el sistema de destino e incluyen el nombre del tipo, sus propiedades de matriz si es una matriz y si es un tipo de esquema XSD simple o un tipo complejo.
Los metadatos de la operación describen las operaciones que están disponibles en el sistema de destino. Las propiedades incluyen un tipo de valor devuelto, una lista de parámetros y un nombre de operación.
La compatibilidad con metadatos dentro de un adaptador es opcional, pero se recomienda. Una de las ventajas de usar el SDK del adaptador de LOB de WCF para compilar un adaptador frente a implementar la funcionalidad como un servicio WCF es la capacidad de exponer y enlazar a un conjunto dinámico de operaciones.
Nota
Si necesita exponer un conjunto limitado de métodos estáticos, considere la posibilidad de usar WCF.
Los componentes disponibles para controlar, describir y trabajar con metadatos se describen en la tabla siguiente.
Componente de metadatos | Descripción |
---|---|
Microsoft.ServiceModel.Channels.Common.ComplexQualifiedType |
Clase que representa un tipo completo complejo para un adaptador. Por ejemplo, si el sistema de destino es una base de datos relacional, una tabla, una fila o un tipo de valor devuelto de procedimiento definido por el usuario puede ser todos tipos calificados personalizados. |
Microsoft.ServiceModel.Channels.Common.OperationMetadata |
Clase base para representar metadatos de operación para el sistema de destino. Por ejemplo, podría subclase OperationMetadata para contener información sobre los procedimientos almacenados en un adaptador destinado a una base de datos relacional. |
Microsoft.ServiceModel.Channels.Common.OperationMetadataTraceRecord |
Proporciona una manera de capturar metadatos de operación en un archivo de seguimiento. El seguimiento recopila información como el identificador único, la última vez a la que se accede, la marca de tiempo, el nombre para mostrar, el nombre original, los parámetros y otros detalles. |
Microsoft.ServiceModel.Channels.Common.ParameterizedOperationMetadata |
Proporciona una manera de definir atributos de una operación como parámetros y tipo de valor devuelto. |
Microsoft.ServiceModel.Channels.Common.OperationParameter |
Describe un parámetro usado para invocar una operación en el sistema de destino. Las propiedades incluyen el nombre, el nombre original, la dirección del parámetro y una marca que indica si el parámetro está vacío o no. |
Microsoft.ServiceModel.Channels.Common.OperationParameterDirection |
Tipo enumerado que describe la dirección de un parámetro para una operación. Un parámetro solo puede ser de entrada (In), solo de salida (Out) o bidireccional (InOut). |
Microsoft.ServiceModel.Channels.Common.OperationResult |
Representa un resultado de la operación. Puede ser OperationResult.Empty para las operaciones que devuelven void o null y una cadena, entero u otro valor en función de la operación. |
Microsoft.ServiceModel.Channels.Common.QualifiedType |
Diseñado para ser la clase base para las propiedades de tipo calificadas y se usa para describir las propiedades de los metadatos de tipo para un sistema de destino. |
Microsoft.ServiceModel.Channels.Common.QualifiedTypeContainer |
Proporciona un contenedor para un conjunto de tipos calificados relacionados. |
Microsoft.ServiceModel.Channels.Common.SimpleQualifiedType |
Describe las propiedades de los metadatos de tipo para un sistema de destino cuando ese tipo se asigna directamente a un tipo de esquema XSD de W3C. Para obtener una lista de tipos permitidos, vea XmlTypeCode (enumeración). |
Microsoft.ServiceModel.Channels.Common.TypeMember |
Proporciona una manera de definir un miembro de datos simple o complejo en los metadatos de tipo estructurado. |
Microsoft.ServiceModel.Channels.Common.TypeMetadata |
Clase base para representar metadatos de tipo para el sistema de destino. |
Microsoft.ServiceModel.Channels.Common.StructuredTypeMetadata |
Proporciona una manera de definir una estructura de datos que contiene miembros de tipo complejos o simples. |
Microsoft.ServiceModel.Channels.Common.TypeMetadataCollection |
Proporciona un contenedor para un conjunto de metadatos de tipo relacionados. |
Microsoft.ServiceModel.Channels.Common.TypeMetadataTraceRecord |
Proporciona una manera de capturar metadatos de tipo en un archivo de seguimiento. El seguimiento recopila información como el identificador único, la última vez a la que se accede, la marca de tiempo y otros detalles. |
Componentes personalizados
Los componentes personalizados proporcionan compatibilidad con transacciones, seguridad, mensajería confiable y otras características que dependen en gran medida del sistema de destino. Como desarrollador de adaptadores mediante el SDK del adaptador de LOB de WCF, deberá comprender las funcionalidades del sistema de destino y determinar la medida en que desea admitirlas.
Componentes principales
Los componentes principales proporcionan un conjunto de clases e interfaces base que permiten que el adaptador se conecte a WCF. Los componentes principales se describen en la tabla siguiente.
Componente principal | ¿Necesario? | Descripción |
---|---|---|
Microsoft.ServiceModel.Channels.Common.Adapter |
Requerido | La clase base de un adaptador escrito mediante el SDK del adaptador de LOB de WCF. Es responsable de interactuar con la arquitectura del canal WCF. |
Microsoft.ServiceModel.Channels.Common.AdapterBinding |
Requerido | Clase que contiene la configuración que controla varias opciones de configuración para el adaptador, incluido el grupo de conexiones (), la memoria caché (Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings Microsoft.ServiceModel.Channels.Common.CacheSettings ), los metadatos (Microsoft.ServiceModel.Channels.Common.MetadataSettings ) y la mensajería (Microsoft.ServiceModel.Channels.Common.MessagingSettings ). |
Los adaptadores personalizados se exponen a través de enlaces WCF. Para obtener más información, vea la documentación de WCF en https://go.microsoft.com/fwlink/?LinkId=100308.
El Asistente para desarrollo de adaptadores crea implementaciones de Microsoft.ServiceModel.Channels.Common.Adapter
, Microsoft.ServiceModel.Channels.Common.AdapterBinding
, System.ServiceModel.Configuration.StandardBindingElement
y System.ServiceModel.Configuration.StandardBindingCollectionElement
para exponer el enlace del adaptador al sistema de configuración de WCF. El Asistente para desarrollo de adaptadores también generará una implementación de System.ServiceModel.Configuration.BindingElementExtensionElement
para habilitar Microsoft.ServiceModel.Channels.Common.Adapter
el uso dentro de un enlace personalizado de WCF desde un equipo o archivo de configuración de aplicación.
Para obtener más información sobre StandardBindingElement, StandardBindingCollectionElement y BindingElementExtensionElement, consulte la documentación de WCF.
Para obtener más información sobre cómo configurar un adaptador escrito con el SDK del adaptador de LOB de WCF, consulte Implementación de un adaptador mediante el SDK del adaptador de LOB de WCF.
Consulte también
Descripción del sistema LOB con el SDK del adaptador de LOB de WCF