当前位置: 首页 > 专利查询>浙江大学专利>正文

基于Java的进程间异步通信的实现方法技术

技术编号:3545734 阅读:887 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及进程间通信技术领域,旨在提供一种基于Java的进程间异步通信的实现方法。该方法包括以下步骤:(1)通信服务进程的实现;(2)进程内通信服务进程实现;(3)消息的设计;(4)通信过程的实现。本发明专利技术采用了集中式的通信方式,并且在与上层应用的交互中引入了消息触发机制,对收到的消息由通信系统负责调用回调函数进行处理。同时,将消息封装成对象,利用Java的序列化机制直接传送对象,简化上层应用对消息的封装与解析;进程只和服务程序通信,进程间以服务程序作为中介交换信息;进程了解服务程序的位置,服务程序保留所有进程的信息。本发明专利技术中的方法适用于各种进程分布模型,不受迁移的影响。

【技术实现步骤摘要】

【技术保护点】
一种基于Java的进程间异步通信的实现方法,其特征在于,包括以下步骤:(1)通信服务进程的实现:通信服务进程是利用Java提供的多线程机制,维护三个核心数据结构:通信结构表、进程组索引表和发送线程实例表;通信服务进程包括六个 模块:进程注册模块、消息接收模块、消息分发模块、控制模块、通信结构类和消息发送模块;(2)进程内通信服务进程实现:进程内通信服务进程向通信进程的上层应用提供一个异步的消息触发通信界面,进程内通信服务进程由进程内通信服务模块实 现,它包括发送模块、接收模块、消息触发模块和消息处理模块;(3)消息的设计:消息由消息头和消息体组成,消息头包括消息的类型和进程的寻址信息,消息体包含用户数据;(4)通信过程:①进程内通信服务进程发送模块利用 Java提供的对象序列化机制,直接将以消息对象封装的消息发往网关;②通信服务进程注册模块由端口监听线程和访问控制线程构成,端口监听线程监听来自于通信进程的连接请求,每收到一个连接请求,启动一个访问控制线程,检查连接的合法性:如果口令 正确,在通信结构类中增加该连接对应的套接字,以及相应的对象输入和对象输出,并为该连接新建消息发送线程实例,将其写入消息分发模块维护的数据结构中,如果口令不正确,关闭该连接;③通信服务进程消息接收模块采用非阻塞方式轮询通信结构表中所有 的套接字,记录下有消息到达的套接字,依次从其中读取消息,每得到一条消息,通过消息分发器选择消息发送模块中合适的发送线程实例进行发送;④通信服务进程消息分发模块根据消息的组标识查找目的进程所在进程组的发送线程实例表,在发送线程实例表中 根据目的进程的组内标识查找该进程对应的发送线程实例树,将消息传给树上所有的叶子节点一一发送线程实例,由它们负责将消息发送到目的进程,发送线程实例树维护向同一个通信进程发送消息的所有的发送线程实例;⑤通信服务进程控制模块保证资源的及时 释放,检查发送线程实例树中发送线程的状态,如果已经死掉,释放指向该线程的句柄,关闭并删除相应的通信结构;⑥通信服务进程消息发送模块负责将消息发往目的进程,包括多个发送线程实例,发送线程维护一个私有的消息队列,用于保存等待发送的消息, 消息队列为空时线程处于阻塞状态,有消息需要发送时,消息分发模块会把消息写入消息队列并唤醒该线程;⑦进程内通信服务进程接收模块接...

【技术特征摘要】

【专利技术属性】
技术研发人员:胡威陈天洲谢斌杨扬
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1