一个用于 Python 的 CMIS API 库,第 1 部分: cmislib 简介
2010-05-04 00:00:00 来源:WEB开发网下一个原因跟应用程序开发人员和内容存储库供应商的采纳有关。开发人员可以观察 webinars 和博客帖子以及 Twitter 流量,但是直到他们自己动手和亲眼看到流量值,否则 CMIS 只不过是又一个被大肆宣扬的词汇。如果软件仍旧置于包装盒中出售,那么您可以想象包装盒上鲜艳的 “爆炸式” 图像,图像中的广告词大声疾呼:“马上使用 CMIS 吧!”对于那些寻求拨开这些夸张宣传的层层迷雾,看看 CMIS 到底能够为他们及其应用程序做些什么的人来说,Python — 清洁、高产、便于安装 — 似乎是最佳选择。cmislib API 向开发人员提供一种直观、面向对象、互操作的工作方法,使他们免受实现细节的困扰。希望开发人员能够到 CMIS 中去 “观光”,喜欢他们的所见所闻,然后将 CMIS 作为以内容为中心的自定义应用程序与富内容存储库进行互操作的一种标准方式使用,而不管客户端是使用 Python 还是其他语言构建。
如果仅有一两个供应商采用 CMIS,则上述全部目标将无法实现。因此,那些从某个标准获益的人竭尽所能推动供应商采用该标准肯定是有意义的。cmislib 发行版包含了一些单元测试,这只是作为一项最佳开发实践。这个测试套件对于确保测试功能不会随着这个 API 的发展而退化很有帮助,同时也是以一种重复的方式来检验互操作性的便捷方法。但是,真正 “炫酷” 的地方在于这些单元测试的作用是作为面向供应商的一个测试套件。IBM、Alfresco™、OpenText 和 Nuxeo 都利用 cmislib 来发现了它们的实现的问题。这并不局限于使用由社区构建的各种 CMIS 工具和客户端来验证它们的工作的 cmislib 供应商,这是非常好的事!
“所有对一个和一个对所有(all-for-one-and-one-for-all)” 是极好的动机,而且几乎不需要编写一行代码。每个开源项目都发端于某个开发人员想要挠的一处 “瘙痒”。在这里,这处 “瘙痒” 起源于 Optaros™ 开发的一个内联网项目,其目的是为客户提供 Django®(一个基于 Python 的 Web 应用程序开发框架)和 Alfresco(一个开源内容管理平台)之间的集成。这个项目开发之时,OASIS 还几乎没有 CMIS 这个概念,这个集成在服务器端依赖 Alfresco Web Scripts(一个用于将您自己的 RESTful API 滚动到 Alfresco 的框架)通过 HTTP 在基于 Django 的呈现层和 Alfresco 存储库之间来回移动 XML。集成效果很好,但这是特定于 Alfresco 的。重构 Django 集成以利用 CMIS 似乎是一个好主意。我们选择首先使用 cmislib 作为一个低级 Python API,而不是使集成特定于 Django。这样做的好处是:通过利用 cmislib,除 Django 外,其他 Python 项目(比如 Zope® 和 Plone®)以及自定义 Python 应用程序都能够更轻松地与 CMIS 存储库集成。
更多精彩
赞助商链接