CAPÍTULO I: TECNOLOGÍAS ASOCIADAS A LOS LABORATORIOS
I.4 Tecnologías para Laboratorios Virtuales
I.4.8 Tecnologías para la Interoperabilidad de los sistemas de
La interoperabilidad es la habilidad de comunicarse e intercambiar información de una forma efectiva, práctica y comprensible entre los diversos tipos de computadoras, sistemas operativos, redes, plataformas de software y aplicaciones [88], que poseen distintos escenarios lógicos, especificaciones, formatos de datos, modos de intercambio, protocolos y niveles de calidad de servicios.
Para que los flujos de información de las aplicaciones de los Laboratorios Virtuales Reales Remotos, tratados en epígrafes anteriores, se establezcan correctamente se necesitan mecanismos o tecnologías encargados de resolver los problemas de interoperabilidad e incompatibilidad en los sistemas de prácticas de laboratorio distribuidos. Entre las tecnologías más conocidas para solucionar tales dificultades, según [89], se encuentran:
¾ Sockets: queda definido por una dirección IP, un protocolo y un número de
puerto. A través de estos dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada. Los sockets permiten implementar
una arquitectura cliente-servidor. La comunicación ha de ser iniciada por uno de los programas que se denomina programa cliente. El segundo programa espera
a que otro inicie la comunicación, por este motivo se denomina programa
servidor. También se adicionaron extensiones de sockets especiales a las
infraestructuras de comunicaciones IPX/SPX y ATM [90].
¾ HTTP junto a CGI: son importantes tecnologías de la World Wide Web que
en un servidor web. CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor web y una aplicación externa cuyo resultado final de la ejecución son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs [91].
¾ Servlets: un servlet es un programa de aplicación que se ejecuta en un servidor,
similar al applet. Aparecieron con el primer servidor Web de Java introducido por Javasoft. El uso más común de los servlets es generar páginas web de forma
dinámica a partir de los parámetros de la petición que envíe el navegador web. El servidor carga dinámicamente un servlet, el cual a su vez proporciona las clases específicas y módulos capaces de modelar el protocolo CGI y coexistir con el protocolo HTTP [92].
¾ RMI: las interfaces de programación RMI o API no es más que la integración de
modelos de objetos distribuidos que pueden ser manipulados localmente o a distancia usando maquinas virtuales de Java [93].
¾ CORBA: es un estándar que establece una plataforma de desarrollo de sistemas
distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos. Sus especificaciones son establecidas por el Grupo de Proveedores de programas orientado a objetos (OMG). En un sentido general CORBA "envuelve" el código escrito en otro lenguaje en un paquete que contiene información adicional sobre las capacidades del código que contiene, y sobre cómo llamar a sus métodos. Los objetos que resultan pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras pero con más información [94].
¾ DCOM: es una tecnología propietaria de Microsoft para desarrollar componentes
software u objetos distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft para el soporte de la comunicación entre dichos objetos. Esta ha sido abandonada en favor del framework .NET [95, 96].
¾ .Net Remoting: es una API de Microsoft para la interconexión de procesos, en
aplicaciones de multiples clientes/multiples servidores, distribuidas en computadoras dispersas por todo el mundo [97, 98]
¾ Windows Communication Foundation (WCF): es un modelo de programación
unificado de Microsoft para desarrollar aplicaciones orientadas a servicios [99]
¾ Web service: es un sistema de software diseñado para soportar la
interoperabilidad de las interacciones entre computadoras dispersas en una red. Está generalmente conformado por APIs web que pueden ser accedidas a través de las redes, como Internet y ejecutadas en aquellos sistemas remotos que encuestan los servicios. El mismo incluye el estándar SOAP y un lenguaje de descripción de servicios web (WSDL) [100].
Figura 7. Arquitectura Web Service.
Algunas de las Plataformas o Servidores de Aplicación para servicios Web son: IBM Lotus Domino, Axis y el servidor Jakarta Tomcat (de Apache), ColdFusion MX de Macromedia, Java Web Services Development Pack (JWSDP) de Sun Microsystems (basado en Jakarta Tomcat), JOnAS (parte de ObjectWeb una iniciativa de código abierto), Microsoft .NET, Novell exteNd (basado en la plataforma J2EE), WebLogic, WebSphere, Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en el lenguaje de programación Python, VERASTREAM de AttachmateWRQ para modernizar o integrar aplicaciones host IBM y VT, Proyecto Mono [101].
I.4.9 Tecnologías de seguridad de sistemas colectivos en redes:
Los sistemas de laboratorios virtuales deben estar provistos de cierto nivel de seguridad que proteja aquella información privada, valiosa que puede ser comprometedora para el buen funcionamiento y uso adecuado de los mismos; que
conceda el control de los recursos a los estudiantes indicados, así como su evaluación, que no permita fraudes y le proporcione a los sistemas de determinado grado de auditabilidad que permita chequear el comportamiento de los usuarios. Para ello pueden utilizarse las tecnologías de seguridad de los sistemas colectivos en redes y sistemas distribuidos de prácticas de laboratorio, que según el estudio realizado en [102] y en [103] las más útiles y efectivas pueden ser:
¾ Las tecnologías de autentificación:
• Infraestructura de clave Pública (PKI): Es un sistema de certificados digitales
y autoridades certificadoras para la validación de las partes implicadas.
• Autentificación con Kerberos: es un protocolo de autentificación de redes
diseñado para proporcionar una robusta autentificación para aplicaciones cliente/Servidor empleando criptografía de clave secreta o clave simétrica, que sirve lo mismo para encriptar que desencriptar los datos.
¾ Las tecnologías para el transporte de datos seguros:
• Seguridad con el protocolo de Internet (IPSec): es una tecnología para
asegurar el transporte de los datos entre los servidores y entre servidores y usuarios en Internet a nivel IP. Las mismas introducen elementos de seguridad en los encabezamientos y payloads de cada paquete IP como: los protocolos Authentication Header (AH), Encapsulating Security Payload (ESP) e Internet Key Exchange (IKE), así como las estructura de gestión Security Associations (SA) usadas para implementar las políticas de seguridad en los ambientes IPSec. Las Redes Virtuales Privadas (VPN) están soportadas por esta tecnología.
• Seguridad de la Capa de Sockets y la Capa de Transporte (SSL/TLS): Son
protocolos diseñados para asegurar la integridad de los datos y la comunicación entre dos aplicaciones. Los mismos emplean la criptografía RSA, DSS, DES, 3DES o RC4 e incluye una suma chequeo de los datos utilizando un código de autentificación de los mensajes (MAC) que es calculado con el uso de funciones hash como SHA y MD5. SSL/TLS necesitan un protocolo de transporte confiable como TCP para el transporte de datos. Los túneles y HTTPS son tecnologías soportadas por estos protocolos.
• Secure Shell (SSH): es empleada para acceder remotamente a una
computadora, brinda todas las funcionalidades de Telnet y proporciona seguridad al inicio de sesión, al intercambio de fichero y a la conexión TCP/IP en redes públicas inseguras como Internet
¾ Las infraestructuras de autenticación y autorización (AAI):
• LDAP: es un protocolo cliente/servidor para acceder a los servidores de
directorios X.500 ya existentes, así como a los servidores de directorio standalone. Es usado para funciones administrativas de usuarios y dispositivos. Brinda la posibilidad de operar los servidores de laboratorios virtuales distribuidos, los servidores de contenidos, así como soporta la autentificación y autorización de estudiantes, tutores, administradores, entre otros. Permite acoplar varios directorios conformando una estructura jerárquica de infraestructuras raíces y subordinadas.
• Shibboleth: es una infraestructura de autentificación y autorización para
servicios basados en las tecnologías de la web. Shibboleth es un proyecto común de Internet2 y del MACE.
• PAPI: es un sistema para proporcionar control de acceso a los recursos de
información disponibles a través de las tecnologías de Internet. Es usado principalmente por bibliotecas españolas. Sus mecanismos de autentificación permiten a las instituciones sedes mantener sus propios esquemas de autentificación. Emplea un servidor de autentificación y puntos de acceso a la información.
• Autentificación Remota a través de los servicios de accesos conmutados (RADIUS): es un sistema para autentificar y autorizar los usuarios en las
redes de acceso, como la PSTN y las redes celulares, brinda el protocolo Punto a Punto (PPP), accesos terminal server, así como ofrece cuentas de usuarios. El mismo se basa en el modelo cliente/servidor, su tráfico se encripta con secretos compartidos que nunca se envían por la red.
• Diameter: es un desarrollo superior de RADIUS con nuevas funcionalidades
debido a la introducción de nuevas tecnologías de acceso como DSL, Mobile IP y Ethernet.
• UPnP Security: es un sistema para proporcionar un control estricto y al
mismo tiempo flexible sobre los recursos en las redes UPnP, redes con conectividad punto a punto, con dispositivos inalámbricos y artefactos
inteligentes que se descubren, identifican, conectan y desconectan automáticamente. Este está conformado por un punto de control que ejecuta acciones sobre los dispositivos, la consola de seguridad que gestiona los permisos y los dispositivos que se aseguran. Utiliza la infraestructura de clave pública para la autenticación y encriptación.
• Web Service Security (WSS): Es un protocolo de comunicaciones empleado
para asegurar los Servicios Web. El mismo contiene especificaciones de cómo implementar la integridad y confidencialidad de los mensajes de los Servicios Web y emplea los protocolos SAML, Kerberos y el formato de certificados X.509. Además incorpora elementos de seguridad en el encabezamiento de los mensajes SOAP a nivel de la capa de aplicaciones. De esta forma WSS proporciona seguridad extremo a extremo [104].
• Liberty Alliance/Liberty Federation: Liberty Alliance es una asociación que se
formó en el 2001 por aproximadamente 30 organizaciones (actualmente cuenta con más de 150 miembros, entre los que se incluyen America Online, France Telecom, Novell, Sun Microsystems, Ericsson, Intel, Oracle Corporation, Fidelity Investments, Hewlett Packard, NTT, entre otros reconocidos), para establecer estándares abiertos, las mejores prácticas y una directiva para la gestión de la autenticación de los usuarios en múltiples sistemas informáticos y de comunicaciones, así como entre organizaciones (administración de la identidad). La misma desarrolló el estándar industrial
Liberty Federation que permite la firma y autenticación de los clientes a los
servicios basados en las tecnologías de Internet y aplicaciones de comercio electrónico, desde cualquier dispositivo. El usuario no requiere autentificarse más de una vez y puede seleccionar las opciones para la privacidad soportadas por el estándar.[105, 106]
CAPÍTULO II: Plataformas de soporte a los Laboratorios Virtuales.
Como en este trabajo de tesis se propone como objetivo específico: seleccionar, fundamentar la tecnología existente para la introducción de los Laboratorios Virtuales Reales Remotos en ETECSA, seguidamente se tratarán las plataformas tecnológicas que dan soporte a los mismos.