知识大全 构建 P2P 应用程序框架

Posted 资源

篇首语:讨厌自己明明不甘平凡,却又不好好努力。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 构建 P2P 应用程序框架相关的知识,希望对你有一定的参考价值。

对等计算实践之:构建 P2P 应用程序框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   安装与执行  让我们从安装的具体细节开始 在可以运行 P P 应用程序之前 必须下载两个 jar 文件 p p jar 和 spp jar 以及配置文件 app properties p p jar 文件包含 P P 应用程序自身的类文件 spp jar 文件包含 P P 应用程序所使用的消息传递库的类文件 下载这些文件之后 将这两个 jar 文件和包含配置文件的目录添加到类路径中 如果您正在运行 Windows 并且已经将这两个 jar 文件和配置文件下载到 c:\\p p 目录 则可以如下设置类路径     set CLASSPATH=c:\\p p\\p p jar;c:\\p p\\spp jar;c:\\p p    如果您正在运行 Linux Solaris 或某个合适的 UNIX 变体 并且已经将这两个 jar 文件和配置文件下载到 /home/foo/p p 目录 可如下设置类路径     export CLASSPATH=/home/foo/p p/p p jar:/home/foo/p p/spp jar:/home/foo/p p    (以上命令假设您正在运行 BASH 来作为命令 shell) 将如何在其它流行的 shell(如 CSH)中设置环境变量的问题留给您自己去考虑 一旦设置了类路径 就可以用以下命令启动应用程序     java etcee app ki Main    P P 应用程序将显示一个别致的信息性标志和一个命令提示来欢迎您 最后再说一遍 我的 P P 应用程序一定需要 Java 平台      配置文件  前几步将启动并运行 P P 应用程序 但是 在能够很好地使用它之前 必须编辑配置文件 配置文件定义 P P 应用程序使用的端口 控制的资源以及识别的伙伴 清单 演示了每一个定义     清单 示例配置文件     etcee app ki port=    etcee app ki resource name=share   etcee app ki resource class= etcee app ki resource file FileResource   etcee app ki resource arg =/home/foo/share   etcee app ki resource name=tmp   etcee app ki resource class= etcee app ki resource file FileResource   etcee app ki resource arg =/tmp   etcee app ki peer =bass:    etcee app ki peer =salmon:    etcee app ki peer =perch:    etcee app ki peer =guppy:     第一部分由一行组成 它定义了 P P 应用程序用来接收其它伙伴连接请求的端口 最好不要改变这行 第二部分定义 P P 应用程序管理的资源 您可能需要编辑这部分 清单 定义了两个资源 share 和 tmp 从应用程序的观点来看 资源只是实现 Resource 接口的类的实例 我们将马上讲到这点 资源定义一般具有以下基本形式     清单 资源定义     etcee app ki resource name=    etcee app ki resource class=    etcee app ki resource arg =    etcee app ki resource arg =         name 是给予资源的名称 它用来生成人们可读的输出 class 是 Java 类的名称 可以将其初始化以创建资源 P P 应用程序在运行期间动态装入这个类并将其初始化 在其初始化期间 argN 自变量被传递到新初始化的资源 例如 FileResource 类使用这些自变量定义目录来为文件提供服务 您需要编辑目录自变量以指向您机器上的某个目录     第三部分定义 P P 应用程序识别的伙伴 每一行都包含伙伴的名称(或 IP 地址)和伙伴的端口 用这种方式定义伙伴显然不是可伸缩的解决方案 在以后的文章中 我们将看一种更好的解决方案      代码  除了对等通信采用的 SPP(简单点到点)包之外 P P 应用程序不包含很多类 首先 我们先仔细查看最重要的类 最后再看一下 SPP 通信包      资源  P P 应用程序的主要组件是资源 事实上 P P 应用程序只是允许和控制对已发布资源的远程访问 资源可以是任何可寻址的事物 文件系统 电话簿 数据库和目录 每个资源都管理零个或多个适当类型的项(文件系统资源管理文件 电话簿资源管理电话号码) 为演示如何实现资源 我创建了一个简单的文件系统资源类 FileResource 如清单 所示 这个文件系统资源管理零个或多个文件     清单 Resource 接口    public  interface Resource    // The initialize() method requires a TTDFactory instance  // (which the factory uses to create the TTDItem instances  // it returns from the select() method in response to a  // query) and a String array (which contains the arguments  // from the configuration file)   public  void  initialize(TTDFactory ttdfactory String [] arstring)  throws ResourceException;  // The select() method requires a String instance that  // defines the selection criteria  It returns an array  // of TTDItems one for each entry that matches the  // selection criteria   public  TTDItem []  select(String stringSelector)  throws ResourceException;    Resource 接口定义资源的结构和行为 该接口还定义允许在资源上执行的操作 目前的操作列表包括 select 以后的实现还将包括 insert 和 delete     select() 方法将一个定义选择标准的字符串作为参数 该方法返回有关所有与选择标准匹配的资源项的信息 按照当前 P P 应用程序中的文件系统资源所实现的方式 选择字符串既可以直接命名一项 也可以包含通配符 * 当直接命名一项时 资源将返回该项本身及其相关元数据 当包含通配符时 资源将只返回它所管理的所有项的元数据 还可以使用更复杂的查询语言 但这不在本文讨论范围之内     Shell    Shell 类只是一个允许用户浏览本地和远程资源的非常简单的命令行用户接口 它使用 PeerReference ResourceReference 和 ItemReference 类向其它伙伴发送请求 但它本身只分析用户输入 为了从请求伙伴的角度更好地理解通信的工作原理 让我们看一下清单 中显示的 PeerReference 类的一部分     因为我在上个月详细描述了通过 shell 进行的用户交互 所以不再这里重述 在第一次启动 P P 应用程序之前 请停一下并使自己重新熟悉它的操作      通信  P P 所做的全部就是伙伴间的通信 那些对原始得令人难以置信的 Napster 协议熟悉的读者应该理解我为什么选择高级一些的协议 我在这里只略微提及 SPP 在以后有关 P P 通信的文章中 我将详细描述它     SPP 将消息建模成一个帧序列 如图 所示    >   >    消息中的每一帧都有一个类型(由 MIME 类型指明)和一个主体 帧中的头是可选的 它用来描述主体中的数据 构成完整而正确的消息的序列中的帧类型取决于应用程序 一般来讲 一条消息由一个控制帧和其后零个或多个数据帧组成 数据帧包含控制帧所引用的数据 我们的 P P 应用程序就采用这种模式     消息出现在请求/响应对中 一个伙伴向另一个伙伴发送请求 那个伙伴再将响应发回给第一个伙伴 请求消息中的控制帧是命令帧 它包含命令和为该命令提供的所有参数 如果有任何其它帧存在 则这些帧包含命令帧所需的信息 响应消息中的控制帧是状态帧 它包含状态(正确或错误) 如果有任何其它帧存在 则这些帧包含状态帧所引用的信息 如果向文件系统资源发出请求 则该信息将包含所选文件的内容 多帧消息模式的优点在于 它允许在通信应用程序之间交换内容丰富的消息 SPP 在很多方面都类似于 BXXP    完全理解了框架之后 我们就可以继续讨论 P P 安全性了 我们还将在 P P 应用程序中集成安全性支持 cha138/Article/program/Java/gj/201311/27492

相关参考

构建保险业竞争力分析的理论框架

构建保险业竞争力分析的理论框架构建保险业竞争力分析的理论框架,由核心竞争力、基础竞争力和环境竞争力三大要素组成保险业竞争力分析理论框架,即“三位一体”的保险业竞争力结构体系。对于发展中国家或成长性国家

知识大全 构建Java并发模型框架

多线程开发的捷径:构建Java并发模型框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 构建Java并发模型框架

构建Java并发模型框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的多线程特性为构

《会计行业人才发展规划(2021—2025年)》中,关于构建会计人才能力框架,下列说法正确的有( )

会计改革与发展十四五规划题目:《会计行业人才发展规划(2021—2025年)》中,关于构建会计人才能力框架,下列说法正确的有()A、推动各级各类会计人才适应会计工作数字化转型B、强化对会计信息化能力的

“十四五”期间,将针对不同层次、不同类别的会计人才分别构建能力框架,以能力框架为指引,制定会计人员继续教育( ),突出继续教育的针对性、差异化、实用性和前瞻性。

会计改革与发展十四五规划题目:“十四五”期间,将针对不同层次、不同类别的会计人才分别构建能力框架,以能力框架为指引,制定会计人员继续教育(),突出继续教育的针对性、差异化、实用

知识大全 基于JXTA的P2P应用开发

基于JXTA的P2P应用开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PP计算被Intel

保险业竞争力指标体系构建

保险业竞争力指标体系构建根据保险业竞争力分析的理论框架,我们在进行保险业竞争力指标体系设置时将保险业竞争力指标分为核心竞争力、基础竞争力和环境竞争力3个子体系,同时充分考虑到指标数据获取的可能性等,设

知识大全 构建多线程Java应用程序

构建多线程Java应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大多数服务端应用程序都

知识大全 使用OracleText构建全文搜索应用程序

使用OracleText构建全文搜索应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Or

知识大全 C#中构建多线程应用程序

C#中构建多线程应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  随着双核四核等多