Hoy, con el rápido desarrollo de la industria de la información, la competencia entre empresas se volverá más intensa. Con la continua expansión de escala y la continua actualización de los negocios, las empresas necesitan urgentemente soluciones distribuidas completas para administrar entornos heterogéneos complejos y lograr una integración completa entre diferentes dispositivos de hardware, sistemas de software, entornos de red y sistemas de bases de datos.
A lo largo de la historia del desarrollo de las computadoras humanas, la industria de la información experimentará cambios cíclicos cada diez a quince años. De 1950 a 1970, las empresas adoptaron principalmente la arquitectura de terminal mainframe, mientras que los sistemas de aplicaciones empresariales adoptaron la Proporcionar a los usuarios servicios de intercambio de recursos en un único. , de manera centralizada. A principios de la década de 1980, las empresas adoptaron ampliamente los sistemas abiertos y los sistemas de gestión de bases de datos relacionales. A diferencia de los sistemas centralizados, la lógica de las aplicaciones estaba dispersa entre los extremos maestro y esclavo. Con la popularidad de Windows, la década de 1990 fue la era de las aplicaciones gráficas y la arquitectura Cliente/Servidor también se adoptó ampliamente. A finales de la década de 1990, apareció la tecnología de objetos distribuidos en la industria de la información. Las aplicaciones se pueden distribuir en diferentes plataformas del sistema y la comunicación mutua de objetos entre plataformas heterogéneas se puede lograr a través de la tecnología distribuida. La integración de sistemas empresariales existentes en sistemas distribuidos puede mejorar en gran medida la escalabilidad de los sistemas de aplicaciones empresariales. La aparición de aplicaciones distribuidas de múltiples niveles a finales de la década de 1990 marcó el camino para que las empresas simplifiquen aún más el desarrollo de sistemas de aplicaciones.
En la estructura tradicional Cliente/Servidor, la lógica de la aplicación generalmente se distribuye entre el cliente y el servidor. El cliente emite una solicitud de acceso a recursos de datos y el servidor devuelve los resultados al cliente. La desventaja de la estructura Cliente/Servidor es que cuando aumenta el número de clientes, el rendimiento del servidor se reducirá considerablemente porque no se puede realizar el equilibrio de carga. Una vez que cambian los requisitos de la aplicación, es necesario modificar tanto las aplicaciones del cliente como del servidor, lo que genera grandes inconvenientes para el mantenimiento y las actualizaciones de las aplicaciones, y la transmisión de grandes cantidades de datos también aumenta la carga en la red. Para resolver los problemas de Cliente/Servidor, las empresas solo pueden transformarse a aplicaciones distribuidas multicapa.
En una aplicación distribuida de varios niveles, se pueden agregar una o más capas de programas de servicios de aplicaciones entre el cliente y el servidor. Este programa se denomina "servidor de aplicaciones". Los desarrolladores pueden colocar la lógica empresarial de las aplicaciones empresariales en el servidor de nivel medio en lugar del cliente, aislando así la lógica empresarial de la aplicación de la interfaz de usuario y proporcionando a los usuarios una aplicación ligera (delgada) al tiempo que garantiza la funcionalidad del cliente. ) interfaz. Esto significa que si es necesario modificar el código de la aplicación, se puede hacerlo en un solo lugar (en el servidor de nivel medio) en lugar de en miles de aplicaciones cliente. Esto permite a los desarrolladores centrarse en el análisis, diseño y desarrollo de la lógica empresarial central del sistema de aplicaciones, simplifica el desarrollo, actualización y mejora de los sistemas empresariales y mejora en gran medida la escalabilidad y flexibilidad de las aplicaciones empresariales.
Cuando las empresas necesitan establecer sistemas de aplicaciones comerciales basadas en la web, la arquitectura distribuida multicapa también proporciona poderosas ventajas, proporcionando una arquitectura de "cliente ligero" para aplicaciones comerciales basadas en la web, lo que permite a los clientes basados en navegador comunicarse con recursos de intranet de manera efectiva. interacción sin requerir un trabajo complejo de configuración de aplicaciones en el lado del cliente. Las soluciones distribuidas de varios niveles construyen puentes entre plataformas heterogéneas y permiten que las aplicaciones empresariales basadas en Web se integren con los sistemas empresariales existentes.
En la actualidad, una gran cantidad de empresas en nuestro país todavía adoptan la arquitectura Cliente/Servidor, mientras que en los países desarrollados occidentales, la transformación de las empresas de sistemas de aplicaciones tradicionales a sistemas de aplicaciones distribuidas multicapa se ha convertido en la corriente principal de la industria. Se cree que los sistemas distribuidos multicapa se utilizarán más ampliamente en nuestro país.
Desafíos que plantean las aplicaciones distribuidas de varios niveles
Aunque la arquitectura distribuida multicapa proporciona grandes ventajas a las empresas, es más difícil desarrollar aplicaciones distribuidas multicapa que el enfoque tradicional Cliente/Servidor, lo que plantea nuevos desafíos técnicos a los desarrolladores. Incluye principalmente los siguientes tres aspectos:
1. Diversificación de los estándares de objetos distribuidos.
Si las empresas quieren construir sistemas distribuidos multicapa, deben seguir los estándares industriales distribuidos. Los estándares en los que se basan afectan directamente la apertura y escalabilidad de los sistemas de aplicaciones empresariales. Actualmente existen tres estándares principales para objetos distribuidos: DCOM de Microsoft, Enterprise JavaBeans/RMI de Sun Microsystems y CORBA (Common Object Request Broker Architecture) de OMG (Object Management Group). DCOM es un estándar de objetos distribuidos basado en el entorno Windows, por lo que los tipos de plataformas compatibles son limitados. RMI y Enterprise JavaBean son arquitecturas de objetos distribuidos basadas en el lenguaje Java, que son adecuadas para las necesidades multiplataforma de las grandes empresas. Sin embargo, el entorno del sistema de aplicaciones real generalmente se establece mediante múltiples lenguajes de programación diferentes y se basa solo en un lenguaje de programación. Las aplicaciones empresariales son raras. CORBA es un estándar de objetos distribuidos desarrollado por la organización OMG con la participación de más de 800 grandes empresas de software y hardware. Cuenta con el respaldo de grandes empresas como IBM, Sun Microsystems, Oracle, Sybase, Novell y Netscape. la integración entre diferentes plataformas Comunicación e interoperabilidad de objetos Siempre que los proveedores de software sigan el IDL (lenguaje de definición de interfaz) para la comunicación entre los objetos de la aplicación y ORB, pueden proporcionar u obtener servicios en forma de objetos ORB. Elimine la necesidad de considerar plataformas heterogéneas, diferentes protocolos de comunicación o diferentes lenguajes de programación causan diferencias, y céntrese en el desarrollo de la lógica de la aplicación. Se puede ver que CORBA proporciona un estándar distribuido abierto y flexible, que es adecuado para que las empresas creen sistemas de aplicaciones distribuidas multicapa.
2. El desarrollo de aplicaciones distribuidas de varios niveles es muy complejo.
Si las aplicaciones distribuidas multicapa se desarrollan de la manera tradicional, los desarrolladores deben tener un conocimiento profundo a nivel de sistema informático y dominar conocimientos en diversos aspectos, como concurrencia, seguridad, escalabilidad y procesamiento de transacciones. Además, es necesario lograr una gestión eficaz del acceso a los recursos del sistema, como la gestión de subprocesos, memoria, conexiones de bases de datos y conexiones de red. Estas complejas tareas consumen en gran medida la energía de los desarrolladores y limitan el progreso del trabajo de desarrollo. El desarrollo de sistemas de aplicaciones empresariales requiere que los desarrolladores se centren más en el desarrollo de la lógica empresarial en lugar de perder más tiempo en el desarrollo a nivel de sistema.
3. La distribución y gestión de aplicaciones distribuidas también son un desafío.
La mayoría de las aplicaciones distribuidas se componen de cientos o miles de componentes y cada componente tiene propiedades que deben configurarse durante la distribución. Normalmente, la forma de configurar las propiedades de los componentes depende de la plataforma en la que se encuentra el componente. Por lo tanto, una vez distribuida la aplicación, cómo gestionar los componentes distribuidos será un desafío. Los administradores deben asegurarse de que los componentes de la aplicación puedan ejecutarse correctamente, puedan ubicarse en cualquier máquina dentro de la red corporativa y puedan detectar errores de procesamiento (incluidos errores del sistema, interrupciones de la red, errores de la aplicación, etc.) de manera oportuna.
En el sentido tradicional, la administración del sistema de red (como SNMP) solo puede obtener el estado de ejecución de las aplicaciones analizando el estado del host. Sin embargo, para los sistemas de aplicaciones distribuidas, una aplicación no se ejecuta en un determinado host. Es necesario gestionar el estado de toda la red, lo que requiere el apoyo de herramientas adecuadas.
Requisitos para aplicaciones distribuidas de varios niveles
El desarrollo de aplicaciones empresariales distribuidas de varios niveles normalmente requiere lo siguiente:
Fácil de desarrollar
Aunque la arquitectura distribuida multicapa requiere un conocimiento profundo a nivel de sistema informático como base (por ejemplo: base de datos, procesamiento de transacciones, seguridad de red, tecnología CORBA, etc.), para los desarrolladores de TI no requiere una comprensión profunda de la base. complejidades del sistema Con la tecnología, se pueden desarrollar potentes sistemas de aplicaciones distribuidas multicapa de forma rápida y sencilla en un entorno de desarrollo visual integrado (IDE) amigable.
Simplifique el trabajo de distribución y gestión.
Los desarrolladores requieren la capacidad de probar y modificar aplicaciones distribuidas en un entorno de desarrollo integrado para mejorar el rendimiento de las aplicaciones y lograr la distribución y gestión de aplicaciones en el mismo entorno. Dado que muchas aplicaciones incluyen miles de componentes distribuidos por toda la empresa, se necesita una herramienta de gestión centralizada para gestionar y controlar las aplicaciones distribuidas e implementar funciones de detección y corrección de errores.
Requisitos de robustez para aplicaciones empresariales
Una aplicación empresarial completa distribuida de varios niveles debe cumplir con los requisitos de procesamiento de transacciones, gestión de seguridad, tolerancia a fallos, equilibrio de carga, escalabilidad y alto rendimiento.
Presenta una arquitectura abierta basada en estándares de la industria
Lo que las empresas necesitan son soluciones abiertas basadas en estándares industriales que puedan interactuar con otros sistemas que cumplan con los estándares.
Se puede integrar con varias bases de datos y sistemas existentes.
Las aplicaciones distribuidas empresariales deben poder acceder a los recursos de datos empresariales, y los datos empresariales generalmente se almacenan en bases de datos a gran escala actualmente populares (como Oracle, Sybase, etc.) o se accede a ellos a través de TP Monitor (como: IBM CICS, BEA Tuxedo ), por lo que es necesario que los sistemas distribuidos empresariales puedan integrarse con bases de datos y sistemas existentes.
Admite diferentes entornos de plataforma
Las aplicaciones empresariales distribuidas de varios niveles deben admitir diferentes entornos de plataforma. El lado del servidor debe admitir plataformas Windows NT o UNIX, y los clientes en diferentes plataformas pueden acceder a las aplicaciones en el servidor, incluidas: HTML, subprogramas Java, aplicaciones Java, HTML dinámico y C++. Aplicaciones, etc.
Servidor de aplicaciones empresariales
Por las razones anteriores, cuando las empresas se transforman en aplicaciones distribuidas de varios niveles, necesitan el soporte de servidores de aplicaciones, de modo que se puedan integrar diferentes tecnologías de aplicaciones, facilitando el desarrollo, la distribución y la gestión de aplicaciones distribuidas de varios niveles. Más fácil. Muchas empresas han utilizado ahora tecnología de servidor de aplicaciones, lo que ha mejorado enormemente el rendimiento de las aplicaciones empresariales. Sin embargo, la tecnología de servidor de aplicaciones que se utiliza actualmente en mi país no puede satisfacer completamente las necesidades de las empresas de establecer aplicaciones distribuidas de múltiples capas. Estos servidores de aplicaciones se dividen principalmente en las dos categorías siguientes:
Servidor de aplicaciones basado en web
Los servidores de aplicaciones basados en Web generalmente proporcionan un entorno de desarrollo para aplicaciones de Internet basadas en Web y son adecuados para establecer sistemas de aplicaciones Cliente/Servidor basados en Web. En este sistema, el servidor de aplicaciones web generalmente se ejecuta en el servidor web para manejar las solicitudes de los clientes. Generalmente se utilizan ODBC y JDBC para conectarse a la base de datos. Este tipo de servidor de aplicaciones es generalmente fácil de usar y admite el desarrollo de aplicaciones de servidor basadas en EJB (Enterprise JavaBeans). Sin embargo, las deficiencias de este tipo de servidor de aplicaciones incluyen: no admite el procesamiento de transacciones, tiene poca seguridad, tiene un soporte limitado para los sistemas comerciales existentes y tiene un rendimiento bajo.
Servidor de aplicaciones basado en middleware
Los servidores de aplicaciones basados en middleware pueden proporcionar a las empresas funciones más potentes al integrarse con los sistemas existentes (como TP Monitors), que incluyen: procesamiento de transacciones, gestión de seguridad, tolerancia a fallas, equilibrio de carga, etc., pero la mayoría de las soluciones se basan en Cliente/Servidor. La arquitectura, o limitada a una arquitectura de tres niveles, no es adecuada para crear aplicaciones web distribuidas y no tiene un entorno de desarrollo y gestión eficaz.
Nota: El equilibrio de carga es un conjunto de servidores compuestos por varios servidores de manera simétrica. Cada servidor tiene el mismo estado y puede proporcionar servicios externos de forma independiente sin la ayuda de otros servidores. A través de algún tipo de tecnología de carga compartida, las solicitudes enviadas desde el exterior se distribuyen uniformemente a un determinado servidor en la estructura simétrica, y el servidor que recibe la solicitud responde a la solicitud del cliente de forma independiente. La carga equilibrada puede distribuir uniformemente las solicitudes de los clientes a la matriz de servidores, proporcionando así un acceso rápido a datos importantes y resolviendo el problema de una gran cantidad de servicios de acceso simultáneo. Esta tecnología de clúster puede lograr un rendimiento cercano al de un mainframe con una inversión mínima. Ventajas del equilibrio de carga de la red: primero, la tecnología de equilibrio de carga de la red garantiza que el servidor pueda responder rápidamente incluso bajo una carga pesada; segundo, el equilibrio de carga de la red solo necesita proporcionar una dirección IP (o nombre de dominio) al mundo exterior; o varios servidores en el equilibrio de carga de la red no están disponibles, el servicio no se interrumpirá. Network Load Balancing detecta automáticamente cuando un servidor no está disponible y puede redistribuir rápidamente el tráfico del cliente entre los servidores restantes. Esta medida de protección puede ayudarlo a proporcionar servicios ininterrumpidos para programas comerciales clave y puede aumentar la cantidad de servidores de equilibrio de carga de red de acuerdo con el aumento del acceso a la red. En cuarto lugar, el equilibrio de carga de red se puede implementar en computadoras comunes.
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx .