• No se han encontrado resultados

Diseno de un sistema informatico para el control del uso de computadoras conectadas a la red

N/A
N/A
Protected

Academic year: 2023

Share "Diseno de un sistema informatico para el control del uso de computadoras conectadas a la red"

Copied!
130
0
0

Texto completo

(1)

Universidad de las Ciencias Informáticas Facultad 6

Trabajo de Diploma para optar por el título de Ingeniero Informático

"Diseño de un sistema informático para el control del uso de computadoras conectadas a la red"

Autores: Jorge Alberto Argüelles Pardo Adrián Moreno de Ayala García

Tutores: Cap. Frank D. Garcés Presa Ing. Alberto E. Ruíz Romero

Ciudad de la Habana, Junio 2009

“Año del 50 Aniversario de la Revolución”

(2)

D

D

EC

E

C LA

L

AR R AC

A

C

I

ÓN N D DE E A AU UT TO OR ÍA A

Declaramos que somos los únicos autores del trabajo titulado Diseño de un sistema informático para el control del uso de computadoras conectadas a la red y autorizamos a la Universidad de las Ciencias Informáticas los derechos patrimoniales del mismo, con carácter exclusivo.

Para que as í conste firmamos la presente a los _______ días del mes de _____________

del año __________.

__________________________ _______________________________

Firma del Autor Firma del Autor Jorge Alberto Argüelles Pardo Adrián Moreno de Ayala García

____________________________

Firma del Tutor Frank D. Garcés Presa

(3)

D

D

AT

A

TO OS S D DE E L

L

C C ON

O

N TA

T

AC CT T O

O

Cap. Frank D. Garcés Presa:

Graduado de Ingeniería Eléctrica en la Universidad de Oriente en el año 1997, con 9 años de experiencia como analista de sistemas automatizados en el MININT y en la administración de redes y Base de Datos. Correo Electrónico [email protected]

Ing. Alberto E. Ruíz Romero:

Graduado de Ingeniería en Ciencias Informáticas en la Universidad de las Ciencias Informáticas en el año 2008. Correo Electrónico [email protected]

(4)

“La ciencia es universal y tenemos que aprender del mundo, de la misma manera que debemos estar siempre dispuestos a mostrar el aporte que nosotros podemos obtener para ellos.”

Fidel Castro Ruz

(5)

I

AG

A

GR R AD

A

D E

E

C

C

IM

I

MI IE E N

N

TO

T

OS S

A nuestro Comandante en Jefe Fidel Castro Ruz, por ser el creador de esta universidad.

A nuestras familias por el amor y apoyo que nos han brindado a lo largo de estos cinco años.

A nuestros padres por el sacrificio, el amor, las enseñanzas, y el apoyo que nos han dado.

A nuestros tutores por la paciencia y amor que nos han brindado, que sin su ayuda no se hubiesen logrados los resultados obtenidos.

A los compañeros de DDS que nos trataron muy bien y nos ayudaron muchísimo en la evolución del trabajo. Al TC. Ochil, por sus experiencias.

A todo aquel que de una manera u otra ayudaron al desarrollo y elaboración de esta investigación.

(6)

II

D

D

ED

E

D IC

I

C AT

A

TO OR RI IA A

JoJorrggee AAllbbeerrttoo

A mis abuelos MIMA y PIPO quienes tanto me han malcriado y a los que tanto adoro, a ellos que siempre han estado a mi lado cuidándome desde que era niño.

A mis padres por su amor, comprensión y apoyo a lo largo de toda mi vida, que gracias a ellos he llegado a convertirme en lo que soy hoy.

A Pablo por su cariño, comprensión y por todo su amor de padre.

A mi hermana mayor Yinet por estar siempre a mi lado apoyándome y aconsejándome.

A mis tíos y prima que tanto me han mimado.

A Leidy por su amor y por estar siempre junto a mí.

AAdrdriánn

A mis padres por guiarme por el camino de los estudios, por brindarme ese amor enorme, por apoyarme siempre en las decisiones de mi vida y mimarme tanto.

A mi hermano por preocuparse por mis estudios, por aconsejarme ante la vida y contar conmigo para todo.

A mis primos, mis tíos y abuelos que siempre han estado cerca dándome su apoyo en todo independientemente de donde se encuentren.

A mis amigos que también me han brindado su apoyo y su amistad, siempre voy a estar agradecido de todo y por compartir tantas cosas en tan poco tiempo.

A Alibet por su amor y cariño, y por soportarme tanto.

A todos aquellos que han hecho posible esto.

(7)

R

R

ES

E

SU U ME

M

E N

N

Actualmente el MININT1 se encuentra inmerso en un amplio programa de informatización, encaminado a alcanzar una mayor alineación con sus misiones de garantizar la seguridad del estado y el orden interior. La complejidad de los escenarios en los que se desenvuelve ha provocado un incremento en la demanda de desarrollo de software y la necesidad de introducir tecnologías que garanticen satisfacer los requerimientos del trabajo así como control del mismo.

El presente trabajo de diploma se basa en el Análisis y Diseño de un sistema que permita lograr un mejor control del uso de las computadoras conectadas a la red del MININT dada a su gran importancia, ya que se puede lograr un mejor uso de estos recursos además de contar con la posibilidad de auditar el hardware y software de éstas de una forma remota y centralizada.

Se realiza además una investigación del estado del arte, abordándose las principales tendencias y direcciones en el desarrollo de software de este tipo y las experiencias de empresas que de una forma u otra utilizan sistemas similares para el control de ordenadores en redes informáticas.

1 Ministerio de l Interior

(8)

4

I

I

N

N

D

D

I

I

C

C

E

E

INTRODUCCIÓN ... 6

CAPÍTULO 1... 10

FUNDAMENTACIÓN TEÓRICA ... 10

1.1 Introducción ... 10

1.2 Estado del arte ... 10

1.2.1 Aplicaciones Similares ... 11

1.3 Sistema Agente... 12

1.4 Herramientas y métodos... 12

1.4.1 Metodología de Desarrollo de Software... 12

1.4.2 UML ... 15

1.4.1 Herramientas CASE ... 15

1.4.2 Herramientas para la Gestión de Requisitos. ... 16

1.4.3 Aplicaciones WEB ... 16

1.4.1 Internet Information Services (IIS) ... 18

1.4.2 Servicio ... 19

1.4.3 Servicios Web (WebServices)... 20

1.4.4 Arquitectura Orientada a Servicios (SOA) ... 20

1.4.5 Modelo Vista Controlador de Microsoft (MVC) ... 22

1.4.6 Patrón DAO ... 24

1.4.7 Comunicación por Socket ... 25

1.4.8 Lenguaje XML ... 26

1.4.9 Plataforma de Desarrollo Microsoft .NET ... 27

1.4.10 ASP.NET ... 28

1.4.11 C Sharp... 29

1.4.12 AJAX ... 30

1.4.13 Framework Ext JS ... 32

1.4.14 IDE de Desarrollo ... 33

1.4.15 Gestor de Base de Datos Oracle ... 34

1.4.16 Modelo EAV (Entidad - Atributo - Valor) ... 35

1.4.17 Gestor de Referencia ... 35

1.5 Conclusiones del capítulo ... 36

CAPÍTULO 2... 37

CARACTERíSTICAS DEL SISTEMA... 37

2.1 Introducción... 37

2.2 ¿Por qué Modelo de Dominio? ... 37

2.2.1 Modelo de Dominio... 38

2.2.2 Conceptos Fundamentales ... 38

2.3 Actores del sistema a automatizar ... 39

2.4 Especificación de los Requerimientos de Software ... 40

(9)

5

2.4.1 Requerimientos Funcionales... 40

2.4.2 Requerimientos No Funcionales. ... 41

2.5 Definición de los Casos de Uso del Sistema ... 43

2.5.1 Patrones de Casos de Uso ... 43

2.5.2 Listado de Casos de uso del sistema ... 44

2.5.3 Matriz de Trazabilidad ... 44

2.5.4 Diagrama de Casos de Uso del Sistema ... 45

2.5.5 Descripción textual de los Casos de Uso del Sistema ... 45

2.6 Vista de Casos de Uso ... 73

2.7 Conclusiones del capítulo ... 74

CAPÍTULO 3... 75

ANALISIS Y DISEÑO DEL SISTEMA ... 75

3.2 Introducción... 75

3.3 Análisis ... 75

3.4 Diagramas de Clases del Análisis ... 75

3.4.1 Diagramas de Colaboración del Análisis ... 80

3.5 Diseño ... 89

3.6 Arquitecturas y Patrones del diseño utilizados ... 90

3.6.1 Vista Lógica ... 92

3.6.2 Vista de Despliegue ... 93

3.6.3 Mapa de Navegación ... 94

3.7 Modelo del Diseño ... 94

3.7.1 Realización de los Diagramas de Clases del Diseño ... 94

3.8 Modelo de Datos ... 99

3.9 Diseño de la Base de Datos ... 100

3.10 Conclusiones del capítulo ... 101

CONCLUSIONES ... 102

RECOMENDACIONES ... 103

REFERENCIAS BIBLIOGRÁFICAS ... 104

BIBLIOGRAFÍA ... 106

ANEXOS ... 108

GLOSARIO DE TÉRMINOS... 122

(10)

6

I

I

N

N

T

T

R

R

O

O

D

D

U

U

C

C

C

C

I

I

Ó

Ó

N

N

La historia, evolución y desarrollo de las redes en Cuba y el mundo, en el área de los servicios y aplicaciones de computadoras conectadas a redes informáticas, ha evolucionado de manera vertiginosa. Campos como la salud, la educación y el comercio continúan creciendo gracias a la informatización de sus tareas, incrementando en muchos casos hasta tres veces el rendimiento de sus actividades.

El Ministerio del Interior para cumplir con su misión de mantener el orden interior y la tranquilidad ciudadana, ha invertido cuantiosos recursos en modernas tecnologías relacionadas con la Informática y las Comunicaciones para lograr una mejor efectividad en las diferentes líneas de trabajo, esto abarca desde el desarrollo de redes informáticas hasta la modernización de su infraestructura tecnológica, como son los centros de datos, microcomputadoras, equipos de comunicación entre otros.

Por el efecto directo en la eficiencia del trabajo del MININT, el desarrollo de sistemas informáticos ha sido una alternativa en ascenso creciente, siendo hoy una tarea prioritaria garantizar el control y uso eficiente de los recursos informáticos.

Debido a la complejidad y diversidad con que se desempeñan todos los Órganos del MININT, y a que éste aún no cuenta con un sistema que permita el control del uso de las computadoras conectadas a la RIM2, cada día se hace más necesario aunque difícil lograr coordinar diversas acciones en localidades que se encuentran en una amplia geografía, y llevar un control centralizado del uso de las computadoras.

Un sistema que permita el control del uso de las computadoras conectadas a la red brindará la posibilidad de una mejor toma de decisiones encaminada a aumentar la efectividad en los procesos de dirección y el control de los recursos.

Teniendo en cuenta lo expuesto previamente se plantea como problema científico de esta investigación: ¿Cómo controlar el uso de las computadoras conectadas a la red del MININT?

Por lo que el objeto de estudio es: el mecanismo de control de las computadoras en la red teniendo como campo de acción: el proceso de control de las computadoras conectadas a la red del MININT, a través de un sistema informático.

2 Red interna del MININT

(11)

7 El presente trabajo de diploma tiene como objetivo general: realizar el análisis y diseño del módulo servidor de un sistema que permita controlar el uso de las computadoras conectadas a la red del MININT.

Con el propósito de cumplir el objetivo general, se trazaron los siguientes objetivos específicos:

Estudiar el estado del arte del monitoreo y control del uso de computadoras conectadas a una red informática.

Determinar las herramientas y tecnologías a utilizar en el diseño de la aplicación web.

Definir el Modelo de Dominio.

Realizar el Levantamiento de Requisitos.

Realizar el Análisis y Diseño del Sistema.

En la investigación se plantea la siguiente idea a defender: Realizar el análisis y diseño de un sistema informático para el control del uso de computadoras conectadas a la red permitirá su posterior implementación en un breve período de tiempo, lo que facilitará un mejor control de los recursos informáticos y por tanto mejorará la toma de decisiones de los jefes de la DIC del MININT respecto a los mismos.

Para alcanzar los objetivos trazados se platean desarrollar las siguientes tareas investigativas:

 Estudio del estado del arte de las aplicaciones para el control del uso de computadoras conectadas a una red informática.

 Estudio de las herramientas y tecnologías a utilizar en el diseño de aplicaciones web.

 Entrevistas a Jefes de la DIC3, especialistas en el tema.

 Asimilación de la plataforma Oracle.

 Definición de las herramientas y metodologías a utilizar.

 Definición de los Casos de Uso del Sistema.

 Gestión del Levantamiento de Requisitos.

 Definición de la Arquitectura del Sistema.

 Realización del Modelo de Datos.

 Obtención del Análisis y Diseño del Sistema

Con lo expuesto anteriormente se espera obtener como resultado: el Análisis y diseño de un sistema que controle las computadoras conectadas a la red del MININT.

3 Direcc ión de Informát ica y Co municación de l MININT

(12)

8 El presente trabajo de diploma está compuesto por la siguiente estructura:

Capítulo 1: Fundamentación teórica - Aborda cómo se comporta en la actualidad el desarrollo del software para el control de computadoras en redes informáticas. Se mencionan cuáles son las aplicaciones existentes en el mundo para el control y monitoreo de computadoras conectadas a una red, y sus principales características.

Se describe la metodología tradicional, RUP4. Además, se hace un análisis de SOA5 desde una perspectiva tecnológica.

Capítulo 2: Características del Sistema - Se describe el funcionamiento del sistema.

Se expone el modelo de dominio así como los conceptos de las entidades que se identificaron y los requerimientos que se definieron tanto funcionales como no funcionales.

Capítulo 3: Análisis y Diseño del Sistema - Se realiza la descripción de la solución propuesta para el sistema, describiéndose todos los aspectos y procesos que componen el análisis y diseño del mismo, mediante la descripción del flujo de trabajo de diseño. Se hace referencia a la arquitectura del sistema a través de la Vista Lógica y de Despliegue y se enumeran los principios de diseño para la implementación del sistema.

Seguidamente se exponen las conclusiones generales de la investigación, las recomendaciones propuestas, la bibliografía y las referencias bibliográficas utilizadas; por último se encuentran los anexos y el glosario de términos y siglas empleadas a lo largo del documento.

En la presente investigación se consideraron métodos empíricos y teóricos que tienen su sustento en la concepción materialista dialéctica. Métodos teóricos, Histórico- Lógico: Para analizar a nivel internacional y nacional el empleo de aplicaciones similares a la que se propone, así como investigaciones realizadas anteriormente sobre el tema. Análisis-Sintético: El primero para poder entender y modelar el flujo de la información de las computadoras conectadas a la red del MININT; y el segundo para poder plantear, describir y resumir los requisitos del sistema a realizar. Métodos Empíricos, Entrevistas: A los jefes principales de la DIC, y especialistas en el tema, para de esta forma recoger toda la información necesaria sobre el funcionamiento de

4 Proceso Unificado de Desarrollo (por su nombre en inglés , Unified Software Process Development )

5 Arquitectura Orientada a Servic io (por su nombre en inglés,Service Oriented Architecture)

(13)

9 las computadoras conectadas a la RIM y temas de interés para nuestro trabajo de diploma.

Para una mejor comprensión del documento se deben considerar las siguientes convenciones tipográficas adoptadas durante se elaboración:

Se enfatizan las palabras que representan conceptos importantes la primera vez que se introducen en letra cursiva y subrayada.

Los términos en inglés se escriben en cursiva.

(14)

10

C C A A P P Í Í T T U U L L O O 1 1

FU

F

U ND

N

D AM

A

ME EN N TA

T

AC C

I

ÓN N T TE E ÓR

Ó

R IC

I

C A

A

1.1 Introducción

Este capítulo aborda cómo se comporta el desarrollo del software en la actualidad a nivel mundial, en Cuba y específicamente en el MININT. Se mencionan cuáles son las aplicaciones existentes en el mundo para el control de las computadoras conectadas en redes, y sus principales características. Se describe la metodología de desarrollo de software RUP. Además, se hace un análisis de la Arquitectura Orientada a Servicios (SOA) desde una perspectiva tecnológica y su integración con los WebServices y en general se aborda sobre las herramientas y métodos a emplear.

1.2 Estado del arte

Estado del desarrollo de software

El desarrollo de software es una de las actividades más complejas que se realizan hoy en día. En los últimos años la mejora del proceso de desarrollo de software en las empresas se ha trazado como una meta fundamental para alcanzar la eficiencia con menores costos. El proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto de software que reúna los requisitos del cliente. Según el CEIS6, numerosos estudios demuestran que el 75% de los proyectos de desarrollo de software se completan demasiado tarde o superando el presupuesto.

¿Qué hay del 25% restante?, simplemente fracasan.

En el mundo ya se hace cotidiano el monitoreo y control de múltiples computadoras conectadas en red, permitiendo a los administradores de redes ver y controlar computadoras sin tener que abandonar su puesto de trabajo. El administrador se conecta con una computadora a distancia por medio del sistema de red y al tener el escritorio remoto en la pantalla de su computadora podrá ejecutar programas, cambiar configuraciones, entre otras opciones.

Existen diversos programas que permiten que sea posible el despliegue de varias pantallas simultáneamente, visualizando el estado actual de los escritorios de

6 Centro Expe rimental de Ingeniería de Softwa re

(15)

11 computadoras clientes. Pudiendo tener un monitoreo y control de varias computadoras simultáneamente.

1.2.1 Aplicaciones Similares

En el mundo existen varios programas que realizan funciones de control a nivel de red, entre estos programas se encuentran:

Computer Spy Software: Es un potente programa diseñado para monitorear el escritorio y las actividades de internet en la computadora de cualquier persona en una red. Computer Spy Software monitorea y controla computadoras en Redes Locales.

Las características del programa incluyen visualización EN VIVO de las actividades en el escritorio, monitoreo remoto de computadoras, captura de instantáneas de pantallas, creación de grabaciones instantáneas, creación de películas para su uso posterior e implementación de seguridad en su sitio de trabajo. (1)

SurveilStar: Es un programa poderoso y fácil de utilizar para la vigilancia de la computadora. Graba cada detalle de la computadora y las actividades en Internet, correos electrónicos, conversaciones y mensajes instantáneos, sitios web visitados, historial de búsqueda, actividades de programas, operaciones de documentos, impresión, grabaciones de discos, dispositivos removibles y mucho más.

La vigilancia de pantalla instantánea le permite ver qué hacen exactamente los objetivos vigilados en sus computadoras, como si estuviera viendo detrás de ellos.

Con SurveilStar se puede controlar ciertos accesos de la computadora a sitios web, filtrar archivos salientes mediante mensajería instantánea, bloquear archivos adjuntos de correos electrónicos, deshabilitar unidades de dispositivos, cancelar el uso compartido de archivos no autorizado, prevenir el cambio de configuraciones del sistema, y puede incluso bloquear la computadora objetivo si ocurriera un sabotaje. (2)

iMonitorPC Enterprise: Es el equivalente de un sistema digital de vigilancia para su computadora. Con este asombroso software de monitoreo se puede ver exactamente lo que el usuario ha estado haciendo en línea y fuera de línea justo como si mirara el monitor del ordenador sobre sus hombros. iMonitorPC registra la actividad de los usuarios, como programas usados, sitios Web visitados, actividades de chat, uso de red social. iMonitorPC también incluye bloqueo selectivo de sitios Web, informes de actividad, capturas de pantalla, los 10 programas más usados, sitios Web, advertencias de usuario, límites de uso del programa. iMonitorPC es fácil de usar y

(16)

12 configurar, intuitivo y protegido por contraseña. Se pueden revisar los reportes de actividad en línea o se puede enviar a un correo electrónico automáticamente. (3)

La desventaja de estas herramientas es que son software propietario, no son código abierto y son para controlar funciones específicas, las cuales no son del máximo interés del MININT.

A grandes rasgos lo que se pretende con el proyecto de tesis es diseñar una aplicación que permita monitorear las computadoras que se encuentran conectadas a la red del MININT, cumpliendo con los requisitos propios del Ministerio dado por la necesidad que el mismo tiene de poder controlar todos los recursos informáticos de manera centralizada.

1.3 Sistema Agente

El Sistema Agente es parte fundamental del Todo de nuestro sistema. Es un servicio de Windows que se encuentra ejecutándose en los ordenadores clientes, que como principal objetivo tiene obtener información de activos informáticos, desde el funcionamiento de toda una red hasta el rendimiento de una computadora en específico, comprendiendo el uso del procesador, características del hardware, uso de la memoria, programas instalados, puertos abiertos, nombre del equipo, entre otros, además de lograr que la gestión de toda esta información sea la más eficiente y óptima posible.

Actualmente ya el Sistema Agente es una versión funcional que permite la auditoría y monitoreo de los recursos de las computadoras en el MININT.

1.4 Herramientas y métodos

A continuación se presentarán los materiales utilizados para el desarrollo de la aplicación así como los métodos que se sugirieron a la hora de utilizar dichos materiales.

1.4.1 Metodología de Desarrollo de Software

Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente. En un proyecto de desarrollo de software la

(17)

13 metodología define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo. Una metodología, es un proceso. No existe una metodología de software universal. Las características de cada proyecto, equipo de desarrollo, recursos, etc., exigen que el proceso sea configurable.

RUP - Proceso Unificado de Desarrollo

RUP es un proceso de desarrollo de software, o sea, conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema de software.

RUP es uno de los procesos más generales de los existentes actualmente, ya que en realidad está pensado para adaptarse a cualquier proyecto, y no tan solo de software.

Un proyecto realizado siguiendo RUP se divide en cuatro fases:

Conceptualización (Concepción o Inicio).

Elaboración.

Construcción.

Transición.

Figura 1. Proceso Unificado de Desarrollo de Software

RUP define nueve actividades a realizar en cada fase del proyecto. Los 6 primeros son conocidos como flujos de ingeniería y los tres últimos como de apoyo.

Flujos de trabajo:

(18)

14 Modelación del negocio.

Requerimientos.

Análisis y diseño.

Implementación.

Prueba (Testeo).

Instalación.

Administración del proyecto.

Administración de configuración y cambios.

Ambiente.

El ciclo de vida de RUP se caracteriza por ser:

Dirigido por casos de uso: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a través de los requerimientos. A partir de aquí los casos de uso guían el proceso de desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).

Centrado en la arquitectura: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.

Iterativo e incremental: El ciclo de vida se compone de una secuencia de iteraciones, algunas de las cuales ayudan a comprender los riesgos, determinar la viabilidad, construir el núcleo interno del software y realizar el análisis del negocio, otras, en especial las últimas, incorporan incrementos hasta obtener un producto preparado para su entrega.

Se escoge a RUP como Metodología de Desarrollo a utilizar por todas estas potencialidades y con el objetivo de lograr obtener una amplia documentación del análisis y diseño del sistema y un mayor entendimiento tanto con el cliente como entre los miembros del equipo de desarrollo; respaldando de alguna manera las fallas, contradicciones y dudas que puedan surgir durante el desarrollo. Además de la gran cantidad de artefactos que se generan los cuales contribuyen a un mejor entendimiento del problema.

(19)

15

1.4.2 UML

El UML7 es un lenguaje para visualizar, modelar, construir y documentar los artefactos de un sistema”. (10)

UML no es un lenguaje de programación sino un lenguaje de propósito general para el modelado orientado a objetos y también puede considerarse como un lenguaje de modelado visual que permite una abstracción del sistema y sus componentes.

UML tiene una gran cantidad de propiedades que han sido las que, realmente, han contribuido a hacer de UML el estándar de facto de la industria que es en realidad.

Algunas de las propiedades de UML como lenguaje de modelado estándar son:

Concurrencia, es un lenguaje distribuido y adecuado a las necesidades de conectividad actuales y futuras.

Reemplaza a decenas de notaciones empleadas con otros lenguajes.

Modela estructuras complejas.

Las estructuras más importantes que soportan tienen su fundamento en las tecnologías orientadas a objetos, tales como objetos, clase, componentes y nodos.

Emplea operaciones abstractas como guía para variaciones futuras, añadiendo variables si es necesario.

Comportamiento del sistema: casos de uso, diagramas de secuencia y de colaboraciones, que sirven para evaluar el estado de las máquinas. (11)

Por todas las características del UML y las propiedades que el mismo como estándar presenta es que se escoge para modelar y documentar artefactos del sistema.

1.4.1 Herramientas CASE

Visual Paradigm

Esta herramienta al igual que Rational Rose está diseñada para una gran gama de usuarios que van desde ingenieros de software, analistas de sistemas y de negocios hasta arquitectos de proyectos. Es completamente compatible con UML y entre sus ventajas más relevantes se encuentran que permite realizar ingeniería tanto directa como inversa, es una herramienta colaborativa, es decir, soporta múltiples usuarios trabajando sobre el mismo proyecto; genera documentación del proyecto automáticamente en varios formatos tales como web o pdf, y por si fuera poco permite control de versiones. Igualmente se puede destacar su robustez, usabilidad y portabilidad.

7 Lenguaje de Modelado Un ificado (por su nombre en inglés ,Unified Modeling Language)

(20)

16 Visual Paradigm se ha convertido en una herramienta CASE8 a tener en cuenta a la hora de pensar un proyecto importante por esta razón se ha seleccionado como herramienta CASE para la realización del sistema.

Se escoge a Visual Paradigm como Herramienta Case a utilizar por sus potencialidades de generar la documentación del proyecto automáticamente, la facilidad que brinda de llevar a cabo un buen control de versiones del proyecto y su buena integración con el IDE Microsoft Visual Studio 2008, disminuyendo así el tiempo de desarrollo.

1.4.2 Herramientas para la Gestión de Requisitos.

OSRMT

Para la gestión de requisitos se utiliza la herramienta OSRMT9, herramienta desarrollada bajo la licencia GPL10.

Se escoge a OSMRT como gestor de requisitos de nuestro sistema ya que permite la descripción avanzada de diversos tipos de requisitos y garantiza la trazabilidad entre todos los documentos relacionados con la ingeniería de requisitos.

1.4.3 Aplicaciones WEB

La idea fundamental es que los navegadores o browsers, presentan documentos escritos en HTML11 que han obtenido de un servidor Web. Estos documentos HTML habitualmente presentan información de forma estática, sin más posibilidad de interacción con ellos.

El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologías Web, pasando desde las primeras páginas escritas en HTML almacenadas en un fichero en el servidor Web hasta aquellas que se generan al vuelo como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias.

8 Ingeniería de Soft ware Asistida por Ordenador (por su nombre en inglés , Computer Aided Software Engineering)

9 Herra mienta de Administración de Requisitos de Código Libre (por su nomb re en inglés , Open Source Requirements Management Tool)

10 Licencia Pública Gene ral de GNU

11 Lenguaje de Marcas de Hiperte xto (por su nombre en inglés ,HyperText Mark up Language)

(21)

17 Además, el modo de generar páginas dinámicas ha evolucionado, desde la utilización del CGI12, hasta los servlets pasando por tecnologías tipo Java Server Pages. Todas estas tecnologías se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web.

Otro aspecto que completa el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las páginas lleven incrustado código que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java.

El esquema general de la situación se puede ver en la Figura 2, donde se muestran cada tipo de tecnología involucrada en la generación e interacción de documentos Web. (4)

Figura 2. Esquema general de las tecnologías Web

Ventajas de una Aplicación Web

Extrapolación y sindicación absoluta: El hecho de que todas las aplicaciones se realicen sobre Web va a permitir que entre ellas se pueda compartir toda la información.

Aplicaciones (software): Se utiliza como servicio y no como producto.

Ubicuidad: La Web ya se ha consagrado como el canal de interoperabilidad por excelencia. Es decir, las aplicaciones basadas en Web pueden desarrollarse en cualquier terminal (y no necesariamente en los PC13): ordenadores, móviles, PDAs14, TV15 digital, etc. Esto va a permitir tener la información en todo momento y desde cualquier terminal con conexión a Internet.

12 Interfa z de entrada co mún (por su nombre en inglés , Common Gateway Interface)

13 Co mputadora Personal (por su nombre en inglés , Personal Computer)

14 Co mputadora portátil pequeña (por su nombre en inglés , Personal Digital Assistant)

15 Televisión

(22)

18 Cooperación: Las necesidades de la sociedad y la empresa red radican principalmente en la cooperación entre los diferentes actores. Estos sistemas permiten anular prácticamente los costes, llegando incluso a la cooperación entre actores que no mantienen relación. La estructura del sistema coordinará la relación.

Seguridad: A nivel de pequeñas empresas la capacidad de seguridad y de protección de datos de servidores de empresas profesionales será siempre mucho mayor que la mantenida en servidores compartidos o en los mismos ordenadores de gestión diaria.

Pérdidas de datos por fallos del sistema, virus, ataques, son constantes en los ordenadores personales sin que se mantengan copias de seguridad adecuadas y siendo el coste de restauración muy elevado para estas empresas.

Por todas estas facilidades, potencialidades y por ajustarse a las necesidades del MININT, es que se decide realizar el sistema como una Aplicación Web.

1.4.1 Internet Information Services (IIS)

El servidor Web es un programa que corre sobre el servidor que escucha las peticiones HTTP que le llegan y las satisface. Dependiendo del tipo de la petición, el servidor Web buscará una página Web o bien ejecutará un programa en el servidor.

De cualquier modo, siempre devolverá algún tipo de resultado HTML al cliente o navegador que realizó la petición.

El servidor Web va a ser fundamental en el desarrollo de las aplicaciones del lado del servidor, server side applications, que vayamos a construir, ya que se ejecutarán en él. (5)

Cuando llamamos a un equipo "servidor" nos referimos a un equipo que va a proporcionar determinados servicios a los usuarios de una red local o de Internet.

Lleva un equipamiento de prestaciones más avanzadas que un equipo de sobremesa y sobre todo incorpora un sistema operativo de servidor.

Por tanto, si en un navegador o explorador web escribimos una dirección o una página intentará localizar el servidor escrito y buscar la página solicitada. Para que ocurra esto debemos tener instalado en nuestro servidor el programa IIS16, el cual viene de forma gratuita con el sistema operativo Windows NT, 2000, 2003, 2008, XP y Vista y descargable para los demás.

16 Microsoft Internet Information Server

(23)

19 Es recomendable que el servicio de páginas web se instale en un Windows 2003 Server o superior. Como equipo cliente para poder manipular el servidor y todas sus opciones se utilizará XP Professional.

Los Servicios de IIS 6.0 con Windows Server 2003 proporcionan capacidades de servidor Web integrado, confiable, escalable, seguro y administrable en una intranet, una extranet o en Internet. IIS 6.0 incorpora mejoras significativas en la arquitectura para cubrir las necesidades de los clientes alrededor del mundo. Una de las tantas características que presenta Windows Server 2003 es que ofrece una experiencia mejorada para el desarrollador con la integración de IIS y Microsoft ASP.NET. Creadas a partir de IIS 6.0, las mejoras de Windows Server 2003 ofrecen a los desarrolladores unos elevados niveles de funcionalidad, como el RAD17 y una amplia selección de lenguajes. En Windows Server 2003, la experiencia de utilizar ASP.NET y Microsoft .NET Framework se ha mejorado porque la arquitectura de procesamiento de solicitudes se integra con IIS 6.0. (6)

1.4.2 Servicio

Un servicio es el resultado de llevar a cabo necesariamente al menos una actividad en la interfaz entre el proveedor y el cliente y generalmente es intangible. La prestación de un servicio puede implicar, por ejemplo:

una actividad realizada sobre un producto tangible suministrado por el cliente.

una actividad realizada sobre un producto intangible suministrado por el cliente.

la entrega de un producto intangible.

la creación de una ambientación para el cliente.

Se puede afirmar que la característica básica de los servicios que los diferencia de los productos es que son intangibles, es decir no son palpables, ni perceptivos, ni materiales. Los servicios que brindan las TIC no difieren de ninguna manera de lo enunciado anteriormente porque son soluciones tecnológicas que se les ofrecen a determinadas organizaciones, empresas o cualquier cliente que lo solicite, en el ámbito de la informática y las comunicaciones.

17 Desarrollo de Aplicaciones Rápidas (por su nombre en inglés , Rapid Application Development)

(24)

20

1.4.3 Servicios Web (WebServices)

Los Servicios Web permiten que las aplicaciones compartan información y que además invoquen funciones de otras aplicaciones independientemente de cómo se hayan creado las mismas, cuál sea el sistema operativo o la plataforma en que se ejecutan y cuáles los dispositivos utilizados para obtener acceso a ellas. Aunque los servicios Web XML18 son independientes entre sí, pueden vincularse y formar un grupo de colaboración para realizar una tarea determinada, debido a que utilizan estándares de Internet como HTTP19 y XML. Para su creación se puede utilizar cualquiera de los lenguajes disponibles en la plataforma .NET.

La plataforma .NET permite la creación y consumo de aplicaciones, procesos y sitios Web basados en XML que comparten y combinan información y funcionalidad entre cada uno de ellos, en cualquier plataforma o dispositivo inteligente.

La plataforma .NET incluye una familia de productos, construidos sobre estándares de Internet, que provee funcionalidad para los aspectos de construcción de software (herramientas), administración (servidores) y uso (servicios base y clientes inteligentes) y experiencias de servicios Web XML.

.NET se convertirá en parte de las aplicaciones, herramientas y servidores que ya se usan hoy en día; así como en productos que extienden los servicios Web XML a capacidades para todas las necesidades de negocios.

La integración de los “Servicios Web XML” sobre .NET hacen posible que diferentes piezas de software, sin importar su origen propietario, trabajen en conjunto para:

a) Unir aplicaciones: Convertir aplicaciones independientes a constelaciones de aplicaciones para usar datos reales en lugar de datos históricos.

b) Intercambiar datos: Los datos de clientes residen en aplicaciones aisladas, impidiendo ofrecer nuevos servicios que exploten esos datos.

1.4.4 Arquitectura Orientada a Servicios (SOA)

SOA, es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.

18 Lenguaje de Marcas A mpliable (por su nombre en inglés ,Extensible Mark up Language)

19 Protocolo de transmisión del hiperte xto (por su nombre en inglés , Hypertext Transfer Protocol)

(25)

21 Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma estándar de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.

SOA presenta las siguientes características:

Infraestructura de alto nivel basada en best practices y patrones para crear soluciones basadas en servicios, de alta cohesión y bajo acoplamiento”.

“Estilo arquitectónico apto para implementar bajo acoplamiento entre agentes.

Los agentes son proveedores y consumidores de servicios, que son la unidad de trabajo”.

Framework de SOA

Figura 3. BPEL para WebServices

(26)

22

¿Por qué SOA?

Facilita la reutilización de componentes existentes.

Mejora la flexibilidad de los procesos.

Simplifica la integración de los nuevos componentes con los existentes.

SOA es una arquitectura de software que comienza con una definición de interface y construye toda la topología de la aplicación como una topología de interfaces, implementaciones y llamados a interfaces. SOA es una relación de servicios y consumidores de servicios, ambos suficientemente amplios para representar una función de negocios completa.

1.4.5 Modelo Vista Controlador de Microsoft (MVC)

El MVC es un patrón arquitectónico que sugiere la separación del software en tres componentes, Modelo, Vista y Controlador:

 Modelo: Es la representación de la información que maneja la aplicación. El modelo en sí lo constituyen los datos puros y la lógica de los propios datos que puestos en el contexto del sistema proveen de información al usuario y en algunos casos a la propia aplicación.

 Vista: Es la representación del modelo en forma gráfica disponible para la interacción con el usuario. En el caso de una aplicación Web, la “vista” sería una página HTML con contenido dinámico sobre la cual el usuario puede realizar sus operaciones.

 Controlador: Es la parte encargada de manejar y responder las solicitudes del usuario, procesando toda la información necesaria y modificando el Modelo en caso de ser necesario.

Este modo de diseñar la aplicación ocasiona que se genere un mayor número de ficheros ya que se separa la capa de acceso a datos de las interfaces de usuario y de la gestión de funcionalidades. Además en algunos casos se pudiera complejizar la aplicación pero aporta también un gran número de ventajas como por ejemplo la separación del modelo de la vista, es decir, separar los datos de la representación visual de los mismos. Este patrón posibilita crear más de una vista para el mismo modelo, además de una conexión entre el modelo y sus vistas de manera dinámica, es decir, se produce en tiempo de ejecución y no en tiempo de compilación. Al utilizar

(27)

23 este patrón si se agrega o se quita una funcionalidad no afecta a la aplicación y se facilita el mantenimiento en caso de errores.

Existe un Framework llamado ASP.NET MVC Framework el cual permite agilizar los desarrollos basados en el patrón de diseño Modelo Vista Controlador, cuyo diagrama de clases sería el siguiente:

Figura 4. Diagrama del Modelo Vista Controlador

En este patrón, el Modelo constituye la capa de persistencia de la aplicación, es decir, la capa más cercana a dónde y cómo se almacena la información. La Vista, como su nombre indica, es la encargada de la presentación de la aplicación al usuario, brindando al mismo la interfaz de uso correspondiente.

Por último, el Controlador es el responsable de determinar la lógica de ejecución a partir de las acciones que se producen en la aplicación.

Entre otras, el uso del ASP.NET MVC aporta las siguientes ventajas:

URLs amigables.

Control sobre el código de presentación (XHTML puro).

Separación de lógica, presentación y control.

Como consecuencia de lo anterior, una mayor flexibilidad para la implantación de pruebas unitarias en el software facilitando las técnicas de desarrollo TDD.

Facilita las técnicas de Inversión de Control.

(28)

24 Los componentes existentes pueden ser reemplazados por componentes de

terceros.

Uso de ASP.NET “clásico” eliminando postbacks.

1.4.6 Patrón DAO

El patrón DAO (Data Access Object) se encarga de separar el acceso a datos del resto de funciones, o sea, tiene que haber independencia del almacén de datos. El DAO implementa el mecanismo de acceso requerido para trabajar con la fuente de datos.

Esta fuente de datos puede ser un almacenamiento persistente o un servicio externo.

Los componentes de negocio que tratan con el DAO utilizan una interfaz simple expuesta por el DAO para sus clientes. El DAO oculta completamente los detalles de implementación de la fuente de datos a sus clientes. Como el interface expuesto por el DAO no cambia cuando cambia la implementación de la fuente de datos subyacente, este patrón permite al DAO adaptarse a diferentes esquemas de almacenamiento sin que esto afecte a sus clientes o componentes de negocio. Esencialmente, el DAO actúa como un adaptador entre el componente y la fuente de datos.

El patrón DAO es una solución al problema del diferencial de impedancia entre un programa de aplicación orientado a objetos y una base de datos relacional, empleando únicamente la interfaz de programación (API) nativa del manejador de base de datos, o algún otro sustituto como el ODBC, DBI, entre otros.

El patrón DAO permite el encapsulamiento de componentes. Las clases DAO acceden a la fuente de datos y la encapsula para los objetos clientes. Entendiendo que oculta tanto la fuente como el modo de acceder a ella, logrando así desacoplar la lógica de negocios de la lógica de acceso a datos. Esto permite que la fuente de datos pueda cambiar y no es necesario cambiar la lógica del negocio, solo las API que utiliza la clase DAO para acceder a la fuente. (16)

(29)

25 Figura 5. Patrón de Diseño DAO

1.4.7 Comunicación por Socket

Un Socket, es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets API20.

Un socket es también una dirección de Internet, combinando una dirección IP21 (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP22 o WWW23). (9)

20 Interfa z de Progra mac ión de Aplicaciones (por su nombre en inglés , Application Programming Interface)

21 Protocolo de Internet (por su nombre en inglés , Internet Protocol)

22 Protocolo de Transferencias de Archivos(por su nombre en inglés,File Transfer Protocol)

23 Red Mundial de Internet (por su nombre en inglés ,World Wide Web)

(30)

26

1.4.8 Lenguaje XML

El Lenguaje Extensible de Marcas (XML) es un subconjunto de SGML24. Sus objetivos son habilitar el SGML genérico para que pueda ser servido, recibido y procesado en la Web de la manera que no es posible con HTML. XML ha sido diseñado para facilitar la implementación e interoperabilidad con SGML y HTML.

Figura 6. Estructura XML

El Lenguaje Extensible de Marcas, describe una clase de objetos de datos llamados documentos XML y describe parcialmente el comportamiento de los programas de computadora que los procesan. XML es un "perfil de aplicación" o una forma restringida de SGML, el Lenguaje Estándar Generalizado de Marcación [ISO25 8879].

Por construcción, los documentos XML son documentos SGML conformados.

Los documentos XML están compuestos por unidades de almacenamiento llamadas entidades, que contienen tanto datos analizados como no analizados. Los datos analizados están compuestos de caracteres, algunos de los cuales, de la forma datos carácter, y otros de la forma marca. Las marcas codifican una descripción de la estructura de almacenamiento del documento y su estructura lógica.

XML proporciona un mecanismo para imponer restricciones al almacenamiento y a la estructura lógica. Se utiliza un módulo software llamado procesador XML para leer documentos XML y proporcionar acceso a su contenido y estructura. Se asume que un procesador XML hace su trabajo dentro de otro módulo, llamado aplicación. Esta especificación describe el comportamiento requerido de un procesador XML en términos de cómo leer datos XML y la información que debe proporcionar a la aplicación.

24 Lenguaje genérico por etiquetas (por su nombre en inglés , Standard Generalized Markup Language)

25 Organizac ión Internacional de Norma lización (por su nombre en inglés , International Organization for Standardization)

(31)

27 Objetivos del XML

1. XML debe ser directamente utilizable sobre Internet.

2. XML debe soportar una amplia variedad de aplicaciones.

3. XML debe ser compatible con SGML.

4. Debe ser fácil la escritura de programas que procesen documentos XML.

5. El número de características opcionales en XML debe ser absolutamente mínima, idealmente cero.

6. Los documentos XML deben ser legibles por humanos y razonablemente claros.

7. El diseño de XML debe ser preparado rápidamente.

8. El diseño de XML debe ser formal y conciso.

9. Los documentos XML deben ser fácilmente creables.

10. La concisión en las marcas XML es de mínima importancia. (5)

1.4.9 Plataforma de Desarrollo Microsoft .NET

La plataforma.NET es una capa de software que se coloca entre el SO26 y el programador y se abstrae de los detalles internos del SO. Las características fundamentales de esta plataforma son las siguientes:

Multilenguaje: Cualquier lenguaje de programación puede adaptarse a la plataforma.NET y ejecutarse en ella.

Interoperabilidad: La interoperabilidad entre los distintos trozos de códigos escritos es total.

Portabilidad: Debido a la abstracción del programador respecto a los SO una aplicación.NET puede ser ejecutada en cualquier SO que disponga de una versión de la plataforma.

26 Sistema Operativo

(32)

28 La plataforma.NET está compuesta por tres partes fundamentales:

El Common Language Runtime (CLR): Es el entorno de ejecución y constituye su núcleo. El CLR es donde se ejecutan nuestras aplicaciones. Las mismas pueden estar escritas en diferentes lenguajes que ofrece.NET (C#.NET, Visual Basic.NET, C++.NET).

Las Framework Clases: Esta capa provee al programador de servicios estructuras y modelos de objetos para ADO.NET27, entrada/salida, seguridad y manejo de documentos XML entre otros.

Se escoge la Plataforma.NET para desarrollar el sistema ya que ofrece solidez en la programación del lado del servidor. Esta plataforma permite desarrollar aplicaciones en varios lenguajes como son: el Visual Basic.NET, C++.NET y C#.NET.

1.4.10 ASP.NET

ASP.NET, es una parte de la plataforma .NET de Microsoft, es una estructura de programación revolucionaria que permite el desarrollo de aplicaciones Web dirigidas a corporaciones. Constituye la forma más rápida y escalable de desarrollar, implementar y ejecutar aplicaciones Web en cualquier navegador o dispositivo.

ASP.NET implica un mejor rendimiento, eficacia y flexibilidad. Mejora muchísimo la productividad de los programadores, debido a que aprovecha las ventajas del enlace anticipado, la compilación JIT28, la optimización nativa y los servicios de caché desde el primer momento. Esta plataforma permite dotar a las aplicaciones Web de nuevas funcionalidades y ofrece la posibilidad de seleccionar cualquiera de los lenguajes de programación .NET disponibles; e incluso se puede dividir una misma aplicación en varios lenguajes.

Además permite crear servicios Web XML, lo cual posibilita compartir información a través de Internet sin tener en cuenta el Sistema Operativo ni el lenguaje de programación que se utilice; esto sin dudas amplía el alcance de las aplicaciones.

27 Paquete de componentes que pueden ser usados para acceder y para modifica r los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales.

28 Co mp ilac ión en tie mpo de ejecuc ión (por su nombre en inglés , Just In Ti me)

(33)

29 ASP.NET también trae ventajas para los usuarios ya que las aplicaciones son más rápidas de ejecutar debido fundamentalmente a que no requieren de un proceso de compilación explícito. Otra de las ventajas es que las aplicaciones basadas en ASP.NET, son muy fiables y seguras, con la autenticación de Windows integrada y la configuración por aplicación, se puede tener la completa seguridad de que las aplicaciones están a salvo.

De modo general ASP. NET propone un modelo de programación consistente, operaciones simplificadas de desarrollo y una sencilla implementación y mantenimiento de las aplicaciones. (15)

Se escoge a ASP.NET ya que provee una plataforma robusta para el desarrollo de las aplicaciones Web y permite separar la lógica de la aplicación de la interfaz. De esta manera el programador puede centrarse en la lógica de la aplicación sin preocuparse de los detalles de la interfaz.

1.4.11 C Sharp

C# es el primer lenguaje orientado a componentes en la familia de lenguajes C y C++.

Es un lenguaje de programación simple, moderno, orientado a objetos y con un sistema de tipos seguro derivado de C y C++. C Sharp combina la alta productividad de Microsoft Visual Basic y la eficacia bruta de C++.

El sistema de tipos de C# emplea gestión de memoria automática, liberando de ese modo a los desarrolladores de una gestión manual de memoria costosa en tiempo y propensa a errores. Al contrario que en la mayoría de los sistemas de tipos, el sistema de tipos de C# también permite la manipulación directa de tipos puntero y direcciones de memoria de objetos. Estas técnicas de gestión de memoria manual solo se permiten en ciertos contextos de seguridad.

El sistema de tipos de C# está unificado; todo es un objeto. A través del uso innovador de conceptos como empaquetado y desempaquetado, C# llena el vacío entre tipos valor y tipos referencia, permitiendo que cualquier dato sea tratado como objeto.

C Sharp soporta atributos, que permiten la definición y uso de información declarativa sobre componentes. El poder definir nuevos tipos de información declarativa siempre ha sido una poderosa herramienta para los diseñadores de lenguajes. Ahora todos los desarrolladores de C# tienen esta capacidad. (12)

(34)

30 Se escoge Microsoft Visual C# .NET 3.5 como lenguaje de programación pues es orientado a objetos, soporta las tres características fundamentales del paradigma orientado a objetos: herencia, polimorfismo y encapsulamiento. Provee numerosas potencialidades y comodidades para el desarrollo de Servicios Windows, Servicios Web, además brinda soporte para sincronización de múltiples hilos. Es el lenguaje que más se integra al entorno de desarrollo Visual Studio Team Suite 2008 y las soluciones escritas en él pueden migrarse a Linux.

1.4.12 AJAX

AJAX29 no es una tecnología, es realmente un conjunto de muchas tecnologías, cada una floreciendo por su propio mérito, uniéndose en poderosas nuevas formas. AJAX incorpora:

JavaScript30.

Presentación basada en estándares usando XHTML31 y CSS32. Exhibición e interacción dinámicas usando el DOM33.

Intercambio y manipulación de datos usando XML y XSLT34. Recuperación de datos asincrónica usando XMLHttpRequest.

El modelo clásico de aplicaciones Web funciona de la siguiente manera: La mayoría de las acciones del usuario en la interfaz disparan un requerimiento HTTP al servidor web, este efectúa un proceso (recopila información, procesa números, hablando con varios sistemas propietarios), y le devuelve una página HTML al cliente. (8)

29 Conjunto de Tecnologías Web (por su nombre en inglés Asynchronous JavaScript And XML)

30 Lenguaje de Progra mac ión Interpretado para el desarrollo de aplicaciones Web que no requiere compilac ión.

31 Lenguaje HTM L e xtendido (por su nombre en inglés Extended HyperText Markup Language)

32 Hojas de estilo de cascada (por su nombre en inglés Cascade Style Sheets)

33 Modelo de Objetos para la representación de Documentos (por su nombre en inglés Document Object Model)

34 Estándar de la organizac ión W3C que presenta una forma de transformar documentos XML en otros .

(35)

31 Figura 7. El modelo tradicional para las aplicaciones Web (izquierda) comparado con el modelo de AJAX (derecha)

Este acercamiento tiene mucho sentido a nivel técnico, pero no lo tiene para una gran experiencia de usuario. Mientras el servidor está haciendo lo suyo, el usuario está esperando por su solicitud. Y, en cada paso de la tarea, el usuario espera cada vez más.

Obviamente, si se estuviera diseñando la Web desde cero para aplicaciones, no querríamos hacer esperar a los usuarios. Una vez que la interfaz está cargada, ¿Por qué la interacción del usuario debería detenerse cada vez que la aplicación necesita algo del servidor?

Una aplicación AJAX elimina la naturaleza “arrancar-frenar- arrancar-frenar” de la interacción en la Web, introduciendo un intermediario -un motor AJAX- entre el usuario y el servidor. Al parecer, sumar una capa a la aplicación la haría menos reactiva, pero la verdad ocurre todo lo contrario.

En vez de cargar un página Web, al inicio de la sesión, el navegador carga al motor AJAX el cual es escrito en JavaScript y usualmente “sacado” en un frame oculto. Este motor es el responsable por renderizar la interfaz que el usuario ve y por comunicarse con el servidor en nombre del usuario.

El motor AJAX permite que la interacción del usuario con la aplicación suceda asincrónicamente (independientemente de la comunicación con el servidor). Así el

(36)

32 usuario nunca estará mirando una ventana en blanco del navegador y un icono de reloj de arena esperando a que el servidor haga algo.

Figura 8. El patrón de interacción sincrónica de una aplicación Web tradicional (arriba) comparada con el patrón asincrónico de una aplicación AJAX (abajo)

Cada acción de un usuario que normalmente generaría un requerimiento HTTP toma la forma de un llamado JavaScript al motor AJAX en vez de ese requerimiento.

Cualquier respuesta a una acción del usuario que no requiera un viaje de vuelta al servidor (como una simple validación de datos, edición de datos en memoria, incluso algo de navegación) es manejada por su cuenta.

Si el motor necesita algo del servidor para responder (sea enviando datos para procesar, cargar código adicional, o recuperando nuevos datos) hace esos pedidos asincrónicamente, usualmente usando XML, sin frenar la interacción del usuario con la aplicación. (9)

1.4.13 Framework Ext JS

ExtJS es un Framework Javascript desarrollado para crear interfaces de usuarios agradables. Posee una gran cantidad de componentes para la realización de aplicaciones web entre los cuales se encuentran: los objetos de tipo Grid, Windows, Form, Panel, y Menu, entre otros. (8)

(37)

33 Además permite incorporar a las aplicaciones otros framework como es el caso de Prototype35 y Scriptaculous36. Esto brinda la facilidad de extender el campo de desarrollo al utilizar los componentes desarrollados por estos otros frameworks. ExtJS permite un intercambio de datos con el servidor Web a través de la Tecnología AJAX utilizando JSON37 o XML para la transmisión de datos, logrando una mayor velocidad en dicho proceso. ExtJS fue diseñado para facilitar la programación que se lleva a cabo en el lado del cliente y disminuir los tiempos de desarrollo que se empleaban para la programación de interfaces de Usuarios.

1.4.14 IDE de Desarrollo

Team Suite Visual Studio .Net

Es un IDE38 para sistemas Windows, diseñado para aportar automatización, integración y colaboración a todo el ciclo de vida del desarrollo de software.

Soporta múltiples lenguajes de programación como son: C++, Visual C#, Java, Asp.Net, Visual Basic, entre otros.

Proporciona herramientas de desarrollo avanzadas que permiten a los equipos añadir calidad, así como desarrollar sitios, aplicaciones y servicios Web en cualquier entorno que soporte la plataforma .NET.

En su última versión incluye una biblioteca ASP.NET AJAX para desarrollar aplicaciones web más eficientes, interactivas y altamente personalizadas que funcionen para todos los navegadores más populares y utilicen las últimas tecnologías y herramientas Web, incluyendo Silverlight39 y Popfly40.

Otras ventajas que presenta esta herramienta es que reduce el tiempo del proceso de generación, y el de administrar el sistema de control de código fuente. El seguimiento de elementos de trabajo integrados, el seguimiento de defectos y el control del código fuente, as í como la posibilidad de realizar consultas personalizadas, hacen que la resolución de problemas sea más rápida y sencilla, lo que cual implica un ahorro de tiempo durante la fase de prueba. Además reduce el trabajo repetido.

35 Framework escrito en JavaScript para e l desarrollo sencillo y d iná mico de ap licac iones web.

36 Libre ría JavaScript para el desarrollo de Aplicaciones Web.

37 Formato ligero para e l interca mbio de datos (por su nombre en inglés JavaScript Object Notation)

38 Entorno de Desarrollo Integrado (por su nombre en inglés , Integrated Development Environment)

39 Co mp le mento para navegadores de Internet basado en la plataforma Windows que agrega nuevas funciones multimedia

40 Sit io web de Microsoft que permite a l usuario crear páginas web

Referencias

Documento similar

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

Por PEDRO A. EUROPEIZACIÓN DEL DERECHO PRIVADO. Re- laciones entre el Derecho privado y el ordenamiento comunitario. Ca- racterización del Derecho privado comunitario. A) Mecanismos

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun