Evolución de la arquitectura de servidores
Sistemas Windows multiusuario
Componentes de un sistema SBC/Windows
Componentes de un sistema SBC/Windows+Citrix
KELA Presentacion Costa Rica 2024 - evento Protégeles
Server Based Computing: Historia, Conceptos y Arquitectura
1. TIC 0270
Acceso a aplicaciones usando Citrix Metaframe
Server Based Computing (SBC)
Historia, Conceptos y Arquitectura
Joaquín Herrero Pintado
INSTITUTO NACIONAL DE ADMINISTRACION PÚBLICA jherrero@mma.es
Plan interadministrativo de formación contínua en el área de tecnologías
de la información y las comunicaciones
2. Contenido
1. Evolución de la arquitectura de servidores
Del mainframe a Citrix
2. Sistemas Windows multiusuario
3. Componentes de un sistema SBC Windows
El servicio "Terminal Services"
Sesiones y sus estados
Conection ports y Listeners
Virtual Channels
Terminal Services Licensing Server
4. Componentes de un sistema SBC Windows / Citrix
¿Qué aporta Citrix sobre una solución SBC basada en RDP?
El servicio IMA, el DS (DataStore) y el LHC (Local Host Cache)
El servicio Citrix/XML
ICA
Zonas
ZDC - Zone Data Collector
Enumeración y ejecución de aplicaciones
Seamless Windows
Session Sharing
ICA KeepAlive
SLR - SpeedScreen Latency Reduction
3. Evolución de la arquitectura de servidores
Del mainframe a Citrix
4. Server Based Computing
Operación de un mainframe
A pesar de ser máquinas con varios procesadores, varias cabinas de memoria y multitud de periféricos, el sistema era
considerado como una única entidad y por tanto tenía un punto central de gestión: la consola de
operaciones.
La consola proporcionaba un PUNTO UNICO DE GESTION atendido permanentemente por el operador de consola
5. Gestión de entornos centralizados /1
System Health
La consola proporcionaba informes de rendimiento en tiempo real
6. Gestión de entornos centralizados /2
Solicitud de toma de decisiones
Se informaba al operador de situaciones que requerían su intervención
7. Gestión de entornos centralizados /3
Alertas de problemas hardware
A través de la consola el operador era informado de errores hardware en el sistema
8. Gestión de entornos centralizados /4
Control de las tareas de impresión
Las tareas de impresión se organizaban por colas y el operador podía poner
trabajos en la cola más conveniente para que los trabajos de impresión finalizaran má
s rápidamente.
Todas las impresoras eran iguales: modo texto, sin el concepto de "driver" que
tantos problemas nos da ahora en entornos SBC
9. Gestión de entornos centralizados /5
Log de eventos y de actividades de operación
Los mensajes que aparecían en consola se imprimían también en la impresora
junto a la consola, de tal modo que era posible rastrear la causa de los
problemas.
10. Gestión de entornos centralizados /6
Consola de monitorización de hardware
La "consola de luces" permitía un análisis a fondo del estado del hardware
11. Gestión de entornos centralizados /7
Consola de monitorización de hardware
Todo este trabajo se hacía en terminales como este
12. Evolución de la arquitectura de acceso a servidores
Aparece el Ordenador Personal
Downsizing a servidores departamentales
Informática distribuida
13. Aparece el Ordenador Personal
La aparición a finales de los 70 de ordenadores de uso personal hizo que en Julio de 1980 IBM se reuniera con
Microsoft para que hicieran un Sistema Operativo para el ordenador de uso personal que IBM estaba preparando:
codename Project Chess
Microsoft compró los derechos de QDOS, un sistema operativo derivado del CP/M de Gary Kildall, y lo modificaron a
tiempo para que funcionara en el sistema fabricado por IBM. Lo denominaron MS-DOS.
La aparición, el 12 de Agosto de 1981, del IBM PC con el Sistema Operativo MS-DOS 1.0 de Microsoft, cambió para
siempre el modo como se quería dialogar con un ordenador.
El "hombre del año" de la revista Time en 1982 fue "the personal computer".
La idea era sustituir el "terminal" que se usaba para dialogar con los mainframe por ordenadores que tuvieran la
potencia suficiente como para cubrir todas nuestras necesidades personales de computación.
Comienza la época del "downsizing"
14. Cliente/Servidor
Los mainframe se fueron reduciendo hacia lo que en principio se denominó "mini computers", y la máquina fabricada
por IBM, el "personal computer" fue evolucionando en prestaciones y manteniendo un pequeño tamaño.
Como resultado se creó una arquitectura de trabajo en la que las tareas se repartían entre el ordenador personal y un
tipo de mini ordenador potente, llamado "servidor", que en cada departamento de una empresa ejecutaba la aplicación
informática del departamento.
Nace la arquitectura de trabajo cliente/servidor.
Las bases de datos se integraron en los servidores, y las aplicaciones que accedían a las bases de datos también. El
programa que dialogaba con el usuario y con la aplicación del servidor se instalaba en el ordenador personal del
usuario.
La arquitectura de las soluciones informáticas se descentralizó. Los servidores eran departamentales, y contenían las
bases de datos de ese departamento. Los clientes tenían que ser actualizados con el software que accedía a la
aplicación.
15. Cliente/Servidor
La descentralización usada en el modelo cliente/servidor ha aumentado la potencia
disponible para el usuario, y ha disminuido la percepción del sistema como una sola
entidad: la gestión es más dificil y hay muchas máquinas que administrar.
Las aplicaciones "cliente" cada vez necesitan más potencia de máquina, con lo que
las inversiones en hardware no se pueden usar durante mucho tiempo.
WordPerfect 5.1
640 Kb de memoria
i386 o superior
4 Mb de espacio en disco
Word 2003
128 Mb RAM
Pentium III o superior
150 Mb de espacio en disco
17. Problemas a solucionar en el escenario actual
Implementar acceso a aplicaciones remotas en vez de ir cargado con un portátil
permanentemente (caso Google Apps)
Problemas de compatibilidad entre aplicaciones y sistemas operativos cliente, viejas aplicaciones
no corren en nuevos sistemas o vivecersa.
¿Qué hacer con equipos "antiguos? (¿Qué es un equipo "antiguo"?)
Se extienden los dispositivos "ligeros" y de bajo consumo, pero los sistemas operativos cada vez
necesitan más recursos
18. ¿Posible o no? /1
¿A cuantas de estas preguntas se podría contestar "SI"?
Tengo una aplicación cliente/servidor que en LAN funciona muy bien, pero que
hace uso intensivo de la red. ¿Puedo usarla desde una sede remota con conexión
WAN de poco ancho de banda, por ejemplo 128 Kbps?
Cuando uso OWA (Outlook Web Access) para leer mi correo desde Internet tengo
problemas para manejar anexos grandes, porque el anexo se tiene que descargar a
mi PC, y si la conexión es lenta tarda mucho tiempo
Nuestro administrador de seguridad usa Linux por las herramientas de monitorizació
n que utiliza (las mismas que los hackers), pero la gestión de nuestro cortafuegos
distribuido (Stonegate o Checkpoint) solo es posible instalando un programa cliente
que solamente funciona en Windows.
19. ¿Posible o no? /2
Desearía poder usar cualquier PC de mi organización, tenga el sistema operativo
que tenga, para acceder a mis aplicaciones.
Los antivirus son muy intrusivos, ralentizan el puesto cliente. ¿Se podría navegar
por Internet de forma segura sin necesidad de instalar antivirus en los puestos
cliente?
¿Se puede usar Internet Explorer en un Sistema Operativo que no sea Windows?
¿Puedo usar Office 2007 en mi PC Pentium 500? ¿Y AutoCAD?
¿Podría darle alguna utilidad a un PC antiguo sin disco duro?
20. Respuestas usando tecnología SBC
¡Si utilizamos una arquitectura SBC (SERVER BASED
COMPUTING) la respuesta es "SI" a todas ellas!
Citrix Presentation Server es una solución SBC a los problemas
propuestos.
21. Tecnología de terminales en el siglo XXI
¿útil?
En este curso veremos como usar la arquitectura SBC para producir una solución
informática centralizada, basada en terminal, y con capacidad de gestión
Usaremos un producto de la empresa Citrix denominado originalmente
"Metaframe", una palabra que sugiere una arquitectura parecida a la de un
mainframe: solución centralizada basada en terminales. Actualmente se llama
"XenApps", después de haberse llamado durante un tiempo "Presentation Server".
22. Citrix nace a partir de una buena idea
Founded by Ed lacobucci (a member of the original OS/2 development team)
created a product called WinView.
Originally built on top of the OS/2 operating system, it allowed multiple remote
computers or terminals to centrally process applications on the Citrix WinView
Server.
With the advent of Microsoft NT Server, Citrix re-engineered their solution for the NT
3.51 environment and called it WinFrame. This allowed a variety of PCs, terminals
and other devices to connect and execute applications installed on the Citrix
WinFrame Server.
All of the processing occurs at the server. The remote PC, terminal or device runs a
special, very small application (the ICA Client) that allows it to connect and
communicate with the Citrix WinFrame Server.
23. Microsoft se interesa por lo que Citrix está haciendo con su sistema
operativo
As Microsoft upgraded NT, it became necessary for Citrix to again re-engineer their
solution to work with Windows NT 4.0.
At this point Microsoft decided to license the primary multi-user technology from
Citrix.
Once owned by Microsoft, this solution became known as NT Terminal Server
Edition (NT/TS).
While NT/TS includes basic remote control and centralized processing, it does not
provide the complete functionality of WinFrame.
24. La pieza clave: el cliente ICA
Because NT/TS doesn’t provide the full complement of features originally available
from Citrix WinFrame, Citrix developed an add-on to NT/TS called MetaFrame.
In addition to the features available from NT/TS, MetaFrame also provides THE ICA
CLIENT
This is the small application that runs at the remote hardware device, such as the older PC running DOS, Windows 3.1,
your current PC running Windows 95 or 98, a Windows Terminal device using either Windows CE or some other
operating system that Citrix supports. This allows the NT/TS/MetaFrame Server to support a wide range of remote
hardware devices. NT/TS only supports Windows95/98/NT.
In addition, the ICA Client provides an extremely small bandwidth footprint. That is, it minimizes the amount of actual
data that moves between the remote hardware device and the server. This is especially important when the server and
the remote hardware device are physically located in different areas and are connected via a phone line or other
Iow-bandwidth connection.
25. Histórico de acuerdos Citrix/Microsoft
1989 Microsoft licencia OS/2 a Citrix para la línea de producto multiusuario OS/2 WinView
1993 Microsoft licencia Windows NT® 3.51 a Citrix para la línea de productos WinFrame®
1997 Microsoft y Citrix firman un acuerdo de desarrollo y licencias
1998 Microsoft y Citrix lanzan Windows NT Server 4.0, Terminal Server Edition
2000 Microsoft y Citrix lanzan Windows 2000 Server con Terminal Services
2001 Citrix es nombrado Microsoft Certified Partner y Microsoft es miembro Premier Plus CBA member
2002 Citrix obtiene la nominación Microsoft Global Gold Partner y firma un acuerdo de acceso al código de Windows
server
26. Analogia sobre la relación Microsoft / Citrix
Microsoft fabrica coches básicos (Motor, volante, asientos)
Citrix fabrica kits para actualizar los coches de Microsoft
Asientos de piel, radio, airbags, GPS, mantenimiento, etc
Otras empresas venden kits especializados (AppSense, Uniprint, etc)
Microsoft va añadiendo más funciones a sus coches básicos
Pero siempre eran mucho menores que las mejoras de Citrix
En 2003 la cosa cambia, Microsoft se plantea a ofrecer su propio kit de actualizacion (codename "Bear Paw" [pata de
oso]). Citrix (con razón) ve peligrar su negocio.
Idean una estrategia: olvidémonos del coche
La gente no quiere comprar coches, lo que quiere es trasladarse
Nosotros no venderemos coches, venderemos "soluciones de transporte"
¡Fabricaremos todo lo necesario para que alguien se traslade!
Coches, carreteras, puentes, gasolineras, talleres de reparación...
The Future of Terminal Services: 2007 and Beyond
http://www.brianmadden.com/content/content.asp?ID=61
27. Opciones para construir un sistema SBC
http://www.brianmadden.com/content/content.asp?ID=98
Microsoft Windows Server 2003 Terminal Services
http://www.microsoft.com/windowsserver2003/ technologies/terminalservices/default.mspx
Citrix XenApps
http://www.citrix.es
Tarantella Secure Global Desktop / Terminal Server Edition
http://www.tarantella.com/
Jetro Platforms’ CockpIT / BoostIT
http://www.jp-inc.com/
DAT Panther
http://www.datgroup.com
Ericom PowerTerm WebConnect
http://www.ericom.com/
HOBLink JWT
http://www.hob.de/www_us/produkte/connect/jwt.htm
28. Las cuatro características deseables de un sistema SBC
1. Balanceo de carga entre servidores
2. Seamless Windows (ventanas "sin costuras")
3. Poder publicar aplicaciones, no solo el escritorio
4. Interface web con el sistema
29. Sistemas Windows Multiusuario
evolución
Windows NT Terminal Server Edition
Es una versión del NT con un kernel específico
Si se instalan se ofrece hacerlo en uno de los dos siguientes modos
Administration Mode (default, no requiere licencia cliente)
Permite un máximo de DOS usuarios conectar en modo terminal
Application Mode (modo necesario para usar Citrix)
Client Access License (CAL) necesarias
Para conectar Win9x/NT/Linux hace falta comprar CAL’s
Windows 2003
Se ha separado el "Administration Mode" de los servicios de terminal
También se le ha cambiado de nombre: "Remote Desktop"
Sigue siendo lo mismo (un máximo de 2 usuarios, no requiere licencia cliente)
Truco para poder conectar TRES usuarios: conectar uno a la consola
Windows: "mstsc /console"
Linux: "rdesktop -0"
Los Servicios de Terminal se instalan aparte
Los Servicios de Terminal solo existen en "Application Mode"
30. Windows multi-usuario /1
Historia
En cierto modo Windows siempre fue multi-usuario de forma limitada
Solo ofrecía "file services" y "print services"
Por tanto se requería otro sistema Windows en el extremo cliente
Windows solo ha permitido interacción con un solo usuario: la consola.
Con los servicios de terminal se ofrecen múltiples consolas
Se parece a lo que se suele llamar "control remoto" (PCAnywhere)
Conceptualmente igual que las X-Windows que UNIX tiene desde 1984
http://en.wikipedia.org/wiki/X_Window_System
31. Windows multi-usuario /2
kernel mode / user mode
Procesos de Windows corren en "user mode" o "kernel mode"
Una aplicación de usuario ("user mode") no puede escribir directamente en
memoria:
Tiene un espacio virtual de 4GB donde escribe
El VMM (Virtual Memory Manager, en modo kernel) escribe realmente en la memoria
(importante: los drivers cuelgan el sistema al funcionar en "kernel mode")
32. Windows multi-usuario /3
En un sistema normal, todos los procesos del kernel conviven juntos
En un sistema multiusuario el kernel mantiene procesos independientes por usuario
Algunas porciones de la memoria asignadas al kernel pasan a ser virtuales
Procesos del sistema que no son específicos de sesión comparten una zona común
de memoria
Algunos de estos procesos no deberían estar en esta zona compartida
(por ejemplo si mandan mensajes de error... ¿a quien aparecen? a la consola)
34. Nuevos servicios y conceptos
Cambios en procesos del kernel para soportar múltiples usuarios
Virtual Memory Manager
Object Manager
Nuevos conceptos
A cada usuario se le asigna un "session ID" que identifica sus procesos
Nuevos servicios
"Terminal Server" (termserv.exe)
Activa la consola del sistema (session ID 0)
"Session Manager" (smss.exe)
Atiende las sesiones de usuarios remotos
"Client/Server Runtime Subsystem" (csrss.exe)
Crea dos procesos "plantilla" (session IDs 1 y 2)
Connection Ports/Listeners
Escucha solicitudes de conexión y las envía a Session Manager
Servicios de Licencias
Verifican si el cliente que se conecta tiene licencia
35. Estados de una Sesión
Active
El usuario está trabajando a través de esta sesión de terminal
Idle
El usuario está trabajando pero hace un tiempo que no ha habido interacción
Disconnected
La sesión está "viva" pero no está conectada a ningún cliente
La causa suele ser una desconexión de red o reinicio del cliente
Es posible que el usuario "reconecte" a esta sesión y vuelva a estar "Active"
Connected
A esta sesión está conectado un dispositivo pero no hay usuario logado
Down
Estado temporal mientras se terminan los procesos de la sesión
Listen
Solo los listeners están en este estado, no las sesiones normales
36. Connection Ports
Combinan una tarjeta de red específica con un protocolo específico
Opciones:
un único "port" cuya configuracion se aplica a todos los interfaces de red
un port por cada interface de red con permisos diferentes
37. Connection Ports
Podemos personalizar cada conexión y definir varios conectores
38. Listeners
Sub-componente de los "Connection Ports"
Es el componente "activo"
Escucha peticiones de clientes mediante un port
Redirige las peticiones al "session manager"
39. Connection Ports en Windows 2003
Los connection ports tienen asociados permisos
al grupo "Remote Desktop Users"
al administrador local
42. Componentes de un servidor Metaframe /3
El software de Citrix
Se considera un "middleware"
Amplia las capacidades de los servicios de terminal de Windows
No modifica en nada los servicios de terminal de Windows
Conceptos Citrix
Granja de servidores
Publicación de aplicaciones
Servicios de localización de aplicaciones
Independizar la ejecución de una aplicación del interfaz de usuario
La interface de usuario la envía al cliente mediante el protocolo ICA
43. ¿Qué aporta Citrix comparado con usar RDP?
Citrix es un "añadido" (un upgrade kit) a los servicios de terminal
Los servicios de terminal separan dos elementos que usualmente van juntos: la
ejecución de la aplicación y el interface con el usuario
Citrix "trocea" el interface del usuario en canales virtuales y los envía usando su
propio protocolo: ICA
44. Componentes Metaframe
Los componentes básicos de una arquitectura Metaframe son
El servicio IMA
El Servicio Citrix/XML
ICA
45. El servicio IMA
Es el "núcleo" de todo el sistema, es el producto
Debe de estar funcionando en cada servidor Metaframe
Si paramos el servicio IMA ya no es un servidor Metaframe, solo RDP
Maneja todo lo relativo a sesiones, usuarios, aplicaciones
Se comunica con el resto de servicios IMA
Se compone de otros sub-componentes
46. El servicio Citrix/XML
Es el "recepcionista" que nos pregunta "¿qué desea?"
Proporciona información sobre qué aplicaciones publicadas podemos ejecutar (en
función de nuestras credenciales)
Suministra al cliente ICA (el tercer componente) todo lo necesario para poder
ejecutar la aplicación que desea
47. ICA
Al hablar de ICA podemos estar hablando de una de estas tres cosas:
1. Un protocolo: el protocolo ICA
2. Un formato de archivo: los archivos .ICA
3. Un software instalable: el cliente ICA
48. EL protocolo ICA
Transporta los datos de interface de usuario de la aplicación
la pantalla de la aplicación
pulsaciones de teclas
movimientos de ratón
Responsable de transferencias de otros datos
Sonido
Tareas de impresión
Mapeo de unidades locales
Puede funcionar sobre TCP/IP o IPX/SPX
49. El cliente ICA
Dispositivos con clientes ICA
Genéricamente llamamos "Cliente ICA" al software que instalaremos en el puesto cliente.
Hay versiones para múltiples sistemas operativos.
http:/www.citrix.es
-> download
-> clients
50. El fichero .ICA
Llevan la extensión .ica
Son ficheros de texto plano
Contienen instrucciones para que el software cliente contacte con el servidor
53. Tráfico ICA & IMA
Tráfico IMA entre servidores: 2512
Tráfico ICA con los clientes: puerto 1494
54. DataStore IMA
Es un repositorio (base de datos) que contiene
servidores miembros de la granja
licencias (en Metaframe XP solamente)
configuración de zonas
drivers instalados
impresoras instaladas
aplicaciones publicadas
evaluadores de carga
sesiones
Una granja es un DataStore
La granja funciona a pesar de no tener conexión con el DataStore
En ese caso se usa información del LHC (Local Host Cache)
57. ¿Una granja o varias?
Los derechos de administración de la granja no pueden ser restringidos a un
conjunto de servidores.
Se pueden delegar tareas administrativas a otros administradores, pero la tarea que se le delegue la podrá efectuar en
TODOS los servidores de esa granja.
Si necesitamos que haya administradores delegados para ciertos servidores solamente, se debe de crear una granja con esos
servidores.
58. Las zonas
Sirven para
optimizar la obtención de estadísticas de rendimiento de servidores
necesario para "load balancing"
optimizar la notificación de cambios en la estructura de la granja
Cada servidor Metaframe se automonitoriza los siguientes parámetros
conexiones y desconexiones de usuarios
porcentaje de carga
estadísticas de rendimiento
En Metaframe 1.8 cada servidor informaba de esos datos al resto de servidores
En Metaframe XP y posteriores, datos son reportados al DATA COLLECTOR
63. El ZDC es el que recibe peticiones de enumeración
Cada vez que un cliente ICA pide la lista de aplicaciones para un determinado
usuario, es el ZDC quien contesta la petición. A esto se le llama ENUMERACION
de aplicaciones.
¿Que aplicaciones puedo usar?
64. Fases del lanzamiento de una aplicación
Al hacer logon se lanza CmStart.exe y este a su vez lanza WFShell.exe
Las funciones de WFShell.exe son
Ejecutar la aplicación
Autocreación de impresoras
Manejo de los canales virtuales
Configuración en
HKLMSYSTEMCurrentControlSetControlCitrixwfshell
65. Asignación de servidor para la ejecución
Una vez que el ZDC redibe la petición de ejecutar una de las aplicaciones
permitidas por el usuario, usa los datos de rendimiento de los servidores para, en
función del evaluador de carga, asignar un servidor para la ejecución de la aplicació
n.
66. Seamless Windows
Seamless significa "sin costuras"
La ventana de la aplicación de integra en el escritorio local
como una aplicación más, independiente, minimizable
Es uno de los canales virtuales ICA
Tiene componentes en el cliente ica y en el servidor
wfshell.exe
ctxnotify.dll
semain20.dll
67. Session Sharing
Si hay una conexión ICA abierta usada por una aplicación y entonces se lanza una
segunda aplicación, la segunda reutilizará la conexión de la primera. Atención: no
se ejecuta logon script para esa segunda aplicación.
La segunda aplicación debe reunir una serie de requisitos para compartir sesión
con la primera
Estar publicada en el mismo servidor que la primera
No tener mayor profundidad de color ni calidad de sonido que la primera
Tener el mismo nivel de encriptación que la primera
Si tenemos que finalizar un proceso del usuario y comparte sesión con otros, si
finalizamos la sesión se finalizarán todos los procesos
En este caso visualizar procesos de la sesión y solo terminar el que proceda
Ver nota técnica CTX159159 en CItrix Knowledge Base
68. Desconexiones de sesión
El servidor debe llevar registro de sesiones activas y desconectadas
Si se corta conexión, la sesión debe ser puesta en "disconnected"
No es posible conectar con sesiones "Active"
Lo más rápido posible, para que el usuario se reconecte en vez de crear nueva
ICA Keep-Alives
"ICA ping" del servidor al cliente
Si el cliente no contesta, la sesión se pone en "disconnected" inmediatamente
Default: 60 segundos
"Auto Client Reconnect"
Característica nueva
Comprueba si la ultima sesión está "active"
Si es así, la pone en "disconnect" y se conecta a ella
69. Citrix SpeedScreen Lactency Reduction (SLR)
Para combatir la latencia: el enemigo número 1 de las aplicaciones SBC
Local text echo
Mouse click Feedback
Transmision de imágenes en background usando un nuevo canal virtual
Presentación progresiva de imágenes JPG antes de la descarga completa