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
-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.
-
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.