Download PROYECTOS TELEMÁTICOS (Nivel 1)

Document related concepts
Transcript
PROYECTOS TELEMÁTICOS
(Nivel 1)
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.
2.3.2.
2.3.3.
Datos.............................................................................................................23
Programas......................................................................................................24
Usuarios.........................................................................................................27
2.4.
Estructura general de una base de datos........................................................ 29
2.5.
Principales bases de datos relacionales .......................................................... 29
2.5.1.
2.5.2.
2.5.3.
2.5.4.
SQL ...............................................................................................................30
DB2 ...............................................................................................................32
Oracle............................................................................................................34
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
Desarrollo de proyectos telemáticos
nivel 1
2
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.
Desarrollo de proyectos telemáticos
nivel 1
3
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.
Desarrollo de proyectos telemáticos
nivel 1
4
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
Desarrollo de proyectos telemáticos
nivel 1
5
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.
Desarrollo de proyectos telemáticos
nivel 1
6
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
Desarrollo de proyectos telemáticos
nivel 1
7
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.
Desarrollo de proyectos telemáticos
nivel 1
8
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
Desarrollo de proyectos telemáticos
nivel 1
9
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)
Desarrollo de proyectos telemáticos
nivel 1
10
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.
Desarrollo de proyectos telemáticos
nivel 1
11
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.).
Desarrollo de proyectos telemáticos
nivel 1
12
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.
Desarrollo de proyectos telemáticos
nivel 1
13
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.
Desarrollo de proyectos telemáticos
nivel 1
14
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).
Desarrollo de proyectos telemáticos
nivel 1
15
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.
Desarrollo de proyectos telemáticos
nivel 1
16
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.
Desarrollo de proyectos telemáticos
nivel 1
17
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.
Desarrollo de proyectos telemáticos
nivel 1
18
Las reglas que hacen que un sistema gestor de base de datos sea
relacional.
2.1.
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.
Desarrollo de proyectos telemáticos
nivel 1
19
•
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
Desarrollo de proyectos telemáticos
nivel 1
20
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).
Desarrollo de proyectos telemáticos
nivel 1
21
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.
Desarrollo de proyectos telemáticos
nivel 1
22
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.
Desarrollo de proyectos telemáticos
nivel 1
23
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:
Desarrollo de proyectos telemáticos
nivel 1
24
- 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
Desarrollo de proyectos telemáticos
nivel 1
25
de datos.
Desarrollo de proyectos telemáticos
nivel 1
26
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.
Desarrollo de proyectos telemáticos
nivel 1
27
• 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.
Desarrollo de proyectos telemáticos
nivel 1
28
2.4.
Estructura general de una base de datos
2.5.
Principales bases de datos relacionales
Desarrollo de proyectos telemáticos
nivel 1
29
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
Desarrollo de proyectos telemáticos
nivel 1
30
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
Desarrollo de proyectos telemáticos
nivel 1
31
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
Desarrollo de proyectos telemáticos
nivel 1
32
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
Desarrollo de proyectos telemáticos
nivel 1
33
•
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
Desarrollo de proyectos telemáticos
nivel 1
34
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.
Desarrollo de proyectos telemáticos
nivel 1
35
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
Desarrollo de proyectos telemáticos
nivel 1
36
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.
Desarrollo de proyectos telemáticos
nivel 1
37
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.
Desarrollo de proyectos telemáticos
nivel 1
38
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.
Desarrollo de proyectos telemáticos
nivel 1
39
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
Desarrollo de proyectos telemáticos
nivel 1
40
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.
Desarrollo de proyectos telemáticos
nivel 1
41
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.
Desarrollo de proyectos telemáticos
nivel 1
42
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.
Desarrollo de proyectos telemáticos
nivel 1
43
- 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.
Desarrollo de proyectos telemáticos
nivel 1
44
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…
Desarrollo de proyectos telemáticos
nivel 1
45
•
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:
Desarrollo de proyectos telemáticos
nivel 1
46
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.
Desarrollo de proyectos telemáticos
nivel 1
47
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.
Desarrollo de proyectos telemáticos
nivel 1
48
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).
Desarrollo de proyectos telemáticos
nivel 1
49
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.
Desarrollo de proyectos telemáticos
nivel 1
50
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.
Desarrollo de proyectos telemáticos
nivel 1
51
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
Desarrollo de proyectos telemáticos
nivel 1
52
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.
Desarrollo de proyectos telemáticos
nivel 1
53
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
Desarrollo de proyectos telemáticos
nivel 1
54
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.
Desarrollo de proyectos telemáticos
nivel 1
55
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.
Desarrollo de proyectos telemáticos
nivel 1
56
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
Desarrollo de proyectos telemáticos
nivel 1
57
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,
Desarrollo de proyectos telemáticos
nivel 1
58
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.
Desarrollo de proyectos telemáticos
nivel 1
59
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.
Desarrollo de proyectos telemáticos
nivel 1
60
5. BIBLIOGRAFÍA
-
“Sistemas operativos y lenguajes de programación”. Enrique Quero Catalinas.
Ed. Paraninfo.
-
“Sistemas distribuidos”. George Coulouris. Ed. Addison Wesley.
Desarrollo de proyectos telemáticos
nivel 1
61
6. MAPA CONCEPTUAL
TERMINOLOGÍA
BASES DE DATOS
RELACIONALES
DESARROLLO DE
PROYECTOS
TELEMÁTICOS
LOS LENGUAJES DE
PROGRAMACIÓN
TECNOLOGÍAS DE
DESARROLLO DE
SISTEMAS EN
ENTORNOS
DISTRIBUIDOS
Desarrollo de proyectos telemáticos
nivel 1
62