在j/xfs kernel,有一个重要的接口ISpecificDeviceManager。在JxfsDeviceManager需要维护local和remote的device service列表,那么local或者remote的信息通过何种途径或者方式能够得到呢?这就就需要用到我说的重要接口ISpecificDeviceManager.
首先看一下ISpecificDeviceManager的声明:
Ok,我们能够看到ISpecificDeviceManager同时继承了IConfigServer,IDynamicServer, ISupervisor。也就是说ISpecificDeviceManager的子类必须有server side的功能。
为了程序的灵活性,ISpecificDeviceManager的子类并没有在程序中写死,而是采用了配置文件指定,这个也是通常的方法。假如经常接触j/xfs,应该可以看到类似于com.jxfs.forum.communication.rmi.SpecificDeviceManagerRMI,MelangeDemoWS,2006,localhost之类的参数。SpecificDeviceManagerRMI就是ISpecificDeviceManager的一个implement class.那么假如我不想用SpecificDeviceManagerRMI,而是仅仅想local invoke使用本地的设备,ok,很简单,你只需要把SpecificDeviceManagerRMI改成SpecificDeviceManagerLOCAL就可以了。更有一个很绝的的子类,但是我也是认为最好用的子类,就是所有的serverside都用一个jvm。在j/xfs的标准实现FDI中,每次启动都跳出三个dos窗口,确实很烦人,把这些变为一个jvm实现是一个好的主意。
ISpecificDeviceManager所有的子类都是通过singleton来实现。这也很好理解,所有的sever side,包括config server,dymantic server,supervisor server,在某一个具体的client实现里面,都只要存在一个instance就够了。
首先看一下ISpecificDeviceManager的声明:
- public interface ISpecificDeviceManager extends IConfigServer, IDynamicServer, ISupervisor
为了程序的灵活性,ISpecificDeviceManager的子类并没有在程序中写死,而是采用了配置文件指定,这个也是通常的方法。假如经常接触j/xfs,应该可以看到类似于com.jxfs.forum.communication.rmi.SpecificDeviceManagerRMI,MelangeDemoWS,2006,localhost之类的参数。SpecificDeviceManagerRMI就是ISpecificDeviceManager的一个implement class.那么假如我不想用SpecificDeviceManagerRMI,而是仅仅想local invoke使用本地的设备,ok,很简单,你只需要把SpecificDeviceManagerRMI改成SpecificDeviceManagerLOCAL就可以了。更有一个很绝的的子类,但是我也是认为最好用的子类,就是所有的serverside都用一个jvm。在j/xfs的标准实现FDI中,每次启动都跳出三个dos窗口,确实很烦人,把这些变为一个jvm实现是一个好的主意。
ISpecificDeviceManager所有的子类都是通过singleton来实现。这也很好理解,所有的sever side,包括config server,dymantic server,supervisor server,在某一个具体的client实现里面,都只要存在一个instance就够了。