利用Lotus Connections API製作桌面應用
作為 IBM Lotus™ Connections 1.0.1 的重大更新之一,開發人員可以利用該產品提供的輕量級 API 與已有的 Web 系統輕鬆實現資料整合。而本文將介紹如何利用這些 API,並藉助 Adobe™AIR® 技術,製作一個可以脫離瀏覽器,甚至在沒有聯網的情況下依然可管理 Lotus Connections Dogear 資料的桌面程式。對於已經部署或正準備部署 Lotus Connections 的使用者,閱讀這篇文章將更快熟悉其 API,並瞭解如何製作基於 Web 或桌面的應用以提高工作效率。
Lotus Connections 是 IBM 率先推出的面向企業,實現互動協作的通用軟體。它包含五個部分:
表 1. Lotus Connections 五大模組
模組名(英文) | 模組名(中文) | 簡介 |
---|---|---|
Profiles | 個人檔案 | 通過這個模組可以快速檢索企業內個人資訊,比如查詢具有某種技能的員工,或者瞭解某人所在的部門組成。 |
Activities | 活動 | 個人或者團體可以通過該工具對專案和日常工作進行更好的計劃,資訊收集,組織和跟蹤。 |
Blogs | 部落格 | 個人或者團體的線上日誌,提供一個平臺來發布和共享觀點,促進交流。 |
Communities | 社群 | 具有共同興趣的一群人,或某個專案的相關人員。可以通過它來共享資訊,實現互動。 |
Dogear | 網上書籤 | 企業中每個員工可以通過它與他人共享有用的網址和備註說明。 |
通過這五個互相關聯的模組,員工可以更有效地進行互動。更重要的是,員工通過這樣一個平臺,可以實現資訊的交流,共享和積累,逐漸形成企業內部的知識庫平臺。這五個模組都向外提供了 API,使用者可以直接使用這些介面或者通過一定的再開發將 Lotus Connections 資料整合到其他資訊系統,如企業門戶 (Portal) 和客戶關係管理系統 (CRM) 等。關於 Lotus Connections 產品更詳細的介紹,請參見本文最後的 參考資源。
雖然 Lotus Connections 提供的程式設計介面以 ATOM、JavaScript. 等 Web 技術為主,但隨著技術的進步,Web 應用和桌面應用的界限已經逐漸模糊。通過藉助一些第三方的開放包(如 AIR),或瀏覽器外掛(如 Google Gears),我們完全可以把 Lotus Connections 的功能移植到桌面作業系統。使用者不再需要瀏覽器,甚至可以在沒有聯網的情況下依然可以使用部分功能。本文即將介紹的就是利用 Adobe Integrated Runtime(簡稱 AIR)技術,用 Flash 指令碼語言 重寫部分 Lotus Connections Dogear 的使用者介面,使之同時支援線上和離線,並能充分利用作業系統功能來提升使用者體驗。
下圖是本人制作的一個功能相對完整的 Dogear 本地應用程式。相比 Lotus Connections Dogear 的網頁版本,它的主要優點為 :
- 約 800KB 的安裝程式,可以脫離瀏覽器直接執行。可最小化到系統托盤區並設定為開機啟動。
- 只有在第一次執行該程式時才需要輸入伺服器地址和使用者名稱密碼。之後這些資訊會儲存到本地資料庫。每次開啟程式就自動登入到伺服器。
- 在聯機情況下,該程式可以從遠端 Lotus Connections 伺服器上抓取最新 Dogear 書籤,或執行各種查詢,且速度大幅優於網頁版 Dogear。
- 在不能訪問 Connections 伺服器的情況下,依然可以查詢或瀏覽曾訪問過的書籤列表,並支援複雜查詢。
- 支援從瀏覽器或 Word 等文書處理軟體拖拽網址到本程式,以儲存到遠端 Dogear 伺服器。
圖 1. 一個相對完整的 Dogear 本地應用程式
但限於篇幅,本文主要介紹如何使用 AIR 來抓取 Lotus Connections 上的資料並加以呈現。其他功能模組,諸如如何實現本地資料管理,只會做簡單的 API 介紹。如果有機會以後會在單獨教程中詳細介紹。在本文最後的 下載區 提供了這個簡化版 Dogear 本地程式的示例程式碼。讀者可以把這個包匯入 Flex Builder IDE。
關於 AIR 的介紹和基於 AJAX 的開發方式,大家請參見“使用 Adobe AIR 和 Dojo 開發基於 Ajax 的 Mashup 應用”。與那篇文章不同的是,本文使用的程式語言是 Flex 和 Flash ActionScript。它們的優點是更容易地繪製使用者介面和進行物件導向指令碼程式設計。下面就讓我們很快地製作第一個基於 Flex 的 AIR 程式。
Flex3 SDK 是開放原始碼軟體,可以在 這裡 免費下載。而 Flex Builder 3 是 Adobe 推出的基於 Eclipse 的商業快速開發工具。目前它的 Beta 2 版本可以免費使用。
成功安裝完 Flex Builder 3 後,重啟 Eclipse 並切換到 "Flex Development" 檢視。然後新建一個專案。
圖 2. 在 Flex Builder3 中新建一個 Flex 專案
輸入專案名 ( 如 dw.dogear.sample),並修改 Application type( 應用型別 ) 為 Desktop application(桌面應用)。
圖 3. 輸入專案名並設定為桌面應用型別
點選下一步,輸入主程式檔名,如 DogAir.xml。並設定一個應用標識(Application ID)如 com.ibm.dw.sample.dogair。
圖 4. 設定應用標識和程式入口
按預設設定完成該新建專案的嚮導後 Flex Builder 會自動生成應用程式的程式碼框架。
清單 1. 由 Flex Builder 自動生成的新 AIR 程式程式碼
讓我們稍微做一下改動來體驗一下 Flex Builder 強大的視覺化編輯功能 (WYSIWYG)。我們可以不敲任何程式碼就可以設計使用者介面。點選 Design 按鈕,切換到設計模式。從左下角的元件列表中拖一個 HSlider 元件到中心區域。
圖 5. Flex Builder3 視覺化程式設計
然後按工具欄上的 Run 按鈕測試一下。
圖 6. 單擊工具欄上的 Run 按鈕,選擇 Run As > Adobe AIR Application
我們會看到如下一個新視窗。點選中間的拉桿可以設定 1 到 100 的任意數字。由於 HTML 並不自帶這樣的控制元件,用 JavaScript. 實現類似的效果通常要花比較多的時間精力。
圖 7. 一個簡單的基於 Flex 的 AIR 本地程式
現在我們把這個小程式打包生成可以分發的安裝程式。單擊工作列上的 Export AIR 按鈕。
圖 8. 單擊 Flex 檢視中的 Export 按鈕
按預設設定完成該向導。然後雙擊新生成的 DogAIR.air,會出現如下的安裝介面。
圖 9. AIR 程式安裝介面
執行的結果和前面的圖 7一樣。
在建立完第一個基於 Flex 的 AIR 程式後,下面讓我們開始來呼叫 Lotus Connections API 完善功能。
與傳統的面向特定程式語言 ( 如 Java 或 C++) 的 API 不同, Lotus Connections 提供了開放的,基於 Web 標準的輕量級程式設計介面。使用 HTTP GET 方法訪問特定網址,便可獲取對應模組的資料。返回結果的格式可以是主流瀏覽器都支援的 JSON(JavaScript. Object Notation),或是更通用的 ATOM XML 格式。以 Dogear 模組為例,假設伺服器地址為 http://dogear.tap.ibm.com,訪問 http://dogear.tap.ibm.com/atom?lang=en 會得到一個 ATOM Feed。其大致結構為 :
圖 10. Lotus Connections Dogear 模組 ATOM 格式的書籤列表
下面讓我們用 Flex 程式碼來訪問該 API 並把內容展現出來。大致做法為拖拽一個按鈕控制元件,再加入一個 VBox 容器來顯示書籤列表。最後新增一些指令碼(ActionScript3)來處理邏輯。
清單 2. 一個簡單的讀取 Dogear 資料的 AIR 程式
上面的程式碼中,我們使用
如圖 6所示,測試一下這個程式。
圖 11. 例項程式的初始介面
點選 Test 按鈕,可發起 HTTP 請求到 Lotus Connections Dogear 伺服器。如果連線順利,稍等片刻便可以看到最新的 Dogear 書籤。
圖 12. 例項程式顯示遠端伺服器上最新的書籤列表
至此,我們這個簡單的例項程式就完成了,程式碼不超過 30 行。您可以在本文 附件區 下載到該完整程式碼,並匯入 Eclipse 進一步修改。
限於篇幅,本文無法對其他功能的實現做詳細介紹。下面僅列出主要的實現方式 :
既然 AIR 的主旨是讓 Web 開發者輕鬆地把應用移植到桌面作業系統,本地檔案的訪問自然是必備的功能。事實上 AIR 不但提供了完整的 API 來讀寫本地檔案,另外還自帶了一個 SQLite 小型關聯式資料庫,以方便開發人員儲存和查詢結構化資料。以下的 ER 圖顯示了一個 Dogear 本地程式可能需要的 2 張資料庫表。
圖 13. 本地 Dogear 程式的資料庫設計 ER 圖
使用者可以選擇一次性地從伺服器抓取所有自己儲存的書籤,或在每次從伺服器請求資料時,把書籤也儲存在本地資料庫中。具體實現來說,在程式剛啟動的時候,可以使用 AIR 的 API 來建立一個本地資料庫檔案或獲取已存在的檔案地址,然後新建一個 flash.data.SQLConnection 物件。與 JDBC API 類似,執行 SQL 查詢和修改可以通過 flash.data.SQLStatement 物件來進行。不過值得注意的是,在 AIR 中所有 SQL 操作都是非同步執行的。這意味著您需要大量使用事件回撥方法來處理介面更新或巢狀查詢。
Lotus Connections 不但提供了資料的讀取方法,還提供了對應的更刪改查 API。使用 HTTP POST 方式給特定 URL 提交一個 ATOM XML 可以進行資料的新增。類似的,使用 HTTP PUT 方法來對書籤進行更新,而用 HTTP DELETE 方法來刪除特定書籤。我們可以設計一個資料輸入對話方塊,讓使用者輸入網址,書籤名和備註。然後使用 HTTPService 物件來提交請求
清單 3. 使用 POST 方式新增新書籤
https=new HTTPService() https.method="POST" https.contentType="application/atom+xml" https.url="http://dogear.tap.ibm.com/api/app?email=zhongqj@cn.ibm.com" var bookmark:XML=... https.send(bookmark) |
為了進一步提升使用者體驗,我們還可以利用 AIR 的 API 來實現介面半透明,最小到系統托盤區,始終顯示置前,或捕獲網路連線變化來動態切換程式狀態等。詳情請參考 AIR 的 API 文件和相關教程。
本文演示瞭如何使用 Adobe AIR 相關工具和 API 獲取 Lotus Connections 資料,並繪製介面。企業使用者可以根據各自的需求,製作類似的擴充套件應用,如基於 JSR168 的 Portlet,或應用於 Mac 作業系統的 Dashboard Widget。總之,IBM Lotus Connections 提供了簡單而足夠豐富的應用程式程式設計介面,為整合客戶 IT 系統創造了巨大便利。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-404371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用 Lotus Connections API 製作桌面應用API
- Lotus C API Extension Manager 應用舉例API
- 部署 IBM Lotus Connections: 維護IBM
- 使用pyqt5製作簡單計分桌面應用QT
- 在 IBM Lotus Connections 2.5 中定製電子郵件通知IBM
- 利用”視窗小部件“擴充套件 Lotus Symphony 應用套件
- IBM Lotus Connections 2.5 評審指南IBM
- 使用新的 IBM Lotus Connections 2.5 遷移工具IBM
- 在 Lotus Notes 複合應用中整合 Lotus Symphony
- 部署 IBM Lotus Connections: 規劃和架構考慮IBM架構
- 為Lotus Connections Home page實現和部署Google小部件Go
- 為 Lotus Connections Home page 實現和部署 Google 小部件Go
- 實用 | 利用 aardio 配合 Python 快速開發桌面應用Python
- electron+vue製作桌面應用--自定義標題欄最大/小化和關閉Vue
- 純CSS製作單頁Web應用CSSWeb
- [譯] 用 API 請求製作賞心悅目的 UXAPIUX
- IBM Lotus Connections:使用社會計算提高生產力IBM
- 用python+flask自己製作api(教程附原始碼)PythonFlaskAPI原始碼
- QuartzCode for Mac(動畫開發製作應用)quartzMac動畫
- 應用噪聲函式製作火焰特效函式特效
- PageMaker排版製作精彩應用技巧集錦
- 製作tld檔案及應用詳解
- 利用JavaScript製作星星金字塔JavaScript
- 圖片馬製作及利用方式
- Evans Data Corp:調查結果顯示多數應用開發者利用業餘時間製作他們的應用
- 桌面寵物 ① 透過python製作屬於自己的桌面寵物Python
- 在 Kerberos 環境中為 IBM Lotus Connections 配置單點登入ROSIBM
- 桌面 Flutter 應用程式Flutter
- 用Dockerfile製作一個java應用映象,ubuntu基礎篇DockerJavaUbuntu
- 遊戲修改器製作教程四:用API讀寫記憶體遊戲API記憶體
- 【Python】Python利用有道翻譯開發API應用示例PythonAPI
- Lotus 複製技術淺述
- 如何使用Akka Serverless製作電子商務應用?Server
- vue2+muse-ui+hbuilder製作仿原生應用VueUI
- java 應用程式 安裝程式製作(要帶jvm)JavaJVM
- Linux作業系統檔案系統的桌面應用(轉)Linux作業系統
- 如何製作 Flutter 應用?只需四步,輕鬆上手!Flutter
- [譯] 為你的 React 應用製作 SVG 圖示庫ReactSVG