La implementación de una arquitectura SOA

Me tocó el tema de utilizar una arquitectura orientada a servicios (SOA), servicios Web, y Ajax para crear un cliente desde una perspectiva teórica, pero no ahondar en los detalles prácticos de cómo implementar la arquitectura SOA. En esta fiesta de un artículo, cómo aplicar una arquitectura SOA utilizando servicios Web y Ajax. La solución también se aborda la cuestión de cómo actualizar una arquitectura ya existente a una arquitectura SOA. Este artículo cubre los siguientes temas:

  

• Diseñar Representational State Transfer (REST)-basado en las URL al contenido que se describe como un conjunto

• Creación de una nueva arquitectura SOA, sin tirar todos de la arquitectura original de

• Validación de la prueba y el servicio de AWeb

• Recolección aparte de los datos

• Implementar un servicio basado en REST Web

• HTML

• Really Simple Syndication (RSS)

• Atom Cada uno de los formatos es única, pero la estructura del contenido dentro de los formatos es el mismo. Desde la perspectiva de la programación, la solución implicaría una Model-View-Controller La nueva aplicación diseñada sólo tiene una dirección y un formato de datos, Atom , por lo que el código detrás de la URL debe generar contenido sólo para ese formato. En el caso de la nueva aplicación de arquitectura, el formato Atom es considerado el servicio AWeb, la idea detrás de la cual es presentar un formato universal entendido por un público amplio. Y si el dispositivo final no entiende el formato, entonces es hasta el dispositivo de navegación para averiguarlo. Por supuesto, pedir el dispositivo de fin de averiguar el formato puede sonar duro, pero en realidad no es siempre que están generando HTML mediante el protocolo HTTP, que usted está pidiendo el dispositivo de fin de averiguar cómo mostrar los datos.

Si el HTML y HTTP son casi universales, ¿por qué no generar bien estructurado HTML y dejar que el dispositivo final Atom averiguarlo? La respuesta es que no funciona tan bien como eso. HTML es una tecnología de interfaz de usuario que no se entiende en todos los dispositivos. Un dispositivo final Atom probablemente podría conjeturar la estructura de formato, pero usted probablemente sabe que el sudor y el dolor asociados con la escritura de código HTML que puede mostrar en todos los dispositivos. Con el servicio de AWeb base el formato Atom, que haya una comprensión clara de lo que los datos es y representa. Para empezar, el servicio de AWeb dice al servidor, "He aquí los datos que encontrar la manera de mostrarlo." Si el producto final es un lector Atom, es fácil de averiguar qué hacer con los datos, pero si el dispositivo final es AWeb navegador, usted tiene un reto. La mayoría de los navegadores nuevos entiendo Atom servicios Web, pero otra opción es que el Ajax en la mano para ayudar y, concretamente, el objeto XMLHttpRequest, que puede generar una solicitud de llamar al servicio Web. El servicio Web proporciona los datos, que luego es procesada por el objeto XMLHttpRequest, y porque la gran mayoría de los servicios Web basados en XML, descubriendo que es el formato de los datos remitidos por el servicio Web es trivial. Al delegar la tarea de crear una interfaz gráfica de usuario de distancia desde el servidor, hay una clara separación entre las funciones del cliente y servidor de juego. Esta separación es absolutamente fundamental, ya que permite a los desarrolladores de servidor para centrarse en el rendimiento, escalabilidad, robustez, y de almacenamiento, mientras que el cliente puede centrarse en la usabilidad, la estética visual, y comprensibilidad. El diseñador y el programador tiene dos conjuntos de habilidades muy diferentes, y no deben interferir unos con otros.

Aplicación del servidor

La arquitectura se ha modificado dos procesos de base de datos, y los dos procesos están relacionados con el mecanismo de sincronización de la base de datos. Desde la perspectiva del usuario, desarrollador y administrador, cada aplicación utiliza su propia base de datos. Los dos procesos de gestión de base de datos de las tablas exactamente los mismos, vistas y procedimientos almacenados. Se supone que esta nueva arquitectura se utilizan las mismas tablas, vistas, y los procedimientos almacenados, pero en realidad esto no es siempre el caso porque una nueva aplicación normalmente implica la adición de tablas, columnas, y los datos. La solución a este problema es utilizar la encapsulación de bases de datos, lo que es posible con vistas y procedimientos almacenados. Sincronización de bases de datos reduce la complejidad a un mínimo absoluto. La razón para usar la sincronización de bases de datos es comenzar el proceso de separación de dos aplicaciones sin perder la integridad de los datos. En la tribuna nueva arquitectura, la wp_authors y wp_users tablas son sólo las dependencias de la base de datos original. Así, cuando se define una sincronización de bases de datos, sólo el wp_authors y wp_users tablas están sincronizadas. Cualquier otra tabla utilizada por la arquitectura del blog original no está sincronizado y por lo tanto no afecta a la arquitectura de la nueva aplicación.

El desarrollador puede seguir adelante y crear su propia base de datos de diseño sin tener que preocuparse sobre el diseño de corromper a la base de datos de edad. Huelga decir que el diseño de bases de datos de edad no se ha modificado, pero este diseño no se detiene la creación de procedimientos almacenados que potencialmente podría corromper los datos en el diseño de base de datos original. Para evitar o al menos minimizar el potencial de corrupción de datos, es absolutamente vital que la base de datos de uso y restricciones de diseño La mayoría de las validaciones. Bases de datos SQL permiten la definición de las restricciones. Paso atrás y mirar a esta arquitectura, usted debe notar que se basa en la capacidades de la base de datos relacional. No puede haber situaciones en que un desarrollador no está utilizando una base de datos relacional. Para esas situaciones, no tengo ninguna solución, como la mayor parte de que tengo que lidiar con bases de datos relacionales, y estoy tentado a creer la mayoría de los lectores tienen el mismo problema. Basándose en las capacidades de la base de datos relacional requiere una comprensión de la base de datos. Con la introducción de mapeo objeto-relacional (ORM) las herramientas, la necesidad de conocer SQL es reducido. Por ejemplo, usando herramientas ORM como Hibernate no requiere de conocimientos de puntos de vista o procedimientos almacenados. Herramientas ORM crear "puntos de vista" en la forma de jerarquías de objetos. Utilizando una herramienta ORM le permite aplicar la misma arquitectura, sin embargo, significa que probablemente no se utilizan procedimientos almacenados y vistas.

La verdadera diferencia entre usar un ORM y la base de datos relacional procedimiento almacenado y la solución de punto de vista es el cambio del acoplamiento entre el código y la persistencia de los datos. Por el contrario, la capa de base de datos relacional utiliza vistas y procedimientos almacenados para interactuar con los datos. El codificador necesita saber acerca de las columnas y los tipos de la base de datos relacional y tiene que proporcionar una correspondencia entre su lenguaje de programación y el lenguaje de programación SQL. Utilizando lenguajes de programación como Java clásica y C # implica un poco de trabajo de campo en términos de preparación de los comandos y recuperación de datos. Utilizando un lenguaje de programación como Ruby, Python o PHP, que interactúan con una base de datos relacional es trivial, ya las lenguas mencionadas no tienen que declarar los tipos de datos. Uso de un ORM, el codificador se lava las manos del problema y pone el se centran en la capa ORM.

Para Java y programadores de C #, un ORM elimina la molesta tarea de interactuar con una base de datos, con el único costo es la falta de los programadores de control de las operaciones y manipulaciones de la base de datos, aunque en la mayoría de los casos que la falta de control es aceptable en relación con la monotonía de escribir el código base de datos relacional. La pregunta es, que la arquitectura debe utilizar? Personalmente, utilizo todo lo que es más fácil en el lenguaje de programación estoy desarrollando en el momento. Así que cuando estoy escribiendo código en Java y C #, yo tiendo a usar ORM, y cuando estoy escribiendo código en Python, puedo acceder a la base de datos relacional directa. Usted necesita asegurarse de que la capa ORM no dicta el diseño de la base de datos, bajo ninguna circunstancia. El diseño de base de datos está determinada por la base de datos y los datos que se insistió, por lo que significa que usted necesita para comprender tabla, vista, coacción, y el diseño del disparador. Esto podría ser difícil si el ORM dicta el diseño de bases de datos, y podría resultar en una base de datos ineficientes también. Recuerde que en cualquier aplicación, la parte más lenta será la base de datos. La base de datos de los poros a través de millones de registros, gestión de transacciones, y enviar los datos a través de una red. Si diseña una aplicación para ser eficiente en el gasto de diseño de la base de datos, entonces no hay forma de que por arte de magia puede acelerar el rendimiento de la base de datos.

un artículo presentado por Sonja Lande


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "La implementación de una Arquitectura SOA" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 170 users browsing the articles directory   


  

|