Anda di halaman 1dari 63

PROYECTOS TELEMTICOS (Nivel 1)

INTRODUCCIN A LA COMPETENCIA DEFINIDA COMO DESARROLLO DE PROYECTOS TELEMTICOS ..........................................................................3 1. 2. TERMINOLOGA RELACIONADA A LOS PROYECTOS TELEMTICOS .....5 LAS BASES DE DATOS RELACIONALES ................................................16
2.1. 2.2. 2.3. Las reglas que hacen que un sistema gestor de base de datos sea relacional. ... 19 Ventajas de un sistema de base de datos:...................................................... 21 Componentes de un sistema de base de datos................................................ 23
Datos.............................................................................................................23 Programas......................................................................................................24 Usuarios.........................................................................................................27

2.3.1. 2.3.2. 2.3.3.

2.4. 2.5.

Estructura general de una base de datos........................................................ 29 Principales bases de datos relacionales .......................................................... 29
SQL ...............................................................................................................30 DB2 ...............................................................................................................32 Oracle............................................................................................................34 Microsoft SQL Server .......................................................................................36

2.5.1. 2.5.2. 2.5.3. 2.5.4.

Caractersticas 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 BSICOS SOBRE LOS LEGUAJES DE PROGRAMACIN ...41

4. PRINCIPALES TECNOLOGAS DE DESARROLLO DE SISTEMAS EN ENTORNOS DISTRIBUIDOS .......................................................................50


4.1. 4.2. 4.3. RMI ............................................................................................................ 50 COM/DCOM ................................................................................................. 54 CORBA ........................................................................................................ 57
Desarrollando aplicaciones con Java RMI...........................................................................52

5. 6.

BIBLIOGRAFA .....................................................................................61 MAPA CONCEPTUAL .............................................................................62

Desarrollo de proyectos telemticos

nivel 1

INTRODUCCIN A LA COMPETENCIA DEFINIDA COMO DESARROLLO DE PROYECTOS TELEMTICOS


Definicin de la competencia: Conocimientos sobre la planificacin, desarrollo e implantacin de sistemas de informacin y comunicacin, as como sobre herramientas y metodologas utilizadas. Conocimientos y Capacidades definidas para esta competencia: o El vocabulario asociado a lenguajes de programacin (entornos, plataformas, etc.). o Las principales tecnologas de desarrollo de sistemas en entornos

distribuidos. o Los principales lenguajes de programacin 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? Conocers el vocabulario asociado a lenguajes de programacin. Obtendrs conocimiento de las principales tecnologas de desarrollo de sistemas en entornos distribuidos. Identificars los principales lenguajes de programacin en entornos. Conocers los principales conceptos de bases de datos corporativas.

Desarrollo de proyectos telemticos

nivel 1

Resumen de los contenidos del manual En este manual vas a encontrar la informacin bsica necesaria relacionada con el desarrollo de proyectos telemticos. En primer lugar nos dedicaremos a definir los trminos ms importantes asociados con los proyectos telemticos. En segundo lugar nos referiremos a las bases de datos relacionales. El tercer punto comprende los conceptos bsicos sobre los lenguajes de programacin. La cuarta parte estar dedicada a las tecnologas de desarrollo de sistemas en entornos distribuidos.

Desarrollo de proyectos telemticos

nivel 1

1. TERMINOLOGA RELACIONADA A LOS PROYECTOS TELEMTICOS

LA TELEMTICA: La Telemtica es una disciplina cientfica y tecnolgica que surge de la evolucin y fusin de la telecomunicacin y de la informtica. El trmino Telemtica se acu en Francia (tlmatique). En 1976, en un informe encargado por el presidente francs y elaborado por Simon Nora y Alain Minc (conocido como informe Nora-Minc y distribuido por el ttulo: "Informatizacin de la Sociedad") en el que se daba una visin increblemente precisa de la evolucin tecnolgica futura. Ahora bien, el concepto, tambin puede ligarse a un origen estadounidense:

compunication, o como se utiliza ms habitualmente Computer and Communications. No obstante, no es casualidad la diferencia entre los trminos:
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, pona claro nfasis en las telecomunicaciones como motor de su transformacin social (1976), mientras que Estados Unidos estaba viviendo una gran revolucin de la informtica. As, compunication apunta a un modelo con mayor relevancia de los sistemas informticos; telemtica (tlmatique) por su parte, refiere a un mayor nfasis en la telecomunicacin. Esta diferencia de origen se ha perdido, ya que esta disciplina cientfica y tecnolgica ha convergido por completo a nivel mundial, para formar un nico cuerpo de conocimiento bien establecido.

La Telemtica cubre un campo cientfico y tecnolgico de una considerable 5

Desarrollo de proyectos telemticos

nivel 1

amplitud, englobando el estudio, diseo, gestin y aplicacin de las redes y servicios de comunicaciones, para el transporte, almacenamiento y procesado de cualquier tipo de informacin (datos, voz, vdeo, etc.), incluyendo el anlisis y diseo de tecnologas y sistemas de conmutacin. La Telemtica abarca entre otros conceptos los siguientes planos funcionales: El plano de usuario, donde se distribuye y procesa la informacin de los servicios y aplicaciones finales. El plano de sealizacin y control, donde se distribuye y procesa la informacin de control del propio sistema, y su interaccin con los usuarios. El plano de gestin, donde se distribuye y procesa la informacin de operacin y gestin del sistema y los servicios, y su interaccin 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 segn el Modelo de interconexin de sistemas abiertos de la Organizacin Internacional de Normalizacin se componen de: nivel fsico, nivel de enlace, nivel de red, nivel de transporte extremo a extremo, nivel de sesin, nivel de presentacin y nivel de aplicacin. Trata tambin servicios como la tele-educacin (e-learning), el comercio electrnico (e-commerce) o la administracin electrnica (e-government), servicios Web, TV digital, la conmutacin y la arquitectura de conmutadores, y tambin toca temas como el anlisis de prestaciones, modelado y simulacin de redes: optimizacin, planificacin de la capacidad, ingeniera de trfico y diseo de redes.

Desarrollo de proyectos telemticos

nivel 1

Otra modalidad es encontrarla focalizada en una actividad especfica como Telemtica Educativa en donde se desarrolla el uso de los recursos telemticos dirigidos a la Educacin; entre ellos la comunicacin interactiva, la distribucin de la informacin y el uso pedaggico de los servicios.. Sin lugar a duda, la posesin de una red informtica de nivel medio, se hace absolutamente necesaria para poder poner en funcionamiento un sistema de comunicaciones elemental. La comunicacin, ya sea dentro de un grupo pequeo, a lo largo de una organizacin grande o entre distintas organizaciones, se puede mejorar casi siempre se puede hacer ms fluida, ms fcil de recibir y ms fcil de responder. La aplicacin WEB, una forma de comunicacin multimedia que incluye texto, grficos, sonido, vdeo y guiones transmitidos por computadoras, es la plataforma ideal para la proyeccin de la comunicacin. Aunque son las computadoras las que estn colocadas en el extremo de la transmisin y recepcin del WEB, es lo que vincula a las computadoras lo que da la aplicacin web una de sus caractersticas ms importantes. El vnculo supone que los emisores y los receptores pueden operar de manera independiente, (los emisores pueden poner el contenido de acuerdo con su programacin y los receptores pueden recibirlo en cualquier momento a partir de entonces. El vnculo que se utiliza para la transmisin del contenido del web es un de los dos modos de conexin en la red, ya sea la internet pblica, que utiliza redes pblicas y privadas, incluyendo la lnea de telfono, o una intranet privada, que utiliza una red de rea local (LAN), generalmente dentro de una organizacin.

INTERNET Y WORLD WIDE WEB

Desarrollo de proyectos telemticos

nivel 1

Internet y World Wide Web (el Web) son los cimientos de una revolucin 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 informacin, ideas y productos a travs del globo. Acceder a un sitio web de Australia es tan fcil 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 telefnico ya puede pensar en dar su primer paso para disponer de presencia en internet. Esta es una condicin "sine quo non" para proyectar el centro al exterior. Utilizando cualquier aplicacin web podemos disear el sitio web institucional y abrir, de esta manera, una ventana o escaparate que facilite y agilice la comunicacin entre el centro, los alumnos y las familias.

Desarrollo de proyectos telemticos

nivel 1

LAN E INTRANET La misma importancia que ha adquirido internet para la sociedad la han adquirido las redes de rea local (LAN), o an ms, para el intercambio de informacin y comunicacin dentro de las organizaciones. Las LAN empezaron como un medio para compartir programas y archivos de datos entre diversas personas de una misma organizacin. Esto se ampli al parecer el correo electrnico (correo-e) para enviar y recibir mensajes a travs de la LAN. Recientemente se han aadido intranets a la LAN para proporcionar una versin en miniatura del Word, Wide Web dentro de una organizacin.-un lugar donde la gente puede colocar y leer documentos con textos y grficos en el momento que elija. Un buen ejemplo de uso que se puede dar a una intranet sera un informe de un proyecto. En vez de enviar una actualizacin semanal por correo electrnico 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 podra poner una pgina web en la que no solamente se incluira una informacin sobre el estado actual del proyecto, sino tambin otro tipo de informacin, como la gente que est trabajando en el mismo, las metas y su financiacin. De este modo, las personas realmente interesadas podran obtener esta informacin.

Como definicin del trmino intranet : "Red de comunicacin interna diseada sobre la base de los protocolos de internet (TCP/IP) que puede estar o no conectada a sta y que enlaza mltiples usuarios". La tecnologa intranet permite a usuarios de empresas, y organizaciones trabajar de forma ms eficiente facilitndoles la informacin que precisan. A un nivel muy bsico, una intranet es el lugar comn donde poner toda la informacin que pueda

Desarrollo de proyectos telemticos

nivel 1

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 vehculo gracias al cual se reducen los tiempos de bsqueda de datos y se coordinan proyectos de trabajo ya que permite archivar el trabajo electrnicamente y volverlo a encontrar de manera muy rpida. El propio servidor de red de la LAN puede ser el equipo encargado de manejar el trfico en cdigo HTML, depositados en su propio disco duro, para que mediante un navegador Web todos los usuarios puedan acceder a la informacin organizada como si de una internet interna s tratarse.

CONFECCIN DE PGINAS WEB Una aplicacin web consta de una o ms pginas web conectadas entre s. Una pgina web es un archivo de texto que contiene lenguaje de marcas de hipertexto (HTML), etiquetas de formato y vnculos a archivos de grficos y a otra pgina web. Es la capacidad y la habilidad en la confeccin y diseo de estas pginas donde radica uno de los puntos ms importantes a la hora de poner en funcionamiento, de manera independiente, todo el entramado que rodea a las intranet e internet. Hoy en da cualquier persona puede disear una pgina web con ayuda del programa adecuado. (Solamente utilizando un editor de texto como Word, podemos elabora pginas web)

Desarrollo de proyectos telemticos

nivel 1

10

TELEDUCACIN Adems 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 educacin a distancia. Estamos hablando de lo que por el momento se conoce como Teleducacin o Telenseanza. Esta nueva forma de impartir y adquirir educacin, a la que actualmente se tiende, consiste en una frmula de enseanza no presencial con una metodologa basada en la distribucin de material didctico multimedia (disquetes, programas multimedia, videos...), y en el uso permanente del correo electrnico como medio de comunicacin entre profesores y alumnos, o entre ellos mismos. sta puede ser utilizada no slo por centros educativos de carcter oficial y extraoficial, sino que con ellas, miles de organizaciones podran impartir cursos de todo tipo. Desde clases de cocina, hasta de astrologa, podran 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 ms variados temas. La teleducacin ofrece la posibilidad de realizar, sin salir de casa, cursos en el extranjero que de otra manera seran muy costosos, y que ahora podrn lucir en los curriculums de muchos usuarios de Internet. Con ello adems se consigue una mayor disponibilidad del profesor-tutor a cualquier hora del da, pues pueden mantener intercambios con otros alumnos sobre los contenidos. Asimismo se disminuye el aislamiento que generalmente siente el alumno de la formacin a distancia convencional.

Desarrollo de proyectos telemticos

nivel 1

11

PLATAFORMA DE DESARROLLO Una plataforma de desarrollo es el entorno de software comn en el cual se desenvuelve la programacin de un grupo definido de aplicaciones. Comnmente se encuentra relacionada directamente a un sistema operativo; sin embargo, tambin es posible encontrarla ligada a una familia de lenguajes de programacin o a una Interfaz de programacin de aplicaciones (API por

sus siglas en ingls).


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 administracin eficaz de sus recursos. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la mquina desde los niveles ms bsicos, permitiendo tambin la interaccin con el usuario. Un sistema operativo se puede encontrar normalmente en la mayora de los aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias a stos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, PDAs, ordenadores, etc.).

Desarrollo de proyectos telemticos

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

Linux es un entorno basado en texto, aunque en las distribuciones actuales existen entornos grficos para el mismo.

SOFTWARE Software , palabra proveniente del ingls, tambin denominado equipamiento lgico o soporte lgico, es el conjunto de los componentes intangibles de una computadora, es decir, el conjunto de programas y procedimientos necesarios para hacer posible la realizacin de una tarea especfica, en contraposicin a los componentes fsicos del sistema (hardware). Esto incluye aplicaciones informticas 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 interaccin con los componentes fsicos y el resto de aplicaciones. Bajo esta definicin, el concepto de software va ms all de los programas de cmputo en sus distintas formas: cdigo fuente, binario o ejecutable, adems de su documentacin: es decir, todo lo intangible.

Desarrollo de proyectos telemticos

nivel 1

13

APLICACIN Aplicacin es un programa informtico diseado para facilitar al usuario la realizacin de un determinado tipo de trabajo. Posee ciertas caractersticas que lo diferencian de un sistema operativo (que hace funcionar al ordenador), de una utilidad (informtica) (que realiza tareas de mantenimiento o de uso general) y de un Lenguaje de programacin (con el cual se crean los programas informticos). Suele resultar una solucin informtica para la automatizacin de ciertas tareas complicadas como pueden ser la contabilidad o la gestin de un almacn. Ciertas aplicaciones desarrolladas 'a medida' suelen ofrecer una gran potencia ya que estn exclusivamente diseadas para resolver un problema especfico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de clculo y de base de datos. Los programas de aplicacin se dividen en muchos tipos, entre los cuales se pueden nombrar: procesadores de texto, hojas electrnicas o de clculo, manejo de base de datos, Comunicacin de datos, Multimedia, presentaciones, diseo grfico, clculo, finanzas, correo electrnico, compresin de archivos, presupuestacin de obras, gestin de empresas, tc. Algunas compaas agrupan varios programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimtica) que sean satisfactorios para las necesidades ms 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 diseo; unos son ms amigables o fciles de usar.

Desarrollo de proyectos telemticos

nivel 1

14

LENGUAJE DE PROGRAMACIN Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML (lenguaje para el marcado de pginas web).

Desarrollo de proyectos telemticos

nivel 1

15

2. LAS BASES DE DATOS RELACIONALES

El trmino base de datos fue acuado por primera vez en 1963, en un simposio celebrado en California. De forma sencilla podemos indicar que una base de datos no es ms que un conjunto de informacin relacionada que se encuentra agrupada o estructurada. El archivo por s mismo, no constituye una base de datos, sino ms bien la forma en que est organizada la informacin es la que da origen a la base de datos. Las bases de datos manuales, pueden ser difciles de gestionar y modificar. Por ejemplo, en una gua de telfonos no es posible encontrar el nmero de un individuo si no sabemos su apellido, aunque conozcamos su domicilio. Del mismo modo, en un archivo de pacientes en el que la informacin 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 informtico, 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 telemticos

nivel 1

16

Desde el punto de vista ms formal, podramos definir una base de datos como un conjunto de datos estructurados, fiables y homogneos, organizados independientemente en mquina, accesibles a tiempo real, compartibles por usuarios concurrentes que tienen necesidades de informacin diferente y no predecibles en el tiempo. La idea general es que estamos tratando con una coleccin de datos que cumplen las siguientes propiedades: Estn 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 informacin. Esto da lugar a distintos modelos de organizacin de la base de datos: jerrquico, 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, perodos cortos de aprendizaje y las consultas de informacin se especifican de forma sencilla.

Desarrollo de proyectos telemticos

nivel 1

17

Las tablas son un medio de representar la informacin de una forma ms compacta y es posible acceder a la informacin contenida en dos o ms tablas. Ms adelante explicaremos que son las tablas. Las bases de datos relacionales estn constituidas por una o ms tablas que contienen la informacin ordenada de una forma organizada. Cumplen las siguientes leyes bsicas: Generalmente, contendrn muchas tablas. Una tabla slo contiene un nmero 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 telemticos

nivel 1

18

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 informacin contenida en una base de datos.

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

Regla de informacin: Toda la informacin est representada lgicamente en tablas.

Tratamiento sistemtico de valores nulos: debe soportar valores nulos de forma automtica independientemente del tipo de dato.

Regla de acceso garantizado: Se tiene que poder acceder a cada dato mediante la combinacin 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 manipulacin de la base de datos.

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

Insercin, modificacin y borrado de alto nivel: Debe ser posible realizar dichas operaciones sin alterar los dems datos.

Actualizacin de vista: Se debe poder actualizar las vistas por el sistema gestor.

Desarrollo de proyectos telemticos

nivel 1

19

Independencia fsica de los datos: la forma de almacenar los datos no influye en la manipulacin de los mismos.

Independencia lgica de los datos: los cambios sobre los objetos de la base de datos no tienen porque afectar a los usuarios y programas.

Independencia de distribucin: 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 subversin: 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 telemticos

nivel 1

20

2.2.

Ventajas de un sistema de base de datos:

Eliminacin/Reduccin de Redundancia: Por redundancia se entiende informacin 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. (Propagacin automtica de actualizaciones). Ejemplo: En un sistema de ficheros podramos tener dos programas uno de cuentas corrientes y otro de prstamos; cada uno con un fichero mientras que en un s.b.d. con un solo fichero bastara.

Eliminacin de Inconsistencias: En los s.b.d se eliminan las inconsistencias, que son valores errneos en las bases de datos. Esto es que existan un mismo dato en ms de un sitio con valores distintos (muy relacionado con la Redundancia). Otro tipo de inconsistencias son valores errneos 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 dndonos la posibilidad de imponer restricciones sobre los datos (estas restricciones sern globales).

Desarrollo de proyectos telemticos

nivel 1

21

Normas de Representacin: Los datos los vamos a representar en la Base de Datos de forma idntica.

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 aplicacin tena que imponer sus propias restricciones, mientras en un s.b.d. imponemos restricciones globales.

Comparticin 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 lgico o estructural). Compartir datos viene dado por la caracterstica 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 telemticos

nivel 1

22

2.3.

Componentes de un sistema de base de datos

Los componentes de un sistema de base de datos sern: - 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 estadsticas de uso de la base de datos.

Desarrollo de proyectos telemticos

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.- Definicin de las estructuras para almacenar los datos. 2.- Manejo de los datos. Adems de estas dos cosas el DBMS se ocupara de muchas ms cosas como control de acceso, control de inconsistencias, etc.
A estas dos caractersticas se nos permitir acceder a ellas desde tres niveles de complejidad (o abstraccin), estos tres niveles de abstraccin sern:

Nivel Fsico:

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

- Se vern la forma de almacenar los datos.

- Aqu hablaremos de Registros.

- Se representara con lo que conoce como Esquema Fsico.

Nivel Conceptual:

Desarrollo de proyectos telemticos

nivel 1

24

- Es mucho ms prximo 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 representacin 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 Visin:

- Es un nivel de abstraccin Superior.

- Es una visin lgica de parte o de toda la base de datos.

- Para cada usuario se crea un esquema de visin distinto. - Aqu tenemos un Esquema de Visin. Tambin se conoce como subesquema, se suele utilizar para no agobiar al usuario con informacin innecesaria y para proteger la base

Desarrollo de proyectos telemticos

nivel 1

25

de datos.

Desarrollo de proyectos telemticos

nivel 1

26

2.3.3. Usuarios
Dentro de los usuarios tenemos distintos tipos dependiendo de la forma en la que interactan con la misma:

Programadores de aplicaciones: - Son personas con conocimientos de programacin (usuarios complejos). - Interactan con el sistema por medio de llamadas con DML embebidas en algn lenguaje de alto nivel.

Usuarios Especializados: - Son usuarios con conocimientos del lenguaje de base de datos. - Interactan con el sistema mediante el manejo de datos o mediante el DML.

Usuarios Normales (Operadores): - Tienen escasos conocimientos del lenguaje de base de datos. - Interactan con el sistema mediante aplicaciones de base de datos que ya han sido creadas por programadores.

Desarrollo de proyectos telemticos

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 (Fsico y conceptual). - Estn encargados de crear los distintos subesquemas correspondientes a cada nivel o usuario. - Tambin 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 telemticos

nivel 1

28

2.4.

Estructura general de una base de datos

2.5.

Principales bases de datos relacionales


nivel 1

Desarrollo de proyectos telemticos

29

2.5.1. SQL El Lenguaje de consulta estructurado (SQL [/esecuele/ en espaol, /sicul/ en

ingls] 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 caractersticas es el manejo del lgebra y el clculo relacional permitiendo lanzar consultas con el fin de recuperar informacin de inters de una base de datos, de una forma sencilla. Es un lenguaje de cuarta generacin (4GL). Los orgenes del SQL estn 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 clculo de predicados. Basndose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que ms tarde sera ampliamente implementado por el SGBD experimental System R, desarrollado en 1977 tambin por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial. El SEQUEL terminara siendo el predecesor de SQL, siendo ste una versin evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los aos siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versin estndar de este lenguaje, el SQL-86 o SQL1. Al ao siguiente este estndar es tambin adoptado por la ISO.

Sin embargo este primer estndar no cubre todas las necesidades de los

Desarrollo de proyectos telemticos

nivel 1

30

desarrolladores e incluye funcionalidades de definicin de almacenamiento que se consideraron suprimir. As que en 1992 se lanza un nuevo estndar ampliado y revisado del SQL llamado SQL-92 o SQL2. En la actualidad el SQL es el estndar de facto de la inmensa mayora de los SGBD comerciales. Y, aunque la diversidad de aadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estndar 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 terica y su orientacin al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificacin. De esta forma una sola sentencia puede equivaler a uno o ms programas que utilizasen un lenguaje de bajo nivel orientado a registro.

Como suele ser comn 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 cmo conseguirlo, por lo que una sentencia no establece explcitamente un orden de ejecucin. El orden de ejecucin interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que ste lleve a cabo una optimizacin antes de la ejecucin de la misma. Muchas veces, el uso de ndices acelera una instruccin de consulta, pero ralentiza la actualizacin de los datos, dependiendo del uso de la aplicacin, se priorizar el acceso indexado o una rpida actualizacin de la informacin. La optimizacin difiere sensiblemente en

Desarrollo de proyectos telemticos

nivel 1

31

cada motor de base de datos y depende de muchos factores. Existe una ampliacin de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lgica difusa. Este lenguaje ha sido implementado a nivel experimental y est evolucionando rpidamente.

2.5.2. DB2 DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestin de base de datos. DB2 versin 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 bsquedas de manera jerrquica dentro de ste, e integrarlo con bsquedas relacionales. DB2 Express-C es la versin gratuita, soportada por la comunidad, de DB2 que permite desarrollar, implementar y distribuir aplicaciones que no usen las caractersticas avanzadas de las versiones comerciales de DB2. Esta versin de DB2 puede ser concebida como el ncleo de DB2, las diferentes ediciones incluyen las caractersticas de Express-C ms funcionalidades especficas. Gracias a su alcance global y de bajo costo, Internet puede ser una solucin de negocios muy poderosa para realizar operaciones comerciales garantizando un nivel de seguridad y confiabilidad con sus servicios de autorizacin y autenticacin integrados a redes y sistema operativos, soportando el network computing utilizando Java y JDBC, incluyendo capacidad nativa de almacenar varios tipos de datos: alfanumricos, video, imagen, audio y los definidos por el usuario. DB2 y SQL Server tenan grandes compaas detrs con otros negocios que les 32

Desarrollo de proyectos telemticos

nivel 1

permiti aguantar la poltica 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 definicin de datos y funciones por parte del usuario, el chequeo de integridad referencial, SQL recursivo, soporte multimedia: texto, imgenes, video, audio; queries paralelos, commit de dos fases, backup/recuperacin online y offline. Adems cuenta con un monitor grfico de performance el cual posibilita observar el tiempo de ejecucin 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 bsquedas documentos con los datos que me interesen sin tener que ver los CV uno por uno. Esta capacidad se utiliza en sistemas de bsqueda de personas por huellas digitales, en sistemas informacin geogrfica, 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 esttico, como complementa el SQL dinmico).

Plataformas host:

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

Desarrollo de proyectos telemticos

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 gestin de base de datos relacional (o RDBMS por el acrnimo en ingls de Relational Data Base Management System), fabricado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos ms 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 telemticos

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 ms completos jams escritos sobre bases de datos. Este artculo inclua una comparativa de productos que eriga a Relational Software como el ms completo desde el punto de vista tcnico. Esto se deba a que usaba la filosofa de las bases de datos relacionales, algo que por aquella poca era todava desconocido. En la actualidad, Oracle (Nasdaq: ORCL) todava encabeza la lista. La tecnologa Oracle se encuentra prcticamente en todas las industrias alrededor del mundo y en las oficinas de 98 de las 100 empresas Fortune 100. Oracle es la primera compaa de software que desarrolla e implementa software para empresas 100 por ciento activado por Internet a travs de toda su lnea de productos: base de datos, aplicaciones comerciales y herramientas de desarrollo de aplicaciones y soporte de decisiones. Oracle es el proveedor mundial lder de software para administracin de informacin, y la segunda empresa de software.

Desarrollo de proyectos telemticos

nivel 1

35

2.5.4. Microsoft SQL Server Microsoft SQL Server es un sistema de gestin de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL, y especficamente en Sybase IQ, capaz de poner a disposicin de muchos usuarios grandes cantidades de datos de manera simultnea. As de tener unas ventajas que a continuacin 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.

Caractersticas de Microsoft SQL Server Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye tambin un potente entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente. Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y las terminales o clientes de la red slo acceden a la informacin. Adems permite administrar informacin de otros servidores de datos.

Es comn desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a travs 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 cmodo y de alto rendimiento (VBA Access), a travs de la implementacin de aplicaciones de dos capas mediante el uso de formularios

Desarrollo de proyectos telemticos

nivel 1

36

Windows. Para el desarrollo de aplicaciones ms complejas (tres o ms 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 compaa 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 caractersticas son: Alta concurrencia Mediante un sistema denominado MVCC (Acceso concurrente multiversin, por sus siglas en ingls) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visin consistente de lo ltimo a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas comn en otras bases, eliminando la necesidad del uso de bloqueos explcitos.

Desarrollo de proyectos telemticos

nivel 1

37

Amplia variedad de tipos nativos PostgreSQL provee nativamente soporte para: Nmeros de precisin arbitraria. Texto de largo ilimitado. Figuras geomtricas (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 telemticos

nivel 1

38

2.5.6. Microsoft Access Microsoft Access es un programa Sistema de gestin de base de datos relacional creado y modificado por Microsoft para uso personal de pequeas organizaciones. Es un componente de la suite Microsoft Office aunque no se incluye en el paquete "bsico". Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas. Es un software de gran difusin entre pequeas 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 pequeas aplicaciones con unos pocos conocimientos del Programa. Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la respuesta a proyectos de programacin de pequeo y mediano tamao.

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 cdigo VBA (Visual Basic para Aplicaciones). Entre sus mayores inconvenientes figuran que no es multiplataforma, pues slo 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 crticos o muchos accesos simultneos a la base de datos.

Desarrollo de proyectos telemticos

nivel 1

39

Microsoft Access usa las siguientes extensiones para guardar sus datos: .mdb -Base de datos de Access (Versin 2003 y anteriores) .mde -Base de datos de Access protegida, con macros (Versin 2003 y anteriores) .accdb - Base de datos de Access (Versin 2007) .accde - Base de datos de Access protegida, con macros (Versin 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 telemticos

nivel 1

40

3. CONCEPTOS BSICOS SOBRE LOS LEGUAJES DE PROGRAMACIN

Tecnologa Dentro del campo de la telemtica, la tecnologa tiene el objetivo de eliminar las tareas repetitivas, facilitando el trabajo y hacindolo ms eficiente as como aumentando la productividad y los beneficios de la empresa. Programacin La programacin es una de las etapas ms importantes del ciclo de vida de un proyecto, y requiere un mtodo de trabajo. La programacin es el resultado de dicho trabajo. La programacin es el instrumento que permite la ejecucin de las tareas automatizadas de un sistema informtico. Las herramientas que utilizaremos para programar son los lenguajes de programacin, a travs 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 solucin y si se volviese a introducir el mismo dato, saliese de nuevo la misma solucin.

Desarrollo de proyectos telemticos

nivel 1

41

Metodologa de la programacin Se entiende como metodologa de la programacin al conjunto de normas, mtodos y anotaciones que nos indican la forma de programar. Cada lenguaje de programacin sigue una metodologa distinta.

Lenguaje de programacin Es un conjunto de reglas semnticas as como sintcticas que los programadores usan para la codificacin de instrucciones de un programa o algoritmo de programacin. Existen varios lenguajes de programacin.

Entorno de programacin o entorno de desarrollo Es el conjunto de herramientas utilizadas para la elaboracin de un programa.

Recursos Conjunto de componentes hardware que utilizaremos para la elaboracin de un programa (cpu, disco duro..). Una vez conocidos los conceptos bsicos necesarios para el aprendizaje de la programacin podemos empezar a ver los diferentes tipos de lenguajes de programacin.

Desarrollo de proyectos telemticos

nivel 1

42

Tipos de lenguaje de programacin Existen dos tipos de lenguajes claramente diferenciados; los lenguajes de bajo nivel y los de alto nivel. El ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina, consistente en ceros y unos. Es decir, slo utiliza 0 y 1 para codificar cualquier accin. Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.

Lenguajes de bajo nivel

Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas.

Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las caractersticas del mismo.

Dentro de este grupo se encuentran: - El lenguaje maquina: este lenguaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible.

Desarrollo de proyectos telemticos

nivel 1

43

- El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.

Lenguajes de alto nivel

Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. Estn 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 mquina a otra sin ningn tipo de problema.

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que estn diseando el programa. Tan solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la maquina.

Desarrollo de proyectos telemticos

nivel 1

44

Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos).

Lenguajes de Medio nivel

Se trata de un trmino no aceptado por todos, pero q seguramente habrs odo. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.

Generaciones

La evolucin de los lenguajes de programacin se puede dividir en 5 etapas o generaciones. Primera generacin: lenguaje maquina. Segunda generacin: se crearon los primeros lenguajes ensambladores. Tercera generacin: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol Cuarta generacin. Son los lenguajes capaces de generar cdigo por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible la reutilizacin d partes del cdigo para otros programas. Ej. Visual, Natural Adabes

Desarrollo de proyectos telemticos

nivel 1

45

Quinta generacin: aqu se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todava estn poco desarrollados. Ej. LISP

Los tipos o tcnicas de programacin son bastante variados, aunque puede que muchos de los lectores slo conozcan una metodologa para realizar programas. En la mayora de los casos, las tcnicas se centran en programacin modular y programacin estructurada, pero existen otros tipos de programacin.

Programacin estructurada (PE)

La programacin estructurada esta compuesta por un conjunto de tcnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuracin y mantenimiento del mismo.

Esta programacin estructurada utiliza un nmero limitado de estructuras de control, reduciendo as considerablemente los errores.

Esta tcnica incorpora: Diseo descendente (top-dow): el problema se descompone en etapas o estructuras jerrquicas. Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras ms simples capaces de ser resueltas con mayor facilidad. Estructuras bsicas: existen tres tipos de estructuras bsicas:

Desarrollo de proyectos telemticos

nivel 1

46

o Estructuras secunciales: cada accin sigue a otra accin secuencialmente. La salida de una accin es la entrada de otra. o Estructuras selectivas: en estas estructuras se evalan las condiciones y en funcin del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lgicas. o Estructuras repetitivas: son secuencias de instrucciones que se repiten un nmero determinado de veces.

Las principales ventajas de la programacin estructurada son: Los programas son ms fciles 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 slo 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 telemticos

nivel 1

47

Programacin modular

En la programacin modular consta de varias secciones dividas de forma que interactan a travs de llamadas a procedimientos, que integran el programa en su totalidad.

En la programacin modular, el programa principal coordina las llamadas a los mdulos secundarios y pasa los datos necesarios en forma de parmetros.

A su vez cada modulo puede contener sus propios datos y llamar a otros mdulos o funciones.

Programacin orientada a objetos (POO)

Se trata de una tcnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilizacin de los objetos.

El elemento principal de la programacin orientada a objetos es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. 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 caractersticas y por ello dedicaremos ms adelante un artculo exclusivamente a tratar estos dos trminos.

Desarrollo de proyectos telemticos

nivel 1

48

En DesarrolloWeb.com hemos publicado anteriormente una explicacin de lo que es la programacin orientada a objetos.

Programacin concurrente

Este tipo de programacin 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 programacin ms lenta y laboriosa, obteniendo unos resultados lentos en las acciones.

Programacin funcional

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

Programacin lgica

Se suele utilizar en la inteligencia artificial y pequeos programas infantiles. Se trata de una programacin basada en el clculo de predicados (una teora matemtica que permite lograr que un ordenador basndose en hecho y reglas lgicas, pueda dar soluciones inteligentes).

Desarrollo de proyectos telemticos

nivel 1

49

4. PRINCIPALES TECNOLOGAS DE DESARROLLO DE SISTEMAS EN ENTORNOS DISTRIBUIDOS

4.1.

RMI

Java RMI (Invocacin Remota de Mtodos) es un modelo de objetos distribuidos para la plataforma Java. La principal caracterstica 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 ms sencilla y eficiente la aplicacin. Pero lo que parece en principio una tremenda limitacin, obligar a que todo el mundo utilice el mismo lenguaje, no lo es tanto ya que Java a creado una arquitectura virtual comn para todo tipo de plataformas, lo que le asegura una gran interoperabilidad. Se trata de una tcnologa de desarrollo de Sistemas en entornos distribuidos creada por SUN (competidor de Microsoft). En SUN han apostado por dos formas diferentes de lograr la distribucin 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 estndar abierto y soportado por la industria. La idea de Java RMI es la misma que la de CORBA o DCOM: extender el modelo de invocacin de mtodos dentro del espacio de direccionamiento de una sola mquina virtual a invocaciones remotas de forma lo ms transparente posible para el desarrollador. La invocacin de mtodos se puede realizar entre diferentes VM interconectadas a travs de una red de comunicacin. 50

Desarrollo de proyectos telemticos

nivel 1

Una caracterstica a destacar de Java RMI es que incluso los objetos pueden pasarse como parmetros de una invocacin, o como valores de retorno. Para ello SUN ha desarrollado una metodologa para transformar los objetos en flujos de octetos (byte-stream) y as poder ser enviados por los canales de comunicacin. A esta metodologa se la conoce como serializacin de los objetos (object serialization). Es una caracterstica que tambin es til para almacenar en algn medio persistente a los objetos, algo fundamental por ejemplo en las bases de datos de objetos. En SUN ven a Java RMI como una extensin natural al paradigma de los objetos de su RPC (Llamadas remotas a procedimientos). Con esto se logra el objetivo de hacer lo ms transparente posible el hecho de que la invocacin sea remota, de forma que los programadores tienen un modelo comn 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 comn se une el hecho de que la maquina virtual Java tiene un recolector de basura automtico, por lo que la gestin de la memoria distribuida, uno de los temas ms espinosos dentro de cualquier sistema de objetos distribuidos, es transparente para el programador. Adems, RMI tiene algunas caractersticas nuevas que no se encuentran por ejemplo en CORBA o DCOM: la capacidad de distribuir de forma dinmica el cdigo ejecutable gracias a que los objetos pueden viajar como parmetros en las invocaciones. Esta caracterstica se presenta como fundamental en el mundo de los ordenadores que compaas 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 sern los conocidos NC (Network Computer). Esto conlleva las consabidas ventajas de facilidad de instalacin y mantenimiento del sistema.

Desarrollo de proyectos telemticos

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 orgenes con la mquina virtual Java (consultar el captulo de Java para obtener ms detalles).

Desarrollando aplicaciones con Java RMI

Desarrollar una aplicacin utilizando Java RMI supone muy poco esfuerzo extra para el desarrollador, y lo que es ms, 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 tambin las tendr CORBA. La metodologa de desarrollo es totalmente paralela a la de una aplicacin CORBA, aunque hay ciertos detalles que hay que ir aclarando segn avancemos en el proceso. Veamos nuestro ejemplo tpico 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 52

Desarrollo de proyectos telemticos

nivel 1

en Java. Esto lleva a que todo sea ms sencillo y por lo tanto se ha de lograr sistemas ms eficientes y gestionables. Pero en los sistemas actuales, cada vez ms complejos y donde debern interactuar sistemas de muy diferentes tipos, el obligar a que todo este hecho en un nico lenguaje reduzca el campo de aplicacin 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 telemticos

nivel 1

53

4.2.

COM/DCOM

COM (Component Object Model) es un estndar que permite la creacin de objetos que ejecuten tareas que resuelven problemas especficos 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 estn basados en esta tecnologa. La idea es tener un mundo de objetos independientes de un lenguaje de programacin. Por ello COM proporciona un estndar para las comunicaciones entre componentes, de tal forma, que una aplicacin puede utilizar caractersticas de cualquier otro objeto de la aplicacin, o del sistema operativo, y permite actualizar el software de un componente sin afectar a la operacin de la solucin global. COM soporta comunicacin entre objetos de equipos de cmputo distintos, en una LAN, WAN, o incluso en Internet. DCOM extiende el estndar COM de objetos remotos, para su utilizacin 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 cmo los componentes y sus clientes interactan entre s. Esta interaccin 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 comunicacin de tal manera que el cliente y el componente puede conectarse sin la necesidad de un sistema intermedio. El cliente llama a los mtodos del componente sin tener que preocuparse de niveles

Desarrollo de proyectos telemticos

nivel 1

54

ms complejos. DCOM olvida completamente la localizacin de los componentes, no importando que estn en el mismo proceso que el cliente o en una mquina en cualquier lugar del mundo. En cualquier caso, la forma en la que el cliente se conecta a un componente y llama a los mtodos de ste, es idntica. No es slo que no necesite cambios en el cdigo fuente, sino que adems no necesita que el programa sea recompilado. Una simple reconfiguracin cambia la forma en la que los componentes se conectan entre s. La independencia de localizacin 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 mquina especfica en un lugar determinado. Si la aplicacin tiene numerosos componentes pequeos, se puede reducir la carga de la red situndolos en la misma LAN, en la misma mquina, o incluso en el mismo proceso. Si la aplicacin est compuesta por un pequeo nmero de grandes componentes, la carga de red es menor y no es un problema, por tanto se pueden poner en las mquinas ms rpidas disponibles independientemente de donde estn situadas. Es completamente independiente del lenguaje. Casi cualquier lenguaje puede ser utilizado para crear componentes COM, y estos componentes puede ser utilizado por muchos ms lenguajes y herramientas. Java, Microsoft Visual C++, Microsoft Visual Basic, Delphi, PowerBuilder, y Micro Focus COBOL interactan 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 caractersticas proporcionadas por DCOM y asegurar que sus aplicaciones son completamente independientes del protocolo. 55

Desarrollo de proyectos telemticos

nivel 1

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 mltiples problemas que aaden estos entornos. DCOM extiende COM para permitir la comunicacin 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 estn 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 telemticos

nivel 1

56

4.3.

CORBA

CORBA, Common Object Request Broker Architecture, es una tecnologa para crear sistemas distribuidos, creada por un consorcio de fabricantes, agrupados bajo el OMG (Object Management Group).

El estndar CORBA define qu ha de incluir una implementacin estndar, pero no cmo se han de hacer. Esta tarea se deja de la mano de los diferentes fabricantes. Esta es una de las principales caractersticas de CORBA: permite una total libertad a los implementadores siempre que estos respeten unos mnimos orientados a la interoperabilidad entre implementaciones.

A. Ventajas

1) Disponibilidad y Versatilidad Muchas arquitecturas y sistemas operativos cuentan con una implementacin 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 plyade de implementaciones del estndar que se adaptan a multitud de posibles necesidades de los usuarios, generando una competencia que favorece aquellas implementaciones de mayor calidad y con ms caractersticas.

3) Adaptacin a Lenguajes de programacin


Desarrollo de proyectos telemticos nivel 1

57

Adems, es posible emplear los servicios de CORBA desde cualquier lenguaje de programacin, 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 estndar bastante complejo, y su uso no sea tan transparente al programador como sera deseable: 1. Hay que usar un compilador que traduce una serie de tipos de datos estndares a los tipos del lenguaje en el que se vaya a programar (IDL).

2. Hay que ser conscientes a la hora de disear qu objetos van a ser remotos y cules 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 programacin (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 diseo de un programa pensado para otro, hacen que la adaptacin sea fastidiosa. Cuestiones como la colocacin de libreras o las diferentes formas de implementar la gestin de la concurrencia, hacen difcil la portabilidad del cdigo y obligan al programador a reciclarse cuando quiere cambiar de ORB. Adems, donde el estndar no concreta,
Desarrollo de proyectos telemticos 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 inicializacin del mismo. En vez de inicializarlo normalmente, hay que pedir al ORB (va IOR o usando un nombre ms 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 mtodos de un objeto remoto (al que se accede por referencia), solo se le pueden pasar como parmetros (y el mtodo 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 parmetros por valor.

3. Mltiples implementaciones de CORBA dan lugar a mltiples incompatibilidades. El estndar CORBA define a alto nivel qu funciones debe proporcionar un ORB y cmo han de interoperar estos entre s, lo que garantiza cierto grado de compatibilidad, pero el cmo se ofrezca esa funcionalidad al programador es algo que est al libre albedro del fabricante del ORB. Es ms, parte de la funcionalidad del estndar CORBA no es de obligado cumplimiento por parte de las compaas fabricantes para poder anunciarse como CORBA-compliant. En estas condiciones es muy difcil pensar que un programa que haya sido programado pensando en un ORB concreto, pueda funcionar bien con una simple recompilacin.

Desarrollo de proyectos telemticos

nivel 1

59

4. El estndar CORBA est poco preparado para usarse en entornos embebidos (electrnica 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 ms 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 telemticos

nivel 1

60

5. BIBLIOGRAFA

Sistemas operativos y lenguajes de programacin. Enrique Quero Catalinas. Ed. Paraninfo.

Sistemas distribuidos. George Coulouris. Ed. Addison Wesley.

Desarrollo de proyectos telemticos

nivel 1

61

6. MAPA CONCEPTUAL

TERMINOLOGA

BASES DE DATOS RELACIONALES DESARROLLO DE PROYECTOS TELEMTICOS

LOS LENGUAJES DE PROGRAMACIN

TECNOLOGAS DE DESARROLLO DE SISTEMAS EN ENTORNOS DISTRIBUIDOS

Desarrollo de proyectos telemticos

nivel 1

62

Anda mungkin juga menyukai