Capítulo I. Marco Teórico - Justificación - Biblioteca
←
→
Transcripción del contenido de la página
Si su navegador no muestra la página correctamente, lea el contenido de la página a continuación
1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende de la organización que se esté tratando. La flexibilidad de estas aplicaciones, es decir la facilidad con la que se pueda responder a cambios organizacionales o del entorno, es crítica y diferencia a las aplicaciones exitosas de las temporales y rígidas. Estos cambios son inevitables dado que las aplicaciones responden a fenómenos humanos, de por sí volubles en comportamiento. La frase “lo único constante es el cambio” ilustra lo dicho. Un proyecto de desarrollo de una aplicación web debe tener en mente muchas más consideraciones que una aplicación común. Además de realizarlo de manera correcta y oportuna, debe tener grandes niveles de flexibilidad y de mantenimiento. Además los plazos de entrega, modificación y puesta en marcha son muy cortos en aplicaciones de este tipo. Es normal emprender proyectos de reducido número de meses y además que se presenten cambios funcionales o de usabilidad que deben ser implementados en un reducido número de semanas. El presente trabajo intenta implementar, a manera de validación, la propuesta del Mgtr. Guillermo Roberts Chaves en su trabajo de tesis titulado “Propuesta de una forma de trabajo para la creación de aplicaciones web”. Dicho trabajo de tesis expone el marco teórico por la cual uno puede crear un aplicación web que cumpla con las características de un software de calidad pero aplicado a la World Wide Web. Este marco teórico tiene como producto final al Modelo de 5 capas ó MD5C que detallaremos en el presente trabajo. 2. Problemática El web se ha convertido poco a poco, de ser una curiosidad a ser una necesidad para las empresas. Estas ven en el web una ventaja, ya sea únicamente como medio informativo y de promoción, o como un frente comercial más. Actualmente existe gran diversidad de aplicaciones en los dominios de la WWW, utilizados para distintos fines, las cuales dependen de los objetivos que tengan la organización o empresa que las utiliza. Esta gran variedad de aplicaciones se podrían agrupar en dos: la primera es la conectividad interna la
2
que hace referencia al flujo de información dentro de la misma empresa y la segunda la
conectividad externa en el cuál el flujo de información es entre distintas empresas.
En cualquiera de estas agrupaciones la aplicación que se desarrolle debe contar con la
información crítica de la empresa, en forma oportuna, actualizada en todo momento y que
además tenga el mismo ritmo del giro del negocio en el cual se desempeña porque es una
significativa ventaja competitiva, por ejemplo: en las negociaciones con proveedores o
clientes, externos o internos a la empresa. Es por esto que el grupo de desarrollo debe ser
consciente en definir y especificar las distintas actividades que se realizarán en la
aplicación teniendo en cuenta todos los requerimientos funcionales de la empresa así como
las posibles complicaciones que pueden surgir en el transcurso del trayecto como son: el
mantenimiento, agregar funcionalidades, cambios en la apariencia de la aplicación, entre
otros.
¿Existe alguna metodología clara que nos permita desarrollar aplicaciones web sin
complicaciones, y que, además, esté abierta al cambio futuro, tanto en tecnologías como
en necesidades?
La situación actual, es que no existe una metodología unificada y cada empresa al
enfrentarse con este problema desarrolla su propia forma de trabajo lo cuál trae como
resultado distintas metodologías que nos conllevan a serias y costosas dificultades futuras,
como el mantenimiento y cambio posterior de estas aplicaciones. Debido a esto se hace
necesario que exista una metodología que tome en cuenta las necesidades propias de las
aplicaciones Web, que si bien en funcionalidad no varían respecto a las aplicaciones
convencionales sí contienen una serie de requerimientos propios y diferentes.
3. Método propuesto - MD5C
Existe un método denominado Modelo de Cinco Capas (MD5C), una idea presentada en
una tesis de maestría, en la cuál expone las pautas que el desarrollador necesita o debe
considerar para el desarrollo de aplicaciones web. Este método de trabajo cumple con los
requerimientos propios de las aplicaciones Web, nos permite que las aplicaciones creadas
cumplan con los principales requerimientos del software de calidad y que los sitios web
resultantes sean de calidad, siguiendo las pautas de la Ingeniería del Web.
4. Modelo de cinco capas - MD5C
El modelo de cinco capas o MD5C orientado a aplicaciones Web, se basa en la misma
esencia que la Ingeniería de Software (IS), es decir, ambos nos permiten de una manera
ordenada y clara abordar el proceso de desarrollo de una aplicación convencional desde su
concepción hasta la puesta en marcha y posterior mantenimiento y actualización.
El MD5C está orientado a crear páginas Web dinámicas creadas en el servidor, las cuales
son enviadas al cliente en HTML con el contenido que ha solicitado, basándose en una
serie de funciones y procedimientos. Este tipo tecnología constituye una gran ventaja, ya
que dispone de todos los recursos del servidor: base de datos, sistema de archivos, etc.3
4.1 Páginas dinámicas en servidor
Dentro de las tecnologías que se utilizan para la creación de páginas dinámicas en el
servidor tenemos el ya clásico CGI (Common Gateway Interface), pasando por lenguajes
más modernos como son el ASP (Active Server Pages de Microsoft), PHP, Java (Servlets),
JSP (Java Server Pages), entre otros muchos más.
El funcionamiento de estás páginas web dinámicas, podría resumirse de la siguiente
manera (Fig. 1.1):
1. El cliente envía una petición HTTP al servidor (probablemente, enviando una serie
de parámetros),
2. El servidor web, al recibir la solicitud, la pasa al servidor de aplicaciones,
3. El servidor de aplicaciones interpreta la solicitud, realizará los procedimientos
necesarios – utilizando los recursos del servidor, como bases de datos y sistema de
archivos.
4. El servidor de aplicaciones devuelve la respuesta al servidor web, ya en formato
HTML.
5. El servidor Web envía esta respuesta al cliente.
2
1 Servidor
Aplicaciones
4
3
Servidor Web
Cliente
5
Bases Sistema
de Datos de
Ficheros
Figura 1.1: Funcionamiento de las páginas dinámicas
4.2 Metodología clásica de desarrollo y MD5C
La metodología clásica de desarrollo (SDLC) es considerada la base de las metodologías
actuales de desarrollo. Así, haciendo un paralelo con esta metodología el MD5C no
considera la fase de análisis ni la primera parte del diseño porque los procedimientos que
se utilizan en estas fases no dependen de la tecnología que se va utilizar (ver figura 1.2)4
Modelo de cinco capas - MD5C
Mantenimiento
Implantación
Desarrollo
Diseño
Análisis
Figura 1.2: Fases del desarrollo clásico que corresponden al MD5C
El MD5C se centra en el desarrollo propio de las aplicaciones (fase de desarrollo), aunque
influye en las fases comprendidas desde la mitad del diseño (diseño de interfaces,
navegación, etc.) en adelante, tomando en cuenta la implantación y el mantenimiento
posterior, como se muestra en la Figura 1.2.
Por lo tanto dentro las características que definen al MD5C son:
• Flexibilidad: Debe ser capaz de soportar la creación de cualquier aplicación web,
desde una página estática simple, hasta un sitio complejo con varias
funcionalidades.
• Facilidad de implementación: La utilización de esta metodología no debe
representar una carga mayor, frente a la creación de aplicaciones por el método
tradicional.
• Facilidad de mantenimiento: El mantenimiento posterior que reciban las
aplicaciones, tanto a nivel de funcionalidades como de diseño deberá ser sencillo de
realizar.
• Simplicidad: La metodología no debe ser compleja desde ningún punto de vista, a
fin de que el entendimiento, utilización y modificación de la misma, sean sencillos
y rápidos.
4.3 Descripción del MD5C
El MD5C separa a las aplicaciones en 5 capas, resultando en modelo de desarrollo de 5
capas, como se puede ver en la Figura 1.3. Este modelo no fuerza a la utilización de
ninguna tecnología, sólo una forma de trabajo.5
Lógica
Presentación
Cliente
Datos
Plantillas
Idioma
Figura 1.3: Modelo de desarrollo de 5 capas
4.3.1 Capa Lógica
A semejanza del modelo de 3 capas clásico, esta capa abarca toda la lógica de negocios
necesaria para el correcto funcionamiento de la aplicación, toda la serie de funciones,
procedimientos, etc., que permiten que la aplicación cumpla con los objetivos para los que
fue creada.
En el caso de aplicaciones web, esta capa es almacenada en un servidor, ya sea web o de
aplicaciones, como vimos en el funcionamiento del web, donde se realizarán todos los
procesos de la aplicación, utilizando tecnologías de páginas dinámicas en servidor.
4.3.2 Capa de Datos
Esta capa también es semejante a aquella del modelo de 3 capas. En esta se encuentran los
datos persistentes requeridos para el correcto funcionamiento de la aplicación,
normalmente almacenados en una base de datos.
De la misma manera, esta capa se encuentra del lado del servidor, pudiendo encontrarse en
un servidor especializado o compartiendo recursos con el servidor de aplicaciones y el
servidor web.
4.3.3 Capa de plantillas
Esta capa, propia del modelo, almacena las plantillas que usaremos para presentar los datos
en las diferentes plataformas con las que interactuará el sistema. Así, aquí estarán todos los
archivos HTML necesarios para mostrar los datos en navegadores web, diferentes
plantillas WML1 para los dispositivos WAP2 (teléfonos, etc.).
1
Wireless Markup Language -- WML (Lenguaje de Marcado para Telefonía Inalámbrica) Lenguaje en el
que se escriben las páginas que aparecen en las pantallas de los teléfonos móviles y los asistentes
personales digitales (PDAs) dotados de tecnología WAP6
La función principal de esta capa consiste en almacenar de una manera organizada todas
aquellas plantillas (o templates) que usaremos para mostrar los datos. Básicamente se trata
de un repositorio que contiene todas estas plantillas.
Las características propias de esta capa permiten que sean los encargados del diseño los
que modifiquen las plantillas, siguiendo una serie de reglas básicas, que se explicarán en la
puesta en marcha de esta capa.
4.3.4 Capa de idiomas
Esta capa es semejante a la anterior, pero almacena las diferentes configuraciones de
idioma para las plantillas. Así, esta capa podría ser una base de datos, en la que se
especifican las traducciones para cada uno de los idiomas que soportará nuestra aplicación.
Se considera por separado a la base de datos, a efectos de clarificar el funcionamiento de
esta.
4.3.5 Capa de presentación
Esta es la capa más importante del modelo, pues es ésta la que permite la presentación de
los datos creados por la capa lógica, hacia el cliente, utilizando para esto los templates de
la capa de plantillas y las diferentes traducciones de la capa de idiomas.
En este modelo, esta capa si está completamente separada e independiente de la lógica.
Básicamente, el funcionamiento de esta capa podría resumirse en los siguientes pasos:
1. Obtener los datos de la capa lógica.
2. Cargar y procesar la plantilla que corresponde, de la capa de plantillas.
3. Cargar las traducciones que corresponden, de la capa de idiomas.
4. Procesar la plantilla, haciendo cambios en función del idioma
5. Combinar los datos de la capa lógica con la plantilla
6. Enviar los resultados al cliente.
5. Evaluación del MD5C
MD5C es un método que nos permite crear aplicaciones Web de calidad. Para la
evaluación de este método se utilizan los fundamentos o características de la Ingeniería de
software que se describen en la siguiente tabla.
2
Wireless Application Protocol -- WAP (Protocolo de Aplicación de Telefonía Inalámbrica) Protocolo
que permite a los usuarios de teléfonos móviles el acceso a servidores web especializados, visualizando la
información en el visor del teléfono7
Característica
Esta característica depende de la aplicación en sí, y en
Corrección
nuestro modelo, estaría cubierta por la capa de lógica.
Esta característica también depende de la capa lógica,
aunque debemos tener en cuenta que la conexión a través
Robustez
de Internet es, por definición, insegura, por lo que deben
tomarse las medidas respectivas.
El modelo propuesto permite lograr la adición de nuevas
funcionalidades sin mayor complicación: la programación
modular y la separación de la capa de presentación hacen
que esta modificación sea sencilla.
El modelo presentado separa completamente el diseño de la
Extensibilidad
aplicación (capa de plantillas) de la lógica de la aplicación,
Descentralización
por lo que el diseño podrá ser abordado por los expertos en
el tema.
Simplicidad de La separación de capas permite que los expertos en cada
diseño tema trabajen de manera paralela e independiente.
La propuesta implica la separación completa de las capas
de presentación, plantillas e idioma, y dada la flexibilidad y
Reusabilidad
generalidad de estas, pueden ser reutilizadas en varias
aplicaciones.
Existe sólo una capa lógica que envía resultados a la capa
de presentación, que a su vez, podrá presentarlos en
diferentes y variadas plataformas e idiomas, repercutiendo
Eficiencia
positivamente en este aspecto. Como aspecto negativo en
este factor, encontramos que se pueden procesar datos que
no serán presentados al usuario.
La capa de plantillas definirá la forma de utilizar la
Facilidad de uso aplicación. En caso se vea que esta está muy compleja,
podrá ser cambiada sin mayores esfuerzos.
La funcionalidad general de la aplicación está definida en
Funcionalidad
la capa lógica, como vimos.
Por definición, las aplicaciones web son centralizadas en el
servidor web. La transportabilidad en este caso podría verse
desde dos frentes: cambio de servidores, y clientes. En el
Transportabilidad primer caso, depende de la implementación de las capas.
En el segundo, de la utilización de páginas dinámicas en
cliente, pues si utiliza solo paginas en servidor, la
transportabilidad en varias plataformas está garantizada.
Las aplicaciones web requieren un despliegue en corto
tiempo. La característica de reusabilidad de las nuevas
Oportunidad
capas propuestas tienen un gran aporte en la rapidez de
despliegue.También puede leer