El desaf�o de escribir un libro sobre el desarrollo de una aplicaci�n avanzada para la plataforma Java 2 es encontrar un proyecto lo suficientemente peque�o, pero al mismo tiempo, los suficientemente completo para garantizar las tecnicas de programaci�n avanzadas.
El proyecto presentado en este tutorial es una casa de subastas basada en web. La aplicaci�n est� inicialmente escrita para la plataforma Enterprise JavaBeans. En los cap�tulos posteriores expandieremos el coraz�n del ejemplo descrito aqu� a�adiendo funcionalidades avanzadas, mejoras y soluciones alternativas a algunas de las cosas que obtendr�s gratis cuando uses la plataforma Enterprise JavaBeans.
Para mantener la explicaci�n sencilla, la aplicaci�n de ejemplo s�lo tiene un conjunto b�sico de transaciones para poner y pujar �tems a subasta. Sin embargo, la aplicaci�n escala para manejar m�ltiples usuarios, proporciona un entorno de tres filas basado en transaciones, controla la seguirad, e integra sistemas basados en la legalidad. Este cap�tulo cubre c�mo determinar los requerimientos del proyecto y el modelo de aplicaci�n -- pasos importantes que siempre deber�an realizarse antes de empezar a codificar.
�Requerimientos del Proyecto y Modelado
El primer paso para determinar los requerimientos del proyecto es la entrevista con el usuario base para saber que se espera de una subasta on-line. Este es un paso importante, y no puede pasarse por alto porque es una base s�lida de informaci�n que nos ayudar� a definir las capacidades clave de nuestra aplicacion.
El cap�tulo 2 pasea a trav�s del c�digo de la aplicaci�n, explica como trabaja la plataforma Enterprise JavaBeans, y nos cuenta c�mo ejecutar una demostraci�n en vivo. Si nunca has visto o usado una subasta on-line, aqu� hay una maqueta de las p�ginas HTML de la aplicaci�n de ejemplo.
�Entrevista al usuario Base
Por la dicusi�n y por mantener las cosas sencillas, esta explicaci�n asume que en las entrevistas con los usuarios base se encontraron los siguientes requerimientos para la casa de subastas:
Requerimientos de la Casa de Subastas
- Informaci�n Necesaria del Comprador y Vendedor
- Notas de Vendedores para postear �tems
- Grabar e Informar de las transaciones diarias
Requerimientos del usuario
- Pujar por o Vender un �tem
- Buscar o ver �tems en venta
- Notificar las ventas al vendedor y al comprador
�Modelo de Proyecto
Despu�s de analizar los requerimientos, podemos construir un diagrama de flujo de la aplicaci�n para obtener un mejor entendimiento de los elementos necesarios en la aplicaci�n y c�mo interactua.
Un diagrama de flujo muestra la relaci�n entre los actores y procesos dentro del sistema. Un proceso es una funci�n �nica en un sistema, y un actor es la persona o software que realiza la acci�n o proceso. Por ejemplo, un comprador es el actor que realiza la funci�n (proceso) de pujar por un �tem de la subasta, y el vendedor es el actor que realiza el proceso de postear un �tem para su subasta.
Aunque, no todos los actores son personas. Por ejemplo, el software es el actor que determina cuando un �tem se ha cerrado, encuentra la puja m�s alta, y notifica la venta al comprador y al vendedor.
El Unified Modeling Language (UML) es la herramienta que se usa para los diagramas de procesos. El siguiente diagrama usa UML para describir los procesos del comprador y del vendedor para una aplicaci�n de subasta on-line.
En UML, los sistemas se agrupan en cuadrados, los actores se representan por figuras humanas, los procesos se denotan mediante �valos, y las l�neas muestran como los actores usan el sistema.
La siguiente descripci�n define el proyecto. Estas descripciones no son parte del UML, pero son una herramienta �til para la definici�n de proyectos.
�La Casa Identifica a Compradores y Vendedores
Una aplicaci�n de subastas es usada por compradores y vendedores. Un comprador necesita saber qu�en es el vendedor a quien tiene que pagarle, y el vendedor necesita conocer a los compradores para responder a sus preguntas sobre el producto y para finalizar la venta. Por eso, para postear o pujar por un �tem de la subasta, los compradores y vendedores necesitan estar registrados. El registro necesita obtener la siguiente informaci�n sobre los compradores y vendedores:
- User ID y password para comprar y vender.
- Direcci�n de E-mail para que pueda comunicarsele la puja m�s alta cuando se cierre la subasta.
- Informaci�n de la tarjeta de cr�dito para que la casa de subastas pueda cobrar al vendedor por listar sus �tems.
Una vez registrado, el usuario puede postear o pujar por un �tem en venta.
�La Casa Determina la Puja m�s alta
La aplicaci�n de subastas hace consultas a la base de datos y graba e informa de las transaciones diarias. La aplicaci�n busca �tems que se han cerrado y determina la puja m�s alta.
�La Casa Notitica a los Compradores y Vendedores
La aplicaci�n subasta usa el e-mail para notificar al que ha pujado m�s alto y al vendedor, y cobrarle al vendedor por los servicios.
�Alguien Busca un �tem
Los compradores y vendedores introducen un string de b�squeda para localizar todos los �tems en subasta de la base de datos.
�Alguien Ve los �tems en Venta
Para popularizar la subasta y conseguir nuevos vendedores y compradores, la aplicaci�n pemite que cualquiera vea los �tems de la subasta sin requerir que est� registrado. Para hacer esto sencillo, la subasta permite que cualquiera vea una lista de los �tems de alguna de estas tres formas:
- Todos los �tems en subasta.
- Nuevos �tems listados hoy.
- �tems que se cierran hoy.
�Alguien Ve los Detalles de un �tem
La lista sumarizada enlaza con la siguiente informaci�n detallada de cada �tem. Esta informaci�n est� disponible para cualquiera sin necesidad de identificaci�n.
- Sumario del �tem.
- N�mero del �tem en la subasta.
- Precio Actual
- N�mero de pujas
- Fecha de puesta en subasta
- Fecha de cierre del �tem
- ID del vendedor
- Puja m�s alta
- Descripci�n del �tem
�El Vendedor Postea �tems para su Venta
Para postear un �tem para su venta, un vendedor necesita identificarse a s� mismo y describir el �tem, de esta forma:
- User ID y password para la identificaci�n del vendedor
- Descripci�n sumaria de �tem
- Precio de puja inicial
- Descripci�n detallada del �tem
- N�mero de d�as que el �tem estar� en la subasta
�El Comprador Puja por Items
Una p�gina de sumario detallado por cada �tem permite a los usuarios registrados identificarse a s� mismos y pujar por el �tem proporcionando la siguiente informaci�n:
- User ID
- Password
- Cantidad de la Puja
�Diagrama de Actividad
El diagrama de actividad muestra el flujo de tareas dentro de la casa de subastas como una totalidad. Este diagrama muestra la aplicaci�n subasta. El c�rculo negro de la izquierda muestra el principio de las actividades, y el c�rculo blanco punteado en el centro denota donde terminan las actividades.
�Elegir el Software
Con la aplicaci�n modelada y los requerimientos del proyecto definidos, es hora de pensar en los APIs de Java que vamos a usar. La aplicaci�n est� claramente basada en cliente y servidor porque queremos acomodar desde 1 hasta n compradores, vendedores y mirones al mismo tiempo. Como el registro de los datos de los �tems en subasta deben almacenarse y recuperarse de alguna manerar, necesitaremos el API para acceder a bases de datos.
�Los APIs de Java
El coraz�n de la aplicaci�n se puede crear de muchas formas usando uno de los siguientes APIs:
- APIs de Sockets, multithreads y JDBC .
- APIs de Remote Method Invocation (RMI) y JDBC.
- Plataforma Enterprise JavaBeans
Enterprise JavaBeans proporciona una forma sencilla de crear aplicaciones de clientes multi hilos porque maneja transaciones y control de estado, multithreads, recursos y otros complejos detalles de bajo nivel. La forma m�s sencilla para codificar la aplicaci�n de subastas es con la plataforma Enterprise JavaBeans.
El cap�tulo 2 explica el c�digo del coraz�n de la aplicaci�n y como configurar y ejecutar el ejemplo.