Tecnología de la UOC

Arquitectura

La capa de tecnologías

La capa de tecnologías (Technology Layer)

capa_tecno

La arquitectura de la UOC es un reflejo de su historia. Hay tecnologías que acumulan cerca de quince años de servicio, como C++, y otros mucho más recientes, como Ruby; pero cada una juega su papel dentro del mapa arquitectónico de la universidad. Conjugar todo este abanico de tecnologías no es fácil, pero es un precio que hay que pagar en un entorno flexible, que se adapta a los nuevos tiempos, pero que a la vez da servicio a un gran volumen de usuarios que diariamente se conectan al sistema. El Campus Virtual de la UOC es uno de los sistemas de aprendizaje virtual con más accesos concurrentes.

Normalmente, una tecnología responde a la aplicación práctica de un acuerdo, norma, concepto o técnica para resolver un problema. La tecnología es a menudo, pues, el resultado de la implementación o concreción de una especificación. La ISO (International Organitzation for Standardization, http://www.iso.org) define los estándares o especificaciones como «acuerdos documentados que contienen las especificaciones técnicas u otros criterios precisos para ser utilizados como reglas, pautas o definiciones de características para asegurar que las materias, los productos, los procesos y los servicios sean convenientes para su propósito».

En el diagrama de esta capa destacan muchos estándares, especificaciones y tecnologías que hacen referencia a la gestión y al mantenimiento del sistema. Los lenguajes de programación (como JAVA o PHP), los servidores de aplicaciones (como APACHE, TOMCAT o JBOSS) o sistemas específicos (como SHIBBOLETH para la autentificación)son algunos ejemplos. Ved la sección de infraestructura tecnológica para obtener más información sobre las tecnologías de base que se utilizan en la UOC.

Pero para un entorno tecnológico como el de la UOC, la posibilidad de interaccionar, conectarse e intercambiar información con otros sistemas es básica. La interoperabilidad entre sistemas se establece, en esta capa, mediante la combinación de tres tipos de estándares y especificaciones: especificaciones sobre los datos, especificaciones sobre las comunicaciones y especificaciones de interfaces.

Las especificaciones de datos cubren las estructuras, el significado y los vocabularios específicos sobre los datos. XML, HTML o RSS son ejemplos de especificaciones de este tipo. Utilizar estándares o llegar a acuerdos en este nivel facilita que dos sistemas puedan importar y exportar unos mismos datos y, por lo tanto, intercambiarse información.

Las especificaciones sobre comunicaciones definen la manera en que dos sistemas o máquinas se comunican entre sí. SOAP, REST, CORBA o HTTP son algunos ejemplos. A menudo, los estándares o acuerdos a este nivel se llaman «protocolos». Un sistema compatible con un protocolo en particular será capaz de comunicarse con otro sistema si este también utiliza el mismo protocolo. Así, los acuerdos en cuanto al protocolo hacen posible la comunicación entre sistemas diferentes.

Una especificación de una interfaz es un contrato que define y separa las responsabilidades entre dos piezas de software. IMS LTI, OKI OSIDs o Google Gadgets son algunos ejemplos. El uso de interfaces permite cambiar las implementaciones de servicios y de aplicaciones sin afectar al resto del sistema. Las interfaces, pues, se utilizan para encubrir los cambios subyacentes en la tecnología y facilitan la reutilización de software en entornos distintos, y con tecnologías diferentes.

Tener una arquitectura tecnológica bien definida ayuda a situar cada una de estas especificaciones, estándares y tecnologías y a combinarlas con coherencia. La arquitectura aporta un contexto común en el que estas especificaciones pueden ser interpretadas y adoptadas.