SEIS Entrada a la Revista I+S

Informática y Salud

Nº 40. Marzo 2003

[Entrada] [Actividades] [Revista I+S] [Solicitud de Inscripción SEIS] [Búsquedas]


Portada I+S

Índice Nº 40

Editorial
Especial: PDAs (I)
Salud Laboral
El Sistema Sanitario Informa
Premios SEIS 2002
Inforenf 2003
Entrevista

 

 

 

 

 

 

Secretaría Técnica:

CEFIC
C/ Olimpo, 33, 1º C
28043 - Madrid
Telfs: (91) 388 94 78 / 79
Fax: (91) 388 94 79

Enviar correo a la Secretaría
cefic@cefic.com
 

 

 


ESPECIAL PDAs en salud

La programación de Dispositivos de Cómputo Móviles


Manuel E. Prieto Méndez
Grupo Oreto. Escuela Superior de Informática. Universidad de Castilla-La Mancha
Manuel.Prieto@uclm.es

(Este trabajo se desarrolla en el marco del proyecto coordinado DERMATEL, patrocinado por el FIS y desarrollado por grupos del C.H. de Ciudad Real y de la E.S. de Informática de la UCLM)

 

1. Introducción

Los Dispositivos de Cómputo Móviles abarcan una gran variedad de modelos, recursos y funcionalidades. Ese hardware tan diverso resulta a veces difícil de clasificar. Su arquitectura es básicamente similar a la de los Computadores de Sobremesa (aquí les llamaremos genéricamente PC). Poseen procesador, memoria y periféricos de entrada, salida, almacenamiento y conectividad. Pero todo en pequeño y normalmente integrado en una pieza con una pantalla que asume muchas de las actividades de interacción con los utilizadores.

Tanto en inglés como en español, estos dispositivos reciben diversas denominaciones algunas de las cuales refieren determinadas características físicas o funcionales. Para generalizar, y con el fin de evitar confusiones en los nombres, en este trabajo se denominarán Dispositivos de Cómputo Móviles (DCM).

Sobre el hardware se instala el software, compuesto en primer lugar por un Sistema Operativo sobre el que se instalan los programas que pueden ser aplicaciones finales o sistemas que permiten desarrollar otros programas. De modo que podemos hablar de Sistema Operativo (SO), Herramientas y Entornos de Desarrollo (HED) y Aplicaciones Finales (AF). Sobre un mismo hardware podrían instalarse diversos Sistemas Operativos.

 

 

2. Sistemas Operativos

Los más extendidos en los Dispositivos de Cómputo Móviles se refieren a continuación:

La familia Windows CE

Windows CE es el Sistema Operativo que Microsoft ha desarrollado a partir de Windows 95, para dispositivos móviles, y sirve de base para el desarrollo de los sistemas específicos de cada dispositivo. Lo que los usuarios finales disfrutan, no es Windows CE tal y como ha sido desarrollado. En cada tipo de dispositivo se implementa, desde las posibilidades que permite la versión de Windows CE disponible, una interfaz y las funcionalidades requeridas.

De este modo, y utilizando el ejemplo más extendido, es decir Windows CE 3.0, se han desarrollado varios Sistemas Operativos específicos. Para los llamados Asistentes Personales Digitales, Microsoft ha desarrollado el Pocket PC 2000 y 2002; para las Handheld PC (forma de libro, pantalla y teclado) existe el Handheld PC 2000; para coches tenemos la versión apropiada de AutoPC, etc. Cada uno de estos sistemas operativos finales, se ofrecen insertados en la memoria interna de cada uno de los dispositivos, y disfrutan de características diferenciales.

Esos sistemas pueden ser elaborados por Microsoft o por terceros. Por ejemplo, Microsoft ha desarrollado Pocket PC 2000 y 2002, y Casio por su parte ha desarrollado el sistema que utiliza su BE300. De esta forma el BE300 es un dispositivo con las funciones de un Asistente Personal Digital pero que no tiene compatibilidad con las aplicaciones de Pocket PC 2000 y 2002. Es el riesgo que se corre al hacer variaciones, pero esto no tiene por qué ocurrir en todos los casos.

Windows CE .NET, es la evolución de Windows CE 3.0 bajo la filosofía distribuida de .NET. Es pues, un escenario de trabajo que deberá ser adaptado a cada dispositivo. Esta nueva versión tiene muchas ventajas, que pueden ser aplicadas a cada uno de los sistemas operativos derivados. Según Microsoft, Windows CE .NET, incorporará la posibilidad de manejar las conexiones Bluetooth, Microsoft Internet Explorer 5.5, Windows Media 8 y DirectX y será compatible con una amplio rango de procesadores como Xscale, ARM, MIPS, SH o x86. Cada sistema operativo derivado, tomará las propiedades que le competan. Para obtener más información sobre esta familia de sistemas, véase el sitio de Microsoft http://www.microsoft.com/windows/embedded/ce.net/default.asp

 

 

Palm OS

La primera versión fue desarrollada por el fabricante de los DCM Palm para el modelo Pilot en 1996. Actualmente son muchos los fabricantes como Oracle, Nokia, Handspring, Symbol y Sony que utilizan diversas variantes y versiones de este Sistema Operativo que en conjunto representan el 66 % de todos los Sistemas Instalados en computadores de mano

Más de 90.000 desarrolladores de software han creado aplicaciones compatibles con Palm OS y más de 500 desarrolladores de hardware han diseñado accesorios complementarios, desde teclados y grabadores de voz, hasta cámaras digitales y sistemas GPS. Es previsible que en los próximos años este continúe siendo el sistema líder en implantación en el mercado.

Según la filosofía de Palm, ellos intentan tratar a la computación móvil no como versiones en miniatura de los sistemas de sobremesa, sino como dispositivos y aplicaciones dedicados a tareas y usos que tienen su propia identidad y reclaman sus propios recursos y soluciones.

En los últimos años, la versión más extendida ha sido la 4.1 que entre sus principales características, presenta el suporte "teórico" de 65 mil de colores así como la gestión de tarjetas de memoria externa. Recientemente Palm Computing se dividió en dos empresas distintas, una de hardware y otra de software, Palm Source – la cual ha presentado Palm OS 5 que es realmente un sistema diferente a los anteriores aunque esto se refiera más al funcionamiento interno que a lo relativo a su utilización externa. Una mejora significativa ha sido la posibilidad de manejar resoluciones de 160 x 160 y de 320 x 320 pixels.

De hecho, el juego de instrucciones del procesador es diferente ya que se cambió del DragonBall al ARM que por cierto es utilizado en muchas arquitecturas hardware de otros fabricantes de computadores de mano.

Para mantener la compatibilidad con la generación anterior del sistema operativo, la nueva versión incluye un emulador llamado PACE que permite ejecutar las más de 50000 aplicaciones existentes. Además, cualquiera que sea la norma considerada, WiFi Lan, Bluetooth, GSM/GPRS, o CDMA, el sistema Palm OS 5 integra las API necesarias. O sea, que los dispositivos equipados con Palm OS 5 pueden comunicarse fácilmente con todos los dispositivos existentes que estén basados en esas normas tales como teléfonos móviles, impresoras, módems, etc.

Las normas de seguridad incorporadas en el Sistema, permiten que las transacciones sean hechas de forma segura, viabilizando, también, el uso de firmas digitales homologadas. También ofrece servicios de encriptación Secure Sockets Layer de 128 bit. (SSL 3.0/TSL 1.0) para las conexiones.

El sistema incluye asimismo un browser para Internet, el NetFont que suporta entre otras normas, HTML 4.01, XHTML los GIFs animados, el modo seguro de acceso a la red VPN (Virtual Private Network) y la interpretación de código JavaScript. Estas normas ya utilizadas en los Sistemas de los computadores de sobremesa se introducen por vez primera en los equipos de mano.

Para finalizar, digamos que Palm OS 5 brinda facilidades importantes para las aplicaciones médicas ya que están soportadas la lectura de registros de audio con calidad CD así como de vídeo en 2 y 3 dimensiones. El Sistema Operativo Palm OS 5 es totalmente modular. Esto significa que si la licencia quiere instalar sólo las piezas que necesita para un hardware específico, puede hacerlo. Por ejemplo, si una compañía decide dejar fuera a uno de sus modelo el puerto infrarrojo, puede eliminar fácilmente la parte del OS que controla el puerto infrarrojo. Sobre los sistemas Palm OS pueden verse muchos detalles en http://www.palmsource.com/

 

Linux

LINUX es un sistema operativo compatible UNIX. Dos características muy peculiares lo diferencian del resto de los sistemas más extendidos en el mercado, la primera, es que es libre, esto significa que no hay costos por sus licencias, la segunda, es que el sistema viene acompañado del código fuente. LINUX se distribuye bajo la licencia pública del proyecto GNU que fue lanzado en 1984 para desarrollar el Linux de libre distribución. Como dato de interés, puede señalarse que el proyecto GNU es patrocinado por la Free Software Foundation (FSF) en la que cerca del 70 % de los fondos provienen de donaciones individuales.

El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la excelente relación calidad-precio que se consigue.

Linux es multitarea lo que se refiere a la capacidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los programas que se están utilizando en un momento dado serán ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa. Linux es también multiusuario, e instalable sobre diversas plataformas de procesadores

En los últimos años, algunos fabricantes de DCM han incorporado Linux a sus productos. Se están desarrollando versiones de Embedded Linux que constituyen la tercera alternativa a Palm OS y Windows CE para los computadores de mano. Asi, LinuxDevices.com, ha creado ha creado una guía de referencia para computadores de mano basados en Linux, con la que pretende mantener actualizados de manera permanente los productos Linux para DCM. Si bien el modelo Sharp Zaurus SL-5x00 fue el primer computador de mano con Linux pre-iinstalado, hay actualmente versiones de Embbeded Linux para casi todas las marcas.

Además de los tres mencionados hay otros sistemas operativos menos extendidos, casi siempre orientados a dispositivos de propósito específico como teléfonos móviles (Symbian OS; SmartPone), sistemas de navegación y otros. Un ejemplo es el sistema Epoc, utilizado en los equipos de la marca PSION. El Epoc16 (16 bits) es el más elemental, mientras que la versión superior, el Epoc32 (32 bits), permite realizar multitarea y pretende competir con Windows CE. Sobre estos sistemas puede encontrarse mas información en http://www.embedded-linux.org/

 

 

3. El desarrollo de las aplicaciones

El proceso de desarrollo de software para DCM, no es distinto al del software convencional, incluso se pueden emplear la mayoría de las herramientas y sólo cambiará la última parte, es decir: la compilación o generación de código ejecutable sobre el sistema operativo contenido en el dispositivo.

Hay dos formas de desarrollar aplicaciones para los DCM: Desde un computador anfitrión o sobre el propio dispositivo móvil

 

Desde un computador anfitrión

 

Esta es la forma más común a la hora de programar un dispositivo de mano. Esta técnica consiste en realizar la aplicación a través de alguna herramienta ejecutada en un PC. Estas herramientas pueden ser extensiones para los lenguajes y entornos habituales de los PCs o bien entornos de desarrollo específicamente creados para generar código ejecutable sobre los dispositivos de mano.

Dado que supondría un engorro tener que cargar en el DCM el programa en desarrollo cada vez que se quiera probarlo, conviene contar con emuladores de los dispositivos concretos y sus sistemas operativos.

En el mercado libre existen varios emuladores para Palm OS (así como diversas herramientas propietarias), aunque la más extendida dada su versatilidad y portabilidad es POSE (PalmOS Emulator). Dado que Windows CE es propietario y esta protegido por copyright no puede existir una herramienta libre que emule esta plataforma. De todas formas existen herramientas que simulan algunos procesos pero se distribuyen bajo licencia propietaria.

Para desarrollar programas para Embedded Linux sólo hay que elegir la arquitectura correcta al compilar, mientras se quiera probar puede hacerse en la misma máquina de desarrollo (con las opciones de compilación normales).

Normalmente, el proceso de puesta a punto de las aplicaciones concluye con la generación del código de la aplicación que se instalará en dispositivo de mano. En este caso hay dos filosofías de trabajo. O bien el código generado es directamente ejecutable en la máquina o bien se genera un código intermedio que al instalarse requerirá de un programa interprete que lo traduzca y ejecute definitivamente.

 

Programación en el computador de mano

Esta forma de programar consiste en realizar la aplicación directamente en el mismo DCM donde será ejecutada. Dadas las limitaciones de recursos de estos equipos, los editores y traductores de esta categoría suelen ser limitados en cuanto facilidades para el trabajo de programación y puesta a punto.

 

4. Lenguajes y entornos de programación

Los lenguajes de programación y sus entornos de desarrollo asociados disponibles para crear aplicaciones para los dispositivos de mano son, esencialmente los mismos que se utilizan para los demás computadores. No obstante ya existe algunos lenguajes específicamente diseñados para ello. En general el programador (que bien puede ser el propio utilizador final) escoge el lenguaje o el entorno de desarrollo que desea utilizar.

Como en todo, hay siempre una solución de compromiso entre requerimientos de cómputo, facilidad de uso y de aprendizaje, costo y calidad de los resultados que se obtienen. Al desarrollar aplicaciones para los equipos de mano hay que tener en cuenta su especificidad. El computador de mano no es un PC ni un laptop:

Tamaño de la pantalla, generalmente de 160 x 160 pixels

Patrón de utilización: varias veces al día por períodos muy cortos

Pocas entradas. No se requiere el ingreso de grandes volúmenes de datos

Potencia del procesador: Normalmente de 16 a 33 Mhz

Baterías pequeñas que sin embargo, bien utilizadas, pueden durar semanas sin recarga.

Memoria que suele llegar hasta 64 MB. Este factor impone las restricciones importantes pero pueden resolverse.

A continuación se presentan algunas de las plataformas de desarrollo más conocidas en el entendido que no se pretende abarcar todas las existentes

PDA TOOLBOX. Se trata de un entorno de desarrollo gráfico rápido y fácil de usar sobre PC´s, que permite a desarrollar aplicaciones para el sistema Palm OS, casi sin codificar. Contiene un repertorio de más de 60 componentes de interfaz como formularios, imágenes de color, botones, campos, botones de radio, ayuda en línea y otros que son usuales en las aplicaciones de los computadores de sobremesa.

Se destacan las facilidades para programar la transferencia de datos entre Palm y PC. Genera código .prc por lo que las aplicaciones resultantes son directamente ejecutables (no requieren de interpretes de código intermedio). Está especialmente orientado a la creación de aplicaciones de gestión de bases de datos. En el sitio http://www.pdatoolbox.com/ puede encontrarse información detallada, bajarse gratuitamente algunas versiones o adquirir una licencia por menos de 25 €

 

SATELLITE FORMS MobileApp Designer es un Entorno de Desarrollo Rápido basado en Vsual Basic, que genera código ejecutable para Palm OS® y para Pocket PC 2002. Permite la integración de aplicaciones de bases de datos con equipos de sobremesa utilizando componentes Actives o a través de servicios de gestión de datos suministrado por Pumatech's Enterprise Intellisync Server (incluido en Satellite Forms).

Incluye facilidades para garantizar la ejecución de las aplicaciones en regímenes de conexión por cable e inalámbricas. Los detalles pueden encontrarse en http://www.hallogram.com/index.html

 

 

SCOUTBUILDER es un software dinámico con el que se pueden crear aplicaciones para Palm OS de manera rápida.

Contiene un lenguaje de programación basado en BASIC y facilita la importación de tablas de bases de dados ODBC ya existentes. Utiliza el recurso Intellisense (como el de Visual Basic) para ayudar a completar líneas de código automáticamente y un editor WYSIWYG (What You See Is What You Get) Pueden verse los detalles y condiciones comerciales en: http://www.teraitech.com/Enterprise/scoutbuilder.htm  

 

 

CASL (Compact Application Solution Language) Entorno de desarrollo visual que se aloja en un PC de sobremesa (como casi todos) y genera código para Palm OS o Pocket PC, si bien las versiones más completas se dirigen a la primera plataforma. Permite el intercambio de datos entre el DMC y el PC a través de los programas de conexión. El lenguaje contenido en CASL es orientado a objetos y dirigido por eventos y permite incluir segmentos de código escritos en C. Hay una variante interpretada (necesita un ejecutor instalado en el dispositivo manual – CASL Runtime) y un traductor que genera código C que puede finalmente producir ficheros ejecutables .prc utilizando herramientas de código abierto y libre distribución. Sus desarrolladores (http://www.caslsoft.com/) otorgan importancia a los bajos requerimientos de memoria de las aplicaciones.

 

 

EMBEDDED VISUAL TOOLS. Es un conjunto de herramientas que no requieren de ningún software adicional para su completo funcionamiento. Estas herramientas son:

Embedded Visual Basic

Embedded Visual C ++

Pocket PC SDK

Handheld PC SDK

Palm PC SDK

Cada uno de los SDK (Software Developenent Kit) , corresponde a un tipo diferente de máquina de mano. Esos kits contienen compiladores y emuladores del equipo correspondiente que puede ejecutarse en el PC. Microsoft ya tiene en desarrollo Embedded Visual Tools 4.0 que están hechas para el sistema Windows CE.NET

Microsoft ofrece ahora Embedded Visual Basic (redenominado como EE Embedded Edition) de forma gratuita. Es un entorno autónomo y cuenta con un ambiente de desarrollo idéntico al Visual Basic de sobremesa por lo que se reduce la dificultad de su aprendizaje para los iniciados con las versiones anteriores. Otra ventaja importante es la que da la posibilidad de utilizar componentes del tipo Actives, de los que hay cientos realizados por diversas empresas en todo el mundo.

Embedded Visual C++ es el miembro más potente de esta familia de lenguajes. El código generado si es directamente ejecutable por los procesadores de los dispositivos de mano y, normalmente, es más rápido en ejecución. EVC++ permite crear y reutilizar componentes COM. Mas información, y descargas del software en http://www.microsoft.com/mobile/developer/default.asp

 

 

 

MOBILE VISUAL BASIC Mobile VB, de Appforge no es una aplicación autónoma, se empotra como parche que se añade a Visual Basic de sobremesa. Esto trae como ventaja, el poder programar directamente en ese entorno. Otro elemento importante es la utilización de sus propios componentes denominados Ingots. Los ingost son instalados y ejecutados en el dispositivo de mano a traves un interprete (Booster) que también debe instalarse. Cuesta unos 900 € (www.appforge.com)

 

 

HS PASCAL. La historia de HS Pascal (High Speed Pascal cross compiler) comenzó en 1990 con el Pascal de alta velocidad para los computadores Atari y Amiga. Ahora HS Pascal apoya la plataforma Computing de Palm Source El compilador produce rápidamente, pequeños y optimizados programas ejecutables directamente sobre Palm OS.

Un entorno de desarrollo para el compilador HS Pascal es Pythia el cual se ejecuta en un computador anfitrión bajo Windows. No utiliza ficheros temporales y la mayoría de los programas se pueden contener en un solo fichero .prc (los ejecutables en Palm OS). Otro entorno para HS Pascal es Poivre, diseñado en Francia. Esta herramienta posee entre otras, la capacidad de leer y escribir ficheros prc.

Claro que hay muchos más sistemas de desarrollo para DCMcomo por ejemplo: Pocket Scheme (Lisp); PerlCE (Perl); Pitón for Windows CE; Squeak (SmallTalk); TCL for CE (TCL); ANS Forth (Forth); PocketC (C/C++); CrEme (Máquina virtual de Java); Jeode (otra) y Waba que es quizás la herramienta basada en Java mas extendida en dispositivos móviles.

Para terminar con esta breve reseña de los recursos de software de los Dispositivos de Computo de Mano conviene resaltar la amplia utilización que ellos están teniendo en el ámbito de la medicina. Los artículos de esta monografía detallarán al respecto, pero además, uno mismo puede encontrar en Internet miles de referencias. Para no agobiar con una larga lista de direcciones, pruebe simplemente a combinar en su buscador preferido, palabras como HHC (Hand Held Computer) Ordenadores de Mano y Salud, Medicina, ...

También hay cientos de aplicaciones ya construidas que son programas de ayuda al trabajo de médicos y demás personal de la salud. Uno de los distribuidores mas importantes es Handango (www.handandgo.com)

 

 


Informática y Salud
Nº 40. Marzo 2003

Revista I + S

 

[Entrada] [Actividades] [Revista I+S] [Solicitud de Inscripción SEIS] [Búsquedas]

Copyright SEIS© 1997, 2003.
Última actualización: 04 abril 2004 10:31