¿Qué es SOA? Déjame comentar primero lo que entiendo.
Categoría: Computadora/Red gt; Programación gt; Otros lenguajes de programación
Descripción del problema:
Soa está bastante de moda ahora. ¿Es algo específico o es un concepto de desarrollo? Creo que es solo una idea de desarrollo relativamente estandarizada y optimizada, y muchos de los métodos han aparecido en algunos desarrollos de software anteriores, como la reutilización de componentes y el enfoque en el cliente.
Análisis:
Desvelando el velo de SOA
--------------------- -- ----
Hora de publicación: 2006-03-20 08:03:09 Autor: ever2004 Fuente: softhouse Idioma: chino Tiempos de lectura: 8984 veces
Introducción al contenido
SOA es la abreviatura del inglés Service-Oriented Architecture, que significa arquitectura orientada a servicios. Este término ha aparecido con frecuencia en varias revistas técnicas durante los últimos dos años. Pero no ha habido una respuesta clara sobre qué es SOA; ¿cuáles son las características de SOA? ¿Qué problemas es adecuado para resolver? ¿Cuáles son las diferencias y conexiones con otras tecnologías? ¿Cuál es la relación entre el Servicio Web y SOA? ¿Qué impacto tiene la aparición de SOA en el diseño de la arquitectura de software? Este artículo intentará dar una definición de SOA basada en la comprensión del autor de los problemas mencionados anteriormente; resumirá las tres características básicas exclusivas de SOA, luego utilizará el protocolo HTTP como ejemplo para explicar estas características y finalmente explicará brevemente el impacto; de SOA sobre posibles impactos en el futuro diseño de arquitectura de software.
Definición de SOA
La siguiente es una definición dada por el autor de SOA: SOA se refiere a entidades funcionales independientes que pueden completar tareas específicas a través de la conexión para resolver las necesidades de integración empresarial. en el entorno de Internet. Se implementa una arquitectura de sistema de software. Las premisas que espero expresar a partir de esta definición son los siguientes dos puntos:
1) Arquitectura de sistema de software: SOA no es un lenguaje, ni una tecnología específica, sino una arquitectura de sistema de software que pretende ser una arquitectura. Se recomienda en un entorno específico. Desde esta perspectiva, es más como un patrón. Por lo tanto, es complementaria y no mutuamente excluyente de muchas tecnologías de software existentes, como la tecnología orientada a objetos. Están orientados respectivamente a diferentes escenarios de aplicación y se utilizan para satisfacer diferentes necesidades específicas.
2) Ámbito de uso de SOA: La demanda determina pero también limita las funciones. SOA no es una panacea que pueda curar todas las enfermedades. Su principal aplicación es resolver los problemas de integración empresarial entre diferentes aplicaciones empresariales en el entorno de Internet. A continuación discutiremos en detalle cómo las diversas características de Inter determinan las características de SOA. Aquí solo necesitamos revisar brevemente algunas características que distinguen el entorno Inter del entorno Intra:
a) Una gran cantidad de. coexisten sistemas heterogéneos, el hardware de la computadora funciona de diferentes maneras, los sistemas operativos son diferentes y los lenguajes de programación también son diferentes
b) La transmisión de datos grande y frecuente sigue siendo lenta e inestable
c) La actualización de la versión no es posible Completa, simplemente no tenemos forma de saber qué máquinas en Internet están utilizando directa o indirectamente un determinado servicio.
Basándonos en la premisa anterior, echemos un vistazo a las características básicas de SOA.
Tres características básicas de SOA
1 Entidad funcional independiente
En un entorno de uso flexible como Internet, cualquier solicitud de acceso puede salir mal, por lo que cualquier Estructura que Cualquier intento de ser controlado a través del Inter se enfrentará a serios problemas de estabilidad. SOA pone gran énfasis en la total independencia de las entidades funcionales que brindan servicios en la arquitectura.
Las tecnologías de componentes tradicionales, como .NET Remoting, EJB, COM o CORBA, requieren un host (Host o Servidor) para almacenar y administrar estas entidades funcionales. Cuando estos hosts terminan, la vida útil de estos componentes también termina; De esta manera, cuando hay un problema con el propio host u otras partes funcionales, otros servicios de aplicaciones que se ejecutan en el host se verán afectados.
La arquitectura SOA pone gran énfasis en las capacidades de autogestión y recuperación de las entidades. Las tecnologías comunes utilizadas para la autorrecuperación, como el procesamiento de transacciones (Transaction), la cola de mensajes (Message Queue), la implementación redundante (Redundant Deployment) y el sistema de clúster (Cluster), desempeñan un papel vital en SOA.
2 Gran volumen de datos y acceso de baja frecuencia
Para los modelos de computación distribuida tradicionales como .NET Remoting, EJB o XML-RPC, sus servicios se brindan a través de llamadas a funciones. , la finalización de una función a menudo requiere muchas llamadas de función entre el cliente y el servidor. En el entorno Intra, el impacto de estas llamadas en la velocidad de respuesta y la estabilidad del sistema es insignificante, pero en el entorno Inter estos factores son a menudo un determinante clave de si todo el sistema puede funcionar correctamente. Por tanto, el sistema SOA recomienda utilizar una gran cantidad de datos para intercambiar información al mismo tiempo.
3 Mensajería basada en texto
Debido a la existencia de una gran cantidad de sistemas heterogéneos en Internet, el sistema SOA debe adoptar mensajería basada en texto en lugar de binaria. En los modelos de componentes tradicionales como COM y CORBA, lo que se pasa del servidor al cliente es un objeto codificado en binario, y el cliente completa ciertas funciones llamando al método de este objeto, pero en el entorno de Internet, diferentes lenguajes; Hay diferentes plataformas que tienen diferentes definiciones de datos e incluso algunos tipos de datos básicos, lo que genera grandes dificultades para transferir objetos entre diferentes servicios. Dado que el mensaje basado en texto en sí no contiene ninguna lógica de procesamiento ni tipos de datos, solo se transmite texto entre servicios y el procesamiento de datos depende del extremo receptor, lo que puede ayudar a evitar el gran problema de la compatibilidad.
Además, para un servicio, una de las mayores diferencias entre Internet y LAN es que la gestión de versiones en Internet es extremadamente difícil. El método de actualización utilizado por el software tradicional es casi imposible en esta distribución flexible. ambiente. . Al utilizar mensajes de texto, el extremo del procesamiento de datos puede procesar selectivamente solo la parte de los datos que comprende, ignorando otros datos, logrando así una compatibilidad ideal.
Protocolo HTTP: una implementación SOA típica
Cada nueva tecnología se desarrolla en base a algunas tecnologías antiguas. Así como la idea básica de XML proviene del lenguaje de marcado temprano que apareció en la década de 1960, aunque SOA solo apareció en los últimos dos años, se debe decir que los conceptos que expresa se usaron ampliamente poco después de la aparición de la distribución. estructuras de sistemas como Internet. Por ejemplo, el protocolo HTTP con el que estamos más familiarizados es un diseño de arquitectura SOA muy típico. El proceso de trabajo del protocolo HTTP se describe brevemente a continuación:
1) El cliente, generalmente a través de un navegador, envía una solicitud al servidor en forma de texto para solicitar una página web