Desarrollo de aplicaciones de Oracle Database mediante el modelo de servicio WCF

En el nivel más bajo, Windows Communication Foundation (WCF) presenta un modelo de programación en el que los clientes invocan operaciones en un servicio intercambiando mensajes SOAP a través de un canal establecido entre los puntos de conexión de cliente y servicio. Este modelo, conocido como modelo de canal WCF, expone tipos de datos y métodos que permiten operar directamente en la arquitectura del canal WCF. El modelo de canal WCF proporciona control directo sobre el contenido de los mensajes SOAP que crea y sobre la forma en que la aplicación y el adaptador de base de datos de Oracle los consumen; sin embargo, crear mensajes SOAP bien formados para enviar a través de un canal y validar los mensajes de respuesta devueltos puede ser una tarea detallada y exacta.

Por este motivo, WCF proporciona otro modelo de programación denominado modelo de servicio WCF. El modelo de servicio WCF implica el uso de clases de proxy para invocar operaciones en un servicio de destino o para recibir operaciones de un cliente.

  • La clase de proxy utilizada para invocar operaciones en un servicio de destino se denomina clase de cliente WCF. Esta clase modela las operaciones expuestas por un servicio como métodos de .NET con parámetros fuertemente tipados. Mediante el modelo de servicio WCF, puede invocar las operaciones expuestas por el adaptador de Oracle Database como métodos de .NET en el cliente WCF. Para obtener más información sobre los clientes WCF, vea "Información general del cliente WCF" en https://go.microsoft.com/fwlink/?LinkId=91458.

  • En el modelo de servicio WCF, el contrato de servicio expuesto por un servicio se representa mediante una interfaz. Esta representación de código administrado del contrato de servicio se denomina contrato de servicio WCF. El contrato de servicio WCF modela las operaciones como métodos con parámetros fuertemente tipados. Para recibir una operación de un cliente que implemente una clase, el servicio WCF, desde esta interfaz. Después, puede hospedar una instancia de esta clase en system.ServiceModel.ServiceHost para permitir que un cliente invoque la operación en el código. Mediante el uso del modelo de servicio WCF y un contrato de servicio WCF destinado a la operación POLLINGSTMT, puede recibir los resultados de una operación de sondeo en la base de datos de Oracle mediante el adaptador de base de datos de Oracle.

    Las herramientas se usan para generar una clase de cliente WCF o un contrato de servicio WCF y el código auxiliar asociado a partir de los metadatos de servicio que expone el adaptador de base de datos de Oracle. Puede usar cualquiera de las siguientes herramientas:

  • Herramienta de utilidad de metadatos de ServiceModel (svcutil.exe), que se incluye con WCF

  • Complemento Agregar referencia de servicio de adaptador de Visual Studio, que se incluye con el adaptador de base de datos de Oracle

    El complemento Add Adapter Service Reference está integrado con la experiencia de diseño de Visual Studio y presenta una interfaz estándar de Microsoft Windows que proporciona eficaces funcionalidades de exploración y búsqueda en las operaciones expuestas por el adaptador. Para obtener más información sobre cómo generar un cliente WCF o un contrato de servicio WCF, vea Generar un cliente WCF o un contrato de servicio WCF para artefactos de la solución de base de datos de Oracle.

    Dado que presenta un modelo que es familiar para los programadores de .NET y que oculta las complejidades subyacentes del intercambio de mensajes SOAP a través de un canal, el modelo de servicio WCF suele ser la mejor opción para desarrollar soluciones de programación para el adaptador de oracle Database. Sin embargo, hay escenarios en los que el modelo de canal WCF podría ser una mejor opción. Por ejemplo, el modelo de servicio WCF solo admite streaming para la operación ReadLOB. Esto se debe a que serializar y des serializar entre la representación XML de objetos en un mensaje SOAP y los tipos de .NET que se usan para representarlos en el modelo de servicio implica leer todo el mensaje en la memoria. (El resultado de una operación ReadLOB es una excepción a esta regla).

    El modelo de canal WCF proporciona compatibilidad con el streaming de nivel de nodo XML en todas las operaciones y streaming a nivel de datos en las operaciones ReadLOB y UpdateLOB. Si trabaja con consultas que devuelven grandes conjuntos de resultados o está intentando actualizar un campo LOB en una tabla, el modelo de canal WCF podría ser una mejor opción. Para obtener más información sobre el uso del modelo de canal WCF, vea Desarrollar aplicaciones de base de datos de Oracle mediante el modelo de canal WCF.

    Los temas de esta sección contienen información, procedimientos y ejemplos que le ayudarán a crear y usar el modelo de servicio WCF para desarrollar aplicaciones mediante el adaptador de base de datos de Oracle.

En esta sección