今天看完了RMI,然后动手写了一个例子.
简单说,实现RMI还是挺麻烦的.
需要一个服务器,一个客户端.
服务器上至少需要写两份代码,一份是注册服务,一份是实现服务,
举个例子:
我想从一台机器访问服务器,执行一个查询火车时刻的操作,那么
,这个服务就是"查询火车时刻".
注册服务,就是完成向服务器声明"我有查询火车时刻的功能 "这一步;
实现服务就是完成具体的火车时刻查询工作.
客户端上至少要写一个代码,来调用服务器上的服务.
举个例子, 用户在本地登陆后,就可以查询火车时刻了,客户端就完成 "调用服务器"和"显示".
服务器和客户端的连接,至少需要4个条件.
1. 客户端和服务器端,对"服务"有一个公共的接口, 举个例子, 就是一个java interface: String getTrainInfo(Date date, String trainID)
2. 服务端要有一个操作系统级别的服务一直运行着,这个就是java的 工具'rmiregistry'. 这个服务停了就没戏了.
3. 在服务器端,要先启动rmiRegistry,再运行前面说得 "注册服务"程序显式注册到服务上.
4. 服务器和客户端必须有一个xxx_stub.class.的文件, 这个文件是用java工具rmic根据"实现服务"的类生成的 ,生成之后,要同时部署到客户端和服务器端.
主要是第4点, 不够灵活, 实际部署时问题很多,所以RMI一直没有推广开来作为CS /BS的框架.
但是RMI是JavaBean的远程模式的基础, 且看EJB怎么处理部署的问题了.
据说现在EJB已经不流行了, Spring和structs要替代他们. 不知道是真是假. 我个人感觉JSP+servlet满好的,
简单说,实现RMI还是挺麻烦的.
需要一个服务器,一个客户端.
服务器上至少需要写两份代码,一份是注册服务,一份是实现服务,
举个例子:
我想从一台机器访问服务器,执行一个查询火车时刻的操作,那么
注册服务,就是完成向服务器声明"我有查询火车时刻的功能
实现服务就是完成具体的火车时刻查询工作.
客户端上至少要写一个代码,来调用服务器上的服务.
举个例子, 用户在本地登陆后,就可以查询火车时刻了,客户端就完成
服务器和客户端的连接,至少需要4个条件.
1. 客户端和服务器端,对"服务"有一个公共的接口, 举个例子, 就是一个java interface: String getTrainInfo(Date date, String trainID)
2. 服务端要有一个操作系统级别的服务一直运行着,这个就是java的
3. 在服务器端,要先启动rmiRegistry,再运行前面说得
4. 服务器和客户端必须有一个xxx_stub.class.的文件, 这个文件是用java工具rmic根据"实现服务"的类生成的
主要是第4点, 不够灵活, 实际部署时问题很多,所以RMI一直没有推广开来作为CS
但是RMI是JavaBean的远程模式的基础, 且看EJB怎么处理部署的问题了.
据说现在EJB已经不流行了, Spring和structs要替代他们. 不知道是真是假. 我个人感觉JSP+servlet满好的,