Universidad Yacambú

Vicerrectorado de Educación a Distancia

Maestría en Educación

Cátedra: Innovaciones Pedagógicas

Facilitador: Prof. Yaros Pérez

Autores: -Prof. Fernando L. López Rosario  C.I: 5.971.924  MGE

               -Lic. Mary Parra C.I: 13.579.126  MFN

Sistema de Información Gerencial

Auditar la Seguridad de un Sistema de Datos desarrollado Vía Wed.

Trabajo 8

Conceptos Básicos:

Software: (Voz ingl.). m. Inform. Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora.

 

Libre: (Del lat. liber, -ĕra). adj. Que tiene facultad para obrar o no obrar. || 2. Que no es esclavo. || 3. Que no está preso.

1.- Que es software Libre

    Software Libre se refiere a libertad, no a precio. Se ha utilizado en este sentido desde la década de 1980, la primera definición completa y documentada parece ser la que apareció en el Boletín de GNU, Vol.1 Nro. 6, [1], publicado en enero de 1989. En concreto las cuatro libertades que definen al [ 2] Software Libre:

La libertad de ejecutar el programa para cualquier propósito: Fijar restricciones al uso del Software Libre, tales como restricciones de tiempo («30 días de período de prueba», «la licencia expira el 1º de enero de 2004»), de propósito («se otorga permiso para investigación y uso no comercial» o «no se puede usar para compararlo con otros productos») o de áreas geográficas («No debe ser usado en el país X») hace que un programa no sea libre. 

La libertad de estudiar cómo funciona el programa y de adaptarlo a sus necesidades: Fijar restricciones legales o prácticas sobre la comprensión o modificación de un programa, como la obligación de comprar licencias especiales, la firma acuerdos de no divulgación o para lenguajes de programación que tienen múltiples formas o representaciones añadir dificultades a la comprensión y edición de un programa (del código fuente) con el objetivo de que sea inaccesible, también hace que el software sea privativo (que no sea libre). Sin la libertad de modificar un programa, los usuarios continuarán a merced de un único proveedor.

La libertad de redistribuir copias, para que pueda ayudar al prójimo: El software puede ser copiado y distribuido virtualmente sin coste. Si  no se le permite dar un programa a quien lo necesite, entonces ese programa no es libre. Eso puede hacerse por un precio, si así lo desea.

La libertad de mejorar el programa y poner las mejoras a disposición del público, para que toda la comunidad se beneficie: No todos los programadores son igual de buenos en todos los campos. Y algunas personas no saben programar. Esta libertad permite a aquellos que no tienen el tiempo o las habilidades para resolver un problema, puedan acceder indirectamente a la libertad de modificación. Esto puede hacerse por un coste. Estas libertades son derechos, no obligaciones, aún cuando respetar estas libertades para la sociedad puede obligar algunas veces a los individuos. Cada persona puede elegir no usarlas, pero también puede elegir usar todas ellas. Cabe destacar que aceptar las libertades del Software Libre no excluye de su uso comercial. Si un programa impide el uso o distribución comercial, entonces no es Software Libre. En efecto, un creciente número de empresas basan su modelo de negocios completa o al menos parcialmente en Software Libre, incluyendo algunas de los más grandes proveedores de software privativo. En el Software Libre es legal la proporcionar ayuda y asistencia, aunque no es obligatorio.

Decreto N° 3.390:

 Artículo 1. La Administración Pública Nacional empleará prioritariamente Software Libre desarrollado con Estándares Abiertos, en sus sistemas, proyectos y servicios informáticos. A tales fines, todos los órganos y entes de la Administración Pública Nacional iniciarán los procesos de migración gradual y progresiva de éstos hacia el Software Libre desarrollado con Estándares Abiertos.

Artículo 2. A los efectos del presente Decreto se entenderá por: Software Libre: Programa de computación cuya licencia garantiza al usuario acceso al código fuente del programa y lo autoriza a ejecutarlo con cualquier propósito, modificarlo y redistribuir tanto el programa original como sus
modificaciones en las mismas condiciones de licenciamiento acordadas al programa original, sin tener que pagar regalías a los desarrolladores previos.

Estándares Abiertos: Especificaciones técnicas, publicadas y controladas por alguna organización que se encarga de su desarrollo, las cuales han sido aceptadas por la industria, estando a disposición de cualquier usuario para ser implementadas en un software libre u otro, promoviendo la competitividad, interoperatividad o flexibilidad.

    Software Propietario: Programa de computación cuya licencia establece restricciones de uso, redistribución o modificación por parte de los usuarios, o requiere de autorización expresa del Licenciador. Distribución Software Libre desarrollado con Estándares Abiertos para el Estado Venezolano: Un paquete de programas y aplicaciones de Informática elaborado utilizando Software Libre con Estándares Abiertos para ser utilizados y distribuidos entre distintos usuarios.

2.- Cual es la diferencia entre Postgres y Oracle.

¿Qué es Postgre SQL?

    Postgre SQL es un Sistema de Gestión de Bases de Datos Objeto-Relacionales (ORDBMS) que ha sido desarrollado de varias formas desde 1977. Comenzó como un proyecto denominado Ingres en la Universidad Berkeley de California. Ingres fue más tarde desarrollado comercialmente por la Relational Technologies/Ingres Corporation. En 1986 otro equipo dirigido por Michael Stonebraker de Berkeley continuó el desarrollo del código de Ingres para crear un sistema de bases de datos objeto-relacionales llamado Postgres. En 1996, debido a un nuevo esfuerzo de código abierto y a la incrementada funcionalidad del software, Postgres fue renombrado a Postgre SQL, tras un breve periplo como Postgres95. El proyecto Postgre SQL sigue actualmente un activo proceso de desarrollo a nivel mundial gracias a un equipo de desarrolladores y contribuidores de código abierto. Postgre SQL está ampliamente considerado como el sistema de bases de datos de código abierto más avanzado del mundo. Posee muchas características (las cuales serán discutidas en detalle en la sección denominada ``Juego de Características de Postgre SQL'') que tradicionalmente sólo se podían ver en productos comerciales de alto calibre.

¿Qué es Oracle?

    Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

-       Soporte de transacciones.

-       Estabilidad.

-       Escalabilidad.

-       Soporte multiplataforma.

Diferencias

2.1) Oracle soporta consultas en paralelo cosa que postgre aun ho ha implementado.

2.2) PostgreSQL tiene 5 lenguajes de proceso a diferencia de oracle que solo tiene 1

2.3) En postgreSQL es posible desarrollar tus propios tipos de datos, mientras que en oracle no.

2.4) Las herramientas de configuración de oracle son  mejores que las de oracle.

2.5) Oracle tiene muchos más parámetros de configuración que postgre, sin embargo muchos de ellos son solo conocidos por la misma gente de oracle que manipulan solo si se recibe el soporte oficial de oracle.

2.6) PostgreSQL (licencia BSD), Oracle (licencia comercial).

2.7) La principal diferencia que yo veo entre Oracle y PostgreSQL es la  escalabilidad. PostgreSQL suele soportar gran cantidad de usuarios  conectados simultáneamente a la base de datos mientras Oracle no lo soporta (bases de datos muy grandes).

2.8.) PostgreSQL es software libre, Oracle es software propietario y además, es costoso.

2.9) En PostgreSQL se tiene la posibilidad de escribir tus propias rutinas para la construcción de índices, con Oracle no.

2.10) Oracle requiere comprar software adicional y no puedes desarrollar tus propios tipos.

2.11) PostgreSQL se instalan de forma sencilla muy parecida a MYSQL. Oracle resulta muy difícil de instalar.

2.12) PostgreSQL es una base de datos Objeto Relacional, mientras que Oracle es sólo una base de datos Relacional.

3.- Fortalezas y Debilidades de Postgres.

 

Fortalezas:

-       Seguridad en el acceso a la Base de Datos, a nivel de red.

-       PostgreSQL es un servidor de base de datos relacional orientada a objeto publicado bajo licencia libre BSD, una buena alternativa a MySQL.

-       Instalación ilimitada. Con PostgreSQL.

-       Modelos de negocios más rentables con instalaciones a gran escala.

-       No existe la posibilidad de ser auditado para verificar cumplimiento de licencia en ningún momento.

-       Flexibilidad para hacer investigación y desarrollo sin necesidad de incurrir en costos adicionales de licenciamiento.

-       Mínimos requerimientos de administración.

-       Bajo Costo Total de Operación (TCO).

-       Es conforme a Estándares ANSI

 

 

Debilidades:

 

-       Consume bastantes recursos y carga más el sistema.

-       Por su arquitectura de diseño se necesita aumentar el número de CPU's y la cantidad de RAM.

-       Postgre no soporta consultas en paralelo.

-       No posee muchas herramientas en el mercado.

-       Es mas lento que Oracle.

 

4.- Ubuntu, Apache. Características.

 

    Ubuntu: Es distribuido por GNU/Linux de tipo escritorio basada en Debian, que ofrece un sistema operativo predominantemente enfocado a ordenadores de escritorio aunque también proporciona soporte para servidores.

 

- Es flexible, rápido y eficiente, continuamente actualizado y adaptado a los nuevos protocolos (HTTP 1.1).

-Es Multiplataforma, es decir, corre en una multitud de Sistemas Operativos (FreeBSD, NetBSD, OpenBSD, GNU/Linux, Mac OS, Mac OS X Server, Netware, OpenStep/Match, UNIX comerciales como: AIX, Digital UNIX, HP-UX, IRIX, SCO, Solaris, SunOS, UnixWare, Windows), lo que lo hace prácticamente universal.

-Es una tecnología gratuita de código fuente abierta.

-Es un servidor altamente configurable de diseño modular.

-Permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor.

-Posee una alta configurabilidad en la creación y gestión de logs.

-Se distribuye bajo una licencia especial Apache Software License.

-Es ideal para instalar en máquinas GNU/Linux, que aseguran un S.O. con unas comunicaciones excelentes.

-Es extensibles, gracias a ser modular se han desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de programación del lado del servidor.

-Permite la autenticación de usuarios en varias formas.

-Permite el uso de bases de datos DBM para la autenticación de usuarios.

-Permite la creación de sitios web dinámicos mediante el uso de: CGI's, Server Side Includes (SSI), lenguajes de Scripting (PHP, javascript, Python) Java y páginas jsp.

- Instalación limpia sin sobreescribir el /home: eso significa que podemos reinstalar el sistema sin perder nuestros datos personales.

- Detección de hardware mejorada: si ya era buena en Gutsy, en Hardy aseguran que será mucho mejor.

-GDM más interactivo: se podrá elegir el login según el avatar que tengamos para la cuenta.

-Auto-detección de la frecuencia del monitor: para evitar problemas.

 Y muchas mas.

Apache: Es un servidor web en software libre que permite la creación y publicación de documentos HTML en internet.

-Multiplataforma

-Es un servidor de web conforme al protocolo HTTP/1.1

-Modular: Puede ser adaptado a diferentes entornos y necesidades, con los diferentes módulos de apoyo que proporciona, y con la API de programación de módulos, para el desarrollo de módulos específicos.-Basado en hebras en la versión 2.0

-Incentiva la realimentación de los usuarios, obteniendo nuevas ideas, informes de fallos y parches para la solución de los mismos.

-Se desarrolla de forma abierta-Extensible: gracias a ser modular se han desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de programación del lado del servidor.

-Es flexible, rápido y eficiente, continuamente actualizado y adaptado a los nuevos protocolos (HTTP 1.1).

-Es Multiplataforma, es decir, corre en una multitud de Sistemas Operativos (FreeBSD, NetBSD, OpenBSD, GNU/Linux, Mac OS, Mac OS X Server, Netware, OpenStep/Match, UNIX comerciales como: AIX, Digital UNIX, HP-UX, IRIX, SCO, Solaris, SunOS, UnixWare, Windows), lo que lo hace prácticamente universal.

-Es una tecnología gratuita de código fuente abierta.

-Es un servidor altamente configurable de diseño modular.

-Permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor.

5.- Postgres con Linux. Características.

 -Mejoras de Performance: La versión 8.2 mejora la performance alrededor de un 20% en total en pruebas de sistemas OLTP (procesamiento de transacciones en línea) de alta gama. Los usuarios pueden ganar aún mas en eficiencia en sistemas de análisis de datos (data warehousing). Los cambios incluyen ordenamientos mas rápidos en disco y en memoria, mejor escalabilidad multi-procesador, mejores planes de ejecución en consultas sobre datos particionados, cargas masivas más rápidas y outer joins sumamente acelerados.

-Warm Standby Databases: A través de una extensión de nuestra característica de Recuperación a un punto en el tiempo (incorporada en versión 8.0), los administradores ahora pueden crear fácilmente una copia de su cluster de base de datos.

-Construcción en línea de Índices: La construcción de índices ahora puede ocurrir mientras otras aplicaciones escriben en tablas de la base de datos, permitiendo optimización de performance sin afectar la disponibilidad.

-Características SQL 2003: PostgreSQL, bien conocida por su adherencia a estándares, ha agregado sintaxis para muchas mas características introducidas en la especificación ANSI, incluyendo: funciones de agregación estadística, comandos VALUE multi-fila, UPDATE RETURNING y funciones de agregación multi-columna.

- Cumple completamente con ACID.

-Cumple con ANSI SQL.

-Integridad referencial.

-Replicación (soluciones comerciales y no comerciales) que permiten la duplicación de bases de datos maestras en múltiples sitios de réplica.

-Interfaces nativas para ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python y Ruby.

6.- Como seria el análisis y diseño de un sistema de información usando Postgres.

 

 

CONCEPTOS DE ANÁLISIS Y DISEÑO DE SISTEMAS.

    Los sistemas de información son desarrollados con propósitos diferentes dependiendo de las necesidades del negocio. Los sistemas de procesamiento de transacciones (TPS por sus siglas en inglés) funcionan al nivel operacional de la organización, los sistemas de automatización de oficina (OAS por sus siglas en inglés) y los sistemas de trabajo de conocimiento (KWS por sus siglas en inglés) que dan cabida al trabajo a nivel de conocimiento.

    Los sistemas de más alto nivel incluyen a los sistemas de apoyo a decisiones (DSS por sus siglas en inglés), así como a los sistemas de información gerencial (MIS por sus siglas en inglés). Los sistemas expertos aplican la experiencia de los tomadores de decisiones para resolver problemas específicos estructurados. Al nivel estratégico de la administración encontramos sistemas de apoyo a ejecutivos (ESS por sus siglas en inglés) y los sistemas de apoyo a decisiones de grupo (GDSS por sus siglas en inglés) ayudan a la toma de decisiones al mismo nivel, en una forma sin estructura o semiestructurada.

    Los Sistemas de Información por computadora normalmente están integrados por muchos componentes. En la mayor parte de los casos, es difícil para los analistas entender todos estos componentes aún mismo tiempo; por lo tanto los investigadores tienen que comenzar con preguntas de tipo general con relación al propósito del sistema sus entradas y salidas de los procesos incluidos.

En los grandes proyectos de sistema varios analistas llevan a cabo una investigación en forma seccionada que la distribuye entre ellos mismos, de manera que cada uno pueda trabajar en forma independiente.

    Existen dos estrategias ampliamente utilizadas para determinar los requerimientos de información. Se clasifican en dos tipos:
1. - Flujo de
Datos.
2. -
Estrategias de Análisis de Decisión para el Conocimiento para los Sistema de Información.

Estrategia del Flujo de Datos

    Cuando se siguen un flujo a través de los procesos de negocio, que es el propósito del análisis del flujo de datos, le indica a los analistas una gran cantidad de datos sobre como se esta llevando a cabo los objetivos de la compañía. Al manejar las transacciones y completar las tareas, los datos de entrada se procesan, almacenan, consultan, utiliza, modifica y se emiten. El análisis de flujo de datos que muestra el estudio y el uso de cada actividad, documenta los hallazgos en los diagramas de flujo de datos.

Estrategia del Análisis de Decisiones

    La estrategia del análisis de decisiones es un complemento del análisis del flujo de datos. Esta estrategia realza el estudio de los objetivos de una operación y de las decisiones que deben realizarse para cumplir con los objetivos. Las decisiones se presentan tanto en los niveles operativos como en los de alto nivel gerencial, las estrategias de análisis de decisión con frecuencia

utiliza por parte de alta gerencia para desarrollar la toma de decisiones. La alternativa que selecciona los gerentes responsables en la toma de decisiones, en cuanto a una estrategia de precios entre un conjunto de alternativas, se maneja de forma diferente a la opción que toma un supervisor de departamento para aceptar o rechazar pedidos.

Estudio de Viabilidad.

    Muchas veces cuando se emprende el desarrollo de un proyecto de Sistemas los recursos y el tiempo no son realistas para su materialización sin tener pérdidas económicas y frustración profesional. La viabilidad y el análisis de riesgos están relacionados de muchas maneras, si el riesgo del proyecto es alto, la viabilidad de producir software de calidad se reduce, sin embargo se deben tomar en cuenta cuatro áreas principales de interés:

1.    Viabilidad económica.

Una evaluación de los costos de desarrollo, comparados con los ingresos netos o beneficios obtenidos del producto o Sistema desarrollado.

2.    Viabilidad Técnica.

Un estudio de funciones, rendimiento y restricciones que puedan afectar la realización de un sistema aceptable.

 

3.    Viabilidad Legal.

Es determinar cualquier posibilidad de infracción, violación o responsabilidad legal en que se podría incurrir al desarrollar el Sistema.

    Se hace el sistema bajo Postgres por sus características, cuando se requiere un manejador de Base de Datos GNU, robusto, estable, un motor con soporte para transacciones, soporte de triggers y procedimientos almacenados, lenguaje procedimental (PL/SQL), y una alta disponibilidad y recuperación de fallas (Fortalezas anteriormente descritas).

7. Elaborar un plan de migración de ORACLE a Postgres para una empresa que maneje una razón social en el área administrativa.

   Para realizar un plan de migración de bases de datos, es importante tener conocimiento de los dos manejadores de Bases de Datos, y la mayor experiencia posible, de tal manera que se garantice la migración.

7.1. Análisis de la estructura de datos a migrar.

7.2. Sacar de línea la base de datos (Bajar la base de datos).

7.3. Respaldar los datos.

7.4. Aplicar métodos que puedan ayudar a exportar la estructura y los datos de la base de datos por separado.

7.5. Generar la base de datos nueva en el manejador correspondiente.

7.6. Importar la estructura y los datos hacia la base de datos nueva.

7.7. Validar los datos importados de tal manera que no existan incoherencias en los mismos.

7.8. Poner en línea la base datos (Subir la base de datos).

7.9.   Realizar pruebas de los sistemas con las bases de datos a fin de certificar la funcionalidad.

 

8.- Caso práctico: Suponga que a usted lo contratan como asesor para elaborar un sistema de información de ventas de tickets de entradas para un museo. Cuales serian sus recomendaciones y pasos a seguir.

Las recomendaciones para la elaboración del caso práctico en la WEB serian:

8.1. Aplicar métodos de análisis, diseño y programación (Modular, Orientado Objeto, etc.).

8.2. Utilizar como sistema operativo base LINUX.

8.3. Buscar toda la información necesaria para poder realizar el diseño de la base de datos, ya que se debería normalizar para que no existan campos redundantes.

 

8.4. Se bebería implantar en una maquina que posee buen espacio en disco,  ya que PostgreSQL es una base de datos, y como cualquier base de datos, los requerimientos crecerán a medida que incremente el uso de PostgreSQL.

 

8.5. Disponibilidad de la aplicación.

 

8.6. Sistemas de seguridad.

 

8.7. Viabilidad legal.

 

8.8. Modelado de la arquitectura completa del sistema.

 

8.9. Diseño de la estructura de datos y de la interfaz.

 

8.10. Este sistema es vía WEB por lo tanto se debe tener un servidor Web como apache el cual debe ser configurado de acuerdo a los requerimientos del usuario.

 

 

 

 

Módulos que debe poseer la pagina wed:

 

-       Modulo de cliente: En este módulo el cliente introduce los datos que se piden (se podrá tener un perfil de las personas que están registradas en el sistema) nombre y apellido, cedula de identidad, teléfonos, dirección, número de tarjeta de crédito.

 

-       Modulo de Reservaciones: En este modulo los clientes  reservan sus entradas al museo, se recomienda igualmente la caducidad de reservación  (fin de tener el ingreso esperado).

 

-       Modulo Compras: Este modulo conjuntamente con el modulo de reservaciones ya que el cliente pudiese ingresar directamente al modulo de compras sin haber reservado y la integración con el medio de pago seguro se procedería a la generación del cargo en la cuenta asociada determinada por el cliente a fin de autorizar la generación de la compra del ticket del cliente y su posterior envío a través de Modulo de envío de compras el cual estará relacionado con algún sistema de envíos personalizados  con el que realice un convenio, también pudiese manejarse que el cliente adquiera su ticket  directamente por taquilla por lo que se podría manejar el pago en efectivo.

 

-       Modulo de sugerencias y reclamos: En el caso de que algún cliente desee realizar alguna sugerencia o  reclamo.

 

-       Modulo de pago seguro: Integración con algún medio de pago seguro (Tarjeta de Crédito, Depósitos Bancarios, Transferencias, entre otros).

 

-       Modulo de envió de tiket: Este modulo es para los clientes que quieran entrega del ticket domiciliado.

 

 

 

Referencias

-http://www.gnu.org/bulletins/bull1.txt

-Para la definición completa, vea http://www.gnu.org/philosophy/free-sw.es.html

-Para referencias, vea http://www.opensource.org/advocacy/faq.html : Cómo se relaciona el «Código Abierto»

-El uso de software libre desarrollado con estándares abiertos fortalecerá la industria del software nacional, aumentando y fortaleciendo sus capacidades http://www.scribd.com/doc/9756/Decreto-3390-Software-Libre

-PostgreSQL tiene 5 lenguajes procedurales a diferencia de oracle que solo tiene 1 http://tuxtor.shekalug.org/?p=48

-Apache es el programa servidor HTTP que utilizamos en Valliniello. http://www.oocities.org/SiliconValley/Campus/2208/WEapache.html#carac

-Pardo Díaz, Jose L., “Información y Gerencia". Publicación Digital, E-Libros.

- http://www.linuxparatodos.net/portal/staticpages/index.php?page=servidor-web

-Para saber en que modo estamos arrancando nuestro Linux http://www.postgresql.cl/colabora/inst_pg_01_cf.htm

-Blanco, S. (2005). Manual básico Ubuntu GNU/Linux - Versión (BETA) Breéis. Disponible: http://www.marblestation.com/publicaciones/Ubuntu/2.%20Breezy/breezy_es.compress.pdf.

-Analisis  comparativo de  bases de  datos de  codigo  abierto Vs  codigo cerrado (2006). Disponible: http://www.mysql-hispano.org/articulos/num43/analisis-comparativo.pdf.

-Zabala, Gómez, Ramírez y Ripalda (2006). Modelo de diseño de un sistema de Información espacial corporativo para la confederación hidrográfica del Guadalquivir basado en la coexistencia de software libre y propietario. Disponible:http://www.csae.map.es/csi/tecnimap/tecnimap_2006/01T_PDF/modelo%20de%20dise..pdf.