工作区服务概述
工作区服务将信息作为参数显式传递至远程方法或将信息隐式传递至远程方法。
分布式计算的基础之一就是将信息从一个进程传递到另一个进程的能力(通常采用对远程方法使用参数的形式)。在中间件服务之上编写应用程序级别的软件时,许多服务依赖于应用程序的远程调用中传递的信息之外的信息。除了远程请求中传递的参数之外,此类服务通常还利用私有信息的隐式传播;两种典型的此类用户是安全服务和事务服务。安全证书或事务上下文的传递无需用户或应用程序开发者获知或干预。此类信息的隐式传播意味着应用程序开发者无需在方法调用中手动传递此类信息,这可以降低开发错误率,并且需要此类信息的服务不必向应用程序开发者暴露该信息。安全凭证等信息可以保持机密性。
工作区服务为应用程序开发者提供了一个类似的工具。应用程序可以创建工作区,在其中插入信息并进行远程调用。工作区是与每个远程方法调用一起传播的,无需将一个适当的参数显式包含在每个方法的定义中。服务器端的方法可以适当地使用或忽略工作区中信息。如果服务器中的方法从客户机接收到一个工作区,之后调用其他远程方法,该工作区将与远程请求一起透明传播。当应用程序创建完工作区后,应用程序会终止工作区。
- 普及性:应用程序中的大多数方法都使用该信息吗?
- 大小:即使不使用该信息,发送它也合理吗?
当该信息的普及性足以证明使它随处可用是最简单、最有效的方法时,应用程序员可以使用工作区服务来简化代码的编写和维护。而不必将参数加入每个参数列表中。将值放入工作区并自动传播它是更简单的方法。对于只传递值而不对它们进行任何操作的方法尤为如此。不利用传播的信息的方法将忽略它。
工作区可以保留任何类型的信息并且可以保留任意数量的独立数据段(每个数据段存储为一个属性)。
使用管理控制台中的工作区服务来配置 UserWorkArea 分区。UserWorkArea 分区是在 JNDI 命名中提供的分区,名称为“java:comp/websphere/UserWorkArea”,如“访问 UserWorkArea 分区”一文中所示。UserWorkArea 分区是自动创建的缺省工作区分区(如果尚未被禁用)并且通过 JNDI 命名提供给所有用户使用。在管理控制台中“工作区服务”面板下对 UserWorkArea 分区所作的任何配置选项将不影响工作区分区服务或在其中定义的任何分区,反之亦然。例如,如果您选择“工作区服务”面板中的启用或禁用选项,就不会影响工作区分区服务或其中的任何分区。