对P2P应用程序开发框架的研究
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应用程序的开发起到了一定的改进作用。
- 1P2P借贷管理系统主要涉及“三个层次”和“一个疑问”
- 2基金业切勿“急功近利”
- 3投资人对P2P平台的期望
- 4互联网金融面临的几重风险
- 5P2P二级市场“胎动” 国家队或有意进入
- 6泛普P2P系统教您正确认知网贷 让网贷帮您积累财富
- 7P2P网贷监管:要创新也要慎重
- 8债权“大户”变身新平台股东 盛融在线重组自救
- 9助销流程、助贷流程、辅导上市流程、贷后管理流程
- 10十大贷款模型助你判断网贷平台未来发展趋势
- 11网络借贷面临多重风险
- 12P2P第三方交易平台推投资人全额补偿保障计划
- 13有关P2P监管的问题:预防跑路有三大难题
- 14央行指出互联网金融底线正进行调研
- 15P2P网络借贷监管建议和发展趋势
- 16五大特征让你分秒识别P2P网贷问题平台
- 17P2P借贷管理系统一个新生代互联网金融理财产品
- 18银联封杀令考验监管智慧
- 19网贷和传统投资对比
- 20P2P平台应把控好隐形成本 盲目或扰乱互联网金融局势
- 21国内股权众筹发展现状研究
- 22P2PP2P借贷管理行业视保险为“兵家下一个必争之地”
- 23P2P网贷对金融业发展的影响
- 24网上贷款条件有哪些?
- 25门户之父陈彤加盟小米 或帮雷军在P2P领域建立“门户”
- 26唯品会携程搜房网突破地域限制涉足小贷公司
- 27元旦过后银行借款优惠额度下调明显
- 28投资者如何选择安全的p2p网贷系统平台呢?
- 29未来P2P借贷管理系统平台对资本的依赖将加深吗?
- 30京东筹建P2P金融交易平台:已开始网罗人才
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼