Herramientas Investigadas para obtener MediCom

Transcripción

Herramientas Investigadas para obtener MediCom
Herramientas Investigadas para obtener
MediCom
Ana María González Urueta, Diana Carolina Ramírez Osorio
7 de diciembre de 2010
Índice general
1. Introducción
5
2. Herramientas y Toolkits investigados
6
2.1.
2.2.
2.3.
2.4.
Toolkits DICOM para gestión de imágenes médicas . . . . . . . .
6
2.1.1.
Dcm4che
. . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1.2.
DCMTK
. . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.3.
SDK médico informático de C-DAC para DICOM v2.0 . .
2.1.4.
Dicom3Tools
2.1.5.
Dicom4j[27] . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
Visores de Imágenes Médicas
. . . . . . . . . . . . . . . . . . . .
9
11
11
12
2.2.1.
3D-Slicer
. . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.2.2.
DicomLab [2] . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.3.
DicomWorks
17
2.2.4.
CIBC:ImageVis3D
2.2.5.
Aeskulap - DICOM Viewer
2.2.6.
MITO - Medical Imaging TOolkit
2.2.7.
ParaView
2.2.8.
Visualization ToolKit (VTK)
2.2.9.
ImageJ
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
18
20
. . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . . . . . . . . .
22
. . . . . . . . . . . . . . . .
24
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Herramientas y Toolkits Colaborativos . . . . . . . . . . . . . . .
29
2.3.1.
Access Grid . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.3.2.
CATMAID: Collaborative Annotation Toolkit for Massive
Amounts of Image Data . . . . . . . . . . . . . . . . . . .
33
2.3.3.
Habanero 3.0 . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.3.4.
JGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Herramientas de Videoconferencia
36
. . . . . . . . . . . . . . . . .
43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
2.4.1.
Qnext
2.4.2.
Quick Message 1.0
2.4.3.
JavaTalk
2.4.4.
Sip Communicator . . . . . . . . . . . . . . . . . . . . . .
47
2.4.5.
CamFrog
49
2.4.6.
Ekiga
2.4.7.
BigBlueButton
. . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . . .
47
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
1
52
53
Índice de guras
2.1.
Services dcm4che [44]
2.2.
dcm4che [44]
. . . . . . . . . . . . . . . . . . . . . . . .
2.3.
Arquitectura de SDK de C-DAC
2.4.
Descripción Plataforma dicom4j [27]
2.5.
Captura 3DSlicer [41]
2.6.
Arquitectura de 3DSlicer [28]
2.7.
Captura de DicomLab [2]
2.8.
Captura DicomWorks. [30]
2.9.
Interfaz de CIBC:ImageVis3D [26]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
7
8
10
. . . . . . . . . . . . . . . .
11
. . . . . . . . . . . . . . . . . . . . . . . .
13
. . . . . . . . . . . . . . . . . . . .
13
. . . . . . . . . . . . . . . . . . . . . .
18
. . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . .
20
2.10. Captura de Aeskulap [3] . . . . . . . . . . . . . . . . . . . . . . .
21
2.11. Captura de MITO [10] . . . . . . . . . . . . . . . . . . . . . . . .
22
2.12. Capturas de Paraview [14, 19] . . . . . . . . . . . . . . . . . . . .
22
2.13. Pila de Librerías sobre las que está construida Paraview [29]
23
. .
2.14. Modo Stand alone de Paraview [29] . . . . . . . . . . . . . . . . .
24
2.15. Modo Cliente-Servidor de Paraview [29]
24
. . . . . . . . . . . . . .
2.16. Modo Cliente-Render Servidor-Datos Servidor de Paraview [29] .
25
2.17. Arquitectura de VTK [7] . . . . . . . . . . . . . . . . . . . . . . .
25
2.18. Captura de VTK [42] . . . . . . . . . . . . . . . . . . . . . . . . .
27
?
2.19. Capturas de ImageJ [ , 8] . . . . . . . . . . . . . . . . . . . . . .
28
2.20. Toolbar de ImageJ [33] . . . . . . . . . . . . . . . . . . . . . . . .
29
2.21. Diagrama UML ImageJ
. . . . . . . . . . . . . . . . . . . . . . .
2.22. Arquitectura de AccesGrid [43]
. . . . . . . . . . . . . . . . . . .
2.23. Ejemplo del demo de AccesGrid [40]
. . . . . . . . . . . . . . . .
32
. . . . . . . . . . . . . . . . . . .
33
. . . . . . . . . . . . . . . . . . . . .
34
2.24. Arquitectura de CATMAID [9]
2.25. Captura de CATMAID [37]
30
32
2.26. Proceso de colaboración en tiempo real mediante Habanero
. . .
35
2.27. Captura de Habanero [11] . . . . . . . . . . . . . . . . . . . . . .
37
2.28. Arquitectura de JGroups. Tomado de: [6]
2.29. Canal de soporte a comunicación [5]
. . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . .
39
2.30. Estructura de mensaje de JGroups[5] . . . . . . . . . . . . . . . .
40
2.31. Pila de Protocolos de JGroups[5]
41
. . . . . . . . . . . . . . . . . .
2.32. Qnext [31] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
2.33. QuickMessage [32]
47
. . . . . . . . . . . . . . . . . . . . . . . . . .
2.34. Sip Communicator [21]
. . . . . . . . . . . . . . . . . . . . . . .
2
50
3
ÍNDICE DE FIGURAS
2.35. Camfrog [20]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
2.36. Ekiga.net [16] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
2.37. BigBlueButton [15] . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Índice de cuadros
2.1.
Características de Llamadas en los Protocolos [21]
. . . . . . . .
48
2.2.
Mensajería Instantánea [21] . . . . . . . . . . . . . . . . . . . . .
49
2.3.
Servicios de Ekiga [16] . . . . . . . . . . . . . . . . . . . . . . . .
54
2.4.
Características por Rol [15]
57
. . . . . . . . . . . . . . . . . . . . .
4
Capítulo 1
Introducción
El propósito de este documento es mostrar todas aquellas herramientas y
toolkits investigados por el grupo de trabajo, con el n de encontrar las que más
características brindarán y facilitarán el proceso de integración entre ellas para
lograr obtener el resultado nal propuesto como trabajo de grado: MediCom.
5
Capítulo 2
Herramientas y Toolkits
investigados
2.1.
Toolkits DICOM para gestión de imágenes
médicas
2.1.1.
Dcm4che
Open Source Clinical Image and Object Management
dcm4che es
una colección de aplicaciones y utilidades de código abierto para la industria
de la salud. Estas aplicaciones han sido desarrolladas en el lenguaje de programación Java para portabilidad y desempeño, soportando la implementación en
JDK 1.4 hacia adelante. En el núcleo del proyecto, dcm4che es una aplicación
robusta del estándar DICOM. El conjunto de herramientas DICOM dcm4che1.x se utiliza en muchas aplicaciones de producción en todo el mundo, mientras
que la versión actual (2.x) ha sido rediseñada para un alto rendimiento y exibilidad. También dentro del proyecto dcm4che, está dcm4chee (la e extra
es de empresa).
dcm4chee
es un Administrador de imágenes / Archivo de
Imágenes (según IHE). La aplicación contiene los servicios e interfaces de DICOM, HL7 que se requieren para proporcionar almacenamiento, recuperación
y ujo de trabajo a un entorno sanitario. dcm4chee es pre-empaquetado e de-
splegado en el servidor de aplicaciones JBoss. Al tomar ventaja de las muchas
características de JBoss (JMS, EJB, Servlets motor, etc), y asumiendo el papel
de varios actores IHE para asegurar la interoperabilidad, la aplicación ofrece
muchos servicios robustos y escalables, que se muestran en la gura 2.1:
Resumen del Sistema
Los componentes de dcm4chee trabajan juntos
para ofrecer una implementación de referencia de los muchos actores IHE y
Perles de Integración. Se usa el término "implementación de referencia", no
porque el sistema es puramente académico. Por el contrario, es capaz de (y de
hecho lo es) desplegado en la producción en muchos sitios alrededor del mundo.
6
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
7
Figura 2.1: Services dcm4che [44]
El término se utiliza porque no hay otro sistema en el mundo proporciona una
implementación completa y bien diseñada de la funcionalidad de IHE-denido
tanto en forma de código abierto.
dcm4chee es un sistema multi-plataforma. Está desarrollado en Java, sólo la
utilización de C / C + + para las bibliotecas de compresión (codecs de la libre
circulación de Sun para Java Advanced Imaging), y se distribuye como componentes integrados en un servidor de aplicaciones Java Enterprise Edition (JEE).
dcm4chee se ha implementado en diferentes plataformas de sistema operativo:
Microsoft Windows
Varias marcas de Linux
Apple OSX
Sun Solaris
IBM AIX
dcm4chee usa una base de datos para guardar información de los headers de
DICOM, información de index para localizar los objetos en el sistema de archivos
y otros datos pertinentes a la clínica y al sistema. Seis bases de datos diferentes
son soportadas para la implementación con el sistema:
PostgreSQL
MySQL
Oracle
SQL Server
DB2
Firebird
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
8
HSQL
Figura 2.2: dcm4che [44]
2.1.2.
DCMTK
DCMTK es una colección de librerías y aplicaciones que implementan partes
del estándar DICOM. DCMTK incluye el software necesario para el examen, la
construcción y la conversión de archivos de imagen DICOM, manejando los
medios de comunicación, enviando y recibiendo imágenes sobre la conexión de
red, así como la demostración de almacenaje de imágenes y bases de datos.
Estas librerías son un completo código fuente y han sido escritas en una mezcla
de ANSI C y C++. El Toolkit del DCMTK es un software libre y se puede
descargar de la página a (http://dicom.os.de/dcmtk.php.en).
DCMTK ha sido usado en numerosas demostraciones DICOM como proveedor central, vendedor independiente, almacenaje de imagen y servidores worklist. Es usado por hospitales y empresas en todo el mundo para una amplia
variedad de propósitos desde ser una herramienta para pruebas de productos, a
ser un componente básico a para proyectos de investigación, prototipos y productos comerciales. El software DCMTK puede ser compilado bajo el Windows
NT o una amplia gama de sistemas operativos Unix que incluyen Linux, Solaris,
OSF/1, IRIX, FreeBSD y MacOS X. Todo lo necesario para la conguración y
los makeles son suministrados. La página ocial de Os es www.os.de .
Librerías
Las funciones son agrupadas en carpetas dependiendo de la
función que desempeñe.
Cong: Incluye los cheros .h necesarios para la conguración del toolkit.
Dcmdata: Contiene funciones para el tratamiento de los datos de los
archivos DICOM y Data Sets.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
9
Dcmimage: Funciones para el tratamiento de los datos de los píxeles de
una imagen. Sólo para imágenes DICOM sin comprimir.
Dcmimgle: Sirven para el tratamiento de la luminosidad de las imágenes.
Dcmjpeg: Son funciones para la compresión/descompresión de imágenes
DICOM a JPEG.
Dcmnet: Funciones para el transporte de los archivos DICOM a través de
la Red.
Dcmpstat: Funciones para el tratamiento de escalas de grises y estados de
presentación.
Dcmsing: Para la creación o supresión de una rma digital para un archivo
DICOM y su vericación.
Dcmsr: Para la conversión de documentos DICOM SR (Structured Reporting) a HTML, XML .
Dcmtls: Para la transmisión segura de archivos DICOM por la Red.
Imagectn: Para el registro de archivos en una base de datos.
Wlistctn: Para implementar un SCP como una Base de Datos.
Notas
La gran ventaja de estas librerías es que son un producto de código
abierto, es decir, son un producto gratuito.
2.1.3.
SDK médico informático de C-DAC para DICOM
v2.0
Es un conjunto APIs orientadas a objetos que pueden ser usadas para hacer
aplicaciones de la salud relacionadas con la especicación DICOM versión 3.0
del 2004.
Características
Las características que presta este SDK son las sigu-
ientes:
Códigos de ejemplo, tutoriales y otros hacen la vida fácil a los desarrolladores que hasta ahora están empezando. Documentación API comprensible explica el uso de los diferentes componentes del toolkit.
Multi-plataforma. Desarrollado para funcionar también en Java o .NET.
Se integra con Rapid Application Development Tools.
Entre otras.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
10
Figura 2.3: Arquitectura de SDK de C-DAC
Arquitectura de un vistazo
Capa base (Base Layer )
Soporta todo los tipos de datos, el diccionario
de datos, elementos de datos soportados de DICOM. Proporciona la manipulación del nivel de conjunto de datos de los datos de DICOM, que es muy
útil para los desarrolladores de DICOM. La creación, la navegación, la manipulación del conjunto de datos permite a los desarrolladores a construir una
estructura denida DICOM para la comunicación con otras entidades compatible con DICOM. La vista del conjunto de datos de datos de DICOM permite a
los desarrolladores para hacer frente a los datos al nivel de DICOM.
Modelo de datos (Data Model )
Soporta todos la información Deni-
ciones de objetos (IOD) de DICOM. El toolkit proporciona un enfoque orientado a objetos a través IODs para representar datos DICOM. Este mecanismo es
muy útil para desarrolladores orientados a objetos que tengan poco conocimiento de DICOM. La vista de datos del Modelo de datos de DICOM permite a los
desarrolladores trabajar con datos DICOM a través de envoltorios de objetos
orientados .
Capa DIMSE (DIMSE Layer )
El toolkit proporciona un amplio apoyo
a los servicios normalizados y compuestos de DICOM . Los desarrolladores
pueden construir Usuarios de Servicio de Clase (SCU) y / o Proveedores de
Servicio de Clase (SCP) con esta capa. La capa DIMSE oculta la complejidad
del estándar proporcionando una capa orientada en la parte superior con el que
el desarrollador puede construir módulos de servicios.
Capa de comunicación (Communication Layer )
Esta capa involucra
a entidades de comunicación en el nivel básico DICOM. El desarrollador puede
construir su propia lógica de la aplicación en la parte superior de la misma
manera que el envoltorio DIMSE del desarrollador pueda ser construido. La capa
se ha diseñado teniendo en cuenta la memoria y los problemas de la eciencia
del proceso.
CAPÍTULO 2.
2.1.4.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
11
Dicom3Tools
Utilidades en línea de comandos para crear, modicar, el volcado y la validación de archivos con atributos de DICOM, conversión de formatos de imagen
a la propiedad de DICOM. [38]. Son pequeñas herramientas Open Source que
corren bajo Unix, Linux, Mac y Windows. Sin embargo, no se ha implementado
ninguna herramienta que soporte para la comunicación en red[12].
2.1.5.
Dicom4j[27]
El propósito de la plataforma dicom4j es el de proveer componentes Java
relacionados con el estándar DICOM. Para este propósito, la plataforma está
basada en 4 áreas (ver imagen 2.1.5):
Figura 2.4: Descripción Plataforma dicom4j [27]
Framework: Framework que implementa el estándar.
Toolkit: ofrece maneras de desarrollar software fácilmente basado en el
framework.
Plugins: componentes de usuario nal los cuales apuntan a necesidades
comunes, que se encuentran en la mayoría de aplicaciones DICOM.
Apps: Aplicaciones stand alone para propósitos de pruebas o para usuario
nal..
Este framework puede ser usado para uso comercial o no comercial. El código
fuente está basado en librerías ampliamente utilizadas por terceros (mina, log4j,
etc.).
Características
Este framework cuenta con las siguientes características:
Diccionario DICOM (parte 6).
Enviar/recibir datos sobre la red (basado en mina de apache).
Servicio Dimse (vericación, almacenamiento, lista de tareas, etc. ) .
Funcionalidades de log (basado en slf4j y log4j).
CAPÍTULO 2.
2.2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
12
Visores de Imágenes Médicas
2.2.1.
3D-Slicer
3D-slicer es una herramienta open source para la reconstrucción en 3D, la
cual es un poco especíca en el manejo de las imágenes médicas, ya que se
limita a todo tipo de imágenes tomográcas, en particular a as CT y MRI (Ver
Glosario). Cabe resaltar que es de código abierto desarrollado sobre OpenGL,
usa VTK (Ver 1.6 Visualization ToolKit (VTK)) para el procesamiento y Tcl/Tk
para la interfaz gráca. Está hecho en C++ y está basada en el kit NAMIC y en
una gran variedad de toolkits, librerías. 3DSlicer tiene una variedad de módulos,
donde se incluyen módulos integrados, módulos cargables, con secuencias de
comandos módulos, módulos de línea de comandos. De igual forma, tiene un
motor de ujo de trabajo para permitir a los desarrolladores introducir el usuario
la orientación en el ujo de trabajo.
Éste además, sobresale debido a las funcionalidades de alta calidad que ofrece
tales como las reconstrucciones de supercie, mediciones volumétricas, registro
de imágenes, procesamiento de DTI(Tractografía de difusión, ver Glosario), una
interfaz para dispositivos externos para guía de soporte de imágenes y render
de volumen, entre otras.[4]Proporciona la capacidad para la adaptación de los
conjuntos de datos, semi-automático de segmentación (extracción de estructuras
tales como los quistes y los tumores a partir de los datos), generación de modelos
3D de la supercie (para la visualización de la segmentación de las estructuras),
visualización en 3D, y análisis cuantitativo (medición distancias, ángulos, supercies y volúmenes) de las diversas exploraciones médicas.[38]
Así mismo, permite abrir archivos de imágenes de CT, RNM y cualquier
estudio médico disponible en formato DICOM. Las imágenes de un estudio
pueden desplegarse en el plano axial, plano sagital, plano coronal o denido por
el usuario. También, posibilita generar modelos de supercie tridimensionales a
partir de segmentaciones de los cortes bidimensionales y tiene la posibilidad de
desplegar la posición de un puntero sobre los cortes bidimensionales y sobre los
modelos de supercie.
Arquitectura [1]
Módulos
Core
Módulo de Bienvenida:
Éste es el módulo de inicio por defecto de
3DSlicer. Cada panel en este módulo provee información básica para ayudar a los nuevos usuarios el fácil manejo y conocimiento de la herramienta.
Datos:
Despliega y modica el MRML Scene (Ver glosario) y cada no-
do MRML, que representa los datos que lo conforman. Crea y edita la
transformación jerárquica.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Figura 2.5: Captura 3DSlicer [41]
Figura 2.6: Arquitectura de 3DSlicer [28]
13
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Volúmenes:
14
Carga, guarda y ajusta los parámetros mostrados de los
datos de volumen.
Partes (Slices): Provee acceso a todos los nodos de cada parte en un solo
panel. Éste panel suministra dos frames, el primero es el SliceController o
controlador y el otro corresponde al SliceInformation, el cual suministra un
método alternativo de acceso a parámetros de un nodo en particular. Éste
módulo puede ser usado para control de SliceViewer(visor de partes) cada
vez que el SliceController (controlador de partes) colapse o el SliceViewer
no sea visible.
Volumen de representación: Provee visualización interactiva de imágenes 3D.
Editor:
Módulo para segmentación manual de volúmenes. Algunas her-
ramientas imitan interfaces como las de photoshop y/o gimp, pero que
funcionan preferiblemente con matrices de píxeles volumétricos 3D.
Modelos:
Módulo utilizado para cargar, guardar y editar la apariencia
de modelos de supercies 3D y organizándolas.
Fiduciales: (Ver Glosario) Éste módulo crea y gestiona la lista de duciales.
Mediciones: Permite adicionar reglas y artilugios de ángulos, que serán
mostrados y capaces de ser manipulados en ventanas de 2D y 3D.
ROI: Módulo que crea y edita ROI (Regiones de Interés). Permite a los
usuarios crear nuevos ROI, cambiar su visibilidad y cambiar su tamaño y
ubicación.
Transformaciones:
Crea y edita partes de transformaciones de nodos,
utilizadas para denir relaciones espaciales entre diferentes nodos, tales
como volúmenes, modelos, duciales, ROI, etc. o entre nodos.
Color: Gestiona tablas de colores.
Segmentación
Éste módulo encargado del soporte de las tareas de seg-
mentación. Se divide en 3 submódulos:
Línea de comandos para segmentación EM: diseñado para los usuarios expertos que desean realizar un atlas basado en segmentación automática.
Segmentación rápida: diseñado para la segmentación de pequeñas estructuras que tienen patrones de intensidad homogéneos.
Umbral Otsu de segmentación:
Crea una imagen de umbral binario
que separa una imagen entre componentes de fondo y de frente.
Segmentación robusta de estadísticas y Región simple de crecimiento.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
15
Cuanticación
Marca de estadísticas: Calcula propiedades de imagen y volumen usando
marcas de mapas e imágenes en escala de grises.
Módulo de fusión PET/CT
Difusión MRI
Encargado de realizar el análisis y visualización de imá-
genes de difusión MRI. Existen 3 submódulos:
Filtrando DWI ltering: eliminación de ruido en imágenes de difusión pesada (DW).
Tensores de difusión de utilidades: Estimación de tensores de difusión de
imágenes DW y cálculo de escalares invariantes.
Tractografía: Traza y análisis de bras de sustancia blanca de imágenes
DT y evaluar la conectividad entre regiones de éstas.
IGT
Contiene los siguientes módulos:
Módulo OpenIGTLinkIF
Módulo NeuroNav
Módulo ProstateNav
Recolección de ducias de pacientes
Selector de herramientas IGT
Time Series
Visor imágenes 4D: diseñado para manejar series de tiempo de imágenes
3D (imágenes 4D). Permite cargar y guardar series de volúmenes de imágenes 3D, editar marcos 3D en imágenes 4D, entre otras.
Filtros
Contiene los siguientes submódulos:
Corrección de campo N4 Bias
Corrección de campo MRI Bias
Filtro de Checkerboard
Histograma de asociaciones
Combinar etiqueta de imágenes
Imagen de umbral
Umbral de Otsu
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
16
Remuestreo de herramientas
Aritmética
Eliminación de ruido
Morfología
Modelos de Supercie
Contiene los siguientes submódulos:
Constructor de Modelos
Constructor de Modelos de escala de grises
Segmentación de contorno de malla
Conectividad de supercie
Herramientas de Supercie
Modelo Clip
Modelo entre etiquetas de volumen
Combinación de modelos
Modelo de Espejo
Módulo PolyDataToLabelmap
Convertidores
Contiene los siguientes módulos:
Cultivos de modelo (exteriormente ExtractSubvolumeROI)
Creación de series DICOM
DICOM a NRRD
Imágenes Orientadas
Explotación de la transformación de volumen
Endoscopia
Endoscopia Virtual: Permite animación interactiva basada en lista ducial.
Wizards
Módulo ChangeTracker
Módulo de maya de IA FE
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
17
Módulo Informático
Módulo de obtención de Información médica
Módulo de consultas de atlas
Registro
Módulo de vista de todos los registros
Registro robusto o registro automatizado experto
Registro solo cerebro o trasformación ACPC
Registro de datos de imagen sin mapa de datos
2.2.2.
DicomLab [2]
DicomLab proporciona soporte para gran variedad de formatos DICOM,
incluyendo primas, implícitas y explícitas Little y Big Endian con un número
arbitrario de muestras por píxel. Tanto directos (bytes RAW) e interpretada
(VRespecícos) el acceso a los datos DICOM es posible, lo que permite al usuario
manejar los casos comunes con acceso a interpretación y las extraordinarias
utiliza el acceso directo y el tratamiento personalizado. Navegador de etiquetas
DICOM integradas que facilita la investigación de gran alcance para conjuntos
DICOM atípicos.
Herramienta que permite extensibilidad. La interfaz de usuario viene con
un conjunto de plugins suministrando varias herramientas médicas y algoritmos
útiles, como mapas de computación T1/T2 y agrupación y ordenamiento de
archivos DICOM. De igual forma, utilizando el API de DicomLab, el usuario
puede escribir su propia extensión funcional.
2.2.3.
DicomWorks
Es un visualizador gratuito de archivos y directorios DICOM en todas sus
versiones (NEMA, DIC, IMA), incluso comprimidos (DMZ). Mantiene muchas
de las herramientas que utilizamos en una Workstation como las utilidades de
medición, evaluador de densidades, cambios de ancho y nivel de ventanas, etc.
Además, permite exportar las imágenes a CD. [17]
Algunos de sus aplicaciones más conocidas son imágenes de radiología de
mama, radioterapia, cardiología, oftalmología, oncología, patología, odontología,
cirugía, veterinaria, neumología y neurología.
Algunas de las características son:
Compatibilidad con varios sistemas operativos.
Inicio del programa rápido.
Compatibilidad con imágenes en JPEG.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
18
Figura 2.7: Captura de DicomLab [2]
Anotaciones estándar: Distancia, ROI, Píxel de interés, la supercie de
selección de puntos a mano alzada, ángulos, la distancia perpendicular
(de la rodilla de TC), la etiqueta de texto, Flechas.
Accesos directos de teclado para copiar la imagen al portapapeles, exportar
a un archivo JPEG o una secuencia de AVI, exportar a un archivo DMZ.
Exportación interactivo con una gama de colores (incluso los archivos
BMP externa se puede añadir a la paleta). Exporta a FTP.E-Mail a la
exportación (con o sin asistente) .
Creación automática de diapositivas de PowerPoint con archivos DICOM
(el plugin de PowerPoint se requiere para la exportación).
Arquitectura Abierta. Es posible crear extensiones necesarias y añadirlas
a la aplicación.
Soporte multilenguaje
2.2.4.
CIBC:ImageVis3D
Aplicación orientada claramente al ámbito médico, permite renderizar de
forma interactiva (por ejemplo, rotar) imágenes 3D del cuerpo humano, provenientes de tomografías y otros escáneres. El principal objetivo de la herramienta
son simplicidad, escalabilidad e interactividad, con el n de prestarle un mejor
servicio al usuario nal. [18]
La herramienta ofrece ciertas facilidades en cuanto a desempeño, para posibilitar al usuario el trabajo de interacción. Éstas son:
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
19
Figura 2.8: Captura DicomWorks. [30]
Escalabilidad e interactividad: el usuario desde un computador normal
hasta una estación servidora pueden explorar interactivamente imágenes
del tamaño de terabytes.
Simplicidad: Interfaz exible.
Diseño componente a componente: permite a los usuarios ampliar los módulos del programa.
A continuación se describen brevemente algunas de las características que ImageVIs3D le provee al usuario:
Permite cualquier número de ventanas abiertas a la vez
Puede importar los siguientes formatos: *.dat, *.nrrd & *.nhdr, *.stk, *.ti
& *.tif, *.v, *.bov, *.rek y *.* - Cualquier tipo primitivo de dato (texto
y binario comprimido o codicado).
Permite la combinación de múltiples conjuntos de datos en un único volumen
Cuenta con tres modos de renderización en 3D diferentes: unidimensional,
transferencia de funciones bidimensional y renderización de isosupercies
(ver Glosario).
Soporta un modo de renderizado de isosupercie, el cual rederiza y/o
reproduce una supercie compuesta enteramente de puntos que comparten
el mismo valor.
Permite al usuario especicar, guardar y cargar tantas áreas de trabajo
como se deseen
Consigue interactuar con múltiples LOD (niveles de detalle)
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
20
Figura 2.9: Interfaz de CIBC:ImageVis3D [26]
Una de las grandes ventajas de esta herramienta es que se encuentra dividida en
cierta cantidad de módulos de tal manera que facilita la integración con otras
aplicaciones que también sean open source. Así mismo, se pude conectar con
una aplicación móvil creada especialmente para uso en iPod Touch o iPhone y
así brindarle una mejor opción a los médicos.
2.2.5.
Aeskulap - DICOM Viewer
Visor de imágenes médicas, el cual le brinda al usuario la posibilidad de
cargar series de imágenes que se encuentren almacenadas en formato DICOM.
Así mismo, Aeskulap es capaz de solicitar y obtener imágenes de DICOM desde
nodos de almacenamiento (también llamados PACS) por red. [3]
El objetivo de este proyecto es crear una herramienta open sources que logre reemplazar la mayoría de visores DICOM que se encuentran actualmente
disponibles.
Algunas características de visualización que presta la herramienta son:
Fácil navegación con el mouse
Manipulación de imágenes médicas en tiempo real
Carga y apertura de imágenes locales
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
21
Figura 2.10: Captura de Aeskulap [3]
Renderización en todas las posibles vistas, incluso permite proyección de
imágenes 3D seleccionadas.
Maneja imágenes con diversos colores.
Así mismo, de acuerdo al estándar DICOM cumple con las siguientes funcionalidades:
Soporta DICOM imágenes multimarco, comprimidas y descomprimidas
Soporta C-Find support (Nodos de archivos de consultas)
Soporta C-Move (query / recupera)
Adecuado soporte de visualización para etiquetas de cambio de escala e
intercepción
Maneja imágenes a color
2.2.6.
MITO - Medical Imaging TOolkit
El MITO - Medical Imaging TOolkit es un proyecto que reúne una gran
número de actividades las cuales contribuyeron a la denición e implementación
de una arquitectura de software multiplataforma y open source para el manejo
avanzado de imágenes médicas.
Este toolkit hace posible la búsqueda de información radiológica e imágenes
almacenadas en PACS de acuerdo al formato DICOM, con el cual es compatible
y así mismo provee funcionalidades básicas tales como visualización en 2D y
3D, segmentación y fusión de imágenes, ROI y realidad virtual. De igual forma,
provee diversas técnicas de interacción para la correcta y sencilla manipulación
de datos médicos en 3D en una ambiente virtual. [10]
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
22
Figura 2.11: Captura de MITO [10]
Figura 2.12: Capturas de Paraview [14, 19]
2.2.7.
ParaView
ParaView es un programa para la visualización cientíca, interactiva y paralela. Fue desarrollado para el análisis de largos conjuntos de datos utilizando
recursos distribuidos de memoria. Permite aprovechar una librería completa de
visualización y una fácil interfaz de usuario. Así mismo, posee tubos construidos
de formas libres mediante componentes que se pueden integrar fácilmente, por
lo que VTK ofrece innitas posibilidades de visualización. [13][24]
A continuación se muestran algunas características de la herramienta:
Visualización: provee varias fuentes de datos y ltros por defecto, lo cual
le permite realizar un avanzado procesamiento de datos y la facilidad de
manejo de diferentes estructuras.
Soporta una gran variedad de formatos.
Interacción con el usuario: interfaz exible e intuitiva, la cual le permite
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
23
Figura 2.13: Pila de Librerías sobre las que está construida Paraview [29]
una interacción directa con las vistas de 3D mediante el uso de las herramientas 3D.
Proporciona comunicación utilizando modo cliente/servidor y además soporta varias funcionalidades distribuidas como la renderización.
Extensibilidad, ya que permite la adición de nuevos módulos a la herramienta.
Arquitectura
Esta es una herramienta construida al nal de una pila de
librerías, encargadas de suministrarle su funcionalidad. Debido a la mayoría de
características que ofrece Paraview están implementadas en dichas librerías, es
posible que la interfaz de usuario de ésta se puede reemplazar completamente
con otra aplicación.
Así mismo, ParaView está diseñado como una arquitectura cliente/servidor
de 3 niveles. Las tres unidades lógicas que lo componen son las siguientes:
Servidor de Datos: Responsable de escribir, leer y ltrar los datos. Todos
los objetos de observados en el navegador de fuentes de información están
contenidos en este servidor. Puede ser paralelo.
Servidor de Renderizado: Responsable de la renderización. Puede también ser paralelo, donde dado el caso se puede permitir la construcción en
renderizado paralelo.
Cliente:
Unidad responsable de establecer la visualización. Controla la
creación, ejecución y destrucción de objetos en los servidores, pero no
contiene ningún dato. Así mismo, la GUI se encuentra en esta unidad. Es
siempre una aplicación serial.
Existen tres modos para correr Paraview:
Modo Standalone
Las tres unidades son combinadas una sola aplicación
serial. Al momento de correr Paraview, el usuario se conecta automáticamente
a un servidor de orden interna y así estará listo para utilizar la herramienta.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
24
Figura 2.14: Modo Stand alone de Paraview [29]
Figura 2.15: Modo Cliente-Servidor de Paraview [29]
Modo Cliente-Servidor
Se ejecuta el programa pvserser en una máquina
paralela y se conecta a la aplicación cliente. Éste programa contiene encapsulados el servidor de renderizado y el de datos, por lo tanto, los procesos de
renderizado y procesamiento de datos se levan acabo en él. Las unidades cliente
y servidor son conectadas con sockets, por lo que se asume que la conexión sea
un poco lenta, por lo que el ujo de datos es pequeño.
Modo Cliente-Render Servidor-Datos Servidor
Las tres unidades
lógicas corren en programas separados. Al igual que el modo anterior, el cliente
y el servidor se conectan mediante un sola conexión, mientras que el servidor de
datos y el de renderizado poseen una conexión múltiple de sockets., para cada
uno de los procesos en el servidor de renderizado. La transferencia de datos es
mínima.
2.2.8.
Visualization ToolKit (VTK)
The Visualization ToolKit (VTK) es una herramienta open source para
manejo de grácas 3D, procesamiento de imágenes y facilita la visualización
de éstas. Por esta razón, soporta una amplia gama de algoritmos de visualización incluyendo vectores, texturas, métodos volumétricos y escalares, entre
otros.
Adicionalmente, utiliza técnicas de modelado avanzadas como reducción de
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
25
Figura 2.16: Modo Cliente-Render Servidor-Datos Servidor de Paraview [29]
Figura 2.17: Arquitectura de VTK [7]
polígonos, suavizado de mallas, realización de contornos, etc., razón por la cual le
brinda al usuario nal un framework con diversas herramientas de interacción en
3D, soportando procesamiento en paralelo y además, posibilita la integración con
varias bases de datos para toolkits de interfaz gráca de usuario (GUI).[25][23]
Arquitectura
Utiliza una arquitectura central de tubería de datos, desde la
fuente de información hasta una imagen renderizada en la pantalla.
Fuente de Datos
Se reere al origen de los datos que uyen a través de
la tubería de visualización. Existen básicamente 2 tipos:
Lectores: Lee datos de archivos de una gran variedad de formatos y en
algunos casos parámetros adicionales. A continuación algunos lectores importantes:
CAPÍTULO 2.
•
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
26
Lectores de Imagen: VTK considera imágenes a cualquier matriz
cuadrada de datos (posiblemente tridimensional)
•
vtkJPEGReader: Este módulo conoce como interpretar imágenes en
formato JPEG y leer los bytes de datos contenidos en ellas.
•
vtkImageReader: Este módulo es capaz de leer cual tipo de entrada
de datos primitiva, en 2 o 3 dimensiones.
•
vtkStructuredGridReader: Éste lee datos en formato de estructura de
red, la cual corresponde a una matriz rectangular 2D o 3D de datos.
•
Other Readers: VTK tiene cerca de 20 o 30 lectores adicionales, capaces de leer datos de una variedad de formatos.
Fuentes Independientes: generan ujos de datos basados en parámetros de
entrada. Fuentes existen por objetos geométricos, funciones matemáticas,
generación de puntos, texturas, películas, texto 3D e incluso una modelo
poligonal de la tierra.
•
vtkPiecewiseFunction: Utilizada para crear una función de transferencia matemática para convertir valores de datos a opacidad.
•
vtkColorTransferFunction: Utilizada para crear una función de transferencia matemática para convertir valores de datos a color.
•
vtkVolumeProperty: Utilizada para encapsular ciertas propiedades de
volumen, tales como métodos de interpolación como propiedades de
sombreado e iluminación.
•
vtkRayCastCompositeFunction: Utilizada para crear una función matemática para sumar los valores de datos a lo largo de un rayo de datos 3D.
•
vtkRayCastMIPFunction: Utilizada para crear una función matemática para seleccionar las contribuciones de los valores de datos a lo largo
de un rayo de datos 3D, cuando se use el método de Máxima Proyección de Intensidad.
•
vtkBoxWidget: Utilizada para proveer entrada de usuario para selección de datos.
•
vtkConeSource: Utilizada para glifos indicando la dirección del viento.
•
vtkCubeSource: Utilizada como un glifo programable en el ambiente,
para indicar la cantidad de lluvia y humedad en diferentes ubicaciones
cerca de Illinois.
•
vtkPlaneSource: Utilizada para generar un plano de la capa de visualización del mapa en el proyecto de visualización del tiempo
Filtros de Datos
Componentes que reciben los datos desde otros, modi-
cándolos en cierta manera y luego entrega datos modicados como salida para
ser usados pro otros componentes.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
27
Figura 2.18: Captura de VTK [42]
Data Mappers
Componentes que reciben datos desde otros componentes
(usualmente ltros) y mapea los datos a algún tipo de manifestación física que
puede renderizar.
Actores
Permite el ajuste y control de las propiedades de apariencia de
las manifestaciones física de los datos como son renderizados en la pantalla.
Algunas propiedades controladas por los actores son transparencia y mapeo de
colores, es decir, transformación de estos.
Ventanas y Renderizados
Representan el nal de la arquitectura de
tubería de VTK, la cual se puede ver en pantalla.
2.2.9.
ImageJ
ImageJ es una herramienta de procesamiento de imágenes creado en Java. Puede correr como un applet online o como una aplicación descargable en
cualquier computador que tenga Java 1.4 en adelante. De igual forma, fue diseñado con una arquitectura abierta, la cual provee extensibilidad mediante plugins. Adquisición personalizada, análisis y procesamiento de plugins puede ser
desarrollado utilizando el editor de ImageJ y compilador de Java.
A continuación se muestran las características más importantes de la herramienta:
Toolkit:
posibilidad de utilizar ImageJ como un toolkit procesador de
imágenes para desarrollar applets, servlets o aplicaciones.
Velocidad:
ImageJ es la aplicación de procesamiento de imágenes más
rápida hecha en Java. Puede ltrar imágenes de 2048X2048 en 0.1 segundos.
Tipos de Datos: Colores de 8-bit escala de grises o indexado, integrales
de 16-bit, puntos otantes de 32-bit y color RGB.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
28
?
Figura 2.19: Capturas de ImageJ [ , 8]
Formatos de Archivos:
abre y cierra todo tipos de datos soportados
como TIFF(descomprimidos) o como datos primitivos. Igualmente con
archivos de tipo GIF, JPEG, BMP, PNG, PGM, FITS, ASCII, DICOM y
datos utilizando una URL. Adicionalmente, abre y guarda muchos otros
formatos usando plugins.
Despliegue de imágenes:
Herramientas son suministradas con zoom
(1:32 a 32:1) y desplazamiento en las imágenes. Todas las funciones de
análisis y procesamiento funcionan con cualquier factor magnicador.
Herramientas
Utiliza estas herramientas para crear áreas de selección que
pueden ser operadas desde el resto de la imagen. El contenido de dichas áreas
pueden ser copiadas en un portapapeles interno, aclarado a blanco, rellenado con
el color actual, resaltado, ltrado o medido. A continuación las herramientas que
ofrece ImageJ:
Selecciones:
Crea rectángulos, elipses o áreas irregulares de selección,
líneas y puntos. Edita selecciones y automáticamente las crea utilizando
el herramienta de vara mágica. Dibuja, llena, aclara, ltra o mide las
selecciones. Guarda y las transere a otras imágenes.
Mejora de Imágenes:
Soporta suavizado, recortado, detección de es-
quinas, ltrado y umbral en ambas con una escala de grises de 8-bits y
colores RGB. Interactivamente ajusta brillo y contraste de imágenes de 8,
16 y 32 bits.
Operaciones Geométricas:
Cultiva, escala, rota y modica tamaño.
Voltea horizontalmente y/o verticalmente.
Análisis:
Mide área, media, desviación estándar mínimo y máximo de
una selección o una imagen completa.También mide longitudes y ángulos.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
29
Figura 2.20: Toolbar de ImageJ [33]
Utiliza sistemas de medida reales tales como milímetros. Calibra utilizando
estándares de densidad. Genera histogramas y grácos de perl.
Edición: Corta, copia o pega imágenes o selecciones. Pega solamente usando modos AND, OR, XOR o Blend. Añadir texto, echas, rectángulos,
elipses o polígonos a las imágenes.
Procesamiento de Color:
Separa imágenes de 32-bit en componentes
HSV o RGB, combina componentes de 8-bit en una imagen a color y
convierte una imagen RGB a colores indexados de 8-bit. Aplica paletas de
pseudo colores a imágenes en escala de grises.
Pilas:
Despliega una pila de imágenes en una sola ventana, procesa una
pila entera utilizando un único comando, abre carpeta de imágenes como
un apila y guarda pilas como archivos TIFF de multi-imágenes.
Organización de clases en ImageJ
En el siguiente diagrama de clases 2.2.9
se muestra, en términos generales, la relación y organización de las clases del
código de ImageJ, que funcionan para cualquier desarrollador que desee implementar alguna funcionalidad dentro de la herramienta:
2.3.
2.3.1.
Herramientas y Toolkits Colaborativos
Access Grid
Access Grid es un conjunto de recursos que incluye presentaciones multimedia de gran formato en ambientes interactivos. Estos recursos se utilizan para
apoyar interacciones grupo-a-grupo. [35] Así mismo, facilita un entorno de trabajo, el cual permite la interconexión de un gran número de personas distribuidas
geográcamente proporcionándoles no sólo la realización de videoconferencia,
sino también la creación de una plataforma adecuada para que se logre compartir aplicaciones en tiempo real manteniendo la comunicación con los demás
interlocutores del grupo.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
30
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
31
En contraste, esta herramienta provee al usuario diversos mecanismos con
los cuales le facilita realizar diferentes actividades distribuidamente tales como compartir datos, colaboración utilizando una gran variedad de aplicaciones
compartidas, utilizar presentaciones de largos formatos y logra emplear fuentes
de video múltiple para la permitir la comunicación entre salas. Por esta razón,
Access Grid implementa de la capa de aplicación del Protocolo de Transporte
en Tiempo Real, para denir un formato de paquete estándar para el despliegue
de audio y video en Internet.
A continuación se muestran algunas de los artilugios más importantes que
brinda esta herramienta: [34]
Sistema de Video Conferencia vía Multicast.
•
Unicast: Envío de información uno a uno fuente-destino.
•
Multicast: Es el envío de información desde una fuente hacia múltiples
destinos usando la mínima cantidad de ujos posibles.
Está orientado a generar ambientes de trabajo colaborativo inmersivos.
•
Soporta despliegue de video en pantallas de gran tamaño.
•
Soporta ejecución colaborativa de aplicaciones tipo GRID.
Arquitectura
Los elementos principales que forman dicha arquitectura son:
Servidor de Salas
Sala
Cliente de Sala
Nodo
El Servidor de Salas gestiona un número de Salas, al igual que un servidor
web gestiona páginas web. Así mismo, el Cliente de Sala, por un lado se conecta
a una Sala y luego se comunica con el Nodo para realizar una determinada
acción en dicha Sala; por ejemplo, iniciar el servicio de audio para la Sala en la
que se encuentra.
Arquitectura del Nodo
El Nodo contiene una colección de componentes
software ejecutándose en un Cliente para controlar herramientas que reciben y
emiten audio y vídeo, entre otras cosas.
El Cliente de Sala comunica al Servicio de Nodo de cambios de estado. El
Servicio de Nodo agrega los llamados ServicesManagers, que son los que se encargan de gestionar los servicios en las máquinas locales, y recoge información
sobre estos que se ejecutan en ellas pudiéndose comunicar con los servicios cuando sea necesario.
Los componentes que forman la arquitectura del Nodo son:
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
32
Figura 2.22: Arquitectura de AccesGrid [43]
Figura 2.23: Ejemplo del demo de AccesGrid [40]
Servicio de Nodo: Encargado de agregar los ServicesManagers de máquinas
locales, además de guardar conguraciones en las que se incluyen los servicios, sus descripciones y sus conguraciones individuales.
Gestor de Servicios: Encargado de localizar los recursos disponibles en
la propia máquina, y en máquinas locales. Además, se encarga de gestionar
los servicios.
Servicios: Lee y escribe conguraciones, como por ejemplo el número y
el tipo de la tarjeta de vídeo, el códec de vídeo a usar, la calidad, formato
de pantalla, formato del audio, calidad de audio, etc., además, de describir
las características de los propios servicios.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
33
Figura 2.24: Arquitectura de CATMAID [9]
2.3.2.
CATMAID: Collaborative Annotation Toolkit for
Massive Amounts of Image Data
CATMAID es un toolkit de anotación colaborativa para grandes cantidades
de datos de imágenes. Ésta herramienta fue diseñada para poder navegar, compartir y realizar anotaciones masivamente a conjuntos de datos de imágenes.
Debido a que está basada en la interfaz de GoogleMaps, comparte varios de
los conceptos de navegación, lo cual permite la exploración de imágenes 3D, de
acuerdo a ciertas técnicas microscópicas para el tratamiento de éstas. Así mismo, proporciona una navegación sincronizada en múltiples conjuntos de datos
que ya se encuentren cargados.
Una de las características más importantes del toolkit es que por tener una
arquitectura parcialmente descentralizada, cada imagen puede ser almacenada
en un servidor accesible desde Internet y adicionalmente, puede ser fácilmente
encontrada y referenciada desde una base de datos, artilugio que le posibilita al
usuario tener conocimiento de la ubicación cada uno de sus datos. [37]
En contraste, se busca que esta herramienta logre también prestar el servicio
de plataforma para compartir datos utilizando técnicas de alta resolución de
imágenes.
Arquitectura
De esta manera, CATMAID combina tres componentes prin-
cipales:
Servidor de datos centralizado: almacena meta información de conjuntos
de datos, usuarios y anotaciones en una base de datos PostgreSQL. Las
entidades en la base de datos son:
•
Proyectos: dene referencias globales de frames en espacios 3D. Proveen
un contexto espacial para anotaciones e imágenes.
•
Pilas: conjuntos de datos de imágenes preparados para ser visualizados en CATMAID.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
34
Figura 2.25: Captura de CATMAID [37]
•
Anotaciones: etiquetas o referencias para frameworks semánticos de
más alto nivel.
•
Entidades espaciales: puntos de ubicación o regiones 3D en un proyecto de marco de referencia.
Servidores de imágenes descentralizados
Interfaz de usuario del lado cliente: implementada en Javascript. No requiere plugins adicionales y funciona en cualquier plataforma en los navegadores web más populares.
Todas las interacciones que se lleven a cabo entre la interfaz de usuario y el
servidor de datos, son mediante consultas de datos asíncronas. Ésta interfaz
permite la visualización de imágenes biológicas multimodales en 2D y 3D. [9]
2.3.3.
Habanero 3.0
El proyecto Habanero investiga facilidades para convertir aplicaciones monousuario
en multiusuario, en otras palabras, provee un marco de trabajo y ambientes
necesarios para la creación de ambientes de trabajo colaborativo virtuales. En
contraste, simplica la colaboración tanto síncrona como asíncrona, además que
le permite a los usuarios interactuar con otras personas con una gran cantidad
de aplicaciones, cuando el sistema se encuentre conectado a Internet por lo que
también incluye habilidades de autenticación y privacidad.
Framework de Habanero
El usuario puede interactuar con otra gente en Internet utilizando una
variedad de aplicaciones que comparten estados y eventos.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
35
Figura 2.26: Proceso de colaboración en tiempo real mediante Habanero
Ofrece a los desarrolladores un framework o API diseñado para proveer
herramientas que necesiten para crear aplicaciones colaborativas en Java. Este contiene los métodos necesarios que hacen posible la creación o
extensión de de dichas aplicaciones.
Provee sincronización de eventos y estados para múltiples copias de herramientas software, las cuales pueden ser soportadas por diferentes plataformas.
Funciona mediante la replicación de aplicaciones entre clientes, permitiéndoles compartir cambios de estado entre ellos. Cuando un nuevo cliente
se une a la sesión, se le envía información acerca de las aplicaciones que
están corriendo en ésta y a cada una de ellas se le envía la suciente información para replicar completamente el estado que esta siendo compartido
por las copias existentes. De esta manera, Habanero se asegura que todos
los clientes vean el mismo estado cambiando eventos en el mismo orden,
lo cual resulta en aplicaciones que parecen las mismas para todos. Así
mismo, permite a los programadores gran exibilidad en la determinación
de un cambio de estado de un evento exactamente.
El servidor organiza sesiones y conecta a los clientes, para proporcionarles
el entorno de interacción con sesiones haciendo uso de una variedad de
aplicaciones. Este servidor es capaz de soportar el alojamiento de múltiples
sesiones, mientras que el cliente puede unirse a varias de éstas sesiones con
diversas instancias de las herramientas. [22]
Ambiente Habanero
terísticas:
Este ambiente de trabajo soporta las siguientes carac-
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
36
Múltiples sesiones: Un participante puede colaborar en diferentes sesiones
concurrentemente.
Extensión del conjunto de aplicaciones colaborativas, que pueden ser fácilmente adicionados al ambiente de Habanero.
Información detallada acerca de la sesión tal como nombre, horario, agenda, lista de herramientas de colaboración actuales y usuarios permitidos a
participar. Así mismo, soporta anonimato de los participantes en la sesión.
Sesión precongurada ofrece facilidad permitiendo a los usuarios a describir una sesión una vez y guardar dicha información, la cual puede ser
reutilizada en cualquier momento.
Mecanismo de noticación para invitar participantes a unirse a una sesión
online. El sistema soporta noticaciones tanto síncronas (ventanas popups) como asíncronas (correo electrónico).
Roles de usuario. Aquel que inicie la sesión tiene el rol especíco el cual
dene las características de una sesión para determinar el grupo de colaboradores permitiéndoles unirse a las sesión. Igualmente, detalla el proceso
de noticación y mecanismos de autenticación. Los participantes pueden
tener otros roles tales como participante activo, observador pasivo u otros
descritos por herramientas especícas.
Conciencia de otros. Habanero muestra quién participa, dónde se encuentran ubicados, cuán activos están y quién fue el último en utilizar la herramienta.
2.3.4.
JGroups
JGroups es un toolkit que brinda comunicación multicast conable escrita
íntegramente en Java, por lo cual el ofrece a los usuarios la creación de grupos
de procesos donde los miembros tienen la posibilidades de enviar mensajes entre
ellos, añadiéndole:
Fiabilidad:
se reere a la transmisión de mensajes a los receptores sin
pérdidas usando retransmisiones, fragmentación de mensajes grandes en
más pequeños y reensamblado en la recepción, mensajes ordenados (los
mensajes se reciben en el mismo orden que fueron enviados) y atomicidad,
es decir, un mensaje llega a todos los receptores o a ninguno.
Membresía de grupo:
implica el conocimiento de los miembros del
grupo y noticación de cambios porque se incorpora un nuevo miembro,
abandona uno ya existente o falla.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
37
Figura 2.27: Captura de Habanero [11]
Características
Como se dijo con anterioridad JGroups es una herramienta
que proporciona soporte para abilidad, atomicidad y causalidad, entre otras,
con el n de permitir una comunicación entre grupos cerrados, permitiendo la
creación de canales para facilitar el envío de mensajes entre los participantes de
estos, brindando las siguientes características:
Creación, unión, salida y eliminación de grupos, donde los miembros de
grupo pueden ser propagados a lo largo de redes LAN o WAN.
Detección y noticación de nueva membresía por unión, eliminación o fallo
de miembros
Detección, noticación y eliminación de miembros fallidos
Comunicación 1-a-N y comunicación 1-a-1 (ambas, dentro del mismo canal).
Así mismo, brinda funcionalidades tales como:
Extiende la transmisión able de mensajes unicast a las características
multicast. Puesto que cada aplicación tiene diferentes necesidades de abilidad,
Proporciona una arquitectura con una pila de protocolos exible que permite a los usuarios optimizarla según las necesidades concretas de cada
aplicación.
Al estar implementada en Java, puede ser considerado como una API en
su totalidad, lo que le atribuye una enorme facilidad para su expansión e
integración con otras herramientas para comunicación en grupo.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
38
En contraste, la característica que otorga más potencia a JGroups es la exibilidad de su pila de protocolos: mediante la elección, mezcla y sustitución de estos,
diferentes requerimientos de aplicación y características de red pueden ser satisfechos; disponiéndose por defecto de un variado número de ellos (transporte,
fragmentación, envío y radiado able, detección de fallos, orden, membresía,
etc.). Además cualquier otro puede ser especícamente implementado.
Arquitectura
La arquitectura de JGroups está constituida por tres partes
fundamentales (ver2.28 ):
API del canal (interfaz de bajo nivel): ofrece la funcionalidad básica para
comunicación en grupo
Pila de protocolos: estructurada en capas y encargada de implementar las
propiedades especícas del canal mediante la adición de capas
Bloques (interfaz de alto nivel): construidos a partir de la combinación
de elementos más básicos ya existentes y dispuestos en capas superiores
a la del canal, que proporcionan al programador un nivel de abstracción
mayor, facilitando la tarea de desarrollar aplicaciones.
Interfaz Bajo Nivel
Ésta primera parte encargada de la comunicación básica
funciona de la siguiente manera:
Los
mensajes
entrantes son almacenados en el canal hasta que un proce-
so los recupere, eliminándolos luego; si no hay ningún mensaje disponible, el
proceso se bloquea hasta la recepción del siguiente. Para unirse a un grupo y
enviar mensajes, un proceso tiene que crear primero un
canal
y conectarse a
él, especicando, para ello, el nombre del grupo (todos los canales con el mismo
nombre forman un grupo). El proceso deja un grupo, desconectándose del canal.
Cada canal dispone de una
Canal
vista, una lista ordenadas de miembros.
Implementa la funcionalidad básica para comunicación en grupo.
proporciona envío y recepción asíncronos de mensajes, algo que es similar a UDP.
Un mensaje enviado es esencialmente puesto en la red y ejecutado inmediatamente. Las peticiones y respuestas son recibidas sin orden y la aplicación debe
encargarse de ordenarlas. Después de una conexión con éxito, el canal estará
dispuesto para recibir/enviar mensajes desde/a otros miembros o al grupo.
Cuando un proceso quiere unirse a un grupo, se conecta al canal dando el
nombre del grupo al que se une. De esta manera, cuando se une o abandona
un grupo, o cuando se detecta un proceso fallido, una nueva vista es enviada al
resto de miembros.
Mensajes
Los datos son enviados entre miembros en forma de un mensaje.
Un mensaje, similar a un paquete IP, está compuesto de la carga útil especicada
como un buer de bytes y las direcciones origen y destino. Además, pueden
incluir cabeceras con información auxiliar.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Figura 2.28: Arquitectura de JGroups. Tomado de: [6]
Figura 2.29: Canal de soporte a comunicación [5]
39
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
40
Figura 2.30: Estructura de mensaje de JGroups[5]
No es necesario incluir la dirección del remitente cuando se envía un mensaje,
pues este proceso se realiza automáticamente desde la pila de protocolos, antes
de que sea puesto en la red. No obstante, pueden haber muchos casos en los
cuales, el remitente de un mensaje quiere dar una dirección distinta a la suya
para que, por ejemplo, la respuesta sea redireccionada a algún otro miembro. La
dirección destino puede ser la de un miembro especíco (comunicación unicast),
o puede ser nula, indicando que el mensaje será enviado a todos los miembros
del grupo (comunicación multicast).
Vistas
Una vista es una lista de los miembros actuales del grupo. Contiene
un valor que la identica de forma única y un vector que incluye una lista de
miembros. Las vistas son instauradas automáticamente por la pila de protocolos
en el canal si un nuevo miembro se une a un grupo, lo deja o falla. Todos los
miembros del grupo ven la misma secuencia de vistas. La ordenación de los
miembros de un grupo dentro de la vista es la misma en cada proceso. El primer
miembro de una lista es el coordinador, encargado de emitir las nuevas vistas.
En consecuencia cuando la membresía cambia, cualquier miembro del grupo
puede determinar el coordinador sin necesidad de comunicarse.
Noticación
Dene un pequeño subconjunto dentro de la funcionalidad
del canal: los métodos para enviar y recibir mensajes.
El método de recibir implementa el modo de recepción pull-style, implementado en los canales, algunos bloques implementan el modo de recepción
push-style para la entrega de mensajes, donde la entidad que desea ser noticada de dicha recepción necesita proveerse de un método, el cual será invocado
en el momento de la recepción del mensaje.
Un canal recibe mensajes asíncronamente desde la red, y los guarda en una
cola. Cuando se invoca el método de recibir, el primer mensaje en ésta es enviado
y eliminado. Por otro lado, dependiendo de las opciones jadas para el canal,
los siguientes tipos de mensaje pueden ser recibidos:
Mensaje:
Un mensaje regular. Para enviar una respuesta al remitente,
un nuevo mensaje puede ser creado a partir del recibido. Su dirección de
destino debe corresponder con la dirección del receptor del mensaje.
Vista:
Cambio de vista. Indica que un miembro se ha unido, dejado el
grupo o fallado.
Evento Sospechoso:
Noticación de un miembro sospechoso. Típica-
mente este evento va seguido de uno de cambio de vista.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
41
Figura 2.31: Pila de Protocolos de JGroups[5]
Evento de Bloqueo: Ante la llegada de un evento de este tipo, la aplicación detiene el envío de mensajes hasta que una nueva vista haya sido
recibida. Se usa para sincronizar mensajes entre vistas de forma que todos
los mensajes sean recibidos en la vista en la que son enviados. Cuando la
aplicación ha detenido el envío de mensajes por esta razón, el canal debe
ser noticado de este suceso.
Obtener Estado de Evento: Recibido cuando debe guardarse (para su
posterior transferencia) el estado actual de la aplicación. Una copia del
estado actual debe ser generada y devuelta.
Fijar Estado de Evento:
Este evento es recibido como respuesta a la
llamada para obtener el estado. El argumento contiene el estado de un
único miembro, normalmente el coordinador, o de todos.
Pila de protocolos
Al especicarse las propiedades del canal en el momento
de su creación, se crea también la
pila de protocolos
sobre la que se ubica
el canal. Todo canal consta de una pila de protocolos (ver 2.31), formada por
un número de capas variable, de acuerdo a las propiedades especicadas, que
se comunican entre si de forma bidireccional. Los mensajes enviados y recibidos
por el canal tienen que pasar a través de la pila de protocolos. Cada capa puede
modicar, reordenar, pasar u omitir el mensaje, o sumarle una cabecera.
Todas las instancias de los protocolos son interconectados en niveles donde
los mensajes uyen hacia arriba/abajo, asegurando la calidad de servicio especicada por las propiedades.
JGroups dispone del siguiente número de protocolos:
UDP (como capa de protocolo más baja) para uso de direcciones IP sobre
una comunicación multicast
PING para determinar los miembros iniciales
MERGE para recuperación ante particiones de red de manera que varios
grupos puedan recomponerse en uno solo
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
42
FD para detección de fallos
VERIFY_SUSPECT para comprobación de miembros sospechosos
STABLE para eliminación de los mensajes ya recibidos por todos los
miembros (liberar memoria)
NAKACK para entrega able de mensajes unicast y orden FIFO
UNICAST para soporte de envío unicast sobre UDP
FRAG para fragmentación de mensajes y recomposición en el lado receptor
GMS
para membresía de grupos (manejando las peticiones de unión y
salida)
STATE_TRANSFER para transferencia de estado.
Interfaz de alto nivel
Los
bloques
por su parte proporcionan APIs más
sosticadas sobre los canales. Evidentemente estos bloques crean y usan canales
internamente, o requieren que un canal ya existente sea especicado en el momento de su creación. En general, las aplicaciones desarrolladas con JGroups se
comunican directamente con estos bloques, más que con los canales.
Utiliza canales simples y primitivos, los cuales ofrecen una funcionalidad
reducida para comunicación en grupo semejante al modelo de sockets. La razón
para esta simplicidad se debe a que una aplicación puede necesitar, en casos
concretos, de sólo un pequeño subconjunto de las posibilidades de JGroups, sin
tener que incluir el conjunto completo de clases, a veces muy sosticadas y,
muchas de las cuales, puede siquiera no necesitar nunca.
Debido a la simplicidad de los canales para brindar una funcionalidad reducida para comunicación en grupo, el toolkit brinda bloques, encargados de
proporcionar servicios más sosticados y desempeñar su funcionalidad en niveles superiores al del canal. Estos crean y usan canales internamente o, en su
defecto, necesitan de la especicación de un canal en el momento de la creación
del bloque. Las aplicaciones se comunican directamente con el bloque, en lugar
de con el canal.
Adaptador entre modos de recepción
Adaptador entre el modo de
recepción pull-style, donde debe probarse continuamente la llegada de mensajes
al canal, y el modo push-style, donde los procesos registran un método que es
invocado ante la recepción de un mensaje, sin necesidad de un testeo continuo.
Usando este bloque, los usuarios de un canal no tienen que utilizar un thread
auxiliar para la recepción de mensajes.
Los procesos que deseen noticación de la recepción de mensajes pueden
registrarse en el bloque adaptador, de esta manera el thread continuamente
solicita mensajes del canal y los envía a estos. Por lo tanto, es este bloque
el responsable de solicitar dichos mensajes. No obstante la aplicación deberá
acceder al canal directamente para enviar mensajes.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Despachador de mensajes
43
Los canales son simples patrones de envío
y recepción asíncrona de mensajes. Sin embargo, un número considerable de
patrones de comunicación (en comunicación de grupos) requiere comunicación
síncrona. Por ejemplo, un proceso podría desear enviar un mensaje a través de
su canal y esperar por todas las respuestas.
El despachador de mensajes ofrece una combinación de varios patrones de
comunicación. Proporciona envío de mensajes síncronos (y asíncronos) con correlación entre peticiones y respuestas. También ofrece la recepción de mensajes
en modo push-style (usando internamente el bloque adaptador).
Una vez creada la instancia del bloque, con el canal como argumento; puede
ser usada con funcionalidad de cliente y de servidor: un cliente envía peticiones y
recibe respuestas, y un servidor recibe peticiones y envía respuestas. Este bloque
permite a una aplicación ser ambas cosas a la vez.
Una de las muchas ventajas de usar este bloque es que los miembros fallidos
son eliminados del conjunto de respuestas esperadas.
Despachador de llamadas remotas a método
Permite invocar méto-
dos remotos en todos los miembros (o algunos) del grupo y, opcionalmente,
esperar por los valores de retorno de estos métodos. El despachador de llamadas
remotas permite efectuar llamadas a métodos remotos (funcionalidad de cliente)
mediante el envío de mensajes que las contengan y, al mismo tiempo, permitir que métodos locales sean invocados desde otros miembros (funcionalidad de
servidor).
Tabla hash distribuida
Permite crear varias instancias de una misma
tabla hash en procesos con diferente ubicación dentro de la red (o en distintas
redes, incluso). Todas estas instancias tienen exactamente el mismo estado en
todo momento. Al crear una de ellas, un nombre determina a qué grupo de tablas
hash ha sido asociada (igual que pasa con los procesos miembros de un grupo
que usan el mismo canal). La nueva instancia preguntará entonces el estado
de las demás instancias existentes en el grupo y se actualizará con él, antes de
realizar operación alguna sobre ella. Si no hay miembros, entonces empieza con
un estado vacío.
Una tabla hash distribuida permite a miembros de un grupo compartir estados comunes entre procesos y máquinas distantes.
2.4.
2.4.1.
Herramientas de Videoconferencia
Qnext
¾Qué es Qnext?
Qnext es una suite de comunicaciones unicadas para com-
partir, multiplataforma, para móviles y de escritorio. Permite a los usuarios
consolidar todos sus contactos en un solo lugar, comunicarse usando VoIP de
8 vías, video de 4 vías, mandar y recibir mensajes de los más populares protocolos de mensajería instantánea como Yahoo!, AIM, ICQ, Facebook, MySpace,
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
44
Jabber, GoogleTalk, iChat y MSN, transferir archivos de cualquier tamaño, jugar, accesar remotamente a su PC y compartir aplicaciones, compartir archivos,
documentos, videos, fotos y musica automáticamente a cualquier persona, aún
si el destinatario no tiene Qnext instalado.
Qnext usa Java, arquitectura de prestación de servicios, P2P híbrido, tecnología Web 2.0 y un entorno de desarrollo que permite a un gran número de
desarrolladores, fabricantes de equipos originales, las organizaciones, los proveedores de entretenimiento digital y las redes sociales desarrollar nuevos servicios
o integrar Qnext a sus soluciones existentes.
Qnext trae enormes benecios dada compatibilidad entre plataformas mediante el aumento de la productividad y la eliminación de los problemas que
se asocian típicamente con la necesidad de utilizar múltiples aplicaciones. Los
usuarios ya no necesitan preocuparse por sus amigos y equipos asociados y
plataformas de sistemas operativos móviles. Pueden llevar una videoconferencia, el uso de múltiples protocolos de mensajería instantánea y compartir /
transmitir contenido, sin importar si su grupo utiliza Mac, Windows o Linux.
Sistemas operativos: Qnext corre en Windows, Mac y Linux [31].
Convenciones
Qnext usa convenciones generales de computación. Es decir,
se hace doble clic en un contacto para iniciar la mensajería instantánea y se
hace clic derecho en la mayoría de los iconos, los contactos, zonas y objetos
para mostrar un menú contextual. Qnext siempre usa arrastrar y soltar para los
contactos y el contenido siempre que sea posible. Arrastrar y Soltar (Drag and
Drop) archivo (s) o carpeta (s) en el nombre de un contacto para iniciar una
transferencia de archivos inmediata, o arrastrar el nombre de un contacto en
una ventana de conferencia de audio o de vídeo para añadirle a la discusión[31].
Servicios que provee
Mensajería universal
Permite enviar y recibir mensajes de todas las
redes y servicios de mensajería más populares.
Chat de voz Solo se necesita un micrófono y unos audífonos para realizar
una conferencia de voz hasta con 8 amigos más.
Videoconferencia
Se necesita una cámara web y unos auriculares.
Dado que la videoconferencia en Qnext esta completamente integrada con
sus amigos (lista de contactos) de Qnext, iniciar una videoconferencia es
fácil. Se selecciona un usuario de la lista de "amigos" y se inicializa una
videoconferencia en vivo con el botón derecho del ratón sobre un contacto
Qnext y seleccionando Conferencia> Vídeo.
Uso compartido de fotos Sólo se tiene que elegir las fotos, elegir la audiencia, y los contactos recibirán un enlace que les permite ver o descargar
(con permiso) las fotos desde cualquier navegador web. Se puede navegar
a través de las miniaturas, zoom en las fotos, y ejecutar presentaciones de
diapositivas personalizadas también.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Transferencia de archivos
45
Qnext permite a los usuarios enviar o
recibir archivos de otros protocolos de mensajería instantánea como Yahoo, MSN, AOL, Google Talk, Jabber, iChat y ICQ. Al transferir archivos
entre los usuarios de Qnext se puede tomar un archivo (s) o carpeta (s)
de cualquier tamaño de su computadora y arrastrarlo a un nombre de un
contacto. Esto inicia una transferencia segura de archivos P2P. Un archivo
puede ser de 1 MB, 1GB, o la unidad C completa.
Uso compartido de archivos
Se pone una cantidad ilimitada de
archivos o carpetas de cualquier tamaño en la
Zona de Archivos
y se
selecciona su audiencia, los destinatarios especicados recibirá un vínculo de un correo electrónico o mensaje instantáneo y se puede descargar
uno o todos los archivos compartidos a altas velocidades, desde cualquier
navegador web en el mundo.
PC de acceso remoto Básicamente, lo que permite que el usuario nal o
cualquier persona a la que se especique tenga el acceso a su computadora
o a aplicaciones especícas desde cualquier navegador web estándar.
Musica en transmisión continua Se elige un máximo de 700.000 canciones y se selecciona la audiencia; Qnext transmitirá las canciones al
instante a quien se quiera. Si se quiere compartir con los contactos, esta es
la única manera de transmitir su música a cualquier navegador de Internet
en el planeta[31][36].
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
46
Figura 2.32: Qnext [31]
2.4.2.
Quick Message 1.0
QuickMessage es un programa de mensajería instantánea simple que soporta
Windows, Linux y Mac. No requiere de registro y es gratis [32].
Características
Ocina, casa o red pequeña
QuickMessage es una solución gratuita
para la ocina, casa o una red pequeña.
Tema: QuickMessage viene con hermosos temas para niños y niñas.
Portátil: QuickMessage se pone en una unidad de disco USB y está listo
para su uso en cualquier ordenador. Es muy portable y fácil.
Multiplataforma: Con QuickMessage, aún pueden chatear entre un Windows y un Linux. Mac y UNIX están también disponibles.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
47
Figura 2.33: QuickMessage [32]
2.4.3.
JavaTalk
Aplicación de sala de chat y tablero .
Modo de uso: ingresar un alias dentro del campo de texto en la parte superior
y hacer clic en Conectar. Seleccionar otro nombre de usuario de la lista y
mandar un mensaje privado solo a ese usuario en el chat. Deseleccionar el
nombre para mandar a todos. Las imágenes son mandadas a todos [39].
2.4.4.
Sip Communicator
SIP Communicator es un teléfono de Internet de audio / video y mensajería
instantánea que soporta algunas de los protocolos más populares de VoIP y mensajería instantánea como SIP, Jabber, AIM / ICQ, MSN Messenger, Bonjour,
entre otras características útiles.
Es completamente de código abierto y gratuito, y está disponible de manera
gratuita bajo los términos de la licencia GNU Lesser General Public License
[21].
Características
SIP Communicator está en constante desarrollo y la sigu-
iente lista de características es probable que evolucione rápidamente [21].
Protocolos/redes soportadas
XMPP (Jabber)
GoogleTalk (via XMPP)
SIP
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
48
Facebook (via XMPP)
.NET Messenger Service (comúnmente conocido como MSN o Windows Live Messenger)
Yahoo! Messenger
AIM ICQ
Bonjour
Llamadas
Características
SIP
XMPP
MSN
Audio llamadas
Si
En desarrollo
En desarrollo
Video-llamadas
Si
En desarrollo
En desarrollo
Streaming de escritorio
Si
En desarrollo
En desarrollo
Uso compartido del escritorio
En desarrollo
En desarrollo
En desarrollo
Llamadas de audioconferencia
Si
En desarrollo
En desarrollo
Indicador de nivel de audio
Si
En desarrollo
En desarrollo
Grabación de llamadas
Si
En desarrollo
En desarrollo
Transferencia asistida
Si
En desarrollo
En desarrollo
Transferencia ciega
Si
En desarrollo
En desarrollo
Encripción de llamadas (con SRTP y ZRTP)
Si
En desarrollo
En desarrollo
Silencio en llamada (Mute)
Si
En desarrollo
En desarrollo
Llamada en espera
Si
En desarrollo
En desarrollo
Soporte para ICE
En desarrollo
En desarrollo
En desarrollo
Audio de banda ancha
Si
En desarrollo
En desarrollo
Supresión de ruido
Si
En desarrollo
En desarrollo
echo cancellation
En desarrollo
En desarrollo
En desarrollo
Cuadro 2.1: Características de Llamadas en los Protocolos [21]
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Característica
XMPP
MSN
Yahoo!
ICQ/AIM
Chats multi usuario
Si
Si
Si
Si
Transferencia de archivos
Si
Si
Si
Si
Encripción OTR
Si
Si
Si
Si
49
Cuadro 2.2: Mensajería Instantánea [21]
Mensajería instantánea
Seguridad
Almacenamiento de contraseña cifrada.
OTR.
SRTP/ZRTP.
Otros
Aprovisionamiento en linea.
Servidor descubridor de aprovisionamiento a través de DHCP y mDNS
(Bonjour).
Historial de llamadas.
Noticaciones de llamadas perdidas.
Noticaciones de la bandeja del sistema (usando Swing, Growl o libnotify)
,
Soporte para Arrastre y suelte (Drag and Drop) para transferencia de
archivos.
2.4.5.
CamFrog
¾Qué es CamFrog Video Chat?
Es un programa sencillo de videoconfer-
encia. No solo permite videconferencia 1 a 1, sino también permite conferencias
grupales cuando está conectado el servidor CamFrog de salas de mensajería instantánea. También tiene un directorio en vivo de los usuarios para conversar,
una lista de contactos, un directorio en vivo de salas de video chat, noticación
de estados y mensajería instantánea. CamFrog es gratis para su uso por siempre,
pero si se desean características más avanzadas, se debe descargar la versión de
CamFrog Pro. Esta versión tiene más características incluyendo la posibilidad
de ver múltiples ventanas de video, cambiar el estado a invisible, enviar archivos,
entre otros [20].
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Figura 2.34: Sip Communicator [21]
50
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Características de CamFrog Video Chat
51
CamFrog permite hacer comu-
nicaciones de video y audio con otros usuarios de CamFrog en todo el mundo.
Corre en Microsoft Windows XP, 2000 and Vista, Windows Server 2003, and
Mac OS X. No es necesaria una cámara web para ver o escuchar a los usuarios
de CamFrog [20].
1. Comunicación con audio. CamFrog permite el audio en una sesión 1 a 1
de video chat o en una Sala de Video Chat del Servidor CamFrog.
Audio en una conexión uno a uno.
Clic sobre la casilla de manos
libres para dejar el audio prendido todo el tiempo, mientras mantiene
una conversación con otro usuario y para qué él pueda oírle. Clic sobre el
botón Hablar para mandar audio solamente cuando se mantiene el botón
oprimido.
Audio en una sala de video chat. La sala de video chat solo permite
a un usuario mandar audio por 30 segundos a otro usuario, para que otros
usuarios puedan mandar audio. Clic sobre la casilla manos libres para
mandar audio sin mantener ninguna tecla presionada al grupo solo por 30
segundos.
2. Comunicación con video. Es posible verse asimismo escogiendo vista previa de video bajo el menú video en la ventana principal de la aplicación
de CamFrog Video Chat.
Ventana de video local.
Para ver la ventana de video local, clic en el
menú video en la ventana principal de la aplicación y escoger vista previa
de video. Para ver su ventana de video local, clic en el menú video en la
ventana principal de la aplicación y escoja preview video. Para pausar
un video en un video chat uno a uno, o en una sala de video chat, clic en
el icono de la cámara web en la ventana de video local.
3. Comunicación con chat y mensajería instantánea. CamFrog no es solo
una aplicación de videoconferencia sino también cuenta con mensajería
instantánea, una lista de contactos, y la capacidad de mostrar el estado.
Características de CamFrog Video Chat Pro
CamFrog Pro tiene varias
características que la edición gratuita no incluye, como la posibilidad de ver
varias ventanas de video al mismo tiempo en la sala de video chat, o la posibilidad de poner un estado de usuario, tener un log de historial de video chat, auto
aceptar peticiones de video chat, y acceso total al sitio web CamFrog.com [20].
Ver ventanas de video ilimitadas.
Para ver múltiples ventanas de
video, primero es necesario unirse a una sala de video chat. luego, clic en
el nombre en la lista de usuarios visibles para ver su ventana de video.
Es posible ver tantas ventanas como sea posible.
Cambiar el estado del usuario. Si escoge invisible entonces aparecerá
el estado como no conectado para los otros usuarios de la lista.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
52
Auto-aceptar peticiones de video chat. Es posible elegir auto aceptar llamadas de video chat (no recomendado) o poner una contraseña para
llamadas entrantes. Es posible descargarse un cliente gratuito de CamFrog,
poner el nombre de usuario y la contraseña y conectarse al cliente Pro de
casa para tener una webcam remota.
Historial Video Chat.
Es posible guardar el historial de mensajería
instantánea.
Colector de mensajería instantánea.
No deja que la mensajería in-
stantánea llene la barra de tareas del usuario.
Texto sobre Video.
Añade texto sobre su video local.
Enviar archivos.
Ventanas Transparentes.
Esta característica es útil cuando se quiere
ver videos bajo las ventanas de mensajería instantáneas.
Figura 2.35: Camfrog [20]
2.4.6.
Ekiga
Ekiga es una aplicación gratis de VoIP, telefonía IP y videoconferencia para
Linux y otros sistemas operativos (como BSD o OpenSolaris) y Windows. Es
posible poner una llamada de video y audio y conectar de PC a PC, PC a
teléfono, escribir un mensaje de texto, y ser llamado de teléfono a PC.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
53
Figura 2.36: Ekiga.net [16]
Soporta la mayoría de características de VoIP como llamadas de audio y
video, llamada en espera, transferencia de llamadas, desvío de llamadas. También soporta mensajería.
Ekiga soporta los mejores codecs gratuitos de audio y video para una mejor
calidad de los mismos, juntos con eco-cancelación [16].
¾Qué es Ekiga.net?
Ekiga.net es un proveedor de servicios gratuito de VoIP
o telefonía por internet [16].
Usar VoIP es como usar el correo electrónico:
Se necesita una dirección. Eso es todo lo que Ekiga hace: dar direcciones
SIP.
Se encesta un software para usar esta dirección. Cualquier programa para
SIP servirá, pero se recomienda Ekiga softphone, el cual tiene mensajería
instantánea, audio y video incluidos.
¾Qué servicios provee Ekiga.net?
2.4.7.
BigBlueButton
¾Qué es BigBlueButton?
BigBlueButton es un proyecto open source con-
struido bajo 14 componentes de código abierto para crear un sistema web integrado de conferencias. Corre en Mac, Unix o PC [15].
Peering
Crear una sala de conferencias privada o pública
Sala de conferencias pública
Número de test para Call Back
Número de test de Eco
Directorio de búsquedas
SIP-Address
Servicio
CAPÍTULO 2.
Cuadro 2.3: Servicios de Ekiga [16]
Peering es el término dado a un acuerdo entre los proveedores de servicios de VoIP que p
Marcar el sip:[email protected] (donde x = cualquier dígito del 0 al 9). Estas salas son públicas o privadas, y cualquiera puede unirse a una conferencia en cualquier m
Si se quiere llamar a otros usuarios y que pueda ser llamado, la mejor opción es con una dirección legible (SIP de direcciones), q
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
54
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
55
Figura 2.37: BigBlueButton [15]
Resumen
BigBlueButton es un proyecto que se enfoca en la usabilidad, en la
modularidad y en un diseño limpio -para ambos: el usuario y el desarrollador.
El proyecto se encuentra alojado en Google Code.
BigBlueButton está construido bajo 14 componentes de código abierto. La
gura 2.4.7muestra en resumen sus capacidades [15].
Componentes de BigBlueButton
BigBlueButton está construido us-
ando las siguientes herramientas de código abierto [15].
Ubuntu: Ubuntu es una distribución del sistema operativo Linux, enfocado en una interfaz gráca de usuario amigable
Flex SDK: Flex es un framework de código abierto, altamente productivo, para construir y mantener aplicaciones web expresivas que se implementen consistentemente en la mayoría de los buscadores, escritorios y
sistemas operativos.
Ghostscript: Ghostscript es un intérprete del lenguaje Post Script y para
PDF.
Grails:
Grails es un framework web que aprovecha el lenguaje Groovy y
complementa el desarrollo Java Web.
ActiveMQ: Apache ActiveMQ es una organización de código abierto para
mensajería y proveedor de integración de los patrones.
Asterisk:
Asterisk es un PBX de código abierto, motor de telefonía, y
toolkit de aplicaciones de telefonía.
CAPÍTULO 2.
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
56
Image Magick: Image Magick es una colección de herramientas diseñada
para ver, modicar y manipular imágenes de casi 70 formatos diferentes.
También permite crear imágenes dinámicamente, haciéndola conveniente
para las aplicaciones Web.
MySQL: MySQL es una base de datos de código abierto.
nginx:
nginx "engine x", es un servidor HTTP y un servidor proxy de
correo electrónico.
Red5: Red5 es un Servidor Flash de código abierto escrito en Java.
swf Tools:
SWFTools es una colección de utilidades para trabajar con
archivos de Adobe Flash (archivos SWF).
Tomcat: Apache Tomcat es una implementación de la tecnología de Java
Servlet y de JavaServer Pages. Las especicaciones de Java Servlet y de
JavaServer Pages son desarrolladas bajo Community Process.
Asterisk Java: El paquete Asterisk-Java consiste de un conjunto de clases
Java que permite crear fácilmente aplicaciones Java que interactúan con
el servidor Asterisk PBX.
Xuggler: Xuggler es una librería para los desarrolladores Java o C++ que
permite decodicar, manipular y codicar (casi) cualquier tipo de archivo
de video casi en tiempo real.
Open Oce:
OpenOce.org es el líder de código abierto de la suite
de omática para procesador de texto, hojas de cálculo, presentaciones,
grácas, bases de datos y más.
Roles
Hay tres roles de usuario en BigBlueButton: Espectador, presentador
y moderador (viewer, presenter, moderator) [15].
Espectador: hay usuarios los cuales no tienen autoridad en la conferencia; su rol principal es ver la presentación así cómo chatear entre otros
participantes. En un curso, un espectador sería un estudiante.
Presentador:
tiene las mismas capacidades como participante, con las
características de más de subir presentaciones y compartir su escritorio.
Moderador: tiene todas las capacidades como participante, con las características añadidas de subir presentaciones y compartir su escritorio.
Características por Rol
Moderator
Presenter
El presentador tiene la capacidad de compartir el escritorio con otros en la conferencia. Cuando se comparte el escritorio, BigBlueButton lanzará un appl
Cuadro 2.4: Características por Rol [15]
Como moderador es posible hacer a cualquiera (incluyéndose a sí mismo) un presentador, haciendo clic en el icono del nombre del participante.
Un presentador puede subir cualquier documento de PDF o de Oce. Es posible subir múltiples documentos y cambiar entre ellos durante la presentación
Compartir el escritorio
Make a presenter
Es posible silenciar o activar sonido de los participantes en una conferencia haciendo clic en los iconos ubicados al lado inferior izquierdo del módulo. Es
Compartir cualquier PDF o documento de Oce
Los usuarios con el rol de presentador aparecen con un icono de presentador junto a su nombre.
Entre la ventana de la presentación, los espectadores pueden ver a dónde está apuntando el presentador por el indicador de un circulo rojo.
Silenciar o expulsar participantes
Usted es el presentador
Ver el cursor del presentador
Compartir video sobre la web usando cámara web integrada o externa. Múltiples participantes y el presentador pueden compartir su video simultáneamen
La ventana de Chat permite a los participantes conducir un chat público o privado.
Verse mutuamente
La ventana de presentación muestra la presentación actual. Los participantes pueden darle zoom a la presentación usando el slider, así como navegar a tr
Ver las presentaciones
La ventana de Voz muestra todos los usuarios que están actualmente conectados al puente de audio conferencia, como también llamando directamente o u
Ver todos los participantes
Chat público y privado
La ventana de los participantes web permite ver a todos los usuarios registrados en una sesión actual. Cualquiera puede levantar la mano para llamar la a
Características
Levantar la mano
Rol
HERRAMIENTAS Y TOOLKITS INVESTIGADOS
Espectador
Descripción
CAPÍTULO 2.
57
Bibliografía
[1] 3DSlicer. Documentation-3.6, October 2010.
[2] adaszewski. Dicomlab.
[3] Aeskulap. Aeskulap - dicom viewer.
[4] Andy. 3d slicer: The tutorial, December 2008.
[5] Bela Ban. Jgroups - a toolkit for reliable multicast communication, 20022010.
[6] Bela Ban.
Reliable multicasting with the jgroups toolkit - chapter 1.
overview, 2006-2010.
[7] John T. Bell. Visualization toolkit ( vtk ) tutorial, 2004.
[8] OsoSentado Blog. Ver imagenes medicas: Imagej, May 2009.
[9] Albert Cardona, Stephan Saalfeld, Volker Hartenstein, and Pavel Tomancak.
Catmaid: Collaborative annotation toolkit for massive amounts of
image data. page 3, 2009.
[10] National Research Council C.F. Mito - medical imaging toolkit, 2008.
[11] Annie Chabert, Ed Grossman, Larry Jackson, and Stephen Pietrovicz. Ncsa
habanero - synchronous collaborative framework and environment, 2009.
[12] David A. Clunie. dicom3tools. Dicom3tools Software, 2009.
[13] Sandia Corporation. Paraview, 2008.
[14] AIT Information Technology Division. Paraview, Novembre 2007.
[15] Fred Dixon. Bigbluebutton overview, 2010.
[16] Ekiga. Ekiga: What services does ekiga.net provide?, 2010.
[17] Fernando Florez and Luigi Bolaños. ¾dicom? una aproximación a los formatos de las imágenes radiológicas. page 5, 2005.
[18] Center for Integrative Biomedical Computing (CIBC). Imagevis3d.
58
59
BIBLIOGRAFÍA
[19] David Higham.
Sandia national labs achieves breakthrough performance
using nvidia technology for scientic visualization, 2005.
[20] Camshare Inc. Camfrog user guides: Camfrog video chat user guide and
camfrog server user guide, 2010.
[21] Emil Ivov. Sip communicator, 2010.
[22] Larry S. Jackson. Ncsa habanero - version 3.0 & isaac - version 1.0 users
guide, 1995-2001.
[23] Kitware. public.kitware.com.
[24] Inc. Kitware. Paraview features, 2008-09.
[25] Inc Kitware. Visualization toolkit, 2008-09.
[26] Jens Krüger and Tom Fogal. Imagevis3d version 1.3.
[27] Laurent Lecomte. Dicom4j platform. Technical report, dicom4j, 2010.
[28] Marianna. Slicer3:developers, April 2007.
[29] Kenneth Moreland. The ParaView Tutorial Version 3.8, October 2010.
[30] Philippe PUECH and Loic BOUSSEL. Dicomworks, 2008.
[31] Qnext. Qnext: Overview, 2010.
[32] QuickMessage. Quickmessage, 2010.
[33] Wayne Rasband. Imagej - image processing and analysis in java, Nov 2010.
[34] Ciencia y Educación en la red Reuna. Access grid wiki, 2010.
[35] Red de Investigación de Nueva Generación Rin6PCP. Access grid, 2006.
[36] Ryan.
Qnext: Free cross-network & cross-platform messenger.
cybernet-
news.com, 01 2010.
[37] Stephan
Saalfeld,
Albert
Cardona,
Volker
Hartenstein,
and
Pavel
Toman?ák. Catmaid: Collaborative annotation toolkit for massive amounts
of image data, 2009.
[38] Carlos Luis Sanchez Bocanegra. Aplicaciones open source en el ambito de
la salud y sanidad. RevistaEnSalud.com, 6(22):22, 2010.
[39] Jean-Guy Speton. Javatalk, 10 2010.
[40] Debra Sturm. Access grid (ag) demonstrations, 2010.
[41] Junichi Tokuda and Haiying Liu. Openigtlink/slicer, December 2008.
BIBLIOGRAFÍA
60
[42] Ubuntuland. Vtk is an open-source, freely available software system for 3d
computer graphics, image processing and visualization., July 2010.
[43] Access Grid UCA. Arquitectura de access grid, Febrero 2010.
[44] Gunter Zeilinger, Ollie Montgomery, Damien Evans, Gunter Zeilinger,
Franz Willer, Suresh Viswanathan, and Tom Bowles. The dcm4che project
homepage. Technical report, dcm4che.org, 2010.

Documentos relacionados

Descargar el proyecto

Descargar el proyecto sensores. Estas técnicas han recibido el nombre de procesamiento digital de imágenes. Por ‘Procesamiento Digital de Imágenes’ se entiende la manipulación de una imagen a través de un computador, de...

Más detalles