| |
|
|
Lunar 系统结构 |
| |
| 什么是Lunar ? |
- Lunar是北京大学网络与分布式实验室P2P小组正在集中精力开发的一个软件项目。我们可以从三个层面上进行理解。
- 首先,Lunar是一组可以复用的,专门为P2P与分布式计算环境而设计的软件模块。
- 其次,Lunar包括在这些可以复用的软件模块上实现的一系列的P2P应用:文件共享系统(Maze、eMule),分布式海量信息存储系统(iBackup、OceanStore)等等。
- 最后,Lunar将成为一个P2P系统的实验环境,我们在现有软件模块和P2P系统的基础上,实验各种新的技术与功能。
|
| |
| Lunar的系统结构 |
- Lunar系统分为三个层面:机制层、服务层与应用层。
- 这三层分别负责完成一个P2P系统中所需要解决的不同问题,完成不同的功能:
- 机制层所包含的软件模块主要负责对操作系统提供的各种机制,以及各种具体的实现细节进行封装。向上层的应用提供抽象的接口与具体的跨平台的实现。比如,在机制层面我们会封装操作系统提供的多线程机制 (Multithreading)、网络通信机制(Networking)、同步异步磁盘IO机制(SPIO)以及一个通用的log模块(logging),等等。
- 服务层的软件模块在机制层软件模块基础上构建起来。它们提供的是P2P以及分布式系统中所需要的各种通用的服务。比如:消息传递服务(Courier),重叠网络(Overlay)与分布式哈希表(DHT)服务,通用数据传输服务(Transengine)。
- 应用层包含若干个P2P的应用。这些应用构建于机制层与服务层提供的各种模块之上。应用层所需要主要考虑的问题是应用实现的具体逻辑,而不需要考虑具体功能细节的实现,也不需要重复实现P2P、分布式系统中的常用功能。
|
| |
| 设计与开发目标 |
- 采用各种先进技术:Lunar是一个研发型项目,我们会尽可能的采用最新最酷的技术。
- 高度复用:同一个功能点,我们只实现一次。
- 可扩展:Lunar是一个开放的结构,在她之上,应该能够实现很多新的功能。
- 高效:每一个模块,我们将首先从设计上,然后从实现上进行效率的考虑。
- 可移植:机制层面的模块负责为服务层与实现层屏蔽各种操作系统与编程环境之间的区别。
- 仔细实现:我们会遵从严格的编码规范,确保代码结构合理,逻辑清晰,易于维护。
|
| |
| 当前状态 |
- 一些模块已经基本成型了,正在测试使用中。
- 另外一些仍然在紧张而又持续的开发中。
|
| |
| 联系我们 |
Lunar的开发团队充满活力与热情,我们期待着你的加入: |