el diseño de interfaz de servicio WCF. Procedimental vs Diseño Orientado a Objetos

StackOverflow https://stackoverflow.com/questions/3921047

  •  29-09-2019
  •  | 
  •  

Pregunta

estamos construyendo producto que puede ser utilizado por otros sistemas. Como tenemos SOA, podemos desarrollar solamente un servicio (WCF). Tuvimos varias discusiones polémicas sobre cómo diseñar una interfaz de ese servicio. Estamos eligiendo entre el diseño de procedimiento y OO para el servicio.

A medida que nuestro servicio será utilizado de .NET y Java Algunos dicen que es difícil de integrar con servicio si tiene diseño orientado a objetos. Otros piensan que los servicios no usan mástil enfoque orientado a objetos. Algunos dicen que es completamente OO OK. Como resultado, no hay clara depresión en él.

WCF proporciona manera fácil de usar ambos diseños, pero lo que es el mejor?

¿Fue útil?

Solución

I asume la definición de "orientado a objetos" que está utilizando es el concepto del programa de gestión de "objetos", y estos objetos individuales a manejar su estado interno y exponer funciones a ser llamado.

El parralel WCF más cercano a este es el de servicios basados ??en sesiones, en el que el tiempo de vida de cada instancia de servicio es controlado por el cliente.

Si desea este servicio para ser invocada por Java que tendría que utilizar basicHttpBinding, ya que este utiliza el protocolo de servicios web clásico.

Esta unión no proporciona soporte para servicios basados ??en sesión, por lo que, literalmente, no puede utilizar los servicios basados ??en la sesión.

Por lo tanto, no se puede aplicar el paradigma de "orientado a objetos" en relación con el servicio en sí.

Otros consejos

clarificar su pregunta original diciendo: "Mi pregunta es acerca de los métodos del servicio debe Reciben tipos complejos en lugar de parámetros escalares?"

Usted debe preguntarse lo siguiente:

a) ¿Existe alguna posibilidad de que el servicio puede ser utilizado por los clientes que no son OO? No sé, un lote de COBOL? Incluso si su empresa ha estandarizado en tecnología OO (Java / .NET) ¿hay alguna posibilidad de que este servicio específico puede ser utilizado en el futuro por alguna entidad externa (cliente, sitio web de PHP, lo que sea)

b) ¿Ha creado muchos servicios tal en el pasado (por lo que son perfectamente que no hay ningún cálculo de referencias / serializar / deserializar problemas con tipos complejos, o son al menos consciente de lo que puede de manera segura el uso)?

Si no está totalmente seguro sobre ambos puntos, entonces no dude en utilizar un enfoque "OO" en el diseño de las entradas y salidas de su servicio. De lo contrario, ir a por el más seguro (si hay más primitivo) enfoque, y descomponer los "objetos" en grupos de escalares.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top