Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEP SES
INSTITUTO TECNOLGICO DE LZARO CRDENAS
DESARROLLO DE APLICACIONES EN RED Unidad III: Conectividad
DGEST
INTEGRANTES: Trujillo Pineda Jos Javier Lpez Salcedo Francisco Javier Milln Hernndez Mnica Silva Arroyo Rigoberto Torres Mercado Juan Carlos Garca Santiago Marco Antonio
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-
-3-
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-
-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.
-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-
-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.
De igual forma, un programa puede enviar informacin a un destino externo abriendo un stream al destino y escribiendo la informacin secuencialmente.
- 11 -
- 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.
- 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.
- 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 -
- 16 -
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:
- 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.
- 19 -
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 -
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 -
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.
- 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.
- 24 -
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:
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 -