Está en la página 1de 30

Apuntes Sistemas de Información

Alex Marqués Fernández

Introducción

Dato: Valor que representa hechos

Información: Colección de datos organizados de forma que proporcionan valor añadido a los
datos

Conocimiento: Conciencia o familiaridad adquirida por la experiencia de hechos o situaciones a


través del aprendizaje, observación y/o introspección.

Para nosotros como informáticos le tenemos que dar mucha IMPORTANCIA a la fiabilidad de
los datos, puesto que unos malos datos dan a información errónea que deriva en un
conocimiento inservible.

Proceso: Conjunto de tareas lógicamente relacionadas que a partir de datos de entrada


proporcionan resultados.

Algoritmo: Lista ordenada de pasos o especificación de instrucciones para llevar a cabo una
determinada tarea

Sistema: Conjunto de elementos que interactúan para lograr un objetivo, este está compuesto
de: Entradas, mecanismos de estado, salidas y retroalimentación.

Definición de (R. Stair & G. Reynolds):

“Es un sistema que está compuesto por un conjunto de elementos

interrelacionados que recogen (entrada), manipulan (proceso),

almacenan información, y diseminan (salida) datos y que

proporcionan mecanismos correctores (feedback) para alcanzar un

determinado objetivo”

Un sistema de información se compone de:

 Hardware
 Software
 Datos
 Personas
 Procedimientos y protocolos
Sistemas de procesado transaccional (TPS)
Gestionan la información referente a las transacciones producidas diariamente en una
organización

- Compraventas materiales, productos, entrada/salida de empleados, etc.


- Surgen en los 60’ y se expanden en los 70’ y 80’

Sistemas de Información de gestión (MIS)


- Orientadas a los responsables técnicos de las diferentes áreas de la organización para
la definición de procedimientos rutinarios
- Sistemas de información operativa
o Generación de nóminas, facturación planificación de rutas de entrega,
asignación de tareas a operarios, etc.
o Surge en los 70’ y coje fuerza en los 80’ y 90’.

Sistemas de Información de apoyo a la toma de decisiones (DSS)


- Da soporte a la toma de decisiones para un problema específico complejo, además de
información para analizar el problema que no esté definido
- Surge entre los 80’ y 90’ y se expande desde su salida

Sistemas de Información empresarial (EIS)


- Es un DSS para altos ejecutivos.
- Requieren datos para las decisiones, pero no pueden dedicar tiempo para extraer los
mismos del total generado (siempre ejecutando tareas en segundo plano).
- Orientado para conseguir los objetivos estratégicos de la empresa
- Principalmente informativo
- Surge a finales de los años 90.
Aplicaciones Empresariales: Características

 Almacenan y manipulan datos: fichero, BDR, BDNR…


 Realizan transacciones: Propiedades ACID
 Escalables: Más carga de trabajo sin necesidad de modificar el HW ni el SW.
 Disponibles: No dejar de prestar servicio.
 Seguros: Permisos de acceso a los datos y funcionalidades.
 Integración: Diferentes tecnologías.

NOTA: XML se utiliza para hacer metadatos semánticos y ficheros de configuración

ACID:

 Atomicity: Se ejecuta completamente o no se ejecuta


 Consistency: Antes y después de su ejecución deja la BBDD a un estado válido
 Isolation: Una acción no debe interactuar con otra (Concurrencia)
 Durability: Que no se degrade con el tiempo

Aplicaciones Empresariales: Arquitectura

Capas en el diseño de la arquitectura en un producto SW

 Capa de presentación
 Capa de negocio
 Capa de datos

Presentan un patrón similar al MVC.

Aplicaciones Monocapa
 Modelo de datos: Depende de la aplicación en concreto
 Persistencia: Ficheros
 Ventajas: Rápidos, útiles para aplicaciones de propósito específico.
 Inconvenientes: Necesita instalación y re-complilación en todas las máquinas.
Datos duplicados y necesidad de protocolos ETL.
Aplicaciones de dos capas

Separa la interfaz y el modelo, esta vez utilizando el patrón MVC, tiene la ventaja de que ofrece
independencia entre las capas y reutiliza la capa de modelo para N máquinas, evitando la
duplicidad de datos, sin embargo, tiene el inconveniente de que cada cambio en el modelo y
en las interfaces implica una re-complilación e instalación

Aplicaciones de tres capas

Cambios en modelo sólo afectan al servidor de la aplicación, además de que los clientes con la
interfaz gráfica son muy ligeros.

Los cambios en la interfaz gráfica siguen requiriendo una re-complilación e instalación en todas
las máquinas.
Aplicaciones de tres capas con interfaz web

Son los mismos cambios que en la anterior, solo que sin los inconvenientes.

Aplicaciones de cuatro capas

Ofrece una mejora sobre la arquitectura anterior, se utiliza cuando la interfaz gráfica web y la
capa de modelo están construidas con tecnologías diferentes.

Aplicaciones Empresariales: Tecnologías


Acceso a bases de datos: API JDBC, API ODBC

Aplicaciones Web: Servlets y JSP, ASP.net, PHP Ruby on Rails, Python, MEAN y mas.

Servidores Web: Tomcat, Jboss, Jetty, IIS, Apache


Nuevas tendencias: cloud computing

 Permite acceso bajo demanda a servicios TIC


 Surge de la externalización del servicio TIC y para ahorrar costes (pagas sólo por lo que
necesitas).

Tipos:

 Por funcionalidad
o SaaS -> Software as a Service
o PaaS -> Platform as a Service
o IaaS -> Infrastructure as a Service
 Por compartición
o Público
o Privado
o Híbrido
o Comunitario

IaaS
Ofrece recursos de computación como un servicio, características:

 Recursos compartidos y virtualización de servicios


 Gestión más eficiente de los data-centers
 Supone una baja inversión inicial y coste de mantenimiento
 Más seguridad en cuanto a disponibilidad

PaaS
Ofrece plataformas de computación como un servicio, características:

 Baja los costes de administración de los sistemas en comparación con los IaaS

SaaS
Ofrece aplicaciones en concreto sin controlar el cliente ni la infraestructura que hay por debajo
ni su configuración, características:

 No requiere de una inversión en licencias ni mantenimiento (actualizaciones)


 Dependencia de la red y el proveedor
 Aspectos legales y seguridad son algo turbios
 Los clientes comparten infraestructura, aunque cada uno tenga su propio espacio
Clasificación según su forma de acceso
 Público: Destinado a público general o empresas que deseen contratarlo.
 Privado: Para ser usado por una sola entidad, aunque puede ser propio o alquilado.
Sólo esa entidad da uso al sistema (uso exclusivo).
 Híbrido: Los picos se gestionan mediante una nube pública de forma transparente al
usuario de los servicios alojados en este.
 Comunitario: Privado para el uso de un número determinado de entidades.

NOTA: La computación en la nube no es una nueva tecnología, sino que es una nueva forma de
uso de una tecnología ya existente (partiendo de los ISP).

Diferencia entre HTML y XHTML


Sus diferencias principales radican en que uno deriva de SGML y el otros de XML, difiriendo en
que XHTML no será interpretado por el navegador en caso de que el documento no sea válido y
al contrario con HTML se “ignorarán” los errores.

Introducción a Servlets y JSP


Aplicación web: Aplicación ejecutada en un servidor Web y a la que el usuario accede desde un
cliente de propósito general, como un navegador web, un pc, etc.

Servlet: Ejecutable escrito en lenguaje Java que normalmente se ejecuta en respuesta a una
petición HTTP:

 Puede recibir peticiones HTTP


 Procesa datos y genera una respuesta acorde con los parámetros generando una
página HTML en tiempo de ejecución (página HTML dinámica)

Diferencia Servlets y CGIs

CGI Scripts (Common Gateway Interface)

 Requieren crear un proceso por petición (más recursos y tiempo de ejecución)


 Dependientes de la plataforma

Servlets:

 Se ejecutan en diferentes hilos (threads) del proceso servidor


 Independientes de la plataforma
El método init se ejecuta cuando el servidor de aplicaciones Web decide cargar el Servlet en
memoria:

 Cuando se arranca el servidor


 La primera vez que se requiere que se ejecute el Servlet
 Cuando se accede a algún componente de la aplicación web
El método destroy se ejecuta cuando el servidor de aplicaciones web decide eliminar el
servidor Servlet de memoria

 Cuando se para el servidor


 Cuando se para la aplicación Web
 Cuando lleva cierto tiempo sin usarse

El método servicie se ejecuta cuando ser requiere el servicio proporcionado por el Servlet:

 Cuando ser recibe una petición asociada a las URLs ligadas al Servlet
 Los parámetros de la petición están codificados en el objeto ServletRequest
 La salida a enviar al cliente se codifica en el objeto ServletResponse

El método público service se implementa llamando a la operación protegida servide la cual es


una operación plantilla que llama al método doGet o doPost según el tipo de petición recibida
(si es de tipo GET o de tipo POST)

El método público de HttpServletRequest denominado getParameter permite obtener el valor


de un parámetro que tiene asociado un único valor (atributo monovaluado)

El método público de HttpServletRequest denominado getParameterValues permite obtener


el valor de un parámetro multivaluado (aunque también se puede usar con parámetros
monovaluados)

El método público de HttpServletResponse denominado setContentType permite establecer el


tipo de contenido de la respuesta y debe llamarse antes de comenzar a escribir en el objeto
PrintWriter proporcionado por el método getWriter
Clases e interfaces del API de Servlets
El método sendredirect le indica al cliente como respuesta a la petición http que ha hecho que
genera una nueva petición a la UTL que se le indica como parámetro

A veces interesa pasar el control a otro elemento dentro del servidor en lugar de indicar una
respuesta al cliente.

 En ese caso se emplea el método forward


 Se pasa el control a otro elemento dentro del servidor, esto se hace de forma
transparente al cliente.

Java Server Pages (JSPs)


Una página JPS es un tipo especial de Servlet orientado a crear una interfaz gráfica, tiene
aspecto de una página HTML y puede incluir scriptlets, escritos en Java.

Cuando se accede a una página JSP:

 Si es la primera vez que se accede a ella, entonces el servidor de aplicaciones web


implementa un servlet asociado a dicha página, lo compila y lo carga en memoria
 Si no es la primera vez, le pasa la petición al servlet asociado
 Si la página JSP se ha modificado desde la compilación del servlet que tiene asociado
dicha página, y ser requiere dicha página entonces se genera un nuevo servlet
La organización de datos e información: Datawarehouse

Tipos de sistemas de información

OLTP: Procesamiento de Transacciones en Línea (OnLine Transaction Processing)

OLAP: Proceso Analítico en Línea (OnLine Analytical Processing)

Características de los Data Warehouses

 Orientados a un tema concreto


o La información en base a un tema de interés para los directivos de la entidad y
no para facilitar la operatividad diaria:
 Ej. Para un comercio entorno a las ventas, productos y proveedores
 Integrados
o La base de datos contiene todos los datos de los sistemas operacionales de la
organización (empresa)
o Dichos datos deben ser consistentes
o Ej. Agrega los datos de los sistemas de ventas, compras de productos,
campañas de márquetin, recursos humanos, etc.
 No volátiles
o Una vez los datos han sido incorporados al sistema (registrados) estos no se
borran ni actualizan. Además, están pensados para un horizonte de tiempo
mucho mayor que los datos operacionales
 Por ejemplo: 60 - 90 días vs. 5-10 años
 Inserciones/borrados/actualizaciones constantes vs.
Lectura/agregación de datos
 La misma consulta sobre el mismo período temporal siempre produce
el mismo resultado

Arquitectura

Procesos ETL
 Proceso de adquisición de datos (data acquisition) del Data Warehouse (-ETL-)
o Extracción (Extraction -E-): recogen los datos de los diferentes sistemas
operacionales y los integran. Suelen involucrar procesos de “cleansing”,
auditoría y control de datos (asegurar la integridad)
o Transformación (Transformation -T-): transforman los datos recolectados en el
formato adecuado para el Data Warehouse (ej. Cambios unidades de medida)
o Carga (Load -L-): procesos para la inserción masiva de datos en el Data
Warehouse

Staging Area
Facilita los procesos de extracción y transformación de los datos antes se ser incluidos en el
Data Warehouse

Data Marts
Contienen datos que han sido “personalizados” para una determinada funcionalidad o análisis

Ej. Análisis de la demanda de los clientes considerando factores geográficos, ventas en un


determinado producto en función de sus proveedores.

Procesos ETL (Staging are)


 Extracción
o Primer paso del proceso ETL -> Muy costoso en tiempo
o Heterogeneidad en las fuentes de datos
 Normalmente: BD relacionales (OLTP), ERP, CRM, incluso ficheros de
texto plano
 Ej. BD que registra todos los pedidos de una tienda online
o Se debe realizar cada cierto tiempo (mantener actualizado el Data Warehouse)
o Normalmente los sistemas fuente no pueden ser modificados.
 Transformación
o Cleaning (Cleansing): seleccionar sólo los datos válidos (p. ej. Almacenar datos
ilegibles (sistemas de codificación no reconocidos)
o Alineación de datos: ej. Mapping entre códigos -> M/1 – H/2
o Calculas nuevos valores derivados: ej. Calcular los ingresos diarios en base a las
ventas realizadas
o Ordenar los datos según diferentes criterios para acelerar consultas
o Unir datos de diferentes fuentes (ej. Operaciones de merge)
o Agregación de datos (p. ej. Resumir arias filas de la tabla -> ventas por mes)
o Trasposición de tablas
o …
 Carga
o Se cargan los datos de la fase anterior (Transformación)
 Sobreescritura
 Mantenimiento de históricos (se puede hacer el seguimiento vitalicio
de un dato)

Bases de datos multidimensionales


O, dicho de otra manera, cómo organizar los datos en un DW

Cubo o hipercubo (n-dimensionales)

 Estructura que se emplea para organizar los datos en el Data Warehouse.


 Tiene múltiples dimensiones.
 Ej. Tres dimensiones:
Tenemos un diferente nivel de detalle en cada una de las dimensiones:

Slice (loncha)
El subconjunto de datos multidimensionales definidos por seleccionar valores específicos para
cada uno de los atributos que definen las dimensiones

Operación básica: la agregación


Qué cantidad de productos de la marca X se han vendido durante el mes actual en las
diferentes tiendas

Cuántas ventas de los diferentes productos se han realizado en las tiendas de la región 1
Implementación de los cubos
 Opción más simple
o Una sola tabla con múltiples columnas que representan o bien las dimensiones
que se consideran o bien los datos de interés para el análisis (en nuestro
ejemplo, el número de ventas de un producto)
 Demasiados datos replicados
 Arquitectura en estrella
o Una tabla central que contiene la información de los hechos que se desea
analizar (p. ej. Las ventas) conectada a diferentes tablas que representan las
diferentes dimensiones

En general, la implementación se hace en forma de una arquitectura de estrella, pero a la


hora de hacer una vista analítica se trata como una arquitectura de una sola tabla.

Informe típico
Vemos un ejemplo de ventas totales efectuadas durante el primer trimestre por marca:
Drill Down & Drill Up (o roll up) sobre los informes obtenidos.

 Drill Down/Up
o Detallar/Agregar los resultados obtenidos añadiendo/eliminando un campo.
Por ejemplo, la categoría de productos.

Factores de éxito
 Integrar datos externos con los datos de producción internos y gestionar historiales
 Considerar información útil, centrada en los objetivos de la empresa
 Emplear datos de calidad (coherentes, actualizados y documentados)
 Arquitectura flexible para garantizar escalabilidad (tanto a nivel hardware como a nivel
software). Considerar también más usuarios, herramientas, volumen de negocio, etc.

Errores comunes
 Incluir datos solamente porque están disponibles (podrían no ser útiles)
 Crear un esquema de BD relacionales tradicional
 Crear el Data Warehouse pensando en la tecnología que se va a usar para su
implementación
 Creer que los Data Warehouse acaban su ciclo de vida una vez son cargados los datos e
instalado el sistema (incluir herramientas para el diseño de informes)
Minería de Datos
We are drowning in data but starved for knowledge (Naisbitt, 1982)

Definición
 Análisis y exploración automática (o semiautomática) de grandes volúmenes de datos
mediante el uso de algoritmos concretos para extraer información útil y no evidente, y
previamente desconocida.
 Etapa de un proceso más amplio denominado Knowledge Discovery
 No debe confundirse Data Mining con:
o Data Warehouses
o Pura estadística
o Machine Learning (DM puede usar técnicas de ML)
o Sistemas expertos
o Generación de informes/queries
 Ya existía en los 60 en el campo de la estadística -> Data Archeology
 En los años 80 se consolida el término y empiezan a aparecer empresas dedicadas a
este sector
 Data Mining integra distintos campos:
o Usa técnicas de Machine Learning
o Estadística
o Inteligencia Artificial
o Bases de Datos

Aplicaciones
 Empresas de telecomunicaciones
o Facturación de servicios
o Detección de clientes que aportan mayores beneficios
 Supermercados
o Gestión de inventario
o Asociación de ventas: ej. Alta correlación venta pañales y cervezas los viernes
por la tarde
 Banca
o Gestión de cuentas
o Segmentación de clientes
 Fábricas
o Control de procesos
o Mantenimiento preventivo: determinar que cierta pieza de un proveedor tiene
una mayor vida útil

 Aumento en el interés por aplicar estas técnicas


o Disponibilidad de grandes cantidades de datos a analizar
o El coste de procesamiento (CPU) ha disminuido enormemente
o Existen productos comerciales y open-source (Weka, SPSS, R, Etc.)
o Competencia entre las empresas de un mismo sector cada vez mayor
Fases del Data Mining

Técnicas de Data Mining


Tenemos una gama de diferentes formas de extraerá datos según el modelo que estemos
utilizando.

 Modelos descriptivos
o Describen el comportamiento de los datos de forma que éste sea interpretable
o Ej. Existen dos tipos de clientes y cada uno tiene unas características propias
 Modelos predictivos
o Además de describir datos se emplean para predecir el valor de algún atributo
desconocido
o Ej. Predicción de la cantidad del producto X que se le facturará al cliente el año
que viene.

Modelo Descriptivo
El modelo descriptivo utiliza una serie de reglas que tienen la siguiente forma:

Antecedente -> Consecuente

 Antecedente: lista de una o más variables con rangos asociados


 Consecuente: la población de interés
Un modelo descriptivo implica unas REGLAS DE ASOCIACIÓN (APLICACIÓNES I/II)

Ejemplo de interpretación: Si se identifica una regla del tipo: {impresora} -> {Tóner}

 Tóner en el consecuente:
o Puede determinarse cómo incrementar sus ventas
 Impresora en el antecedente
o Puede determinarse qué productos se verían afectados si dejamos de vender
impresoras
 Impresora en el antecedente y tóner en el consecuente
o Puede utilizarse para ver qué productos deberían venderse con impresoras
para promocionar las ventas de tóner

Un modelo descriptivo también implica unas REGAS DE ASOCIACIÓN (APLICACIONES II / II)

 Objetivo
o Trata de identificar artículos que muchos clientes compran conjuntamente
 Solución
o Procesar los datos de los terminales de punto de venta proporcionados por los
escáneres de códigos de barras
 Ejemplo
o Si un cliente compra pañales, es muy probable que compre cerveza (no te
sorprendas si ves las cervezas colocadas al lado de los pañales en el súper)

Un modelo descriptivo también implica una serie de REGLAS DE ASOCIACIÓN

 Problema
o Dado un conjunto de transacciones, encontrar reglas que describan tendencias
en los datos:

Definiciones:

 Suporte de un conjunto de ítems: fracción de las transacciones que contienen el


conjunto de ítems:

Donde sigma(X) es el número de transacciones que contiene el conjunto de ítems X


 Soporte de una regla (Support): % de transacciones que contienen el antecedente o el
consecuente sobre el total de transacciones

 Confianza (Confidence): % de transacciones que contienen el antecedente y el


consecuente con respecto a las transacciones que contienen el antecedente

Inferencia “A Priori”
Esto desarrolla en un posible algoritmo que podemos utilizar para descubrir nuevas reglas de
asociación:

Clasificación basada en árboles


Este, como se muestra en la imagen de arriba, tenemos el problema de una explosión
combinatoria, podemos solucionar parte de este tipo de problemas de tipo espacial utilizando
técnicas de clasificación basadas en árboles:

 Se crea un árbol donde cada rama se divide en otras en función de una determinada
característica (atributos)
o Atributos enumerados: una rama por valor
o Atributos con rango numérico: se dividen en intervalos y se crea una rama por
intervalo
 Las hojas representan los diferentes tipos/categorías de elementos
 Se parte de una muestra de datos con clasificación conocida (Training set)
 Se prueba la efectividad del árbol con el resto de los datos (Test set)
 Se dividen los datos según los atributos a considerar sucesivamente hasta que:
o Hemos clasificado todos los datos de la muestra
o Hemos usado todos los atributos considerados para este modelo
Clasificación basada en redes neuronales
Otra técnica que puede usarse para Data Mining serían las redes neuronales (RNA).

 Emulan el comportamiento de la estructura neuronal biológica


o Neurona: unidad mínima de procesamiento
o Las neuronas se encuentran interconectadas
o La conexión entre dos neuronas (memoria) se refuerza o se debilita en base a
aprendizaje
 Neuronas artificiales: nodos que reciben datos de entrada a los que se asocia un peso
y que calculan un valor de salida de acuerdo con una función matemática

 A partir de un conjunto de entrenamiento se determinan cuáles son los pesos de cada


una de las entradas
 Existen distintas estructuras y modelos
o Perceptrón simple
o Perceptrón multicapa

Otras técnicas de Data Mining


 Minería de datos guiada por el usuario
o El usuario plantea una hipótesis y analiza si se verifica o no con los datos
o La hipótesis se suele ir refinando. Como es labor del usuario, se suelen usar
herramientas visuales que permiten representar grandes volúmenes de datos
 Técnicas estadísticas
o Correlación de variables
o Contraste de hipótesis
o Redes bayesianas
Big Data

Definición
Big Data es un término que define un conjunto de datos tan grande (del orden, al menos de TB)
y complejo (desde datos de sensores a social media) que hace que su tratamiento y análisis
sea inabordable usando software, hardware y procesos tradicionales.

Puede éste se inabordable por:

 Volumen
 Velocidad
 Variedad

Aplicaciones
 Análisis de textos
 Análisis de sentimiento
 Reconocimiento de formas
 Análisis de voz
 Análisis de trayectorias

Sensores
Tenemos sensores en todos los sitios, en los supermercados, GPS, en el móvil, en internet,
cuando hacemos clics en sitios web, emails, búsquedas, transacciones…

Podemos obtener los datos de videovigilancia, tráfico, polución, bolsa de acciones, etc.…

En resumen, tenemos una barbaridad de generadores de información que podemos procesar a


nuestro beneficio.
Ciclo de vida en el análisis de Big Data

Se puede dividir en nueve fases, estas son comunes a las usadas en el ETL en Data Warehouses

1. Definir el objetivo que se persigue


2. Definir conjuntos de datos para el análisis y sus fuentes
3. Se recolectan los datos desde las distintas fuentes y se filtra aquello que no es
importante o está corrupto
4. Homogeneización y comprensión de los datos
5. Se validan los datos recogidos de diversas fuentes y se limpian
6. Se agrega y representan los datos
7. Se producen repetidamente los siguientes pasos (y más) para analizar los datos
a. Data Mining
b. Machine Learning
c. Estadística compleja
8. Interpretación para los usuarios
9. Toma de decisiones
Herramientas de Big Data
Para el ALMACENAMIENTO Y GESTIÓN DE DATOS, el volumen de datos es demasiado grande
para los sistemas tradicionales, por lo tanto, se necesita una infraestructura que:

 Pueda almacenar físicamente tal volumen de datos


 Permita consultar los datos a través de consultas
 Permita ejecutar otras herramientas para hacer análisis sobre los datos almacenados
(DM, ML, Estadística, …)

Tenemos las siguientes:

 Apache Hadoop
o Open-source. Motor para el análisis de datos, almacena los datos en un
clúster, utiliza el Hadoop Ditributed File system (HDFS) que es muy útil. Utiliza
también el paradigma MapReduce y utiliza Hbase como su base de datos.
 Apache Spark:
o También Open-source, sirve igualmente para el análisis de datos, pero es más
rápido que Hadoop y es más indicado para procesamiento en tiempo real de
datos
 Apache Storm
o Open-source, permite el procesado de flujos de datos (data streaming), es
decir hace MapReduce en tiempo real, idóneo para real time analytics,
continuous computation, online machine Learning, …
 HPCC System
o Utilizado para la escalabilidad de un sistema
 Apache Samoa
o Scalable Advanced Massive Online Analysis
o Para big data streams y Machine Learning distribuido
 MongoDB
o SGDB NoSQL, diseñado para BD con grandes volúmenes de datos
 Google BigQuery
o La alternativa de Google
 Apache Mahout
o Librerías de ML para hacer algoritmos distribuidos y escalables (sobre Hadoop
normalmente)
 RapidMiner
 R-Programming
Sistemas Legados
Se entiende como sistema legado a aquella tecnología (hardware o software) que se ha
quedado anticuada

La tecnología en los sistemas de información tiende a envejecer muy rápidamente, debido a los
avances de la tecnología que van surgiendo por propia naturaleza.

Todos los sistemas tarde o temprano se vuelven legados y cada vez los sistemas se convierten
en legados con mayor rapidez.

El mantenimiento de sistemas legados es muy caro:

 Sistemas cerrados (sin APIs para poder manipularlos desde otras aplicaciones
 Lenguajes y tecnologías desactualizadas (¿Dónde encontramos expertos en COBOL?)
 Documentación escasa:
o El conocimiento se centra en pocas personas
 Muchos parches
 Datos duplicados, desactualizados e incompletos

Todo esto nos lleva a la pregunta de si deberíamos mantener el sistema o migrarlo.

Construir un sistema con la misma funcionalidad puede ser muy caro y conlleva muchos
riesgos, pero mantenerlo puede ser incluso peor.

Planteamos una serie de estrategias de migración de SI en orden por ascendencia de riesgo y


calidad
Ahora a continuación veremos cada uno de los ítems con un poco más de profundidad.
Reestructurar el sistema legado
 Herramientas que eliminen el código muerto
 Ampliar el espacio para determinados ficheros y/o agrupar datos de diferentes ficheros
para acelerar el sistema
 El mismo sistema más limpio si se hace bien -> pero no se obtiene un sistema
actualizado
 Algunos lo engloban como tareas de mantenimiento

Encapsular el sistema legado


 Se basa en el uso de wrappers (envoltorios/adaptadores)
 Wrapper: módulo para acceder a un sistema concreto ofreciendo una cierta interfaz
(API)

 Metodologías de diseño orientada a objetos encajan perfectamente


 Sobre una misma aplicación pueden existir múltiples wrapper
 Interacción entre múltiples wrappers (redes de wrappers)

 Fundamentalmente existen dos tipos de wrappers:


o Máquina-Máquina: oferta un nuevo API (traducción de llamadas y resultados)
o Humano-Máquina:
 Ofrecer una GUI donde antes sólo había una API (ej. Una clase de Java
que implementa un servicio web-protocolo SOA)
 Ofrece una API donde antes sólo había una GUI o interfaz de texto (ej.
Un script para rellenar los formularios web automáticamente o para
descargar todos los archivos enlazados de una página web)
Sustituir la interfaz del sistema
 Sustituir la GUI del sistema por una actual (tecnología y estilo) llevando a cabo una
migración parcial
 Las aplicaciones legadas no suelen estar estructuradas en capas (en general sólo dos
capas)
 Hoy en día en lugar de sustituir se crean nuevas vistas

Reconstruir las aplicaciones operando con dos sistemas en paralelo (migración


incremental total en paralelo)
1. Crear un nuevo sistema de gestión de datos (en general BD)
2. Migrar un subconjunto de datos
3. Desarrollar parte de la funcionalidad
4. Mantener los dos sistemas de gestión de datos con información consistente
(comunicación bidireccional entre el sistema legado y el sistema en construcción)
5. Incrementalmente repetir los tres pasos anteriores
6. Después de un tiempo empleando los dos sistemas en paralelo quedarse solamente
con el nuevo
7. Durante la convivencia cualquier cambio en el sistema legado tiene que reflejarse en la
nueva

Reconstruir las aplicaciones migrando los datos al comienzo (migración total


incremental)
1. Crear un nuevo sistema de gestión de datos (en general BD)
2. Construir una pasarela (Gateway) de modo que los sistemas legados accedan al nuevo
sistema de gestión de datos (traductor de accesos a datos a SQL)
3. Migrar todos los datos
4. Migrar las aplicaciones de forma incremental Desechar la pasarela (Gateway)
5. Desechar la pasarela (Gateway)
 Peligroso porque el conocimiento adquirido con la manipulación de los datos suele ser
menor que el que se obtiene del análisis de las aplicaciones.
Reconstruir las aplicaciones migrando los datos al final (migración total
incremental)
1. Construir una pasarela (Gateway) de modo que los sistemas nuevos en un principio
accedan al sistema de gestión de datos legado (traductor de SQL a accesos a sistemas
de gestión de datos legados)
2. Migrar las aplicaciones de forma incremental
3. Creación del nuevo sistema de gestión de datos y migración de todos los datos
4. Desechar la pasarela (Gateway)

Crear un sistema nuevo con el mismo objetivo desde cero


 Introducción de nuevas técnicas y tecnologías en la empresa
 Gran inversión en tiempo/dinero de análisis del sistema antiguo, desarrollo,
implantación y pruebas
 Objetivo: un sistema con la misma funcionalidad

Crear un sistema nuevo con un nuevo enfoque empresarial (operativa de negocio,


se replantea todo de nuevo)
 Introducción de nuevas técnicas y tecnologías en la empresa
 Gran inversión en tiempo/dinero de análisis del sistema antiguo, desarrollo y pruebas
 Además de la funcionalidad que se conserva del sistema anterior ofrece nuevas
características basadas en el nuevo enfoque empresarial

También podría gustarte