监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
P2P借贷管理系统

当前位置:工程项目OA系统 > 金融OA管理系统 > 软件产品 > P2P借贷管理系统

对P2P应用程序开发框架的研究

申请免费试用、咨询电话:400-8352-114

  1概述

  P2P应用程序以一种分布的方式管理和组织位于互联网边缘的各种资源。位于互联网边缘的通常都是一些联网的普通PC。在传统的C/S网络模式下,普通PC作为客户端,通过向位于Intemet中的各种服务器发送请求来完成一些任务。相反在P2P模式下,普通PC直接与互联网中成千上万台计算机相连,实现信息和数据的共享。因为与用户计算机相连的各种计算机资源的联网状态是不稳定的,所以P2P协议被设计为可以在不稳定的联网和动态的 地址的情况下实现网络操作的一种通讯规则。

  P2P应用程序的开发要比C/s应用程序的开发复杂一些。在P2P系统中,所有的计算机(节点)都运行相同的程序。开发P2P应用程序要解决如下一些问题:

  (1)联通性:如何找到和连接其他的P2P节点,这些节点通常不具有固定IP;(2)消息路由:消息如何从一个节点路由到另一个节点,源节点与目标节点之间互相都不知道对方的位置;(3)搜索:如何从网络节点中找到需要的信息;(4)安全:在这方面存在很多的问题,包括节点如何信任其它节点等。

  本文将会针对开发P2P应用程序的相关问题提出一个简单的P2P应用程序开发框架。

  2 P2P应用程序开发框架基本结构

  该P2P应用程序开发框架的基本结构如图1所示,在该图中也演示了网络节点之间相互通讯的全部过程。

  在节点中运行的P2P应用程序向用户提供了一个界面,并且运行了一个用于监听从其它节点发来的连接请求的主循环。用户可以单击节点A图形界面中的一个按钮(比如搜索按钮),与该按钮相关的程序就会向节点B发出“Query“消息,请求与节点B建立连接。节点B的主循环检测到节点A发出的连接请求后,会启动一个单独的线程来处理这个请求。一旦节点A与节点B建立了连接,节点A就会向节点B发送包含了真正要处理数据的消息,节点B中的相应线程就会接收消息并向节点A发出回复,然后关闭与节点A的连接,再根据节点A发送给自己的消息类型,调用相应的消息处理函数处理该消息。处理完消息中包含的数据之后,节点B会主动连接节点A,并向节点A发出“Query Response”的消息。

  3核心模块

  上述P2P节点之间的数据通讯功能是基于一个简单的开发框架实现的,该框架中包括除用户界面之外的两个重要的功能模块。

  3.1节点模块

  节点模块管理着网络节点的全部操作功能。该模块包含一个用于监听连接请求和启动消息处理线程的主循环。借助该框架进行P2P应用开发的程序员可以在节点模块中注册新的消息处理句柄(函数或方法),该模块中的主循环会根据节点接收到的消息类型分配相应的消息处理句柄进行消息的处理。一个网络节点启动初始化时会提供一个监听连接请求的端口,一个IP地址以及一个节点标识符。

  节点模块也维护着一个已知节点列表,该列表的大小是有限制的,节点可以通过标识符或者在列表中的顺序位置来访问这些已知节点。

  除了存储各种不同类型消息的处理句柄之外,节点模块还存储了程序员编写的用来决定如何路由消息的函数。节点模块也能以固定间隔允许固定的操作程序。

  3.2节点连接模块

  节点连接模块封装了用于连接其它节点的套接字。该框架使用TCP/IP协议在节点之间进行通讯。节点连接模块提供了可以让程序员非常容易发送和接收消息的各种方法,这些方法保证了消息的编码格式的正确。另外,节点连接模块也可以侦测到P2P数据传输过程中出现的各种错误。

  该框架中定义的消息包含一个8字节长度的消息头,该消息头中有4个字节用来存放消息的类型标识,另外4字节用来存放一个表示消息中数据长度的整数。4字节的消息类型标识可以被看作是字符串。因此,程序员可以用自定义的长度为4-T-节的字符串来标识各种不同的消息类型。当节点中的主循环接收到消息后,它就会根据消息类型将消息分配给正确的处理句柄。消息句柄是一个可以接收节点连接模块对象引用和消息类型的函数,句柄可以根据消息类型被注册。目前,该框架被设计为一个消息仅对应一个句柄对象的1:1模式。当节点模块接收到一个连接请求时,它就会建立一个节点连接模块对象,该对象读取其它节点发来的消息类型,启动一个线程处理消息中的数据,当消息句柄完成它的任务后,节点连接自动关闭。

  4结语

  P2P应用程序的开发难度较大,借助于框架技术可以大大简化开发过程,提高开发效率。本文提出的这个简单的开发框架对P2P应用程序的开发起到了一定的改进作用。

发布:2007-03-11 10:28    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
相关文章:
软件产品
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询