当前位置:首页>管理咨询>对P2P应用程序开发框架的研究 查询:
     
对P2P应用程序开发框架的研究

  1概述

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

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

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

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

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

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

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

  3核心模块

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

  3.1节点模块

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

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

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

  3.2节点连接模块

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

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

  4结语

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


2015年该如何投资?7家P2P老总指点江山陆金所计葵生:中国P2P行业应该这样走向成熟
酸汤鱼店的P2P生意经P2P平台曲线进入千亿级资产证券化市场
P2P争议中野蛮成长 亟待规范成业界共识央行牵手PE同时入场网贷
P2P模式与微银行P2P自我救赎:告别资金池 开启马太效应元年
债权“大户”变身新平台股东 盛融在线重组自救马云谈互联网金融
P2P网贷业务存三大风险银行分食P2P“蛋糕” 贷款业务加速线上转移
网络金融让银行出一身冷汗网贷投资人如何从P2P保障模式看P2P网贷风险
宜信回应模式风险质疑:不触监管层底线P2P平台缺乏准入门槛 打破刚性兑付路途尚远
信息发布:广州名易软件有限公司 http://www.myidp.net
  • 名易软件销售服务
  • 名易软件销售服务
  • 名易软件技术服务

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