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 WAP
6 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éfono
7 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