Desarrollo de Sistemas de Información basados en
Tecnología Web con acceso a Base de Datos
Introducción 

Situación Actual

Sistema Propuesto

Marco Teórico

Conclusiones

Infografía

Anexos

Introducción

Para que una Organización se mantenga con índices de alta competitividad, alta productividad y cumpla satisfactoriamente con la entrega de productos y/o servicios de calidad se requiere que la misma se mantenga actualizada tecnológicamente y esto se lográ utilizando herramientas para una mejor comunicación interorganizacional y mejor entendimiento con nuestros clientes para ello se requiere que nuestras aplicaciones informáticas cumplan con ese deseable. Por ello, las nuevas técnicas de análisis y desarrollo de sistemas, herramientas de programación y toda la flota de ventajas que Internet deben ser aprovechadas de la mejor manera.

La Web se constituye en el mejor medio de comunicación, así sea en una Intranet Corporativa ya que es mucho más sencillo lograr la difusión de un material por los medios tradicionales. Los datos expuestos se ven enriquecidos notablemente, al contar con enlaces hacia cualquier otro sitio del mundo. Cualquier persona del Planeta puede encontrarlos y tener acceso a ellos. Existe una forma rápida de comunicación entre quien ofrece la información y el visitante. En este sentido, para una organización en donde laboramos debemos combinar las mejores infraestructura de nuestros servidores web y de base de datos con herramientas sólidas para el desarrollo de nuestros componentes de aplicación y manejadores de base de datos de alta robustez.

En nuestra Orgagización Petroleos de Venezuela CRP, adelantamos un proyecto en el cual pretendemos integrar en un sistema Web todos los reportes diarios operacionales del negocio de Refinación (variables de proceso de las plantas de producción, información de inventarios y de movimientos de despacho de hidrocarburos). Esto utilizando para nuestra base de datos un manejador de base de datos robusto como Microsoft SQL*Server o Oracle 9i, herramientas de desarrollo para la aplicación como Java Server Page o Microsoft Asp. En lo adelante explicaremos la metodología a seguir en la evaluación de dichas herramientas.

El porque de este proyecto, se debe al inconveniente que resulta tener varias aplicaciones disgregadas y no integradas para generar los diversos reportes diarios de todas las plantas. Muchos de estos reportes están desarrollados en macros Excel que capturan información de diversas bases de datos operacionales. Nuestro objetivo es construir una única aplicación integrada, amigable, de fácil acceso desde la web y bajo trabajo de mantenimiento.

Para tener claro el alcance de proyecto se partió de la elaboración con los usuarios, mediante entrevistas, de una matriz de requerimientos.
 
 

Situación Actual

Actualmente en PDVSA Complejo Refinador Paraguaná existen diversos reportes de información diaria operacional desarrollados en macros excel que consultan en las Bases de Datos Tiempo Real de nuestra Refinería. A continuación describimos los mismos:
- Reporte Diario del Jefe de Procesos, se muestra información de cargas y producciones de todas las unidades de plantas. Es un resumen de la actividad operacional de la planta.
- Reporte Diario de Suministro, se muestra información de inventarios en tanques, despacho de productos, envío por oleoductos, algunas variables de proceso de plantas, calidades e información de buque-tanques en muelles.
- Reportes Hightlight Mensuales, para todos los complejos de plantas, un resumen de la actividad operacional del complejo durante el mes (variables de procesos y calidades).
- Balances 24 horas, se muestra información del balance de masa de la planta o la unidad.

Estos reportes acceden las bases de datos de los sistemas de: Laboratorio y repositorio de información de procesos de la Refinería. Se instalan “standalone “ en cada uno de los usuarios a quienes les interesa dicha información.
 

Descripción del Sistema Propuesto

La aplicación a desarrollar persigue integar en una sola aplicación con tecnología Web todos los reportes operacionales de resumen diario o mensual de las actividades de la Refinería en una aplicación en la cual se puedan configurar los diversos reportes que a petición del usuario se agregarán en el futuro. El Sistema se asemeja a un Sistema Manejador de Reportes, en el cual desde una pantalla de configuración se ingresaran datos como: título del reports, numero de cuadros a imprimir en la hoja del reporte, emcabezado de cada cuadro, variables a imprimir en cada cuadro y que atributo se imprimirá al lado de cada variable.

La infraestructura propuesta para esta solución es: un servidor de base de datos con Base de Datos Oracle 9i, un servidor web con Microsoft IIS para servir las páginas, en el cliente se instalará como navegados Internet Explorer.

El modelo de datos propuesto es el siguiente:


 

Pantallas que Muestras el Prototipo de la Aplicación


 

Ejemplo de Una Pantalla de Despliegue de Reportes


 

Marco Teórico
 

Bases de Datos en Tiempo Real y su Impotancia

Un Sistema de Datos en Tiempo Rael es aquel en cuya base de datos se actualiza la información de señales de instrumentos de campos (medidores de presión, temperatura, flujo) al instante o en lapsos de tiempo menores a un minuto.

Existen muchos clientes para la información en tiempo real, tanto interno como externos a la empresa. Algunos de estos clientes pueden ser: Operaciones, Ingeniería de Procesos, Control de Procesos, Mantenimiento, Instrumentación, etc.
Si los que toman decisiones a través de la empresa y a lo largo del proceso de refinación no pueden acceder a información precisa en el momento oportuno, su capacidad de tomar decisiones correctas se encuentra seriamente comprometida.

Analisis y Diseño Estructurado y Orientado a Objetos 

Para llevar adelante un proyecto de desarrollo de software se requiere de la participación de un grupo de personas. A cada uno de los grupos o personas se les asigna un rol. Un problema a superar es el de comunicación entre ellos. Igualmente se requiere descomponer el proyecto en fase y aquí entra en juego la definición del ciclo de vida de un proyecto. 

Para solucionar estos dos problemas surge el concepto de metodología. Una metodología es un conjunto de herramientas, modelos, técnicas que permiten definir fases de un proceso de desarrollo y las reglas para pasar de una fase a la siguiente. 

Se pueden encontrar diversas metodologías, desde el análisis y diseño estructurado, hasta la metodología orientada a objetos, para aplicarlas a modelos de desarrollo de software. 
 

Analisis y Diseño Estructurado 

Permite al analista conocer un sistema o proceso (actividad) en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente". 

El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta de una situación dada. 
  

Componentes 

- Símbolos gráficos: sirven para identificar y describir los componentes de un sistema y las relaciones entre estos. 

- Diccionarios de datos: Descripciones de todos los datos utilizados en el sistema pueden ser manual o automatizado. 

- Descripciones de procesos y procedimientos: emplean técnicas y lenguajes que permiten describir actividades del sistema. 

- Reglas: Estándares par describir y documentar el sistema en forma correcta y completa. 
Análisis de flujo de datos: 

Estudia el empleo de los datos en cada actividad, documenta los hallazgos con diagramas de flujo de datos. 

Herramientas 

- Diagrama de flujo de datos: son la herramienta mas importante y la base en donde se desarrolla otros componentes. 

- Diccionario de datos: contienen las características lógicas de los lugares donde se almacenan los datos del sistema, incluyendo nombre, alias, descripción, contenido y organización. 

- Diagrama de estructuras de datos: este es una descripción de la relación entre entidades (personas, lugares, eventos y objetos ) y el conjunto de información relacionado con la entidad. 

- Gráfica de estructura: es la herramienta del diseño que muestra con símbolos la relación entre los módulos de procesamiento y el software de la comp. 
 

Análisis y Diseño Orientado a Objeto 

La Programación Orientada a Objetos, POO (OOP, Object Oriented Programming) es una técnica de programación  cuyo soporte fundamental es el objeto. Un objeto es una extensión de un Tipo Abstracto de Datos (TAD), concepto ampliamente utilizado desde la década de los setenta. Un TAD es un tipo definido por el usuario, que encapsula un conjunto de datos y las operaciones sobre estos datos. 

A la hora de definir TAS’s (u objetos) se usa un concepto que nos ayuda a representar la realiad mediante modelos informáticos, la abstracción, que es un proceso mental por el que se evitan los detalles para centrarse en las cosas más genéricas de manerá que se facilite su comprensión. De hecho la abstracción no sólo se utiliza en la informática, un arquitecto  al que se han encargado realizar los planos de un edificio no comenzará a realizar ciertos esbozos en un papel para posteriormente ir refinando. Por supuesto que cuando está realizando los esbozos no se preocupa de por dónde van a ir las lineas eléctricas ni las tuberías de saneamiento, abstrae esos detalles para atacarlos posteriormente cuando tenga clara la estructura del edificio

Ciclo de Vida 

El Ciclo de Vida del Desarrollo de Sistemas es un proceso por el cual los analistas de sistemas, los ingenieros de software, los programadores y los usuarios finales elaboran sistemas de información y aplicaciones informáticas. 
Objetivos del CICLO DE VIDA de un Proyecto: 
- Definir las actividades a ser ejecutadas en un proyecto de Procesamiento Electrónico de Datos (PED) 
- Introducir coherencia en muchos proyectos de PED de la misma organización 
- Establecer punto de control para control de gerencia y puntos de control para tomar la decisión de "continuar o no".
 

Herramientas de Desarrollo para Aplicaciones Web

1. JSP- Java Server Page 

JSP es una tecnología basada en Java que simplifica el proceso de desarrollo de sitios web dinámicos. Las Java server Pages son ficheros de texto que sustituyen a las páginas HTML tradicionales. Los ficheros JSP contienen etiquetas HTML y código embebido que permite al diseñador de la página web acceder a datos desde código Java que se ejecuta en el servidor. 

JSP se implementa utilizando la tecnología Servlet. Cuando un servidor web recibe una petición de una página .jsp, la redirecciona a un proceso especial dedicado a manejar la ejecución de servlets (servlet container) llamado JSP container.  
   
Beneficios de JSP 
 
Mejoras en el rendimiento: Utilización de hilos Java para el manejo de las peticiones. El contenedor servlet puede ser ejecutado como parte del servidor web. Como podemos tener hilos con el mismo padre podremos compartir recursos con facilidad entre las peticiones.
Soporte de componentes reutilizables: Creación y utilización de JavaBeans del servidor. Los JavaBeans utilizados en páginas .jsp pueden ser utilizados en servlets, applets o aplicaciones Java.
Separación entre la programación y la presentación: Los cambios realizados en el diseño de las páginas no interfieren en la lógica de la programación y viceversa.
Para poder utilizar esta tecnología es necesario un servidor web que soporte a páginas .html y código que implemente un contenedor JSP donde ejecutar las etiquetas JSP. Existen servidores web que incorporan dicha capacidad dentro de su código (Netscape Enterprise y Aplication Server 4.0) así como servidores escritos íntegramente en Java (Java Web Server de Sun y Jigsaw de W3 Consortium) que dan soporte directamente a esta tecnología. 
Jakarta es un proyecto realizado por Apache.org que consiste en una versión especial del conocido servidor web Apache con soporte para JSP.  
 

ASP - Active Server Page 
  

ASP es una tecnología desarrollada por MS para crear páginas web de contenido dinámico apoyándose en scripts ejecutados en el servidor. Básicamente una página ASP es una mezcla entre una página HTML y un programa que da como resultado una página HTML que es enviada al cliente (navegador).
Estos scripts o programas pueden en ASP ser escritos en uno de estos dos lenguajes de programación VBScript o JavaScript, pero el más extendido es VBScript, por eso centraremos todo este manual en VBScript y todas las posibilidades que él tiene. 
 
  

Pero, ¿cúal es la diferencia de ASP.net con el ASP común que conocemos? 

Mucha, realmente es mucha. Mientras ASP se escribía en VBScript, ASP.net puede ser escrito en cualquier lenguaje soportado por el .net Framework, es decir: VB.net; C# y JScript.net. Si, como has leído, ya no puedes utilizar VBScript sino que debes utilizar VB.net que es lo que más se aproxima. Otro cambio radical es que ASP.net es un lenguaje totalmente orientado a objetos. 
 

PHP - Personal Home Page 

El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir que es un lenguaje de programación con variables, sentencias condicionales, bucles, funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas cercano a JavaScript o a C, para aquellos que conocen estos lenguajes. 
Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML. 

Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que sus páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP. 

El lenguaje de programación PHP es actualmente el más utilizado en la creación de sitios web. Su popularidad se debe a su carácter gratuito pero también a su versatilidad, sencillez y fiabilidad, junto con la facilidad para integrarse con la popular base de datos MySQL. 
 

XML- Extensible Markup Language 

XML (eXtended Markup Language) es un lenguaje para la definición de lenguajes de etiquetas, lo que llamaríamos "metalenguaje". XML va a indicar como pueden ser creados otros lenguajes por marcas, define las gramáticas de otros lenguajes. 

Este lenguaje es relativamente joven, eso tendiendo en cuenta que la versión 1.0 es una recomendación del World Wide Web Consortium (W3C)1 de Febrero de 1998. Si bien las ideas no son tan nuevas, ya que XML se apoya en la definición del SGML que es un estandar ISO desde los años 80. 

Como acabo de mencionar, el XML es un subconjunto del lenguaje SGML, el cual también es un metalenguaje. El problema del SGML es que es una definición demasiado extensa, engorrosa y que su uso podría generar lenguajes incompletos en su definición como sucede con el HTML. 

Toda la algarabía en torno de este avance se hizo realidad cuando Microsoft lanzó su Internet Explorer 5 - el primer navegador comercial en apoyar las normas XML.  
 

Conclusiones

Considerando las metodologias de análisis de sistemas estudiadas durante el desarrollo de esta materia, lenguajes de programación existentes para desarrollo de aplicaciones web, los diversos Manejadores de Base de Datos exstentes en el mercado sus características y ventajas y las tecnicas tecnolágicas para desarrollo de aplicaciones que abarquen el total de las operaciones del negocio a soportar en la aplicación, propenemos en proyecto indicado arriba la siguiente metologia para el desarrollo de l proyecto: 

1. Levantamiento de los requerimientos del cliente para dimensionar el proyecto, para lo cual se requiere aplicar las técnicas de análisis de sistemas para recopilar información. 
2. Planificación del proyecto; estimado de costos y mano de obra requerida, elaboración del cronograma del proyecto. 
Dentro del plan del proyecto dependiendo del ciclo de vida seleccionado (cascada, basado en prototipo, etc.) se requiere seleccionar una metodología para el diseño y posterior desarrollo del sistema. 
3. Desarrollo de modelaje de la infraestructura requerida (servidor web, servidor de base de datos, servidor de aplicaciones). 
4. Desarrollo del modelo para dibujar las especificaciones formales del sistema: 
- Modelo de la presentación del sistema.
- Modelo del comportamiento y lógica del negocio del sistema. 
5. Selección de las herramientas para el desarrollo del sistema (despliegues), base de datos, herramientas “browser”, servidor web). 
Dentro de su presupuesto y en las actividades de planificación del proyecto, se tiene que considerar los siguientes elementos: dominio, alojamiento (hosting), planificación y diseño de la web, marketing de buscadores y otras acciones de marketing. 
 

Planificación y Diseño del Sistema

El coste de estos servicios será variable en función de la complejidad del proyecto, número de personas que deben trabajar en él, tiempo del que se dispone, programación, idiomas, redacción de textos ,etc. Estos costos pueden ir desde 1.200 a 60.000€ (1,000- 50,000$). 

Una vez la web esté funcionando, la empresa tendrá destinar también un dinero para su mantenimiento que dependerá del número y complejidad de las actualizaciones previstas o bien facilitar formación específica en la organización para responsabilizarse de estas tareas. 
 

Fase de Contrucción del Sistema

Seleccionamos como Manejador de Base de Datos a Oracle 9i, por las siguientes razones:
- Un gran número de usuarios conectandose simultaneamente a la aplicacióm, estimamos mas de 100 usuarios
- Robuztez en la base de datos
- Experticia de nuestros análistas en esta base de datos y contrato de soporte esxistente

Se seleccionó como herramienta de desarrollo para la aplicación Microsoft ASP.NET por las siguientes razones:
- De cualquier manera ASP ofrece una mejor integración con nuetro ambiente (infraestructura SUN Unix, Servidor IIS).
- Rendimiento: la aplicación de compila en una sola vez al lenguaje nativo, y luego, en cada petición tiene una compilación Just In Time, es decir se compila desde el código nativo, lo que permite mucho mejor rendimiento. También permite el almacenamiento del caché en el servidor   
- Rapidez en programación: mediante diversos controles, podemos con unas pocas líneas y en menos de 5 minutos mostrar toda una base de datos y hacer rutinas complejas.   
- Servicios Web: trae herramientas para compartir datos e información entre distintos sitios.   
- Seguridad: tiene diversas herramientas que garantizan la seguridad de nuestras aplicaciones.   
 

Anexos

A. Matriz de Requerimientos

Infografia

La página el rincon del programador describe a JSP como una tecnología basada en Java y se describen los beneficios del JSP. 

La página desarrollo Web realiza una comparación de las ventajas de JSP contra ASP 

Algunas ventajas de JSP y ejemplo de código JSP 


Se describe que es ASP.NET y se dan algunas diferencias con el ASP tradicional 3.0 

Conceptos básicos de ASP

Conceptos básicos de PHP

Se hace una introducción a PHP y se describe una página HTML con el código PHP por dentro 

Página donde se hace una introducción teórica a PHP 


Se define al XML como un lenguaje de etiquetas , se hablan de sus ventajas y se muestran documentos XML 


Se describe en forma de defición el CML y HTML