读quartz源码有感一

本文记录了作者在阅读Quartz源码时对RMI(远程方法调用)的理解。通过学习孙卫琴老师的《Java网络编程精解》,了解到QuartzScheduler如何基于Remote接口实现远程对象。RMI允许类扩展Remote接口并在远程接口的方法中抛出RemoteException,使得这些方法可被远程调用。远程对象需要实现UniCastRemoteObject以在客户端和服务器之间创建存根和骨架。文中还简述了RMI的基本原理和一个简单的RMI应用示例。
摘要由CSDN通过智能技术生成

今天是2018年10月22号,已经陆陆续续看了quartz源码好几天,初步对quartz的框架有了些了解,但是脑子里完全想不起来。

首先看到了QuartzScheduler继承RemoteQuartzScheduler继承Remote,即java.rmi.Remote

第一天

学习参考了孙卫琴老师的《Java网络编程精解》一书的RMI一章

RMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。任何远程对象都必须直接或间接实现此接口。只有在“远程接口”(扩展 java.rmi.Remote 的接口)中指定的这些方法才可远程使用。 

注意:extends了Remote接口的类或者其他接口中的方法若是声明抛出了RemoteException异常,则表明该方法可被客户端远程访问调用。 

同时,远程对象必须实现java.rmi.server.UniCastRemoteObject类,这样才能保证客户端访问获得远程对象时,该远程对象将会把自身的一个拷贝以Socket的形式传输给客户端,此时客户端所获得的这个拷贝称为“存根”,而服务器端本身已存在的远程对象则称之为“骨架”。其实此时的存根是客户端的一个代理,用于与服务器端的通信,而骨架也可认为是服务器端的一个代理,用于接收客户端的请求之后调用远程方法来响应客户端的请求。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值