diseño e implementacion de un sistema colaborativo de mensajeria

Anuncio
UNIVERSIDAD DE PAMPLONA
FACULTAD DE INGENIERIAS Y ARQUITECTURA
DEPARTAMENTO DE INGENIERIA ELECTRONICA, ELECTRICA,
TELECOMUNICACIONES Y SISTEMAS
TRABAJO DE GRADO PRESENTADO PARA OPTAR POR EL TITULO DE
INGENIERO DE SISTEMAS
TITULO: DISEÑO E IMPLEMENTACION DE UN SISTEMA COLABORATIVO DE
MENSAJERIA ELECTRONICA PARA LA UNIVERSIDAD DE PAMPLONA
AUTOR: JUAN CARLOS ROMAN PEREZ
DIRECTORA: Msc. LUZ MARINA SANTOS JAIMES
PAMPLONA, COLOMBIA
MARZO, 2006
DISEÑO E IMPLEMENTACION DE UN SISTEMA COLABORATIVO DE
MENSAJERIA ELECTRONICA PARA LA UNIVERSIDAD DE PAMPLONA
ABSTRACT
This document shows the development of a collaborative system for electronic
messaging (CSEM). The CSEM is an application client/server, where the client
program makes a request of connection to the server of the system. The program
server receives the request and sends the response to the client. After of the
connection the client can access to the services: messaging, send of
announcements and transference of files. The server can process many requests
of services (many clients) to same time.
A collaborative system is a system based in computers that support to a group of
people involved in a common task (goal) and that it provides an interface to an
environment shared.
The CSEM proposed hear permits to the users a set of organizational strategies,
the which joint with the technological tools that the organization provides, search to
maximize the results and to minimize the loss of time and of information
(productivity
and
performance),
communication between the group.
It
facilitating
the
process
of
informal
RESUMEN
En este documento se muestra el desarrollo de un sistema colaborativo para
mensajería electrónica (SCME).
El SCME es una aplicación cliente/servidor,
donde el programa cliente realiza una solicitud de conexión al servidor del sistema,
el programa servidor recibe la solicitud y envía respuesta de conexión al cliente.
Luego de la conexión el cliente puede acceder a los servicios de mensajería, envío
de anuncios y transferencia de archivos. El servidor puede procesar múltiples
peticiones de servicios (múltiples clientes) al mismo tiempo.
Un sistema colaborativo es un sistema basado en computadoras que soportan a
un grupo de personas involucradas en una tarea común (u objetivo) y que proveen
una interfaz a un ambiente compartido.
El SCME aquí propuesto permite a los usuarios un conjunto de estrategias
organizacionales, las cuales en conjunto con las herramientas tecnológicas que
provea la organización, buscan maximizar los resultados y minimizar la pérdida de
tiempo y de información (productividad y funcionalidad), facilitando los procesos
de comunicación informal entre el grupo.
LISTA DE FIGURAS
Figura 1 Servicios que ofrecen las herramientas para el Trabajo Colaborativo ....4
Figura 2 Interacción entre herramientas para le trabajo en grupo ........................11
Figura 3 Interfaz grafica del BSCW.......................................................................13
Figura 4 Secuencia de una aplicación bajo el lenguaje Java................................22
Figura 5 Interacción de java con la Red................................................................24
Figura 6 Elementos de la Plataforma Java ...........................................................25
Figura 7 Direccionamiento de Memoria ................................................................26
Figura 8 Petición automática de Servicios ............................................................27
Figura 9 Componentes necesarios para la Plataforma Java ................................28
Figura 10 Representación de la conexión cliente servidor....................................32
Figura 11 Interacción de los procesos en cada nivel ............................................36
Figura 12 Segmentación de aplicaciones. ............................................................39
Figura 13 Ciclo de vida de un applets...................................................................44
Figura 14 Conexión punto a punto, en una arquitectura Cliente / Servidor...........48
Figura 15 Conexión multipunto, en una arquitectura Cliente / Servidor ................49
Figura 16 Actividad de la las Paginas JSP ...........................................................52
Figura 17 Diagrama de casos de uso ...................................................................58
Figura 18 Diagrama de secuencia para el envío de archivos ...............................65
Figura 19 Diagrama de secuencia para la recepción de archivos.........................66
Figura 20 diagrama de secuencia para el envío de un anuncio............................67
Figura 21 diagrama de secuencia donde se ilustra la recepción de un anuncio...68
Figura 22 Diagrama de secuencia para enviar un mensaje. (Chat) ......................69
Figura 23 Diagrama de secuencia para recibir un mensaje..................................70
Figura 24 Inicio del SCME ....................................................................................72
Figura 25 Árbol de comunidades y usuarios. ........................................................73
Figura 26 Envío de Archivo...................................................................................74
Figura 27 Envío de Anuncio..................................................................................75
Figura 28 Interfaz para enviar el anuncio..............................................................75
Figura 29 Ventana de recepción del anuncio........................................................76
Figura 30 Envío de mensajes ...............................................................................77
Figura 31 Muestra cuando un usuario contesta un mensaje ................................78
Figura 32 Conversación Mantenida por dos usuarios...........................................78
INDICE
Tema
Pág.
INTRODUCCIÓN
1
TRABAJO COOPERATIVO .............................................................................1
1.1
DEFINICIÓN..................................................................................................1
1.2
VENTAJAS DE LAS HERRAMIENTAS PARA EL TRABAJO EN GRUPO. ......................6
1.3
RAZONES PARA MOVER UNA ORGANIZACIÓN A GROUPWARE. ............................8
1.4
TIPOS DE GROUPWARE .................................................................................9
1.5
PRINCIPALES SCME................................................................................9
1.5.1 CSCL: ComputerSupported Collaborative Learning...............................9
1.5.2 El BSCW ..............................................................................................12
1.5.3 NetMeeting...........................................................................................14
1.5.4 Plataforma Virtual WebCT. ..................................................................16
1.5.5 LOTUS NOTES....................................................................................17
1.5.6 NUEVO SOFTWARE PARA EL OPENOFFICE GROUPWARE. .........18
1.5.7 OTROS SCME. ....................................................................................19
2
TECNOLOGÍA Y PLATAFORMA PARA EL DESARROLLO DEL SCME ....21
2.1
PLATAFORMA JAVA.....................................................................................21
2.1.1 Definición. ............................................................................................21
2.1.2 Características .....................................................................................22
2.2
MÁQUINA VIRTUAL .....................................................................................29
2.2.1 Definición. ............................................................................................29
2.2.2 Características .....................................................................................29
2.3
ARQUITECTURA CLIENTE / SERVIDOR...........................................................30
2.3.1 Antecedentes. ......................................................................................30
2.3.2 Definición. ............................................................................................30
2.3.3 Características .....................................................................................33
2.3.4 Componentes esenciales de una infraestructura Cliente/Servidor.......33
2.3.4.1 Plataforma Operativa. ...................................................................33
2.3.4.2 Entorno de desarrollo de aplicaciones. .........................................34
2.3.4.3 Gestión de Sistemas.....................................................................34
2.3.4.4 Características funcionales. ..........................................................34
2.3.5 Características lógicas. ........................................................................37
2.3.6 Características. ....................................................................................37
2.3.7 Segmentación de Aplicaciones. ...........................................................39
2.4
APPLETS ...................................................................................................39
2.4.1 Definición. ............................................................................................39
2.4.2 Características .....................................................................................40
2.4.3 Consideraciones sobre la seguridad en los applets. ............................41
2.4.4 Ciclo de vida de un applet:...................................................................43
2.5
SOCKET ....................................................................................................44
2.5.1 Definición. ............................................................................................44
2.5.2 Pasos de la comunicación vía Sockets. ...............................................46
2.5.3 Modelo de Comunicaciones de los Sockets con Java (Simple) ...........48
2.5.4 Modelo de Comunicaciones de los Sockets con Java (Concurrente) ..49
2.5.5 Tipos de Sockets..................................................................................50
2.6
JAVA SERVER PAGES .................................................................................51
2.6.1 Definición. ............................................................................................51
2.7
TOMCAT ....................................................................................................53
2.7.1 Definición. ............................................................................................53
2.7.2 Antecedentes. ......................................................................................54
2.7.3 Servlets. ...............................................................................................54
3
SISTEMA COLABORATIVO DE MENSAJERIA ELECTRONICA PARA EL
DESARROLLO DE PROYECTOS SOFTWARE ...................................................56
4
3.1
DEFINICIÓN:...............................................................................................56
3.2
ESPECIFICACIONES DEL SISTEMA: ................................................................56
3.3
DIAGRAMA DE CASOS DE USO .....................................................................58
3.4
ESCENARIOS DE ESPECIFICACIÓN DE LOS CASOS DE USO ...............................59
3.5
MODELADO DE INTERACCIÓN ENTRE OBJETOS. (DIAGRAMAS DE SECUENCIA)...64
SCME (SISTEMA COLABORATIVO DE MENSAJERIA ELECTRÓNICA) ...71
4.1
DESCRIPCIÓN ............................................................................................71
ANALISIS DE LEGALIDAD.............................................................................87
CONCLUSIONES ...........................................................................................88
RECOMENDACIONES...................................................................................89
INTRODUCCIÓN
El desarrollo de aplicaciones software bajo el lenguaje JAVA es una labor que
viene desempeñando Plataforma Siglo XXI en la Universidad de Pamplona por
parte de los profesionales a cargo. En Colombia existen al menos 850 Empresas
desarrolladoras de Software tributando ante la DIAN y es un mercado que va en
constante crecimiento, [MINI] se piensa que son muchas las empresas que faltan
por surgir e incluso por registrarse ante las entidades de industria y comercio del
país.
El conjunto de patrones determinantes en el desarrollo de proyectos de software
es una tarea compleja, debido a que estos son muy variantes según las
necesidades del cliente y del medio, por lo que constantemente los profesionales
requieren del acceso a información clasificada o resultante de investigaciones y
desarrollos realizados sobre el tema que se este trabajando.
Los sistemas colaborativos ejercen un papel esencial en el continuo surgimiento
de nuevas empresas desarrolladoras de software, que a su vez son inducidas por
los permanentes avances tecnológicos, las cuales buscarán mantenerse en un
nivel competitivo
realicen
dentro del mercado; y para esto se hace necesario que se
desarrollos
mucho
mas
rápido
y
se
garantice
su
calidad.
Aquí es donde se resalta la importancia de los sistemas colaborativos, ya que son
ellos los que ayudan a que dichas empresas, mantengan su nivel competitivo,
consiguen esto basándose en sus características primordiales, como son las de
transferencia de archivos, envió de anuncios y conversación entre usuarios, entre
otras.
Dentro de este marco de desarrollo, se presenta un sistema colaborativo de
mensajería electrónica, con la que se pretenderá una mayor rapidez y eficacia en
el desarrollo de proyectos software en la Universidad de Pamplona.
En este trabajo se presentan los fundamentos teóricos sobre sistemas
colaborativos que son la esencia de este proyecto, se muestran conceptos
relacionados con la transmisión de datos a través de la red, la cual soporta la parte
el funcionamiento de la aplicación. Se hace un breve resumen sobre aspectos
generales de los sistemas colaborativos, y por último se presenta el diseño y
desarrollo del SCME.
1
1
1.1
TRABAJO COOPERATIVO
Definición
El trabajo cooperativo es un área interdisciplinaria muy amplia, la cual se
encuentra soportada por una poderosa tecnología como es Groupware.
Se define Groupware como: "Procesos intencionales de un grupo para alcanzar
objetivos específicos más herramientas de software diseñadas para dar soporte y
facilitar el trabajo" [REVI]. Pues se trata de una estrategia que pretende coordinar
actividades de: comunicación, colaboración, coordinación y negociación con el fin
de aumentar la productividad en una organización.
Analizando el trabajo cooperativo desde esta óptica, se presenta como el conjunto
de estrategias organizacionales, que junto con las herramientas tecnológicas,
pretenden implantar en una organización el trabajo en grupo. Trabajo que es
tendiente a maximizar los resultados y minimizar la pérdida de tiempo y de
información.
2
Una aplicación de Groupware puede requerir además, un ambiente organizacional
específico para que funcione como se espera, esto es, una serie de
procedimientos definidos en relación a las herramientas.
El término interactivo es usado para indicar que las limitaciones de tiempo son
manejadas por el sistema.
Muchas aplicaciones de Groupware aparentan soportar interacción en tiempo real;
Los sistemas que excluyen la referencia al tiempo real no son aplicaciones de
Groupware.
Compartir indica que dos o más participantes interactúan con otro de tal manera
que cada persona ejerce influencia y es influenciada por otras personas.
No
existe un límite al número de participantes 1 . Por lo que algunas definiciones de
Groupware incluyen la noción de meta común.
Otras concepciones de Groupware implican los elementos comunicación,
colaboración y coordinación, donde estos términos están asociados de forma
similar a los elementos de comunicación tales como el correo electrónico.. La
colaboración es la utilización de este tipo de elementos junto con la opción de
,Un objetivo de algunas aplicaciones Groupware es incrementar el número de personas que
pueden interactuar 1
3
compartir información y coordinación de las actividades para que todo se lleve a
cabo.
Normalmente, Internet ha sido considerada como una gran base de datos de
cobertura global más que como un lugar en donde poder llevar a cabo un trabajo
concreto. En este contexto, herramientas clásicas como el correo electrónico y las
listas de distribución no son capaces de ofrecer un mayor soporte para la
realización de trabajos en grupo a través de la Red. En este punto es donde se
están desarrollando las aplicaciones groupware para Internet, que ofrecen a los
usuarios el pilar básico desde el cual promover el trabajo colaborativo a través de
la Web.
Es indudable que los frutos del trabajo en colaboración son mayores que los
conseguidos a partir del que se elabora individualmente, y esta cuestión es
especialmente importante cuando se trata de realizar tareas dentro de una
empresa u organización. Gracias al software para el trabajo en grupo es factible la
mejora del rendimiento en general de todo el proceso productivo y su mayor
aportación es hacer posible que diferentes personas puedan trabajar de forma
compartida con una misma información y cooperar estrechamente en el desarrollo
de proyectos.
4
Este tipo de herramientas se está difundiendo sobre todo en las Intranets
corporativas. Dentro de este contexto, las funciones básicas que se consiguen
llevar a cabo con su utilización son las siguientes: (Figura 1.)
9 Ayuda a que dos personas, o más, trabajen juntas.
9 Permite compartir conocimientos y experiencias.
9 Automatiza sus actividades.
9 Ayuda a crear una memoria de la organización.
9 Desarrollos sin importar la geografía y tiempo.
Figura 1 Servicios que ofrecen las herramientas para el Trabajo Colaborativo
5
Cada día es más frecuente que profesionales pertenecientes a diferentes
universidades, instituciones o empresas lleven a cabo investigaciones aparte de
las funciones normales que realizan en sus lugares habituales de trabajo. Aunque
la Red aporta una serie de instrumentos para esta colaboración, se hacía
necesaria una herramienta capaz de crear en la Web un espacio compartido en
donde desarrollar proyectos comunes de forma totalmente fiable y segura.
Hasta el momento, el sistema más utilizado para manipular documentos, de forma
más o menos paralela, ha sido el correo electrónico y, sobre todo, las listas de
distribución.
El envío de archivos a partir de ello, es constante y constituyen
básicamente la oferta de Internet para el trabajo en grupo. Hay que tener en
cuenta, sin embargo, que no se hace en un área específica, sino que simplemente
hay un movimiento de información de un lugar a otro de la Red.
Esta situación plantea el problema de que las diferentes versiones que se crean
progresivamente de un mismo archivo no están controladas en un único espacio ni
accesibles en cualquier momento a todos los posibles participantes.
Otra utilidad, como lo es el Chat, no ha contado hasta ahora con la aceptación por
parte de la comunidad científica y profesional. La razón, según algunos
investigadores es que ha estado desde su creación más enfocado al
entretenimiento que al trabajo técnico propiamente dicho.
6
No obstante, no puede negarse que es el método más eficaz que Internet pone al
alcance de sus usuarios para la comunicación a tiempo real sin que esto conlleve
un gasto tecnológico alto. De cualquier forma, tampoco debe de despreciarse su
uso simplemente por las implicaciones negativas que conlleva y es necesario
saber encontrar aplicaciones dentro de un contexto científico que aproveche sus
posibilidades reales de interacción.
Con la proliferación de las comunidades virtuales de usuarios de carácter
profesional, la necesidad de dar soporte a ese trabajo interinstitucional es cada
vez más importante. La característica principal de cualquier organización que
promueva la investigación debe ser la de ofrecer las herramientas adecuadas
para que se lleve a cabo la labor que aspira, día a día, a ser cada vez más
competitiva y, sobre todo, que fomente la participación de un mayor número de
personas.
1.2
Ventajas de las herramientas para el trabajo en grupo.
Básicamente aporta las siguientes ventajas en lo referente al desarrollo de tareas
en grupo a través de la Red:
9 Creación de zonas para el trabajo colaborativo entre varios miembros y
desde donde compartir documentos para llevar a cabo proyectos comunes.
2
Que pueden, o no, estar lejanos geográficamente o pertenecer a diferentes organizaciones
2
7
9 Entrada restringida a esas áreas mediante un acceso controlado 3 , y en los
casos que sea necesario, limitar sus posibilidades de manipulación de la
información.
9 Puede convertirse en la puerta de acceso a reuniones o citas entre los
miembros a través de la Red (Chat, videoconferencia). pues ofrece los
medios básicos para realizar sus convocatorias (Envió de anuncios
pertinentes).
9 Presenta ciertas aplicaciones que pueden ser entendidas dentro de un
contexto de workflow o flujo de información como lo es el hecho de que
integra herramientas de comunicación de eventos entre sus miembros.
Las ventajas sobre el correo electrónico son evidentes ya que, principalmente, con
este medio lo único que se produce es una transferencia de documentos de una
máquina a otra.
De cualquier forma, un sistema no tiene porque excluir al otro, es más, ambos se
complementan a la hora de ofrecer apoyo a este tipo de trabajo, ya que el correo
electrónico es utilizado para optimizar recursos transfiriendo documentos extensos
entre los miembros.
3
Permitido solamente a miembros previamente registrados
8
1.3
Razones para mover una organización a groupware.
9 Mejor control de costos.
9 Incremento de la productividad.
9 Mejor servicio al cliente.
9 Pocas reuniones.
9 Automatización de procesos de rutina.
9 Extensión de la organización: se incluye tanto al cliente como al
proveedor.
9 Integración de grupos geográficamente dispersos.
9 Incremento de la productividad a través de más rápidos tiempos de
mercadeo.
9 Mejor coordinación globalmente.
9 Proveer mejores servicios que diferencien a la organización.
9
1.4
Tipos de Groupware
Mismo Tiempo
Mismo Lugar
Tiempos diferentes
Cara a cara
Interacción asíncrona
Clases, salas de
Herramientas de coordinación
reunión
Lugares diferentes Distribución síncrona
1.5
Distribución asíncrona
Editores compartidos,
Correo electrónico, tablones de
ventanas
anuncios
PRINCIPALES SCME
1.5.1 CSCL: ComputerSupported Collaborative Learning.
El aprendizaje en ambientes colaborativos, busca propiciar espacios en los cuales
se dé el desarrollo de habilidades individuales y grupales a partir de la discusión
entre los estudiantes al momento de explorar nuevos conceptos, siendo cada
quien responsable de su propio aprendizaje. Se busca que estos ambientes sean
ricos en posibilidades y más que organizadores de la información propicien el
crecimiento del grupo.
10
El sistema educativo, se encuentra inmerso en un proceso de cambios,
enmarcados en el conjunto de transformaciones sociales propiciadas por la
innovación tecnológica y, sobre todo, por el desarrollo de las tecnologías de la
información y de la comunicación, por los cambios en las relaciones sociales.
Una nueva concepción de las relaciones tecnología-sociedad que determinan las
relaciones tecnología - educación.
En la actualidad, los cambios en el contexto, exigen cambios en los modelos
educativos, cambios en los usuarios de la formación y cambios en los escenarios
donde ocurre el aprendizaje. Tan es así, que la unidad básica de espacio
educativo: el aula o la clase y la unidad básica de tiempo se ven afectadas por la
aparición de las nuevas tecnologías de la información en el ámbito educativo. La
enseñanza nacida de la industrialización se ha caracterizado hasta ahora y en
relación al ambiente instructivo, por seguir una ley de tres unidades: unidad de
tiempo, unidad de lugar y unidad de acción, todos en el mismo lugar, al mismo
tiempo, realizando las mismas actividades de aprendizaje.
Este ambiente característico, comienza a desdibujarse al cambiar las coordenadas
espacio-temporales que propician las telecomunicaciones, contribuyendo a facilitar
el acceso a los recursos de aprendizaje a una mayor diversidad de personas y en
diversas circunstancias.
11
Las redes de comunicación introducen una configuración tecnológica que potencia
un aprendizaje más flexible y, al mismo tiempo, la existencia de nuevos escenarios
del aprendizaje. [REVI]
En este sentido, existen multitud de herramientas de Internet que ofrecen diversas
utilidades 4 que facilitan este trabajo colaborativo.
Para empezar a hablar de
algunas de ellas es necesario conocer la interacción y beneficios que ofrece este
tipo de trabajo, ver figura 2.
Figura 2 Interacción entre herramientas para le trabajo en grupo
4
Espacios compartidos, toma de decisiones, asignación de tareas, votaciones, gestión de grupos.
12
1.5.2 El BSCW
El BSCW es una herramienta, basada en la Web, que facilita la cooperación a
través de “espacios compartidos”, donde los usuarios pueden almacenar y
acceder a documentos aportados por otros miembros del grupo, a que participen
en actividades y experiencias realizadas por los otros miembros.
El BSCW gestiona diferentes espacios compartidos para diferentes grupos y los
usuarios deben disponer de un nombre de usuario y palabra clave para acceder a
ellos, una persona puede pertenecer a diferentes espacios de trabajo utilizando la
misma clave.
Los espacios compartidos pueden contener diferentes tipos de información como
documentos, dibujos, enlaces a URL, discusiones electrónicas, agenda de
direcciones, etc. Los diferentes contenidos se visualizan como “objetos” y se
organizan en directorios o carpetas como muestra la figura 3. [BSCW].
13
Figura 3 Interfaz grafica del BSCW
Características básicas del BSCW
9 Posibilita
el
uso
de
un
espacio
para
compartir
documentos
independientemente del tipo de plataforma.
9 Fácil acceso a la información y los documentos a través de carpetas
9 El BSCW se instala en un servidor, por lo cual no es necesario instalar
ningún tipo de software por parte de los usuarios, se accede a través de
cualquier navegador de WWW.
9 Las principales acciones que se pueden realizar son: añadir nuevos
miembros al espacio colaborativo, publicar nuevos documentos, crear
nuevas carpetas, añadir URL, publicar nuevos artículos para las
discusiones o convocar a los miembros del grupo a reuniones.
14
9 Visualización de las acciones realizadas por todos los miembros del grupo
(creación, lectura, modificación de objetos, discusiones...)
9 Publicación de documentos sin necesidad de utilizar ninguna aplicación de
FTP, se realiza a través del navegador de WWW.
9 Permite crear privilegios de acceso para distintos usuarios.
9 Posibilidad de utilizar un servidor público.
1.5.3 NetMeeting.
Microsoft NetMeeting es un programa que permite: Ver y oír a otras personas,
incluso si no puede transmitir vídeo, podrá recibirlo, compartir programas y
documentos. Podrá trabajar fácilmente con otros participantes en la conferencia.
Sólo es necesario que un equipo tenga instalado el programa; todos los
participantes podrán trabajar simultáneamente en el documento, [NETM] enviar y
recibir archivos para trabajar en ellos, utilizar una pizarra compartida y dibujar en
ella para explicar conceptos, utilizar un esbozo o mostrar gráficos. También se
puede copiar áreas del escritorio o de las ventanas y pegarlas en la Pizarra.
Enviar y recibir mensajes en modo texto 5 sólo es posible mantener una conexión
de audio o vídeo entre dos personas, este tipo de conversación es muy útil en una
conferencia de un grupo, ya que todos pueden participar, además, es posible
codificar las llamadas de conversación, lo que garantiza la privacidad de las
conferencias.
15
La videoconferencia sólo es posible mantenerla entre dos personas aunque en la
conexión existan más. Por ello, ni el audio ni el vídeo son los más utilizados en
labores de cooperación entre un grupo de usuarios.
Mensajes escritos: Se denomina Conversación con NetMeeting a que todos los
participantes en una conferencia (conexión) pueden comunicarse entre sí
mediante mensajes escritos (Chat). Este tipo de comunicación y la facilidad en el
envío de mensajes de texto es imprescindible en una conferencia de un grupo ya
que todos pueden participar simultáneamente.
Transferencia de ficheros. Mientras los interlocutores de una conferencia
dialogan, existe la posibilidad de transferir ficheros entre ellos. (FTP).
FTP significa File Transfer Protocol, protocolo de transferencia de ficheros. Es un
servicio de Internet que permite transferencia de archivos. Se utiliza en modo
cliente-servidor, conectados a un ordenador remoto 6 el programa (cliente) permite
solicitar la transferencia de archivos en cualquiera de las dos direcciones.
El servidor de archivos debe admitir las transferencias de tipo FTP, por lo que
deberá ser un ordenador especialmente preparado para esta tarea.
5
6
El programa llama a esta característica conversación.
Que actúa como servidor y que es un gran ordenador permanentemente conectado a Internet
16
Compartir aplicaciones externas a NetMeeting. Ello permite a los participantes
ver y trabajar en ficheros simultáneamente. Así es que por ejemplo, se pueda
trabajar un documento de texto con un determinado procesador en el que se
necesiten trabajar varias personas. [REVI]
1.5.4 Plataforma Virtual WebCT.
Es un entorno educativo que puede ser utilizado para desarrollar trabajo
cooperativo. Su utilización está muy extendida entre entidades educativas
7
y se
dice de él, que es un entorno diseñado por profesores para profesores. [WEBC]
La característica principal de este programa, es la gestión de espacios
independientes que suelen denominarse como asignaturas o cursos en el entorno
educativo. Estos espacios se mantienen en una misma computadora que requiere
un administrador del sistema informático.
Cada espacio o curso queda a disposición de los integrantes del grupo que se
dividen en dos clases: usuarios generales o estudiantes y administrador del área o
profesor. Se accede a estos espacios utilizando un navegador de páginas Web, a
través de Internet.
17
1.5.5 LOTUS NOTES.
Aplicación de groupware que permite a grupos de personas tener acceso,
rastrear, actualizar, organizar y compartir información; además de que les permite
participar en discusiones de grupo, distribuir informes y administrar proyectos.
Lotus Notes es un entorno abierto para el uso compartido de conocimientos y para
la creación de aplicaciones vitales en el mundo empresarial. Su núcleo está
constituido por una exclusiva tecnología de gestión de documentos y de objetos,
que se ocupa de almacenar la información de manera segura en bases de datos
compartidas situadas en servidores de red, y que facilita a toda una organización
el acceso rápido a la información. [LOTU]
Utilizado ya como motor de aplicaciones de todo tipo, desde las tareas habituales
de coordinación de grupos de trabajo, pasando por las publicaciones electrónicas,
administración de sistemas de fax, gestión de llamadas telefónicas y del correo
electrónico y tratamiento de documentos, hasta la gestión de proyectos:
prácticamente toda la gestión de información dentro de la empresa puede ser
abordada por Notes.
Lotus Notes favorece la colaboración para que el trabajo en equipo dé sus frutos,
acercando a las personas entre sí, de formas hasta ahora impensables: a través
7
Más de 560 en EEUU, más de 91 en Canadá, más de 41 en Australia y más de 136 en Europa
18
de una red, mediante los principales tipos de ordenadores, entre organizaciones
distintas y por todo el mundo.
Lotus Notes mejora el rendimiento al reducir el tiempo necesario para realizar
procesos fundamentales en las empresas, desde el desarrollo de productos hasta
los departamentos de atención al cliente.
Lotus Notes salió a la venta en 1998; su configuración original solo ofrecía el
correo electrónico y los documentos en grupo como funciones estándar. La clave
del éxito de Notes fue haber sido el primer producto de groupware y haber contado
con el respaldo de Lotus y de IBM.
Lotus Puede operar en estaciones de trabajo compatibles con IBM, que corre en
OS2 o Windows, Macintosh y estaciones de trabajo que utiliza Unix, y puede ser
utilizado en redes Lan y Wan.
1.5.6 NUEVO SOFTWARE PARA EL OPENOFFICE GROUPWARE.
El proyecto OpenGroupware.org ("OGo") anuncia su creación y la liberación para
el desarrollo de software servidor groupware de OGo.
El software ofrece los
componentes de servidor necesarios para la colaboración total con la suite
OpenOffice.org así como otros clientes de groupware que corren en Linux y
Solaris. El proyecto OGo es un proyecto de software libre totalmente
19
independiente, pero que operará internamente con OpenOffice.org y otros clientes
similares, a través de estándares abiertos.
El software OGo está basado inicialmente en la contribución de código de SkyriX
4.1 Groupware Server, un producto maduro que ha estado en el mercado durante
7 años, y uno de los más antiguos productos groupware para el sistema operativo
Linux. [OFFI]
1.5.7 OTROS SCME.
Otra alternativa a la hora de ofrecer todo este tipo de servicios es MBone. Con las
herramientas disponibles actualmente para emplear con MBone (que además son
de libre distribución y gratuitas) se permite tanto la transferencia de audio, vídeo,
compartir pizarra electrónica, edición compartida de texto, textoconferencias, etc.
IBM Sametime, es un software en tiempo real para la colaboración de proyectos
software, con el conocimiento en línea que permite localizar a los compañeros de
trabajo que están conectados y enviarles mensajes, transferir ficheros e iniciar
reuniones instantáneas que incluyen audio y vídeo, pantalla compartida, pizarra y
otras herramientas de colaboración. [SAME]
El Sun Java Enterprise System en un concepto radicalmente nuevo en el campo
del software de infraestructura empresarial. Simplifica el proceso de adquisición,
20
instalación y despliegue del software, y lo hace más predecible y económico. Es
un sistema de software abierto líder en la industria de servicios de red
empresariales, posee un enfoque sistemático para desarrollar, probar y distribuir
una solución compacta, e introduce un modelo de negocio que proporciona una
solución completa de: software, mantenimiento, soporte, consultoría y servicios de
información. [JES].
21
2
2.1
TECNOLOGÍA Y PLATAFORMA PARA EL DESARROLLO DEL SCME
Plataforma Java
2.1.1 Definición.
Java es una plataforma, desarrollada al comienzo de los años 90 con el objetivo
concreto de permitir ejecutar programas sin tener relativamente en cuenta el
hardware final, sin volver a reescribir todo el código del programa.
Consiste en tres grandes bloques.
¾ El lenguaje Java
¾ Una máquina virtual
¾ Un programa de aplicación de interfaz o API.
Java, el lenguaje orientado a objetos diseñado para ser multiplataforma y poder
ser empleado el mismo programa en diversos sistemas operativos.
Esta característica, junto con la posibilidad de emplearlo para crear applets, e
insertarlos en páginas HTML, o mediante servlets y páginas JSP generar código H
22
TML dinámico. Todo ello con la capacidad de acceder a bases de datos.
Para lograr ejecutar los programas sobre una unidad (virtual), se compilan a
código binario como bytecode para cualquier máquina virtual de Java, como se ve
en la (Figura 4).
Figura 4 Secuencia de una aplicación bajo el lenguaje Java
Gracias al API de java se podra ampliar el lenguaje para que sea capaz de, por
ejemplo, comunicarse con equipos mediante red, acceder a bases de datos, crear
páginas HTML dinámicas, y crear aplicaciones visuales.
2.1.2 Características
9 Simple:
El conjunto de palabras reservadas es muy reducido, así como las reglas de
sintaxis, lo que hace de Java un lenguaje fácil de aprender.
23
9 Orientado a Objetos.
Java presenta todas las características necesarias para la programación
orientada a objetos, como la herencia, polimorfismo, encapsulamiento. etc.
9 Distribuido.
Debido a las características de conectividad del lenguaje, existe la capacidad
de programar distintas aplicaciones para que se ejecuten en distintas
máquinas, en las cuales se distribuye el trabajo, minimizando tiempos.
9 Seguro.
El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus
con este lenguaje. Existen muchas restricciones, especialmente para los
applets, que limitan lo que se puede y no puede hacer con los recursos críticos
de una computadora.
9 Arquitectura Neutral.
Para establecer Java como parte integral de la red, el compilador Java compila
su código a un fichero objeto de formato independiente de la arquitectura de la
máquina en que se ejecutará. Cualquier máquina que tenga el sistema de
ejecución (run-time) puede ejecutar ese código objeto, sin importar en modo
alguno la máquina en que ha sido generado, véase figura 5, [CIEN]
24
Figura 5 Interacción de java con la Red
El código fuente Java se "compila" a un código de bytes de alto nivel
independiente de la máquina. Este código (bytecodes) está diseñado para
ejecutarse en una máquina hipotética que es implementada por un sistema runtime, que sí es dependiente de la máquina. Los elementos que forman parte de la
arquitectura de Java sobre una plataforma genérica, se muestran en la figura 6.
[CIEN]
25
Figura 6 Elementos de la Plataforma Java
9 Alto rendimiento.
La velocidad de ejecución de los programas hechos en java es mejor a la
de los lenguajes interpretados convencionales. El código generado por un
programa java es muy compacto lo que ahorra recursos.
9 Portable.
Como el código compilado de Java (bytecode) es interpretado, un programa
compilado de Java puede ser utilizado por cualquier computadora que
tenga implementado el interprete de Java, (Figura 4).
9 Robusto.
El sistema de Java maneja la memoria de la computadora por usted. No
tiene que preocuparse por apuntadores, memoria que no se esté utilizando,
Java realiza todo esto sin necesidad de que uno se lo indique.
9 Interpretado
Debido a que java no está diseñado para ejecutarse en una arquitectura
determinada, es necesario interpretar los programas hechos en java para
26
que se puedan ejecutar en una plataforma específica. Actualmente ya
existen compiladores en tiempo real (JIT - JUST IN TIME) lo que acelera la
ejecución de Java.
9 Multithread.
Es un lenguaje que soporta múltiples hilos y por lo tanto se pueden ejecutar
varios procedimientos en paralelo.
9 Dinámico
Java no requiere que se compile todas las clases de un programa para que
este funcione. Si realiza una modificación a una clase Java se encarga de
realizar un Dynamic Bynding o un Dynamic Loading para encontrar las
clases. Gracias a las características de los objetos, java está cambiando
constantemente de forma, aumentando sus capacidades. Desde otro punto
de vista java permite el direccionamiento de memoria en forma dinámica,
figura 7. [CIEN]
Figura 7 Direccionamiento de Memoria
27
Java también simplifica el uso de protocolos nuevos o actualizados. Si su sistema
ejecuta una aplicación Java sobre la red y encuentra una pieza de la aplicación
que no sabe manejar, Java es capaz de traer automáticamente cualquiera de esas
piezas que el sistema necesita para funcionar, figura 8. [CIEN]
Figura 8 Petición automática de Servicios
Java, para evitar que los módulos de bytecodes o los objetos o nuevas clases,
haya que estar trayéndolos de la red cada vez que se necesiten, implementa las
opciones de persistencia, para que no se eliminen cuando se limpie la caché de la
máquina. [CIEN]
9 Es un lenguaje compilado:
Genera archivos de clases compiladas, pero estas clases compiladas, son
en realidad interpretadas por la máquina virtual de java. Siendo la máquina
28
virtual de java la que mantiene el control sobre las clases que se estén
ejecutando.
9 Es un lenguaje multiplataforma:
El mismo código java que funciona en un sistema operativo, funcionará en
cualquier otro sistema operativo que tenga instalada la máquina virtual java.
Para poder trabajar con java es necesario emplear un software que permita
desarrollar en java. Existen varias alternativas comerciales en el mercado:
JBuilder, Visual Age, Visual Café,... y un conjunto de herramientas
Shareware, e incluso freeware, que permiten trabajar con java, pero todas
estas herramientas en realidad se basan en el uso de una herramienta
proporcionada por Sun, el creador de java, que es el Java Development
Kit (JDK), véase, Figura 9.
Figura 9 Componentes necesarios para la Plataforma Java
29
2.2
Máquina Virtual
2.2.1 Definición.
La máquina virtual de Java (Java Virtual Machine, JVM) es un programa nativo, es
decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar
instrucciones expresadas en un código binario especial (el Java bytecode), el cual
es generado por el compilador del lenguaje Java.
El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código
máquina de bajo nivel, viable incluso como lenguaje de entrada para un
microprocesador físico.
2.2.2 Características
9 La gran ventaja de la máquina virtual java es aportar portabilidad al
lenguaje de manera que desde SUN se han creado diferentes máquinas
virtuales java para diferentes arquitecturas y así un programa .class escrito
en un Windows puede ser interpretado en un entorno Linux. Tan solo es
necesario disponer de dicha máquina virtual para dichos entornos.
9 La máquina virtual de Java puede estar implementada en software,
hardware, una herramienta de desarrollo o un Web browser; lee y ejecuta
30
código precompilado bytecode que es independiente del concepto
multiplataforma.
9 La JVM provee definiciones para un conjunto de instrucciones, un conjunto
de registros, un formato para archivos de clases, la pila, un heap con
recolector de basura y un área de memoria. Cualquier implementación de la
JVM que sea aprobada por SUN debe ser capaz de ejecutar cualquier clase
que cumpla con la especificación.
2.3
Arquitectura Cliente / Servidor
2.3.1 Antecedentes.
El modelo Cliente/Servidor se considera clave para abordar las necesidades de
empresas que se encuentren en un proceso distribuido. Este cambio fundamental
ha surgido como consecuencia de importantes factores (negocio, tecnología,
proveedores), y se apoya en la existencia de una gran variedad de aplicaciones
estándar y herramientas de desarrollo, fáciles de usar que soportan un entorno
informático distribuido y colaborativo.
2.3.2 Definición.
Con la proliferación de ordenadores personales de bajo coste en el mercado, los
recursos de sistemas de información existentes en cualquier organización se
31
pueden distribuir entre ordenadores de diferentes tipos: ordenadores personales
de gama baja, media y alta, estaciones de trabajo, mini-ordenadores o incluso
grandes ordenadores.
El concepto de cliente/servidor proporciona una forma eficiente de utilizar todos los
recursos de máquina de tal forma que la seguridad y fiabilidad de los ordenadores
se traspasa a la red de área local. A esto hay que añadir la ventaja de la potencia
y simplicidad de los ordenadores personales [SECR].
La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de
información, en el que las transacciones se dividen en procesos independientes
que cooperan entre sí para intercambiar información, servicios o recursos.
Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y
servidor, al proceso que responde a las solicitudes.
Es el modelo de interacción
más común entre aplicaciones en una red. No forma parte de los conceptos de la
Internet como los protocolos IP, TCP o UDP, sin embargo todos los servicios
estándares de alto nivel propuestos en Internet funcionan según este modelo. Los
principales componentes del esquema cliente/servidor son entonces los Clientes,
los Servidores y la infraestructura de comunicaciones, figura 10.
En este modelo, las aplicaciones se dividen de forma que el servidor contiene la
parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo
lo particular de cada usuario.
32
Los Clientes interactúan con el usuario, usualmente en forma gráfica.
Frecuentemente se comunican con procesos auxiliares que se encargan de
establecer conexión con el servidor, enviar el pedido, recibir la respuesta, manejar
las fallas y realizar actividades de sincronización y de seguridad.
Figura 10 Representación de la conexión cliente servidor
Para que los clientes y los servidores puedan comunicarse se requiere una
infraestructura de comunicaciones, la cual proporciona los mecanismos básicos de
direccionamiento y transporte.
La mayoría de los sistemas Cliente/Servidor actuales, se basan en redes locales y
por lo tanto utilizan protocolos no orientados a conexión, lo cual implica que las
aplicaciones deben hacer las verificaciones. La red debe tener características
adecuadas
[INST_01]
de
desempeño,
confiabilidad,
transparencia
y
administración.
33
2.3.3 Características
9 El servidor presenta a todos sus clientes una interfaz única y bien definida.
9 El cliente no necesita conocer la lógica del servidor, sólo su interfaz
externa.
9 El cliente no depende de la ubicación física del servidor, ni del tipo de
equipo físico en el que se encuentra, ni de su sistema operativo.
9 Los cambios en el servidor implican pocos o ningún cambio en el cliente.
2.3.4 Componentes esenciales de una infraestructura Cliente/Servidor
2.3.4.1 Plataforma Operativa.
La plataforma deberá soportar todos los modelos de distribución Cliente/Servidor,
todos los servicios de comunicación, y deberá utilizar, preferentemente,
componentes estándar de la industria para los servicios de distribución.
Los desarrollos propios deben coexistir con las aplicaciones estándar y su
integración deberá ser imperceptible para el usuario. Igualmente, podrán
acomodarse programas escritos utilizando diferentes tecnologías y herramientas.
[INST_02]
34
2.3.4.2 Entorno de desarrollo de aplicaciones.
Debe elegirse después de la plataforma operativa. Aunque es conveniente evitar
la proliferación de herramientas de desarrollo, se garantizará que el enlace entre
éstas y el middleware no sea excesivamente rígido. Será posible utilizar diferentes
herramientas para desarrollar partes de una aplicación.
Un entorno de aplicación incremental, debe posibilitar la coexistencia de procesos
cliente y servidor desarrollados con distintos lenguajes de programación y/o
herramientas, así como utilizar distintas tecnologías (por ejemplo, lenguaje
procedural, lenguaje orientado a objetos, multimedia), y que hayan sido usadas en
distintos momentos del tiempo. [INST_02]
2.3.4.3 Gestión de Sistemas.
Estas funciones aumentan considerablemente el costo de una solución, pero no se
pueden evitar. Siempre deben adaptarse a las necesidades de la organización, y
al decidir la plataforma operativa y el entorno de desarrollo. [INST_02]
2.3.4.4 Características funcionales.
Esta arquitectura se puede clasificar en cinco niveles, según las funciones que
asumen el cliente y el servidor, tal y como se puede ver en la figura 11: [INST_03]
35
En el primer nivel
El cliente asume parte de las funciones de presentación de la aplicación, ya que
siguen existiendo programas en el servidor, dedicados a esta tarea. Dicha
distribución se realiza mediante el uso de productos para el "maquillaje" de las
pantallas del mainframe. Esta técnica no exige el cambio en las aplicaciones
orientadas a terminales, pero dificulta su mantenimiento. Además, el servidor
ejecuta todos los procesos y almacena la totalidad de los datos. En este caso se
dice que hay una presentación distribuida o embellecimiento. [INST_03]
En el segundo nivel.
La aplicación está soportada directamente por el servidor, excepto la presentación
que es totalmente remota y reside en el cliente. Los terminales del cliente soportan
la captura de datos, incluyendo una validación parcial de los mismos y una
presentación de las consultas. En este caso se dice que hay una presentación
remota. [INST_03]
En el tercer nivel.
La lógica de los procesos se divide entre los distintos componentes del cliente y
del servidor. El diseñador de la aplicación debe definir los servicios y las interfaces
del sistema de información, de forma que los papeles de cliente y servidor sean
intercambiables, excepto en el control de los datos, que es responsabilidad
exclusiva del servidor. En este tipo de situaciones se dice que hay un proceso
distribuido o cooperativo. [INST_03]
36
Figura 11 Interacción de los procesos en cada nivel
En el cuarto nivel.
El cliente realiza tanto las funciones de presentación como los procesos. Por su
parte, el servidor gestiona los datos pertinentes que pueden permanecer a una
base de datos centralizada o procesos que se estén en tiempo de ejecución. En
esta situación se dice que hay una gestión de datos remota. [INST_03]
En el quinto nivel.
El reparto de tareas es como en el anterior y además las interfaces entre ambos,
están dentro de las funciones del gestor de datos y, por lo tanto, no tienen impacto
en el desarrollo de las aplicaciones. [INST_03].
37
2.3.5 Características lógicas.
Cabe señalar que en la arquitectura cliente/servidor se evitan las duplicidades
(copias y comparaciones de datos), teniendo siempre una imagen única y correcta
de los mismos, disponible en línea para su uso inmediato.
Todo esto tiene como fin que el usuario de un sistema de información soportado
por una arquitectura cliente/servidor, trabaje desde su estación de trabajo con
distintos datos y aplicaciones, sin importarle dónde están o dónde se ejecuta cada
uno de ellos. [INST_04]
2.3.6 Características.
Se ilustrara que con el uso de este esquema se reducen los costos de producción
de software y se disminuyen los tiempos requeridos. Esto es así, pues para la
construcción de una nueva aplicación pueden usarse los servidores que hay
disponibles, reduciéndose el desarrollo a la elaboración de los procesos del
cliente, según los requerimientos deseados.
El esquema cliente/servidor, facilita el suministro de información a los usuarios.
Esto es así porque, por un lado, proporciona una mayor consistencia a la
información de la empresa al contar con un control centralizado de los elementos
compartidos, y por otro, porque facilita la construcción de interfaces gráficas
interactivas, las cuales pueden hacer que los "datos" se conviertan en
38
"información".
El esquema cliente/servidor permite llevar más fácilmente la
información a donde se necesita, ya que contribuye a aumentar su precisión, pues
se puede obtener de su fuente (el servidor) y no de una copia en papel o en medio
magnético.
La habilidad de integrar sistemas heterogéneos es inherente al modelo
cliente/servidor, pues los clientes y los servidores pueden existir en múltiples
plataformas y hacer acceso a datos de cualquier sitio de la red. Además, un cliente
puede integrar datos de diferentes sitios para presentarlos, a su manera, al
usuario final.
Al favorecer la construcción de interfaces gráficas interactivas y el
acceso transparente a diferentes nodos de la red, se facilita el uso de las
aplicaciones por parte de los usuarios, lo cual aumenta su productividad.
El esquema cliente/servidor también favorece la adaptación a cambios en la
tecnología pues facilita la migración de las aplicaciones a otras plataformas y, al
aislar claramente las diferentes funciones de una aplicación, hace más fácil
incorporar nuevas tecnologías en ésta. [INST_06]
39
2.3.7 Segmentación de Aplicaciones.
La figura 12 muestra el proceso que se lleva a cabo en una aplicación
cliente/servidor. [INSTT]
Figura 12 Segmentación de aplicaciones.
2.4
Applets
2.4.1 Definición.
Java creó un nuevo concepto al brindar a los programadores la opción de crear
tipos distintos de ejecutables como es el de applet, ya que es un pequeño
programa que se ejecuta dentro de un browser compatible con Java. De la misma
40
forma que una imagen se incluye en una página html, jsp, etc. [J2EE].
A las
páginas que contienen applets se las denomina páginas Java-Powered y los
applets pueden ser visualizados gracias a la herramienta appletviewer, incluido en
el JDK de Java. [JAVA].
Todos los applets se encuentran restringidos al entorno Java (de la JVM) y se les
prohíbe interactuar con el sistema operativo del cliente, para lo cual el equipo Java
de Sun Microsystems creo una barrera (cortafuegos), entre el S.O y los applets.
[J2EE].
Los applets están programados en Java y precompilados, es por ello que la
manera de trabajar de éstos varía un poco con respecto a los lenguajes de script
como Javascript. Los applets requieren unos conocimientos básicos o medios del
lenguaje Java. [JAVA].
2.4.2 Características
9 Se cargan mediante un navegador, no siendo lanzados por el intérprete
Java.
9 Son cargados a través de la red por medio de páginas HTML y no residen
en el disco duro de la máquina que los ejecuta.
41
9 Poseen un ciclo de vida diferente; mientras que una aplicación se lanza una
vez, una applet se arranca (inicia) cada vez que el usuario recarga la
página en la que se encuentra la applet.
9 Tienen menos derechos que una aplicación clásica, por razones de
seguridad. De modo predeterminado en el puesto que los ejecuta no
pueden ni leer ni escribir ficheros, ni lanzar programas, ni cargar DLLs. Sólo
pueden comunicarse con el servidor Web en que se encuentra la página
Web que las contiene. [JAVA]
2.4.3 Consideraciones sobre la seguridad en los applets.
Los applets tienen una serie de restricciones de programación que los hacen
seguros. Estas restricciones de seguridad son especialmente importantes, ya que
evitarán que se cargue por error un applet que destruya datos de la máquina, que
obtenga información restringida, o que produzca otros daños inesperados.
Los applets no dejan de ser "ejecutables" que funcionan dentro de una aplicación,
como puede ser un visualizador de páginas Web (browser). Este ejecutable puede
obtenerse de una red, lo que significa que hay código posiblemente no fiable que
se ejecuta dentro de la aplicación.
42
Java tiene muchas salvaguardas de seguridad que minimizan el riesgo de la
ejecución
de
applets,
pero
estas
salvaguardas
también
limitan
a
los
programadores de applets en su capacidad de programación.
El modelo de seguridad para los applets en Java trata un applet como código no
fiable ejecutándose dentro de un entorno fiable. Por ejemplo, cuando un usuario
instala una copia de un navegador Web en una máquina se está fiando que su
código será funcional en el entorno. Normalmente los usuarios tienen cuidado de
qué instalan cuando proviene de una red. Una applet, por el contrario, se carga
desde la red sin ninguna comprobación de su fiabilidad.
Estas salvaguardas son implementadas para verificar que los códigos de byte de
las clases de los applets, no rompen las reglas básicas del lenguaje ni las
restricciones de acceso en tiempo de ejecución. Sólo cuando estas restricciones
son satisfechas se le permite al applet ejecutar su código. Cuando se ejecuta, se
le marca para señalar que se encuentra dentro del intérprete.
Esta marca permite a las clases de tiempo de ejecución determinar cuándo a una
fracción del código se le permite invocar a cierto método. Por ejemplo, un applet
está restringido en los hosts en los que se puede abrir una conexión de red o en
un conjunto de URLs a las que puede acceder. En conjunto estas restricciones
constituyen una política de seguridad. Java cuenta con políticas de encriptación y
autentificación para permitir a las applets una mayor capacidad. [JAVA]
43
La actual política de seguridad afecta a los recursos que un applet puede usar,
cuyos principales puntos son:
9 Los accesos que pueden realizar los applets a los ficheros son restringidos.
En particular escribir en ficheros y/o leerles no será una capacidad estándar
que se pueda realizar en los navegadores que soporten applets de Java.
9 Las conexiones de red serán restringidas a conectar sólo con el host del
que proviene el applet.
9 Un applet no es capaz de usar ningún método que pueda resultar en una
ejecución arbitraria, código no revisado o ambos. Esto incluye métodos que
ejecuten programas arbitrarios (métodos nativos) así como la carga de
bibliotecas dinámicas. [FRAN]
2.4.4 Ciclo de vida de un applet:
Se anticipa en cualquier caso que en el futuro los modelos de seguridad permitirán
a los applets autentificadas superar estas restricciones.
Un applet no tiene un ciclo de vida tan "sencillo" como el de una aplicación, que
simplemente se ejecuta hasta que finaliza su método main(), por lo que se
44
muestra una ilustración de cómo es su ciclo de vida para una mejor especificación,
figura 13. [FRAN]
Figura 13 Ciclo de vida de un applets
2.5
Socket
2.5.1 Definición.
Los sockets son mecanismos de comunicación entre procesos que permiten que
un proceso hable (emita o reciba información) con otro proceso incluso estando en
distintas máquinas. Un socket es al sistema de comunicación entre ordenadores
lo que un buzón o un teléfono es al sistema de comunicación entre personas.
Un
punto
de
comunicación
entre
dos
agentes
(procesos
o
personas
respectivamente) por el cual se puede emitir o recibir información. La forma de
45
referenciar un socket por los procesos implicados es mediante un descriptor del
mismo tipo que el utilizado para referenciar ficheros.
Se podrá realizar redirecciones de los archivos de E/S estándar a los sockets y así
combinar entre ellos aplicaciones de la red. Todo nuevo proceso creado heredará,
por tanto, los descriptores de sockets de su padre.
Una aplicación servidor normalmente escucha a un puerto específico esperando
una petición de conexión de un cliente. Cuando llega una petición de conexión, el
cliente y el servidor establecen una conexión dedicada sobre la que poder
comunicarse. Durante el proceso de conexión, el cliente es asignado a un número
de puerto, y ata un socket a ella.
El cliente habla al servidor escribiendo sobre el socket y obtiene información del
servidor cuando lee de él. Similarmente, el servidor obtiene un nuevo número de
puerto local,
8
y asigna un socket a este puerto local y se comunica con él
mediante la lectura y escritura.
8
Se necesita un nuevo puerto para poder continuar escuchando la petición de conexión del puerto
original.
46
El cliente y el servidor deben establecer el protocolo es decir, debe ponerse de
acuerdo en el lenguaje para transferir la información de vuelta a través del socket,
ya sea por medio de una conexión por TCP Simple o Concurrente.
Entonces se establece que un socket es el punto final de un enlace de
comunicación de dos vías entre dos programas que se ejecutan a través de la red.
La comunicación entre procesos a través de sockets se basa en la filosofía
CLIENTE-SERVIDOR y un proceso en esta comunicación actuará de proceso
servidor cuando crea un socket cuyo nombre conocerá el proceso cliente, que
podrá "hablar" con el proceso servidor a través de la conexión con dicho socket.
El otro proceso actuará como cliente creando un socket sin nombre cuyo
descriptor usará para leer o escribir
El enlace entre los dos sockets permite una comunicación full duplex,
característica propia de los sockets y que los diferencia de los pipes, o canales de
comunicación unidireccional entre procesos de una misma máquina.
2.5.2 Pasos de la comunicación vía Sockets.
9 El proceso servidor crea un socket con nombre y espera la conexión.
9 El proceso cliente crea un socket sin nombre.
47
9 El proceso cliente realiza una petición de conexión al socket servidor.
9 El cliente realiza la conexión a través de su socket mientras el proceso
servidor mantiene el socket servidor original con nombre.
Es muy común en este tipo de comunicación lanzar un proceso hijo, una vez
realizada la conexión, que se ocupe del intercambio de información con el proceso
cliente mientras el proceso padre servidor sigue aceptando conexiones.
48
2.5.3 Modelo de Comunicaciones de los Sockets con Java (Simple)
En este caso se ilustra en la figura 14, como es la conexión de un cliente con el
servidor mediante la utilización de Sockets.
Figura 14 Conexión punto a punto, en una arquitectura Cliente / Servidor
49
2.5.4 Modelo de Comunicaciones de los Sockets con Java (Concurrente)
Se muestra como es la conexión de varios clientes con el servidor mediante la
utilización de Sockets, figura 15.
Figura 15 Conexión multipunto, en una arquitectura Cliente / Servidor
50
2.5.5 Tipos de Sockets.
En toda comunicación a través de Internet, bajo el protocolo TCP, existen clases
que proporcionan métodos para la entrada/salida a través de streams que hacen
la lectura y escritura a través de sockets muy sencilla, ver Tabla 1.
Tabla 1. Descripción de los tipos de Sockests
TIPO
ServerSocket
DESCRIPCIÓN
Es un objeto utilizado en las aplicaciones servidor para
escuchar las peticiones que realicen los clientes conectados a
ese servidor. Este objeto no realiza el servicio, sino que crea
un objeto Socket en función del cliente para realizar toda la
comunicación a través de él.
DatagramSocket La clase de sockets datagram es utilizada para implementar
datagramas, ya que la comunicación es muy rápida por estos
sockets debido a que no hay que perder tiempo estableciendo
la conexión entre cliente y servidor.
DatagramPacket Clase que representa un paquete datagram, conteniendo
información del paquete, longitud del paquete, direcciones
Internet y números de puerto.
MulticastSocket Clase utilizada para crear una versión multicast de la clase
socket
datagram,
de
tal
manera
que
múltiples
clientes/servidores pueden transmitir a un grupo multicast (un
grupo de direcciones IP compartiendo el mismo número de
puerto).
NetworkServer
Una clase creada para implementar métodos y variables
utilizadas en la creación de un servidor TCP/IP.
NetworkClient
Una clase creada para implementar métodos y variables
51
utilizadas en la creación de un cliente TCP/IP.
SocketImpl
Es un interfaz que nos permite crear nuestro propio modelo de
comunicación, por lo que se deberá implementar los métodos
cuando se use.
Si se va a desarrollar una aplicación con
requerimientos especiales de comunicaciones, como puede ser
la implementación de un cortafuegos (TCP es un protocolo no
seguro), o acceder a equipos especiales (como un lector de
código de barras o un GPS diferencial), se necesitara
una
clase Socket propia.
2.6
Java Server Pages
2.6.1 Definición.
La tecnología JSP, o Java Server Pages, es una tecnología Java que permite a los
programadores generar dinámicamente HTML, XML o algún otro tipo de página
Web, ver figura 16. Esta tecnología permite al código Java y a algunas acciones
predefinidas ser embebidas en el contenido estático. En las JSPs, se escribe el
texto que va a ser devuelto en la salida (normalmente código HTML) incluyendo
código java dentro de él para poder modificar o generar contenido dinámicamente.
El código java se incluye dentro de las marcas de etiqueta <% y %>.
52
Figura 16 Actividad de la las Paginas JSP
La principal ventaja de JSP frente a otros lenguajes es que permite integrarse con
clases Java (.class) lo que permite separar en niveles las aplicaciones Web,
almacenando en clases java las partes que consumen más recursos así como las
que requieren más seguridad, y dejando la parte encargada de formatear el
documento html en el archivo JSP.
Además Java se caracteriza por ser un
lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a JSP le da
mucha versatilidad. [WIKI_03]
Un JSP se compila a un programa en Java la primera vez que se invoca, y del
programa en Java se crea una clase que se empieza a ejecutar en el servidor
como un servlet. La principal diferencia entre los servlets y los JSPs es el enfoque
53
de la programación: un JSP es una página Web con etiquetas especiales y código
Java incrustado, mientras que un servlet es un programa que recibe peticiones
genera a partir de ellas una página Web., figura 16. [GENE]
2.7
Tomcat
2.7.1 Definición.
Tomcat (Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de
servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation.
Tomcat implementa las especificaciones de los servlets y de Java Server Pages
(JSP) de Sun Microsystems. Se le considera un servidor de aplicaciones.
Tomcat no funciona con cualquier servidor Web con soporte para servlets y JSPs.
Tomcat incluye el compilador Jasper, que compila JSPs convirtiéndolas en
servlets. El motor de servlets del Tomcat a menudo se presenta en combinación
con el servidor Web Apache. Tomcat puede, así mismo, funcionar como servidor
Web por sí mismo. Opera de tal manera en entornos de desarrollo poco exigentes
en términos de velocidad y de manejo de transacciones. Dado que Tomcat fue
escrito en Java, funciona en cualquier sistema operativo que disponga de la
máquina virtual. [WIKI_01]
54
2.7.2 Antecedentes.
Tomcat empezó siendo una implementación de la especificación de los servlets
comenzada por James Duncan Davidson, que trabajaba como arquitecto de
software en Sun y que posteriormente ayudó a hacer los proyectos open source y
en su donación a Apache Software Foundation.
Duncan Davidson inicialmente esperaba que el proyecto se convirtiese en open
source y dado que la mayoría de los proyectos open source tienen libros de
O'Reilly asociados con un animal en la portada, decidió ponerle al proyecto
nombre de animal. Eligió Tomcat (gato), pretendiendo representar la capacidad de
cuidarse por sí mismo, de ser independiente. [WIKI_01]
2.7.3 Servlets.
Los servlets son objetos que corren dentro del contexto de un servidor Web (ej:
Tomcat) y extienden su funcionalidad. La palabra servlet se deriva de applet, que
se refería a pequeños programas escritos en Java que se ejecutan en el contexto
de un navegador Web. Por contraposición, un servlet es un programa que se
ejecuta en un servidor Web.
El uso más común de los servlets es generar páginas Web de forma dinámica a
partir de los parámetros de la petición que envíe el navegador Web. Un servlet es
un objeto que se ejecuta en un servidor o contenedor J2EE, fue especialmente
55
diseñado para ofrecer contenido dinámico desde un servidor Web, generalmente
es HTML. Otras opciones que permiten generar contenido dinámico son con los
lenguajes ASP, PHP, JSP y Python.
Los servlets forman parte de J2EE (Java 2 Enterprise Edition), que es una
ampliación de J2SE (Java 2 Standard Edition). Un servlet es un objeto Java que
implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más
convenientes para un protocolo específico (ej: javax.servlet.HttpServlet).
Entre el servidor de aplicaciones (o contenedor Web) y el servlet existe un contrato
que determina cómo han de interactuar. La especificación de éste se encuentra en
los JSR (Java Specification Requests) de la JCP (Java Community Process).
[WIKI_02]
56
3
SISTEMA COLABORATIVO DE MENSAJERIA ELECTRONICA PARA EL
DESARROLLO DE PROYECTOS SOFTWARE
3.1
Definición:
En el presente proyecto se muestra
el
desarrollo una herramienta tipo
groupware, que cuenta con algunos de los servicios esenciales para soportar el
proceso de desarrollo de software, como es la transferencia de archivos, envío de
anuncios y conversación entre usuarios a través de la red.
Esta herramienta
podrá ser implementada dentro de cualquier empresa u organización dedicada al
desarrollo de proyectos software.
Como una de las necesidades principales de los grupos de desarrollo es la
comunicación entre los usuarios, se propone la utilización de una herramienta de
este tipo, que se encargue de soportar las conversaciones mantenidas entre ellos
junto con el envío de anuncios y de archivos. Con esto se pretende agilizar y
mantener la calidad de los productos para que la empresa desarrolladora de
software pueda mantenerse dentro de un mercado competitivo.
3.2
Especificaciones del sistema:
Debido a que tanto el cliente 9 como los usuarios 10 son expertos en sus dominios y
tienen una idea general de lo que puede hacer el sistema, a menudo tienen muy
9
Empresa desarrolladora de productos software.
Trabajadores de la empresa.
10
57
poca experiencia en el desarrollo de software, por lo que los escenarios y los
casos de uso proporcionan herramientas para llenar este hueco.
Un caso de uso es una abstracción que describe una clase de escenarios, y se
enfocan en el sistema desde un punto de vista externo, ya que describe una
función proporcionada por el sistema que produce un resultado visible para un
actor.
Tanto los escenarios como los casos de uso se escriben en lenguaje
natural, una forma que es comprensible para el usuario. [INGE]
Como resultado de los requerimientos, los cuales son características que deben
tener el sistema o restricciones que debe satisfacer para que sea aceptado por el
cliente, [INGE], se obtiene un diagrama de casos de uso. Figura 17.
Para el desarrollo de estos casos de uso se utiliza UML (Lenguaje de Modelado
unificado. [INGE]), como un lenguaje que proporciona un espectro de notaciones
para la representación de diferentes aspectos del sistema, el cual ha sido
aceptado como notación estándar de la industria. [INGE]
58
3.3
Diagrama de Casos de Uso
Figura 17 Diagrama de casos de uso
En este diagrama de casos de uso
se ven reflejados los requerimientos
funcionales de sistema, y los actores implicados para su ejecución.
A continuación se realizara una especificación de cada caso de uso, mediante
escenarios que ilustren su descripción; tomando como guía base [INGE].
59
3.4
Escenarios de especificación de los casos de uso
Un escenario es “una descripción narrativa de lo que la gente hace y experimenta
cuando trata de utilizar sistemas y aplicaciones
de computadora. [INGE]”. Un
escenario es una descripción concreta, enfocada e informal de una sola
característica del sistema desde el punto de vista de un solo actor. [INGE].
60
9 Primer escenario del sistema
Nombre del caso de Uso: Enviar Archivo
Actor Participante:
Iniciado por un usuario (usuario_ emisor)
se comunica con el servidor_ enLinea
Condición inicial
1: El usuario_ emisor selecciona la opción de enviar
el archivo al destino específico (usuario_ receptor).
Flujo de eventos
2: El cliente_ enLinea responde presentando una
ventana para cargar el archivo y enviarlo.
3: El servidor_ enLinea es notificado para que
complete la orden.
4: El servidor_ enLinea encapsula la información y la
envía al destino que ha sido seleccionado.
5: El usuario_ emisor recibe una ventana donde se le
indica el porcentaje de transferencia del archivo.
Condición de salida:
La ventana de transferencia le indica al usuario_
emisor que se ha completado el 100% de la
transferencia.
Requerimientos especiales:
De acuerdo a la red, varia la velocidad transferencia.
61
9 Segundo escenario del sistema
Nombre del caso de Uso: Enviar Anuncio
Actor Participante:
Iniciado por un usuario (usuario_ emisor)
se comunica con el servidor_ enLinea
Condición inicial.
1: El usuario_ emisor selecciona al usuario_ receptor,
o la comunidad a la que desea enviar el anuncio.
Flujo de eventos
2: El cliente_ enLinea responde presentando una
ventana para que se digite el anuncio y enviarlo.
3: El servidor_ enLinea encapsula la información y la
envía al destino que ha sido seleccionado.
5: El usuario_ emisor recibe una ventana donde se le
indica el porcentaje de transferencia del archivo.
Condición de salida:
En el ordenador del ó los usuario(s) _ receptor(es) se
visualiza la ventana de anuncio con la opción de
cerrarla.
Requerimientos especiales:
Si el usuario_ emisor selecciono como usuario_
receptor a una comunidad, recibirán el anuncio solo
aquellos usuarios que se encuentren conectados al
SCME
62
9 Tercer escenario del sistema
Nombre del caso de Uso: Enviar Mensaje
Actor Participante:
Iniciado por un usuario (usuario_ emisor)
se comunica con el servidor_ enLinea
Condición inicial.
1: El usuario_ emisor selecciona al usuario_ receptor,
y selecciona la opción de enviar mensaje (Chat).
Flujo de eventos
2: El cliente_ enLinea se comunica con el servidor_
enLinea y establecen la comunicación con el usuario_
receptor.
3: El servidor_ enLinea encapsula la información y la
envía al destino que ha sido seleccionado.
5: Tanto el usuario_ emisor como el usuario_ receptor
mantienen la comunicación temporalmente.
Condición de salida:
Uno
de
los
comunicación.
dos
usuarios
decide cancelar
la
63
9 Cuarto escenario del sistema
Nombre del caso de Uso: Recibir Mensaje
Actor Participante:
Iniciado por un usuario (usuario_ emisor)
se comunica con el servidor_ enLinea
Condición inicial.
1: Que un usuario_ emisor lo haya seleccionado
como usuario_ receptor de un mensaje (Chat).
Flujo de eventos
2: Se mantiene una comunicación entre los dos
usuarios, ya que temporalmente intercambian sus
roles.
Condición de salida:
Uno
de
los
dos
usuarios
decide cancelar
la
comunicación.
9 Quinto escenario del sistema
Nombre del caso de Uso:
Recibir Anuncio
Actor Participante:
Iniciado por un usuario_ receptor
Condición inicial.
1: Que un
usuario_ emisor lo haya seleccionado
como usuario_ receptor de un anuncio.
Flujo de eventos
2: El usuario_ receptor visualiza
el anuncio en una ventana.
Condición de salida:
La ventana del anuncio es cerrada
64
9 Sexto escenario del sistema
Nombre del caso de Uso:
Recibir Archivo
Actor Participante:
Iniciado por un usuario_ receptor
se comunica con el servidor_ enLinea
Condición inicial.
1: Que un usuario_ emisor lo haya seleccionado
como usuario_ receptor de un archivo.
Flujo de eventos
2: El usuario_ receptor acepta la recepción del
archivo, selecciona una ruta para guardarlo en su
ordenador y lo descarga.
Condición de salida:
3.5
Se indica el final de la descarga.
Modelado de interacción entre objetos. (Diagramas de
secuencia)
En los diagramas de secuencia se unen los casos de uso con los objetos del
sistema; es decir se muestra como es la distribución y comportamiento de un caso
de uso (o escenario) entre sus objetos participantes.
65
9 Enviar Archivo
Figura 18 Diagrama de secuencia para el envío de archivos
El usuario_ emisor solicita al cliente_enLienea
la orden de enviar un archivo,
este se encarga de validar la orden teniendo en cuenta que el usuario se
encuentre conectado e inicia una ventana para que cargue el archivo, de esta
forma el usuario lo envía luego de cargarlo. El servidor_enLinea recibe la petición
e inmediatamente interactúa con el usuario_ receptor para verificar si se puede
empezar la transferencia; una vez hecho esto le confirma al usuario_ emisor que
en el usuario_ receptor ha empezado la descarga. Figura 18.
66
9 Recibir Archivo
Figura 19 Diagrama de secuencia para la recepción de archivos
Primero que todo, esta etapa se cumple si ya se ha iniciado la orden desde un
usuario_ emisor de enviarle un archivo. El usuario_ receptor interactúa con el
servidor_ enlinea, aceptando la transferencia y el cliente_enLinea le carga una la
ventana para que efectúe la descarga hacia una unidad de almacenamiento
masivo. Figura 19.
67
9 Enviar Anuncio
Figura 20 diagrama de secuencia para el envío de un anuncio.
Esta secuencia sucede cuando el usuario_ emisor solicita la orden de enviar el
anuncio ya sea hacia un usuario, ciertos usuarios o una comunidad en general, el
cliente_enLinea valida entonces que a los usuarios que se les desea enviar el
anuncio se encuentren conectados, y una vez hecho esto, presenta una interfaz
en la cual el usuario_ emisor podrá digitar el anuncio y enviarlo. El anuncio es
recibido primero que todo por el servidor, quien se encarga de encapsular la
información y realizar la trasferencia hacia el destino específico. Figura 21
68
9 Recibir Anuncio
Figura 21 diagrama de secuencia donde se ilustra la recepción de un anuncio
En esta etapa el cliente_enLinea del usuario_ receptor
creara una ventana
emergente donde se visualizara el anuncio de un usuario_ emisor, y esta solo
presentara la opción de cerrarla. Figura 21.
69
9 Enviar Mensaje
Figura 22 Diagrama de secuencia para enviar un mensaje. (Chat)
Aquí, cuado el usuario_ emisor solicite la orden de enviar el mensaje, el
cliente_enLinea una vez valide que el usuario se encuentra conectado ilustrara
una interfaz en la que se podrá digitar el mensaje. El servidor_ enLinea recibe la
orden
y establece la comunicación permanente entre los dos usuarios,
encapsulando la información que se envíe. Figura 22.
70
9 Recibir Mensaje
Figura 23 Diagrama de secuencia para recibir un mensaje.
El cliente _ enLinea del usuario_ receptor recibe la orden y crea una interfaz igual
a la del usuario_ emisor donde se muestra el mensaje del usuario_ emisor. Al
crearse esta interfaz se establece la comunicación y los usuarios se encontraran
intercambiando los roles de usuario, indefinidamente hasta que uno de ellos
escoja terminar la conversación y
preestablecida. Figura 23.
por lo
tanto cierre la comunicación ya
71
4
4.1
SCME (Sistema Colaborativo de Mensajeria Electrónica)
Descripción
Es una herramienta basada en tecnología Groupware la cual busca facilitar y
agilizar el desarrollo de proyectos y aplicaciones software de una empresa u
organización en la que se emplee.
Para esto cuenta con ciertas características propias de una aplicación basada en
tecnología Groupware, como son, la conversación entre uno o más usuarios, envío
y recepción de anuncios, y transferencia de archivos.
Esta herramienta esta implementada bajo la arquitectura Cliente- Servidor y utiliza
como tecnología de desarrollo al lenguaje de programación JAVA. En este
lenguaje se pueden desarrollar múltiples aplicaciones, pero en este caso nos
referiremos a los Applets.
.
El SCME consta de un desarrollo de tres módulos que se, diferencian claramente
como cliente_enLinea, servidor_enLinea y fachada_enLinea. En cada uno de
estos módulos se almacena las clases o implementación necesaria para el
correcto funcionamiento de la herramienta.
72
Luego para la ejecución y puesta en marcha se crea un archivo .jar con los
archivos .class resultado de la compilación de cada una de las clases
implementadas, proceso denominado deployment, y de esta forma se coloca
entonces el .jar en un contenedor de Servlets (Tomcat) junto con un entorno JSP
en el que estará cargado el applet. Figura 24.
Se ilustran entonces las interfaces y ventanas que se modelaron en los diagramas
de secuencia. Figuras 24 –32.
Figura 24 Inicio del SCME
73
El SCME, depende de un sistema externo para el manejo de sesiones, desde
donde un administrador del sistema será el encargado de asignarle al usuario las
comunidades y
los demás usuarios con los que interactuara dentro de la
aplicación. Si el administrador de una comunidad ve la necesidad de que algunos
de los usuarios interactúen con usuarios de otras comunidades, este deberá
notificar al administrador del sistema externo para que este le asigne los nuevos
usuarios o una comunidad en general según sea la necesitad.
Luego de haberse cargado el applets, se visualizaran entonces las comunidades a
las que el usuario pertenece y los respectivos usuarios conectados, a dichas
comunidades. Ver Figura 25.
Figura 25 Árbol de comunidades y usuarios.
74
Se muestra entonces en la figura 26, el proceso que deberá seguir el usuario_
emisor para llevar a cabo el envió de un archivo, proceso en el cual el usuario_
emisor hace click con el botón secundario sobre el usuario que escogió como
usuario_ receptor.
Figura 26 Envío de Archivo
Luego se muestra una ventana donde se carga el archivo y posteriormente se
envía. De la misma forma que al enviar un archivo, el usuario_ emisor selecciona
al usuario_ receptor como se ilustra en la figura 27, para realizar el envió del
anuncio.
75
Figura 27 Envío de Anuncio
Se muestra entonces una interfaz en la cual el usuario_ emisor digita el mensaje
pertinente al anuncio, figura 28.
Figura 28 Interfaz para enviar el anuncio
76
El usuario_ receptor recibe el anuncio en una ventana como la que se muestra en
la figura 29, en la cual al usuario solo se le permite cerrarla.
Figura 29 Ventana de recepción del anuncio
Para enviar un mensaje (Chat), el usuario_ emisor selecciona esta utilidad y en
una ventana como la que se muestra en la figura 30, interactúa con el usuario_
receptor hasta que uno de los dos decida terminar la comunicación.
77
Figura 30 Envío de mensajes
Una vez que el usuario_ receptor recibe el mensaje y le esta dando respuesta, el
aplicativo le avisa al usuario_ emisor en la ventana de conversación que el
usuario_ receptor
le está escribiendo, ver figura 31.
Luego ambos usuarios
visualizarán la misma ventana, en la cual se ilustra la conversación actual que
mantienen hasta que uno de los dos decida terminar la conversación. Figura 32.
78
Figura 31 Muestra cuando un usuario contesta un mensaje
Figura 32 Conversación Mantenida por dos usuarios
79
4.2
Módulos que Componen el Sistema
En estos módulos se encuentran los códigos fuentes, .class, .y .jar necesarios para la aplicación. Ver Tabla 2.
Tabla 2, Especificación de las clases del SCME
CARPETA
NOMBRE DE LA CLASE
DESCRIPCIÓN
Especificación del Modulo cliente_enLinea
CommunicationTCPIPServerFlow.j Se encarga de la comunicación TCP/IP para el Server en
ava
general.
AnuncioInterface.java
Para escribir el mensaje del anuncio a enviar y permite
visualizar los destinatarios escogidos para el mismo.
vtaguardarArchivo.java
Permite visualización de la interfaz grafica para guardar el
archivo de esta siendo enviado por otro usuario.
Synchronizer.java
client
Clase encargada de permitir la sincronización entre la
escritura y la lectura de datos en la clase LlamaChatServer al
correspondiente
cliente/usuario
atendiendo en el momento
al
cual
se
encuentra
80
ServerConnection.java
Clase que efectúa las operaciones de Lectura y Escritura del
Cliente, se encarga de la creación del Socket TCP/IP para la
comunicación con el cliente y de los flujos de salida
(ObjectOutputStream) para la escritura de datos (Objetos) y
el flujo de entrada (ObjectInputStream) para la lectura de
datos (Objetos).
SelectorArchivos.java
Muestra La GUI para seleccionar la ubicación del archivo que
se va a enviar permite elegir la ubicación del archivo y añadir
la descripción del archivo que se va a enviar.
CARPETA
NOMBRE DE LA CLASE
DESCRIPCIÓN
Especificación del Modulo cliente_enLinea
ProxySettingDialog.java
Interfaz que muestra el cuadro de dialogo que permite el
ingreso de la configuración de las propiedades del servidor
Proxy usado.
PrivateMsg.java
Clase que maneja todo lo relacionado con las conversaciones
privadas e identificación de las conversaciones establecidas
por los usuarios.
LlamaChat.java
client
Clase principal que se extiende de JApplet y se encarga de
crear la interfaz gráfica (GUI) que despliega la aplicación del
cliente con la cual el cliente interactúa y realiza todas sus
acciones.
81
DynamicTree.java
Clase que nos permite añadir, encontrar, añadir, eliminar e
ignorar nodos del árbol (JTree) de forma dinámica.
CommunicationTCPIPServerFlow.j Se encarga de la comunicación TCP/IP para el Server en
ava
general.
CommandHistory.java
Clase para manejar la historia de los mensajes/comandos
desde el usuario esta en la forma de una de una pila (LIFO)
de longitud fija que borra los ítems de el final de la pila
cuando la longitud máxima es alcanzada extiende la clase
lista encadenada; todos los ítems en la lista son cadenas
(Strings)
ChatPane.java
Esta clase representa el panel o lienzo sobre el cual se
visualiza el texto de cada una de las conversaciones que
tienen lugar.
MessageQueue.java
Esta clase define dos métodos para colocar los ítems
SocketData dentro del vector, y el método run es requerido
para ser Runnable (esta es una clase multihilada) y agarra
cualesquier ítems externos al Vector. El usa una combinación
Common
de los métodos wait() y notify() para mantener el método run
desde una consulta sobre una cola vacía
SocketConnection.java
La interfaz para la conexión y comunicación entre las clases.
82
CARPETA
NOMBRE DE LA CLASE
DESCRIPCIÓN
Especificación del Modulo cliente_enLinea
SocketData.java
Interfaz para representar los datos que van a ser transferidos
sobre un socket cualesquiera, datos que necesitan ser
enviados sobre un socket deben implementar esta interfaz y
la interfaz Serializable así ellos pueden ser serializados y
enviados sobre el socket.
SD_Whisper.java
Clase que encapsula el envío de un mensaje silencioso al
usuario especificado.
SD_UserDel.java
Clase que encapsula solicitud de desconexión de un usuario
del sistema
sd
SD_UserAdd.java
Clase que encapsula el envío/adicción de un nuevo usuario
que solicita conexión al sistema.
SD_ServerCap.java
Clase que encapsula el envió de las configuraciones del
servidor.
SD_Rename.java
Clase que encapsula el cambio del nombre (renombramiento)
del cliente/usuario.
SD_Private.java
Clase que encapsula el envío de un mensaje privado de
conversación al usuario especificado.
SD_Log.java
Clase que encapsula el envío de objeto para controlar el
estado del registro de las conversaciones.
83
SD_Kick.java
Objeto/Clase que encapsula el envío de un objeto/dato usado
para sacar al cliente/usuario especificado del canal.
SD_Escribiendo.java
Objeto/Clase que encapsula el envío de una confirmación de
escritura (diciéndole que este cliente usuario le esta
escribiendo actualmente) al cliente/usuario con el que este
usuario esta conversando.
SD_Error.java
Clase que encapsula el envío de una notificación de un error
que ha ocurrido.
CARPETA
NOMBRE DE LA CLASE
DESCRIPCIÓN
Especificación del Modulo cliente_enLinea
SD_DataFile.java
Clase que encapsula el envío de un mensaje tipo archivo de
una conversación al destinatario especificado.
SD_Chat.java
Clase que encapsula el envío de un mensaje de una
conversación al destinatario especificado.
SD_Channel.java
sd
Clase que encapsula una solicitud de cambio de canal que
esta siendo enviado por el usuario.
SD_Archivo.java
Clase que encapsula los datos del archivo que esta siendo
enviado.
SD_Anuncio.java
Clase que encapsula el mensaje del envío de un Anuncio y
los usuarios o grupos de destino
84
imdb.cer
Certificado que proporciona Plataforma Siglo XXI, para
desarrollos de tipo software.
Especificación del Modulo servidor_enLinea
common
llamachatconf.xml
Este archivo del modulo servidor_enLinea muestra un
anuncio de que ocurrió una conexión exitosa al Chat
Synchronizer.java
Esta clase de igual forma también se encuentra en la parte
del cliente en la carpeta client, pues tendrá que mantenerse
la sincronización exacta entre los usuarios.
Server
LlamaChatServer.java
Esta es la clase encargada de esperar Conexiones de los
Clientes cada vez que un nuevo cliente se conecta, también
se encarga de asignar el Socket TCP/IP que identificara de
forma única la conexión de ese cliente a un Thread que se
encargará de gestionar todas las peticiones realizadas por el
cliente al cual se asignado para gestionar su conexión y
comunicación.
CARPETA
NOMBRE DE LA CLASE
DESCRIPCIÓN
Especificación del Modulo servidor_enLinea
ConfigParser.java
Manejador por defecto para el archivo de configuración en
XML
85
ClientConnection.java
Server
Clase que implementa la interfaz Runnable para gestionar
todo lo relacionado con la conexión
de cliente/usuario
especificado el cual es identificado mediante su Socket
TCP/IP. Cuando un usuario se conecta al servidor se crea
un Instancia de está clase que se encarga de gestionar la
conexión de cada usuario, así un hilo ClientConnection debe
ser creado para cada nuevo cliente/usuario conectado.
ChannelManager.java
Esta clase maneja los canales para el servidor.
Permite 3
tipos de canales. Ver Tabla 3
Especificación del Modulo fachada_enLinea
Aquí se encuentran las clases con las conexiones a la Base de Datos, y de ejecución de los servlets. Se nombran
entonces las carpetas y las clases que contienen.
Bdatos
9 GrupoUsuarioDAO.java
9 UsuarioDAO.java
fachada
9 FachadaModuloEnLinea.java
9 IfachadaModuloEnLinea.java
9 IDAO.java
Servlet
9 servletFachadaModuloEnLinea.java
valueobject
9 GrupoUsuarioVO.java
9 UsuarioVO.java
86
Tabla 3, canales para el servidor.
CANAL
Primer Canal
DESCRIPCION
El primero de los cuales, el canal por defecto (es solo
uno) y es el canal por defecto al que los usuarios son
enviados cuando se conectan.
Segundo canal
El segundo, canal del sistema es una colección de los
canales que son permanentes y creados sobre la
inicialización del programa desde el archivo de
configuración.
Tercer Canal
En el tercero, los canales de usuario, son creados por
los usuarios y pueden solo existir si son especificados en
el sistema de configuración de archivos.
Cuando un canal de usuario está vacío el es borrado.
87
ANALISIS DE LEGALIDAD
El desarrollo y codificación necesaria de este proyecto se realizo bajo el software:
JCreator LE 3.0, el cual es una versión gratuita. Para el diseño de las páginas
JSPs, que actuan como contenedoras del applets donde se encuentra ejecutando
la aplicación se diseñaron en la herramienta MACROMEDIA DREAMWEAVER ya
que se cuenta con licencia para el desarrollo en la universidad de Pamplona.
88
CONCLUSIONES
9 En este trabajo se presentó el desarrollo de un SCME, que servirá de apoyo
en la solución y desarrollo de proyectos software.
Este pretende
proporcionarle al usuario un mejor ambiente de trabajo colaborativo, y una
excelente eficiencia en la comunicación.
9 El SCME constituye una herramienta poderosa y valiosa tanto para la
comunidad especialista en el área de las nuevas tecnologías de desarrollo,
como para la comunidad académica que se encuentra en formación.
9 Debido a que el desarrollo de esta herramienta esta hecho en java,
adquiere una serie de características como es la de multiplataforma, lo
que le permite al applet ejecutarse bajo cualquier sistema operativo.
9 La importancia de la implementación de esta herramienta dentro de la
Universidad de Pamplona y no alguna otra de las ya referenciadas en el
capitulo 1,
se obtiene debido a que se encuentra desarrollada en base a
los requerimientos específicos de esta entidad.
89
RECOMENDACIONES
9 Este sistema carece de un modulo de reuniones electrónicas 11 , por lo que se
recomienda como trabajo futuro que se continúe trabajando en su desarrollo
para obtener una herramienta mucho más útil para el trabajo en grupo.
9 Construir un modulo que le permita al usuario enriquecer la lista de usuarios
pertenecientes a cierta comunidad, si así lo requiere 12 .
9 Con el fin de conservar una de las características principales de JAVA, como lo
es la multiplataforma, el SCME se empaquetó en un archivo JAR, por lo tanto
hay que tener instalada la JVM (java virtual machine) para su perfecta
ejecución.
11
12
Pizarra electrónica, pantalla compartida
Sin tener que recurrir a un sistema externo
90
REFERENCIAS
Referencias Bibliografiítas:
[INGE] Ingeniería de Software Orientado a Objetos, BRUEGGE, BERND y
DUTOIT, ALLEN H. Pearson Education, México, 2002.
[J2EE] Manual de Referencia, McGraw – Hill/Interamericana de España, S.A.U;
Jim Keogh.
[REVI] Revista Iberoamericana de educación (ISS: 1681 - 5653) Un acercamiento
al trabajo colaborativo, consultado en enero del 2006.
Referencias Web:
[BSCW] Home Page, BSCW Groupware, Sitio oficial de la herramienta,
http://bscw.fit.fraunhofer.de/, Consultado en enero del 2006.
[CIEN]
Proyecto personal,
Rodrigo V A Barber, Ciencias Místicas, Argentina
http://www.cienciasmisticas.com.ar/informatica/programacion/java/index.php,
Consultado en enero del 2006.
91
[FRAN] Francisco José García Peñalvo, Área de Ciencias de la Computación e
Inteligencia Artificial, Dpto. de Informática y Automática, Universidad de
Salamanca,
España,
http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/Index.htm
.
Consultado en enero del 2006.
[GENE] GeNeura, vinculado al grupo CASIP del Departamento de. Electrónica de
la
Universidad
de
Granada,
España,
http://geneura.ugr.es/~jmerelo/JSP/,
Consultado en enero del 2006.
[INST_01]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0302.HTM , consultado
en enero del 2006.
[INST_02]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0303.HTM , consultado
en enero del 2006.
[INST_03]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0304.HTM , consultado
en enero del 2006.
92
[INST_04]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0306.HTM , consultado
en enero del 2006.
[INST_05]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0310.HTM , consultado
en enero del 2006.
[INST_06]
Instituto
Nacional
de
Estadística
Informática,
Perú,
http://www.inei.gob.pe/web/metodologias/attach/lib616/CAP0312.HTM , consultado
en enero del 2006
[INSTT]
Instituto
Tecnológico
de
la
Paz,
México,
http://www.itlp.edu.mx/publica/tutoriales/sistsdist1/u1parte6.htm , consultado en
enero del 2006.
[JES]
Sun
Java
Enterprise
System,
http://www.sun.com/software/javaenterprisesystem/, Consultado en febrero del
2006.
[JAVA]
Sun Developer Network,
febrero del 2006.
http://java.sun.com/applets/ , Consultado en
93
[LOTU] Home Page, LOTUS NOTES.
www-142.ibm.com/software/sw-otus/products/product4.nsf/wdocs/noteshomepage,
Consultado en febrero del 2006.
[MAIL]
MailxMail es una iniciativa de "Open E-learning", Barcelona, España,
http://www.mailxmail.com/curso/informatica/java/capitulo1.htm,
Consultado
en
enero del 2006.
[MINI]
Ministerio de Comercio, Industria y Turismo, Diagnostico de de las TI,
Republica de Colombia, www.mincomercio.gov.co Consultado en enero del 2006.
[NETM] Home Page, Netmeeting. http://www.microsoft.com/windows/netmeeting/,
Consultado en febrero del 2006.
[OFFI] Home Page, OpenOffice Groupware.
http://groupware.openoffice.org/,
Consultado en febrero del 2006.
[SAME]
IBM
Lotus
Sametime,
http://www-142.ibm.com/software/sw-
lotus/products/product3.nsf/wdocs/homepage, Consultado en febrero del 2006.
[SECR] Secretaría del Consejo Superior de Administración Electrónica, España,
http://www.csi.map.es/csi/silice/Global71.html, Consultado en enero del 2006.
94
[WEBC] Home Page,
WebCT, http://www.webct.com/, Consultado en enero
del 2006.
[WIKI_01]
Wikipedia,
La
Enciclopedia
Libre,
Web,
http://es.wikipedia.org/wiki/Tomcat, consultado en enero del 2006.
[WIKI_02]
Wikipedia,
La
Enciclopedia
Libre,
Web,
http://es.wikipedia.org/wiki/Servlet , consultado en enero del 2006.
[WIKI_03]
Wikipedia,
La
Enciclopedia
Libre,
Web,
http://es.wikipedia.org/wiki/JavaServer_Pages , consultado en enero del 2006.
Descargar