JXTA v2.5技术手册:第二章 JXTA架构

第二章  JXTA™ 架构

概览
Jxta软件架构分为三层,如下图所示:

 核心JXTA
JXTA的核心封装了P2P网络所需要的最少的和最必要的基本功能。包括(It includes building blocks to enable key mechanisms for P2P applications, including discovery, communication transports (including firewall and NAT traversal), the creation of peers and peer groups, and associated security primitives.)
 服务层
服务层包括了一些对于P2P网络来说并不是绝对必须的服务,但这些网络服务对P2P环境来说是常常需要的。例如搜索服务以及索引,目录服务,存储系统,文件共享,分布式文件系统,资源聚合与租用(resource aggregation and renting),协议转换,认证,PKI((Public Key Infrastructure)服务。
 应用层
应用层包含了一些综合服务,诸如P2P即时消息,文档与资源共享,娱乐内容的管理与传递,P2P邮件系统,分布式拍卖系统,以及更多。
服务层与应用层之间的界限并不是严格的。一个用户的应用可以被看做成另一个用户的服务。整个系统被设计成模块化的,它允许开发人员根据自己需要选取一些有用的服务。
JXTA组件
JXTA网络是有一系列相互联结的节点(或者说是对等点peer)组成的。一个对等点可以是任何类型的设备,诸如传感器、超级计算机,甚至是一个虚拟进程。一个单一物理设备上可以运行多个对等点,但也有可能多个物理设备相互协作对外表现的是一个对等点。对等点之间可以通过任何合适的网络协议连接,包括TCP/IP,HTTP,Bluetooth,GSM等等。
每一个对等点都提供一些对其它对等点有用的“服务”或者“资源”。“服务”就是互相协作的一段代码程序,它可以包括数据库,认证系统,聊天服务器,或者其它任何可以网络联结的程序。JXTA网络中最常见的有两种服务:对等点服务(peer services)和组服务(group services)。对等点服务是有一个对等点提供的服务。组服务是整个组通过联合方式或者协作方式提供的服务。一般情况下,每一个对等点服务的实例相对于其它实例是独立的。一个实例的行为不会影响其它示例。每一个组服务的实例常常会参与到一个公共的实例中(Each Peer group service instance is normally a participant in a common instance)。一个实例的行为很可能会影响到所有的实例。
所有的JXTA对等点都实现了很少一部分所必须的核心服务(core services),并且一般情况下还提供一些额外的标准服务(standard services)。每一个组都包含了部分它所定义的一些组服务,每一个加入到这个组的对等点都必须应用这些服务(Each Peer Group includes as part of it's definition the set of Group services which each peer must run in order to participate in the peer group)。
一个对等点的资源一般情况下是它所控释的(或者拥有的,甚至仅仅是一个拷贝的)静态的(非交互的)内容。这些资源可以是文件(files),文档(documents),媒体资源,通告(advertisements),索引(indexes),而且也可以包括现实世界中的诸如开关,传感器和打印机之类的资源。
JXTA对等点用一个叫做通告(advertisement)的XML文档来发布它们的服务和资源,通过这个通告,其它对等点就可以找到这些服务和资源,也可以决定如何同这些服务联结和交互。
对等点自行加入一个点组(peer group)(Peers can organize themselves into peer groups)。点组是一个松散的概念,是任意一组为了一个共同目的、提供一组相同服务的对等点的组合。点组中两个关键的概念就是“共同的服务”和“共同的目的”。连个点组可能包含相同的服务,例如一个聊天应用,但是它们的目的不同,例如一个是政治话题的聊天,一个是体育话题的聊天。一个点组可以以开发者或者部署者的任意选择为基础(Peer groups can be defined on almost any basis that developers or deployers choose)。如前例那个点组可以被重新定义为提供多个聊天话题的聊天应用,但是处于一个组织内,例如某一个大学的院系。当你要定义一个点组时候,你首先要搞清楚两个问题:“这个点组都要包含哪些对等点呢?”和“这些对等点应该相互协作着提供哪些应用或者服务呢?”
JXTA对等点之间通过Socket和管道传送消息。JXTA Socket向应用程序之间的通信提供可靠的、双向的连接。管道服务之间通信所使用的一种异步的、单向的消息传送机制。消息。消息只是一个简单的XML文档,这个文档包含了路由、digest,和认证信息(Messages are simple XML documents whose envelope contains routing, digest, and credential information)。管道是同一个指定的终端(endpoint)绑定的,例如一个TCP端口和相应的IP地址。
这些方面的知识将在下来的章节中详细讨论。
JXTA架构中的关键方面
JXTA架构中有四个方面使得其有别于其它分布式网络模型:
 使用XML文档(通告)来描述网络资源
 抽象出管道、对等点,不依赖于像DNS那样的中心命名/地址认证(Abstraction of pipes to peers, and peers to endpoints, without reliance upon a central naming/ addressing authority such as DNS)。
 统一的对等点地址机制(ID)
 基于DHT(Distributed Hash Table)的非集中式资源搜索机制(A decentralized search infrastructure based on Distributed Hash Table (DHT) for resource indexing)。


你可能感兴趣的:(应用服务器,socket,网络应用,网络协议,体育)