PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el...

63
PROYECTOS TELEMÁTICOS (Nivel 1)

Transcript of PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el...

Page 1: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

PROYECTOS TELEMÁTICOS

(Nivel 1)

Page 2: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 2

INTRODUCCIÓN A LA COMPETENCIA DEFINIDA COMO DESARROLLO DE PROYECTOS TELEMÁTICOS ..........................................................................3

1. TERMINOLOGÍA RELACIONADA A LOS PROYECTOS TELEMÁTICOS .....5

2. LAS BASES DE DATOS RELACIONALES ................................................16

2.1. Las reglas que hacen que un sistema gestor de base de datos sea relacional. ... 19

2.2. Ventajas de un sistema de base de datos:...................................................... 21

2.3. Componentes de un sistema de base de datos................................................ 23 2.3.1. Datos.............................................................................................................23 2.3.2. Programas......................................................................................................24 2.3.3. Usuarios.........................................................................................................27

2.4. Estructura general de una base de datos........................................................ 29

2.5. Principales bases de datos relacionales .......................................................... 29 2.5.1. SQL ...............................................................................................................30 2.5.2. DB2...............................................................................................................32 2.5.3. Oracle............................................................................................................34 2.5.4. Microsoft SQL Server .......................................................................................36

Características de Microsoft SQL Server .................................................................... 36 2.5.5. POSTGRES .....................................................................................................37 Alta concurrencia............................................................................................................37 Amplia variedad de tipos nativos ......................................................................................38 2.5.6. Microsoft Access .............................................................................................39

Inconvenientes ....................................................................................................... 39

3. CONCEPTOS BÁSICOS SOBRE LOS LEGUAJES DE PROGRAMACIÓN ...41

4. PRINCIPALES TECNOLOGÍAS DE DESARROLLO DE SISTEMAS EN ENTORNOS DISTRIBUIDOS .......................................................................50

4.1. RMI ............................................................................................................ 50 Desarrollando aplicaciones con Java RMI...........................................................................52

4.2. COM/DCOM ................................................................................................. 54

4.3. CORBA ........................................................................................................ 57

5. BIBLIOGRAFÍA.....................................................................................61

6. MAPA CONCEPTUAL .............................................................................62

Page 3: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 3

INTRODUCCIÓN A LA COMPETENCIA DEFINIDA COMO DESARROLLO DE

PROYECTOS TELEMÁTICOS

Definición de la competencia:

Conocimientos sobre la planificación, desarrollo e implantación de sistemas

de información y comunicación, así como sobre herramientas y metodologías

utilizadas.

Conocimientos y Capacidades definidas para esta competencia:

o El vocabulario asociado a lenguajes de programación (entornos, plataformas,

etc.).

o Las principales tecnologías de desarrollo de sistemas en entornos

distribuidos.

o Los principales lenguajes de programación en entornos.

o Los principales conceptos de bases de datos corporativas (Oracle, Sql Server,

DB2, etc.).

Objetivos de aprendizaje. ¿Qué conocimientos y capacidades vas a alcanzar una vez estudiado el contenido del manual?

� Conocerás el vocabulario asociado a lenguajes de programación.

� Obtendrás conocimiento de las principales tecnologías de desarrollo de

sistemas en entornos distribuidos.

� Identificarás los principales lenguajes de programación en entornos.

� Conocerás los principales conceptos de bases de datos corporativas.

Page 4: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 4

Resumen de los contenidos del manual

En este manual vas a encontrar la información básica necesaria relacionada

con el desarrollo de proyectos telemáticos.

En primer lugar nos dedicaremos a definir los términos más importantes

asociados con los proyectos telemáticos.

En segundo lugar nos referiremos a las bases de datos relacionales.

El tercer punto comprende los conceptos básicos sobre los lenguajes de

programación.

La cuarta parte estará dedicada a las tecnologías de desarrollo de sistemas

en entornos distribuidos.

Page 5: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 5

1. TERMINOLOGÍA RELACIONADA A LOS PROYECTOS TELEMÁTICOS

LA TELEMÁTICA:

La Telemática es una disciplina científica y tecnológica que surge de la evolución y

fusión de la telecomunicación y de la informática. El término Telemática se acuñó en

Francia (télématique). En 1976, en un informe encargado por el presidente francés

y elaborado por Simon Nora y Alain Minc (conocido como informe Nora-Minc y

distribuido por el título: "Informatización de la Sociedad") en el que se daba una

visión increíblemente precisa de la evolución tecnológica futura.

Ahora bien, el concepto, también puede ligarse a un origen estadounidense:

compunication, o como se utiliza más habitualmente Computer and

Communications. No obstante, no es casualidad la diferencia entre los términos:

responden a contextos diferentes, en efecto, hay matices claves a distinguir. Para

aclarar esto, conviene situarse en el contexto de la época: por una parte Francia,

ponía claro énfasis en las telecomunicaciones como motor de su transformación

social (1976), mientras que Estados Unidos estaba viviendo una gran revolución de

la informática. Así, compunication apunta a un modelo con mayor relevancia de los

sistemas informáticos; telemática (télématique) por su parte, refiere a un mayor

énfasis en la telecomunicación. Esta diferencia de origen se ha perdido, ya que esta

disciplina científica y tecnológica ha convergido por completo a nivel mundial, para

formar un único cuerpo de conocimiento bien establecido.

La Telemática cubre un campo científico y tecnológico de una considerable

Page 6: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 6

amplitud, englobando el estudio, diseño, gestión y aplicación de las redes y servicios

de comunicaciones, para el transporte, almacenamiento y procesado de cualquier

tipo de información (datos, voz, vídeo, etc.), incluyendo el análisis y diseño de

tecnologías y sistemas de conmutación. La Telemática abarca entre otros conceptos

los siguientes planos funcionales:

• El plano de usuario, donde se distribuye y procesa la información de los

servicios y aplicaciones finales.

• El plano de señalización y control, donde se distribuye y procesa la

información de control del propio sistema, y su interacción con los usuarios.

• El plano de gestión, donde se distribuye y procesa la información de

operación y gestión del sistema y los servicios, y su interacción con los

operadores de la red.

Cada uno de los planos se estructura en subsistemas denominados entidades de

protocolo, que a su vez se ubican en base a su funcionalidad en varios niveles.

Estos niveles son agrupaciones de funcionalidad, y según el Modelo de

interconexión de sistemas abiertos de la Organización Internacional de

Normalización se componen de: nivel físico, nivel de enlace, nivel de red, nivel de

transporte extremo a extremo, nivel de sesión, nivel de presentación y nivel de

aplicación.

Trata también servicios como la tele-educación (e-learning), el comercio electrónico

(e-commerce) o la administración electrónica (e-government), servicios Web, TV

digital, la conmutación y la arquitectura de conmutadores, y también toca temas

como el análisis de prestaciones, modelado y simulación de redes: optimización,

planificación de la capacidad, ingeniería de tráfico y diseño de redes.

Page 7: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 7

Otra modalidad es encontrarla focalizada en una actividad específica como

Telemática Educativa en donde se desarrolla el uso de los recursos telemáticos

dirigidos a la Educación; entre ellos la comunicación interactiva, la distribución de la

información y el uso pedagógico de los servicios..

Sin lugar a duda, la posesión de una red informática de nivel medio, se hace

absolutamente necesaria para poder poner en funcionamiento un sistema de

comunicaciones elemental.

La comunicación, ya sea dentro de un grupo pequeño, a lo largo de una

organización grande o entre distintas organizaciones, se puede mejorar casi siempre

–se puede hacer más fluida, más fácil de recibir y más fácil de responder. La

aplicación WEB, una forma de comunicación multimedia que incluye texto, gráficos,

sonido, vídeo y guiones transmitidos por computadoras, es la plataforma ideal para

la proyección de la comunicación. Aunque son las computadoras las que están

colocadas en el extremo de la transmisión y recepción del WEB, es lo que vincula a

las computadoras lo que da la aplicación web una de sus características más

importantes. El vínculo supone que los emisores y los receptores pueden operar de

manera independiente, (los emisores pueden poner el contenido de acuerdo con su

programación y los receptores pueden recibirlo en cualquier momento a partir de

entonces. El vínculo que se utiliza para la transmisión del contenido del web es un

de los dos modos de conexión en la red, ya sea la internet pública, que utiliza redes

públicas y privadas, incluyendo la línea de teléfono, o una intranet privada, que

utiliza una red de área local (LAN), generalmente dentro de una organización.

INTERNET Y WORLD WIDE WEB

Page 8: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 8

Internet y World Wide Web (el Web) son los cimientos de una revolución en el

ámbito global en las comunicaciones que ha cambiado el modo en que la gente se

comunica, trabaja y dirige sus negocios. Ambos facilitan y abaratan el intercambio

de información, ideas y productos a través del globo. Acceder a un sitio web de

Australia es tan fácil como acceder a un sitio web situado en la acera de enfrente.

Cualquier Centro Educativo puede tener acceso a la red de redes por poco dinero.

Con un servidor, o un ordenador que haga esas funciones, un colegio que disponga

de dos o tres ordenadores conectados en red y la posibilidad de tener un router con

acceso telefónico ya puede pensar en dar su primer paso para disponer de

presencia en internet. Esta es una condición "sine quo non" para proyectar el centro

al exterior.

Utilizando cualquier aplicación web podemos diseñar el sitio web institucional y

abrir, de esta manera, una ventana o escaparate que facilite y agilice la

comunicación entre el centro, los alumnos y las familias.

Page 9: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 9

LAN E INTRANET

La misma importancia que ha adquirido internet para la sociedad la han adquirido

las redes de área local (LAN), o aún más, para el intercambio de información y

comunicación dentro de las organizaciones. Las LAN empezaron como un medio

para compartir programas y archivos de datos entre diversas personas de una

misma organización. Esto se amplió al parecer el correo electrónico (correo-e) para

enviar y recibir mensajes a través de la LAN. Recientemente se han añadido

intranets a la LAN para proporcionar una versión en miniatura del Word, Wide Web

dentro de una organización.-un lugar donde la gente puede colocar y leer

documentos con textos y gráficos en el momento que elija.

Un buen ejemplo de uso que se puede dar a una intranet sería un informe de un

proyecto. En vez de enviar una actualización semanal por correo electrónico a una

lista larga de personas que puedan estar interesadas (y llenar la bandeja de entrada

de cada una de ellas durante el proceso), se podría poner una página web en la que

no solamente se incluiría una información sobre el estado actual del proyecto, sino

también otro tipo de información, como la gente que está trabajando en el mismo,

las metas y su financiación. De este modo, las personas realmente interesadas

podrían obtener esta información.

Como definición del término intranet : "Red de comunicación interna diseñada sobre

la base de los protocolos de internet (TCP/IP) que puede estar o no conectada a

ésta y que enlaza múltiples usuarios".

La tecnología intranet permite a usuarios de empresas, y organizaciones trabajar de

forma más eficiente facilitándoles la información que precisan. A un nivel muy

básico, una intranet es el lugar común donde poner toda la información que pueda

Page 10: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 10

necesitar cualquiera de sus empleados para llevar a cabo con éxito su labor diaria.

Con el proyecto de una red local, la intranet es un vehículo gracias al cual se

reducen los tiempos de búsqueda de datos y se coordinan proyectos de trabajo ya

que permite archivar el trabajo electrónicamente y volverlo a encontrar de manera

muy rápida. El propio servidor de red de la LAN puede ser el equipo encargado de

manejar el tráfico en código HTML, depositados en su propio disco duro, para que

mediante un navegador Web todos los usuarios puedan acceder a la información

organizada como si de una internet interna sé tratarse.

CONFECCIÓN DE PÁGINAS WEB

Una aplicación web consta de una o más páginas web conectadas entre sí. Una

página web es un archivo de texto que contiene lenguaje de marcas de hipertexto

(HTML), etiquetas de formato y vínculos a archivos de gráficos y a otra página web.

Es la capacidad y la habilidad en la confección y diseño de estas páginas donde

radica uno de los puntos más importantes a la hora de poner en funcionamiento, de

manera independiente, todo el entramado que rodea a las intranet e internet. Hoy

en día cualquier persona puede diseñar una página web con ayuda del programa

adecuado. (Solamente utilizando un editor de texto como Word, podemos elabora

páginas web)

Page 11: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 11

TELEDUCACIÓN

Además de las posibilidades que Internet pueda ofrecer a los alumnos que

conociendo sus posibilidades se sirvan de la red como complemento a sus estudios,

trabajo, etc. La red de redes, ofrece otra variedad de aprendizaje a los estudiantes y

que se constituye como una perfecta alternativa a la tradicional educación a

distancia.

Estamos hablando de lo que por el momento se conoce como Teleducación o

Telenseñanza. Esta nueva forma de impartir y adquirir educación, a la que

actualmente se tiende, consiste en una fórmula de enseñanza no presencial con una

metodología basada en la distribución de material didáctico multimedia (disquetes,

programas multimedia, videos...), y en el uso permanente del correo electrónico

como medio de comunicación entre profesores y alumnos, o entre ellos mismos.

Ésta puede ser utilizada no sólo por centros educativos de carácter oficial y

extraoficial, sino que con ellas, miles de organizaciones podrían impartir cursos de

todo tipo. Desde clases de cocina, hasta de astrología, podrían ser impartidos on

line. De hecho se está asistiendo a una cada vez mayor presencia de instituciones y

organizaciones que se dedican a ofrecer cursos de los más variados temas.

La teleducación ofrece la posibilidad de realizar, sin salir de casa, cursos en el

extranjero que de otra manera serían muy costosos, y que ahora podrán lucir en los

curriculums de muchos usuarios de Internet.

Con ello además se consigue una mayor disponibilidad del profesor-tutor a cualquier

hora del día, pues pueden mantener intercambios con otros alumnos sobre los

contenidos. Asimismo se disminuye el aislamiento que generalmente siente el

alumno de la formación a distancia convencional.

Page 12: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 12

PLATAFORMA DE DESARROLLO

Una plataforma de desarrollo es el entorno de software común en el cual

se desenvuelve la programación de un grupo definido de aplicaciones.

Comúnmente se encuentra relacionada directamente a un sistema operativo;

sin embargo, también es posible encontrarla ligada a una familia de lenguajes

de programación o a una Interfaz de programación de aplicaciones (API por

sus siglas en inglés).

Ejemplos de plataformas son PC (Windows) y Macintosh (Mac)

SISTEMA OPERATIVO

Un sistema operativo es un software de sistema, es decir, un conjunto de

programas de computadora destinado a permitir una administración eficaz de

sus recursos. Comienza a trabajar cuando se enciende el ordenador, y

gestiona el hardware de la máquina desde los niveles más básicos,

permitiendo también la interacción con el usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los

aparatos electrónicos que utilicen microprocesadores para funcionar, ya que

gracias a éstos podemos entender la máquina y que ésta cumpla con sus

funciones (teléfonos móviles, reproductores de DVD, PDAs, ordenadores,

etc.).

Page 13: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 13

Entorno es otra de las denominaciones que se utilizan para definir el sistema

operativo en el que se trabaja. Los sistemas operativos DOS o UNIX son

entornos basados en texto, mientras que Windows, OS2 o MacOS son

entornos gráficos.

Linux es un entorno basado en texto, aunque en las distribuciones actuales

existen entornos gráficos para el mismo.

SOFTWARE

Software , palabra proveniente del inglés, también denominado

equipamiento lógico o soporte lógico, es el conjunto de los componentes

intangibles de una computadora, es decir, el conjunto de programas y

procedimientos necesarios para hacer posible la realización de una tarea

específica, en contraposición a los componentes físicos del sistema

(hardware). Esto incluye aplicaciones informáticas tales como un procesador

de textos, que permite al usuario realizar una tarea, y software de sistema

como un sistema operativo, que permite al resto de programas funcionar

adecuadamente, facilitando la interacción con los componentes físicos y el

resto de aplicaciones.

Bajo esta definición, el concepto de software va más allá de los programas de

cómputo en sus distintas formas: código fuente, binario o ejecutable, además

de su documentación: es decir, todo lo intangible.

Page 14: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 14

APLICACIÓN

Aplicación es un programa informático diseñado para facilitar al usuario la

realización de un determinado tipo de trabajo. Posee ciertas características

que lo diferencian de un sistema operativo (que hace funcionar al

ordenador), de una utilidad (informática) (que realiza tareas de

mantenimiento o de uso general) y de un Lenguaje de programación (con el

cual se crean los programas informáticos). Suele resultar una solución

informática para la automatización de ciertas tareas complicadas como

pueden ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones

desarrolladas 'a medida' suelen ofrecer una gran potencia ya que están

exclusivamente diseñadas para resolver un problema específico. Otros,

llamados paquetes integrados de software, ofrecen menos potencia pero a

cambio incluyen varias aplicaciones, como un programa procesador de textos,

de hoja de cálculo y de base de datos.

Los programas de aplicación se dividen en muchos tipos, entre los cuales se

pueden nombrar: procesadores de texto, hojas electrónicas o de cálculo,

manejo de base de datos, Comunicación de datos, Multimedia,

presentaciones, diseño gráfico, cálculo, finanzas, correo electrónico,

compresión de archivos, presupuestación de obras, gestión de empresas, étc.

Algunas compañías agrupan varios programas de distinta naturaleza para que

formen un paquete (llamados suites o suite ofimática) que sean satisfactorios

para las necesidades más apremiantes del usuario. Todos y cada uno de ellos

sirven para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas útiles

con el ordenador (o computadora); algunos con ciertas prestaciones, otros

con equis diseño; unos son más amigables o fáciles de usar.

Page 15: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 15

LENGUAJE DE PROGRAMACIÓN

Un lenguaje de programación es un lenguaje que puede ser utilizado para

controlar el comportamiento de una máquina, particularmente una

computadora. Consiste en un conjunto de símbolos y reglas sintácticas y

semánticas que definen su estructura y el significado de sus elementos y

expresiones.

Aunque muchas veces se usa lenguaje de programación y lenguaje

informático como si fuesen sinónimos, no tiene por qué ser así, ya que los

lenguajes informáticos engloban a los lenguajes de programación y a otros

más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas

web).

Page 16: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 16

2. LAS BASES DE DATOS RELACIONALES

El término base de datos fue acuñado por primera vez en 1963, en un simposio

celebrado en California.

De forma sencilla podemos indicar que una base de datos no es más que un

conjunto de información relacionada que se encuentra agrupada o estructurada.

El archivo por sí mismo, no constituye una base de datos, sino más bien la forma en

que está organizada la información es la que da origen a la base de datos. Las

bases de datos manuales, pueden ser difíciles de gestionar y modificar. Por ejemplo,

en una guía de teléfonos no es posible encontrar el número de un individuo si no

sabemos su apellido, aunque conozcamos su domicilio.

Del mismo modo, en un archivo de pacientes en el que la información esté

desordenada por el nombre de los mismos, será una tarea bastante engorrosa

encontrar todos los pacientes que viven en una zona determinada. Los problemas

expuestos anteriormente se pueden resolver creando una base de datos

informatizada.

Desde el punto de vista informático, una base de datos es un sistema formado por

un conjunto de datos almacenados en discos que permiten el acceso directo a ellos

y un conjunto de programas que manipulan ese conjunto de datos.

Page 17: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 17

Desde el punto de vista más formal, podríamos definir una base de datos como un

conjunto de datos estructurados, fiables y homogéneos, organizados

independientemente en máquina, accesibles a tiempo real, compartibles por

usuarios concurrentes que tienen necesidades de información diferente y no

predecibles en el tiempo.

La idea general es que estamos tratando con una colección de datos que cumplen

las siguientes propiedades:

• Están estructurados independientemente de las aplicaciones y del soporte de

almacenamiento que los contiene.

• Presentan la menor redundancia posible.

• Son compartidos por varios usuarios y/o aplicaciones.

Base de datos relacionales

En una computadora existen diferentes formas de almacenar información. Esto da

lugar a distintos modelos de organización de la base de datos: jerárquico, red,

relacional y orientada a objeto.

Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos

de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final,

períodos cortos de aprendizaje y las consultas de información se especifican de

forma sencilla.

Page 18: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 18

Las tablas son un medio de representar la información de una forma más compacta

y es posible acceder a la información contenida en dos o más tablas. Más adelante

explicaremos que son las tablas.

Las bases de datos relacionales están constituidas por una o más tablas que

contienen la información ordenada de una forma organizada. Cumplen las siguientes

leyes básicas:

• Generalmente, contendrán muchas tablas.

• Una tabla sólo contiene un número fijo de campos.

• El nombre de los campos de una tabla es distinto.

• Cada registro de la tabla es único.

• El orden de los registros y de los campos no está determinados.

• Para cada campo existe un conjunto de valores posible.

Page 19: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 19

2.1. Las reglas que hacen que un sistema gestor de base de datos sea relacional.

Antes de poner las reglas recordamos lo que era un sistema gestor de base de

datos:

Un sistema gestor de base de datos se define como el conjunto de programas que

administran y gestionan la información contenida en una base de datos.

Se establecen 12 reglas por las cuales la base de datos es relacional:

• Regla de información: Toda la información está representada lógicamente en

tablas.

• Tratamiento sistemático de valores nulos: debe soportar valores nulos de

forma automática independientemente del tipo de dato.

• Regla de acceso garantizado: Se tiene que poder acceder a cada dato

mediante la combinación del nombre de la tabla, la columna que lo contiene

y la clave primaria de la fila.

• Regla de sublenguaje completo: Debe permitir un lenguaje cuya sintaxis este

bien definida para la manipulación de la base de datos.

• Catalogo on-line: Un usuario tiene que poder acceder a dicho catalogo con su

usuario y contraseña.

• Inserción, modificación y borrado de alto nivel: Debe ser posible realizar

dichas operaciones sin alterar los demás datos.

• Actualización de vista: Se debe poder actualizar las vistas por el sistema

gestor.

Page 20: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 20

• Independencia física de los datos: la forma de almacenar los datos no influye

en la manipulación de los mismos.

• Independencia lógica de los datos: los cambios sobre los objetos de la base

de datos no tienen porque afectar a los usuarios y programas.

• Independencia de distribución: los programas no se tienen porque alterar al

redistribuir los datos.

• Independencia de integridad: las restricciones de integridad se almacenan y

crean en el sistema gestor y no en los programas.

• Regla de no subversión: Si un sistema gestor de base de datos tiene un

lenguaje de bajo nivel, este lenguaje no se puede utilizar para destruir o

evitar las reglas de integridad o las restricciones expresadas en el lenguaje

relacional de alto nivel.

Si un sistema gestor de base de datos cumple con estas doce reglas se puede

afirmar que se trata de un sistema gestor de base de datos relacional o lo que es lo

mismo SGBDR

Page 21: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 21

2.2. Ventajas de un sistema de base de datos:

Eliminación/Reducción de Redundancia:

Por redundancia se entiende información repetida dentro del sistema de base de

datos (SBD).

Lo ideal es eliminar la redundancia, aunque en determinados casos se usa teniendo

en cuenta que al utilizar redundancia cualquier cambio hay que transmitirlo a todas

las redundancias. (Propagación automática de actualizaciones).

Ejemplo: En un sistema de ficheros podríamos tener dos programas uno de

cuentas corrientes y otro de préstamos; cada uno con un fichero mientras que en

un s.b.d. con un solo fichero bastaría.

Eliminación de Inconsistencias:

En los s.b.d se eliminan las inconsistencias, que son valores erróneos en las bases

de datos. Esto es que existan un mismo dato en más de un sitio con valores

distintos (muy relacionado con la Redundancia).

Otro tipo de inconsistencias son valores erróneos en el s.b.d. Esto es por ejemplo

marcar en horas trabajadas 400 en lugar de 40. Para esto los s.b.d. nos van a

ayudar dándonos la posibilidad de imponer restricciones sobre los datos (estas

restricciones serán globales).

Page 22: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 22

Normas de Representación:

Los datos los vamos a representar en la Base de Datos de forma idéntica.

Imponer restricciones de seguridad:

Nos permite especificar a que usuarios se los permitirá acceder a los datos, a todos

o a parte de ellos.

En un sistema de ficheros cada aplicación tenía que imponer sus propias

restricciones, mientras en un s.b.d. imponemos restricciones globales.

Compartición de los datos:

Nos permite compartir los datos entre usuarios y aplicaciones.

Los Programas no se hacen teniendo en cuenta los datos (es decir, no se tienen en

cuenta su aspecto lógico o estructural).

Compartir datos viene dado por la característica de independencia de los datos, esto

es poder modificar los datos sin modificar los programas y modificar los programas

sin modificar los datos.

Page 23: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 23

2.3. Componentes de un sistema de base de datos

Los componentes de un sistema de base de datos serán:

- Datos.

- Programas.

- Usuarios.

- Maquinas. (En este no profundizaremos).

2.3.1. Datos.

Los datos o el conjunto de datos es lo que se conoce como la Base de Datos.

Dentro de aquí tendremos:

• Datos (Ficheros de datos)

• Índices.

• Diccionarios de datos.

• Ficheros con estadísticas de uso de la base de datos.

Page 24: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 24

2.3.2. Programas.

Los Programas son lo que conoceremos como DBMS (Data Base Management

System) o SGBD (Sistema Gestor de Base de Datos). Dentro de este manejo nos

van a permitir hacer dos funciones principalmente:

1.- Definición de las estructuras para almacenar los datos.

2.- Manejo de los datos.

Además de estas dos cosas el DBMS se ocupara de muchas más cosas como control

de acceso, control de inconsistencias, etc.

A estas dos características se nos permitirá acceder a ellas desde tres niveles de

complejidad (o abstracción), estos tres niveles de abstracción serán:

Nivel Físico:

- Será desde donde se va a ver la Base de Datos tal y como es.

- Se verán la forma de almacenar los datos.

- Aquí hablaremos de Registros.

- Se representara con lo que conoce como Esquema Físico.

Nivel Conceptual:

Page 25: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 25

- Es mucho más próximo a nosotros.

- Aquí definiremos la base de datos con objetos del mundo real y por relaciones entre

estos objetos.

- Hablaremos de Entidades y Relaciones.

- Para representar el nivel conceptual usaremos el Esquema Conceptual, que va a ser

una representación del mundo real:

- Para hacer el paso del mundo real al esquema conceptual nos apoyaremos en

modelos de datos, que son herramientas formales que nos van a permitir nombrar y

definir los objetos del mundo real.

Nivel de Visión:

- Es un nivel de abstracción Superior.

- Es una visión lógica de parte o de toda la base de datos.

- Para cada usuario se crea un esquema de visión distinto.

- Aquí tenemos un Esquema de Visión. También se conoce como subesquema, se suele

utilizar para no agobiar al usuario con información innecesaria y para proteger la base

Page 26: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 26

de datos.

Page 27: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 27

2.3.3. Usuarios

Dentro de los usuarios tenemos distintos tipos dependiendo de la forma en la que

interactúan con la misma:

• Programadores de aplicaciones:

- Son personas con conocimientos de programación (usuarios complejos).

- Interactúan con el sistema por medio de llamadas con DML embebidas en algún

lenguaje de alto nivel.

• Usuarios Especializados:

- Son usuarios con conocimientos del lenguaje de base de datos.

- Interactúan con el sistema mediante el manejo de datos o mediante el DML.

• Usuarios Normales (Operadores):

- Tienen escasos conocimientos del lenguaje de base de datos.

- Interactúan con el sistema mediante aplicaciones de base de datos que ya han sido

creadas por programadores.

Page 28: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 28

• Administrador de la Base de datos (DBA: Database Administrator):

Por lo general es un grupo de personas que se encarga de gestionar la base de datos.

Sus funciones son:

- Se encargan de crear los distintos esquemas de la base de datos (Físico y conceptual).

- Están encargados de crear los distintos subesquemas correspondientes a cada nivel o

usuario.

- También se encargan de especificar que reglas deben cumplir los datos.

- Y son los encargados de imponer las restricciones de seguridad de la base de datos.

Page 29: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 29

2.4. Estructura general de una base de datos

2.5. Principales bases de datos relacionales

Page 30: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 30

2.5.1. SQL

El Lenguaje de consulta estructurado (SQL [/esecuele/ en español, /sicuèl/ en

inglés] Structured Query Language) es un lenguaje declarativo de acceso a bases

de datos relacionales que permite especificar diversos tipos de operaciones sobre las

mismas. Una de sus características es el manejo del álgebra y el cálculo relacional

permitiendo lanzar consultas con el fin de recuperar información de interés de una

base de datos, de una forma sencilla. Es un lenguaje de cuarta generación (4GL).

Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970

E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso

a los datos basado en el cálculo de predicados. Basándose en estas ideas, los

laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry

Language) que más tarde sería ampliamente implementado por el SGBD

experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue

Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.

El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión

evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los

diversos SGBD relacionales surgidos en los años siguientes y es por fin

estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de

este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también

adoptado por la ISO.

Sin embargo este primer estándar no cubre todas las necesidades de los

Page 31: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 31

desarrolladores e incluye funcionalidades de definición de almacenamiento que se

consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y

revisado del SQL llamado SQL-92 o SQL2.

En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD

comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las

distintas implementaciones comerciales del lenguaje es amplia, el soporte al

estándar SQL-92 es general y muy amplio.

El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y

potencia de los sistemas relacionales permitiendo gran variedad de operaciones

sobre los mismos. Es un lenguaje declarativo de alto nivel o de no

procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de

conjuntos de registros, y no a registros individuales, permite una alta productividad

en codificación. De esta forma una sola sentencia puede equivaler a uno o más

programas que utilizasen un lenguaje de bajo nivel orientado a registro.

Como suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el

SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no

cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden

de ejecución. El orden de ejecución interno de una sentencia puede afectar

gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a

cabo una optimización antes de la ejecución de la misma. Muchas veces, el uso de

índices acelera una instrucción de consulta, pero ralentiza la actualización de los

datos, dependiendo del uso de la aplicación, se priorizará el acceso indexado o una

rápida actualización de la información. La optimización difiere sensiblemente en

Page 32: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 32

cada motor de base de datos y depende de muchos factores. Existe una ampliación

de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases

de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a

nivel experimental y está evolucionando rápidamente.

2.5.2. DB2

DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el

sistema de gestión de base de datos.

DB2 versión 9 es un motor de base de datos relacional que integra XML de manera

nativa, lo que IBM ha llamado pureXML, que permite almacenar documentos

completos dentro del tipo de datos xml para realizar operaciones y búsquedas de

manera jerárquica dentro de éste, e integrarlo con búsquedas relacionales.

DB2 Express-C es la versión gratuita, soportada por la comunidad, de DB2 que

permite desarrollar, implementar y distribuir aplicaciones que no usen las

características avanzadas de las versiones comerciales de DB2. Esta versión de DB2

puede ser concebida como el núcleo de DB2, las diferentes ediciones incluyen las

características de Express-C más funcionalidades específicas.

Gracias a su alcance global y de bajo costo, Internet puede ser una solución de

negocios muy poderosa para realizar operaciones comerciales garantizando un nivel

de seguridad y confiabilidad con sus servicios de autorización y autenticación

integrados a redes y sistema operativos, soportando el network computing

utilizando Java y JDBC, incluyendo capacidad nativa de almacenar varios tipos de

datos: alfanuméricos, video, imagen, audio y los definidos por el usuario.

DB2 y SQL Server tenían grandes compañías detrás con otros negocios que les

Page 33: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 33

permitió aguantar la política agresiva de Oracle. Recientemente IBM adquirió

Informix con lo que el mercado de las bases de datos comerciales en UNIX (Linux)

quedó entre IBM y Oracle.

Permite el manejo de objetos grandes (hasta 2 GB), la definición de datos y

funciones por parte del usuario, el chequeo de integridad referencial, SQL recursivo,

soporte multimedia: texto, imágenes, video, audio; queries paralelos, commit de dos

fases, backup/recuperación online y offline.

Además cuenta con un monitor gráfico de performance el cual posibilita observar el

tiempo de ejecución de una sentencia SQL y corregir detalles para aumentar el

rendimiento.

Mediante los extensores se realiza el manejo de los datos no tradicionales, por

ejemplo si tengo un donde tengo almacenados los curriculums de varias personas,

mediante este puedo realizar búsquedas documentos con los datos que me

interesen sin tener que ver los CV uno por uno.

Esta capacidad se utiliza en sistemas de búsqueda de personas por huellas digitales,

en sistemas información geográfica, etc.

Internet es siempre la gran estrella, con DB2 es posible acceder a los datos usando

JDBC (tan potente como escribir directamente C contra la base de datos), Java y

SQL (tanto el SQL estático, como complementa el SQL dinámico).

• Plataformas host:

OS/390(MVS), VM & VSE, OS/400

Page 34: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 34

• Plataformas de servidor:

OS/2 Warp Server, Sinix, SCO Openserver, Windows NT, Aix, HP Ux, Solaris.

• Plataformas Cliente:

OS/2, DOS, Sinix, SCO OpenServer, Windows 3.1/95/NT, Macintosh System 7, Aix,

HP Ux, Solaris.

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

• Es multiplataforma.

Aunque su dominio en el mercado de servidores empresariales ha sido casi total

hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server de

Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySql

Page 35: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 35

o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar

bajo Linux.

Oracle surge a finales de los 70 bajo el nombre de Relational Software a partir de

un estudio sobre SGBD (Sistemas Gestores de Base de Datos) de George Koch.

Computer World definió este estudio como uno de los más completos jamás escritos

sobre bases de datos. Este artículo incluía una comparativa de productos que erigía

a Relational Software como el más completo desde el punto de vista técnico. Esto se

debía a que usaba la filosofía de las bases de datos relacionales, algo que por

aquella época era todavía desconocido.

En la actualidad, Oracle (Nasdaq: ORCL) todavía encabeza la lista. La tecnología

Oracle se encuentra prácticamente en todas las industrias alrededor del mundo y en

las oficinas de 98 de las 100 empresas Fortune 100. Oracle es la primera compañía

de software que desarrolla e implementa software para empresas 100 por ciento

activado por Internet a través de toda su línea de productos: base de datos,

aplicaciones comerciales y herramientas de desarrollo de aplicaciones y soporte de

decisiones. Oracle es el proveedor mundial líder de software para administración de

información, y la segunda empresa de software.

Page 36: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 36

2.5.4. Microsoft SQL Server

Microsoft SQL Server es un sistema de gestión de bases de datos relacionales

(SGBD) basado en el lenguaje Transact-SQL, y específicamente en Sybase IQ, capaz

de poner a disposición de muchos usuarios grandes cantidades de datos de manera

simultánea. Así de tener unas ventajas que a continuación se pueden describir.

Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes

sistemas gestores de bases de datos como son Oracle, Sybase ASE, PostgreSQL

o MySQL.

Características de Microsoft SQL Server

• Soporte de transacciones.

• Escalabilidad, estabilidad y seguridad.

• Soporta procedimientos almacenados.

• Incluye también un potente entorno gráfico de administración, que permite el

uso de comandos DDL y DML gráficamente.

• Permite trabajar en modo cliente-servidor, donde la información y datos se

alojan en el servidor y las terminales o clientes de la red sólo acceden a la

información.

• Además permite administrar información de otros servidores de datos.

Es común desarrollar completos proyectos complementando Microsoft SQL Server y

Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma

se completa una potente base de datos (Microsoft SQL Server), con un entorno de

desarrollo cómodo y de alto rendimiento (VBA Access), a través de la

implementación de aplicaciones de dos capas mediante el uso de formularios

Page 37: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 37

Windows.

Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL

Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas

.NET, pero el servidor solo está disponible para Sistemas Operativos Windows.

2.5.5. POSTGRES

PostgreSQL es un servidor de base de datos relacional orientada a objetos de

software libre, liberado bajo la licencia BSD.

Como muchos otros proyectos opensource, el desarrollo de PostgreSQL no es

manejado por una sola compañía sino que es dirigido por una comunidad de

desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo.

Dicha comunidad es denominada el PGDG (PostgreSQL Global Development

Group).

Algunas de sus principales características son:

Alta concurrencia

Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus

siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla,

otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene

una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es

superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando

la necesidad del uso de bloqueos explícitos.

Page 38: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 38

Amplia variedad de tipos nativos

PostgreSQL provee nativamente soporte para:

• Números de precisión arbitraria.

• Texto de largo ilimitado.

• Figuras geométricas (con una variedad de funciones asociadas)

• Direcciones IP (IPv4 e IPv6).

• Bloques de direcciones estilo CIDR.

• Direcciones MAC.

• Arrays.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que

pueden ser por completo indexables gracias a la infraestructura GiST de

PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto

PostGIS.

Page 39: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 39

2.5.6. Microsoft Access

Microsoft Access es un programa Sistema de gestión de base de datos relacional

creado y modificado por Microsoft para uso personal de pequeñas organizaciones.

Es un componente de la suite Microsoft Office aunque no se incluye en el paquete

"básico". Una posibilidad adicional es la de crear ficheros con bases de datos que

pueden ser consultados por otros programas.

Es un software de gran difusión entre pequeñas empresas (PYMES) cuyas bases de

datos no requieren de excesiva potencia, ya que se integra perfectamente con el

resto de aplicaciones de Microsoft y permite crear pequeñas aplicaciones con unos

pocos conocimientos del Programa.

Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la

respuesta a proyectos de programación de pequeño y mediano tamaño.

Inconvenientes

Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios)

es recomendable usar otros sistemas como MySQL o Microsoft SQL Server, y código

VBA (Visual Basic para Aplicaciones).

Entre sus mayores inconvenientes figuran que no es multiplataforma, pues sólo está

disponible para sistemas operativos de Microsoft, y que no permite transacciones.

Su uso es inadecuado para grandes proyectos de software que requieren tiempos

de respuesta críticos o muchos accesos simultáneos a la base de datos.

Page 40: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 40

Microsoft Access usa las siguientes extensiones para guardar sus datos:

.mdb -Base de datos de Access (Versión 2003 y anteriores)

.mde -Base de datos de Access protegida, con macros (Versión 2003 y anteriores)

.accdb - Base de datos de Access (Versión 2007)

.accde - Base de datos de Access protegida, con macros (Versión 2007 y anteriores)

.mam - Macro de Access

.maq - Consulta de Access

.mar - Informe de Access

.mat - Tabla de Access

.maf - Formulario de Access

.adp - Proyecto de Access

.adn - Plantilla de proyecto de Access

Page 41: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 41

3. CONCEPTOS BÁSICOS SOBRE LOS LEGUAJES DE PROGRAMACIÓN

Tecnología

Dentro del campo de la telemática, la tecnología tiene el objetivo de eliminar las

tareas repetitivas, facilitando el trabajo y haciéndolo más eficiente así como

aumentando la productividad y los beneficios de la empresa.

Programación

La programación es una de las etapas más importantes del ciclo de vida de un

proyecto, y requiere un método de trabajo. La programación es el resultado de

dicho trabajo.

La programación es el instrumento que permite la ejecución de las tareas

automatizadas de un sistema informático.

Las herramientas que utilizaremos para programar son los lenguajes de

programación, a través de las cuales codificaremos los programas.

Programa

Conjunto de instrucciones entendibles por el ordenador que permiten realizar un

trabajo o resolver un problema.

Un programa debe ser finito, es decir, tiene que tener un inicio y un fin. Tiene que

estar bien confeccionado para que, al introducir un dato, salga una solución y si se

volviese a introducir el mismo dato, saliese de nuevo la misma solución.

Page 42: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 42

Metodología de la programación

Se entiende como metodología de la programación al conjunto de normas, métodos

y anotaciones que nos indican la forma de programar.

Cada lenguaje de programación sigue una metodología distinta.

Lenguaje de programación

Es un conjunto de reglas semánticas así como sintácticas que los programadores

usan para la codificación de instrucciones de un programa o algoritmo de

programación.

Existen varios lenguajes de programación.

Entorno de programación o entorno de desarrollo

Es el conjunto de herramientas utilizadas para la elaboración de un programa.

Recursos

Conjunto de componentes hardware que utilizaremos para la elaboración de un

programa (cpu, disco duro…..).

Una vez conocidos los conceptos básicos necesarios para el aprendizaje de la

programación podemos empezar a ver los diferentes tipos de lenguajes de

programación.

Page 43: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 43

Tipos de lenguaje de programación

Existen dos tipos de lenguajes claramente diferenciados; los lenguajes de bajo nivel

y los de alto nivel.

El ordenador sólo entiende un lenguaje conocido como código binario o código

máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar

cualquier acción.

Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de

bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se

denominan lenguajes de alto nivel.

Lenguajes de bajo nivel

Son lenguajes totalmente dependientes de la máquina, es decir que el programa

que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras

maquinas.

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las

características del mismo.

Dentro de este grupo se encuentran:

- El lenguaje maquina: este lenguaje ordena a la máquina las operaciones

fundamentales para su funcionamiento. Consiste en la combinación de 0's y

1's para formar las ordenes entendibles por el hardware de la maquina.

Este lenguaje es mucho más rápido que los lenguajes de alto nivel.

La desventaja es que son bastantes difíciles de manejar y usar, además de

tener códigos fuente enormes donde encontrar un fallo es casi imposible.

Page 44: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 44

- El lenguaje ensamblador es un derivado del lenguaje maquina y esta

formado por abreviaturas de letras y números llamadas mnemotécnicos. Con

la aparición de este lenguaje se crearon los programas traductores para poder

pasar los programas escritos en lenguaje ensamblador a lenguaje máquina.

Como ventaja con respecto al código máquina es que los códigos fuentes eran

más cortos y los programas creados ocupaban menos memoria. Las

desventajas de este lenguaje siguen siendo prácticamente las mismas que las

del lenguaje ensamblador, añadiendo la dificultad de tener que aprender un

nuevo lenguaje difícil de probar y mantener.

Lenguajes de alto nivel

Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje

máquina.

Están dirigidos a solucionar problemas mediante el uso de EDD's.

Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que,

en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de

una máquina a otra sin ningún tipo de problema.

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento

interno de la maquina/s para la que están diseñando el programa. Tan solo

necesitan un traductor que entiendan el código fuente como las características de la

maquina.

Page 45: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 45

Suelen usar tipos de datos para la programación y hay lenguajes de propósito

general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN

para trabajos científicos).

Lenguajes de Medio nivel

Se trata de un término no aceptado por todos, pero q seguramente habrás oído.

Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro

de estos lenguajes podría situarse C ya que puede acceder a los registros del

sistema, trabajar con direcciones de memoria, todas ellas características de

lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.

Generaciones

La evolución de los lenguajes de programación se puede dividir en 5 etapas o

generaciones.

• Primera generación: lenguaje maquina.

• Segunda generación: se crearon los primeros lenguajes ensambladores.

• Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C,

Pascal, Cobol…

• Cuarta generación. Son los lenguajes capaces de generar código por si solos,

son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un

experto en el lenguaje. Aquí también se encuentran los lenguajes orientados

a objetos, haciendo posible la reutilización d partes del código para otros

programas. Ej. Visual, Natural Adabes…

Page 46: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 46

• Quinta generación: aquí se encuentran los lenguajes orientados a la

inteligencia artificial. Estos lenguajes todavía están poco desarrollados. Ej.

LISP

Los tipos o técnicas de programación son bastante variados, aunque puede que

muchos de los lectores sólo conozcan una metodología para realizar programas. En

la mayoría de los casos, las técnicas se centran en programación modular y

programación estructurada, pero existen otros tipos de programación.

Programación estructurada (PE)

La programación estructurada esta compuesta por un conjunto de técnicas que han

ido evolucionando aumentando considerablemente la productividad del programa

reduciendo el tiempo de depuración y mantenimiento del mismo.

Esta programación estructurada utiliza un número limitado de estructuras de

control, reduciendo así considerablemente los errores.

Esta técnica incorpora:

• Diseño descendente (top-dow): el problema se descompone en etapas o

estructuras jerárquicas.

• Recursos abstractos (simplicidad): consiste en descompones las acciones

complejas en otras más simples capaces de ser resueltas con mayor facilidad.

• Estructuras básicas: existen tres tipos de estructuras básicas:

Page 47: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 47

o Estructuras secuénciales: cada acción sigue a otra acción

secuencialmente. La salida de una acción es la entrada de otra.

o Estructuras selectivas: en estas estructuras se evalúan las condiciones

y en función del resultado de las mismas se realizan unas acciones u

otras. Se utilizan expresiones lógicas.

o Estructuras repetitivas: son secuencias de instrucciones que se repiten

un número determinado de veces.

Las principales ventajas de la programación estructurada son:

• Los programas son más fáciles de entender.

• Se reduce la complejidad de las pruebas.

• Aumenta la productividad del programador.

• Los programas queden mejor documentados internamente.

Un programa esta estructurado si posee un único punto de entrada y sólo uno de

salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por

último, que todas las instrucciones son ejecutables sin que aparezcan bucles

infinitos.

Page 48: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 48

Programación modular

En la programación modular consta de varias secciones dividas de forma que

interactúan a través de llamadas a procedimientos, que integran el programa en su

totalidad.

En la programación modular, el programa principal coordina las llamadas a los

módulos secundarios y pasa los datos necesarios en forma de parámetros.

A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o

funciones.

Programación orientada a objetos (POO)

Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo

de los programas gracias a la reutilización de los objetos.

El elemento principal de la programación orientada a objetos es el objeto.

El objeto es un conjunto complejo de datos y programas que poseen estructura y

forman parte de una organización.

Un objeto contiene varios datos bien estructurados y pueden ser visibles o no

dependiendo del programador y las acciones del programa en ese momento.

El polimorfismo y la herencia son unas de sus principales características y por ello

dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.

Page 49: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 49

En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es

la programación orientada a objetos.

Programación concurrente

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a

la vez.

Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de

forma simultanea.

Se trata de una programación más lenta y laboriosa, obteniendo unos resultados

lentos en las acciones.

Programación funcional

Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de

otras funciones.

Programación lógica

Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata

de una programación basada en el cálculo de predicados (una teoría matemática

que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda

dar soluciones inteligentes).

Page 50: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 50

4. PRINCIPALES TECNOLOGÍAS DE DESARROLLO DE SISTEMAS EN ENTORNOS DISTRIBUIDOS

4.1. RMI

Java RMI (Invocación Remota de Métodos) es un modelo de objetos distribuidos

para la plataforma Java. La principal característica de RMI es que es un modelo

cuyo eje central es el lenguaje Java por lo que puede utilizar la homogeneidad del

entorno para distribuir de forma más sencilla y eficiente la aplicación. Pero lo que

parece en principio una tremenda limitación, obligar a que todo el mundo utilice el

mismo lenguaje, no lo es tanto ya que Java a creado una arquitectura virtual común

para todo tipo de plataformas, lo que le asegura una gran interoperabilidad.

Se trata de una técnología de desarrollo de Sistemas en entornos distribuidos

creada por SUN (competidor de Microsoft). En SUN han apostado por dos formas

diferentes de lograr la distribución de Java: CORBA y RMI. Java planea soportar

tanto una como otra arquitectura, lo que ha supuesto que mucha gente les critique

por ello, y no decantarse por CORBA, un estándar abierto y soportado por la

industria.

La idea de Java RMI es la misma que la de CORBA o DCOM: extender el modelo de

invocación de métodos dentro del espacio de direccionamiento de una sola máquina

virtual a invocaciones remotas de forma lo más transparente posible para el

desarrollador. La invocación de métodos se puede realizar entre diferentes VM

interconectadas a través de una red de comunicación.

Page 51: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 51

Una característica a destacar de Java RMI es que incluso los objetos pueden pasarse

como parámetros de una invocación, o como valores de retorno. Para ello SUN ha

desarrollado una metodología para transformar los objetos en flujos de octetos

(byte-stream) y así poder ser enviados por los canales de comunicación. A esta

metodología se la conoce como serialización de los objetos (object serialization). Es

una característica que también es útil para almacenar en algún medio persistente a

los objetos, algo fundamental por ejemplo en las bases de datos de objetos. En SUN

ven a Java RMI como una extensión natural al paradigma de los objetos de su RPC

(Llamadas remotas a procedimientos). Con esto se logra el objetivo de hacer lo más

transparente posible el hecho de que la invocación sea remota, de forma que los

programadores tienen un modelo común de objetos tanto para aplicaciones

centralizadas como distribuidas, el modelo de objetos de Java.

A la sencillez que se logra al centrar todo el modelo entorno a un lenguaje común se

une el hecho de que la maquina virtual Java tiene un recolector de basura

automático, por lo que la gestión de la memoria distribuida, uno de los temas más

espinosos dentro de cualquier sistema de objetos distribuidos, es transparente para

el programador.

Además, RMI tiene algunas características nuevas que no se encuentran por

ejemplo en CORBA o DCOM: la capacidad de distribuir de forma dinámica el código

ejecutable gracias a que los objetos pueden viajar como parámetros en las

invocaciones. Esta característica se presenta como fundamental en el mundo de los

ordenadores que compañías como SUN, Netscape y Oracle entre otras tienen en

mente: redes con un servidor central desde donde se distribuye todo el software,

tanto datos como programas ejecutables, a los clientes, que serán los conocidos NC

(Network Computer). Esto conlleva las consabidas ventajas de facilidad de

instalación y mantenimiento del sistema.

Page 52: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 52

La homogeneidad de Java en el entorno distribuido asegura un mayor control sobre

lo que ocurre y toda la seguridad que ya fue incluida desde sus orígenes con la

máquina virtual Java (consultar el capítulo de Java para obtener más detalles).

Desarrollando aplicaciones con Java RMI

Desarrollar una aplicación utilizando Java RMI supone muy poco esfuerzo extra para

el desarrollador, y lo que es más, no necesita saber nada de un nuevo lenguaje

como IDL. Y por otro lado, viene todo muy integrado dentro del JDK 1.1, por lo que

no hay que preocuparse de obtener nuevos paquetes software, ni de pagarlos. Pero

no olvidemos que en el JDK 1.2 SUN planea ya incluir Java IDL, su ORB, por lo que

estas ventajas también las tendrá CORBA.

La metodología de desarrollo es totalmente paralela a la de una aplicación CORBA,

aunque hay ciertos detalles que hay que ir aclarando según avancemos en el

proceso. Veamos nuestro ejemplo típico del contador, que nos permitirá medir el

rendimiento de Java RMI.

Conclusiones

Java RMI es un sistema cuya principal cualidad es su homogeneidad, todo se hace

Page 53: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 53

en Java. Esto lleva a que todo sea más sencillo y por lo tanto se ha de lograr

sistemas más eficientes y gestionables. Pero en los sistemas actuales, cada vez más

complejos y donde deberán interactuar sistemas de muy diferentes tipos, el obligar

a que todo este hecho en un único lenguaje reduzca el campo de aplicación mucho,

ya que casi todo lo que se puede hacer con Java RMI se puede hacer con CORBA, y

las posibilidades de CORBA son muy superiores.

Java RMI se verá restringido a sistemas nuevos, programados íntegramente en

Java, y de una complejidad baja o moderada. Incluso en este campo tendrá como

fuerte rival a Caffeine, que tiene las ventajas principales de Java RMI, pero esta

soportado sobre CORBA, pudiendo pues tener la potencia inherente a CORBA.

Page 54: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 54

4.2. COM/DCOM

COM (Component Object Model) es un estándar que permite la creación de objetos

que ejecuten tareas que resuelven problemas específicos pero comunes a varias

aplicaciones que puedan desear hacer uso de ellos. Estos pueden ser invocados por

diferentes programas que los requieran, tanto OLE como ActiveX están basados en

esta tecnología.

La idea es tener un mundo de objetos independientes de un lenguaje de

programación. Por ello COM proporciona un estándar para las comunicaciones entre

componentes, de tal forma, que una aplicación puede utilizar características de

cualquier otro objeto de la aplicación, o del sistema operativo, y permite actualizar

el software de un componente sin afectar a la operación de la solución global. COM

soporta comunicación entre objetos de equipos de cómputo distintos, en una LAN,

WAN, o incluso en Internet. DCOM extiende el estándar COM de objetos remotos,

para su utilización en redes. Inicialmente se desarrolló para Windows NT 4.0, y

posteriormente para Solaris 2.x y Macintosh, así como para diferentes versiones

UNIX.

Se encarga de manejar los detalles muy bajos de protocolos de red, por lo que el

desarrollador se puede centrar en la realidad de los negocios, proporcionando así

mejores soluciones a los clientes.

La arquitectura define cómo los componentes y sus clientes interactúan entre sí.

Esta interacción es definida cual traduce la llamada del cliente a un formato neutro,

totalmente independiente, que puede transportarse sobre cualquier medio para el

cual exista un protocolo de comunicación de tal manera que el cliente y el

componente puede conectarse sin la necesidad de un sistema intermedio.

El cliente llama a los métodos del componente sin tener que preocuparse de niveles

Page 55: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 55

más complejos. DCOM olvida completamente la localización de los componentes, no

importando que estén en el mismo proceso que el cliente o en una máquina en

cualquier lugar del mundo. En cualquier caso, la forma en la que el cliente se

conecta a un componente y llama a los métodos de éste, es idéntica. No es sólo que

no necesite cambios en el código fuente, sino que además no necesita que el

programa sea recompilado. Una simple reconfiguración cambia la forma en la que

los componentes se conectan entre sí.

La independencia de localización en DCOM simplifica enormemente las tareas de los

componentes de aplicaciones distribuidas para alcanzar un nivel de funcionamiento

óptimo. Supongamos, por ejemplo, que cierto componente debe ser localizado en

una máquina específica en un lugar determinado. Si la aplicación tiene numerosos

componentes pequeños, se puede reducir la carga de la red situándolos en la misma

LAN, en la misma máquina, o incluso en el mismo proceso.

Si la aplicación está compuesta por un pequeño número de grandes componentes,

la carga de red es menor y no es un problema, por tanto se pueden poner en las

máquinas más rápidas disponibles independientemente de donde estén situadas.

Es completamente independiente del lenguaje. Casi cualquier lenguaje puede ser

utilizado para crear componentes COM, y estos componentes puede ser utilizado por

muchos más lenguajes y herramientas. Java, Microsoft Visual C++, Microsoft Visual

Basic, Delphi, PowerBuilder, y Micro Focus COBOL interactúan perfectamente con

DCOM.

Puede utilizar cualquier protocolo de transporte, como TCP/IP, UDP, IPX/SPX y

NetBIOS, y proporciona un marco de seguridad a todos estos protocolos.

Los desarrolladores pueden utilizar las características proporcionadas por DCOM y

asegurar que sus aplicaciones son completamente independientes del protocolo.

Page 56: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 56

DCOM está pensado para que el sistema pueda funcionar bajo cualquier tipo de red,

ya sea LAN, WAN o Internet, de forma que se solucionen los múltiples problemas

que añaden estos entornos.

DCOM extiende COM para permitir la comunicación entre objetos situados en

diferentes ordenadores conectados a una LAN, WAN o incluso Internet. DCOM

oculta los detalles de los protocolos de red por lo que se evita la complejidad del

mundo de las comunicaciones.

COM y DCOM están en la actualidad gestionados por un grupo independiente de

Microsoft conocido como el "Consorcio ActiveXTM" aunque, el control sigue en manos

de Microsoft.

Page 57: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 57

4.3. CORBA

CORBA, Common Object Request Broker Architecture, es una tecnología para crear

sistemas distribuidos, creada por un consorcio de fabricantes, agrupados bajo el

OMG (Object Management Group).

El estándar CORBA define qué ha de incluir una implementación estándar, pero no

cómo se han de hacer. Esta tarea se deja de la mano de los diferentes fabricantes.

Esta es una de las principales características de CORBA: permite una total libertad a

los implementadores siempre que estos respeten unos mínimos orientados a la

interoperabilidad entre implementaciones.

A. Ventajas

1) Disponibilidad y Versatilidad

Muchas arquitecturas y sistemas operativos cuentan con una implementación de

CORBA, lo que hace suponer que se puede usar CORBA en virtualmente cualquier

proyecto de sistemas distribuidos.

2) Eficiencia

La libertad de desarrollo ha favorecido la existencia de una pléyade de

implementaciones del estándar que se adaptan a multitud de posibles necesidades

de los usuarios, generando una competencia que favorece aquellas

implementaciones de mayor calidad y con más características.

3) Adaptación a Lenguajes de programación

Page 58: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 58

Además, es posible emplear los servicios de CORBA desde cualquier lenguaje de

programación, desde C++, C ó Java, hasta COBOL ó Ada.

B. Inconvenientes

1) Complejidad

Permitir la interoperabilidad de distintos lenguajes, arquitecturas y sistemas

operativos hace que sea un estándar bastante complejo, y su uso no sea tan

transparente al programador como sería deseable:

1. Hay que usar un compilador que traduce una serie de tipos de datos

estándares a los tipos del lenguaje en el que se vaya a programar (IDL).

2. Hay que ser conscientes a la hora de diseñar qué objetos van a ser

remotos y cuáles no (los remotos sufren restricciones en cuanto a sus capacidades

con respecto a un objeto normal).

3. Es necesario emplear tipos de datos que no son los que proporciona de

manera habitual el lenguaje de programación (muchas veces hay que emplear tipos

de datos adaptados de IDL).

2) Incompatibilidad entre implementaciones

Muchas empresas ofrecen implementaciones CORBA, si bien el grado de

cumplimiento es diverso. Las divergencias entre ORBs radican en detalles que,

aunque no hacen imposible aplicar en uno el mismo diseño de un programa

pensado para otro, hacen que la adaptación sea fastidiosa. Cuestiones como la

colocación de librerías o las diferentes formas de implementar la gestión de la

concurrencia, hacen difícil la portabilidad del código y obligan al programador a

reciclarse cuando quiere cambiar de ORB. Además, donde el estándar no concreta,

Page 59: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 59

las implementaciones pueden variar entre sí, lo que da lugar a molestas

incompatibilidades que complican la vida al usuario.

C. Limitaciones de CORBA.

1. El sistema no es transparente al programador. Las diferencias para el

programador que quiera usar un determinado objeto con respecto a las de emplear

uno local, se reducen a la inicialización del mismo. En vez de inicializarlo

normalmente, hay que pedir al ORB (vía IOR o usando un nombre más inteligible),

una referencia al objeto remoto y luego convertirlo al tipo de objeto a manejar.

2. Los objetos remotos se pueden usar por referencia, pero no por valor. Así,

cuando se haga uso de los métodos de un objeto remoto (al que se accede por

referencia), solo se le pueden pasar como parámetros (y el método solo podrá

devolver como resultado) tipos de datos contemplados en el IDL. Afortunadamente,

este problema queda resuelto con CORBA 3, que sí soporta el paso de parámetros

por valor.

3. Múltiples implementaciones de CORBA dan lugar a múltiples

incompatibilidades. El estándar CORBA define a alto nivel qué funciones debe

proporcionar un ORB y cómo han de interoperar estos entre sí, lo que garantiza

cierto grado de compatibilidad, pero el cómo se ofrezca esa funcionalidad al

programador es algo que está al libre albedrío del fabricante del ORB. Es más, parte

de la funcionalidad del estándar CORBA no es de obligado cumplimiento por parte

de las compañías fabricantes para poder anunciarse como CORBA-compliant. En

estas condiciones es muy difícil pensar que un programa que haya sido programado

pensando en un ORB concreto, pueda funcionar bien con una simple recompilación.

Page 60: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 60

4. El estándar CORBA está poco preparado para usarse en entornos

embebidos (electrónica de consumo, asistentes digitales) o que requieran soporte

de tiempo real. Para el primer caso, se diseñó en CORBA 3 un subconjunto llamado

Minumum CORBA que, al ser más ligero, encaja mejor en los sistemas embebidos,

donde el control del consumo de recursos es vital. Para solucionar el segundo

problema, CORBA 3 introducirá Real -Time CORBA, que introducirá modelos de

prioridad para conseguir un comportamiento predecible de los programas que lo

usen.

Page 61: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 61

5. BIBLIOGRAFÍA

- “Sistemas operativos y lenguajes de programación”. Enrique Quero Catalinas.

Ed. Paraninfo.

- “Sistemas distribuidos”. George Coulouris. Ed. Addison Wesley.

Page 62: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.

Desarrollo de proyectos telemáticos nivel 1 62

6. MAPA CONCEPTUAL

DESARROLLO DE PROYECTOS TELEMÁTICOS

TERMINOLOGÍA

BASES DE DATOS RELACIONALES

TECNOLOGÍAS DE DESARROLLO DE SISTEMAS EN ENTORNOS

DISTRIBUIDOS

LOS LENGUAJES DE PROGRAMACIÓN

Page 63: PROYECTOS TELEMÁTICOS (Nivel 1) - AUTORIDAD PORTUARIA DE ... · alcanzar una vez estudiado el contenido del manual? Conocerás el vocabulario asociado a lenguajes de programación.