[z/OS]

Conceptos de proxy dinámico de Java Management Extensions

Un proxy dinámico de Java™ Management Extensions (JMX) coordina las solicitudes de MBean entre los servidores de multiproceso. En este apartado se describen los principales términos asociados con un proxy dinámico JMX.

Proceso de control
Recibe las solicitudes y las distribuye a los procesos de sirviente para que el servidor de aplicaciones pueda trabajar en las solicitudes.
Proceso de sirviente
Recibe trabajo del proceso de control y lo lleva a cabo.
Opción de llamada única frente a opción de llamada múltiple
Utilice la opción de llamada única en el método proxyInvocationType cuando una solicitud invoque un proceso de sirviente arbitrario o varios procesos de sirviente. Utilice la opción de llamada múltiple en el método proxyInvocationType cuando una solicitud vaya a varios procesos de sirviente y éstos devuelvan resultados diferentes.

En el ejemplo siguiente se muestra un descriptor de MBean que se ha desarrollado para un modelo de proceso único (antes) y se ha modificado para un modelo de multiproceso (después).

Antes
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  description="Sample State MBean for the documentation example.">

  <attribute description="The name of the MBean."
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="The state of the MBean."name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
  <operation
    description="Initialize the State MBean."
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void">
    <signature>
      <parameter description="El nombre del MBean."
        name="mbeanName" type="java.lang.String"/>
      <parameter description="El estado inicial del MBean."
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Después
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  platform="dynamicproxy"
  description="Sample State MBean for the documentation example.">

  <attribute description="The name of the MBean."
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="The state of the MBean."name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
    proxyInvokeType="unicall" proxySetterInvokeType="multicall"/>
  <operation
    description="Initialize the State MBean."
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void" proxyInvokeType="multicall">
    <signature>
      <parameter description="El nombre del MBean."
        name="mbeanName" type="java.lang.String"/>
      <parameter description="El estado inicial del MBean."
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Especifique dynamicproxy en el atributo de plataforma para que el MBean del usuario se ejecute en la modalidad de proxy dinámico. Si no existe ningún atributo de plataforma en el descriptor del MBean, el MBean del usuario desplegado en WebSphere Application Server para z/OS utilizará automáticamente la modalidad de proxy dinámico.
Actualice el distintivo XML del atributo o el distintivo XML de la operación, tal como se muestra en el ejemplo Después, para especificar el comportamiento de llamada única o el comportamiento de llamada múltiple en el entorno de multiproceso. Si no existe ninguna opción proxyInvokeType o ninguna opción proxySetterInvokeType, el comportamiento toma de manera predeterminada uno de los valores siguientes:
proxyInvokeType=unicall (para getMethod)
proxyInvokeType=multicall (para setMethod)

En el ejemplo Después, el método getMBeanName y el método getState se ejecutan con el comportamiento de llamada única. El método setState y el método initializeState se ejecutan con el comportamiento de llamada múltiple.

Modelo de proceso único
El servidor de aplicaciones de proceso único tiene un tiempo de ejecución de un servidor. El MBean actúa generalmente en una instancia de cada componente principal del tiempo de ejecución: un contenedor de EJB (Enterprise JavaBeans), un contenedor web, un gestor de conexiones J2EE (Java 2 Platform, Enterprise Edition), etcétera. En este modelo se supone que cada invocación de MBean en el servidor se ejecuta en el mismo proceso y en la misma máquina virtual Java (JVM).
Modelo de multiproceso
El modelo de multiproceso comprueba que una única instancia de servidor sea una federación de máquinas virtuales Java (JVM) que se ejecutan en un proceso operativo diferente. El proceso de control es responsable de funciones del servidor como, por ejemplo, los puntos finales de comunicación, la autorización, la recuperación de recursos y la gestión de cargas de trabajo. Las demás JVM son JVM de trabajo, en las que se ejecutan las solicitudes de aplicaciones. Estas JVM siguen las instrucciones y sólo interactúan con el proceso de control.

Todas las solicitudes de entrada y de salida pasan por el proceso de control. Las solicitudes de cliente llegan al proceso de control. El proceso de control, con ayuda del gestor de cargas de trabajo (WLM) de MVS, asigna el trabajo a los procesos de sirviente.

WLM gestiona el número de procesos de sirviente, que varía según la demanda. La demanda se mide con respecto a los objetivos de rendimiento específicos de la instalación, expresados en forma de política de WLM. Cada proceso de sirviente es idéntico y alberga los componentes del servidor de aplicaciones necesarios para habilitar el modelo de programación de aplicaciones J2EE. Los procesos de sirviente se basan en el proceso de control para distintos servicios como, por ejemplo, la comunicación, la seguridad y el control de transacciones.

El modelo de multiproceso impone demandas adicionales en la infraestructura JMX (Java Management Extension) con respecto al modelo de proceso único. Las solicitudes de administración en un servidor de multiproceso necesitan normalmente la coordinación de los procesos que componen el servidor de aplicaciones. La infraestructura JMX incluye recursos adicionales que permiten esta coordinación.

modelo de servidor de multiproceso
Soporte de objetos de estado para el MBean de proxy dinámico
Clase com.ibm.websphere.management.dynamicproxy.StateObject: El proveedor de MBean amplía la clase abstracta StateObject. Especifique la subclase de la clase StateObject de forma que el tiempo de ejecución JMX pueda crear una instancia de ella antes de que el MBean de proxy dinámico complete su inicialización. El tiempo de ejecución JMX adjunta la clase StateObject a la interfaz de manejador de invocaciones del proxy dinámico para realizar un seguimiento del estado actual del proxy dinámico antes y después de ejecutar el método del MBean. El tiempo de ejecución JMX también adjunta la clase StateObject a la interfaz de agregación de resultados así como a la interfaz de manejador de sucesos para dar soporte a la aplicación de agregación correspondiente.
Interfaz de soporte de manejador de agregación de resultados
Clase com.ibm.websphere.management.dynamicproxy.AggregationHandler: La interfaz de soporte de manejador de adición de resultados define el método que utiliza un proveedor de MBean para manejar la adición de resultados en un MBean de WebSphere Application Server para z/OS habilitado para proxy dinámico. Especifique el atributo aggregationHandlerClass en el distintivo XML del MBean MBeanDescriptor. Implemente la interfaz de los métodos de MBean que utilicen la opción proxyInvokeType de llamada múltiple y que devuelvan un valor. La interfaz determina el método para el que se procesa esta agregación. A continuación, agrega correctamente todos los resultados de MBean de sirviente que pasan los procesos de sirviente al proceso de control y, posteriormente, compila un único resultado para devolverlo al llamante.
Interfaz de soporte de manejador de agregación de sucesos
Clase com.ibm.websphere.management.dynamicproxy.EventHandler: La interfaz de soporte de manejador de adición de sucesos define el método que utiliza un proveedor de MBean para manejar la adición de sucesos en un MBean de WebSphere Application Server para z/OS habilitado para proxy dinámico. Especifique el atributo eventHandlerClass en el distintivo XML del MBean MBeanDescriptor. La interfaz maneja todos los sucesos de MBean de sirviente entrantes y los agrega para filtrar los sucesos duplicados de varios MBeans de sirviente. Envía un suceso de nuevo al escucha del MBean de proxy dinámico. La interfaz ajusta el estado del MBean de proxy dinámico actual según los requisitos del proveedor de MBean.
Interfaz de soporte de manejador de invocaciones
Clase com.ibm.websphere.management.dynamicproxy.InvocationHandler: La interfaz de soporte de manejador de invocaciones define los métodos preInvoke y postInvoke que implementa un MBean de proxy dinámico de WebSphere Application Server para z/OS cuando necesita información de gestión de estado. El MBean utiliza la información para coordinarla con los MBeans de sirviente en aquellos casos en los que se necesite el tipo de invocación de llamada múltiple. Especifique el atributo invocationHandlerClass en el distintivo XML del MBean MBeanDescriptor. Utilice la interfaz para MBeans de proxy dinámico que necesiten la gestión de estado antes y después de invocar un método que cambie el estado.
MBean de usuario
El MBean de usuario reside en el proceso de sirviente y maneja solicitudes mediante el MBean de proxy creado de forma dinámica, que se ejecuta dentro del proceso de control. Un proveedor de MBean puede empaquetar manejadores con el MBean de usuario para que el proveedor se enlace con su propio proceso especializado en las siguientes situaciones:
  • Agregación de resultados
  • Agregación de sucesos
  • Manejo de invocaciones
  • Gestión de estado de objetos

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjmx_proxycon
File name: cjmx_proxycon.html