You are on page 1of 31

Secretaría de Educación Pública Subsecretaría de Educación Superior

SEP SES
INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS
DESARROLLO DE APLICACIONES EN RED Unidad III: Conectividad

DGEST

PROFESOR: DANIEL ROJAS CID

INTEGRANTES: Trujillo Pineda José Javier López Salcedo Francisco Javier Millán Hernández Mónica Silva Arroyo Rigoberto Torres Mercado Juan Carlos García Santiago Marco Antonio

CD. Y PUERTO LÁZARO CÁRDENAS MICH. JULIO DEL 2010.

CERTIFICADO ISO 9001

RSGC - 247

Índice de Contenidos

3.1 Introducción a la Conectividad ................................................................................ 4 3.2 Conectividad con los procesos ................................................................................................... 5 3.2.1 Elementos básicos ................................................................................................ 5 3.2.2 Canal Virtual ......................................................................................................... 7 3.2.3 Sockets y Streams .................................................................................................. 9 3.2.4 Introducción a Winsocks .................................................................................. 12 3.2.4.1 Funciones y operaciones básicas para la comunicación ....................... 13 3.2.4.2 Creación 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 Métodos utilizados para la conectividad ............................................................. 21 3.3.4 Conectividad abierta a la BD (ODBC y JDBC) ................................................ 24 Bibliografía........................................................................................................................................ 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-

4 Conectividad abierta a la base de datos (ODBC y JDBC) -3- .UNIDAD III Conectividad 3.1 Introducción a la conectividad 3.2.2.2.3.3.1 Funciones y operaciones básicas para la comunicación 3.4 Introducción a Winsocks 3.1 Elementos básicos 3.2 Conectividad con los procesos 3.2.3 Métodos utilizados para la conectividad 3.2 Canal Virtual 3.1 Generalidades 3.3 Sockets y Streams 3.3.2 Cuestiones de flexibilidad y compatibilidad 3.3 Conectividad con la base de datos 3.2 Creación y uso de un canal virtual 3.2.4.3.2.4.

Un lenguaje llamado SQL es el lenguaje estándar internacional que se utiliza casi universalmente con las bases de datos relacionales para realizar consultas (es decir. Oracle. Una base de datos es una colección organizada de datos. Existen diversas estrategias para organizar datos y facilitar el acceso y la manipulación.3.1 Introducción a la Conectividad L a conectividad es la capacidad de un dispositivo de poder ser conectado sin la necesidad de un ordenador. para solicitar información que satisfaga ciertos criterios) y para manipular datos. Los programas en Java se comunican con las bases de datos y manipulan sus datos utilizando la API JDBC. Un sistema de administración 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 administración de bases de datos permiten el acceso y almacenamiento de datos sin necesidad de preocuparse por la su representación interna. Algunos sistemas de administración de bases de datos relacionados (RDBMS) populares son Microsoft. es decir en forma autónoma. -4- . Un controlador de JDBC implementa la interfaz para una base de datos. La mayoría de sistemas de administración de bases de datos populares incluyen controladores JDBC. Sybase. DB2. SQL Server. Informix y MySQL.

es decir. Los procesos son creados y destruidos por el sistema operativo. Otra información que permite al sistema operativo su planificación.2. Su memoria de trabajo. los valores de los registros de la CPU para dicho programa. se refiere a la capacidad de hardware y software de transmitir conjuntamente datos e información en un entorno Informático. la memoria que ha reservado y sus contenidos. así como también este se debe hacer cargo de la comunicación entre procesos.1 Elementos básicos Cableado de una red Actualmente. la gran mayoría de las redes están conectadas por algún tipo de cableado. que actúa como medio de transmisión por donde pasan las señales entre los equipos. esto es. Hay disponibles una gran cantidad de tipos de cables para cubrir las necesidades y tamaños de las diferentes redes.3. pero lo hace a petición de otros procesos. desde las más pequeñas a las más grandes. Su estado de ejecución en un momento dado. Algunos fabricantes de cables publican catálogos con más de 2. Existe una gran cantidad de tipos de cables. 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. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Un proceso es un programa en ejecución.000 tipos diferentes que se pueden agrupar en tres grupos principales que conectan la mayoría de las redes: -5- . 3. los procesos son gestionados por el sistema operativo y están formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.2 Conectividad con los procesos Conectividad: En el ámbito de las comunicaciones.

tarjetas de interfaz de red). Después de instalar la tarjeta de red.   Cable coaxial. el cable de red se une al puerto de la tarjeta para realizar la conexión física entre el equipo y el resto de la red. Cable de fibra óptica. actúan como la interfaz o conexión física entre el equipo y el cable de red. La función de la tarjeta de red es:     Preparar los datos del equipo para el cable de red. ROM) que implementa las funciones de Control de acceso al medio y Control de enlace lógico en el nivel de enlace de datos del modelo OSI. La tarjeta de red Las tarjetas de red. Enviar los datos a otro equipo. Las tarjetas están instaladas en una ranura de expansión en cada uno de los equipos y en el servidor de la red. -6- . Cable de par trenzado (apantallado y no apantallado). 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). la tarjeta de red contiene el hardware y la programación firmware (rutinas software almacenadas en la memoria de sólo lectura. también denominadas NIC (Network Interface Cards. En un nivel más técnico.

2. La frase «entorno sin hilos» es engañosa. Un ambiente virtual es una interfaz que permite a los humanos visualizar e interactuar con ambientes generados por medio de computadoras en tiempo real. Conforme se incremente la demanda. -7- . esto no es cierto. Actualmente. es una red de componentes mezclados llamada red híbrida. usando sensores de entrada y de salida. sino sólo dentro del ordenador.Redes sin hilos El entorno sin hilos es una opción de red. elemento de memoria. a veces apropiada y otras veces necesaria. 3. los fabricantes ofrecen más productos a precios atractivos. La realidad virtual es una herramienta que permite al usuario la inmersión en una experiencia rica en sensaciones. el entorno sin hilos crecerá y mejorará. a través de los canales sensoriales humanos. Virtual: Esta palabra se suele usar para referirse a algo que no existe realmente. Realmente la mayoría de las redes sin cables constan de componentes sin hilos que se comunican con una red que utiliza cableado.2 Canal Virtual Canal: Ruta o camino por la que se transmite información desde la CPU hacia un periférico determinado. creada por un motor de realidad. ya que implica una red completamente libre de cableado. Suele denominarse también con la terminología inglesa como bus. lo que significa que en un futuro se incrementarán las ventas y la demanda. etc. En la mayoría de los casos.

Por ejemplo.  Aplicación. Esta información es procesada por la aplicación para crear el mundo virtual.  Motor de realidad. Es el sistema de computación y su hardware asociado que le da a los efectores la información necesaria para interactuar. Son los sensores tanto de entrada como de salida que permiten la interacción entre el usuario y el motor de realidad. Es la información que describe los atributos de los objetos.  Geometría. voltea la cabeza (acción del usuario). el usuario al oír el crujir del fuego (sensación de salida). -8- .Los motores de realidad son los encargados de procesar las sensaciones de entrada y generar nuevas sensaciones de salida. Un sistema de realidad virtual cuenta con los siguientes elementos:  Efectores. Es el software que define el contexto de la aplicación y las leyes de interacción entre los objetos y los usuarios. y un dispositivo capta el movimiento (sensación de entrada) y genera la imagen del fuego (el motor de realidad).

por ello. El servidor utiliza la clase ServerSocket. public OutputStream getOutputStream(): ◦ Devuelve el canal de escritura del socket.net. El cliente utiliza la clase Socket. la información llega en el mismo orden que se envía. El cliente abre una sesión en el servidor y este guarda un estado del cliente. es más tolerante a fallos del sistema. No orientado a conexión: Envío de datagramas de tamaño fijo. int localPort) Servicios de la clase Socket public InetAddress getInetAddress(): ◦ Devuelve la dirección IP de la máquina en la que estamos conectados. -9- . public int getPort(): ◦ Devuelve el puerto de la máquina remota. ServerSocket y DatagramSocket) se encuentran en el paquete java. int port) public Socket (String host.3 Sockets y Streams Un socket es un punto final de un enlace de comunicación de dos vías entre dos programas que se ejecutan a través de la red. No se guarda ningún estado del cliente en el servidor. int localPort) public Socket (String host. sin pérdidas de información ni duplicados. int port. Todas estas clases (Socket. Tipos de socket ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Orientado a conexión: Establece un camino virtual entre servidor y cliente. No es fiable. fiable. public void close() ◦ Cierra el canal de comunicación. InetAddress localAddr. Clase Socket      ◦ ◦ ◦ ◦ ◦ Constructores: public Socket () public Socket (InetAddress address. InetAddress localAddr. int port) public Socket (InetAddress address. puede haber pérdidas de información y duplicados. int port. y la información puede llegar en distinto orden del que se envía. public InputStream getInputStream(): ◦ Devuelve el canal de lectura del socket.2. Tanto el cliente como el servidor utilizan la clase DatagramSocket.3.

Comunicación entre cliente-servidor Para la transmisión de datos entre cliente y servidor se utilizarán las clases ◦ DataInputStream (recibir datos) ◦ DataOutputStream (enviar datos) Estas clases disponen de métodos para leer y escribir datos en el socket: ◦ read/writeBoolean ◦ read/writeChar ◦ read/writeDouble. InetAddress bindAddr) ◦ port: puerto de la máquina servidora. Servicios de la Clase ServerSocket ◦ ◦ ◦ ◦ public Socket accept(): ◦ Devuelve el socket resultado de aceptar una petición. public int getLocalPort(): ◦ Devuelve el puerto de la máquina local. en el primero es 50. public InetAddress getInetAddress(): ◦ Devuelve la dirección IP de la máquina local. public void close() ◦ Cierra el canal de comunicación. ◦ bindAddr: dirección IP local que se hará pública mediante el bind. ◦ backlog: tamaño de la cola de espera. int backlog. read/writeFloat.10 - .Clase ServerSocket Constructores:  public ServerSocket (int port)  public ServerSocket (int port. read/writeInt. read/writeShort ◦ read/writeUTF (leer/escribir cadenas de caracteres) Para envíar los datos se utiliza el método flush() de la clase DataOutputStream. Clase DatagramSocket Constructores:  public DatagramSocket ()  public DatagramSocket (int port) . int backlog)  public ServerSocket (int port. El constructor ServerSocket se encarga de hacer el bind y el listen (conectar y escuchar). read/writeLong.

public void disconnect(): ◦ Desconecta el socket. por el socket asociado. Para obtener información de una fuente un programa abre un stream y lee la información secuencialmente. En Java se usan diferentes mecanismos para dar formato a datos. Ofrece clases orientada a manejo de bajo nivel y otras de alto nivel. La idea es que el programador los trate de la misma forma que archivos. InetAddress laddr) El constructor DatagramSocket se encarga de hacer el bind. Los streams más comunes son los archivos. . public void send(DatagramPacket p): ◦ Envía un datagrama a la máquina remota. Servicios de la clase DatagramSocket public void connect(InetAddress address. Da gran flexibilidad y hace uso de “filtros en cascada” para manipular los datos de entrada o salida. public DatagramSocket (int port. por el socket asociado. public void close() ◦ Cierra el canal de comunicación.11 - . ◦ ◦ ◦ ◦ ◦ ◦ ◦ Figura 3. int port): ◦ Conecta el socket a la máquina remota con la IP address y puerto port. Streams Un Stream es simplemente una fuente o destino de bytes. public InetAddress getInetAddress(): ◦ Devuelve la @IP de la máquina remota. un programa puede enviar información a un destino externo abriendo un stream al destino y escribiendo la información secuencialmente. 1 Flujo de datos De igual forma. public int getPort(): ◦ Devuelve el puerto de la máquina remota. El primer constructor toma un puerto libre. También pueden ser caracteres de un string o bloque de memoria o bytes de un “socket”. public void receive(DatagramPacket p): ◦ Recibe un datagrama de otra máquina.

pero no existe una conexión explícita . Al igual que el control Timer. Aplicaciones posibles: • Crear una aplicación cliente que recopile información del usuario antes de enviarla a un servidor central. primero debe tener en cuenta es si se va a usar el protocolo TCP o el protocolo UDP.4 Introducción 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 transmisión (TCP). La principal diferencia entre los dos radica en su estado de conexión: • TCP es un protocolo basado en la conexión y es análogo a un teléfono: el usuario debe establecer una conexión antes de continuar.12 - .2. el control WinSock no tiene una interfaz visible en tiempo de ejecución. • Crear una aplicación servidora que funcione como un punto central de recopilación de datos procedentes de varios usuarios. • UDP es un protocolo sin conexión y la transacción entre los dos equipos es como pasar una nota: se envía un mensaje desde un equipo a otro. Seleccionar un protocolo Cuando utilice el control WinSock. • Crear una aplicación de "conversación". Ambos protocolos se pueden usar para crear aplicaciones cliente-servidor.3.

Haga doble clic en el icono Red. En general. Determinar el nombre del equipo Para conectarse a un equipo remoto.13 - . En el elemento Configuración. Para encontrar el nombre del equipo: 1. Además esta relación está establecida en función del intercambio de mensajes que es el único elemento de acoplamiento entre ambos. 5.2. 4. haga clic en Panel de control.1 Funciones y operaciones básicas para la comunicación Como se ha venido diciendo. en el que el cliente es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. Además. De estas líneas 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 diálogo. el tamaño máximo de los datos en envíos individuales está determinado por la red. Establecer el protocolo Para establecer el protocolo que la aplicación va a usar: en tiempo de diseño. La dirección IP está formada por un conjunto de tres dígitos separados por puntos. haga clic en Protocolo y seleccione sckTCPProtocol o sckUDPProtocol.entre ambos. En la Barra de tareas del equipo.4. Haga clic en la ficha Identificación. cliente/servidor es un modelo basado en la idea del servicio. deberá saber su dirección IP o su "nombre descriptivo". en la ventana Propiedades. haga clic en Inicio. 3. El nombre del equipo aparecerá en el cuadro Nombre del equipo. el proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que . 2. es mucho más fácil recordar el nombre descriptivo de un equipo. 3.

El modelo cliente-servidor reúne las características necesarias para proveer esta infraestructura. existe una gran variedad de instrumentos desarrollados con este fin. Ejemplo: reconstrucción de sitios arqueológicos.corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder intercambiar mensajes. Puesto que en un ambiente virtual es necesario estimular los sentidos del usuario. las principales interfaces son: • Interfaz visual • Interfaz auditiva • Interfaz táctil • Interfaz de movimiento Para la creación del mundo virtual es necesario modelarlo. consecuentemente desempeña un papel importante en este proceso de evolución. Ejemplo: visitas virtuales a la torre Eiffel. • Lo real es muy difícil de visualizar. • Lo real ya no existe. 3.4. se necesitan interfaces que hagan interactuar al motor de realidad con el usuario. Ejemplo: una planta nuclear. independientemente del tamaño y complejidad de las operaciones de las organizaciones públicas o privadas y. • Lo real todavía no existe.2 Creación y uso del canal virtual Las principales razones para construir un ambiente virtual son: • Lo real es muy caro para construir. Ejemplo: representación de diseños arquitectónicos por construir.2. Los principales instrumentos utilizados para la captura de objetos tridimensionales son: • Escáneres láser de mano • Escáneres láser de gran rango . • Lo real es muy peligroso para trabajar.14 - . Ejemplo: Sistema de entrenamiento para una estación espacial. • Mostrar lugares lejanos. Ejemplo: entrenadores para cirugías.

y los segundos se preocupa por la exactitud en los modelos.Las aplicaciones de realidad virtual más sobresalientes actualmente son: • Simulador de cirugía oral. . • Entrenamiento médico para campos de batalla. Las principales diferencias entre la realidad virtual y los sistemas CAD es que. la toma de datos y la planeación pueden ser hechas en una sola cita.15 - . • Entrenamiento para liberación de rehenes. materiales y texturas. • Profesores virtuales. ya que la exploración inicial. las escenas son dibujadas previamente y después proyectadas en la secuencia deseada. para el tratamiento de pacientes con estrés postraumático. de hecho muchos paquetes de realidad virtual son capaces de importar datos de sistemas CAD. se preocupa por lograr una realidad sensorial y permite al usuario caminar. por lo que el usuario tiene absoluto control sobre lo que está viendo. son dibujadas en tiempo real en relación con la posición y las acciones del usuario. mientras que en la realidad virtual. en la primera. • Vietnam virtual. Un sistema de realidad virtual debe generar las imágenes en tiempo real a una tasa mínima de 10 cuadros por segundo. tocar y manipular objetos en el mundo. En ambos se pueden modelar luces. Este sistema incrementa significativamente la aceptación del paciente al tratamiento además de ahorrar tiempo. Otro requerimiento es que la reacción debe de ser antes de los siguientes 50 milisegundos de que se realizó la entrada para no observar problemas en el desempeño. en la animación. siendo una tasa de alrededor de 30 cuadros por segundo deseable. • Exhibición virtual de un gorila en el zoológico de Atlanta. La principal diferencia entre la animación y la realidad virtual es que.

16 - .sql. en el que existen clases muy útiles para trabajar con bases de datos.sql.3. Oracle. Conexión Indirecta El controlador JDBC hace de "puente" con el controlador ODBC. el trabajo y la conexión son mucho más rápidos que una conexión indirecta.Entre los manejadores de base de datos que poseen una conexión directa con Java.3 Conectividad con la base de datos 3. Microsoft SQL Server. tenemos a las marcas. Ya que estas no necesitan un puente para comunicarse. Entre los manejadores de base de datos que necesitan de un puente DBC para conectarse con Java. entre otros. Informix.. Su funcionalidad se centra primordialmente en servicios de programación básicos de bases de datos. este es un esquema de un controlador JDBC de nivel tipo 1. Sybase DB2. Access.Este paquete contiene clases e interfaces diseñadas teniendo en mente la arquitectura tradicional cliente-servidor. como creación de conexiones. que es el que accede a la base de datos. tenemos a: My Sql. . este tipo de controladores JDBC se denominan de nivel 3 ó 4. JDBC ofrece el paquete java. El controlador JDBC accede directamente al controlador del fabricante (DB Client Lib).*. Importante: Para realizar una conexión con alguna base de datos debemos de importar el paquete: java.1 Generalidades Conexión Directa.3. ejecución de instrucciones e instrucciones preparadas.

17 - .ResultSetMetaData..DriverManager.Connection.Figura 3.  java. el nombre de tabla correspondiente y otras propiedades.. 2 Clases paquete java.  java.SQLException. .Esta clase proporciona la funcionalidad necesaria para gestionar uno o mas drivers de base de datos.sql. sus tipos..sql. como los nombres de las columnas.sql Dentro de los paquetes que más se usan se encuentran:  java..sql.  java.Esta interfaz proporciona métodos para acceder a metadatos del Resultset.Esta excepción representa todas las condiciones de excepción relacionadas con JDBC.sql.representa una conexi6n con una base de datos.

 El api JDBC lo podemos encontrar en los paquetes java.18 - .sql y javax.  Tipos  Existen controladores comerciales y libre para la mayoría de las bases de datos relacionales y pueden ser de cuatro tipos: Figura 3. no en el servidor) para convertir las peticiones desde los programas Java a un protocolo que pueda entender DBMS.Java Database Connectivity  Es una especificación de un conjunto de clases y métodos de operación (API) que permiten a cualquier programa Java acceder a sistemas de bases de datos. 3 Tipos de controladores .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 máquina cliente.

4 Arquitectura para JDBC .El API JDBC (Java Database Connectivity) es un estándar de la industria para la conectividad independiente de base de datos entre el Lenguaje de Programación JAVA y un amplio rango de base de datos – Base de datos SQL u otras fuentes de datos tales como hojas de cálculo (Excel) o archivos planos.19 - . Arquitectura para JDBC Figura 3.

Esta debería ser la primera parada después de seleccionar una base de datos. que es una de las clases que realmente proporciona el API JDBC. Realmente esta es sólo una aproximación que tocan los desarrolladores JDBC porque la implementación real es la proporcionada por los vendedores de Drivers JDBC.3. .20 - . Esta aproximación presenta la competición que proporciona al consumidor más opciones. Desde una perspectiva de programación. que a su vez proporcionan las clases que implementan los interfaces necesarios. Estas son proporcionadas por vendedores independientes.2 Cuestiones de flexibilidad y compatibilidad Una inspección casual del API JDBC muestra rápidamente la dominación de los interfaces dentro del API. La primera clase es DriverManager . lo que podría llevar al usuario a preguntarse dónde se realiza el trabajo. Sun Microsystems mantiene una base de datos con más de 150 drivers JDBC de una amplia variedad de vendedores. elegir uno puede ser difícil. produce mejor software. hay dos clases principales responsables para el establecimiento de una conexión con una base de datos. La segunda clase es la clase real del Driver JDBC. y para la mayor parte. esencialmente abstrayendo los detalles del uso de un driver para que el programador no tenga que tratar con ellos directamente. DriverManager es responsable de manejar un almacén de drivers registrados. Con todos los drivers disponibles.3. La clase Driver JDBC es la responsable de establecer la conexión con la base de datos y de manejar todas las comunicaciones con la base de datos. Afortunadamente.

El más notable. las aplicaciones de dos capas pueden ser útiles en un entorno de LAN corporativa donde el completo control de todos los clientes se consigue. Si el cliente está altamente distribuido. Primero.3. Por otro lado. tiene una capa cliente y una capa servidor. o al inicio. y en algunos escenarios imposible. si la base de datos cambia. lo que podría llevar al usuario a preguntarse dónde se realiza el trabajo. El Modelo de Dos Capas El modelo de dos capas es el marco de trabajo tradicional cliente-servidor. todo el código del cliente deberá ser modificado. o en el estado prototipal de un proyecto donde diferentes opciones están siendo evaluadas.3. la propagación de los cambios en el sistema puede ser difícil. Además.3 Métodos utilizados para la conectividad Una inspección casual del API JDBC muestra rápidamente la dominación de los interfaces dentro del API. este acoplamiento fuerte puede provocar varios problemas. .21 - . Como resultado. por ejemplo. Este modelo simple requiere que el cliente tenga cuidado específico de la base de datos. Segundo. Así. puede reducir el tiempo de desarrollo debido al hecho de que todo el sistema es considerablemente más simple y más pequeño. el acoplamiento fuerte puede mejorar potencialmente el rendimiento del sistema ya que el cliente puede fácilmente aprovecharse de las funcionalidades específicas del servidor que podrían no estar disponibles para sistemas con un acoplamiento más ligero. Este acoplamiento fuerte tienes varias ventajas. el mantenimiento del sistema se puede volver más difícil porque los cambios en el servidor pueden romper al cliente y viceversa. el cliente necesita código específico de la base de datos resultando en un acoplamiento fuerte entre las dos capas.

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. Por ejemplo. Esto significa que los clientes sólo tienen que conocer la capa media. .  Controlador JDBC se comunica con el sistema específico que maneja la base de datos. 5 Modelo de dos capas  La aplicación “habla” directamente con la base de datos. mantener la capa media es considerablemente más sencillo que mantener cientos de instalaciones clientes. ambos componentes pueden estar detrás del mismo firewall). Como la capa media generalmente está operando en la misma localización física que el servidor (por ejemplo. Esta es la configuración llamada cliente/servidor. muchos de los problemas que afectan a los modelos de dos capas no afectarán. Debido a la capa extra. con lo que el cliente se comunica por red. la capa media ahora mantiene información de la conexión a la base de datos.22 - .Figura 3.  La base de datos puede estar en otra máquina.

Afortunadamente. más duro de probar y potencialmente más difícil de encontrar sus errores.es muy sencillo añadir balance de carga o incluso nuevos componentes hardware. ya que la capa media controla el flujo de información y proporciona localización natural para manejar todo lo que concierne al manejo de seguridad y la localización.usando tecnologías JavaServer Pages y Servlets -. este modelo se presta a si mismo el fácil soporte de autentificación e internacionalización. pre-construidos. Sin embargo. para construir aplicaciones de n-capas viables. 6 Modelo de tres capas .Otra ventaja de la aproximación de n-capas es que todo el sistema se puede escalar fácilmente para manejar más usuarios. Además. Figura 3. dependiendo de los resultados de las operaciones de perfilado. el lenguaje Java proporciona muchos de los componentes necesarios. Como las capas intermedias normalmente se implementan usado servidores Web -. ya que la capa extra introduce complejidad adicional en todo el sistema. Todo lo que necesitamos hacer es añadir más capas medias o más capas servidores.23 - . Esto significa más código.

3.24 - .  Permite un control de acceso y de actualización. Ésta las procesa y envía los resultados de vuelta a la capa intermedia.JdbcOdbcDriver y está incluido en el Java 2 SDK. la cual envía sentencias SQL a la base de datos. Edición Estándar. El controlador se implementa en la clase sun. El puente se utiliza comúnmente cuando no hay disponible un controlador puro de JAVA para una base de datos en particular.jdbc. . es que cualquier base de datos que tenga instalado un controlador ODBC puede ser accesada. 3.  Provee ventajas de performance. también 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. ya que la capa extra introduce complejidad adicional en todo el sistema. Una de las ventajas que se tiene con este método. para luego ser enviados al cliente. El controlador convierte las llamadas de métodos del JDBC en llamadas a funciones ODBC. El Driver JDBC (Driver tipo 1). Los comandos son enviados a la capa intermedia de servicios.4 Conectividad abierta a la BD (ODBC y JDBC) Sin embargo.odbc.

Figura 3. 7 Puente JDBC-ODBC Siete pasos básicos para programar en JDBC        Cargar el driver de la base de datos a acceder Definir el “URL” Establecer la conexión Crear una orden SQL Ejecutarla Procesar los resultados Cerrar la conexión .25 - .

Subnombre: la sintaxis del subnombre es específica de driver. Un driver puede elegir cualquier sintaxis apropiada para su implementación. Protocolo: jdbc es el protocolo.26 - . Un driver suele ser un fichero .jar que contiene una implementación de todos los interfaces del API de JDBC Nuestro código nunca depende del driver. Este es el único protocolo permitido en JDBC.sql Definir el “URL” Los URL de JDBC proporcionan un modo de identificar un driver de base de datos. 8 URL de JDBC Se puede observar que están separadas en tres partes por dos puntos. Un URL de JDBC representa un dirver y la información adicional específica del driver para localizar una base de datos y conectarla a él. es preciso tener un driver adecuado para ella. dado que siempre trabaja en conjunto con los paquetes java.sql y javax. La sintaxis del URL de JDBC es como sigue: Figura 3. . en el caso de una conexión directa. 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.Cargar el driver de la base de datos a acceder    Para poder conectarse a la BD y lanzar consultas. elegido por los proveedores del driver de base de datos.

un PreparedStatement o un CallableStatement. }catch(ClassNotFoundException e){ } El bloque try – catch es necesario para establecer la conexión. modificar (UPDATE) y eliminar (DELETE).27 - .Establecer la conexión El propósito de la clase java. En este enfoque las aplicaciones utilizan la clase DriverManager para obtener conexiones. a través de su argumento URL.DriverManager (gestor de driver) en JDBC es proporcionar una capa de acceso común encima de diferentes drivers de base de datos utilizados en una aplicación. Estos objetos abstraen instrucciones SQL normales. Una vez hemos obtenidos unos de esos objetos de instrucciones. el bloque catch.odbc. se llevan a cabo con el uso del SELECT – también para Insertar (INSERT).forName(“sun. al no poder conectarse con la base de datos.. Por ejemplo para Ms SQL Server el driver seria: try{ Class. Podemos utilizar un objeto Connection para ejecutar instrucciones SQL creando un Statement. tiene como función capturar el tipo de error generado.JdbcOdbcDriver”).sql. esto para saber de algún problema existente cuando se ejecute la conexión con el driver dentro del bloque try. . Crear una orden SQL La realización de consultas o listados en SQL. podemos ejecutar la instrucción y leer resultados gracias a un objeto ResultSet.jdbc. instrucciones preparadas y procedimientos Almacenados respectivamente.

close(). Para acceder a los distintos valores se leerán las tuplas una a una y accederemos a los atributos usando distintos métodos según el tipo de variable. Cada invocación al método next mueve el cursor una fila hacia delante. ResultSet : lleva a memoria los datos de una consulta SQL. 4. Procesar los resultados  El objeto resultSet. 5. 2. connection. next() : lee fila por fila los datos que están en memoria.28 - .Ejecutar la sentencia Pasos para la ejecutar una sentencia SQL con Java: 1. executeQuery() : ejecuta la instrucción SQL que se preparo en lo anterior. . Cerrar la conexión La conexión a una base de datos se lleva a cabo con la siguiente línea de código. 3. getConnection() : primero obtenemos la conexión.   El método next mueve el cursor a la siguiente tupla (la cual sobre la que se opera). contiene 265 tuplas describiendo los distintos países. PreparedStatement : prepara un comando SQL.

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

scribd.axarnet.wikipedia.osmosislatina.htm  http://es.fi-b.fortunecity.info/termino/7140.htm  http://es.org/wiki/Proceso_(informática)  http://alumni.php  http://fmc.pdf  http://www.mx/efrenm/archivos.com/doc/19087004/Conectividad-de-Java-Con-Base-de-Datos  http://members.unam.pdf .mastermagazine.mit.es/redes/tema_02_m. 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 O´Reilly  http://profesores.wikipedia.com/conectividad/  http://www.edu/~jhe/Publicaciones/Tesis.media.30 - .com/miprofe/archivos/TerminosComputacionales.org/wiki/Conectividad  http://www.

3 48 /08.. /0 5747..O370.. 807 .70  43 94/48 48 /7. .5. /48 .430O3../..07  6:0 08 :3.8:. . ..425.8:. ./4708  5476:0 .3850.438:2/47 2E8 45.       :0894308/010-/.20390 089.8 .80/0/..0 2047 8419..54748.7...948            ..08.80087.03/0/4708 3/0503/03908  ..8070.8843574547. 5.03/0/4708  89.O3 6:0 94.780 /O3/0 80 70..43.2.07 08 7085438./.-897.9-/.43./.07.07. 2502039.078  /0 :3. 0. /085:F8/0800.-.57207.43 048 /70.2.. 507850.078 6:0. -. .20394/0:3./..-0 /0 089. 6:0 97. .O3 6:0 574547.8 .3.790  574/:.20390 .43 2E8 /0   /7.43.9.. 0 !   7.7.. .3 48 39071.43.8. 08 8O4 :3. .-..0 574547..43..30./ /0 .20390  $:3 .47 5.74889028 2./   &3.948    08/0 :3.3.8 547 .9.-...08 /03974 /0 !  4 6:0 54/7J.774.08.948/02.80 /0 /.80:3/.O3.5742.80/0/.42509.O3  .574547.. 0 97.03/0/4708/07. .70/.4  #0..43. /0-07J.7.43.-0.39030 :3.948 .08 /0 :84 /0 :3 /7.8008./.20390 574547. .3 . 570:39.43.8.-./48  0803.  1479:3.-. 57207./07.7 .748  89..9.43:3.03/4 48 /09. 6:0 0 5747.08 30.4308./423.80/0/.2.948 . 2.30.42:3.078 70897.80/0/. .25.7 :3 .808 573./0!2:0897.07 89..74 .F3/0 /7. 7085438...430O3.4308   5.20390 . :8:.20390.O3 5708039. 0 089.7:3.-08 5.808 6:0 2502039. /0 .7E5/.O3/04839071.078 /8543-08  007 :34 5:0/0 807 /1J..80 7.-0 /0 2.07 5.7 .794/.808 6:0 70.08 7085438.07  08 .-0.07 ./47 34 903.7..5742.

-020390 2E8 8250  2E8 506:0N4  $0:3/4  0 .3/403:3.7..20390 . .-0 0 2./0!2:0897.438/07. ./08 0850.:8:.45.4.4 4030089.8:. 6:0 0 . /02E8 8..078. -.8.O3.7.. .03.20390 0 703/20394 /0 88902....4 /0 ./0:3 5740.5:0/0807/1J..5.43.7.20390/897-:/4 ./47 6:0 54/7J./   &3..-...94/43/0/1070390845..9.-.438:0 4.334089.0390  :3.3850.948708:9.8/48.4/097. 94/40./43/00 .7090254/0/08.47547..8 /0 807.. 08 .4   4/04/048.2-.0390880.9.7.8 2E8349.45.4308/0/48.497..88902. 80 5:0/0 .5.570:39.0390 807.. 807.0390.097..07 2E8 /1J.425094.0390089E.80/0/./479030:3.-...8././47  890 24/04 8250 706:070 6:0 0 ./4  .7744/0-/4.948.5.5./45749495.8      .J1...4.08 /03974/0! 46:054/7J.J1./4 0850.2-48 03 0 807.     F94/48:9..43:3.:/.0390 5:0/0 1E.8 !72074 5:0/070/:..8 1:3.2-4803088902.5..780 /0 ...0390/0-07E80724/1.574..7 54903. 03.5./..203941:07905:0/0574..203941:079003970. .4 /0 ./4 $0.4 /0 6:0 94/4 0 88902. .7482548-0 424708:9.0.45.85:0/0380790803:30394734/0.7.J1.80/0/.O3/048 ./423.430.948  8J  547 00254  0 .039.O/4 0850.45./485.20390.43974/094/4848.7/8543-085..5745.8 890./.7.5..089.0390 30.74.:34808.20394 1:079090308.0.8  24/04/0/48..203942E8074    !474974.O3/04839071..748574-02.:.4308089E3803/40..390320394 /0 88902.8.3./47 5:0/03742507.9.808 02./.0390 903.O/4/0 .. -.0....0.7E5/.20394 1:0790 5:0/0 2047..80 /0 /.780/O3/08070.45. 5476:0 48 ../4 0890.43.

O3.9.80 /0 /.0390.43088902.-..8   O ..43.20390.80/0/.948  O 43974. 2E6:3.7 03 497.O3 .2.46:02.42:3.0390 80 .30.948 5:0/0 089.  .80/0/....948  O ./4780... 547 70/  89.J1.431:7.... 4/04/0/48.43 4 6:0 0 .5..-.-. -./.0850.42:3.5.  :7. /70.08.

4254303908 5:0/03 089.4 6:0 2./47 547 00254  .86:0.438/07.3.8 34 .5.039088O4903036:0. 08 ..5./.48/048574-02.20390089E4507..10..6:048.. 807.0390  . .80/0/.5.. 2../47   4/04/03 .  2..-020390 2E8 803. 20/. . 2:.47.5..430O3.3/403. .097.5.2-48 ..390307 .. .807.03948 /0 389.39030 31472..10.. 0-/4.5.03908      .-. .07. 20348 :3./47   .20/..4..434.O31J8..8   24/04 /0 3 .9..282...390307 . 20/.O3 /0 ..5. 424..7 /097E8 /0 2824 170. 20348 :3. 20/.5..5. .8 9030 :3.9.948 894831.6:0 0 807. ..4824/048 /0 /48 .0307.5.7E3  !47 00254  .4308.390720/. ..

3974/:.. 574547.0 /0 .5.07 !../.08.7...43./7 -.5742.48./4 424. 2:.O3 3.5. 2E8 .0 ..2.748  570 .O/4  2E8 /:74 /0 574-.8 20/.4308 /0 3 .748 %4/446:030... 4..8282401E.... 2.0394/4088902.20390  0 03:..72E8:8:..7  54903...$07.20390802502039.83472.....8.7. .4250/..7 1E.7/.6:0..O3 /0 3 .794/446:0.8 .8 08 6:0 94/4 0 88902. .2..4 .N. 4/04/09708../72E8..5. .4./.8454790/0.089. 80 5:0/0 08.8 4 2E8 ..30..4254303908 30..O3 .8 4507.O3039073./48 /0 .43897:/48  5.70   $302-./..N.43. 0 1:4 /0 31472. /0 .  97..0708..248..08  $07.3.7./4708  /0503/03/4 /0 48 708:9.43974.43.7 8:8 0774708  1479:3./47080-  :8..3:8.4254303908.8390720/..098  08 2: 803.0730.5.. 5.304/080:7/.4308 /0 5071.9:7.6:0 .48 /0 48 . ..0. 20/.344J.4397.5.30.8 .8     .5.:843:0.:90391.5.039../4807.5.74 .3/4 90.. 894 831..43.43.O3  574547. /0 03..43.-08  /02E8  0890 24/048057089.5. .8 807.O3     :7.7.43897:7 .097./.20390 2E8 /1J.203905.

. ..9.08.430.780./47802502039.6:07-..:..48 .03.42405:0390 08:3 .8$"./48...:09.4308902F94/4 086:0./47 5:0/0807.43974.43..07 :84 /0 -.2.3/4884303.6:0.8./475:74/0' 5.-./47. /8543-0:3.   O 48./.0..07954 9./..8/02F94/48/0 03.948 .80/0/.7.43974/0.80/0/.07089E3.803903.097.43974.O3  O !74.0390  O !07290:3.390720/.        .. 5.80/0/.808:3 /-.8574.9486:0903.79..9.8/05071472.03..:/4030 ./.:.7..43974./48. /-.434./47 5.00. .-. 4/-./.42. /-.-079..7   &3.9:.:3...80/0/.07 7.0394/4088902..86:0809030.43974.$ /.5./47  5..4250/.2...0.43974.3./0807./../.03.8.7.J.../4:3.5...948035.3974/:.J.43974.8.2-F3800.948  6:0 0250.3/434.O389E3/...0790.   $302-.7   . :3 ...08.084/0. :0480703.0       430.7.948 A89.74 .42320390.80 /0 /..4308    5:039080:9.:./0.7.039.039. 389.  7..-.../48/0.:..43.1:3.5.48708:9.390720/./.. .

.:9...848-E8.7:3.70/7.80/0/.5747.07./48 O 077..430O3       .703  O .-.-0.2.948.748708:9.07/0.08. O !74. !:0390     $0905..7.47/03$" O 0.  :7.485.7.0/07 O 01370 &#  O 89.430O3 O 70.7.7.

 0..5.J1.08057494.. 839.07  . 86  01370 &#   48&#/0574547. /0503/0 /0 /7.. /0 /7. .7.43:394 .8.3824/0.00/4708 /0/7.80/0/..07  &3 /7..430.07  /.O3       .8 /0&#/008.  O &3/7.-.O/4 3:3.4.7:3./0391.6:0908..07 5:0/0 007 ..94840 342-70/0:320..078:00807:31.07/0-./. 31472. &#/0  $05:0/04-807.839..074 .0850.8 /0 8:-342-70 08 0850.8490307:3/7.430.7.4408:- 57494.430.7:3/7.-.9.44/-.6:07839.07/0-.948 030 .4450729/403   $:- 57494.7:3/7.9./45.43.5745.80/0/.948 00/454748574. 03 .-.76:0089E3805.0/07  O !..44 8900803.:./45....43..80/0/...438:9.4408:9.80/0/.439030:3.948.07.O3/094/484839071../4 6:0 802570 97./..7./.075.7.7908547/485:3948   !7494.J1..7.3.70/7.7.2502039.//0:3.80/0/.7.7.54/07.9.948.  &3 &# /0  705708039. :3 /7.8:2502039.948   $:-342-70 ..08 /0!/0 O :08974 .9.F ./0.3:324/4/0/0391.76:0.430O3 /70.07/0. .457494. 86../0/7.84 /0 :3.780.80397085.4248:0   :7..O3 ..07/0-..43 48 5.8 08570.7.:.-.80/0/../.

O3  3 0890 03146:0 .7.3 574-02. /-.-897.. 86 7.4308$"3472./48 7.-0$9.8$"$07. 9030.O3/0 .. ..9.:90 .03 3897:.4304308 ./.7.2..O3  007 708:9.97.078/0-.43085705.07 /03974 /0 -46:0 97  0 -46:0.3 .3454/07..0 0248 4-903/48 :348 /0 0848 4-0948 /0 3897:./0/10703908/7.7 :3 4-094 4330..943 5..:.:9..07 .780 .902039  8948 4-0948 .7 $#% 24/1.80/0/.43..70954/0077470307. .5.07807../4 .9. 4/-./48 03 $"  80 0.7:20394&#   !47002545..20390  &3.7.43 0 /7..20 8:3 /-.-0. 8. 4-90307 .8574..430O3  5745O894/0.. .3 .4241:3.88 147. .9. .7 ..38079. 3897:.43 0 :84/0 $%  9. ..07 08947/0/7.7.:9. 089. 70.3.4308  54/0248 00.70/$9.3/4 :3 $9....9.070/7.084./48 70850. 89.07  <.F8/08:.059430  <   -46:0 97  .8 4 89.08.03. 08 30.7 %   !4/0248 :9. /-.7.7 3897:.948:9..902039 4 :3 . :3 4-094 #08:9$09      ... 0890390 .07 0308574547.9./0..0/203948 2..07.80/0/..430. .430O3  0894 5.7.8 .  97 .74 5.80 7.902039  :3 !705. 00.07 5.07.-.7.-0..438:9.3.2-F35.7 :3.-07 /0 ..3/4 80 00.-4 .7:3.08 3897:..43.88494:3/.80.5.42303..948    70..7 &!% 023..O3.59:7.07.8 .4308 :9..430O3 ..4308 $" ..47/03$"  ./4803:3.5.7.70.

430O3     !705.6:0804507.0/070248.7.2F94/43092:0.7-03/448/8939485.O3$"6:0805705.:...:3..-4.7.    094330..48/..430O3 .84-70.00.4.$".8:03909:5.-.948/0:3.:7847.74034..390    077./48 O 4-094708:9$09 .1..:9.803903.:9.0/07.4330.430O3.   0.J808 !..70/$9./0.42...5471..48.8:3.943 5720744-9030248... 48/893948..  !.  O .7:3..:7847:3..   !74.438:9.8/08.48/..948800..:3.O3...$"     309 001.3897:.80/0/.89:5..3.7..480          ..803903.390747     #08:9$090.4390309:5.:90":07 00...748708:9.9020395705..43.7../0.3/4 /8939482F94/488030954/0.943 .8485..3/4$"     00.:3.9486:0089E30320247...97-:948:8.43.. .00.00.7.:9./.20247.-0  O 2F94/43092:0.470880007E3.08.O/4  .7..8:0390J30..

.748419!7088   33974/:.943   ...       -47.943940947!747.74/ $    #0   0947!747.   .2239 7.7843/:.08 #0   0390...223147.    .37.-.1J..223 4990#:89.0947!747.7484193/48 39434308 2 :3/ ..0     43. !0./.2239.!747..

:/0 #4-079 71. .$07..70 07/..-.223-0 43 43.    .:0 430 $438      .7/8 0 $438 3.07$:7....3.9.80!747.

    .3425:907!:-83   0947!747..43 $903 //843080!74108843..8..-..9.2.09!747.3:8 .223 .0889'8:.$07.843:3907 #0   995. 01170.80..2239!07 3.2.  .

.

2 2.5741084708 1 - :3.

017032.

..48 5/1  995.7.

.

. 2.30 314.89072.

907234.

 55  995.

.

..12.7309 08.

70/08.

902.* *2 92  995.

.

08 50/. 47.

.

/  995.430.9./.

.

.42.93. 482488.

/.9./..430.

  995.

.

42. 8.7-/ .

/4.

  .

430./.../ /0 .80 /0 .9. 43 .948  995.

.

202-078 1479:30.42.9 .

257410.

.48.7..

.%072348425:9.43.08 92  995.

.

08 50/. 47.

.

  995..!74.084* 31472E9.

.

29 0/:..:23 20/.

=0.

4308.!:-...

%088 5/1       .