Visión general de la infraestructura de HCL Commerce

En HCL Commerce, el tiempo de ejecución del servidor define la infraestructura para manejar las peticiones de sistema y de usuario y ejecuta la lógica de negocio adecuada para procesar las peticiones. La infraestructura se crea utilizando un patrón de diseño MVC y proporciona un entorno que aloja la lógica de negocio y maneja la persistencia. Estas tareas las realiza como gestión de transacciones y gestión de sesiones.

HCL Commerce admite diversos mecanismos de seguridad que se pueden utilizar para proteger el acceso a los datos y otros activos del servidor. La infraestructura de control de acceso en HCL Commerce impide a los usuarios ejecutar una lógica de negocio determinada. La infraestructura de control de acceso proporciona un control detallado de la lógica de negocio y la flexibilidad para restringir el acceso a los datos que el usuario puede ver y modificar. Con el control de acceso puede agrupar mandatos por grupos de acceso, asignar diferentes mandatos de cliente a diferentes propietarios y asignar acceso a todos los propietarios y acceso global de administrador de sitio. Al utilizar la seguridad global de WebSphere, se puede controlar el acceso a recursos web, como servlets, archivos JSP (JavaServer Pages) y métodos EJB (Enterprise JavaBeans) para obtener una capa adicional de seguridad.

La infraestructura del mandato, un componente de arquitectura en tiempo de ejecución de Transaction server proporciona la posibilidad de ejecutar mandatos que representan diferentes procesos de negocio en el sistema. La infraestructura de mandatos define las interfaces Java y la implementación abstracta que amplía e implementa la lógica de negocio. También se proporciona un conjunto de clases base que los mandatos pueden ampliar para simplificar la implementación.

En el diagrama siguiente se muestran las interacciones entre los componentes de HCL Commerce.

Interacciones entre los componentes de HCL Commerce

Motor de servlets
El motor del servlet es la parte del entorno de ejecución de WebSphere Application Server que actúa como asignador de peticiones para las peticiones de URL de entrada. El motor de servlets solo se utiliza para aplicaciones web. El motor de servlets gestiona una agrupación de hebras para manejar las peticiones. Cada petición de entrada se ejecuta en una hebra independiente. los mandatos HCL Commerce se pueden invocar desde varios dispositivos. Ejemplos de dispositivos que pueden invocar mandatos son:
  • Navegadores estándar de Internet
  • Teléfonos móviles que utilizan navegadores de Internet
  • Sistemas de compras que envían solicitudes utilizando XML sobre HTTP

Un escucha de protocolo es un componente de tiempo de ejecución que recibe solicitudes de entrada de los transportes y luego asigna las solicitudes a los adaptadores apropiados, que se basan en el protocolo utilizado. El escucha de protocolo incluye un servlet de petición.

Cuando el servlet de peticiones recibe una petición de URL del motor de servlets, pasa la petición al gestor de adaptadores. El gestor de adaptadores devuelve el adaptador asociado para la solicitud. Cuando se determina el adaptador especifico, se procesa la petición. El adaptador asociado se utiliza para la gestión de sesiones específicas de dispositivo para dar formato a las respuestas.

La lista de adaptadores se inicializa cuando se inicializa el servidor. Cada módulo web puede tener su propia lista personalizada de adaptadores soportados.

Capa de presentación

Controlador de

El controlador desempeña un rol al aplicar el modelo de programación para la aplicación de comercio. Por ejemplo, el modelo de programación define los tipos de mandatos que una aplicación puede escribir. Cada tipo de mandato tiene una finalidad específica. La lógica de negocio debe implementarse en mandatos de controlador. El controlador espera que el mandato de controlador devuelva un nombre de vista.

Para las peticiones HTTP, el controlador lleva a cabo las siguientes tareas:

  • Inicia la transacción utilizando la interfaz UserTransaction del paquete javax.transaction.
  • Obtiene datos de sesión del adaptador.
  • Determina si el usuario debe estar conectado antes de que se invoque el mandato. Si es necesario, redirige el navegador del usuario a un URL de conexión.
  • Comprueba si es necesario HTTPS seguro para el URL. Si es necesario pero la petición actual no utiliza HTTPS, redirige el navegador web a un URL HTTPS.
  • Invoca el mandato de controlador y le pasa los objetos de contexto de mandatos y de propiedades de entrada.
  • Si se produce una excepción de retrotracción de transacción y el mandato de controlador se puede intentar de nuevo, intenta el mandato de controlador.
  • Normalmente, un mandato de controlador devuelve un nombre de vista cuando hay un página de visualización que se ha de devolver al cliente. El controlador invoca la vista adecuada para la página correspondiente que se va a visualizar. Hay varias maneras de formar una vista de respuesta. Por ejemplo, redirigir a un URL distinto, reenviar a una página JSP o escribir un documento HTML en el objeto de respuesta.
  • Compromete los datos de sesión.
  • Compromete la transacción actual, si ésta es satisfactoria.
  • Retrotrae la transacción actual en caso de anomalía (según las circunstancias).
Infraestructura de adaptadores y adaptadores
La infraestructura de adaptadores determina qué adaptador puede manejar la solicitud y asocia el adaptador a dicha solicitud para crear respuestas y gestionar sesiones.

Los adaptadores de HCL Commerce son componentes específicos de dispositivo que realizan funciones de proceso antes de que se pase una petición al controlador web. Ejemplos de las tareas de proceso que realiza un adaptador son:

  • Indicar al controlador web que procese la petición de una manera específica para el tipo de dispositivo. Por ejemplo, un adaptador de dispositivo PVC ("pervasive computing") puede indicar al controlador web que ignore la comprobación HTTPS en la petición original.
  • Transformar el formato de mensaje de la petición de entrada en un conjunto de propiedades que los mandatos de HCL Commerce pueden analizar.
  • Proporcionar persistencia de sesiones específica para cada dispositivo.

En el siguiente diagrama se muestra la jerarquía de clases de implementación para la infraestructura de adaptador de HCL Commerce.

Diagrama que muestra la jerarquía de clases de implementación para la infraestructura de adaptador de HCL Commerce, como se describe en el párrafo siguiente.

Tal como se muestra en el diagrama anterior, todos los adaptadores implementan la interfaz DeviceFormatAdapter. A continuación se describen los adaptadores utilizados por el entorno de ejecución de HCL Commerce:

Adaptador de navegador HTTP
El adaptador de navegador HTTP proporciona soporte para que las peticiones invoquen los mandatos de HCL Commerce que se reciben de los navegadores HTTP.
Adaptador PvC HTTP
Es una clase de adaptador abstracta que puede utilizarse para desarrollar adaptadores de dispositivo PvC específicos. Por ejemplo, si tiene que desarrollar un adaptador para una determinada aplicación de teléfonos móviles, puede hacerlo a partir de este adaptador.
Adaptador de programa HTTP
El adaptador de programas proporciona soporte para programas remotos que invocan mandatos de HCL Commerce. El adaptador de programas recibe peticiones y utiliza un correlacionador de mensajes para convertir la petición en un objeto CommandProperty. Después de la conversión, el adaptador de programas utiliza el objeto CommandProperty y ejecuta la petición.

Si es necesario, la infraestructura de adaptadores se puede ampliar de las dos maneras siguientes:

  • Crear un adaptador para un dispositivo PvC específico (por ejemplo, crear una clase HttpIModePVCAdapterImpl para proporcionar soporte a dispositivos i-mode). Un adaptador de este tipo debe ampliar la clase AbstractHttpPVCAdapter.
  • Cree un adaptador que se conecte con un nuevo escucha de protocolo. Este nuevo adaptador debe implementar la interfaz DeviceFormatAdapter.
Gestor de beans de datos y beans de datos
Los beans de datos de HCL Commerce que se insertan en las páginas JSP permiten incluir contenido dinámico en la página. El método recomendado para activar los beans de datos en una página JSP consiste en utilizar el código useBean de HCL Commerce. Alternativamente, se puede utilizar el gestor de beans de datos. El control de acceso se aplica invocando beans de datos mediante el gestor de beans de datos.

El gestor de beans de datos activa el bean de datos para que sus valores se llenen de datos cuando se inserte la siguiente línea de código en la página:


com.ibm.commerce.beans.DataBeanManager.activate(data_bean, request, response)

Donde data_bean es el bean de datos que se ha de activar, request es un objeto HTTPServletRequest y response es un objeto HTTPServletResponse.

Los beans de datos son beans que son utilizados principalmente por los diseñadores web. Generalmente proporcionan acceso a una entidad de HCL Commerce. Un diseñador web puede colocar estos beans en una página JSP, lo cual permite insertar información dinámica en la página en el momento de visualizarla. El diseñador web solo necesita entender qué datos puede proporcionar el bean y qué datos requiere el bean como entrada. Consecuente con la idea de separar lo que se visualiza de la lógica de negocio, no es necesario que el diseñador web comprenda el funcionamiento del bean.

Páginas de visualización
Las páginas JSP son servlets especializados que se utilizan generalmente a efectos de visualización. Al finalizar una petición de URL, el controlador web invoca un mandato de vista que invoca una página JSP. Un cliente también puede invocar una página JSP directamente desde el navegador sin un mandato asociado. En este caso, el URL para la página JSP debe incluir el servlet de solicitudes en su vía de acceso para que todos los beans de datos que necesita una página JSP puedan activarse en una sola transacción. El servlet de peticiones puede reenviar una petición de URL a una página JSP y ejecutar la página JSP en una sola transacción.

El gestor de beans de datos rechaza cualquier URL para una página JSP que no incluya el servlet de peticiones en su vía de acceso.

HCL Commerce capa del modelo de mandatos

Los mandatos de HCL Commerce son beans que contienen la lógica de programación que está asociada con el manejo de una petición determinada. Los tipos de mandatos principales son mandatos de controlador y mandatos de tarea.

Capa de persistencia

Los beans de entidad son los objetos de comercio transaccionales persistentes proporcionados por HCL Commerce. Si está familiarizado con el dominio de comercio, los beans de entidad representan los datos de HCL Commerce de forma intuitiva. Es decir, en lugar de tener que comprender todo el esquema de base de datos, puede acceder a los datos desde un bean de entidad que modela con más detalle conceptos y objetos del dominio del comercio. Puede ampliar los beans de entidad existentes. Además, para satisfacer los requisitos de negocio específicos de su propia aplicación, puede desplegar beans de entidad totalmente nuevos.

Las entidades JPA se implementan según el modelo de componente JPA.