失效链接处理 |
《JavaP2P技术内幕》PDF 下载
转载自:https://download.csdn.net/download/lvyuan1234/10026425
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1369598416.html
本书详细深入地介绍了P2P技术的基本概念、开发技术和应用实例。 全书分为4个部分23章。第一部分为前4章,简单介绍了P2P的基本概念、其Java开发平台的特性、P2P应用程序的类型以及相关产品。第二部分包括第5到10章,介绍了P2P系统的各个组成部分以及P2P应用程序的体系结构。第三部分是第11到17章,详细地阐述了使用Java开发P2P分布式系统的知识。最后5章是第四部分,介绍了5个具体的应用程序实例。本书附录介绍了J2EE的基本知识,有助于读者更好地了解开发平台。 本书适合Java专业程序员阅读,也可供准备学习和了解P2P计算技术的读者阅读参考。 相关截图: 图书目录: 第一部分 P2P简介 第1章 P2P的基本概念 3 1.1 P2P发展简史 3 1.2 P2P应用程序的用武之地 5 1.3 采用P2P的目的 5 1.3.1 分散化 6 1.3.2 费用和有效的资源分配 7 1.3.3 普及应用的计算和边缘服务 7 1.4 商业和实现方面的考虑 7 1.5 P2P体系结构 8 1.5.1 P2P如何形成动态网络 10 1.5.2 节点自制 13 1.5.3 支持混合模型 14 1.6 JXTA和XML 17 1.7 未来包含Web服务的P2P技术 18 总结 19 第2章 基于Java平台的P2P解决方案 20 2.1 Java的优势 20 2.1.1 平台独立性 20 2.1.2 Java的分布式特性 21 2.1.3 RMI 21 2.1.4 支持多线程 21 2.1.5 语言可靠性和成熟性 22 2.1.6 安全性 22 2.1.7 Java虚拟机 22 2.2 Java平台的特别优势 26 2.2.1 J2SE 26 2.2.2 J2EE 32 2.2.3 J2ME 33 2.2.4 XML 36 2.2.5 JAX包 36 2.3 对等性和独立性的优势 39 总结 39 第3章 P2P应用程序的类型 40 3.1 实时消息传输 40 3.1.1 技术 42 3.1.2 产品 44 3.2 管理和共享信息 47 3.2.1 技术 48 3.2.2 产品 50 3.3 协作 52 3.3.1 技术 52 3.3.2 产品 53 3.4 分布式服务 54 3.4.1 技术 54 3.4.2 分布式网络产品 56 总结 57 第4章 作为分布式计算环境框架的P2P 58 4.1 P2P系统的通用功能和特性 58 4.1.1 动态网络 58 4.1.2 节点的对等性和自治性 58 4.2 P2P系统与传统系统之间的比较 59 4.2.1 Usenet News 和 NNTP(网络新闻传输协议) 59 4.2.2 Email(电子邮件系统) 60 4.2.3 域名服务 61 4.3 Web服务概述 62 4.3.1 Web服务的定义 62 4.3.2 P2P的可用性 64 4.4 Jini和JavaSpaces概述 64 4.4.1 Jini的定义 64 4.4.2 JavaSpace定义 65 4.4.3 设备和服务 66 4.4.4 P2P的可用性 66 4.5 JXTA概述 67 4.5.1 JXTA的定义 67 4.5.2 标准化P2P协议 69 总结 69 第二部分 P2P系统和结构 第5章 系统话题探讨 73 5.1 网络传输 73 5.1.1 通信模型 73 5.1.2 资源(节点)搜索的含义 74 5.1.3 虚拟名字空间 75 5.1.4 路由 75 5.2 协议 77 5.3 元数据 78 5.4 数据格式 80 5.5 功能的集成和互操作性 81 5.5.1 J2EE和Java的消息传输服务 82 5.5.2 Web服务和SOAP-RP 83 5.5.3 CORBA和SCOAP 84 5.5.4 Jini和JavaSpaces 85 5.6 安全性 86 5.6.1 传统的安全性的需求 86 5.6.2 匿名性 86 5.6.3 信任关系 87 5.6.4 可审计性 87 5.7 性能 88 总结 88 第6章 P2P动态网络 90 6.1 对等节点和资源检索 90 6.1.1 路由器对等节点和动态网络 91 6.1.2 广播 91 6.1.3 选择性广播 95 6.1.4 适应性广播 96 6.2 身份标识和在线状态 97 6.3 虚拟网络空间 97 6.4 路由 101 6.4.1 覆盖网络 101 6.4.2 平面网络模型 102 6.4.3 层次型网络模型 103 6.5 性能 103 6.5.1 带宽的可扩展性 104 6.5.2 容错功能 105 总结 105 第7章 消息传输方式及协议 107 7.1 什么是协议 107 7.2 HTTP协议 107 7.3 SMTP协议 109 7.4 SOAP协议 109 7.5 BEEP协议 110 7.5.1 BEEP协议中使用的一些术语 110 7.5.2 BEEP协议的工作方式 111 7.5.3 使用BEEP协议的Java绑定 111 7.5.4 APEX协议 119 7.5.5 BEEP的未来 119 7.6 使用定制协议 120 总结 120 第8章 P2P数据格式和数据交换 121 8.1 目前使用的元数据表示形式 121 8.1.1 P2P的困境 122 8.1.2 元数据和信息 122 8.1.3 万维网、P2P和元数据 123 8.1.4 HTML和元数据 123 8.2 XML和元数据 123 8.2.1 语义Web--一种历史的观点 124 8.2.2 Dublin 核心元数据 126 8.2.3 其他标准 127 8.2.4 Java和RDF:HP的Jena工具集 127 8.3 P2P系统中的XML和元数据:应用程序 129 8.3.1 消息传输 129 8.3.2 数据内容管理 130 8.3.3 XML作为数据源 130 8.3.4 XML作为P2P应用程序的部署层模型 130 8.4 在P2P网络搜索对等节点资源 131 总结 132 第9章 集成和互操作性 133 9.1 从套接字到分布式对象:集成网络协议 133 9.2 确定集成对象:将什么东西集成在一起 135 9.2.1 现有系统(支配着这个世界的系统) 135 9.2.2 语法和语义方面的问题 135 9.3 通用的集成协议和系统 136 9.3.1 坚强的老战士:EDI协议 136 9.3.2 Java RMI 138 9.3.3 CORBA 140 9.3.4 DCOM 142 9.3.5 Web服务、基于XML的远程过程调用和SOAP 142 9.3.6 其他系统 144 总结 144 第10章 P2P的安全性 145 10.1 网络的安全性要求 145 10.2 网络身份标识 146 10.3 安全性基础 147 10.4 身份识别 152 10.4.1 地址 153 10.4.2 名字空间 153 10.4.3 中心化的身份识别和本地身份识别 153 10.4.4 身份标识中的其他信息 154 10.5 身份认证 154 10.5.1 密码 154 10.5.2 挑战-响应 155 10.5.3 可信任的第三方部件 155 10.5.4 令牌 156 10.5.5 数字化证书 156 10.6 授权 157 10.6.1 Kerberos 157 10.6.2 PKI 159 10.6.3 SAML 161 10.6.4 Microsoft .NET Passport 163 10.6.5 数据的完整性 166 10.6.6 保密性 166 10.6.7 不可否认性 167 10.7 私有性和匿名性 169 10.8 信任 171 10.9 可审计性 174 10.9.1 微小付费模型 174 10.9.2 声誉模型 174 10.10 为开发安全的P2P应用程序的软件 175 10.11 其他资源 186 总结 188 第三部分 使用Java开发分布式系统 第11章 Web服务 191 11.1 Web服务和Web服务对互操作性的促进作用 191 11.1.1 应用程序的集成 192 11.1.2 面向服务的应用程序结构 193 11.2 Web服务架构:互操作功能栈 193 11.2.1 Web服务的网络功能栈 194 11.2.2 描述功能栈 195 11.2.3 服务检索功能栈 195 11.3 Web服务涉及到的主要技术 196 11.3.1 XML 196 11.3.2 SOAP 206 11.3.3 WSDL 209 11.3.4 UDDI 215 总结 223 第12章 消息传输和针对XML的Java API 224 12.1 针对第三方服务的标准API 224 12.1.1 任何P2P应用程序架构的两个基本需求 224 12.1.2 Java处理P2P系统基本需求的方式 225 12.1.3 XML消息传输的概念 226 12.2 JMS和消息传输的重要性 226 12.2.1 消息传输的含义 226 12.2.2 消息传输和请求-响应通信方式的比较 226 12.2.3 消息传输客户端和消息传输提供者 227 12.2.4 作为P2P系统对等节点的消息传输客户端 227 12.2.5 P2P应用程序消息传输提供者扮演的角色 227 12.2.6 面向消息的中间件(Message-Oriented Middleware,MOM) 228 12.2.7 Java消息传输服务 228 12.2.8 使用JMS开发应用程序 229 12.2.9 一个基于JMS的消息传输应用程序 230 12.3 用于XML文档解析的Java API 238 12.3.1 使用JAXP和DOM编辑SOAP请求消息 239 12.3.2 使用JAXP和SAX经过简单API处理SOAP响应消息 243 12.3.3 JAXP中的XSLT 249 12.4 XML和Java提供的用于绑定XML的API 251 12.5 使用JAXM控制XML消息的结构 255 12.5.1 JAXM作为一个简单的SOAP客户端 256 12.5.2 使用JAXM编辑SOAP消息的消息头 260 12.5.3 使用JAXM消息传输提供者和概要文件 261 总结 263 第13章 使用注册簿 265 13.1 用于P2P应用程序的XML注册簿 265 13.2 UDDI 266 13.3 使用Java编辑UDDI消息请求 276 13.4 ebXML(针对电子商务的XML) 280 13.5 针对XML注册簿的Java API 295 13.6 访问Web服务 301 总结 302 第14章 Jini和JavaSpace 303 14.1 获得Jini 303 14.2 标准化接口 303 14.3 HTTP服务器和协议 304 14.4 远程方法调用 304 14.4.1 RMI注册簿 306 14.4.2 单点广播和能自启动的服务 306 14.4.3 在P2P应用程序中RMI扮演的角色 311 14.5 查询和检索 311 14.5.1 理解服务检索的管理机制 312 14.5.2 基于多点广播的消息传输和基于单点广播的消息传输 313 14.5.3 Jini查询服务 315 14.5.4 Jini中的服务检索和绑定 317 14.6 Jini服务 326 14.6.1 检索和查询服务 326 14.6.2 重新确定租借时间服务 326 14.6.3 事件邮箱服务 327 14.6.4 支持P2P事务 327 14.6.5 支持P2P通信(JavaSpace,Java空间) 328 总结 331 第15章 P2P Jini和JavaSpace 333 15.1 边缘服务 333 15.1.1 分布式通信 334 15.1.2 永久通信通道 343 15.1.3 JavaSpace实时消息实例 346 15.1.4 集合节点 353 15.2 自愈合网络 353 15.3 智能软件代理 355 15.3.1 简单软件代理应用程序框架 355 15.3.2 移动代理 356 总结 357 第16章 JXTA和XML 358 16.1 网络的虚拟化 358 16.1.1 JXTA身份标识、信任状以及身份标识和信任状的公告信息 361 16.1.2 转发(Relay) 362 16.1.3 端点(Endpoint) 364 16.1.4 管道的重要性 364 16.2 JXTA协议 365 16.2.1 对等节点解析器协议 366 16.2.2 端点路由协议 368 16.2.3 对等节点检索协议 369 16.2.4 集合对等节点协议 370 16.2.5 管道绑定协议 371 16.2.6 对等节点信息协议 372 16.2.7 对等节点组和对等节点成员身份协议 372 16.2.8 JXTA服务 375 16.2.9 对等节点组服务 376 16.2.10 JXTA模块 377 16.3 JXTA J2SE API 379 16.4 第一个JXTA应用程序 379 16.5 JXTA素数检索应用程序 381 16.5.1 JXTA应用程序的设计 383 16.5.2 消息定义 384 16.5.3 服务的定义和检索 385 16.5.4 服务的实现 385 16.5.5 创建和发布公告信息 387 16.5.6 处理从InputPipe对象中传输来的消息 391 16.5.7 素数检索应用程序的客户端 392 总结 400 第17章 JXTA Shell 401 17.1 为什么要使用Shell 401 17.2 启动和使用Shell 403 17.2.1 使用man命令 403 17.2.2 JXTA Shell程序和Unix shell之间的差别 404 17.2.3 环境变量 404 17.3 通过Shell与远程对等节点进行交互 409 17.4 Shell程序的扩展 412 17.5 连接Shell命令 418 总结 419 第四部分 P2P应用程序示例 第18章 构建个人化入口应用程序 423 18.1 个人化入口的基本概念 423 18.2 信息内容管理 424 18.3 个人化的信息空间 425 18.4 共享信息 427 18.5 信息发布 427 18.6 个人化入口的设计 428 18.6.1 个人化入口的功能 429 18.6.2 设计个人化入口应用程序的类 430 18.7 应用程序代码 431 18.7.1 资源租用 433 18.7.2 服务检索 441 18.8 运行应用程序实例 443 18.8.1 配置 443 18.8.2 启动服务 443 总结 446 第19章 P2P控制器 447 19.1 P2P控制器 447 19.1.1 对等节点域的形成 447 19.1.2 对等节点的在线状态 447 19.1.3 监控 447 19.2 应用程序的设计 448 19.2.1 应用程序的实现细节 449 19.2.2 P2P控制器应用程序功能示例 450 19.2.3 P2P控制器应用程序的目的 452 19.2.4 P2P控制器应用程序的使用场景 453 19.2.5 类设计 453 19.3 代码细节 454 19.3.1 P2PDashboard类的实现细节 454 19.3.2 PeerDiscovery类的实现细节 471 19.3.3 GroupDiscovery.java类的实现细节 475 19.3.4 SortedListModel类的实现细节 480 总结 482 第20章 在P2P应用程序中使用SOAP 483 20.1 将Web服务和P2P结合在一起将给我们带来什么 483 20.1.1 Web服务使用的模型 483 20.1.2 目前Web服务模型中采用的客户端-服务器通信模式 484 20.1.3 P2P消息传输模型 484 20.2 P2P Web服务 485 20.2.1 P2P体系结构上的SOAP应用程序 485 20.2.2 基于P2P网络基础之上的SOAP应用程序的使用场景 487 20.2.3 基于P2P网络基础之上的SOAP应用程序中包含的类 488 20.2.4 如何使用基于P2P网络基础之上的SOAP应用程序 502 20.3 推荐的一些改进方案 504 20.3.1 对UDDI的支持 504 20.3.2 统计调用请求和实现CRM解决方案 504 总结 505 第21章 P2P游戏 506 21.1 P2P游戏应用程序 506 21.1.1 对等节点域的形成 506 21.1.2 应用程序中的路由和消息传输 506 21.2 应用程序的设计 506 21.2.1 应用程序细节 507 21.2.2 游戏应用程序的适用场景 513 21.2.3 类设计 513 21.3 应用程序代码细节 514 总结 531 第22章 远程学习系统 532 22.1 远程学习系统 532 22.1.1 应用程序的目的 532 22.1.2 对等节点域的形成 532 22.2 应用程序的设计 532 22.2.1 应用程序细节 533 22.2.2 应用程序的使用场景 536 22.2.3 类设计 536 22.2.4 具体细节 536 22.3 代码细节 536 22.3.1 Student类的实现细节 536 22.3.2 Teacher类的实现细节 544 22.3.3 Agent类的实现细节 550 22.3.4 AgentFactory类的实现细节 554 总结 555 第23章 P2P的未来发展方向 556 23.1 P2P设备 556 23.2 语义和Ontology 557 23.2.1 资源描述框架 557 23.2.2 Ontology 559 23.3 CC/PP 562 23.4 WSIL 564 23.5 Web服务的互操作性 565 23.6 Grid计算 565 23.7 智能化软件代理 567 23.7.1 软件代理 568 23.7.2 安全性、身份标识和完整性 568 23.7.3 软件代理的通信 568 23.8 P2P技术全家福 569 附 录 附录 J2EE概述 575 |