Está en la página 1de 31

Secretara de Educacin Pblica Subsecretara de Educacin Superior

SEP SES
INSTITUTO TECNOLGICO DE LZARO CRDENAS
DESARROLLO DE APLICACIONES EN RED Unidad III: Conectividad

DGEST

PROFESOR: DANIEL ROJAS CID

INTEGRANTES: Trujillo Pineda Jos Javier Lpez Salcedo Francisco Javier Milln Hernndez Mnica Silva Arroyo Rigoberto Torres Mercado Juan Carlos Garca Santiago Marco Antonio

CD. Y PUERTO LZARO CRDENAS MICH. JULIO DEL 2010.

CERTIFICADO ISO 9001

RSGC - 247

ndice de Contenidos

3.1 Introduccin a la Conectividad ................................................................................ 4 3.2 Conectividad con los procesos ................................................................................................... 5 3.2.1 Elementos bsicos ................................................................................................ 5 3.2.2 Canal Virtual ......................................................................................................... 7 3.2.3 Sockets y Streams .................................................................................................. 9 3.2.4 Introduccin a Winsocks .................................................................................. 12 3.2.4.1 Funciones y operaciones bsicas para la comunicacin ....................... 13 3.2.4.2 Creacin y uso del canal virtual ............................................................. 14 3.3 Conectividad con la base de datos ............................................................................................. 16 3.3.1 Generalidades ...................................................................................................... 16 3.3.2 Cuestiones de flexibilidad y compatibilidad ....................................................... 20 3.3.3 Mtodos utilizados para la conectividad ............................................................. 21 3.3.4 Conectividad abierta a la BD (ODBC y JDBC) ................................................ 24 Bibliografa........................................................................................................................................ 29

-1-

ndice de Figuras

Figura 3. 1 Flujo de datos ............................................................................................... 11 Figura 3. 2 Clases paquete java.sql ............................................................................... 17 Figura 3. 3 Tipos de controladores ................................................................................. 18 Figura 3. 4 Arquitectura para JDBC ............................................................................... 19 Figura 3. 5 Modelo de dos capas .................................................................................. 22 Figura 3. 6 Modelo de tres capas ................................................................................... 23 Figura 3. 7 Puente JDBC-ODBC .................................................................................... 25 Figura 3. 8 URL de JDBC ............................................................................................... 26

-2-

UNIDAD III Conectividad


3.1 Introduccin a la conectividad 3.2 Conectividad con los procesos 3.2.1 Elementos bsicos 3.2.2 Canal Virtual 3.2.3 Sockets y Streams 3.2.4 Introduccin a Winsocks 3.2.4.1 Funciones y operaciones bsicas para la comunicacin 3.2.4.2 Creacin y uso de un canal virtual 3.3 Conectividad con la base de datos 3.3.1 Generalidades 3.3.2 Cuestiones de flexibilidad y compatibilidad 3.3.3 Mtodos utilizados para la conectividad 3.3.4 Conectividad abierta a la base de datos (ODBC y JDBC)

-3-

3.1 Introduccin a la Conectividad

a conectividad es la capacidad de un dispositivo de poder ser conectado sin la necesidad de un ordenador, es decir en forma autnoma.

Una base de datos es una coleccin organizada de datos. Existen diversas estrategias para organizar datos y facilitar el acceso y la manipulacin. Un sistema de administracin de bases de datos (DBMS) proporciona los mecanismos para almacenar y organizar datos en una manera consistente con el formato de la base de datos. Los sistemas de administracin de bases de datos permiten el acceso y almacenamiento de datos sin necesidad de preocuparse por la su representacin interna. La mayora de sistemas de administracin de bases de datos populares incluyen controladores JDBC. Un lenguaje llamado SQL es el lenguaje estndar internacional que se utiliza casi universalmente con las bases de datos relacionales para realizar consultas (es decir, para solicitar informacin que satisfaga ciertos criterios) y para manipular datos. Algunos sistemas de administracin de bases de datos relacionados (RDBMS) populares son Microsoft, SQL Server, Oracle, Sybase, DB2, Informix y MySQL. Los programas en Java se comunican con las bases de datos y manipulan sus datos utilizando la API JDBC. Un controlador de JDBC implementa la interfaz para una base de datos.

-4-

3.2 Conectividad con los procesos


Conectividad: En el mbito de las comunicaciones, se refiere a la capacidad de hardware y software de transmitir conjuntamente datos e informacin en un entorno Informtico. Un proceso es un programa en ejecucin, los procesos son gestionados por el sistema operativo y estn formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

3.2.1 Elementos bsicos


Cableado de una red Actualmente, la gran mayora de las redes estn conectadas por algn tipo de cableado, que acta como medio de transmisin por donde pasan las seales entre los equipos. Hay disponibles una gran cantidad de tipos de cables para cubrir las necesidades y tamaos de las diferentes redes, desde las ms pequeas a las ms grandes. Existe una gran cantidad de tipos de cables. Algunos fabricantes de cables publican catlogos con ms de 2.000 tipos diferentes que se pueden agrupar en tres grupos principales que conectan la mayora de las redes:

-5-

Cable coaxial. Cable de par trenzado (apantallado y no apantallado). Cable de fibra ptica.

La tarjeta de red Las tarjetas de red, tambin denominadas NIC (Network Interface Cards, tarjetas de interfaz de red), actan como la interfaz o conexin fsica entre el equipo y el cable de red. Las tarjetas estn instaladas en una ranura de expansin en cada uno de los equipos y en el servidor de la red. Despus de instalar la tarjeta de red, el cable de red se une al puerto de la tarjeta para realizar la conexin fsica entre el equipo y el resto de la red. La funcin de la tarjeta de red es: Preparar los datos del equipo para el cable de red. Enviar los datos a otro equipo. Controlar el flujo de datos entre el equipo y el sistema de cableado. Recibir los datos que llegan por el cable y convertirlos en bytes para que puedan ser comprendidos por la unidad de procesamiento central del equipo (CPU). En un nivel ms tcnico, la tarjeta de red contiene el hardware y la programacin firmware (rutinas software almacenadas en la memoria de slo lectura, ROM) que implementa las funciones de Control de acceso al medio y Control de enlace lgico en el nivel de enlace de datos del modelo OSI.

-6-

Redes sin hilos El entorno sin hilos es una opcin de red, a veces apropiada y otras veces necesaria. Actualmente, los fabricantes ofrecen ms productos a precios atractivos, lo que significa que en un futuro se incrementarn las ventas y la demanda. Conforme se incremente la demanda, el entorno sin hilos crecer y mejorar. La frase entorno sin hilos es engaosa, ya que implica una red completamente libre de cableado. En la mayora de los casos, esto no es cierto. Realmente la mayora de las redes sin cables constan de componentes sin hilos que se comunican con una red que utiliza cableado, es una red de componentes mezclados llamada red hbrida.

3.2.2 Canal Virtual


Canal: Ruta o camino por la que se transmite informacin desde la CPU hacia un perifrico determinado, elemento de memoria, etc. Suele denominarse tambin con la terminologa inglesa como bus. Virtual: Esta palabra se suele usar para referirse a algo que no existe realmente, sino slo dentro del ordenador. Un ambiente virtual es una interfaz que permite a los humanos visualizar e interactuar con ambientes generados por medio de computadoras en tiempo real, a travs de los canales sensoriales humanos. La realidad virtual es una herramienta que permite al usuario la inmersin en una experiencia rica en sensaciones, usando sensores de entrada y de salida, creada por un motor de realidad.

-7-

Los motores de realidad son los encargados de procesar las sensaciones de entrada y generar nuevas sensaciones de salida. Por ejemplo, el usuario al or el crujir del fuego (sensacin de salida), voltea la cabeza (accin del usuario), y un dispositivo capta el movimiento (sensacin de entrada) y genera la imagen del fuego (el motor de realidad). Un sistema de realidad virtual cuenta con los siguientes elementos: Efectores. Son los sensores tanto de entrada como de salida que permiten la interaccin entre el usuario y el motor de realidad. Motor de realidad. Es el sistema de computacin y su hardware asociado que le da a los efectores la informacin necesaria para interactuar. Aplicacin. Es el software que define el contexto de la aplicacin y las leyes de interaccin entre los objetos y los usuarios. Geometra. Es la informacin que describe los atributos de los objetos. Esta informacin es procesada por la aplicacin para crear el mundo virtual.

-8-

3.2.3 Sockets y Streams


Un socket es un punto final de un enlace de comunicacin de dos vas entre dos programas que se ejecutan a travs de la red. Tipos de socket Orientado a conexin: Establece un camino virtual entre servidor y cliente, fiable, sin prdidas de informacin ni duplicados, la informacin llega en el mismo orden que se enva. El cliente abre una sesin en el servidor y este guarda un estado del cliente. El cliente utiliza la clase Socket. El servidor utiliza la clase ServerSocket. No orientado a conexin: Envo de datagramas de tamao fijo. No es fiable, puede haber prdidas de informacin y duplicados, y la informacin puede llegar en distinto orden del que se enva. No se guarda ningn estado del cliente en el servidor, por ello, es ms tolerante a fallos del sistema. Tanto el cliente como el servidor utilizan la clase DatagramSocket. Todas estas clases (Socket, ServerSocket y DatagramSocket) se encuentran en el paquete java.net. Clase Socket Constructores: public Socket () public Socket (InetAddress address, int port) public Socket (String host, int port) public Socket (InetAddress address, int port, InetAddress localAddr, int localPort) public Socket (String host, int port, InetAddress localAddr, int localPort) Servicios de la clase Socket public InetAddress getInetAddress(): Devuelve la direccin IP de la mquina en la que estamos conectados. public int getPort(): Devuelve el puerto de la mquina remota. public void close() Cierra el canal de comunicacin. public InputStream getInputStream(): Devuelve el canal de lectura del socket. public OutputStream getOutputStream(): Devuelve el canal de escritura del socket.

-9-

Clase ServerSocket Constructores: public ServerSocket (int port) public ServerSocket (int port, int backlog) public ServerSocket (int port, int backlog, InetAddress bindAddr) port: puerto de la mquina servidora. backlog: tamao de la cola de espera, en el primero es 50. bindAddr: direccin IP local que se har pblica mediante el bind. El constructor ServerSocket se encarga de hacer el bind y el listen (conectar y escuchar). Servicios de la Clase ServerSocket public Socket accept(): Devuelve el socket resultado de aceptar una peticin. public void close() Cierra el canal de comunicacin. public InetAddress getInetAddress(): Devuelve la direccin IP de la mquina local. public int getLocalPort(): Devuelve el puerto de la mquina local. Comunicacin entre cliente-servidor Para la transmisin de datos entre cliente y servidor se utilizarn las clases DataInputStream (recibir datos) DataOutputStream (enviar datos) Estas clases disponen de mtodos para leer y escribir datos en el socket: read/writeBoolean read/writeChar read/writeDouble, read/writeFloat, read/writeInt, read/writeLong, read/writeShort read/writeUTF (leer/escribir cadenas de caracteres) Para envar los datos se utiliza el mtodo flush() de la clase DataOutputStream. Clase DatagramSocket Constructores: public DatagramSocket () public DatagramSocket (int port)

- 10 -

public DatagramSocket (int port, InetAddress laddr) El constructor DatagramSocket se encarga de hacer el bind. El primer constructor toma un puerto libre. Servicios de la clase DatagramSocket public void connect(InetAddress address, int port): Conecta el socket a la mquina remota con la IP address y puerto port. public void close() Cierra el canal de comunicacin. public void disconnect(): Desconecta el socket. public InetAddress getInetAddress(): Devuelve la @IP de la mquina remota. public int getPort(): Devuelve el puerto de la mquina remota. public void send(DatagramPacket p): Enva un datagrama a la mquina remota, por el socket asociado. public void receive(DatagramPacket p): Recibe un datagrama de otra mquina, por el socket asociado. Streams Un Stream es simplemente una fuente o destino de bytes. Los streams ms comunes son los archivos. Tambin pueden ser caracteres de un string o bloque de memoria o bytes de un socket. La idea es que el programador los trate de la misma forma que archivos. En Java se usan diferentes mecanismos para dar formato a datos. Ofrece clases orientada a manejo de bajo nivel y otras de alto nivel. Da gran flexibilidad y hace uso de filtros en cascada para manipular los datos de entrada o salida. Para obtener informacin de una fuente un programa abre un stream y lee la informacin secuencialmente.

Figura 3. 1 Flujo de datos

De igual forma, un programa puede enviar informacin a un destino externo abriendo un stream al destino y escribiendo la informacin secuencialmente.

- 11 -

3.2.4 Introduccin a Winsocks


El control WinSock permite conectarse a un equipo remoto e intercambiar datos con el Protocolo de datagramas de usuario (UDP) o con el Protocolo de control de transmisin (TCP). Ambos protocolos se pueden usar para crear aplicaciones cliente-servidor. Al igual que el control Timer, el control WinSock no tiene una interfaz visible en tiempo de ejecucin. Aplicaciones posibles: Crear una aplicacin cliente que recopile informacin del usuario antes de enviarla a un servidor central. Crear una aplicacin servidora que funcione como un punto central de recopilacin de datos procedentes de varios usuarios. Crear una aplicacin de "conversacin". Seleccionar un protocolo Cuando utilice el control WinSock, primero debe tener en cuenta es si se va a usar el protocolo TCP o el protocolo UDP. La principal diferencia entre los dos radica en su estado de conexin: TCP es un protocolo basado en la conexin y es anlogo a un telfono: el usuario debe establecer una conexin antes de continuar. UDP es un protocolo sin conexin y la transaccin entre los dos equipos es como pasar una nota: se enva un mensaje desde un equipo a otro, pero no existe una conexin explcita

- 12 -

entre ambos. Adems, el tamao mximo de los datos en envos individuales est determinado por la red. Establecer el protocolo Para establecer el protocolo que la aplicacin va a usar: en tiempo de diseo, en la ventana Propiedades, haga clic en Protocolo y seleccione sckTCPProtocol o sckUDPProtocol. Determinar el nombre del equipo Para conectarse a un equipo remoto, deber saber su direccin IP o su "nombre descriptivo". La direccin IP est formada por un conjunto de tres dgitos separados por puntos. En general, es mucho ms fcil recordar el nombre descriptivo de un equipo.

Para encontrar el nombre del equipo: 1. En la Barra de tareas del equipo, haga clic en Inicio. 2. En el elemento Configuracin, haga clic en Panel de control. 3. Haga doble clic en el icono Red. 4. Haga clic en la ficha Identificacin. 5. El nombre del equipo aparecer en el cuadro Nombre del equipo.

3.2.4.1 Funciones y operaciones bsicas para la comunicacin


Como se ha venido diciendo, cliente/servidor es un modelo basado en la idea del servicio, en el que el cliente es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. Adems esta relacin est establecida en funcin del intercambio de mensajes que es el nico elemento de acoplamiento entre ambos. De estas lneas se desprenden los tres elementos fundamentales sobre los cuales se desarrollan e implantan los sistemas cliente/servidor: el proceso cliente que es quien inicia el dilogo, el proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que

- 13 -

corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder intercambiar mensajes. El modelo cliente-servidor rene las caractersticas necesarias para proveer esta infraestructura, independientemente del tamao y complejidad de las operaciones de las organizaciones pblicas o privadas y, consecuentemente desempea un papel importante en este proceso de evolucin.

3.2.4.2 Creacin y uso del canal virtual


Las principales razones para construir un ambiente virtual son: Lo real es muy caro para construir. Ejemplo: Sistema de entrenamiento para una estacin espacial. Lo real es muy peligroso para trabajar. Ejemplo: una planta nuclear. Lo real ya no existe. Ejemplo: reconstruccin de sitios arqueolgicos. Lo real todava no existe. Ejemplo: representacin de diseos arquitectnicos por construir. Lo real es muy difcil de visualizar. Ejemplo: entrenadores para cirugas. Mostrar lugares lejanos. Ejemplo: visitas virtuales a la torre Eiffel. Puesto que en un ambiente virtual es necesario estimular los sentidos del usuario, se necesitan interfaces que hagan interactuar al motor de realidad con el usuario, las principales interfaces son: Interfaz visual Interfaz auditiva Interfaz tctil Interfaz de movimiento Para la creacin del mundo virtual es necesario modelarlo; existe una gran variedad de instrumentos desarrollados con este fin. Los principales instrumentos utilizados para la captura de objetos tridimensionales son: Escneres lser de mano Escneres lser de gran rango

- 14 -

Las aplicaciones de realidad virtual ms sobresalientes actualmente son: Simulador de ciruga oral. Este sistema incrementa significativamente la aceptacin del paciente al tratamiento adems de ahorrar tiempo, ya que la exploracin inicial, la toma de datos y la planeacin pueden ser hechas en una sola cita. Exhibicin virtual de un gorila en el zoolgico de Atlanta. Vietnam virtual, para el tratamiento de pacientes con estrs postraumtico. Entrenamiento mdico para campos de batalla. Entrenamiento para liberacin de rehenes. Profesores virtuales. La principal diferencia entre la animacin y la realidad virtual es que, en la animacin, las escenas son dibujadas previamente y despus proyectadas en la secuencia deseada, mientras que en la realidad virtual, son dibujadas en tiempo real en relacin con la posicin y las acciones del usuario, por lo que el usuario tiene absoluto control sobre lo que est viendo. Las principales diferencias entre la realidad virtual y los sistemas CAD es que, en la primera, se preocupa por lograr una realidad sensorial y permite al usuario caminar, tocar y manipular objetos en el mundo, y los segundos se preocupa por la exactitud en los modelos. En ambos se pueden modelar luces, materiales y texturas; de hecho muchos paquetes de realidad virtual son capaces de importar datos de sistemas CAD. Un sistema de realidad virtual debe generar las imgenes en tiempo real a una tasa mnima de 10 cuadros por segundo, siendo una tasa de alrededor de 30 cuadros por segundo deseable. Otro requerimiento es que la reaccin debe de ser antes de los siguientes 50 milisegundos de que se realiz la entrada para no observar problemas en el desempeo.

- 15 -

3.3 Conectividad con la base de datos 3.3.1 Generalidades


Conexin Directa. El controlador JDBC accede directamente al controlador del fabricante (DB Client Lib); este tipo de controladores JDBC se denominan de nivel 3 4.Entre los manejadores de base de datos que poseen una conexin directa con Java, tenemos a: My Sql, Sybase DB2, Oracle. Ya que estas no necesitan un puente para comunicarse, el trabajo y la conexin son mucho ms rpidos que una conexin indirecta. Conexin Indirecta El controlador JDBC hace de "puente" con el controlador ODBC, que es el que accede a la base de datos, este es un esquema de un controlador JDBC de nivel tipo 1. Entre los manejadores de base de datos que necesitan de un puente DBC para conectarse con Java, tenemos a las marcas, Access, Microsoft SQL Server, Informix, entre otros. Importante: Para realizar una conexin con alguna base de datos debemos de importar el paquete: java.sql.*.- Este paquete contiene clases e interfaces diseadas teniendo en mente la arquitectura tradicional cliente-servidor. Su funcionalidad se centra primordialmente en servicios de programacin bsicos de bases de datos, como creacin de conexiones, ejecucin de instrucciones e instrucciones preparadas. JDBC ofrece el paquete java.sql, en el que existen clases muy tiles para trabajar con bases de datos.

- 16 -

Figura 3. 2 Clases paquete java.sql

Dentro de los paquetes que ms se usan se encuentran: java.sql.DriverManager.- Esta clase proporciona la funcionalidad necesaria para gestionar uno o mas drivers de base de datos. java.sql.ResultSetMetaData.- Esta interfaz proporciona mtodos para acceder a metadatos del Resultset, como los nombres de las columnas, sus tipos, el nombre de tabla correspondiente y otras propiedades. java.sql.SQLException.- Esta excepcin representa todas las condiciones de excepcin relacionadas con JDBC. java.sql.Connection.- representa una conexi6n con una base de datos.

- 17 -

Java Database Connectivity Es una especificacin de un conjunto de clases y mtodos de operacin (API) que permiten a cualquier programa Java acceder a sistemas de bases de datos. El api JDBC lo podemos encontrar en los paquetes java.sql y javax.sql y sirven para: o establecer conexiones con bases de datos o enviar sentencias SQL a dichas BDs o procesar los resultados JDBC permite ejecutar instrucciones SQL (Structured Query Language: Lenguaje estructurado de consultas) Los controladores JDBC son adaptadores del lado-cliente (se instalan en la mquina cliente, no en el servidor) para convertir las peticiones desde los programas Java a un protocolo que pueda entender DBMS. Tipos Existen controladores comerciales y libre para la mayora de las bases de datos relacionales y pueden ser de cuatro tipos:

Figura 3. 3 Tipos de controladores

- 18 -

El API JDBC (Java Database Connectivity) es un estndar de la industria para la conectividad independiente de base de datos entre el Lenguaje de Programacin JAVA y un amplio rango de base de datos Base de datos SQL u otras fuentes de datos tales como hojas de clculo (Excel) o archivos planos.

Arquitectura para JDBC

Figura 3. 4 Arquitectura para JDBC

- 19 -

3.3.2 Cuestiones de flexibilidad y compatibilidad


Una inspeccin casual del API JDBC muestra rpidamente la dominacin de los interfaces dentro del API, lo que podra llevar al usuario a preguntarse dnde se realiza el trabajo. Realmente esta es slo una aproximacin que tocan los desarrolladores JDBC porque la implementacin real es la proporcionada por los vendedores de Drivers JDBC, que a su vez proporcionan las clases que implementan los interfaces necesarios. Esta aproximacin presenta la competicin que proporciona al consumidor ms opciones, y para la mayor parte, produce mejor software. Con todos los drivers disponibles. elegir uno puede ser difcil. Afortunadamente, Sun Microsystems mantiene una base de datos con ms de 150 drivers JDBC de una amplia variedad de vendedores. Esta debera ser la primera parada despus de seleccionar una base de datos.

Desde una perspectiva de programacin, hay dos clases principales responsables para el establecimiento de una conexin con una base de datos. La primera clase es DriverManager , que es una de las clases que realmente proporciona el API JDBC. DriverManager es responsable de manejar un almacn de drivers registrados, esencialmente abstrayendo los detalles del uso de un driver para que el programador no tenga que tratar con ellos directamente. La segunda clase es la clase real del Driver JDBC. Estas son proporcionadas por vendedores independientes. La clase Driver JDBC es la responsable de establecer la conexin con la base de datos y de manejar todas las comunicaciones con la base de datos.

- 20 -

3.3.3 Mtodos utilizados para la conectividad

Una inspeccin casual del API JDBC muestra rpidamente la dominacin de los interfaces dentro del API, lo que podra llevar al usuario a preguntarse dnde se realiza el trabajo. El Modelo de Dos Capas El modelo de dos capas es el marco de trabajo tradicional cliente-servidor; tiene una capa cliente y una capa servidor. Este modelo simple requiere que el cliente tenga cuidado especfico de la base de datos. As, por ejemplo, el cliente necesita cdigo especfico de la base de datos resultando en un acoplamiento fuerte entre las dos capas. Este acoplamiento fuerte tienes varias ventajas. Primero, puede reducir el tiempo de desarrollo debido al hecho de que todo el sistema es considerablemente ms simple y ms pequeo. Segundo, el acoplamiento fuerte puede mejorar potencialmente el rendimiento del sistema ya que el cliente puede fcilmente aprovecharse de las funcionalidades especficas del servidor que podran no estar disponibles para sistemas con un acoplamiento ms ligero.

Por otro lado, este acoplamiento fuerte puede provocar varios problemas. El ms notable, el mantenimiento del sistema se puede volver ms difcil porque los cambios en el servidor pueden romper al cliente y viceversa. Adems, si la base de datos cambia, todo el cdigo del cliente deber ser modificado. Si el cliente est altamente distribuido, la propagacin de los cambios en el sistema puede ser difcil, y en algunos escenarios imposible. Como resultado, las aplicaciones de dos capas pueden ser tiles en un entorno de LAN corporativa donde el completo control de todos los clientes se consigue, o al inicio, o en el estado prototipal de un proyecto donde diferentes opciones estn siendo evaluadas.

- 21 -

Figura 3. 5 Modelo de dos capas

La aplicacin habla directamente con la base de datos. Controlador JDBC se comunica con el sistema especfico que maneja la base de datos. La base de datos puede estar en otra mquina, con lo que el cliente se comunica por red. Esta es la configuracin llamada cliente/servidor. El Modelo de n-Capas El modelo de n-capas tiene una capa cliente, al menos una capa servidor, y al menos una cada intermedia. Debido a la capa extra, muchos de los problemas que afectan a los modelos de dos capas no afectarn. Por ejemplo, la capa media ahora mantiene informacin de la conexin a la base de datos. Esto significa que los clientes slo tienen que conocer la capa media. Como la capa media generalmente est operando en la misma localizacin fsica que el servidor (por ejemplo, ambos componentes pueden estar detrs del mismo firewall), mantener la capa media es considerablemente ms sencillo que mantener cientos de instalaciones clientes.

- 22 -

Otra ventaja de la aproximacin de n-capas es que todo el sistema se puede escalar fcilmente para manejar ms usuarios. Todo lo que necesitamos hacer es aadir ms capas medias o ms capas servidores, dependiendo de los resultados de las operaciones de perfilado. Como las capas intermedias normalmente se implementan usado servidores Web -- usando tecnologas JavaServer Pages y Servlets -- es muy sencillo aadir balance de carga o incluso nuevos componentes hardware. Sin embargo, ya que la capa extra introduce complejidad adicional en todo el sistema. Esto significa ms cdigo, ms duro de probar y potencialmente ms difcil de encontrar sus errores. Afortunadamente, el lenguaje Java proporciona muchos de los componentes necesarios, pre-construidos. para construir aplicaciones de n-capas viables. Adems, este modelo se presta a si mismo el fcil soporte de autentificacin e internacionalizacin, ya que la capa media controla el flujo de informacin y proporciona localizacin natural para manejar todo lo que concierne al manejo de seguridad y la localizacin.

Figura 3. 6 Modelo de tres capas

- 23 -

Los comandos son enviados a la capa intermedia de servicios, la cual enva sentencias SQL a la base de datos. sta las procesa y enva los resultados de vuelta a la capa intermedia, para luego ser enviados al cliente. Permite un control de acceso y de actualizacin. Provee ventajas de performance.

3.3.4 Conectividad abierta a la BD (ODBC y JDBC)


Sin embargo, ya que la capa extra introduce complejidad adicional en todo el sistema. El Driver JDBC (Driver tipo 1), tambin se le conoce como el puente JDBC-ODBC es un controlador para hacer uso de base de datos y que emplea un controlador ODBC para conectarse a la base de datos. El controlador convierte las llamadas de mtodos del JDBC en llamadas a funciones ODBC. El puente se utiliza comnmente cuando no hay disponible un controlador puro de JAVA para una base de datos en particular. El controlador se implementa en la clase sun.jdbc.odbc.JdbcOdbcDriver y est incluido en el Java 2 SDK, Edicin Estndar. Una de las ventajas que se tiene con este mtodo, es que cualquier base de datos que tenga instalado un controlador ODBC puede ser accesada.

- 24 -

Figura 3. 7 Puente JDBC-ODBC

Siete pasos bsicos para programar en JDBC Cargar el driver de la base de datos a acceder Definir el URL Establecer la conexin Crear una orden SQL Ejecutarla Procesar los resultados Cerrar la conexin

- 25 -

Cargar el driver de la base de datos a acceder Para poder conectarse a la BD y lanzar consultas, es preciso tener un driver adecuado para ella. Un driver suele ser un fichero .jar que contiene una implementacin de todos los interfaces del API de JDBC Nuestro cdigo nunca depende del driver, dado que siempre trabaja en conjunto con los paquetes java.sql y javax.sql Definir el URL Los URL de JDBC proporcionan un modo de identificar un driver de base de datos, en el caso de una conexin directa. Un URL de JDBC representa un dirver y la informacin adicional especfica del driver para localizar una base de datos y conectarla a l. La sintaxis del URL de JDBC es como sigue:

Figura 3. 8 URL de JDBC

Se puede observar que estn separadas en tres partes por dos puntos. Protocolo: jdbc es el protocolo. Este es el nico protocolo permitido en JDBC. Sub-protocolo: el sub-protocolo es utilizado para identificar un driver de base de datos o el nombre de un mecanismo de conectividad de una base de datos, elegido por los proveedores del driver de base de datos. Subnombre: la sintaxis del subnombre es especfica de driver. Un driver puede elegir cualquier sintaxis apropiada para su implementacin.

- 26 -

Establecer la conexin El propsito de la clase java.sql.DriverManager (gestor de driver) en JDBC es proporcionar una capa de acceso comn encima de diferentes drivers de base de datos utilizados en una aplicacin. En este enfoque las aplicaciones utilizan la clase DriverManager para obtener conexiones, a travs de su argumento URL. Por ejemplo para Ms SQL Server el driver seria: try{ Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); }catch(ClassNotFoundException e){ } El bloque try catch es necesario para establecer la conexin, esto para saber de algn problema existente cuando se ejecute la conexin con el driver dentro del bloque try, el bloque catch, tiene como funcin capturar el tipo de error generado, al no poder conectarse con la base de datos.

Crear una orden SQL La realizacin de consultas o listados en SQL, se llevan a cabo con el uso del SELECT tambin para Insertar (INSERT), modificar (UPDATE) y eliminar (DELETE). Podemos utilizar un objeto Connection para ejecutar instrucciones SQL creando un Statement, un PreparedStatement o un CallableStatement. Estos objetos abstraen instrucciones SQL normales, instrucciones preparadas y procedimientos Almacenados respectivamente. Una vez hemos obtenidos unos de esos objetos de instrucciones, podemos ejecutar la instruccin y leer resultados gracias a un objeto ResultSet..

- 27 -

Ejecutar la sentencia Pasos para la ejecutar una sentencia SQL con Java: 1. getConnection() : primero obtenemos la conexin. 2. PreparedStatement : prepara un comando SQL. 3. executeQuery() : ejecuta la instruccin SQL que se preparo en lo anterior. 4. ResultSet : lleva a memoria los datos de una consulta SQL. 5. next() : lee fila por fila los datos que estn en memoria. Procesar los resultados El objeto resultSet, contiene 265 tuplas describiendo los distintos pases. Para acceder a los distintos valores se leern las tuplas una a una y accederemos a los atributos usando distintos mtodos segn el tipo de variable. El mtodo next mueve el cursor a la siguiente tupla (la cual sobre la que se opera). Cada invocacin al mtodo next mueve el cursor una fila hacia delante.

Cerrar la conexin La conexin a una base de datos se lleva a cabo con la siguiente lnea de cdigo. connection.close();

- 28 -

Bibliografa

Java Network Programming Elliotte Rusty Harold ISBN 1-565-92870-9 O'Reilly Network Programming for Microsoft Windows Anthony Jones, Jim Ohlund Microsoft Press An Introduction to Network Programming with Java (2, 3) Jan Graba Pearson Education Java Programming with Oracle JDBC ( 3, 5, 6 ) Donald Bales O'Reilly Cliente/Server Survival Guide Robert Orfali, Dan Harkey, Jeri Edwards Wiley & Sons, Inc. Java Database Programming Bible John ODonahue John Wiley & Sons

- 29 -

Database Access with Visual Basic Jeffrey Mcmanus Macmillan Computer Publishing Network Programming with Perl Lincoln D. Stein Addison Wesley Professional

Java Servlet Programming Jason Hunter OReilly http://profesores.fi-b.unam.mx/efrenm/archivos.pdf http://www.mastermagazine.info/termino/7140.php http://fmc.axarnet.es/redes/tema_02_m.htm http://es.wikipedia.org/wiki/Conectividad http://www.osmosislatina.com/conectividad/ http://www.scribd.com/doc/19087004/Conectividad-de-Java-Con-Base-de-Datos http://members.fortunecity.com/miprofe/archivos/TerminosComputacionales.htm http://es.wikipedia.org/wiki/Proceso_(informtica) http://alumni.media.mit.edu/~jhe/Publicaciones/Tesis.pdf

- 30 -

También podría gustarte