Áreas de trabajo distribuidas
El contexto de área de trabajo se propaga a un objeto de destino en una invocación remota en particiones de áreas de trabajo definidas tanto bidireccionales como no bidireccionales. La propagación del contexto de área de trabajo funciona de forma diferente en función de si se define una partición de área de trabajo como bidireccional o no. Si la partición se define como bidireccional, el contexto se propaga desde un objeto de destino de regreso al originador.
Particiones de área de trabajo no bidireccionales (partición UserWorkArea)
Si se emite una invocación remota desde una hebra asociada a un área de trabajo, se propaga automáticamente una copia del área de trabajo al objeto de destino, que puede utilizar o ignorar la información del área de trabajo según le convenga. Si la aplicación que realiza la llamada tiene un área de trabajo anidada asociada a ella, se propaga al destino una copia del área de trabajo anidada con todos sus antecesores. La aplicación de destino puede modificar la información localmente, según lo permiten las modalidades de propiedad, creando áreas de trabajo anidadas adicionales; esta información se propagará a cualquier objeto remoto que invoque. No obstante, los cambios realizados a un área de trabajo anidada en un objeto de destino no se propagan de vuelta al objeto que llamante. El área de trabajo del llamante no se ve afectada por los cambios realizados en el método remoto.
Particiones de área de trabajo bidireccionales
Si se emite una invocación remota desde una hebra asociada a un área de trabajo, se propaga automáticamente una copia del área de trabajo al objeto de destino, que puede utilizar o ignorar la información del área de trabajo según le convenga. Si la aplicación que realiza la llamada tiene un área de trabajo anidada asociada a ella, se propaga al destino una copia del área de trabajo anidada con todos sus antecesores. La aplicación de destino puede modificar la información localmente, según lo permiten las modalidades de propiedad; esta información se propaga a cualquier objeto remoto que invoque. En una partición no definida como bidireccional, una aplicación de destino debe iniciar un área de trabajo anidada antes de realizar los cambios en el área de trabajo importada. No obstante, si se define una partición como bidireccional, una aplicación de destino no tiene que iniciar un área de trabajo anidada antes de operar sobre un área de trabajo importada. Al no iniciar un área de trabajo anidada, cualquier contexto nuevo establecido en el área de trabajo o cualquier cambio de contexto realizado por la aplicación de destino no se propaga en invocaciones remotas posteriores, pero sí que se propaga a la aplicación de origen (es decir, la que ha iniciado la invocación remota), lo que permite la propagación bidireccional del contexto de área de trabajo. Si la aplicación de destino no desea que el contexto nuevo o modificado se propague a la aplicación de origen, la aplicación de destino debe iniciar un área de trabajo anidada para establecer el ámbito del contexto en su proceso. No obstante, el contexto nuevo o modificado del área de trabajo anidada se propaga en cualquier invocación remota posterior que la aplicación de destino pueda realizar.