UNIVERSIDAD ALAS PERUANASFACULTAD DE INGENIERÍAS Y ARQUITECTURA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
PROYECTO DE SISTEMAS DE INFORMACIÓN II
PROTOTIPO DE UNA HERRAMIENTA PARA
INTEROPERATIVIDAD DE SISTEMAS HETEROGÉNEOS,
UTILIZANDO UNA PLATAFORMA WEB
PRESENTADO POR EL ALUMNO
MICHAEL PINEDA ARRATIA
DOCENTE
Ing. Jose Ayala Pineda
AREQUIPA - PERÚ
2006
1
INTRODUCCIÓN
Las empresarios empezaron a tener una creciente necesidad de contar con
sistemas de información, para poder dar solución a los problemas que se
presentaban al interior de sus empresas, es así que empezaron a adquirir
sistemas de información, sin tomar en cuenta que estaban creando una red de
sistemas incompatibles entre si. Generando lo que hoy se conoce como sistemas
heterogéneos, sistemas que no pueden comunicarse, interactuar ni trabajar entre
si, dando origen a un nuevo problema para las empresas, la
INTEROPERATIVIDAD DE SISTEMAS HETEROGENEOS.
En el presente Proyecto de sistemas de Información, se propone dar una posible
solución a aquel problema de Interoperatividad, creando una herramienta que sea
capaz de poder comunicar dos diferentes plataformas, sistemas, bases de datos;
para poder tener una única información integrada, que sea útil para las personas
que tiene las obligación de tomar una decisión en sus labores cotidianas.
2
CAPÍTULO I
PLANTEAMIENTO DEL PROBLEMA
1.1Descripción de la Realidad Problemática
Las empresas actualmente cuentan con una serie de sistemas que fueron
adquiriendo conforme crecían sus necesidades, es así que cada sistema
brinda cierta información específica. Las empresas empiezan a necesitar
que su información este agrupada, para poder contar con información de
diferentes sistemas y que por lo tanto esta sirva como fuente de apoyo y
consulta a la hora de tomar decisiones.
El problema que presentan es no poder juntar la información que se
encuentran en diferentes sistemas, bases de datos, plataformas, etc. Y
por lo tanto incurren en tiempo y dinero en tratar de reunir la información,
para que esta sea fuente de decisiones.
1.2Delimitaciones y Definición del Problema
1.2.1 Delimitaciones:
A. Delimitación Espacial.
Mi campo para la elaboración de mi prototipo es una empresa
que cuenta con sistemas en plataformas AS400, Linux y
Windows.
B. Delimitación Temporal.
Primera fase.
Tendrá un tiempo de duración de 4 meses, desde el mes de
Agosto del 2005 al mes de Diciembre del 2005.
3
C. Delimitación social.
Dentro de la limitación social del presente proyecto, esta
orientado a la parte gerencial, estratégica de la empresa. El
desarrollo de este prototipo es una solución a la limitación de los
gerentes acerca de comprar o desarrollar una tecnología que
realice una homogenización de plataformas por su alto costo y
por lo tanto existe un rechazo a las nuevas tecnologías
D. Delimitación conceptual.
Interoperatividad
Capacidad de los programas de ordenador para intercambiar
información y utilizar mutuamente la información así
intercambiada
1.2.2 Definición del Problema
El problema que se presenta en las empresas que empezaron a
desarrollar o comprar software, es que tienen sus sistemas en
diferentes plataformas, y a su vez en diversos entornos de desarrollo
(Lenguajes de programación), impidiendo que se pueda tener una
comunicación entre ellas, además que la información útil, se
encuentra ubicada en distintos sistemas transaccionales; bases de
datos, sistemas de ficheros, etc, no pudiéndose ser utilizada en
conjunto o en un momento que así se requiera.
En un caso especial, en una empresa dedicada al rubro textil que
cuenta con sistemas de información en diferentes plataformas, y que
se requiere una integración de datos para poder generar información
a un nivel estratégico para la empresa
4
1.3Formulación del Problema.
1.3.1 Problema principal.
El contar con sistemas diversificados por factores como plataformas
y entornos de desarrollo heterogéneos, hace perder la integridad de
la información que maneja la empresa, lo cual redunda en una
evaluación tediosa e individualizada por las áreas que enfoca cada
aplicativo.
1.4Objetivo de la Investigación
1.4.1 Objetivo Principal
Generar una aplicación en plataforma web, que resuelva el problema
de interacción de la información, por interoperatividad.
1.4.2 Objetivos Específicos
A. Obtener una mejor estructura de información, que permita una
mejor usabilidad de la información por un entorno amigable y fácil
de entender.
B. Optimización de tiempo de acceso a la información por parte del
usuario, obteniendo una mejora en la producción.
C. Desarrollar un modelo de integración de información.
D. Desarrollar un componente (Middelware) utilizando tecnología
web, que logre la Interoperatividad de sistemas heterogéneos.
1.5Hipótesis de la investigación.
La interoperatividad de sistemas heterogéneos es posible ser solucionado
con la tecnología Web, logrando una plataforma homogénea y obteniendo
una herramienta integradora de información que sea de soporte para la
toma de decisiones.
5
1.6Variables e Indicadores
1.6.1 Variable Dependientes e Independientes
Variables Dependientes Variables IndependientesVD 1.Estructura de información VI 1.Mantenibilidad
VD 2.Producción VI 2.TiempoVI 3.Eficiencia
VD 3.Modelo de integración de información
VI 4.Calidad de usoVI 5.ConfiabilidadVI 6.Usabilidad
VD 4.Componente Middleware VI 7.Comunicación de datosVI 8.Actualización de datosVI 9.Facilidad de OperaciónVI 10.Seguridad, privacidad,
auditibilidad.
Cuadro Nº1. Variables Dependientes e Independientes
1.6.2 Indicadores Según Variables Dependientes e Independientes
VD 1.Estructura de información
VI 1.Mantenibilidad
Características Puntuación Capacidad de ser
analizado 4Estabilidad 3Reparabilidad 3
Tipo de medición: Nominal por descripción por mantenibilidad
Cálculo de Valor: promedio por mantenibilidad
6
VD 2.Producción
VI 2.Tiempo (Tiempo de respuesta- segundos)
Descripción Puntuación2 – 4 105 – 7 68 – 10 4
11 – mas 1
Tipo de medición: Por intervaloCálculo de Valor: promedio por tiempo de respuesta
VI 3.Eficiencia
Descripción PuntuaciónComportamiento temporal 5Conformidad de eficiencia 5
Tipo de medición: nominal por descripción de eficienciaCálculo de Valor: promedio por eficiencia
VD 3.Modelo de integración de información
VI 4.Calidad de uso
Descripción PuntuaciónEficacia 2.5Productividad 2.5Seguridad 2.5Satisfacción 2.5
Tipo de medición: nominal por descripción por calidad de uso
Cálculo de Valor: promedio por calidad de uso
VI 5.Confiabilidad
Descripción PuntuaciónDisponibilidad 2.5Fiabilidad 2.5Seguridad 2.5Protección 2.5
7
Tipo de medición: nominal por descripción por confiabilidad
Cálculo de Valor: promedio por confiabilidad
VI 6.Usabilidad
Descripción PuntuaciónEntendimiento 2.5Operabilidad 2.5Atracción 2.5Conformidad de uso 2.5
Tipo de medición: Nominal por descripción por usabilidad
Cálculo de Valor: Promedio por usabilidad
VD 4.Componente Middleware
VI 7.Comunicación de datos
Descripción PuntuaciónEstablece comunicación 5No establece comunicación 5
Tipo de medición: Por intervaloCálculo de Valor: Promedio por comunicación de datos
VI 8.Actualización de datos
Descripción PuntuaciónActualización En línea de ficheros de
control. 5 Actualización En línea de ficheros
importantes internos. 5
Tipo de medición: Por intervaloCálculo de Valor: promedio por actualización de datos
VI 9.Facilidad de Operación
8
Descripción PuntuaciónMuy fácil 10Fácil 8 Complejo 6
Tipo de medición: por intervaloCálculo de Valor: promedio por facilidad de operación
VI 10.Seguridad, privacidad, auditibilidad
Descripción PuntuaciónPrivacidad 3Auditibilidad 4 Prevencion de perdidas 1Encriptacion 2
Tipo de medición: nominal por descripción por Seguridad, privacidad, auditibilidadCálculo de Valor: promedio por Seguridad, privacidad, auditibilidad
1.7Viabilidad de la investigación.
1.7.1 Viabilidad técnica
En la parte del Hardware se cuenta con:
- Una computadora Pentium IV con un Procesador de 2.4 Ghz.,
Memoria 256 Mb.
En la parte del Software se cuenta con:
- Linux: Tomcat, a demás de Windows XP Profesional
- Lenguajes de desarrollo: Java
- Windows XP.
- Base de Datos Postgres y DB2
1.7.2 Viabilidad operativa.
9
Conocimiento intermedio en análisis y diseños de sistemas,
conocimientos en programación básica en php, asp y en inicios de
aprendizaje del lenguaje java script. Además del asesoramiento
metodológico del Msc. Ing. José Ayala y asesoramiento técnico del
Msc. Ing. José Ayala Pineda e Ing. Alfredo Saire
1.7.3 Viabilidad económica.
Los costos de la realización del prototipo serán asumidos por el autor
del proyecto
1.8Justificación e Importancia de la Investigación.
1.8.1 Justificación:
La realización de este proyecto de información es que se pueda
utilizar la tecnología Web para dar solución a diferentes problemas
de interoperatividad de sistemas heterogéneos, aprovechando la
tecnología Web.
Dado que las empresas necesitan de información integrada y
adecuada, que se fundamenta en sus decisiones y rumbos de la
empresa, es que se requiere de un medio (Sistema) que permita
darles lo que ellos necesitan, pero que no les implique altos costos
en su integración, es así que se pretende lograr esa integración con
tecnología que ya existe y que se convierte en un estándar, a un
mínimo costo para la empresa y que le traerá grandes beneficios.
1.8.2 Importancia.
10
Tener buena información que se exacta y confiable es lo que hace
que las empresas tomen buenas decisiones, y las empresas que no
logran llegar a ese nivel son consumidas por la competencia.
A demás una empresa tiene que estar apoyado por TI y SI para el
buen desarrollo empresarial, y si se obtiene TI/SI de bajo coste y
grandes resultados, los beneficios serian realmente importante por
que se estará adelantando a la competencia al menos en soporte
tecnológico.
1.9Limitaciones de la Investigación
1.9.1 Limitaciones del tema de investigación.-
No se cuenta con mucha información relevante al tema, lo cual se
suplirá con el asesoramiento técnico, así como la investigación
bibliográfica. La presente investigación esta dirigido a desarrollar
una herramienta que integre sistemas, plataformas que acepte
tecnología Web, como es el caso de la empresa textil en mención.
1.9.2 Limitaciones del Investigador.-
Poca experiencia práctica en la programación de aplicaciones Web.
1.10Tipo y Nivel de la Investigación
1.10.1 Tipo de investigación.
Aplicada
1.10.2 Nivel de investigación.
11
Correlacional
1.11Método y Diseño de la investigación
1.11.1 Método de la investigación.
Métricas Versión 3
1.11.2 Diseño de la investigación.
Experimental
1.12Técnicas e Instrumentos de Recolección de Información
1.12.1 Técnicas.
- Análisis Documental
- Entrevista
1.12.2 Instrumentos.
- Guías de entrevista
- Fichas (resumen, acotaciones, anotaciones)
1.13Cobertura de Estudio
1.13.1 Universo.
Todas las empresas que cuenten con sistemas heterogéneos (AS
400, Linux, Windows, Solaris, Netware, Mac, etc)
1.13.2 Muestra
12
1.14Cronograma y Presupuesto:
1.14.1 Cronograma. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
PSI
EVS
ASI
DSI
CSI
IAS
OBJ.
A
B
C
D
Cuadro N°2 Cronograma
Leyenda
PSI PLANIFICACION DE SISTEMA DE INFORMACIONEVS ESTUDIO DE VIABILIDAD DEL SISTEMAASI ANALISIS DE SISTEMA DE INFORMACIONDSI DISEÑO DE SISTEMA DE INFORMACIONCSI COSNTRUCCION DE SISTEMA DE INFOAMCIONIAS IMPLANTACION Y ACEPATACION DEL SISTEMA
14
1.14.2 Presupuesto.
Capital Propio
Recursos Financiados
Recursos Autogenerados
ACTIVIDAD Total
PLANIFICACION DE SISTEMA DE INFORMACION 1206 1206
ESTUDIO DE VIABILIDAD DEL SISTEMA 531 531
ANALISIS DE SISTEMA DE INFORMACION 279 279
DISEÑO DE SISTEMA DE INFORMACION 873 873
COSTRUCCION DE SISTEMA DE INFORMACION 738 738
IMPLANTACION Y ACEPATACION DEL SISTEMA 513 513
Cuadro N° 3 Presupuesto
Cuadro N° 4 Analisis VAN TIR
15
CAPÍTULO II
MARCO TEÓRICO
2.1 Antecedentes de la Investigación
2.1.1 Jaber
Jabber es un protocolo abierto basado en el estándar XML para el
intercambio en tiempo real de mensajes y presencia entre dos puntos
en Internet. La principal aplicación de la tecnología Jabber es una
extensible plataforma de mensajería y una red de MI (Mensajería
Instantánea) que ofrece una funcionalidad similar a la de otros
sistemas como AIM, ICQ, MSN Messenger y Yahoo.
Jabber destaca porque es distinto:
o Es abierto, el protocolo de Jabber es gratuito, abierto, público
y comprensible. Además, existen múltiples implementaciones
de código abierto para Servidores Jabber (consulta la lista de
servidores públicos) como numerosos clientes y librerías de
desarrollo.
o Es extensible, usando el potencial del lenguaje XML,
cualquiera puede extender el protocolo de Jabber para una
funcionalidad personalizada. Claro que para mantener la
interoperatibilidad, las extensiones comunes son controladas
por la Jabber Software Foundation.
o Es descentralizado, cualquiera puede montar su propio
servidor de Jabber, además está libre de patentes y no
depende de ninguna empresa de modo que se puede usar
ahora y siempre con total libertad.
o Es seguro, cualquier servidor de Jabber puede ser aislado de
la red pública Jabber, cualquier implementación del servidor
16
usa SSL para las comunicaciones cliente-servidor y
numerosos clientes soportan PGP-GPG para encriptar las
comunicaciones de cliente a cliente. Además, está en
desarrollo una seguridad más robusta gracias al uso de SASL
y contraseñas de sesión.
Jabber puede crear confusión en un principio respecto a otros
sistemas de mensajería instantánea porque habitualmente, en otros
IM, se identifica el cliente con el protocolo. En el caso de Jabber esto
no es así: existe un protocolo y cada uno de los clientes es una
implementación.
2.1.2 Samba
Samba es una suite de aplicaciones GNU/Linux (o Unix) que habla el
protocolo SMB (Server Message Block). Muchos sistemas
operativos, incluídos Windows y OS/2, usan SMB para operaciones
de red cliente-servidor. Mediante el soporte de este protocolo, Samba
permite a los servidores Unix entrar en acción, comunicando con el
mismo protocolo de red que los productos de Microsoft Windows. De
este modo, una máquina Unix con Samba puede enmascararse
como servidor en tu red Microsoft y ofrecer los siguientes servicios:
• Compartir uno o más sistemas de archivos.
• Compartir impresoras, instaladas tanto en el servidor como en los
clientes.
• Ayudar a los clientes, con visualizador de Clientes de Red.
• Autentificar clientes logeándose contra un dominio Windows.
• Proporcionar o asistir con un servidor de resolución de nombres
WINS.
17
Samba es la idea de Andrew Tridgell, quien actualmente lidera el
equipo de desarrollo de Samba development desde su casa de
Canberra, Australia. El proyecto nació en 1991.
2.2 Marco Histórico.
2.2.1.Workflow
El Flujo de trabajo (workflow en inglés) es el estudio de los aspectos
operacionales de una actividad de trabajo: cómo se estructuran las
tareas, cómo se realizan, cuál es su orden correlativo, cómo se
sincronizan, cómo fluye la información que soporta las tareas y cómo
se le hace seguimiento al cumplimiento de las tareas. Generalmente
los problemas de flujo de trabajo se modelan con redes de Petri.
Si bien el concepto de flujo de trabajo no es específico a la
tecnología de la información, una parte esencial del software para
trabajo colaborativo (groupware) es justamente el flujo de trabajo.
2.2.2.Sistemas de workflow
El propósito de los sistemas de workflow es acercar personas,
procesos y máquinas, con el objeto de reducir tiempo y acelerar la
realización de un trabajo. Estos sistemas permiten trabajar en equipo
desde diferentes lugares físicos.
Los sistemas de workflow facilitan la automatización de los flujos de
trabajo entre procesos y permiten integrar los procesos de la
empresa, rediseñados de acuerdo con ayuda de nuevas estrategias.
2.2.3.Business Process Management
18
Disciplina empresarial cuyo objetivo es mejorar la eficiencia a través
de la gestión sistemática de los procesos de negocio (BPR), que se
deben modelar, automatizar, integrar, monitorizar y optimizar de
forma continua.
Básicamente son servicios y herramientas que soportan la
administración explicita de procesos: análisis, definición, ejecución y
monitorización, etc.
Existen diversos motores que mueven la gestión de Procesos de
Negocio (BPM), dichos motores son:
• Extensión del programa institucional de calidad
• Cumplimiento de legislaciones
• Crear nuevos y mejores procesos
• Entender que se está haciendo bien o mal a través de la
compresión de los procesos
• Documentar procesos para outsourcing y definición de SLA
(Service Level Agreement)
• Automatización de procesos
• Crear y mantener las cadenas de valor
2.2.4.JDBC
La conectividad de la base de datos de Java (JDBC , Java Database
Connectivity) es un marco de programación para los desarrolladores
de Java que escriben los programas que tienen acceso a la
información guardada en bases de datos, hojas de calculo, y archivos
"planos". JDBC se utiliza comúnmente para conectar un programa
del usuario con una base de datos por “detrás de la escena”, sin
importar qué software de administración o manejo de base de datos
se utilice para controlarlo. De esta manera, JDBC es una plataforma-
cruzada . Este artículo proporcionará un código de introducción que
19
demuestra el acceso a la base de datos de los programas de Java
que utilizan las clases JDBC API, que está disponible para la
transferencia directa libre del sitio de Sun.
Una base de datos que conecta con otros programas se llama fuente
de datos. Muchas fuentes de datos, incluyendo los productos
producidos por Microsoft y Oracle, utilizan ya un estándar llamado
conectividad abierta de la base de datos” (ODBC, Open Database
Connectivity). Mucho de la herencia en la programación en C y de los
programas del Perl utilizan ODBC para conectar con las fuentes de
datos. El ODBC consolidó mucha de la concordancia entre los
sistemas de administración de base de datos. Las estructuras de
JDBC están construidos en esta característica, e incrementa el nivel
de abstracción. Los puentes de JDBC-ODBC se han creado para
permitir que los programas de Java conecten con el software
compatible ODBC de la base de datos.
2.3 Marco Conceptual
2.3.1.Midleware Convencional
Las tecnologías middleware son herramientas para abordar la
interacción entre aplicaciones distribuidas y heterogeneas. Se
presentan las tecnologías de integración de aplicaciones como un
concepto distinto, aunque relacionado con las tecnologías
middleware.
Workflow management Systems (WFMs) para de hacer explícita la
lógica de integración. Los broker de mensajes ocultan la
heterogeneidad y los aspectos de distribución y los WFMSs facilitan
la gestión y mantenimiento de la lógica de integración Finalmente se
20
presentan las tecnologías básicas que permiten integrar aplicaciones
en la Web.
2.3.2.Sistemas de Gestión Sistemas de Gestión Workflow Workflow (WfMS)
Un sistema que define, crea y gestiona automáticamente la ejecución
de modelos workflow mediante el uso de uno o más motores
workflow que se encargan de interpretar la definición de
procesos(mapa workflow), interactuaron los agentes y, cuando se
requiera, invocar el uso de los sistemas de información implicados en
el trabajo
Estándares Workflow
• Tendencias iniciales (procesos y API)
• Tendencias presentes (objetos)
o WfMC(Workflow Management Coalition)
o WARIA (Workflow & Reingineering International Asociation)
o OMG(Object Management Group)
• Ultimas tendencias
o Desarrollo de Ontologias
o XML –RDF
o Introducción a los métodos formales
2.3.3.Sistema Heterogéneo
Son aquellos elementos que cuentan con características físicas y
operativas distintas entre si, pero cuentan con medios comunes que
le permiten comunicarse e interactuar entre si.
2.3.4.Plataforma de heterogeneidad
21
La heterogeneidad de basa en gran numero de dispositivos y medio
conectados, como software de comunicación y sistemas operativos
disponibles en una red que no posea una base homogénea.
Pero la forma de comunicarse de un sistema heterogéneo que tiene
HW y SW distinto, es por medios comunes (estándares) para su
comunicación e interacción
2.3.5.Tomcat (también llamado Jakarta Tomcat o Apache Tomcat).
Funciona como un contenedor de servlets desarrollado bajo el
proyecto Jakarta en la Apache Software Foundation. Tomcat
implementa las especificaciones de los servlets y de JavaServer
Pages (JSP) de Sun Microsystems. Se le considera un servidor de
aplicaciones.
2.3.6.METRICAS VERSION 3
A. Planificación de Sistemas de Información (PSI)
El objetivo de un Plan de Sistemas de Información es proporcionar
un marco estratégico de referencia para los Sistemas de Información
de un determinado ámbito de la Organización. El resultado del Plan
de Sistemas debe, por tanto, orientar las actuaciones en materia de
desarrollo de Sistemas de Información con el objetivo básico de
apoyar la estrategia corporativa, elaborando una arquitectura de
información y un plan de proyectos informáticos para dar apoyo a los
objetivos estratégicos. Por este motivo es necesario un proceso
como el de Planificación de Sistemas de Información, en el que
participen, por un lado los responsables de los procesos de la
organización con una visión estratégica y por otro, los profesionales
de SI capaces de enriquecer dicha visión con la aportación de
ventajas competitivas por medio de los sistemas y tecnologías de la
información y comunicaciones.
22
B. Desarrollo de Sistemas de Información
El proceso de Desarrollo de MÉTRICA Versión 3 contiene todas las
actividades y tareas que se deben llevar a cabo para desarrollar un
sistema, cubriendo desde el análisis de requisitos hasta la instalación
del software. Además de las tareas relativas al análisis, incluye dos
partes en el diseño de sistemas: arquitectónico y detallado. También
cubre las pruebas unitarias y de integración del sistema. En
MÉTRICA Versión 3 se han abordado los dos tipos de desarrollo:
estructurado y orientado a objeto, por lo que ha sido necesario
establecer actividades específicas a realizar en alguno de los
procesos cuando se utiliza la tecnología de orientación a objetos.
Para este último caso se ha analizado alguna de las propuestas de
otras metodologías orientadas a objetos y se han tenido en cuenta la
mayoría de las técnicas que contempla UML 1.2 (Unified Modeling
Language).
El desarrollo en MÉTRICA Versión 3 lo constituyen los procesos:
a. ESTUDIO DE VIABILIDAD DEL SISTEMA (EVS).
El propósito de este proceso es analizar un conjunto concreto de
necesidades, con la idea de proponer una solución a corto plazo. Los
criterios con los que se hace esta propuesta no serán estratégicos
sino tácticos y relacionados con aspectos económicos, técnicos,
legales y operativos. Los resultados del Estudio de Viabilidad del
Sistema constituirán la base para tomar la decisión de seguir
adelante o abandonar. Si se decide seguir adelante pueden surgir
uno o varios proyectos que afecten a uno o varios sistemas de
información. Dichos sistemas se desarrollarán según el resultado
obtenido en el estudio de viabilidad y teniendo en cuenta la cartera
de proyectos para la estrategia de implantación del sistema global.
23
b. ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI).
El propósito de este proceso es conseguir la especificación detallada
del sistema de información, a través de un catálogo de requisitos y
una serie de modelos que cubran las necesidades de información de
los usuarios para los que se desarrollará el sistema de información y
que serán la entrada para el proceso de Diseño del Sistema de
Información.
Como ya se ha dicho MÉTRICA Versión 3 cubre tanto desarrollos
estructurados como orientados a objetos, y las actividades de ambas
aproximaciones están integradas en una estructura común aunque
presenta alguna actividad exclusiva para cada tipo de desarrollo.
c. DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI).
El propósito del Diseño del Sistema de Información (DSI) es obtener
la definición de la arquitectura del sistema y del entorno tecnológico
que le va a dar soporte, junto con la especificación detallada de los
componentes del sistema de información. A partir de dicha
información, se generan todas las especificaciones de construcción
relativas al propio sistema, así como la especificación técnica del
plan de pruebas, la definición de los requisitos de implantación y el
diseño de los procedimientos de migración y carga inicial, éstos
últimos cuando proceda. El diseño de la arquitectura del sistema
dependerá en gran medida de las características de la instalación, de
modo que se ha de tener en cuenta una participación activa de los
responsables de Sistemas y Explotación de las Organizaciones para
las que se desarrolla el sistema de información.
d. CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI).
La construcción del Sistema de Información (CSI) tiene como objetivo
final la construcción y prueba de los distintos componentes del
sistema de información, a partir del conjunto de especificaciones
24
lógicas y físicas del mismo, obtenido en el Proceso de Diseño del
Sistema de Información (DSI). Se desarrollan los procedimientos de
operación y seguridad y se elaboran los manuales de usuario final y
de explotación, estos últimos cuando proceda. Para conseguir dicho
objetivo, se recoge la información relativa al producto del diseño
Especificaciones de construcción del sistema de información, se
prepara el entorno de construcción, se genera el código de cada uno
de los componentes del sistema de información y se van realizando,
a medida que se vaya finalizando la construcción, las pruebas
unitarias de cada uno de ellos y las de integración entre subsistemas.
e. IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (IAS).
Este proceso tiene como objetivo principal, la entrega y aceptación
del sistema en su totalidad, que puede comprender varios sistemas
de información desarrollados de manera independiente, según se
haya establecido en el proceso de Estudio de Viabilidad del Sistema
(EVS), y un segundo objetivo que es llevar a cabo las actividades
oportunas para el paso a producción del sistema. Se establece el
plan de implantación, una vez revisada la estrategia de implantación
y se detalla el equipo que lo realizará. Para el inicio de este proceso
se toman como punto de partida los componentes del sistema
probados de forma unitaria e integrados en el proceso Construcción
del Sistema de Información (CSI), así como la documentación
asociada. El Sistema se someterá a las Pruebas de Implantación con
la participación del usuario de operación cuya responsabilidad, entre
otros aspectos, es comprobar el comportamiento del sistema bajo las
condiciones más extremas. También se someterá a las Pruebas de
Aceptación cuya ejecución es responsabilidad del usuario final.
C. Mantenimiento de Sistemas de Información (MSI)
25
El objetivo de este proceso es la obtención de una nueva versión de
un sistema de información desarrollado con MÉTRICA, a partir de las
peticiones de mantenimiento que los usuarios realizan con motivo de
un problema detectado en el sistema o por la necesidad de una
mejora del mismo. Como consecuencia de esto, sólo se considerarán
en MÉTRICA Versión 3 los tipos de Mantenimiento Correctivo y
Evolutivo. Se excluyen los tipos de Mantenimiento Adaptativo y
Perfectivo, que abarcan actividades tales como la migración y la
retirada de software que precisarían el desarrollo de un tipo de
metodología específica para resolver su cometido. Ante una petición
de cambio de un sistema de información ya en producción, se realiza
un registro de las peticiones, se diagnostica el tipo de mantenimiento
y se decide si se le da respuesta o no, en función del plan de
mantenimiento asociado al sistema afectado por la petición, y se
establece con qué prioridad.
26
CAPÍTULO III
CONSTRUCCION DE LA HERRAMIENTA
3.1 Generalidades
El prototipo que se construye trata de probar que usando tecnología Web ya
existente se puede crear una herramienta intermediaria, denominado
Middleware, y sirva como una plataforma única de comunicación y que los
sistemas que se encuentran en diferentes plataformas denominados,
“sistemas heterogéneos”, puedan formar parte de una unica plataforma
tecnológica, de tal manera el prototipo pueda hacer interactuar los sistemas
de información, bases de datos, de las empresas como si fuesen uno solo,
ahorrando dinero, tiempo y recursos de las empresas.
Para el presente trabajo se utilizara deiferentes herramientas que nos
permitan construir el prototipo.
Lenguaje de Modelamiento Unificado (UML).
Herramienta “Racional Rose 2000”
J2SE Runtime Enviroment – Java
Apache – Tomcat 5.5.16
3.2 Estudios de Factibilidad
3.2.1 Factibilidad técnica
- Contar con una Computadora con todas las configuraciones y
herramientas necesarias para el desarrollo de la aplicación.
- El SW de desarrollo en este caos es Java
- Contar con la herramienta CASE que soporte METRICAS
VERSION 3.
3.2.2 Factibilidad operativa
27
La factibilidad operativa esta garantizada, por que en la actualidad
muchas empresas no cuentan con un software que solucione estos
problemas, además que cuentan con personal que esta familiarizada
con herramientas computacionales evitando así, su rechazo al uso
de la presente herramienta. El sistema propuesto se ajusta a los
requerimientos propuestos por el (los) usuarios, y para mayor
garantía del uso del sistema en mención se realizará una
capacitación para el personal destinado al uso de la herramienta.
3.2.3 Factibilidad económica
Para una mejor explicaron de la factibilidad económica, será dividida
en tres etapas como nos especifica la metodología de METRICAS
VERSION 3.
A. FASE DE ANALISIS
Para un mejor entendimiento se mostrara un cuadro de gastos.
g
B. FASE DE DISEÑO
Para un mejor entendimiento se mostrara un cuadro de gastos.
28
C. FASE DE CONSTRUCCION
Para un mejor entendimiento se mostrara un cuadro de gastos.
3.3 Análisis del Sistema
3.3.1 Requerimientos del Sistema.
A. Requisitos Funcionales
29
Los requisitos funcionales especifican que es lo que el usuario
quiere que el sistema haga para el.
B. Requisitos no Funcionales
Tener Instalado el jdk-1_5_0_01JDK
apache-tomcat-5.5.16
3.4 Diseño de la Herramienta
3.4.1 Diagrama de Contexto
A. Diagrama de Caso de Uso Genérico
30
Grafico N° 1. Diagrama Caso de uso Genérico
Caso de Uso Validar UsuarioCDU-001
Actores Usuario
ResumenVerificar que el usuario tenga los acceso respectivos
Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales
Actor Sistema1. El usuario se valida 2. Realiza la búsqueda de
usuario3. Llena usuario y contraseña 4. Devuelve Conformidad de
validación 5. Ingresa al prototipo
Flujos Alternativos :4. En caso de no ser el usuario o clave correcta, el sistema no dará el acceso debido
Caso de Uso Conectar BDCDU-002
ActoresUsuario y Sistema Heterogeneo
Resumen
Generan el acceso a las Bases de Datos correspondientes
Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales
Actor Sistema1. El usuario genera la petición de conexión2. El sistema heterogéneo genera las reglas de negocio
3. Realiza la conexión4. Realiza la petición generada
Incluye: JDBCEs un modelo que permite al sistema realizar instancia hacia las bases de datos correspondientes
31
Caso de Uso Visualizar SelecciónCDU-003
Actores Usuario
ResumenVerificación de que los resultados sena los esperados
Tipo PrimarioReferenciaReferencias CruzadasFlujos Normales
Actor Sistema1. El usuario comprueba la selección de la petición
2. Visualiza la petición
Extend: ImprimirSi el usuario lo desea puede imprimir los resultados
Extend: Modificar GuardarPodrá modificar la selección realizada u operación Flujos Alternativos :1. En caso de no ser los resultados esperados cancela la operación.
32
B.
C.
Grafico N° 2. Diagrama Caso de uso: Conectar BD
Caso de Uso cDatosCDU-004
Actores Sistema Heterogéneo
ResumenMuestra la conexión a las bases de datos
Referencia CDU 002Flujos Normales
Actor Sistema1. El sistema le manda un parámetro de nominado “Tipo” donde indica el driver, url, user y password del sistema y la base de datos a conectar
2. decepcionar el parámetro “tipo” y procesar la petición hacia que base de datos debe conectarse
Incluye: JDBCEl JDBC verifica que el driver coincida con la base de datos que se desea conectar.Include: ConfigAquí realiza la configuración de todas las bases existente para el prototipo, con los parámetros Driver, URL, user, pasw Flujos Alternativos :1. En caso de que el parámetro tipo no sea el adecuado no podrá hacer ninguna conexión
33
B. Diagrama de Actividades
1. Validar Usuario
Grafico N°3 Diagrama de actividades: Validar Usuario
2. Conectar Base de datos
Grafico N°4 Diagrama de actividades: Conectar BD
34
D. Diagrama de Estados
1. cUsuarios
Grafico N°6 Diagrama de Estados: cUsuarios
2. cNegocio
Grafico N°7 Diagrama de Estados: cNegocio
36
2. Conectar Base de Datos
Grafico N°10 Diagrama de Secuencia: Conectar Base de datos
F. Diagrama de Colaboración
1. Verificar Usuario.
39
G. Diagrama de Componentes
Grafico N°13 Diagrama de Componenetes
H. Diagrama de Despliegue
Grafico N°14 Diagrama de Despliegue
42
3.4.2 Diseño de Pantallas
LISTADO
Imagen N°1 Listado
Listado de Requisiciones
Imagen N° 2 Articulos
43
NUEVA REQUISICION
Imagen N° 3 Nueva requisicion
INGRESO DE NUEVO REGISTRO
Imagen N° 4 ingreso de Nuevo registro
44
3.5 Codificación
CLASES
CAPA DE DATOS
Clase “cDatos”
package datos;
import java.util.*; import java.io.BufferedReader;import java.io.FileReader;import java.sql.*;
public class cDatos { private String driver = ""; private String url = ""; private String user = ""; private String pasw = ""; private Connection db;
public cDatos(String tipo) { readConfig( tipo );
}
public void openConnection() { try{ Class.forName(driver); this.db = DriverManager.getConnection( url, user, pasw ); }catch(Exception e){ e.printStackTrace(); } } // cierra la conexion a la BD public void closeConnection() { try{ // cierra la conexion this.db.close(); }catch(SQLException e){ e.printStackTrace(); } }
45
// convierte un ResultSet a un Vector private Vector ResultSetToVector(ResultSet rs) throws SQLException { Vector vRows = new Vector(); // lee registro por registro while(rs.next()){ Vector vCol = new Vector(); // lee cada campo del query int nroFields =rs.getMetaData().getColumnCount(); for(int i = 1 ; i<=nroFields ; i++){ String strTmp = rs.getString(i); vCol.add(strTmp); } vRows.add(vCol); } return vRows; } // ejecuta delete,insert ó update public void performance(String str){ try{ // crea el statement Statement stmt = this.db.createStatement(); // ejecuta el update stmt.executeUpdate(str); //cierra statement stmt.close(); } catch(SQLException e){ e.printStackTrace(); } }
public void performance(String str, String aParam[] ){ PreparedStatement pstm; try{ // crea el statement pstm = this.db.prepareStatement( str ); // ejecuta el update for ( int xc=0 ; xc < aParam.length ; xc ++ ) pstm.setString( xc+1, aParam[xc] ); pstm.executeUpdate(); //cierra statement pstm.close(); } catch(SQLException e){ e.printStackTrace(); } }
46
// ejecuta solo los query public Vector query(String strQuery){ Vector vRet = null; try{ // crea el statement Statement stmt = this.db.createStatement(); // ejecuta el query ResultSet rs = stmt.executeQuery(strQuery); // convierte el ResultSet to Vector vRet = ResultSetToVector(rs); // cierra el ResultSet rs.close(); // cierra el statement stmt.close(); }catch(SQLException e){ e.printStackTrace(); } return vRet; }
public Vector query(String strQuery, String xcod ){ Vector vRet = null; try{ // crea el statement PreparedStatement pstm =
this.db.prepareStatement( strQuery ); // Inicializa parametros pstm.setString( 1, xcod ); // ejecuta el query ResultSet rs = pstm.executeQuery(); // convierte el ResultSet to Vector vRet = ResultSetToVector(rs); // cierra el ResultSet rs.close(); // cierra el statement pstm.close(); }catch(SQLException e){ e.printStackTrace(); } return vRet; }
public void sp_proc( String sp_name, String aParam[] ) {
try { CallableStatement cs = this.db.prepareCall( sp_name ); for( int xc=0 ; xc < aParam.length ; xc++) cs.setString( xc+1, aParam[xc]);
47
cs.execute(); } catch( Exception e ){ e.printStackTrace(); }
}
public void sp_proc( String sp_name, String aParam ) { try {
CallableStatement cs = this.db.prepareCall( sp_name ); cs.setString( 1, aParam );
cs.execute(); } catch( Exception e ){
e.printStackTrace(); }
}
// ejecuta un delete public void delete(String strDelete){ performance(strDelete); } // ejecuta un update public void update(String strUpdate){ performance(strUpdate); } // ejecuta un insert public void insert(String strInsert){ performance(strInsert); }
public void delete(String strDelete, String aParam[] ){ performance(strDelete, aParam); }
public void update(String strUpdate, String aParam[] ){ performance(strUpdate, aParam); }
public void insert(String strInsert, String aParam[] ){ performance(strInsert, aParam);
} public void readConfig( String tipo ) {
try { String linea = "";
String archivo = System.getProperty("user.dir") + "\\config.ini";
48
System.out.println( archivo ); BufferedReader reader = new BufferedReader( new
FileReader(archivo) ); tipo = tipo.toUpperCase(); boolean flag = false; while ( (linea = reader.readLine().trim()) != null && !flag) {
if ( linea.charAt(0) == '[' ) { linea = linea.substring(1,linea.length()-1); if ( linea.equals( tipo ) ) { flag = true; while ( (linea = reader.readLine().trim()) != null ) { if ( linea.charAt(0) == '[' ) break; int xpos = linea.indexOf( '=' ); String clave = linea.substring(0,xpos).trim(); String dato = linea.substring(xpos+1).trim(); if ( clave.toUpperCase().equals("DRIVER")) this.driver = dato; if ( clave.toUpperCase().equals("URL")) this.url = dato; if ( clave.toUpperCase().equals("USER")) this.user = dato; if ( clave.toUpperCase().equals("PASW")) this.pasw = dato; } } } }
} catch (Exception ex ) {
} }
}
CAPA DE NEGOCIO
Clase “cAlmacenes”
package negocio;
import java.util.*;
import javax.servlet.http.*;
import datos.cDatos;
public class cAlmacenes {
49
private cDatos db; private String sql; private Vector vr;
public cAlmacenes(String tipo) { this.db = new cDatos(tipo); this.db.openConnection(); }
public Vector getRegistros() { sql = "SELECT * from CIGCTBALM"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }
public Vector getRegistro( String xcod ) { sql = "SELECT * from CIGCTBALM where TAALMA=" + xcod; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }
public void grabarNuevoRegistro( HttpServletRequest request ) {String xnroalm = request.getParameter( "xnroalm" );String xnomalm = request.getParameter( "xnombre" );String xdivisi = request.getParameter( "xdivision" );String xtipo = request.getParameter( "xtipo" );String xclasif = request.getParameter( "xclasi" );String xsubcla = request.getParameter( "xsubcla" );
sql = "INSERT INTO CIGCTBALM (TAALMA,TADESA,TADIVI,TATIPO,TACLAS,TASCLA) "; sql += "VALUES ("+ xnroalm + ",'" + xnomalm + "','" + xdivisi + "','" + xtipo + "','" + xclasif + "'," + xsubcla + ")";
this.db.insert( sql ); }
public void grabarModificarRegistro( HttpServletRequest request ) {String xnroalm = request.getParameter( "xnroalm" );String xnomalm = request.getParameter( "xnombre" );String xdivisi = request.getParameter( "xdivision" );String xtipo = request.getParameter( "xtipo" );String xclasif = request.getParameter( "xclasi" );String xsubcla = request.getParameter( "xsubcla" );
50
sql = "UPDATE CIGCTBALM SET TADESA='" + xnomalm + "', TADIVI='" + xdivisi + "', TATIPO='" + xtipo + "', TACLAS='" + xclasif + "', TASCLA=" + xsubcla + " "; sql += "WHERE TAALMA=" + xnroalm ;
this.db.update( sql ); }
public void eliminarRegistros( String aData[] ) {boolean inicio;
if ( aData.length <= 0 ) return;
sql = "DELETE FROM CIGCTBALM WHERE TAALMA in ( "; inicio = true; for( int xc = 0 ; xc < aData.length ; xc++ ) { if ( inicio ) sql += aData[xc]; else sql += "," + aData[xc]; inicio = false; } sql += ")";
this.db.delete( sql ); }
}
51
Clase “ cArticulos “
package negocio;
import java.util.*;
import javax.servlet.http.*;
import datos.cDatos;
public class cArticulos { private cDatos db; private String sql; private Vector vr;
public cArticulos(String tipo) { this.db = new cDatos(tipo); this.db.openConnection(); }
public Vector getRegistros() { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }
public Vector getRegistros(String acod[]) { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo where articulo in ("; boolean inicio = true; for( int xc = 0 ; xc < acod.length ; xc++ ) { if ( inicio ) sql += "'" + acod[xc] + "'"; else sql += ",'" + acod[xc] + "'"; inicio = false; } sql += ")"; vr = this.db.query( sql ); return this.vr; }
52
public Vector getRegistro( String xcod ) { // sql = "SELECT articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea from articulo order by articulo"; sql = "SELECT * from articulo where articulo='" + xcod + "'"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }
public void grabarNuevoRegistro( HttpServletRequest request ) {String xart = request.getParameter( "xarticulo" );String xdesK= request.getParameter( "xdescripcionK" );String xuni = request.getParameter( "xunidad" );String xgrpi= request.getParameter( "xgrupoinv" );String xtipo= request.getParameter( "xtipo" );String xdesL= request.getParameter( "xdescripcionL" );String xfecm= request.getParameter( "xfecha_modificado" );String xresp= request.getParameter( "xresponsable" );String xcoda= request.getParameter( "xcod_anterior" );String xdes = request.getParameter( "xdescripcion" );String xlin = request.getParameter( "xlinea" );
sql = "INSERT INTO articulo (articulo, \"descripcionK\", unidad, grupoinv, tipo, descripcion_larga, fecha_modificado, responsable, cod_anterior, descripcion, linea) "; sql += "VALUES ('"+ xart + "','" + xdesK + "','" + xuni + "','" + xgrpi + "','" + xtipo + "','" + xdesL + "'," + xfecm + ",'" + xresp + "','" + xcoda + "','" + xdes + "','" + xlin + "')";
this.db.insert( sql ); }
public void grabarModificarRegistro( HttpServletRequest request ) {String xart = request.getParameter( "xarticulo" );String xdesK= request.getParameter( "xdescripcionK" );String xuni = request.getParameter( "xunidad" );String xgrpi= request.getParameter( "xgrupoinv" );String xtipo= request.getParameter( "xtipo" );String xdesL= request.getParameter( "xdescripcionL" );String xfecm= request.getParameter( "xfecha_modificado" );String xresp= request.getParameter( "xresponsable" );String xcoda= request.getParameter( "xcod_anterior" );String xdes = request.getParameter( "xdescripcion" );String xlin = request.getParameter( "xlinea" );
53
sql = "UPDATE articulo SET \"descripcionK\"='" + xdesK + "', unidad='" + xuni + "', grupoinv='" + xgrpi + "', tipo='" + xtipo + "', descripcion_larga='" + xdesL + "', fecha_modificado=" + xfecm + ", responsable='" + xresp + "', cod_anterior='" + xcoda + "', descripcion='" + xdes + "', linea='" + xlin + "' "; sql += "WHERE articulo='" + xart + "'";
this.db.update( sql ); }
public void eliminarRegistros( String aData[] ) {boolean inicio;
if ( aData.length <= 0 ) return;
sql = "DELETE FROM articulo WHERE articulo in ( "; inicio = true; for( int xc = 0 ; xc < aData.length ; xc++ ) { if ( inicio ) sql += "'" + aData[xc] + "'"; else sql += ",'" + aData[xc] + "'"; inicio = false; } sql += ")";
this.db.delete( sql ); }
}
Clase “Ciartidb”
package negocio;
import java.util.*;
import javax.servlet.http.*;
import datos.cDatos;
public class cCiartidb { private cDatos db; private String sql; private Vector vr;
public cCiartidb(String tipo) {
54
this.db = new cDatos(tipo); this.db.openConnection(); }
public Vector getRegistros() { sql = "SELECT * from CIARTIDB"; System.out.println( sql ); vr = this.db.query( sql ); return this.vr; }
public void grabarRegistros( Vector arrData ) { for ( int xc = 0 ; xc < arrData.size() ; xc++ ) { Vector fila = (Vector)arrData.get(xc); String xcod = (String)fila.get(0); String xdes = (String)fila.get(1); String xuni = (String)fila.get(2); String xgrp = (String)fila.get(3); String xlin = (String)fila.get(10); String xtip = (String)fila.get(4); sql = "INSERT INTO CIARTIDB (DAARTI,DADESC,DAUNME,DAGRIN,DALIPR,DATIPR) VALUES ("; sql += "'" + xcod + "','" + xdes + "','" + xuni + "','" + xgrp + "','" + xlin + "','" + xtip +"')"; this.db.insert( sql ); } }}
CAPA DE PRESENTACION
VISTAS
Vista “m_almacenes”
<%@ page import="negocio.cAlmacenes" %><%@ page import="java.util.*" %><% cAlmacenes obj = new cAlmacenes("DB2"); String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTADO";
System.out.println( "-- " + xopc ); if ( xopc.compareTo( "LISTADO" ) == 0) {
55
arrData = (Vector)obj.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "m_almacenes_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "NUEVO_ELIMINAR_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "Nuevo Registro") == 0 )
request.getRequestDispatcher( "m_almacenes_nuevo_tpl.jsp" ).forward( request,response ); else { obj.eliminarRegistros( request.getParameterValues("xcod") ); response.sendRedirect("m_almacenes.jsp"); } } else if ( xopc.compareTo( "GRABAR_NUEVO_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 )
obj.grabarNuevoRegistro( request ); response.sendRedirect("m_almacenes.jsp"); } else if ( xopc.compareTo( "MODIFICAR_REGISTRO" ) == 0 ) { String xcod = request.getParameter( "xcod" ); arrData = obj.getRegistro(xcod); request.setAttribute( "arrData", arrData); request.getRequestDispatcher( "m_almacenes_modificar_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "GRABAR_MODIFICAR") == 0 ) { System.out.println( "Grabar modificar ............." ); if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 ) { obj.grabarModificarRegistro( request ); } response.sendRedirect("m_almacenes.jsp"); } %>
Vista m_articulos
<%@ page import="negocio.cArticulos" %><%@ page import="java.util.*" %><% cArticulos objOpc = new cArticulos("PGSQL"); String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTADO";
System.out.println( "-- " + xopc ); if ( xopc.compareTo( "LISTADO" ) == 0) {
56
arrData = (Vector)objOpc.getRegistros(); request.setAttribute( "arrData", arrData ); // out.println( arrData.size() ); request.getRequestDispatcher( "m_articulos_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "NUEVO_ELIMINAR_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "Nuevo Registro") == 0 )
request.getRequestDispatcher( "m_articulos_nuevo_tpl.jsp" ).forward( request,response ); else { objOpc.eliminarRegistros( request.getParameterValues("xcod") ); response.sendRedirect("m_articulos.jsp"); } } else if ( xopc.compareTo( "GRABAR_NUEVO_REGISTRO" ) == 0 ) { if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 )
objOpc.grabarNuevoRegistro( request ); response.sendRedirect("m_articulos.jsp"); } else if ( xopc.compareTo( "MODIFICAR_REGISTRO" ) == 0 ) { String xcod = request.getParameter( "xcod" ); arrData = objOpc.getRegistro(xcod); request.setAttribute( "arrData", arrData); request.getRequestDispatcher( "m_articulos_modificar_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "GRABAR_MODIFICAR") == 0 ) { System.out.println( "Grabar modificar ............." ); if ( request.getParameter( "boton" ).compareTo( "GRABAR" ) == 0 ) { objOpc.grabarModificarRegistro( request ); } response.sendRedirect("m_articulos.jsp"); } %>
Vista m_alamacenes_tpl
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><html> <head><title>Almacenes</title></head> <body> <form method=POST action=m_almacenes.jsp> <h3>Listado Almacenes</h3> <input type=HIDDEN name=xopc value="NUEVO_ELIMINAR_REGISTRO"> <table border=1> <tr bgcolor=lightblue> <th><font face="Helvetica" color=Red>Sel.</font> <th><font face="Helvetica" color=Red>Nro. del Almacen</font>
57
<th><font face="Helvetica" color=Red>Nombr.del Almacen</font> <th><font face="Helvetica" color=Red>Division</font> <th><font face="Helvetica" color=Red>Tipo</font> <th><font face="Helvetica" color=Red>Clasificacion</font> <th><font face="Helvetica" color=Red>Sub-Clasificacion</font> <c:forEach items="${arrData}" var="registro"> <tr><td><input type=checkbox name='xcod' value=<c:out value='${registro[0]}'/> > <td><c:out value='${registro[0]}' /> <td><a href=m_almacenes.jsp?xopc=MODIFICAR_REGISTRO&xcod=<c:out value='${registro[0]}'/> > <c:out value='${registro[1]}' /></a> <td><c:out value='${registro[2]}' /> <td><c:out value='${registro[3]}' /> <td><c:out value='${registro[4]}' /> <td><c:out value='${registro[5]}' /> </c:forEach> </table> <input type=submit name=boton value="Eliminar Registros"> <input type=submit name=boton value="Nuevo Registro"> </form> </body> </html>
Vista p_articulos_tpl
<%@ page import="negocio.cArticulos" %><%@ page import="negocio.cCiartidb" %><%@ page import="java.util.*" %><% String db1="PGSQL", db2="DB2"; String xopc = request.getParameter("xopc"); Vector arrData; if ( xopc == null ) xopc = "LISTA_PG";
if ( xopc.compareTo( "LISTA_PG" ) == 0) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "p_articulos_pg_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "MUESTRA_SEL" ) == 0 ) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros( request.getParameterValues("xcod") ); request.setAttribute( "arrData", arrData );
58
request.getRequestDispatcher( "p_articulos_sel_tpl.jsp" ).forward( request,response ); } else if ( xopc.compareTo( "LISTA_DB2" ) == 0 ) { cArticulos obj = new cArticulos( db1 ); arrData = (Vector)obj.getRegistros( request.getParameterValues("xcod") ); cCiartidb obj2 = new cCiartidb( db2 ); obj2.grabarRegistros( arrData ); arrData = (Vector)obj2.getRegistros(); request.setAttribute( "arrData", arrData ); request.getRequestDispatcher( "p_articulos_db2_tpl.jsp" ).forward( request,response ); } %>
59
CAPÍTULO IV
ANÁLISIS E INTERPRETACIÓN DE LOS RESULTADOS
4.1. Población y muestra
4.1.1. Población.
Todas las empresas que cuenten con sistemas heterogéneos (AS
400, Linux, Windows, Solaris, Netware, Mac, etc)
4.1.2. Muestra.
Empresa textil con sistema heterogéneo ubicado en la ciudad de
Arequipa.
4.2. Nivel de confianza y grado de significancia.
El nivel de confianza será de un 90% y con un grado de significancia de
±10 %
4.3. Tamaño de la muestra representativa.
El tamaño de la muestra representativa esta basado en el número de
procesos de conexiones e interacción de información de tal manera
que compruebe la funcionalidad del prototipo.
60
4.4. Análisis de resultados
Variables Dependientes Ponderación Valor mínimo
exigidoVD 1.Estructura de información 4 7VD 2.Producción 2 9VD 3.Modelo de integración de
información
3 9
VD 4.Componente Middleware 5 9
Cuadro N° 6 Analisis Variables Dependientes
Variables Independientes Ponderación Valor mínimo
exigidoVI 1.Mantenibilidad 3 8VI 2.Tiempo
VI 3.Eficacia
4
3
8
9
VI 4.Calidad de uso
VI 5.Confiabilidad
VI 6.Usabilidad
3
4
5
7
9
8VI 7.Comunicación de datos
VI 8.Actualización de datos
VI 9.Facilidad de Operación
VI 10.Seguridad de sistema
5
4
4
3
9
7
8
7
Cuadro N° 6 Analisis Variables Independientes
VD01 = (3 VI01)/3
VD01 = (3 x 9)/3
VD01 = 9
VD02 = (4 VI02 + 3VI03)/7
VD02 = (4 x 8 + 3 x 10)/7
VD02 = 8.85
VD03 = (3 VI04 + 4 VI05 + 5 VI06)/12
61
VD03 = (3 x 10 + 4 x 10 + 5 x 10 )/12
VD03 = 10
VD04 = (5 VI07 + 2 VI08 + 4 VI09 + 3 VI10)/14
VD04 = (5 x 10 + 4 x 10 + 4 x 9.1 + 3 x 8 )/14
VD04 = 9.4
VD 5.Estructura de información
VI 1.Mantenibilidad
Características Puntuación Capacidad de ser analizado 4Estabilidad 2Reparabilidad 3
VD 6.Producción
VI 2.Tiempo (Tiempo de respuesta- segundos)
Descripción Peso Frecuencia Total2 – 4 10 11 1105 – 7 6 7 42
8 – 10 4 2 811 – mas 0 0 0TOTAL 20 20 160
160/20
VI 02 = 8
VI 3.Eficiencia
Descripción Peso CumpleComportamiento Temporal 5 SiConformidad de eficiencia 5 Si
Total 10
VI01 = 9
62
VI 03 = 10
VD 7.Modelo de integración de información
VI 4.Calidad de uso
Descripción Puntuación ¿Cumple?Eficacia 2.5 SiProductividad 2.5 SiSeguridad 2.5 SiSatisfacción 2.5 Si
VI 04 = 10
VI 5.Confiabilidad
Descripción Puntuación ¿Cumple?Disponibilidad 2.5 SiFiabilidad 2.5 SiSeguridad 2.5 SiProtección 2.5 Si
VI 05 = 10
VI 6.Usabilidad
Descripción Puntuación ¿Cumple?Entendimiento 2.5 SiOperabilidad 2.5 SiAtracción 2.5 SiConformidad de
uso 2.5
Si
VI 06 = 10
63
VD 8.Componente Middleware
VI 7.Comunicación de datos
Descripción PuntuaciónEstablece comunicación 10No establece comunicación 0
VI 07 = 10
VI 8.Actualización de datos
Descripción Puntuación ¿Cumple?Actualización En línea de
ficheros de control. 5 SiActualización En línea de
ficheros importantes
internos. 5
Si
VI 08 = 10
VI 9.Facilidad de Operación
Descripción Puntuación Frecuencia TotalMuy Facil 10 12 120Facil 8 7 56Complejo 6 1 6Total 24 20 182
VI08 =182/20
VI 09 = 9.1
VI 10.Seguridad de sistema
Descripción PuntuaciónPrivacidad. 3Auditibilidad. 4
64
Prevención de perdidas. 1Encriptación de datos. 0
VI 10 = 8
4.5. Calculo de la eficacia
Eficacia = ( 4 * VD01+ 2 * VD02 + 3 * VD03+ 5 * VD04)/14
Eficacia = ( 4 * 9 + 2 * 8.85 + 3 * 10+ 5*9.4)/14
Eficacia = 9.33
4.6. Interpretación de los resultados
4.6.1 Variables Independientes
A. En cuanto a la mantenibilidad se ha logrado una efectividad de
90% debido a que no es estable en su totalidad
B. En cuanto a tiempo se ha logrado una efectividad del 80%
prácticamente rápido
C. En cuanto a la Eficiencia esta logro ser de un 100%.
D. Respecto a la calidad de uso esta fue de un 100%, cumpliendo
todas sus metas.
E. Lo que respecta a la confiabilidad esta obtuvo un 100% de
confiabilidad.
F. En cuanto a la usabilidad fue de un 100% demostrando su uso.
G. Lo que respecta la facilidad de operación esta logro ser de un 91%
que demuestra que es fácil operar el prototipo, presentando alguna
complejidad
H. Respecto a la seguridad, privacidad y auditibilidad esta obtuvo un
80%, debido a que no se realizo encriptaciones y el poco nivel en
prevención de perdidas.
65
4.6.2 Variables Dependientes
I. En el desarrollo de la estructura de la información se ha logrado un
90%.
J. En la variable de producción se obtuvo un 88.5%
K. En cuanto al modelado de Integración de información se ha logrado
un 100%.
L. En lo referente al componente Middlewarelos resultados presentan
un 94% de realizacion.
4.7. Prueba de Hipótesis
Con el cálculo de la eficacia se comprueba la hipótesis
66
CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
Conclusiones.Primera conclusión
Se genero una estructura lineal, por así decirlo, que permitió generar dos
cosas. La primera, mejorar la comprensión del problema y su solución con
visión diferente. La segunda que esta estructura puede ser mantenible, esto
quiere decir que se puede modificar sin tener que empezar todo de cero.
Segunda Conclusión
El tiempo que se tarda en hacer accesos a los sistemas de información,
bases de datos en diferentes plataformas es mucho mas deficiente que
cuando se trabaja con sistemas de información, bases de datos bajo una
misma plataforma, al tener todo bajo una misma plataforma gracias a este
middelware es mucha rapida el acceso a la información.
Tercera Conclusión
El modelo de integración que se presenta en este proyecto, esta basado en
clases cuya principal clase se ha denominado cDatos que genera los
requisitos para realización las conexiones; y librerías que en esta caso se
hizo bajo JDBC, que nos permite realizar conexiones a bases de datos muy
eficazmente, esto dos elementos uno creado y otro reutilizado nos genera
una combinación poderosa para generar accesos a bases de datos de una
manera transparente, eficaz y flexible.
Cuarta Conclusión
67
El desarrollo del componente Middlware se cumplió con lo que se quería, se
pudo relacionar diferente bases de datos en una misma acción, además de
poder comunicarlas, extrayendo información, compartirla y guarda en
cualquiera de las diferentes bases de datos. Además que se realizo estos
procesos de manera rápida y sencilla para el usuario, una de las
potencialidades de este prototipo es que se puede ir actualizándolo sin
necesidad de que se tenga que cerrar los sistemas para realizar dicha
función, lo único que no se pudo fortalecer fue respecto a la seguridad, faltó
mayor investigación para poder generar una buena seguridad.
Recomendaciones.
Primera Recomendación
Se debe tener mucho cuidado al momento de querer hacer las estructuras
para interactuar las bases de datos, si es cierto todas las bases de datos son
de una misma empresa no todas ellas mantienen una correlación, si a si
fuese el caso entonces hay que analizar si la conexión a realizar servirá para
el usuario
68
PRODUCTO FINAL
El producto final esta orientado a la parte de gerencia y estrategia de la empresa.
Grafico. Donde se aplica es prototipo
El producto final será una capa superior a las plataformas de los demás sistemas (AS400, Linux y Windows) un middleware, que será la herramienta que homogenice las plataformas.
Grafico 2. Grafico de la herramienta
App 1 App 2 App 3
DB 1 DB 2 DB 3
Interfase
69
FUENTES DE INFORMACIÓN
Presuman, Roger S. Ingeniería del Software Un enfoque práctico. 5ta ed.,
España, McGraw Hill, 521 – 540 pp.
Manzano, Juan y otros SIX: Una propuesta de Sistema de Integración basado
en XML. En http://imhotep.unizar.es/jbidi/jbidi2001/17_2001.pdf Extremadura.
Lassila O. Wick R. “Resource Description Framwork (RDF) Model And Syntax Specification” W3C Febrero de 1999. en http://www.w3.org/TR/REC-rdf-syntax/
eXtendible Markup Language (XML)version 1.0 Primera Edicion Febrero de 1998. En http://www.w3.org/XML#9802xml10
Aplicaciones y Ventajas de XML.En http://www.bibliodgsca.unam.mx/tesis/tes7cllg/sec_26.htm
http://www.glosarium.com/term/806,14,xhtml
70
GLOSARIO DE TÉRMINOS
Workflow: Sistema de automatización de procesos. Permite automatizar de forma
integrada todos los flujos de datos y procesos administrativos, controles de
autorización, verificaciones de datos y contacto de personas involucradas.
Framework. En el desarrollo de software, un Framework es una estructura de
soporte definida en la cual otro proyecto de software puede ser organizado y
desarrollado. Tipicamente, un framework puede incluir soporte de programas,
librerias y un lenguaje de scripting entre otros softwares para ayudar a desarrollar
y unir los diferentes componentes de un proyecto.
DOM (Document Object Model)
Funcionalidad. La capacidad del producto de software para proveer las funciones
que satisfacen las necesidades explícitas e implícitas cuando el software se utiliza
bajo condiciones específicas.
Adecuación. La capacidad del producto de software para proveer un adecuado
conjunto de funciones para las tareas y objetivos especificados por el usuario.
Exactitud. La capacidad del producto de software para proveer los resultados o
efectos acordados con un grado necesario de precisión.
Seguridad. La capacidad del producto de software para proteger la información y
los datos de modo que las personas o los sistemas no autorizados no puedan
leerlos o modificarlos, y a las personas o sistemas autorizados no se les niegue el
acceso a ellos.
76
Cumplimiento funcional. Capacidad del producto software para adherirse a
normas, convenciones o regulaciones en leyes y prescripciones similares
relacionadas con funcionalidad.
Fiabilidad. La capacidad del producto de software para mantener un nivel
específico de funcionamiento cuando se está utilizando bajo condiciones
especificadas.
Madurez. La capacidad del producto de software para evitar fallas como resultado
de errores en el software.
Tolerancia a errores. La capacidad del producto de software para mantener un
nivel especificado de funcionamiento en caso de errores del software o de
incumplimiento de su interfaz especificada.
Recuperabilidad. La capacidad del producto de software para restablecer un nivel
especificado de funcionamiento y recuperar los datos afectados directamente en el
caso de una falla.
Conformidad de la fiabilidad. La capacidad del producto de software para
adherirse a las normas, convenciones o regulaciones relativas a la fiabilidad.
Usabilidad. La capacidad del producto de software de ser entendido, aprendido,
usado y atractivo al usuario, cuando es utilizado bajo las condiciones
especificadas.
Entendimiento. La capacidad del producto de software para permitir al usuario
entender si el software es adecuado, y cómo puede ser utilizado para las tareas y
las condiciones particulares de la aplicación.
77
Operabilidad. La capacidad del producto de software para permitir al usuario
operarlo y controlarlo.
Atracción. La capacidad del producto de software de ser atractivo al usuario.
Conformidad de uso. La capacidad del producto de software para adherirse a los
estándares, convenciones, guías de estilo o regulaciones relacionadas a su
Comportamiento temporal. La capacidad del producto de software para proveer
tiempos adecuados de respuesta y procesamiento, y ratios de rendimiento cuando
realiza su función bajo las condiciones establecidas.
Utilización de recursos. La capacidad del producto de software para utilizar
cantidades y tipos adecuados de recursos cuando este funciona bajo las
condiciones establecidas.
Los recursos humanos están incluidos dentro del concepto de productividad.
Conformidad de eficiencia. La capacidad del producto de software para adherirse
a estándares o convenciones relacionados a la eficiencia.
Mantenibilidad. Capacidad del producto de software para ser modificado. Las
modificaciones pueden incluir correcciones, mejoras o adaptación del software a
cambios en el entorno, y especificaciones de requerimientos funcionales.
Capacidad de ser analizado. La capacidad del producto de software para atenerse
a diagnósticos de deficiencias o causas de fallas en el software o la identificación
de las partes a ser modificadas.
Cambiabilidad. La capacidad del software para permitir que una determinada
modificación sea implementada.
Implementación incluye codificación, diseño y documentación de cambios.
78
Estabilidad. La capacidad del producto de software para evitar efectos
inesperados debido a modificaciones del software.
Analizabilidad. Capacidad del producto software de diagnosticar sus deficiencias
o causas de fallos, o de identificar las partes que deben ser modificadas.
Conformidad de portabilidad. La capacidad del software para adherirse a
estándares o convenciones relacionados a la portabilidad.
Calidad en Uso. La capacidad del producto de software para permitirles a usuarios
específicos lograr las metas propuestas con eficacia, productividad, seguridad y
satisfacción, en contextos especificados de uso.
Eficacia. La capacidad del producto de software para permitir a los usuarios lograr
las metas especificadas con exactitud e integridad, en un contexto especificado de
uso.
Productividad. La capacidad del producto de software para permitir a los usuarios
emplear cantidades apropiadas de recursos, en relación a la eficacia lograda en
un contexto especificado de uso.
Satisfacción. La capacidad del producto de software para satisfacer a los usuarios
en un contexto especificado de uso.
Confiabilidad. Propiedad que implica el grado de confianza esperado por parte del
usuario en la operación adecuada del sistema al utilizarlo.
Disponibilidad. Define la probabilidad de que el sistema este funcionando en un
tiempo determinado.
79
Fiabilidad. Es la probabilidad de que el sistema funcione correctamente durante un
intervalo de tiempo.
Protección. Representa la capacidad del sistema para protegerse a si mismo de
intrusiones accidentales o programadas.
Densidad de defectos. Es una métrica de calidad que se define como el número
de errores que ocurren durante un lapso de tiempo determinado.
Media de ocurrencia de fallos. Se refiere al promedio del tiempo que tarda en
producirse un fallo durante la operación de un producto de software.
Corrección. El grado en que una aplicación satisface sus especificaciones y
consigue los objetivos encomendados por el cliente.
Facilidad de mantenimiento. El esfuerzo requerido para localizar y reparar errores.
Integridad. El grado con que puede controlarse el acceso al software o a los datos
a personal no autorizado (Amenaza / seguridad).
Facilidad de uso. El esfuerzo requerido para aprender el manejo de una
aplicación, trabajar con ella, introducir datos y conseguir resultados.
Facilidad de prueba.El esfuerzo requerido para probar una aplicación de forma
que cumpla con lo especificado en los requisitos.
Reusabilidad. Grado en que partes de una aplicación pueden utilizarse en otras
aplicaciones.
Comprensibilidad. Interpretación correcta del modelo, cercanía de los conceptos a
quienes leen el esquema, uso de conceptos (terminología) sencillos en él.
80
Completitud. Correspondencia biunívoca entre el esquema y los requerimientos
(no sólo que éstos estén cubiertos, sino que no existan “requerimientos”
adicionales).
Expresividad. Poder significativo de los elementos.
Consistencia. Existencia de al menos un conjunto (no-vacío) de instancias (no-
vacías) que satisface el esquema (con sus restricciones).
Extensibilidad. Capacidad de evolución del esquema, adaptabilidad a los cambios
que se requieran.
Robustez. Grado de degradación del sistema en presencia de fallos o
incertidumbre.
Conectividad. Los nodos deben interactuar de forma que las actividades cubiertas
puedan ser desarrolladas e integradas en una solución global.
Efectividad. Capacidad del producto software para permitir a los usuarios alcanzar
objetivos especificados con exactitud y completitud, en un contexto de uso
especificado.
81
Top Related