2009-10-07 11 views
8

¿Cuáles son los pros y los contras cuando podemos elegir entre utilizar el acceso directo a la base de datos o usar servicios web?base de datos de acceso directo vs servicio web

¿Cuál sería su elección para una aplicación crítica que debería ser receptiva (< 0.5 seg) y con una baja llamada a este servicio web/base de datos (NB: el servicio web será mantenido por otro equipo).

Respuesta

18

El acceso directo a la base de datos lo vincula estrechamente con el esquema. Cualquier cambio en cualquier extremo afecta al otro. Pero tiene las virtudes de ser simple y requerir un salto de red menos.

Un servicio web significa una mejor abstracción y un acoplamiento más flexible a través de un nivel adicional de direccionamiento indirecto. Un servicio web puede actuar como administrador único de los datos. Se saldrá con la suya yendo directamente contra la base de datos cuando solo sea su aplicación, pero si otras aplicaciones aparecen y requieren los mismos datos, aumentará las posibilidades de que necesiten cambios de esquema algún día. Esos cambios afectarán su aplicación también. El costo es más latencia

Un servicio web puede ser un buen lugar para centralizar la autorización y la seguridad. Una base de datos también puede hacer esto, así que tal vez sea un lavado.

+3

El rendimiento es otra consideración; normalmente será mucho más rápido acceder directamente a la base de datos – Cocowalla

1

Obviamente, un acceso directo a la base de datos siempre será más rápido en escenarios simples.

Con un servicio web, se obtiene la flexibilidad:

  • plug-in de una implementación diferente,
  • cuando varias aplicaciones necesitan acceder a los mismos datos, hacer responsable de que los datos, y tienen el otro acceda a través de un servicio web: no tendrá retraso de datos entre los dos; y puede mantener los datos a los que accede a menudo en la memoria en esa aplicación, en lugar de usar la base de datos para comunicarse entre aplicaciones ...

Dado su contexto de receptividad (posiblemente con un problema con el otro equipo), intentaría ir a la ruta directa de acceso a la base de datos, a menos que varias aplicaciones necesiten compartir los datos ...

+0

No podría decir de ninguna manera cuál sería mejor. En el contexto de su aplicación, sin duda, el acceso a la base de datos funcionaría. Dependería de qué tan beneficiosos podrían ser los servicios para toda su empresa. – duffymo

+0

El problema con esto es que a veces es difícil o imposible saber de antemano cuando su db será utilizado por múltiples aplicaciones. Esta es otra razón por la que los procedimientos almacenados son una mejor inversión que las consultas parametrizadas que se encuentran en la fuente de la aplicación. –

0

Tanto Duffymo como KLE son puntos válidos.

Una consideración adicional es el grado de acoplamiento con otros equipos.

Al trabajar con una capa de servicio, su proyecto suele ser uno de muchos clientes; esto a menudo significa que debe trabajar con los servicios que están disponibles o esperar a que la hoja de ruta le entregue los cambios que pueda necesitar. Esto a menudo conduce a decisiones que son buenas para la empresa como un todo, pero no tan buenas para su proyecto.

Cuestiones relacionadas