Pob技术概况
Pob 是一款基于 Xeam engine 内核开发的php+mysql/pgsql等数据库平台的论坛系统。 和目前国内其它论坛产品的立足点不一样。我们更侧重于用平衡的眼光来设计一个程序, 而不是一个片面地强调速度或者功能而忽略其他元素的产品,也不是一个过分强调技术而忽略人性化体验的产品...... 在这方面,我们可谓是深思熟虑,在分析和总结了众多的论坛系统之后,我们决定建立一个有着全新构架的论坛系统——这就是 Power Object Board,并将我们对论坛系统的理解和经验完整地注入和释放到 Pob,让她健壮和丰满起来。
稳固的架构体系
设计稳固的架构一直是我们极力追求的核心目标。Pob 把系统底层最常用的功能封装成 API 函数和类(这是来自 Xeam engine 的贡献),从数据抽象层、核心逻辑层、扩展类库(包括 FSO 存取、Session 认证、编译型Cache 等),一直到应用层和表现逻辑层(编译型模板),建立一个符合MVC思想的全新系统构架。使用这种构架的一个非常明显的优点是极大地提高减少程序冗余的代码,同时也赋予了 Pob 在大型商业应用中出色的负载能力。
卓越的数据结构
数据结构是决定系统执行效率与扩展性的关键因素之一。由于我们对数据库字段特性的深刻掌握与了解,Pob 力争做到每个字段都物尽其用,避免了字段长度浪费等现象;各个表之间关连关系经过充分的检。保证了Pob 数据结构的最优化设。更重要的是Pob 实现了论坛分组功能,对于大型论坛而言,成百上千万数据存在同一个表内是一件可怕的事情。因为MySQL本身的局限,当某个数据表(通常是Post表)增大到某个界限,将极大地降低它的读取性能。从此这种噩梦结束了。
同时由于灵活的数据库抽象层,可以实现不同数据库平台的快速布置与转移,极大地提高了 Pob 在各种数据库环境的适应能力。
领先的缓存机制
负载能力跟执行效率从来就是水火不相容,是一对矛盾的对立面,而缓存机制就是一个解决这对矛盾公认的有效途径。以往的缓存机制大多分为两种:一种是牺牲论坛的个性化元素(如自定义风格),生成静态的页面;一种则是牺牲模板的纯粹性,生成可编译型模板,但增加了修改模板的难度(尤以Smarty为登锋造极)。
Xeam engine 着眼于实现分离显示逻辑和事务逻辑,而不是简单地从源码中分离 html 文件(如果是这样,phpLib已经做得非常出色),并保证 html 模板的纯粹。Pob 得益这方面的优势,既实现了缓解高负载能力带来的效率下降的矛盾,也成功克服了个性化需求(如自定义风格)带来的门槛问题。
强大的容错功能
由于各种各样的环境因素,系统出错并不少见。面对页面上一堆的错误代码,只能向经验丰富的技术人员求助,甚至重装系统,论坛系统同样如此。
针对这一问题,我们又一次走在了同行的前面,建立了强大的容错机制。一般的错误,都可以通过分析 Pob 的错误日志的记录,找到解决问题的方法。而且您不用担心日志文件的安全问题,Pob 的日志都经过特殊的加密。即使被盜取,别人也无法通过日志获得可以利用的信息。
严密的安全控制
作为 Xeam engine 研究的方向之一,Pob 的 session 处理机制十分全面而严密,并在数据结构上为实现严密的权限控制奠定了坚实的基础。这将有效地降低 session 欺骗等破坏行为带来的安全隐患。我们不仅对Pob的每一个变量做了比较细致的检查,对每一个可能出现得问题进行认真的核实。还邀请了业内著名安全人士作为青马技术团队的外围成员,对 Pob 进行了很全面的安全检测。
尽管谁也无法做出其系统绝对安全的承诺,但我们的努力必将有效地降低您的论坛受到的安全威胁,盜取 Pob 的管理权限进而危害主机安全将是一个不小的挑战。这是对您的信任有力的保障。
(注:Pob论坛是开源论坛,定于2004年4月15日发布,谢谢关注)