三、基础架构
首先要说明的是在 Jini中,呼叫远端 methods的方式,通常是采用RMI的技术 。例如,当client 找到适当的service 时,client可能会使用service端的服务,也就是远端呼叫(remote call),此时即可利用RMI 的技术来完成。(附注:当然,在 Jini中也可以选择不透过RMI,而直接写socket程式来完成远端呼叫。只是若利用RMI时,撰写程式会比较方便。)
我们已经知道 service provides 、clients与 service locators 之间的互动关系,接著就为您说明这三者间的实№运作情形,请参考图二。
|
|
|
Service locator的目的在於纪录与查询可用的服务资讯,而这种功能称做 "lookup service" ,因此其必须至少具备有lookup service的服务。此外,由於其底层网路通讯使用到了RMI 的机制,所以在 Service locator上还必须启动RMI daemon与HTTP daemon。而 HTTP daemon是用来提供做远程呼叫时,一种取得远端资料(如 Server_stub等)的途径。
由於我们是利用RMI 的机制提供服务让远端物件使用,所以Service provider所提供的 services必须继承至Remote类别,才能使用RMI功能。另外必须建立 (instantiate)一个 LookupLocator物件与一个 ServiceRegistrar 物件,以便向 service locator注册与使用其他服务。其中 LookupLocator物件是用来寻找特定的 service locator;而 ServiceRegistrar 物件则用来向 lookup service注册本service所提供的服务[4]。详细步骤请参考图三。
|
|
|
Client同样也必须建立一个 LookupLocator物件与一个 ServiceRegistrar 物件。而 ServiceRegistrar 物件则被用来向 Service provider 取得所 之服务。其过程示意图如图四及图五。
|
|
|
|
|
|