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