NCA o la red como centro de la informática
Basada en las tecnologías web, C/S y de objetos distribuidos
Los avances en el campo de la conectividad y en la tecnología web hacen que la posibilidad de un modelo informático basado en red esté cada vez más cerca. Oracle ha desarrollado una arquitectura abierta y basada en red, que además aúna las ventajas de las principales tecnologías existentes. Su apuesta, adoptada ya por 39 compañías, se denomina Network Computing Architecture, un camino para integrar la informática cliente/servidor con las arquitecturas de objetos distribuidos e Internet. Con ella se crea la oportunidad de desarrollar una nueva clase de soluciones de comercio electrónico, colaboración y soporte de decisiones que catalizan el crecimiento de una nueva economía en red.
Network Computing Architecture es una infraestructura que se conforma como la apuesta de Oracle en el campo del desarrollo y el despliegue de aplicaciones centradas en La Red y basadas en objetos.
En el centro de esta arquitectura se encuentran una serie de especificaciones estándar de facto, como pueden ser CORBA 2.0 y HTTP/HTML. Reconocida como la más avanzada tecnología para la implementación de un entorno de objetos distribuidos, CORBA 2.0 incluye, en la implementación que de ella ha hecho Oracle, el entorno middleware IIOP, destinado a la interoperatividad de objetos, y el conjunto de instrucciones IDL para proporcionar interfaces neutrales de lenguajes.
Por otra parte, la integración del lenguaje de programación Java, para la creación de applets, proporciona un alto nivel de control sobre el desarrollo, así como una mayor portabilidad y extensibilidad a través de la Arquitectura.
Paralelamente, NCA también soporta y mejora los clientes de tipo ActiveX/COM a través de las especificaciones de interoperatividad abierta entre COM/CORBA, ratificadas ya en su día por el Object Management Group (OMG).
Para definirlo a un nivel básico, se puede decir que NCA ha sido creado basándose en la premisa fundamental de que "ningún único esquema puede o podrá acaparar el mercado". En este sentido, se parte de la base de que toda aquella arquitectura que responda a las necesidades de los negocios actuales deberá ser una combinación de las mejores de las tecnologías existentes.
De esta forma, la arquitectura NCA trata, ya desde el momento de su concepción, de proteger tanto a los desarrolladores como al propio negocio, de los riesgos asociados a la rápida evolución de la tecnología proporcionando una arquitectura unificada, basada en estándares y en el modelo cliente/servidor, la web y los objetos distribuidos.
Así, Network Computing Architecture combina las tecnologías web, HTTP y HTML con las tecnologías de objetos CORBA 2.0, para sentar las bases de la informática distribuida en lo que se podría denominar la economía de red.
Básicamente, se pretende conseguir que con la Network Computing Architecture, cualquier aplicación cliente/servidor existente pueda sacar partido de la tecnología web con cambios mínimos y que las nuevas aplicaciones web puedan integrarse sin costuras con los sistemas cliente/servidor sin una actualización completa del sistema.
Cartridges: objetos multilingües
Los componentes claves de la Arquitectura son los objetos pluggables denominados cartridges que son gestionables y proporcionan la extensibilidad necesaria a través de la red. Juegan un papel importante los protocolos abiertos y los interfaces estándares que permiten la comunicación entre los cartridges a través de un bus de software denominado Inter-Cartridge Exchange (ICX).
Y, para completar todo este entramado con el que se ha equipado la arquitectura, se cuenta también con una serie de clientes extensibles, que accederán tanto a los servidores de aplicaciones como a los destinados a la gestión de bases de datos.
Se podría definir un cartridge como un objeto gestionable que utiliza un IDL (Interface Definition Language), un interfaz neutral de lenguaje que permite al cartridge identificar por sí mismo otros objetos en un sistema distribuido. Todos estos interfaces pueden ser tratados para programar en múltiples lenguajes como Java, Visual Basic, C/C++, SQL, etc.
Por otra parte, los cartridges tienen acceso a los Universal Cartridge Services, que incluyen Instalación, Registro, Servicio de Instancia, Invocación, Administración, Monitorización y Seguridad. Algunos de estos servicios son parte de CORBA 2.0.
En un entorno heterogéneo compuesto de tecnologías de objetos distribuidos, Internet y cliente/servidor, los cartridges ayudan a que los objetos CORBA sean gestionables y desplegables. Por poner un ejemplo ptráctico, un plug-in de browser creado a partir de CORBA y concebido como un applet Java que utilice IIOP para un servidor, evoluciona hacia un cartridge una vez que ha sido optimizado para acceder a los Universal Cartridges Services. Todo esto es completado con CORBA e IIOP.
Además de los Universal Cartridge Services, los cartridges tienen acceso a los Scalable Cartridge Services y Specialized Cartridge Services a través de un bus de software que ha sido bautizado como Inter-Cartridge Exchange (ICX).
Básicamente, ICX es un bus de objetos que permite a cada uno de los cartridges ser distribuido a través de una red, de forma que es posible establecer una comunicación entre este cartridge y cualquier de los demás. Y ello a través de la utilización (indistintamente) tanto de los protocolos HTTP como de aquéllos que se asientan en IIOP, de forma nativa para esta comunicación, haciendo las traducciones a medida que se requieren para transportarlos y trabajar con ellos entre los diferentes entornos.
Todo lo expuesto quiere decir que, por ejemplo, un objeto CORBA basado en Java parece un objeto DCOM cuando es accedido desde un applet de PC ActiveX. ICX es implementado como un conjunto de librerías y servicios que residen dentro de varios ordenadores conectados por una red.
A través de estas librerías, los cartridges tienen acceso a otros cartridges, a clientes y servidores y a servicios.
Además de esto, ICX proporciona la posibilidad de crear una interfaz entre entornos propietarios y NCA.
Si se analiza en un primer lugar la integración ICX con Java, se ve como NCA proporciona integración Java a nivel de CORBA/IIOP, a través de una serie de procesos de mapping del propio lenguaje en su versión para CORBA IDL, Java cliente o servidor sobre IIOP y JDBC para acceso a bases de datos abiertas.
Por su parte, los clientes ActiveX/COM estarán capacitados para comunicarse con los cartridges mediante un puente. Estos clientes ActiveX/COM que soportan Java pueden acceder a los cartridges así como a las transacciones escalables, a procesos de mensajería y a servicios proporcionados por el Servidor de Aplicaciones Universal.
Por último, en lo que respecta a la integración con entornos basados en mainframe, esta integración es posible gracias a la encapsulación de los interfaces existentes en los cartridges y los servicios interoperables para mensajería y transacciones.
Con esta estructura, las aplicaciones distribuidas pueden ser escritas utilizando HTTP y/o IIOP como base. Sin embargo, para construir aplicaciones distribuidas reales, las posibilidades de comunicación proporcionadas por HTTP e IIOP no son suficientes. Otras facilidades, que incluyen servicios de seguridad, transacciones, persistencia, control de concurrencia, servicios de directorios y nombres y muchas otras, también juegan papeles importantes.
Para proporcionar un entorno de programación más productivo, se han desarrollado asimismo una serie de servicios de cartridge adicionales, que estarán encargados de añadir nuevas funcionalidades con capacidades que pueden simplemente ser utilizadas por la aplicación, más que codificadas en ella.
Estos servicios están basados en estándares CORBA y son los comentados anteriormente. Los Scalab