Consideraciones de rendimiento para el servicio de área de trabajo
El servicio de área de trabajo está diseñado para patrones complejos de paso de datos que pueden aumentar rápidamente más de lo recomendable para el mantenimiento. Un área de trabajo es un bloc de notas al que puede acceder cualquier cliente con capacidad para realizar búsquedas de JNDI (Java™ Naming Directory Interface). Una vez establecida un área de trabajo, se pueden colocar datos en ella para su uso posterior en las siguientes llamadas de método a recursos tanto remotos como locales.
Puede utilizar un área de trabajo cuando muchos métodos necesiten información común o si la información sólo la necesita un método que está muy por debajo en el gráfico de llamada. Este último caso elimina la necesidad de modelos de paso de parámetros complejos donde el número de argumentos que se pasan resultan caros y difíciles de mantener. Puede mejorar la función de la aplicación si coloca la información en un área de trabajo, para acceder luego a ella de manera independiente en cada método, con lo que no es necesario pasar estos parámetros de método a método. Este último caso también evita el paso de parámetros innecesarios y permite aumentar el rendimiento al reducir el coste de organización y desorganización de estos parámetros con el ORB (Object Request Broker) cuando sólo se necesitan ocasionalmente en el gráfico de llamada.
Cuando intente maximizar el rendimiento utilizando un área de trabajo, coloque en la memoria caché la partición UserWorkArea recuperada de JNDI siempre que acceda a ella. Puede reducir el tiempo necesario para buscar información en JNDI si la recupera una vez y mantiene una referencia para su uso posterior. Las búsquedas de JNDI tardan mucho tiempo y pueden ser costosas.
La propiedad de configuración "Serialización de atributos diferida" define los mecanismos de memoria caché adicionales disponibles para una partición definida por el usuario. Este mecanismo intenta minimizar el número de llamadas de serialización y deserialización. Consulte el artículo del servicio de partición de área de trabajo para obtener una explicación adicional de este atributo de configuración.
Los parámetros de configuración maxSendSize y maxReceiveSize pueden afectar al rendimiento del área de trabajo. Si se establecen estos dos valores como 0 (cero) se desactiva la creación de políticas del tamaño del contexto que se puede enviar en un área de trabajo. Esta acción puede aumentar el rendimiento, dependiendo del número de áreas de trabajo anidadas que utilizan las aplicaciones. En las aplicaciones que utilizan sólo un área de trabajo, las mejoras de rendimiento son apenas perceptibles. En las aplicaciones que tienen un gran número de áreas de trabajo anidadas, el rendimiento puede aumentar. No obstante, un usuario debe tener en cuenta que, si desactiva esta creación de políticas, puede que se envíe al servidor una gran cantidad de datos.
El rendimiento disminuye si se utiliza un área de trabajo para sustituir directamente al paso de un solo parámetro en una llamada de método. Esto se debe a que la carga adicional aumenta más que si sólo se pasa el parámetro entre llamadas de método. Aunque la disminución de rendimiento entra dentro de los valores aceptables y se escala de manera parecida al paso de parámetros en cuanto al tamaño de objetos, tenga en cuenta la posibilidad de esta degradación antes de utilizar el servicio. Como ocurre con la mayoría de servicios funcionales, si se hace un uso inteligente de las áreas de trabajo, se consiguen los mejores resultados.
El servicio de área de trabajo es una herramienta que permite simplificar el trabajo de pasar información de un recurso a otro, y en algunos casos puede aumentar el rendimiento si se reduce la carga adicional asociada con el paso de parámetros cuando sólo se accede a la información por separado en el gráfico de llamada. La colocación en memoria caché de la instancia recuperada de JNDI es importante para maximizar el rendimiento en el tiempo de ejecución.