名稱 | 價格(萬) | 用戶數量(位) |
quickr 知識管理 | 8 | |
聯系我們:010-82345488 |
簡介
IBM Lotus Quickr 是一款基于 Web 2.0 的團隊協作軟件,旨在通過變換文檔共享的方式來實現更加高效的團隊協作。IBM Lotus Quickr 團隊協作軟件能夠改變工作組開展項目協作或共享日常內容(如文檔和富媒體)的方式。Lotus Quickr 文檔共享軟件為企業防火墻內外的團隊提供支持,使之可以更輕松地與客戶、合作伙伴、供應商團隊或內部部門和項目團隊協作。
作為新一代的文檔協作平臺,Lotus Quickr V8.0 提供了功能強大的文檔管理功能,同時為用戶提供了一套完備的文檔管理 API 以供用戶定制和擴展,即 Content Public API,其中包括 WebService API 和 REST API 兩部分。本文將介紹文檔 Content Public API 相關的數據模型、操作接口,并舉例介紹 Content Public API 的使用方法。
一、 Content Public API 在 Quickr 整套產品中的位置
Content Public API 是 Quickr 整套產品對外提供的統一文檔操作接口。Lotus Quickr 8.0 包含兩套產品,Quickr for Domino 和 Quickr for Portal;盡管兩者功能類似,但是實現卻有很大不同。Quickr for Domino 后臺是基于 Domino Server,其文檔存儲是基于 NSF 的文檔結構。Quickr for Portal 后臺是基于 IBM WebSphere Portal Server,其文檔存儲是基于 JSR-170(JCR:Java Content Repository)的文檔模型。然而,盡管兩者有著迥然不同的存儲模型,但是兩套產品對外有著共同的文檔操作接口,就是 Content Public API。共同的文檔操作接口為用戶屏蔽了數據存儲的異構性,實現了對異構數據的透明訪問。除了 Quickr for Domino 和 Quickr for Portal 之外,FileNet 也將會集成到 Quickr 套件的后續版本中來,同樣 FileNet 也將遵循 Content Public API 的定義,對外提供統一的文檔操作接口。
作為 Lotus Quickr 的一大特性,Lotus Quickr 為客戶提供了一系列功能強大的連接器(Connectors),這些連接器可以以插件的形式被安裝到常用的桌面應用軟件中,實現基于這些軟件對 Quickr 服務器的中文檔數據的訪問。Quickr 8.0 中提供了如下的連接器:Explorer 連接器,Sametime 連接器,Notes 連接器,Office 連接器;用戶可以在 Quickr 首頁中找到并下載連接器的安裝套件。值得一提的是,這些連接器是基于 Quickr 的 Content Public API 來實現的,用戶通過使用連接器就可以體會 Public API 提供的強大功能。除此之外,IBM 也鼓勵商業伙伴或者客戶基于 Content Public API 來開發更多的,與自己應用相集成的 Connector。在 Quickr 8.0 中,Content Public API 包括 WebService API 和 REST API 兩部分,后續版本將提供更多的 API。
圖 1. Content Public API 在 Quickr 中的位置
二、 Content Public API 的兩大部分
Lotus Quickr 8.0 提供了兩部分的 Content Public API:WebService API 和 REST API。兩套 API 是相互獨立的兩部分,兩套 API 都是基于目前流行的開放標準。
WebService 基于 W3 定義的 WSDL(WebService Definition Language)和 SOAP(Simple Object Access Protocol)協議。Quickr WebService 對外提供一個 WSDL 文檔。WSDL 是一個自描述的 XML 文檔,它包含了對 Quickr WebService 模型、接口、操作、消息的定義和描述?;?WSDL,客戶可以自己產生不同語言(VB, C#, C++, Java 等)的客戶端來使用 Quickr WebService。Quickr 8.0 WebService 的 WSDL 文檔中定義了三個服務(Port Types): ContentService,DocumentService,LibraryService。
相對于 WebService,REST 是一個更加輕量級的架構。相比面向活動的 SOAP,資源是 REST 關注的中心。REST 適合于面向資源的服務,服務提供方維護一組資源,并公開一組基本操作來執行以下任務:檢索資源、修改資源、創建新資源、刪除資源。Quickr 中的 REST API 是完全遵循開放的 IETF 標準(ATOM)。ATOM 是用于發布條目(單個主題或者項)和提要(主題或項的集合)的文檔格式標準。ATOM 文檔的傳輸采用的開發的協議 APP(Atom Publish Protocol)。Quickr REST Service 提供針對 Quickr 中的文檔庫、文檔、文件夾、視圖、草稿、評論等資源的 Feed 發布、獲取、添加、修改、刪除等操作。
1、 WebService 數據模型
盡管 Quickr 的兩套產品 Quickr for Portal 和 Quickr for Domino 后臺分別基于不同的數據存儲格式,但歸根到底 Quickr Content Public API 是以 Quickr for Portal 的 JCR 結構為基礎建立起來的。下面是 Content Public API 數據模型在 Quickr for Portal 中的數據模型關系。
圖 2. Quickr for Portal 文檔存儲結構
?JSR170(JCR,Java Content Repository)被用來作為與所有內容對象交互的主要 API。
?IBM Content Model 定義了內容管理應用程序共有的元素(elements)、元數據(metadata)、集成模式(aggression patterns),Content Model 中的條目被分為兩類 base type 和 metadata type。
?IBM Collaborative Content Model 則擴展了 IBM Content Model 來表示 Quickr 中文檔管理相關的行為。Collaborative Model 中定義的規則,并沒有限制或修改 Content Model 中的行為。
文檔庫(ClbLibrary)是 Content API 數據模型的基礎。在 Quickr for Portal 中,文檔庫是一個樹形結構。對應到 JCR 存儲結構,一個文檔庫就是 JCR 樹中的一棵子樹。一個文檔庫包含三個固定容器:文檔模板容器(ClbDocumentTemplateContainer),屬性表容器(ClbPropertySheetTypeContainer),文檔類型容器(ClbDocumentTypeContainer)。這些容器分別用來存儲文檔庫中文件可能會使用到的文檔模板、屬性表、文檔類型。容器中的元素為文檔庫一級共享的元素,同時文檔庫也可以共享父文檔庫容器中的元素。
文檔庫下面,用戶就可以按照自己的需求建立文件和文件夾。在這里,文檔有草稿的概念,草稿(ClbDraft)和文檔(ClbDocument)是一對一的關系,一個文檔有且僅有一個草稿。當文檔被檢出時候,對應的文檔被鎖住,產生草稿。當文檔被檢入時,草稿中的修改被合并到文檔中,草稿被刪除。
圖 3. Quickr for Portal 文檔庫結構
2、 REST Feed文檔格式
由于 REST 是面向資源的服務。Quickr 中的所有文檔庫、文檔、草稿、文件夾、視圖、評論都將對應一個唯一的 URL 來唯一標示。所有的資源的相關操作,都是通過這個唯一標識的 URL 來進行的。同時對于每個資源也存在另外一個 URL,它的作用是用來將該資源以 Feed 的形式發布出來以供 Feeds Reader 訂閱。
圖 4. REST Feed 文檔格式
而 Quickr Server 上的所有文檔庫的 Feed URL 可以通過 http://主機名/dm/atom/introspection 獲得。
三、 Content Public API 功能介紹
從功能來講,Quickr WebService API 和 Quickr REST API 兩部分功能有所交叉,但側重點不同。下表列出了兩套 API 針對數據對象分別可以進行哪些 CRUD(Create、Retrieve、Update、Delete)操作。
圖 5. Content Public API 功能對比
通過 Content API 可以獲得文檔庫的根節點,以及訪問用戶具有權限的所有文檔庫的列表。在 Quickr 中,是基于角色來進行用戶管理的,其中預定義了四種基本的角色:管理者、編輯者、參與者、閱讀者;除此之外,用戶也可以根據自己的應用需求自定義角色。如果用戶對某文檔庫擁有讀(Read)以上的權限,那么就可以通過 API 能獲得該文檔庫。關于用戶的登陸,目前 Quickr 8.0 for Domino 已經支持匿名訪問,而 Quickr 8.0 for Portal 還不支持匿名訪問,將會在后續版本支持。
在 Quickr 的圖形界面上有空間(Place)的概念,用戶可以根據需求來創建團隊空間。一個空間下面有一個或者多個文檔庫。然而在 API 的角度,空間是透明的。API 可以獲得文檔庫,卻無法知道該文檔庫屬于那個空間。
APP 協議是一個輕量級的 Web 資源發布和編輯協議。由于 APP 協議本身更關注于文檔的同步,所以 REST API 對文檔附件的操作更有優勢。由于性能的原因,WebService API 不支持對文檔附件的上傳和下載操作。目前對文檔附件的操作只能通過 REST API 實現,由于底層 ClbComment 也是作為附件來存儲的,所以對 Comment 的操作也只能通過 REST API 實現。
相比文檔附件的操作,WebService 對文檔相關屬性的操作更加完備。對于 REST API 而言,屬性對象 ClbDocumentType、ClbPropertySheetType、ClbViewTemplate 是透明的。對屬性對象的操作只能通過 WebService API 來實現。