Eurasia 项目介绍
沈崴
wileishn@gmail.com
从幻灯片开始说起 ...
Eurasia 简史
- Eurasia 的 JavaScript 框架是 NJF, 2000 年开始开发。
- 2002 年 NJF 第三版被认为是 "幻灯片制作工具" 示例
- 2006 年 Eurasia2 以 BSD 协议开放, 整合 NJF 1.3, 是第七版
- 2008 年 Eurasia3 以 BSD 协议连续放出 3 个 Alpha 版本, 对应的是 NJF 1.6, 是第八版
- 2008 年 Eurasia3 的数据库模块 Missile DB 开始成熟并逐步发布
Eurasia2 与 NJF (一)
Eurasia2 体系结构
- 服务器端, CherryPy2 + ZConfig + SkinEngine
- 页面及模板, NJF 1.3 (njf/ecw)
- 数据库及索引, HTTP 远程调用 (Aisarue) + Plone
Eurasia2 与 NJF (二)
NJF 与 Eurasia2 历史沿革
- 199x-2002 NJF(MF1-3/4) 客户端组件、CGI、SQL
2002-2003 Conflagration (TCP Socket - Zope HTTP)
- 2003-2006 NJF(MF5-7) 客户端模板(面向对象、面向组件)+客户端组件、JSON(AJAX)
2004-2006 Eurasia1、2(分别基于和 Plone、CherryPy), ZODB
- 2007 NJF(MF8) 客户端模板(透明封装、不推荐使用组件)、Comet/Pushlet
2007-2008 Eurasia3、Missile DB(高性能智能数据库)
Eurasia3 (Genhiskhan) 体系结构
- Eurasia3
- NJF 1.6
- Missile DB
为什么会有 Eurasia3 这个轮子
问题的提出
- Web IM、网游
- 用全双工通信代替 AJAX 来建立复杂的 Web UI
为什么会有 Eurasia3 这个轮子
传统框架难以和不可能实现的
- 长连接
- 同时维持巨量长连接数目
- 巨量的线程数目, 线程间通信, 临界资源无锁访问
Eurasia3 设计
- Eurasia3 是使用 Stackless 的 Web 框架
- Stackless 化 Python 标准库
- socket2、sleep
- 增强型 urlopen
- Fastcgi
Missle DB, 从 shelve2 开始
- shelve2 与 shelve, dbm 诸如此类
- dbm、对象数据库、外部索引与 SQL 数据库
- shelve2 还可以如何设计
为什么有 Missile DB 这个轮子
- 从 AI 应用、CMS 到高性能智能数据库
- Stackless 化对象数据库
其他话题
- Genhiskhan 与 Plone/Zope3
- 我们更多有趣的自由软件项目
谢谢观赏!