Servicio de contexto de negocio

El servicio de contexto de negocio gestiona la información contextual que utilizan los componentes de negocio. La información se encapsula en diferentes tipos de contextos de negocio. Este proceso formaliza la infraestructura de contexto y permite que modelos de negocio diferentes la vuelvan a utilizar.

La abstracción de información contextual de usuarios permite lo siguiente:

  • Habilitar componentes genéricos
  • Adaptar contenido y experiencia
  • Ofertas con destinos muy precisos
  • La imposición de políticas de negocio
  • Precios adecuados, autorizaciones y términos para un usuario concreto

Antes de invocar la lógica para procesar la operación, el servicio de contexto de negocio configura y gestiona la información contextual. Una vez se completa el proceso, se invoca el servicio de contexto de negocio para manejar cualquier postproceso de la información de contexto como, por ejemplo, la persistencia. En el modelo de contexto de negocio, un cliente invoca un servicio para que lleve a cabo una operación. Opcionalmente, el cliente puede recibir una respuesta. Un ejemplo de un servicio de negocio es un servicio que ayuda a una empresa a satisfacer las necesidades de sus clientes. Varios servicios pueden agruparse de forma lógica en componentes de negocio. Un componente se especializa en una función como la gestión de catálogos o el cálculo de impuestos.

En el siguiente diagrama se muestran los artefactos del modelo de contexto de negocio.

Este diagrama muestra el flujo que viene explicado en los párrafos siguientes.

Controlador de soluciones
Un controlador de soluciones es responsable de gestionar la actividad o actividades de un usuario. En la infraestructura Struts de HCL Commerce el controlador de soluciones existe como parte de la acción básica. El cliente efectúa un conjunto de acciones limitado mientras el controlador de soluciones proporciona enganches adicionales de proceso BCS.
Señal de actividad
Identificador de una actividad que abarca varias peticiones y transacciones. Una actividad normalmente empieza cuando un usuario se conecta al sitio y finaliza cuando se desconecta. El señal de actividad es exclusivo para cada invocador, usuario de ejecución y tienda.

La señal de actividad agrupa el conjunto de contextos que se aplican durante la petición de un cliente a los distintos componentes de negocio. El cliente proporciona esta señal de actividad en cada petición para indicar la experiencia que desearía adquirir de los componentes de negocio. Generalmente, el controlador de soluciones inicia una petición de un símbolo de actividad al servicio de contexto de negocio.

Componentes de negocio
Un componente de negocio agrupa un conjunto de servicios relacionados entre sí y un servicio proporciona una función especializada. Interactúa con el servicio de contexto de negocio para indicar el principio y el final de modo que pueda llevarse a cabo una petición de que cualquier preproceso y postproceso en contextos de negocio. Los componentes también recuperan y actualizan diversos contextos de negocio durante la ejecución de una petición.
Motor de contexto de negocio
El motor de contexto de negocio (BCE) proporciona contextos que dictan las características de conducta de componentes durante la duración de la sesión. El motor de contexto de negocio está formado por el servicio de contexto de negocio y los contextos de negocio.
Servicio de contexto de negocio
El controlador de soluciones utiliza el servicio de contexto de negocio (BCS) para gestionar contextos que requieren los componentes de negocio. BCS también es una interfaz que los componentes utilizan para obtener los contextos que necesitan. Se asocian varios contextos exclusivos, que utilizan diversos componentes de negocio, bajo un único identificador, llamado actividad, durante un intervalo de tiempo limitado. El intervalo de tiempo de una actividad abarca varias peticiones y transacciones. Los contextos asociados con una actividad mantienen su estado durante la ejecución de la actividad. BCS también gestiona una memoria caché de los contextos de negocio asociados a una actividad dentro de una petición. Esta memoria caché reserva recursos que de otra manera se utilizarían para inicializar y desplegar varios contextos de negocio utilizados en la misma petición.
Contextos de negocio
Los contextos de negocio tienen las siguientes características:
  • Un contexto establece un entorno de ejecución que afecta la salida de un componente de negocio para la entrada equivalente basada en las necesidades de la solución.
  • La salida generada por un componente para una entrada dada es siempre idéntica para el mismo conjunto de contextos.
  • Los contextos no los invocan directamente los clientes de los procesos de negocio. En su lugar, es el componente de negocio el que utiliza los servicios proporcionados por los contexto durante la ejecución de una petición.
  • Un contexto proporciona un conjunto de métodos de servicio y opcionalmente puede almacenar datos de sesión que no cambian muy a menudo la duración de una actividad.
  • El período de vida de un contexto empieza con la creación de una actividad y termina con la finalización de la actividad.
  • Cada contexto de negocio implementa dos interfaces:
    • ContextSPI
      • La interfaz ContextSpI define los métodos para el servicio de contexto de negocios para indica hechos tales como el comienzo de una actividad, el comienzo y el fin de una solicitud.
    • Contexto
      • La interfaz Context la amplía cada contexto de negocio que define los métodos que utilizará la lógica de negocio para recuperar la información específica de contexto.

    HCL Commerce predefine los contextos siguientes:

    BaseContext
    Este contexto contiene los atributos básicos que necesita una actividad como, por ejemplo, el ID de tienda, el ID del que llama y el ID run-as.
    EntitlementContext
    Este contexto mantiene información sobre criterios de autorización, como precios reducidos para los miembros con la categoría Gold Club.
    GlobalizationContext
    Este contexto ayuda a los componentes a determinar información específica del entorno local como, por ejemplo, en qué idioma debe presentarse en mensaje o qué moneda debe utilizarse en el cálculo de un precio.
    ContentContext
    Si los espacios de trabajo están habilitados, este contexto determina el contenido o los objetos que pueden visualizarse o editarse basándose en la información de mantenimiento de versiones.
    TaskContext
    Si los espacios de trabajo están habilitados, este contexto determina qué tarea está realizando actualmente un administrador.
    AuditContext
    Este contexto normalmente lo proporcionan componentes de terceros. Quizás desee acortar la distancia a la interfaz de terceros en lugar de programarlo directamente. Este contexto le permite conectar en el futuro con la implementación del servicio de un proveedor distinto sin que sea necesario volver el escribir el componente.
    PreviewContext
    El contexto de vista previa es el intento de solucionar los dos problemas, permitir que varios usuarios validen el contenido independiente sin que ello repercuta a otros usuarios y asegurarse de que el contenido no requiere cambios adicionales después de la validación. Para poder solucionarlo, se asociará un objeto de contexto con la operación de vista previa que representará la información de estado que se utilizará cuando se decida el contenido de la vista previa junto con otros sucesos externos. Al asociar un contexto de vista previa con una actividad, las operaciones pueden utilizar esta información de estado de contenido como base para decidir el contenido que se ha de visualizar. Para solucionar el problema de fecha, el contexto de vista previa contendrá la fecha de vista previa que se utilizará para mostrar el contenido que se ha de visualizar. Si las actividades tienen un contexto de vista previa exclusivo, varios usuarios pueden obtener una vista previa del contenido independiente sin tener que cambiar los datos del contenido ni la información de estado del sistema global.
    ExperimentContext
    Se utiliza ExperimentContext para almacenar el resultado de todos los experimentos elementos para los usuarios individuales, donde el resultado es un número generado por el sistema que determina el elemento de control o prueba que se ha de seleccionar en el experimento. Esta información persiste en toda la sesión de usuario, por lo tanto, se utilizará el mismo resultado en la misma sesión sin volver a generar el número.
    CatalogContext
    Este contexto contiene información relacionada con el catálogo en la sesión actual, como el ID de catálogo, el propietario del catálogo y si se trata de un catálogo maestro o no.
    GiftRegistryContext
    Este contexto contiene información de registro de regalos de un usuario en la sesión actual, como una lista de los registros de regalos a los que el usuario ha accedido, la relación que el usuario tiene con dichos registros ( (obsequiante, registrante o co-registrante) y el ID externo del registro de regalos que el usuario gestiona actualmente.
Conjuntos de contextos de negocio
Los contextos de negocios se agrupan en conjuntos de contextos de negocio. Un conjunto de contextos de negocio es una agrupación lógica de contextos de negocio para un tipo de petición determinado. Se pueden configurar distintos conjuntos de contexto para peticiones que proceden de distintas aplicaciones web. Por ejemplo, en las peticiones que se han iniciado en la aplicación web de Accelerator es necesario incluir contextos de contenido y tareas para la creación, mientras que en las peticiones procedentes de la aplicación web de la tienda este requisito no existe. Esta implementación proporciona las siguientes ventajas:
  • Mejora el rendimiento ya que no es necesario inicializar contextos de negocio innecesarios. Por ejemplo, cuando los clientes examinan el catálogo en el escaparate, no es necesaria la presencia de PreviewContext cuya finalidad es la visualización en el entorno de creación de contenido.
  • Proporciona mejoras en la seguridad. Por ejemplo, no es necesario que las peticiones procedentes de la aplicación web de tiendas habiliten PreviewContext, que elimina la funcionalidad de la vista previa del cliente.