viernes, 25 de abril de 2008

JavaCup 2008

Nuestros amigos de javahispano, organizan nuevamente JavaCup 2008, un torneo virtual de fútbol JavaCup donde cada equipo es una clase Java que implementa una interfaz predefinida.

Premios

El ganador del concurso recibirá 1500 €, el segundo clasificado recibirá 1000 €, el tercero 500 € y el cuarto 250 €. Además, todos ellos recibirán una suscripción anual a la revista Sólo Programadores. Los ganadores del concurso se anunciarán en el evento tecnológico OpenJavaDay, que se celebrará a finales de junio en España, Madrid.

Puedes visitar estos enlaces
Comienza JavaCup 2008
Sitio Oficial



Todos tenemos que participar, haber si se representa a nuestra ciudad y país...

martes, 22 de abril de 2008

Historia del Internet - Capitulo 2

Bueno el Internet nace gracias a la lucha no declarada entre Estados Unidos y la Unión Soviética (URSS), la llamada guerra fría marcó el inicio de varios inventos, que revolucionaron al mundo, cada uno de estos países trataba de demostrarle al otro que tenía mejor tecnología, y mejores cosas que ofrecerle al mundo, por tal motivo en 1957 la URSS hace el lanzamiento del primer satélite artificial llamado Sputnik 1 que marco el inicio de la era espacial tomando la delantera en ese campo, luego Estados Unidos 1958 hace también un lanzamiento emparejando la situación, estos dos países habían tenido una cierta rivalidad durante muchos años, por tal motivo Estados Unidos creía que algún rato podía ser presa de un ataque nuclear, por eso decidió crear un medio de comunicación indestructible, que sea capaz de resistir cualquier tipo de ataque, para que no se perdiera la comunicación entre el país, por tal motivo se creó en 1957 el grupo de la Agencia de Proyectos de Investigaciones Avanzadas (ARPA) un grupo élite de la fuerza de los Estados Unidos los cuales hicieron la primera red que conectaba a todo el país ARPANET.


Con el tiempo esta agencia desapareció y la red se dividió en dos grupos una red de carácter militar, y otra de servicio público, la cual esta destinada a la investigación, educación, industria, entre otros, esta fue la INTERNET. Este es en si un breve resumen del origen de la Internet, con el pasar de los años esta gran red ha ido evolucionando, hasta llegar hacer la red que todos conocemos y la que nos a prestado grandes beneficios.


Cabe destacar que la Internet se ha convertido en uno de los sistemas de comunicación más rápidos de los últimos tiempos después del celular, gracias a su conexión a través de protocolos y la forma de trasmitir información a través de paquetes conmutados, se ha podido transmitir texto, imágenes, sonido, multimedia, y mucho más.


La Internet ha prestado una gran utilidad a las personas que lo usan por su naturaleza independiente, que no puede ser controlada por nadie, esto la ha puesto en un sitial privilegiado dentro de las comunicaciones de las personas, las cuales la han utilizado para los negocios, comunicación familiar, entre amigos, investigación, entretenimiento, educación, entre otros.


¿Pero que pasaría si la red desapareciera?


Actualmente nos resulta algo complicado pensar en una vida sin Internet, gracias a ella se a reducido las distancias y se podido de cierta forma ahorrar tiempo, porque digo esto lo explico, antes una persona para firmar un contrato, hacer un pedido de alguna materia prima para la industria o una mercadería para un almacén, tenia que hacer un viaje de muchas horas y tal vez de días para poder conseguirla, este tipo de travesías demandaban mucho tiempo y por consiguiente grandes cantidades de dinero, en este sector la Internet ha beneficiado para que se pueda reducir costos y lograr precios más competitivos hoy en día en un mundo globalizado como en el que vivimos, entonces puedo decir que la Internet le ha dado rentabilidad a la empresas chicas, medianas o grandes todas se han beneficiado.

miércoles, 9 de abril de 2008

Como crear un “Pool de Conexiones” en NetBeans 6.0 usando Java Server Faces (JSF) y MySQL

En este tutoríal vamos ha mostrar como realizar un POOL de conexiones para tener centralizada nuestra conexión a una base de datos MySQL, hay que tener en cuenta que este proceso se realiza totalmente igual si queremos conectarnos a ORACLE o a cualquier otra base de datos, esto nos evitara hacer una conexión nueva cada vez que queramos hacer una consulta nueva a la base.


Antes de empezar vamos a utilizar las siguientes herramientas:




  • NetBeans 6.0



  • MySQL


Vamos a tener creada previamente en MySQL una base de datos llamada “prueba” y dentro de ella una tabla llamada “roles” con dos columnas con las filas de datos que usted prefiera ingresarle a esta tabla, este detalle pasa por cuenta de la persona que sigue este tutorial.


¿Pero qué es un Connection Pool o Pool de conexiones?


Un JDBC connection pool es un grupo de conexiones reutilizables que el servidor de la aplicación mantiene para una base de datos en particular. Cuando una aplicación cierra una conexión, regresa a la piscina. Las conexiones agrupadas reducen el tiempo de la transacción al conectarse a una base de datos por medio de compartir el objeto de acceso a la conexión a la base de datos, esto a su vez evita una nueva conexión física o crear cada vez una conexión nueva.


Al ejecutar esto es lo que pasa cuando una aplicación se conecta a la base de datos.


1. Lookup JNDI nombre de los recursos de JDBC. Para conectar a una base de datos, la aplicación busca el JNDI nombre del recurso de JDBC (Data Source) asociado con la base de datos. El API de JNDI permite a la aplicación localizar el recurso de JDBC.


2. Localizar el JDBC connection pool. El recurso de JDBC especifica qué piscina de conexiones va a usar. La piscina define los atributos de conexión como la base de datos nombre (el URL), nombre del usuario, y contraseña.


3. Recupere la conexión del connection pool. El servidor de la aplicación recupera una conexión física de la piscina de conexiones que corresponde a la base de datos. Ahora que la aplicación esta conectada a la base de datos, la aplicación puede leer, modificar y agregar los datos a la base de datos. Las aplicaciones acceden la base de datos haciendo las llamadas al API de JDBC.


4. Cerrado de la conexión. Cuando el acceso a la base de datos a terminado, la aplicación cierra la conexión. El servidor de la aplicación devuelve la conexión a la piscina de conexión. Una vez regresada a la piscina, la conexión está disponible para una próxima aplicación.


Nombre JNDI. Cada recurso tiene un único nombre de JNDI que especifica su nombre y situación. Porque todo el recurso que los nombres de JNDI están en el contexto del java:comp/env, los nombres JNDI de un recurso de JDBC se espera en el contexto del java:comp/env/jdbc.


Creación de un Nuevo Proyecto JSF en NetBeans 6.0


Como primer paso vamos a crear un nuevo proyecto de JSF, vamos a file -> New Poyect -> Web -> Web Application -> y clic en Next


Nuevo Proyecto



Le ponemos un nombre en este caso le vamos a poner “PoolConnection” y luego clic en Next


Nombre del Proyecto



Elegimos el Framework que vamos a utilizar “Visual Web JavaServer Faces” y no cambiamos nada más, clic en Finish.


Frameworks



Una vez dentro de la parte de diseño de NetBeans vamos a arrastrar de la paleta un botón “Button” el cual va a ser el que nos conecte con la base MySQL y le vamos a poner de nombre conectar… Con esto realizado vamos a pasar a preparar la conexión a la base con la que vamos a trabajar.



Creación del Conector para la Base de Datos


Primero tenemos que ir a la parte de servicios (Ctrl + 5) en NetBeans y en Databases damos un clic derecho y ponemos en la opción de New Connection…


New Connection



En la ventana de New Database Connection vamos a poner lo siguiente:


Name: MySQL (Connector/J driver)


Driver: com.mysql.jdbc.Driver


Database URL: jdbc:mysql://localhost:3306/prueba


En esta parte ponemos el host donde va a correr la aplicación que va a ser en “localhost”, al poner el puerto debemos tener cuidado porque el puerto 3306 es el puerto por defecto de MySQL, pero debemos ponerle el puerto que le pusimos en la instalación de MySQL si por si acaso lo cambiamos, y ponemos el nombre de la base a la que queremos tener acceso que en este caso va a ser “prueba”…


Por ultimo ponemos el User y el Password con el cual entramos a MySQL… Si queremos que recuerde NetBeans el Password le ponemos Remember Password caso contrario no (No es recomendable hacerlo por problemas de seguridad) y terminamos presionando OK.


Conexión



Nos aparecerá una nueva base en el recuadro de Servicios, podremos conectarnos a ella y revisar los datos.


Conectar



Creación del Pool de Conexiones para nuestro proyecto.


Lo que vamos a hacer primero es ir a File --> New File o directamente (Ctrl + n), en la ventana de New File, en Project escogemos el proyecto con el que estamos trabajando en nuestro caso “PoolConnection”, en el lado izquierdo en Categories vamos a escoger “GlassFish” y al lado derecho en File Types vamos a escoger la primera opción que es “JDBC Connection Pool” y clic en Next.


New File



En la siguiente ventana nos pide como campo obligatorio o requerido un nombre para el pool de conexiones, le podemos dejar el que nos pone por defecto o simplemente lo cambiamos, nosotros lo vamos a dejar por defecto.


En el siguiente casillero de Extract from Existing Connection escogemos el conector que realizamos anteriormente para nuestra base de datos, y damos clic en Next.


Pool



En la siguiente ventana nos aparece Datasource Classname con un nombre bastante largo, este esta determinado por la conexión seleccionada anteriormente, nosotros lo vamos a dejar por defecto, le vamos a poner una descripción, en la tabla de propiedades podemos revisar los datos de ingreso a la base, para comprobar que estén correctos y terminamos dándole un clic en Next. (Si deseamos modificar las propiedades por defecto de la conexión, nosotros podemos cambiarlas luego editando el archivo sun-resources.xml, que se encuentra en la carpeta Server Resources de nuestro proyecto).


JDBC Connection



En la última Ventana que nos aparece con muchos campos todos los dejamos por defecto y ponemos un clic en Finish, con esto ya tenemos realizado nuestro pool de conexiones…


Acceder al Connection Pool desde una clase de Java


A través de este proceso podremos obtener un DataSource.


Lo primero que tenemos que hacer es crear el acceso a la base, vamos al código de la aplicación desde la cual queremos acceder a la base de datos, hacemos un clic derecho en el editor à escogemos Enterprise Resources à Use Database


Use DataBase



Nos aparece la ventana para escoger la base de datos, hacemos un clic en Add, nos aparecerá una nueva ventana para configurar el Data Source, le ponemos un Nombre de Referencia en este caso le vamos a poner “conBasePrueba”, luego escogemos el Project Data Source como no tenemos creado un data source anterior, le ponemos clic en Add y se nos vuelve a abrir una nueva ventana, Create Data Source en el JNDI Name le ponemos el mismo nombre anterior “conBasePrueba” y elegimos el conector de la base a la que vamos a acceder, finalmente damos un clic en OK…


Data Source


Regresamos a la ventana anterior y ya se nos carga el nombre de DataSource que ingresamos y creamos anteriormente y damos un clic en OK para confirmar…


Data Source Reference


Finalmente regresamos a la ventana de Choose DataBase ya se nos cargara la referencia a la base de datos y confirmamos haciendo un clic en OK…


Choose Database



Con este último paso estamos listos para realizar una prueba de conexión desde el código…


Probemos nuestro Pool con una conexión rápida.


Vamos hacer una prueba rápida de conexión y vamos a visualizar por consola nuestro resultado, regresaremos a nuestra interfaz de Diseño de NetBeans y vamos a hacer doble clic en el botón que colocamos al inicio de este tutorial, nuestro proyecto se ve más o menos así ahora.


Como se Ve


Una vez hecho doble clic en el botón, esta acción nos lleva al código de la aplicación, directamente al método del botón button1_action() el cual lo vamos a programar en este momento para hacer la conexión nuestro código debería quedar así.




[sourcecode language='java']
public String button1_action() {
Connection con = null;
try {
InitialContext ic = new InitialContext();
//en esta parte es donde ponemos el Nombre
//de JNDI para que traiga el datasource
DataSource ds = (DataSource) ic.lookup("java:comp/env/conBasePrueba");
con = ds.getConnection();
Statement st = con.createStatement();
System.out.println("Se ha realizado con exito la conexión a MySQL");
//el resultSet es el encargado de traer los datos de la consulta
ResultSet rs = st.executeQuery("select * from roles");
while(rs.next()){
System.out.println(" "+rs.getString(1)+" "+rs.getString(2));
}
}catch (SQLException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}catch (NamingException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}finally {
try {
con.close();
System.out.println("Conexion Cerrada con Exito...");
}catch (SQLException ex) {
Logger.getLogger( Page1.class.getName() ).log(Level.SEVERE, null, ex);
}
}
}
[/sourcecode]

Tenemos en nuestra base una tabla llamada “roles” la cual tiene 2 columnas, en el resultSet se almacena los datos obtenidos de la consulta y mientras haya datos en él se lo puede ir descomponiendo en columnas, con un while lo podemos ir recorriendo hasta llegar a la última fila…


Se debe hacer estas importaciones para que la aplicación pueda funcionar sin ningún problema aparte de las que ya aparecen al crear el nuevo proyecto.



[sourcecode language='java']
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.faces.FacesException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
[/sourcecode]


Tutorial creado por:


christmo


lunes, 7 de abril de 2008

Sociedad de la Información - Capitulo 1

El internet y las telecomunicaciones han aportado para que hoy podamos tener un mundo conectado y al alcance de nuevas tecnologías de información, estas han ayudado mucho al desarrollo de los países, especialmente a los llamados países en vías de desarrollo, con estas nuevas tecnologías se ha podido abrir las fronteras, y comenzar a conocer abiertamente diversas culturas, ideologías, estilos de vida diferentes, lo que nos ha llevado a comprender, entender y aprender de las distintas personas ajenas a nuestra realidad, todo esto ha logrado forjar una nueva perspectiva del mundo como lo conocemos, es muy clara y marcada la diferencia entre una persona que navega, aporta, dialoga por internet, que una persona que apenas esta entrando y conociendo todas estas nuevas tecnologías, cambia el modo de vivir.


Muchos podrán decir, que nuestro país no presta las facilidades para tener a todo un pueblo conectado con el mundo, y es verdad porque las tarifas que se cobran por un servicio de internet de pésima calidad son muy elevadas, pero a eso hay que apuntar para corregir, y hacer fuerza para que las personas que dirigen el país se den cuenta de que existen, muchas aplicaciones y recursos en la red, que son muy buenos y que van aportar para nuestro enriquecimiento intelectual, lo cual por culpa de deficientes políticas de estado en el área tecnológica nos las están privando y nos las estamos perdiendo.


La sociedad de la información nace de la red, está conformada por todas las personas conectadas a internet en todo el mundo, las cuales generan, crean, manipulan información, de una manera natural, por ejemplo en Blogs, Wikis, Foros, etc. Si de alguna manera esta información esta de manera informal, y es porque las personas aportan con experiencias, dudas, investigaciones, recopilándola y afinándola en los detalles a esta información se podría llegar a buenas publicaciones científicas.


Otro aspecto que a revolucionado el Internet y las nuevas tecnologías es el comercio, e-commerce o comercio electrónico ha sido una forma muy buena de expandir los negocios a nivel mundial, gracias a ello los productos han podido pasar de los fabricantes hasta el cliente final directamente, eliminando a los intermediarios, lo cual obviamente ha hecho que los productos de una manera se compren mucho más barato que comprarlo en una tienda física. El internet ha facilitado los negocios, un cliente que quiera comprar algún producto o materia prima en especial, ya no tiene que hacer un largo viaje a Europa o Asia para hacer el contrato, ahora con un solo clic se puede dar por firmada una negociación, lo cual beneficia mucho a las empresas con pocos recursos para que no hagan gastos innecesarios.


Estos son solo dos ejemplos para mostrar cuanta ha sido la influencia de la sociedad y de las nuevas tecnologías de información en nuestras vidas, pero como estos hay cientos de casos más que diariamente mueven millones de personas en todo el mundo, interactuando y compartiendo todas juntas información para lograr quizá sin querer un mundo más justo y preparado.