Introducción
 

El cambio constante que estamos viviendo en el ámbito de la tecnología y la necesidad de la UOC de mantenerse al día conllevaron, durante el año 2000, una nueva reflexión sobre el modelo tecnológico de la UOC por parte del equipo de estrategia tecnológica.

De ahí que se realizara un análisis global del tema y que, conjuntamente con el Grupo Gartner, se indicara, entre otras conclusiones, el interés de hacer un replanteamiento del modelo tecnológico de desarrollos.

Para ello, se hicieron propuestas sobre cuál debía ser la metodología utilizada por los desarrollos, el lenguaje y la arquitectura de las aplicaciones. También se identificaron y propusieron los componentes que forman el núcleo básico compartido entre las aplicaciones de la UOC.

Actualmente, la nueva intranet educativa (i-Campus), ha comportado escribir de nuevo el 80% del código. Después de la implementación, la evolución del modelo tecnológico irá en función de los cambios necesarios en las piezas que forman el nuevo grupo (cluster) de servicios.


Metodología de desarrollo

Dada la complejidad de muchas de las aplicaciones que se desarrollan en la UOC, la etapa de diseño fue muy importante para su desarrollo. De ahí que fuera necesario hacer un esfuerzo especial en esa etapa concreta. En la UOC hay diferentes equipos de técnicos que desarrollan software y que han unido sus soluciones para dar un servicio integral al usuario. El hecho de compartir la metodología y las herramientas de diseño facilitó su integración.

En cualquier proyecto de construcción de software se deben tener en cuenta diferentes objetivos: la reutilización, la calidad y la productividad. El desarrollo orientado a objetos facilita la consecución de esos objetivos, de ahí que se propusiera la adopción de una metodología que facilite la tecnología orientada a objetos.

El UML* es un lenguaje para especificar, construir y documentar los artefactos que componen un sistema de software y que permite además el modelado de negocio y de otros sistemas.

Para facilitar la incorporación de UML al trabajo de la UOC se iniciaron dos acciones. Por un lado, se incluyeron los conocimientos de UML en la formación básica de los técnicos de los equipos de desarrollo de la UOC y, por otro, se eligieron las herramientas concretas que se utilizarán para ello:

  Rational Rose para el diseño UML.
  Designer d'Oracle para los esquemas entidad-relación.

Lenguaje de desarrollo

Al analizar las posibilidades de los lenguajes de desarrollo dentro del mercado, las tendencias actuales marcan una neta inclinación hacia Java*. Éste tiene las ventajas de permitir una programación orientada a objetos* a la vez que aporta dos valores más: el concepto de máquina virtual, que nos independiza de los sistemas servidores, y su plataforma de desarrollo, que aporta partes susceptibles de ser reaprovechadas (entrada/salida, red, gráficos, seguridad, etc.).

Arquitectura de las aplicaciones
La necesidad de lograr una arquitectura robusta y distribuida para dar servicios en Internet de forma flexible es una evidencia. Actualmente, para soportar este tipo de arquitecturas, el mercado nos ofrece los servidores de aplicaciones*. En la actualidad la mayor parte de los servidores de aplicaciones están convergiendo hacia al modelo de Java 2 Enterprise Edition (J2EE) que soporta servlets* y Enterprise Java-Beans* (EJB). El modelo de componentes de EJBs, propuesto por Sun, y con el apoyo de la mayoría de vendedores de software, es ya el modelo estándar de componentes para Java, y probablemente conseguirá simplificar en gran medida la construcción de aplicaciones transaccionales* empresariales.

En el momento de elegir cuál de los servidores de aplicaciones existentes en el mercado es más aconsejable, los aspectos básicos que marcaron la selección de uno de los productos actuales fueron los siguientes:

  Diseño y madurez del núcleo del servidor de aplicaciones.
  Escalabilidad.
  Tolerancia a errores.
  Administración y monitorización.
  Seguimiento de estándares.
  Herramientas de desarrollo.
  Integración con herramientas de terceros.
  Conectividad con otros sistemas.
  Tiempo de acceso al mercado.
  Apoyo.
  Solidez.
  Coste.
  Contacto con el proveedor.

Lógica de componentes de negocio
En este punto se analizaron los diferentes componentes tecnológicos de los servicios de la UOC que se tienen que compartir entre todos los servicios.

El conjunto de componentes de primer nivel de reutilización está ordenado según su tipología en el siguiente gráfico:

 
Pasa el ratón por encima de cada componente para ver su descripción.
Es el componente que genera la salida de los contenidos según el formato indicado. Entran XML y XSL y entrega el resultado. Este componente tiene la función de entregar alertas/avisos en diferentes canales según la configuración del cliente y los requerimientos de la aplicación Proporciona todos aquellos métodos que necesitarán los diferentes subsistemas para poder identificar
   a un usuario basándose en su número de sesión. Permite el cambio de la sesión de no validada a validada utilizando diferentes métodos de autenticación. Por ejemplo: usuario/contraseña. Asegura el control de acceso a servicios (aplicaciones, componentes, espacios virtuales, documentos). Marca el servicio que se puede acceder, cómo se puede acceder y dónde está. Proporciona a todos aquellos métodos que necesitarán los diferentes subsistemas para proceder a la autenticación de la información enviada entre personas o entre servicios y personas. Proporciona las interfaces necesarias para abstraer el depósito de datos de usuario. Es el depósito único de datos personales tanto para personas físicas como jurídicas, así como de usuarios lógicos. Debe poderse configurar como un servicio LDAP. Permite el envío y entrega de ficheros entre las aplicaciones y el usuario final. Es el componente de entrega de información del depósito de mensajería. El concepto de mensaje queda ampliado y pasa a ser cualquier comunicación, de manera que podemos encontrar los mensajes no sólo en el buzón sino en cualquier punto de cualquier aplicación o página web. Es el componente de carga de información en el depósito de mensajería o hacia Internet. Puede cargar la información también por SMTP autentificado. Sistema para almacenar y recuperar información no estructurada (audio, video, imagen). Este componente tiene un depósito de literales en diferentes idiomas y permite recuperarlos en un momento determinado. Entendemos como institución la organización que necesita configurar todo el entorno de una forma propia, es decir, como el componente que ha de permitir trabajar con diferentes instituciones.