Detalles de la aplicación Web de subastas |
El ejemplo de aplicación Web de subastas se desarrolló utilizando Software Development Platform (SDP) Versión 6.0. En este documento se identifican los bloques de construcción clave de la aplicación Web de subastas que se muestran en el diagrama siguiente. Hay muchos componentes en la aplicación Web de subastas. Esto no es una guía de aprendizaje para la construcción de toda la aplicación. Este documento resalta puntos importantes de desarrollo y diseño que potencian distintas herramientas proporcionadas con el entorno de trabajo, de forma que pueda aplicar ese conocimiento a sus propias aplicaciones Web. Tal como muestra el diagrama precedente, el contenido Web se desarrolló en paralelo a la lógica empresarial y a los datos. Mientras los diseñadores desarrollaron el estilo y el diseño de las páginas Web, los desarrolladores de servicios Web y Java codificaron la lógica empresarial para que controlara esas páginas. Las secciones siguientes describen cómo se crearon esos componentes clave y su contribución a la aplicación Web de subastas:
Correlacionar beans de entidad con tablas de base de datos con el editor de correlaciones EJBEnterprise JavaBeans (EJB) ofrece a las aplicaciones Java una forma cómoda de acceder a los datos mantenidos en bases de datos relacionales. Los beans de entidad pueden desarrollarse utilizando la persistencia gestionada por bean (BMP) o la persistencia gestionada por contenedor (CMP). CMP permite más flexibilidad que BMP porque el contenedor EJB hace todas las llamadas específicas de base de datos, según indica el bean. Por omisión, las herramientas del entorno de trabajo de Rational generan beans de entidad utilizando CMP. El bean de entidad CMP no contiene código SQL de acceso. Esto permite desplegar el bean en otros servidores J2EE que utilizan distintas bases de datos sin necesidad de reescribir el código Hay distintos métodos para correlacionar objetos en bases de datos relacionales como por ejemplo descendente, ascendente y de encuentro en el medio. Un método descendente funciona a partir de objetos existentes, define capas cada vez más detalladas según sea necesario y diseña la base de datos como el paso final. El método ascendente utiliza un esquema de base de datos existente y diseña las capas dependientes que definen los objetos. El método de encuentro en el medio utiliza una base de datos existente y objetos existentes y después desarrolla las capas intermedias para hacer coincidir los objetos con las tablas de base de datos. En la aplicación de subastas se ha utilizado un método ascendente para desarrollar los EJB de entidad. La base de datos Cloudscape existía inicialmente y contenía tablas que se ajustaban bastante a los EJB necesarios. Después de crear una conexión con la base de datos mediante el asistente Conexión de base de datos, se utilizó el asistente Correlación de EJB a RDB para crear los EJB correlacionados de una o más tablas, con algunas excepciones. La figura siguiente muestra los beans EJB de entidad utilizados en la aplicación Auction y las relaciones que los conectan. El cliente remoto no accede directamente a los beans de entidad de la aplicación de subastas. Todas las peticiones y respuestas se manejan mediante fachadas de sesión y los beans se utilizan para acceder a los datos de componente de fondo. Esto permite el acceso compartido del lado del servidor al almacén de datos persistente. En el apartado siguiente se tratan más profundamente las fachadas de sesión. Para obtener más información sobre la correlación de beans de entidad, consulte el tema de ayuda Generar una correlación ascendente. Generar una fachada de sesión con objetos de datos SDO que utilizan el asistente Fachada de bean de sesiónLa fachada de sesión es la interfaz entre el cliente y el componente de fondo que proporciona comunicación con los componentes SDO (Objeto de datos de servicio) y en última instancia con la base de datos. Una fachada de sesión resulta útil cuando el cliente envía peticiones que necesitan varios objetos para ejecutarse. Al enviar estas peticiones individualmente a los objetos, puede aumentar el tráfico de red y el periodo de latencia. La fachada de sesión actúa como un almacenamiento intermedio entre ambos extremos, tomando una petición general del cliente y enviando peticiones específicas a los objetos necesarios. Esto reduce el tráfico y simplifica el desarrollo del cliente. Una vez creada la fachada, puede seleccionar los EJB que gestiona seleccionando Correlacionar EJB en el menú de la herramienta. La fachada genera los componentes SDO necesarios a partir de los beans de entidad. En la aplicación de subastas hay dos fachadas, basadas en los dos grupos funcionales siguientes:
Al agrupar los EJB y utilizar dos fachadas distintas, puede aumentar el rendimiento de la aplicación porque los usuarios solo acceden a los EJB que necesitan. Los beans de entidad que controlan la función del sitio Web en sí mismo como por ejemplo Category, están controlados por la fachada del sistema. Los EJB a los que hace referencia una fachada se eligen de uno en uno, utilizando el asistente Crear fachada de bean de sesión, tal como se muestra en el diagrama siguiente. Si es necesario es posible hacer referencia a un EJB en más de una fachada. Esto no se ha hecho en la aplicación de subastas.Puede añadir funciones adicionales añadiendo métodos a las fachadas. Por ejemplo, en la fachada de usuario, hay un método que devuelve una lista de usuarios y otro método que devuelve una lista de los usuarios activos. Utilizando estos métodos como un ejemplo, puede añadirse otro método a la fachada de usuario que devuelve una lista de todos los usuarios marcados como inactivos. Encontrará más información sobre las fachadas de sesión en el documento "Design Patterns: Session Facade", en el sitio Web java.sun.com. Definir el diseño del sitio Web con Web Site DesignerLa vista Navegación de la herramienta Web Site Designer proporciona una representación visual de la disposición del sitio. Muestra las páginas individuales y la organización jerárquica y resulta útil para mantener el diseño y la organización de las páginas en el sitio. Cuando arrastra y suelta páginas en el editor, los controles de navegación de las plantillas de página se actualizan automáticamente. Por ejemplo, con la estructura de navegación de subastas que se muestra en el diagrama siguiente, puede cambiar el orden de las pestañas de navegación moviendo la página Sell antes de la página Browse. Web Site Designer genera automáticamente las pestañas por el orden correcto en todas las páginas. Para hacer los cambios visibles en la aplicación que se ejecuta, vuelva a guardar cada página que utilice la plantilla de navegación.Además de la vista Navegación descrita anteriormente, Web Site Designer proporciona una vista Detalles que organiza artículos de página en una cómoda tabla editable, tal como se muestra en la figura siguiente. Esta tabla facilita la actualización de propiedades de página, como por ejemplo, título, autor y etiqueta de navegación. ![]() Para obtener más información acerca de cómo utilizar Web Site Designer para gestionar el diseño de sitios Web, consulte el tema Crear una estructura de sitios Web de la ayuda línea. Crear plantillas de página Web con Page DesignerEl entorno de trabajo viene con un diseñador visual para desarrollar plantillas de página, así como las mismas páginas Web. Las plantillas de página son partes reutilizables de código de contenido que proporcionan un aspecto o un comportamiento común para partes de un sitio Web. Para compartir un aspecto, las páginas Web solo tienen que hacer referencia a las plantillas. La utilización de plantillas beneficia tanto al usuario que puede navegar fácilmente por el sitio Web, como al desarrollador que solo tiene que escribir código específico de una página determinada. Las plantillas de página también permiten mantener fácilmente el contenido del sitio Web. Los cambios en un archivo de plantilla se reflejan automáticamente en cada página que hace referencia a ese archivo. Por ejemplo, en la aplicación Web de subastas, la plantilla maintemplate.jtpl, proporciona el diseño general para las páginas de subasta. Los artículos de página Web pueden añadirse a la plantilla utilizando la paleta de Page Designer que permite arrastrar y soltar artículos en la página Web. El código HTML necesario se genera automáticamente. La plantilla de subastas puede modificarse fácilmente de esta forma para incluir por ejemplo, la fecha y la hora actuales en el pie de página. Los artículos clave de la plantilla de subastas son los controles de navegación. La barra de navegación de la aplicación Web de subastas utiliza dos formas de navegación:
Insertando un código que llama a la plantilla en lugar de codificando la navegación puede incluir la misma barra de navegación en todas las páginas del sitio. El editor Correlación de plantillas inserta referencias a la plantilla en una página Web. Las plantillas dinámicas llevan esta tecnología un paso más allá, por ejemplo alterando el contenido de la página Web basándose en los cometidos o las posibilidades de los usuarios o insertando información específica del usuario en una página Web. El ejemplo de subastas utiliza las plantillas dinámicas para proporcionar enlaces administrativos en la barra de navegación solo para los usuarios que han iniciado la sesión como administradores y para cambiar el botón "Login" por "Logout" una vez que el usuario ha iniciado la sesión satisfactoriamente. Para obtener más información acerca de la creación de plantillas de páginas Web, consulte el tema de ayuda acerca de cómo Crear una plantilla de página. Añadir componentes JavaServer Faces a los archivos JSP con Page DesignerJavaServer Faces (JSF) es una tecnología que ayuda a construir interfaces de usuario para aplicaciones Web dinámicas que se ejecutan en un servidor de aplicaciones. JSF es un lenguaje estándar abierto y utiliza una biblioteca de códigos estándar de JavaServer Faces. Los códigos se insertan en el código HTML para crear páginas Web dinámicas. La infraestructura de JSF gestiona los estados de interfaz de usuario entre peticiones de servidor y ofrece un modelo de desarrollo simple para manejar los sucesos del lado del servidor activados por el cliente. Por ejemplo, un JSF puede tener un comportamiento especificado para sucesos distintos, como por ejemplo una pulsación de botón. Page Designer tiene funciones incorporadas visualizadas en la paleta que puede arrastrar y soltar en la página Web. Estas funciones de arrastrar y soltar facilitan la utilización de JSF, HTML y otros artículos de creación de scripts. Esto resulta útil no solo para controlar las funciones básicas de un campo, como por ejemplo el tipo de valor de un campo de texto (entero, alfanumérico), sino que también habilita el establecimiento de reglas de validación. En Page Designer, los controles de JSF pueden enlazarse con los datos SDO asociados con cada página. La paleta de Page Designer puede utilizarse para añadir funciones adicionales a páginas JSF. Por ejemplo, puede añadirse un botón "Buy It Now" a la página de detalles del artículo para permitir que un usuario compre el artículo por el valor que el vendedor ha establecido. La figura siguiente muestra los controles JSF para la página de detalles de subasta. El campo newbid inputText está limitado para aceptar solamente enteros con el recuadro de selección Solo entero, tal como se ve en la esquina inferior derecha de la figura. El campo inputText tiene valores adicionales para Validación, Comportamiento y Accesibilidad, tal como se define en las pestañas debajo de h:inputText, en la parte inferior izquierda de la figura. La pestaña Validación es dónde se definen las reglas de validación específicas utilizando Java. Por ejemplo, la entrada válida para el campo inputText newbid es un entero que no sea nulo, que sea mayor que la puja inicial y mayor que la puja actual más uno.El código siguiente se ha generado para el campo inputText newbid en la página itemdetails de la aplicación de subastas. <h:inputText styleClass="inputText" id="newbid" required="true" size="14"> <f:convertNumber integerOnly="true" /> <f:validateLongRange minimum="#{pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean==null ? pc_Itemdetail.userFacadeLocalGetBidItemSDOByKeyResultBean.startingbid : pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean.currentbid+1}"> </f:validateLongRange> </h:inputText> Para obtener más información acerca del desarrollo de archivos JSP Faces, consulte el tema de ayuda sobre JavaServer Faces. Crear una interfaz de usuario Swing con el editor visual de JavaAdemás de las páginas Web, la aplicación de subastas tiene un cliente Swing Java que permite a los administradores mantener la información de usuario como por ejemplo nombres y contraseñas. Al utilizar un cliente Swing, todo el proceso se realiza en el sistema cliente, lo que reduce el tiempo de espera asociado a las aplicaciones Web. El cliente User Admin lista todos los usuarios de la aplicación. El administrador puede interactuar con los datos del usuario y gestionar los atributos específicos sin tener que esperar a recargar una página Web. Un cliente Swing también proporciona una interfaz más transparente y orientada a la aplicación. La aplicación del cliente Swing se desarrolló con el editor visual de Java, tal como se muestra a continuación. Utilizando el editor visual, puede desarrollar visualmente la aplicación, al tiempo que el código se genera automáticamente. Esto reduce la necesidad de escribir manualmente código Swing complicado. ![]() La figura anterior muestra la aplicación User Admin dentro del editor visual Java. Los bloques de la derecha son las fachadas de sesión que utilizan objetos SDO para acceder a la lógica empresarial. Las líneas sólidas que conectan estos bloques al diseño de interfaz se asocian a eventos específicos en la interfaz de usuario. Las líneas trazadas muestran qué parámetros se pasan a los objetos SDO y los valores que devuelven. Desarrollar esta aplicación visualmente es más rápido que escribir un complicado código Swing Java y facilita los cambios en la interfaz de usuario. La interfaz User Admin se ha creado directamente en el editor visual Java. Puede seleccionar componentes Swing nuevos en la paleta y añadirlos a la aplicación. Cualquier componente puede personalizarse para satisfacer el aspecto deseado utilizando las herramientas, los asistentes, los comentarios y las propiedades adecuados en la hoja de propiedades. Además, los componentes que pueden mostrar el contenido, como por ejemplo las tablas y los campos de texto pueden enlazarse para mostrar los datos proporcionados por un origen de datos. Una vez desarrollada la aplicación User Admin, debe desplegarse en el sitio Web. La aplicación User Admin completada se empaqueta en un archivo EAR y se coloca en la estructura de directorios del sitio Web. Se crean scripts y recursos HTML adicionales para desplegar correctamente la aplicación a través de WebStart, tal como se especifica en la documentación del software de WebSphere Application Client incluido con el producto WebSphere Application Server. Los recursos que se ejecutan en el lado del cliente se firman con un certificado por razones de seguridad. Una vez se ha llevado a cabo toda la configuración necesaria en la documentación, la aplicación está lista para desplegarse en un cliente que disponga solamente de un navegador y de Java WebStart. Después de crear los componentes de la aplicación Web, la aplicación Web de subastas se despliega y se ejecuta en el servidor de aplicaciones. Hay componentes adicionales en la aplicación de subastas disponibles en la Galería de ejemplos. Para obtener más información, consulte el tema de ayuda Editar Java en el editor visual. Crear el servicio WebEl servicio Web se ha desarrollado en paralelo con la aplicación Web porque no depende de la aplicación Web; el servicio Web es otro medio de acceder a la lógica empresarial y no incluye toda la funcionalidad de la aplicación Web. Consulte el apartado Servicio Web para obtener una descripción más detallada de esta parte de la aplicación de subastas. |