Download T03TCAr10

Document related concepts
no text concepts found
Transcript
Portal de Aplicaciones Médicas
Ing. Javier A. Voos1 - Ing. Eduardo Gonzalez2 - Ing. Fernando Cagnolo2
1
2
Ingeniero en Sistemas de Información – U.T.N. – Facultad Regional Córdoba - Argentina
Ingeniero Electrónico – U.T.N. – Facultad Regional Córdoba - Argentina
Autor:
Ing. Javier A. Voos
Grupo de Ingeniería Clínica
Universidad Tecnológica Nacional
Facultad Regional Córdoba
Maestro M. López esq. Cruz Roja Argentina
Ciudad Universitaria - C.P. (X5016ZAA)
Córdoba - República Argentina.
Teléfono: +54 351 4684006 int. 122
Fax:
+54 351 4681823
e-mail: [email protected]
Web Site: http://www.frc.utn.edu.ar/gic
Objetivos del proyecto
Portal
Portlets
Funciones básicas del portal
Arquitectura de desarrollo
Referencias
Abreviaturas
Portal de Aplicaciones Médicas – Pág. 1
Objetivos del proyecto
1. Construir un portal web-enabled, que permita a los profesionales del área de la salud contar
con un único punto de interacción que permita el acceso a un amplio espectro de aplicaciones
existentes, referidas a distintos servicios médicos.
2. Implementar una aplicación informática utilizando una plataforma de software reconocida
mundialmente, a los fines de poder transmitir a la comunidad universitaria conocimientos muy
importantes para su formación académica.
3. Completar el desarrollo con un marco de trabajo válido para portales, que nos brinde la
infraestructura necesaria para futuros desarrollos web-enabled de aplicaciones médicas.
Portal
Definición
El portal es un sitio web que provee un único punto de interacción con aplicaciones,
información, personas y procesos, personalizados a las necesidades y responsabilidades del
usuario. Constituyen la próxima generación de escritorios de trabajo, permitiendo la ejecución
de aplicaciones a través de Internet utilizando no sólo una PC, sino además otros dispositivos
como PDA y teléfonos celulares.
Un portal brinda de una manera integrada contenidos y aplicaciones, con el agregado de un
espacio de trabajo unificado y colaborativo, con el objeto de proveer al usuario de toda la
información relevante que necesita para poder tomar decisiones de manera acertada, acorde a
sus necesidades y responsabilidades, en cualquier lugar y a cualquier hora.
Además de eso, provee otras funciones de valor agregado como seguridad, single sign-on,
publicación y búsqueda de contenidos, herramientas de colaboración y workflow. Cuenta con
una serie de funcionalidades que permiten a usuarios personalizar y organizar su propia vista
del portal, manejar sus perfiles y publicar y compartir documentos con sus colegas.
La gran diversidad de aplicaciones e información existente en el portal se organizará en
distintos espacios de trabajo virtuales, de acuerdo a perfiles de usuario, de esa manera cada
usuario tiene acceso a las aplicaciones que utiliza; existiendo además la posibilidad de
configurar múltiples espacios de trabajo para un usuario, si fuera necesario. Al incrementar la
disponibilidad de dichas aplicaciones, las mismas podrán ser optimizadas y favorecerá futuros
desarrollos informáticos orientados a temáticas específicas, a los fines de poder acelerar los
procesos de investigación y diagnóstico, fortaleciendo las relaciones entre profesionales.
Uno de los objetivos del portal consiste en la categorización del conocimiento de los
especialistas registrados, y compartir el mismo a través de la Web, brindando un espacio no
sólo informativo, sino interactivo.
Portal de Aplicaciones Médicas – Pág. 2
Portales horizontales y verticales
Los portales horizontales constituyen la infraestructura primaria sobre la cual el portal es
construido. El mismo está formado por una serie de subsistemas o módulos que incluyen:
•
•
•
•
•
•
•
•
•
Servicios de presentación.
Personalización.
Herramientas de colaboración.
Portlets.
Integración de aplicaciones y workflow.
Navegación y búsqueda de información.
Administración.
Seguridad: autenticación de ingreso y autorización sobre contenidos.
Publicación y suscripción de contenidos.
Para cada uno de estos módulos existen tecnologías de la plataforma J2EE [1], que permiten la
ejecución de los mismos en un servidor de aplicaciones.
Sobre esta base se “apoyan” los portales verticales que representan instancias específicas,
usualmente definidas por un dominio de aplicaciones relacionadas, cómo por ejemplo distintas
especialidades médicas.
Cardiología
Diag. Por Imágenes
Neurología
Análisis Clínicos
Psicología
Farmacología
Espacios
de Trabajo
Virtuales
Diabetes
Rehabilitación
Cancer
Servicios de Presentación
Personalización
Buscadores
Colaboración
Administración
Seguridad
Integración
Portal de
Aplicaciones
Servicios de Conectividad
Aplicaciones
Datos
Tests Neuropsic.
Pacientes
Laboratorios
Otras
Recursos
Disponibles
Figura 1: Portales Horizontales y Verticales
Portal de Aplicaciones Médicas – Pág. 3
Figura 2: Tecnologías J2EE involucradas en el portal
Portales Móviles
El portal no sólo es accesible a través del navegador de una PC; también en posible acceder al
mismo utilizando dispositivos móviles, soportando su accedo mediante la generación de páginas
en tres lenguajes: HTML, WML para dispositivos WAP (teléfonos móviles) y cHTML para
dispositivos móviles.
Los usuarios pueden personalizar una página de inicio para cada dispositivo, seleccionando el
contenido y las aplicaciones más útiles para el dispositivo. Cuando esta página es requerida, el
portal determina el dispositivo del cual proviene el requerimiento y ensambla los contenidos de
la misma utilizando el lenguaje acorde al dispositivo.
Portal de Aplicaciones Médicas – Pág. 4
Portlets
Definición
Uno de los módulos o subsistemas que integran la infraestructura de un portal, lo constituye un
entorno de ejecución para portlets. Los portlets nos van a permitir incorporar nuevas
funcionalidades al portal, cómo por ejemplo desarrollos de informática médica ya existentes.
Los portlets hacen referencia a una pequeña aplicación del portal, usualmente diagramados
como un componente dentro de la página web. Cualquier portlet puede ser desarrollado,
publicado y ejecutado independientemente de otro portlet, existiendo una serie de portlets ya
disponibles para las funcionalidades básicas del portal (e-mail, calendario, chat, etc.), los cuales
sólo es preciso configurarlos para su implementación.
Los portlets no son sólo simples vistas de contenido web, son aplicaciones completas, que
resuelven una problemática determinada, para ello cuentan con sus propios datos y pantallas,
con la posibilidad de integrarse a otros portlets ya publicados en el portal. Cuentan con un
entorno de ejecución (portlet container) provisto por la infraestructura del portal, que es
utilizada además para acceder a otros servicios como seguridad, manejo de ventanas,
personalización, acceso a contenido remoto, entre otros. Este entorno de ejecución esta basado
en una API que provee las clases e interfaces necesarias para programar los portlets, lo que
posibilita abstraerse de los mecanismos utilizados a bajo nivel por el portal para su ejecución.
Modalidades de visualización
Los portlets proveen diferentes interfaces con el usuario, dependiendo de la tarea a realizar,
entre ellos los modos de visualización, edición, ayuda y configuración, todos invocados desde la
barra superior de la ventana del portlet a través de iconos.
El modo de visualización es el modo normal de ejecución; el de ayuda provee al usuario
asistencia referida al uso del portlet; el modo de edición permite al usuario cambiar seteos de
presentación y el modo de configuración, si está soportado por el portlet, provee una página de
configuración, cuyos seteos serán compartidos por todos los usuarios.
Cada ventana donde se visualiza el portlet se pueden maximizar y minimizar; cuando un portlet
es maximizado, este ocupa toda la ventana del portal, cubriendo las vistas de otros portlets de
la página; y cuando es minimizado sólo se visualiza la barra superior de la ventana con el título.
Generalmente una aplicación que se ejecute en el portal, va a estar formada por una serie de
portlets, y serán los administradores del portal los encargados de configurarlos en un entorno
de producción, sin necesidad de detener el portal.
Portal de Aplicaciones Médicas – Pág. 5
Funciones básicas del portal
Organización
Información
Integración
Aplicaciones
Colaboración
Usuarios
Figura 3: Funcionalidades del Portal
Organización de la información:
Organización - Información
Aplicaciones
Documentos
Internet
Desarrollos
Propios
Figura 4: Organización de la información
Una de las funciones del portal consiste en organizar la gran cantidad de información existente
en los ámbitos de trabajo donde los especialistas llevan a cabo sus funciones. Esta información
incluye, entre otras cosas lo siguiente:
•
•
•
•
Aplicaciones existentes en una Intranet: sistemas administrativos, de gestión,
hospitalarios, historias clínicas, pacientes, etc.
Documentos: presentaciones, estadísticas, archivos de texto, hojas de cálculo,
imágenes, papers.
Internet: información proveniente de otros portales de contenidos.
Desarrollos informáticos a medida, que atienden una problemática específica.
Esta abundancia de información provoca que se invierta mucho tiempo en localizar los
contenidos necesarios, de allí que el portal tendrá como objetivo identificar la información
relevante y brindar una clasificación de la misma, a los fines de poder crear repositorios de
contenidos indexados, lo que va a permitir crear mecanismos de búsqueda para acceder a los
mismos.
Portal de Aplicaciones Médicas – Pág. 6
Estos mecanismos de búsqueda utilizarán patrones definidos por los usuarios, a los fines de
aprovechar el know-how de los especialistas a la hora de buscar información, existiendo
además la posibilidad de incorporar técnicas de data-mining si el volumen de información lo
justifica.
Otra funcionalidad estará dada por las herramientas de publicación y suscripción, donde los
autores van a poder manejar suscripciones de otros usuarios a contenidos por ellos publicados.
La categorización de la información en los distintos repositorios va a permitir distribuir su
acceso a distintos espacios de trabajo virtuales, pertenecientes a las distintas especialidades
médicas existentes en el portal, de manera tal que inicialmente el profesional al momento de
ingresar al portal ya cuente con contenidos filtrados según su perfil.
Los profesionales van a contar además con la funcionalidad de compartir documentos a través
de la publicación de sus carpetas, incorporando de esa manera otra fuente de información.
Integración de Aplicaciones
Integración - Aplicaciones
Portlet
Catálogo de Portlets
Existentes
Crear nuevos Portlets
(MVC)
Figura 5: Integración de Aplicaciones
El mecanismo de acceso a aplicaciones existentes a través del portal es mediante un portlet.
Para ello existen dos alternativas:
- Configurar y personalizar portlets ya existentes.
- Desarrollar nuevos portlets siguiendo la arquitectura MVC (Model – View – Controller).
Es posible integrar aplicaciones ya existentes, mediante la definición de procesos de workflow,
lo que permitiría por ejemplo reemplazar formularios de papel por formularios electrónicos
accesibles a través del portal, cómo una opción válida para comunicarse entre distintas
aplicaciones.
Al centralizar el uso de formularios, será posible una rápida adaptación a cambios o
actualizaciones, una correcta asignación de destinatarios, mayores posibilidades de
visualización, seguimiento e incorporación de mecanismos de seguridad.
El desarrollo de nuevas aplicaciones mediante el uso de portlets, tiene como objetivo brindar
soluciones que sean fácil de utilizar por los usuarios del portal, y ayuden a trabajar de manera
eficiente, combinando todo lo que ellos necesitan en un solo lugar.
Portal de Aplicaciones Médicas – Pág. 7
Colaboración – Usuarios
Colaboración - Usuarios
Web
Confering
Chat Messaging
Pizarras
Electrónicas
Directorio
Especialistas
Figura 6: Colaboración entre usuarios
El portal persigue la idea de facilitar el trabajo en equipo, es por ello que cuenta con varias
funcionalidades tendientes a promover la relación entre los profesionales, y brindar un rápido
acceso a la información:
•
•
•
•
•
•
•
•
Boletines Informativos
Chat - Messaging
Web Confering
Interactuar con texto, audio y video.
Determinar quien está en línea.
Compartir ideas y colaborar en pizarras electrónicas o durante la sesión de las
aplicaciones.
Permitir la comunicación desde cualquier lugar, utilizando cualquier dispositivo.
Localizar expertos.
El objetivo es maximizar las comunicaciones entre los usuarios ofreciendo distintas alternativas
para llevarlas a cabo, de esa manera cada profesional podrá elegir la que mejor se adapte a sus
necesidades, a los fines de motivar la creación de un ambiente colaborativo, donde los
profesionales puedan desempeñar sus tareas.
Existen además funcionalidades del portal, que permiten acercar las posibilidades de
comunicación a usuarios que no tienen una PC en su entorno de trabajo (“deskless”), mediante
el uso de estaciones de trabajo compartidas o web-kiosks, donde no es necesario un
entrenamiento especial para su uso, permitiendo que los mismos cuenten con correo
electrónico, visualizar resultados de estudios, futuras conferencias, boletines informativos, y
demás información acorde al espacio virtual de trabajo al que pertenece.
El siguiente ejemplo pretende visualizar las dos maneras posibles de interacción de un usuario
frente a la publicación de información en un sitio Web:
“Un profesional publica un paper en el portal, con los resultados de una determinada
investigación relacionada a su especialidad. Otros usuarios acceden a su contenido a través de
“áreas de interés” en el portal o bien utilizando mecanismos de búsqueda. En un entorno
normal de publicación, el usuario puede conocer el nombre del autor y su correo electrónico. En
un portal, además de la información antes mencionada, el usuario puede saber si el autor está
en línea, iniciar con él una conversación o bien crear una conferencia a la cual puede adjuntar
el paper, invitar a otros usuarios y debatir sobre el contenido del documento. En caso de que el
autor no este en línea, puede visualizar su directorio de documentos y obtener del mismo
información relacionada, tendiente a resolver las dudas planteadas.
Portal de Aplicaciones Médicas – Pág. 8
Arquitectura de Desarrollo
Para el desarrollo de nuevos portlets destinados a resolver problemáticas específicas, nuestro
grupo de investigación ya tiene desarrollado un framework, que permite la construcción de los
mismos de una manera más eficiente, utilizando la plataforma J2EE (Java 2 Enterprise Edition).
El diseño e implementación del framework, se realizó siguiendo los lineamientos definidos por
J2EE Blue Prints [2] y Core J2EE Patterns [3].
J2EE Blue Prints utiliza una aplicación de ejemplo denominada Java Pet Store, la cual sirve de
guía a los desarrolladores, ya que brinda los lineamientos necesarios a los fines de poder lograr
un uso eficiente de la plataforma J2EE en el desarrollo de aplicaciones.
J2EE BluePrints recomienda Model-View-Controller (MVC) como patrón base para diseñar
aplicaciones J2EE interactivas.
La arquitectura MVC organiza el diseño de una aplicación interactiva mediante la separación de
la presentación de los datos, la representación de los mismos y el comportamiento de la
aplicación.
•
•
•
El modelo (Model) representa la estructura de los datos en la aplicación, cómo así
también las operaciones a realizar con esos datos.
La vista (View) presenta los datos al usuario de diferentes maneras, en el contexto de
alguna regla de negocio.
El controlador (Controller) traduce las acciones e ingresos de los usuarios, en llamadas
a los métodos de negocio en el modelo y selecciona la vista apropiada basada en las
preferencias del usuario y el estado del modelo.
Model
Consultas de Estado
Notificaciones de
Cambios
- Encapsula estados de la aplicación.
- Responde a consultas.
- Expone la funcionalidad de la
aplicación.
- Notifica a las vistas los cambios.
View
Cambios de Estado
Controller
Selección de Vistas
- Se actualiza como consecuencia de
modificaciones en los modelos.
- Envía requerimientos del usuario al
Controller, a los fines de permitirle la
selección de las vistas.
Requerimientos de
Usuario
- Define el comportamiento de la
aplicación.
- Actualiza los modelos de acuerdo a
los requerimientos de usuario.
- Selecciona la vista adecuada.
Llamada a métodos
Eventos
Figura 7: Arquitectura Model-View-Controller
Esencialmente, un modelo se encarga del estado de la aplicación y su funcionalidad,
una vista de la presentación de la aplicación y el controlador del comportamiento en respuesta
a una acción del usuario.
MVC provee muchos beneficios en el diseño. Separando el modelo de la vista permite
incorporar múltiples presentaciones para los mismos datos, facilitando incorporación de nuevas
tecnologías para las presentaciones.
Portal de Aplicaciones Médicas – Pág. 9
Separando el controlador de la vista, permite una selección en tiempo de ejecución de
la vista apropiada basada en workflow, comportamientos del usuario o estado del modelo.
Separar el controlador del modelo brinda la posibilidad de poder convertir acciones del
usuario en el controlador, a funciones de la aplicación en el modelo.
Componentes de la arquitectura Model-View-Controller y su ubicación en las capas
de una aplicación J2EE
Capa Cliente
Capa Web
JSP
Template
Screen Def.
Capa EJB
Model
Java
Beans
Model
Enterprise
Beans
Data
Access
Objects
Capa EIS
DBMS
Model
Browser
Screen
Flow
Manager
Controller
Web
Proxy
Controller
Enterprise
Bean
Front
Controller
View
Request
Processor
Request
Map
Controller
Figura 8: Componentes de la arquitectura
Capas de una aplicación J2EE
Una aplicación J2EE, está implementada en varias capas, cada una de las cuales es responsable
de diferentes tareas como persistencia de la información, funcionalidad e interacción con el
usuario. Mediante esta división es posible utilizar diferentes criterios para el diseño y la
implementación en cada una de las capas, con el propósito de poder cumplir de la mejor
manera posible los objetivos de diseño antes mencionados.
Cada una de las capas posee un rol definido en el funcionamiento de la aplicación, disponiendo
de una serie de tecnologías, para poder llevar sus funciones.
Análisis de la arquitectura
La arquitectura MVC cuenta con una serie de componentes (patterns) [3] que facilitan la
escalabilidad de la aplicación, ya que para la incorporación de una nueva funcionalidad sólo es
necesario definir un nuevo evento e implementar los componentes antes mencionados con la
nueva lógica de negocio, permitiendo que la respuesta a cualquier evento siempre siga la
misma secuencia de ejecución.
Portal de Aplicaciones Médicas – Pág. 10
Esta secuencia ha facilitado el mantenimiento del código desarrollado, ya que ante la necesidad
de modificar o agregar alguna regla de negocio, sólo es necesario elegir el componente
responsable e implementarlo.
Existen tecnologías J2EE [5] (JSP, Servlet, EJB, JAXP, entre otras), que se van actualizando
constantemente a través de versiones, con el objetivo de corregir errores e incorporar nuevas
prestaciones. Cada actualización está debidamente documentada, y si es preciso incorporarla
sólo se implementa en aquellos módulos que la utilizan, sin necesidad de cambiar todas las
tecnologías utilizadas en la aplicación, permitiendo ir incorporando nuevas prestaciones sólo en
la medida en que éstas sean demandadas por nuevos eventos.
El trabajo en equipo se ve favorecido por la independencia entre los módulos, de esta manera
es posible asignar tareas de acuerdo a lo que cada uno mejor conoce, tendiente a incrementar
la productividad del trabajo en equipo y la calidad de la aplicación.
Cada uno de los módulos de una aplicación J2EE cuenta con un archivo XML de configuración
(deployment descriptor) que define diferentes seteos (seguridad, persistencia, transacciones)
de una manera declarativa, permitiendo su modificación sin necesidad de re-compilar la
aplicación. Este esquema se puede utilizar para varias de las configuraciones propias de los
portlets, como por ejemplo el manejo de las vistas, requerimientos de usuarios, multilenguaje e
integración con otros portlets.
Referencias
1.
Java 2 Platform, Enterprise Edition Specification, Versión 1.2 (J2EE Specification). Copyright
1999, Sun Microsystems Inc.
URL: http://java.sun.com/products/j2ee/download.html
2.
Java BluePrints, Sun Microsystems Inc.
3.
Core J2EE Patterns, Sun Microsystems Inc.
URL:
http://java.sun.com/blueprints/corej2eepatterns/index.html
4.
Kassem Nicholas. Introduction. In: Designing Enterprise Applications with the Java 2 Platform,
Enterprise Edition. Addison-Wesley 2000. p. 1-23
5.
J2EE Technologies, Sun Microsystems Inc.
URL: http://java.sun.com/blueprints
URL: http://java.sun.com/products
Abreviaturas
J2EE:
JSP:
JCA:
JMS:
JDBC:
EJB:
JAXP:
API:
XML:
HTML:
WML:
WAP:
MVC:
Java 2 Enterprise Edition
JavaServer Pages
Java Connector Arquitecture
Java Messaging Services
Java Database Connectivity
Enterprise JavaBeans
Java API for XML Proccessing
Application Programming Interface
Extensible Markup Language
HyperText Markup Language
Wireless Markup Language
Wireless Application Protocol
Model–View-Controller
Portal de Aplicaciones Médicas – Pág. 11