Consejos para la integracin y desarrollo de aplicaciones - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Consejos para la integracin y desarrollo de aplicaciones

Description:

Todos los usuarios deben tener permisos de lectura / ejecuci n sobre las DLL's ... Los Modos de instalaci n de aplicaciones de Metaframe causan efectos en las ... – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 43
Provided by: johnth3
Category:

less

Transcript and Presenter's Notes

Title: Consejos para la integracin y desarrollo de aplicaciones


1
Consejos para la integración y desarrollo de
aplicaciones
  • Francisco Porras Álvarez
  • Comparex España
  • Citrix System Integrator

2
Agenda
  • Nociones de Arquitectura en entornos TS
  • Buenas prácticas para el desarrollo de
  • aplicaciones
  • Notas genéricas para instalar aplicaciones
  • Integración de aplicaciones
  • Otras Cosas

3
Nociones de Arquitectura en entornos TS
  • El entorno Terminal Services se caracteriza por
    ser un entorno multiusuario varios usuarios
    pueden concurrentemente abrir una misma
    aplicación
  • Algunos componentes fundamentales de win2000/2003
    han sido modificados para Terminal Services, por
    ejemplo
  • Administrador de objetos (Object Manager))
  • Ha sido modificado para permitir la
    virtualización de objetos. De esta forma se evita
    que aplicaciones y programas del sistema de
    distintas sesiones no colisionen. Cada objeto
    creado dentro de una sesión está asociado a un
    identificador único que se llama SessionID.
  • Objetos globales o específicos de sesión
  • Sólo son visibles para una aplicación los objetos
    globales y los objetos cuyo sessionID coindica
    con el session ID de la aplicación.
  • Administrador de memoria virtual (VMM)
  • Mapea direcciones virtuales dentro del espacio de
    memoria del proceso a páginas físicas en la
    memoria del servidor.
  • En NT el espacio está dividido en 2GB para el
    usuario (direcciones específicas de proceso) y
    2GB para el núcleo (direcciones específicas de
    sistema).
  • Para el espacio del usuario el VMM provee una
    vista individualizada de la memoria física
    asegurando que cada thread dentro de un proceso
    puede acceder a su propia memoria, pero no a la
    memoria de otros procesos.

4
Nociones de Arquitectura en entornos TS - 2
  • Session Space
  • Al contrario, el espacio de direcciones para el
    kernel es común para todos los procesos dentro
    del sistema, de esta forma se crea un metodo
    consistente para acceder a los servicos del
    kernel.
  • El hecho de que todos los procesos compartan un
    espacio de direcciones para el kernel
    provocaría serias limitaciones de recursos con
    múltiples sesiones interactivas en el mismo
    servidor
  • Con Terminal services éstas limitaciones se han
    superado creando un rango especial de direcciones
    en el kernel que llamamos SessionSpace que va
    a ser mapeado por cada sesión. Cada proceso está
    asociado con un SessionSpace mediante un
    identificativo de sesión (SessionID).
  • SessionID
  • Cuando un nuevo usuario se conecta a un terminal
    server, se genera un nuevo SessionID, y todos los
    procesos creados para esa conexión heredan ese
    SessionID creado y el SessionSpace asociado.
  • Otros grupos de procesos con diferente SessionID
    apuntan a un espacio distinto y separado

5
Nociones de Arquitectura en entornos TS - 3
  • Servicio termsrv
  • El Servicio termsrv de Windows 2000/2003 tiene
    la responsabilidad de controlar los procesos en
    un entorno de Terminal Server. Su primera
    obligación es la gestión de sesiones, inicio y
    finalización de sesiones de los usuarios y
    notificación de eventos.
  • Termsrv es independiente del protocolo y
    actualmente soporta tanto RDP como ICA
  • Es necesario activarlo en Windows 2000/2003
  • Debido a ésta arquitectura especial y a la
    necesidad de ejecutar multiples sesiones
    concurrentes de usuarios diferentes se puede
    plantear la necesidad de llevar a cabo acciones
    especiales de cara al desarrollo e integración de
    aplicaciones en éste entorno

6
Agenda
  • Nociones de Arquitectura en entornos TS
  • Buenas prácticas para el desarrollo de
  • aplicaciones
  • Notas genéricas para instalar aplicaciones
  • Integración de aplicaciones
  • Otras Cosas

7
Buenas prácticas para el desarrollo de
aplicaciones
  • Archivos
  • No compilar letras de unidades como rutas fijas
  • NO C\TMP, C\TEMP, etc, referirse siempre a
    variables en cualquier caso SystemRoot,temp,
  • Las DLLs generalmente solo pueden ser instaladas
    por administradores
  • Todos los usuarios deben tener permisos de
    lectura / ejecución sobre las DLLs
  • Almacenar información específica del usuario en
    su home directory (nunca en local)
  • Almacenar información específica de la aplicación
    fuera de las unidades locales preferiblemente en
    la red de datos
  • No asumir la persistencia de los archivos
    temporales

8
Buenas prácticas para el desarrollo de
aplicaciones
  • Impresión
  • No asumir que existe una impresora por defecto
  • Tener en mente la limitación del ancho de banda a
    la hora de imprimir

9
Buenas prácticas para el desarrollo de
aplicaciones
  • Identificadores únicos
  • Nunca usar atributos específicos de máquina como
    identificadores únicos en su aplicación ej.
    Dirección IP, nombre de máquina
    (GetComputerNameEx()), etc,
  • Usar la dirección Ip del puesto cliente
    (clientaddress), session ID (Citrix Server SDK) o
    la variable de entorno WINSTATIONNAME

10
Buenas prácticas para el desarrollo de
aplicaciones
  • Registro de Windows
  • Escribir configuraciones específicas de usuario
    en HKeyCurrentUser no en HKeyLocalMachine

11
Buenas prácticas para el desarrollo de
aplicaciones
  • Aplicaciones cliente servidor
  • El mecanismo de comunicación entre los
    componentes de la parte cliente y servidor debe
    ser tal que múltiples clientes conectando desde
    la misma máquina son identificados únicamente.
  • DCOM
  • Solo anonymous modo de activación soportado en
    TSE
  • Totalmente soportado en Windows 2000

12
Buenas prácticas para el desarrollo de
aplicaciones
  • Seguridad
  • No incorporar operaciones tipo archivar,
    ejecutar dentro de una aplicación para no
    comprometer la seguridad del entorno.

13
Buenas prácticas para el desarrollo de
aplicaciones
  • Graficos
  • Evitar animaciones innecesarias
  • Evitar pantallas de bienvenida
  • Los graficos de aplicaciones DOS no están
    soportados por ICA
  • No redibujar más de lo que sea necesario en la
    pantalla.
  • Usar colores sólidos para una mejor compresión
  • Evitar parpadeos de cursor
  • Los gráficos vectoriales tienen un mejor
    rendimiento sobre ICA que los mapas de bits
  • Usar raster operator para pintar gráficos en la
    pantalla

14
Buenas prácticas para el desarrollo de
aplicaciones
  • Instalación
  • Los Modos de instalación de aplicaciones de
    Metaframe causan efectos en las entradas del
    registro y en ficheros INI
  • Cuidado con no sobreescribir TSE DLLs con NT
    Server o NT Workstation DLLs

15
Buenas prácticas para el desarrollo de
aplicaciones
  • Memoria
  • Esto es un entorno compartido. No asuma que toda
    la memoria disponible en la máuina podría o
    debería ser usada por su aplicación.

16
Buenas prácticas para el desarrollo de
aplicaciones
  • Periféricos
  • Testear audio, serial, etc. sobre ICA

17
Buenas prácticas para el desarrollo de
aplicaciones
  • General
  • No asumir que la shell de windows se va a estar
    ejecutando ej published application
  • Los efectos negativos de los memory leaks se
    ven multiplicados en un entorno multiusuario
  • Evitar prácticas de acaparación de CPU como
    bucles tipo busy wait y en general polling
    excesivo
  • Usar las APIs de Windows APIs siempre que sea
    posible (e.g. GetWindowsDirectory()). Ya que
    muchas Windows NT APIs incorporan mejoras Citrix
    MultiWin enhancements para soportar de manera
    desatendida un entorno muti-usuario.

18
Buenas prácticas para el desarrollo de
aplicaciones
  • Citrix SDK
  • Solo se ejecuta en servidores WinFrame /
    MetaFrame (WFAPI.DLL)
  • Existe para extender la funcionalidad de la
    aplicación
  • Enumeracion
  • Servidores
  • Sesiones
  • Procesos
  • Información de sesión
  • Dispositivo cliente
  • Mensajería
  • Eventos de sistema
  • Apagado del servidor
  • Soporta Microsoft C, Microsoft Visual C, Visual
    Basic y en general cualquier herramienta capaz de
    llamar una rutina en una DLL

19
Buenas prácticas para el desarrollo de
aplicaciones
  • REFERENCIAS
  • Ver en Microsoft
  • TSAppDev.doc - Optimizing Applications for
    Windows 2000 Terminal Services and Windows NT
    Server 4.0, Terminal Server Edition
  • W2kTSApCmpt.doc - Terminal Services Application
    Compatibility Notes
  • w2kspec-desktop.doc - Application Specification
    for Microsoft Windows 2000 for desktop
    applications
  • http//www.microsoft.com/windows2000/technol
    ogies/terminal/default.asp
  • Ver en Citrix
  • CTX846521
  • Comprehensive Application Tuning Document
  • Aplicaciones DOS, 16 bit, 32 bit
  • CTX101709
  • How to Troubleshoot Application Integration
    Issues
  • Preguntas para troubleshooting de aplicaciones
    que fallan en TS

20
Agenda
  • Nociones de Arquitectura en entornos TS
  • Buenas prácticas para el desarrollo de
  • aplicaciones
  • Notas genéricas para instalar aplicaciones
  • Integración de aplicaciones
  • Otras Cosas

21
Notas genéricas para instalar aplicaciones
  • La instalación de aplicaciones es diferente en
    Windows 2000 con Terminal Services habilitado
  • Usuarios deben ser capaces de ejecutar las
    aplicaciones simultáneamente y salvar sus
    preferencias cada uno de manera individual
  • Cada usuario va a tener su propio Home Dir
  • Si el administrador no ha especificado el home
    directory al usuario, el home directory de
    usuario directorio de perfil de usuario
    \Wtsrv\Profiles\Username
  • Terminal Services hace réplica de los ficheros
    .ini y las entradas del registry por cada usuario
  • Para que cada usuario guarde las configuraciones
    de app individuales, debe tener una copia de las
    entradas de registro y ficheros .ini apropiados.

22
Notas genéricas para instalar aplicaciones
  • Los inis del directorio de sistema
    (systemroot) serán copiados a cada home dir de
    cada usuario
  • Las entradas del registry se copian desde
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
    CurrentVersion\Terminal Server\Install\ Software
    a HKEY_CURRENT_USER\Software

23
Notas genéricas para instalar aplicaciones
  • Para que Terminal Server sepa hacer esto, hay que
    instalar las aplicaciones desde el panel de
    control o con el comando change user /install
  • No permitir la instalación de múltiples versiones
    de aplicaciones con DLLs compartidas
  • Muchas versiones de aplicaciones comparten DLLs,
    sólo se puede ejecutar una versión de una
    aplicación a un mismo tiempo. Ej. IE 3.x y IE 4.x
    comparten varias DLLs ? No funcionarán si las
    dos versiones se instalan en el mismo servidor.
  • Ver application compatibility scripts (ACS)
  • Aplicaciones antiguas pueden necesitar ACS para
    solucionar problemas en la instalación en TS

24
Notas genéricas para instalar aplicaciones
  • Soportar la customización vía el uso de
    perfiles del usuario, no vale especificar durante
    la instalación, porque cada usuario puede querer
    distintas funciones usar GPOs después
  • Especificar características disponibles para cada
    usuario con Windows 2000/2003 Group policy MMC
    snap-in
  • Windows NT server system policy editor
  • Consideración con el HW periférico
  • Ej Escaner USB no soportado (de momento)

25
Notas genéricas para instalar aplicaciones
  • APLICACIONES DOS Y WIN16
  • En principio no las quieres
  • Aplicaciones DOS y Win16 consumen más memoria que
    aplicaciones win32, WOW, VDM
  • Aplicaciones DOS pueden hacer polling de teclado,
    ratón, etc.
  • Se pueden modificar tiempos de polling
  • Ficheros de configuración común
  • Normalmente apps monousuario. Fich .ini común
    para todos, problemas.
  • http//www.tamedos.com/ for Tame

26
Agenda
  • Nociones de Arquitectura en entornos TS
  • Buenas prácticas para el desarrollo de
  • aplicaciones
  • Notas genéricas para instalar aplicaciones
  • Integración de aplicaciones
  • Otras Cosas

27
Integración de Aplicaciones
No sólo instalar, sino también mantener apps
  • Gestión de cambios
  • Doc/Desatendida/Imagenes/Probar
  • Soporte del entorno multiusuario
  • Lo de antes
  • Seguridad, ficheros y reg
  • No vale ser administrador
  • Scripts de compatibilidad (ACS)
  • systemrootApplication compatability scripts
  • Varias fuentes, pero Todd W Mathers, Windows
    NT/2000 Thin Client Solutions es muy bueno
  • Program Compatability Flags
  • Issues

28
Integración de Aplicaciones
  • Application Compatibility Scripts Para
    aplicaciones con problemas
  • systemrootApplication compatibility scripts
  • Afecta
  • Config de sistema
  • ej rootdrive definicion
  • User_Start_Menu locacion
  • Correr scripts justo después de instalar
    aplicación
  • usar change user /install
  • Correr scripts durante el logon de usuario

29
Integración de Aplicaciones
  • Application Compatibility Scripts
  • Para aplicaciones con problemas
  • Microsoft incluye
  • Usrlogon.cmd estándar system32
  • Usrlogn1.cmd system32
  • Usrlogn2.cmd system32
  • Setpaths.cmd ACS
  • RootDrv.cmd ACS
  • RootDrv2.cmd ACS
  • ChkRoot.cmd ACS
  • End.cmd ACS
  • Y unos 20-tantos ACSs para ciertas apps
  • También ver http//www.xs4all.nl/soundtcr/
  • Q279792, HOW TO Enable Application
    Compatibility-Mode Technology in Windows 2000 SP2
    and SP3

30
Integración de Aplicaciones
  • 3 utilidades de apoyo
  • ACINIUPD.exe actualiza ficheros .ini
  • ACREGL.exe Busca clave y valor en registro
    output
  • ACSR.exe Busca y reemplaza contenido de ficheros
  • Acs.doc Using and Developing Applications
    Compatibility Scripts with Windows NT Server
    4.0, Terminal Server Edition
  • Y scripting tools como
  • kixtart y WSH

31
Integración de Aplicaciones
  • Program Compatibility Flags
  • Para
  • INIs de Aplicación
  • Entradas del registro
  • Ej. Application
  • Para reducir uso de CPU (BadApp)HKEY_LOCAL_MACHINE
    \SOFTWARE\Microsoft\ Windows NT\CurrentVersion\Ter
    minal Server\ compatibility\Applications\app_name
  • También Appcompat.exe en CD win2000 y
  • Ver Q279792

32
Integración de Aplicaciones
  • Proceso de instalación
  • Hacer customización de aplicaciones antes,
    funciones, MST, etc. (Funcionalidad)
  • Instalar Change user /install
  • Reinicializar o Change user /execute

33
Integración de Aplicaciones
  • Resolución de problemas comunes
  • Algunas apps necesitan acceder al reg o un
    fichero, y no tienen accesousar RegMon y FileMon
  • Si necesita acceder al registro y no tiene
    permiso, comprobarlo (monitorizar ej regmon,
    filemon). http//www.sysinternals.com/
  • Sólo corre una instancia
  • 1/ limitación de seguridad en el reg o fichero
  • 2/ .exe o DLL en uso por la primera instancia
    ..probar registrando el .exe o dll como system
    Global
  • Sólo corre para el administrador pero no para el
    usuario normal .. Regmon y filemon
  • Comprobar mode install, permisos de usuario

34
Integración de Aplicaciones
  • Apps esperan un path fijado en código, probar
    Subst en script de logon por usuario
  • REM make sure C is not mapped
  • Net use /d c
  • Subst c /d
  • REM now point it at the application drive
  • Subst c y\
  • DrWatsonpor defecto desabilitarlo con drwtsn32
  • Mucho tiempo escribiendo en disco duro. Puede
    interesar para analizar una app

35
Agenda
  • Nociones de Arquitectura en entornos TS
  • Buenas prácticas para el desarrollo de
  • aplicaciones
  • Notas genéricas para instalar aplicaciones
  • Integración de aplicaciones
  • Otras Cosas

36
Otra cosas
  • RickD apptuning section on tweak citrix
    (Application Tuning Discussions)
  • http//www.tweakcitrix.com/Sections/AppTun.htm
  • Página principal de Terminal Server TSE 4.0
  • http//www.microsoft.com/ntserver/ProductInfo/term
    inal/default.asp
  • Página principal de windows 2000 terminal
    services
  • http//www.microsoft.com/windows2000/technologies/
    terminal/default.asp

37
Otra cosas
  • SEGURIDAD
  • Securing Windows 2000 Terminal Services, White
    Paperby David Mackey
  • http//www.microsoft.com/technet/treeview/default.
    asp?url/technet/prodtechnol/win2kts/maintain/opti
    mize/secw2kts.asp
  • Application Security tool (available with the
    Windows 2000 Server Resource Kit) white paper
    firewall de aplicaciones muy trivial
  • http//www.microsoft.com/windows2000/techinfo/resk
    it/tools/hotfixes/appsec-o.asp.
  • Appsense Appmanager firewall de aplicaciones
    avanzado
  • http//www.appsense.com

38
Otra cosas
  • ESCALABILIDAD
  • TScale
  • http//www.rtosoft.com/
  • Appsense Performance Manager y Optimizer
  • http//www.appsense.com
  • GESTION Y ADMINISTRACION
  • Softgrid
  • http//www.softricity.com/

39
Otra cosas
  • Auto-End Tasks
  • Si una aplicación no sale bien al cerrarla o en
    un shutdown de servidor, el sistema operativo
    puede terminar la aplicación usando Auto-End
    Tasks.
  • Auto-End Tasks terminan cualquier tarea que no
    responde al aviso de shutdown dentro del período
    de timeout por defecto
  • HKEY_USERS\.DEFAULT\Control Panel\Desktop
    Value AutoEndTasks (REG_SZ) 1
  • Value WaitToKillAppTimeout (REG_SZ) x, where x
    is the interval in milliseconds (default is
    20000)
  • Ver Q123058 (cerrar timed-out apps) y Q191805
    (prolonga período de timeout)

40
Testing Apps - Compatibilidad
  • Desde http//www.microsoft.com/windowsserver2003/p
    artners/isvs/cfwfaq.mspx
  • Q.Where can I find tools for testing applications
    running on Windows Server 2003?
  • A.There are three main tools AppVerifier,
    Compatibility Administrator, and Compatibility
    Analyzer.
  • AppVerifier Ayuda a identificar problemas
    potenciales de seguridad, estabilidad,
    compatibilidad de aplicaciones, monitorizando el
    uso de una aplicación del S. O (file system,
    registry, memory, and APIs)
  • Compatibility Administrator Determina la
    combinación correcta de los fixes de
    compatibilidad requeridos para soportar una app
    en Windows 2000, XP o 2003, y aplica los fixes a
    través de una compatibility database
  • Compatibility Analyzer Inventario de todas las
    apps ejecutándose en la red y analiza esa lista
    de apps para comprobar compatibilidad con el
    sistema operativo

41
Testing Apps - Stress Test
  • PRUEBAS DE CARGA
  • Citrix, Desde el CDN CSTK
  • Mercury Interactive
  • www.mercuryinteractive.com/
  • Scapa
  • http//www.scapatech.com/home.html

42
Preguntas?
Write a Comment
User Comments (0)
About PowerShow.com