Tutorial 1: Desarrollar el adaptador de Echo
En este tutorial, desarrollará un adaptador funcional mediante el SDK del adaptador de LOB de WCF. El adaptador simula las operaciones de un sistema ficticio de línea de negocio para ilustrar muchas de las características clave del SDK del adaptador de LOB de WCF, entre las que se incluyen:
Entrada sincrónica
Salida sincrónica
Examinar metadatos
Búsqueda de metadatos
Resolución de metadatos
Esta sección contiene varias características compatibles con el adaptador de eco. Son intercambio de mensajes, metadatos de operación, propiedades de conexión y propiedades del adaptador.
Modelos de intercambio de mensajes
El adaptador de eco admite los dos patrones de intercambio de mensajes siguientes:
Salida sincrónica, es decir, el cliente que consume envía el mensaje de solicitud WCF a través del adaptador al sistema de destino y, a continuación, espera a recibir un mensaje de respuesta WCF del sistema de destino a través del adaptador. Este es el patrón de intercambio de mensajes más común para un adaptador. Para admitir la salida sincrónica, implemente la
Microsoft.ServiceModel.Channels.Common.IOutboundHandler
interfaz .De entrada sincrónica, es decir, el cliente que consume escucha los datos o eventos del sistema de destino a través del adaptador. Para admitir la entrada sincrónica, implemente la
Microsoft.ServiceModel.Channels.Common.IInboundHandler
interfaz .Para obtener más información sobre los patrones de intercambio de mensajes, consulte Introducción a la arquitectura.
Nota
El Asistente para desarrollo de adaptadores muestra el patrón de intercambio de mensajes como flujo de datos en la interfaz de usuario.
Compatibilidad con metadatos
El adaptador de eco admite funcionalidades de exploración, búsqueda y resolución de metadatos. Normalmente, las operaciones de exploración y búsqueda recuperan operaciones de un sistema LOB. Para el adaptador de eco, un sistema LOB es un conjunto de operaciones predefinidas, como se muestra a continuación:
EchoMainCategory
Echo/EchoStrings
Echo/EchoGreetings
Echo/EchoCustomGreetingFromFile
Echo/OnReceiveEcho
A continuación se muestra la definición de cada operación:
Nombre | Definición de operación | Descripción | Dirección |
---|---|---|---|
EchoMainCategory | Category | Clasifica las operaciones. | N/D |
Echo/EchoStrings | string[] EchoStrings(string data) | Devuelve la cadena entrante un número especificado de veces al cliente que realiza la llamada. | Salida |
Echo/EchoGreetings | Greeting[] EchoGreetings(Greeting greeting) | Devuelve el objeto Greeting entrante un número especificado de veces al cliente que realiza la llamada. | Salida |
Echo/EchoCustomGreetingFromFile | CustomGreeting EchoCustomGreetingFromFile(Uri greetingInstancePath) | Devuelve el objeto Greeting leyendo su instancia de un archivo. Los metadatos del objeto Greeting se obtienen de un archivo XSD predefinido. | Salida |
Echo/OnReceiveEcho | void OnReceiveEcho(Uri path, long content) | Devuelve la ubicación y la longitud de un archivo quitado en la carpeta especificada. | Entrada |
Propiedades de adaptador
El adaptador expone las siguientes propiedades del adaptador.
Nombre | Categoría | Tipo de datos | Descripción |
---|---|---|---|
Count | Varios | System.Int32 | Se usa para hacer eco de la entrada el número de veces especificado para el cliente que realiza la llamada. Valor predeterminado = 5 |
EnableConnectionPooling | Varios | System.Boolean | Se usa para habilitar o deshabilitar la agrupación de conexiones para el adaptador. Default = true, lo que significa que la agrupación de conexiones está habilitada en el motor en tiempo de ejecución del SDK del adaptador de LOB de WCF. |
InboundFileFilter | Entrada | System.String | Solo se usa para el escenario de entrada y que usa FileSystemWatcher para supervisar los archivos de la extensión. Default=*.txt |
InboundFileSystemWatcherFolder | Entrada | System.String | Se usa para establecer la carpeta donde se quitarán los archivos para que FileSystemWatcher genere una notificación al adaptador. Default = c:\inbound\watcher. |
Propiedades de conexión
El adaptador de eco expone las siguientes propiedades de conexión.
Nombre | Tipo de datos | Descripción |
---|---|---|
Application | System.String | Nombre de la aplicación dentro del sistema LOB. Esta propiedad es para fines ilustrativos. El adaptador de eco no implica ningún sistema LOB. Default = lobapplication |
EnableAuthentication | System.Boolean | Cuando es true, el adaptador espera un valor en el campo username dentro de las credenciales de cliente. Valor predeterminado = false |
Hostname | System.String | Nombre del servidor donde reside un sistema LOB. Esta propiedad es para fines ilustrativos. El adaptador de eco no implica ningún sistema LOB. Default = lobhostname |
Implementación de interfaz
El SDK del adaptador de LOB de WCF define una colección de clases e interfaces que se deben implementar para admitir características específicas del adaptador. En la tabla siguiente se describen esas clases e interfaces, sus descripciones y cuándo implementarlas.
Clase/interfaz | Cuándo implementar | Descripción |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IConnection | Si necesita definir la conexión al sistema de destino. | Define la conexión al sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory | Si necesita crear una conexión al sistema de destino. | Crea la conexión al sistema de destino. |
Microsoft.ServiceModel.Channels.Common.ConnectionUri | Si necesita administrar un URI de conexión. Si necesita clasificar la propiedad de conexión dentro de la herramienta Add Adapter Service Reference Plug-in. |
Administra un URI de conexión para el sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler | El adaptador debe admitir la funcionalidad de resolución de metadatos. | Resuelve la operación y los metadatos de tipo. |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler | Si el adaptador admite la funcionalidad de búsqueda de metadatos. | Busca las operaciones dentro del sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler | El adaptador debe admitir la funcionalidad de exploración. | Busca las operaciones dentro del sistema de destino. |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler | Si el adaptador normalmente necesita admitir la funcionalidad de salida. | Transforma el mensaje de solicitud WCF entrante en un mensaje del sistema de destino, invoca la función específica del sistema de destino y, a continuación, transforma la respuesta en un mensaje de respuesta WCF saliente. |
Microsoft.ServiceModel.Channels.Common.IInboundHandler | Si el adaptador admite la funcionalidad de entrada. | Escucha los datos o eventos del sistema de destino. |
Para simplificar el desarrollo del adaptador, use el Asistente para desarrollo de adaptadores para generar el proyecto de adaptador, que crea un conjunto de clases derivadas adaptadas a las características del adaptador.
Para personalizar las propiedades de adaptador y conexión a través del complemento Agregar referencia del servicio adaptador y consumir las herramientas del complemento de servicio adaptador, modifique los siguientes archivos generados por el Asistente para desarrollo de adaptadores.
{Projectname} BindingElement.cs
{Projectname} BindingElementExtensionElement.cs
{Projectname} ConnectionUri.cs
Para obtener más información sobre cómo hacerlo, vea Paso 2: Clasificar las propiedades de adaptador y conexión.