深度剖析Lotus&Domino的移動辦公應(yīng)用
原創(chuàng)一、Lotus&Domino的現(xiàn)狀
目前國內(nèi)使用Lotus Domino平臺做為OA系統(tǒng)的政府和企業(yè)都是使用 OA比較長的,比較有經(jīng)驗的用戶。經(jīng)過了多年的應(yīng)用,OA系統(tǒng)已經(jīng)進入一個成熟穩(wěn)定期,需求上也相對穩(wěn)定,對每個新需求非常慎重,一般都擁有穩(wěn)定技術(shù)維護方案。
由于WEB技術(shù)的飛速發(fā)展,特別是進入WEB2.0以來使得各種固網(wǎng)信息系統(tǒng)都毫無懸念的采用了WEB技術(shù)進行了開發(fā)。在這當(dāng)中以JAVA、NET獲得了企業(yè)級應(yīng)用開發(fā)的主導(dǎo)地位,但是Lotus&Domino僅僅實現(xiàn)到瀏覽器的轉(zhuǎn)型,其本身并未進行較大的發(fā)展。政府、企業(yè)級辦公系統(tǒng)的功能需求比較單一,不同于業(yè)務(wù)系統(tǒng),這就造成了大量已經(jīng)使用中的Lotus&Domino辦公系統(tǒng)并沒有隨著技術(shù)發(fā)展而淘汰,相反它們都在很好的運行著,只是沒有更新而已,用戶在辦公上也確實沒有新的需求。
二、IBM的發(fā)展策略
這些年WEB技術(shù)的轟轟烈烈到html5的發(fā)展,作為Lotus&Domino的廠家卻決定了放棄這個辦公市場的著名品牌,根據(jù)IBM的說法是,由于IBM的品牌已經(jīng)足夠了,Lotus&Domino品牌已經(jīng)無需在單獨存在。同樣在技術(shù)發(fā)展上似乎IBM也在執(zhí)行這個政策,Lotus&Domino也沒有再進行投入和技術(shù)發(fā)展了。
即使是這樣的情況下,IBM依然還是發(fā)布了幾款和Lotus相關(guān)的更新產(chǎn)品,仿佛在給用戶暗示著產(chǎn)品研發(fā)在繼續(xù)。主要是Expeditor、Mobile Connect和EasySync® Pro三款軟件,它們能做什么哩?
首先:IBM Lotus Expeditor軟件是 IBM 的通用桌面客戶端整合框架。它幫助開發(fā)人員將各種客戶端和服務(wù)器應(yīng)用整合到混合或復(fù)合應(yīng)用中,以優(yōu)化員工加速業(yè)務(wù)流程所需的信息。使用它擴展您的 IBM Lotus 或 IBM WebSphere Portal應(yīng)用基礎(chǔ)架構(gòu)如 Microsoft 應(yīng)用程序。
IBM Lotus Mobile Connect 軟件是一個通信軟件平臺,為企業(yè)提供了一個移動虛擬私人網(wǎng)絡(luò)(virtual private network,VPN),此網(wǎng)絡(luò)將通過無線和有線網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都進行了加密處理。此軟件有助于您有效地將現(xiàn)有的即時消息傳遞和企業(yè)應(yīng)用擴展到移動工作者。
IBM Lotus® EasySync® Pro 軟件讓您可以在 IBM Lotus Notes 與受支持的市場領(lǐng)先的手持設(shè)備之間同步 IBM Lotus Notes® 電子郵件、日歷、任務(wù)、聯(lián)系人和日志信息。
#p#
三、移動辦公的需求
隨著移動終端設(shè)備的發(fā)展,企業(yè)移動信息化逐步走向前臺,移動應(yīng)用不再是個人應(yīng)用產(chǎn)品的專利,更多的企業(yè)已經(jīng)意識到移動化對于企業(yè)執(zhí)行效率的重要性。同樣對于Lotus&Domino的用戶首次有觸動,他們突然意識到現(xiàn)在的辦公需要延生到手機上,實現(xiàn)移動辦公。
在前一段介紹的IBM三個產(chǎn)品是其在移動方面的延生產(chǎn)品,但是其本質(zhì)是一款新的開發(fā)框架,其重心并不是為lotus老用戶實現(xiàn)移動化誕生的。IBM在移動化的體現(xiàn)主要在于郵件和通訊錄等標(biāo)準(zhǔn)化產(chǎn)品到移動的應(yīng)用,其并不能提供針對用戶已經(jīng)個性開發(fā)的公文流程和審批進行移動化。
老用戶的移動需求在于實現(xiàn)固有Lotus的公 文、流程能夠通過android、iPhone手機進行操作使用,用戶不希望再次再原有系統(tǒng)上進行二次開發(fā)、不希望影響原有的系統(tǒng)。這種前提下IBM的產(chǎn)品體系是無能為力的,IBM總是希望用戶升級和選購新產(chǎn)品進行開發(fā)應(yīng)用。
四、Lotus&Domino的技術(shù)線路
基于Notes的客戶端模式:
早期的Lotus(Notes 6/7)是純的C/S架構(gòu),其客戶端為Notes方式進行,每個用戶都有一個Notes id作為身份,然后進行登陸和操作數(shù)據(jù)庫。IBM提供了C++的開發(fā)API能夠訪問Notes數(shù)據(jù)庫,并進行訪問視圖、執(zhí)行代理的操作。
基于B/S的瀏覽器模式:
隨著WEB技術(shù)的發(fā)展,Lotus也跟著時代發(fā)展將其數(shù)據(jù)庫能夠以瀏覽器的形式進行訪問。憑借著其文檔數(shù)據(jù)庫的基礎(chǔ),伴隨著這個技術(shù)模式的快速改變使得Lotus能夠成為當(dāng)時辦公系統(tǒng)主要開發(fā)平臺。用戶可以通過瀏覽器使用辦公系統(tǒng),在這個技術(shù)中java script獲得較成功的應(yīng)用,Lotus在文檔處理中前端運用java script作為邏輯處理成為流程引擎的主要驅(qū)動方式。
我們在說說Lotus&Domino的流程引擎設(shè)計,本質(zhì)上由于Lotus&Domino是文檔型的數(shù)據(jù)庫,其只擅長于處理文檔,每一篇文檔就好比我們的紙面文件。當(dāng)用戶A發(fā)起文檔到下一個環(huán)節(jié),這在數(shù)據(jù)庫中就是在某個字段標(biāo)記了下一個環(huán)節(jié)的接收人名單,其實文檔并沒有流動,只是文檔標(biāo)記了當(dāng)前處理人和步驟。這樣模式的流程驅(qū)動相比現(xiàn)在其它系統(tǒng)要簡單的多。
#p#
五、移動化接入的技術(shù)要點
以上分析的兩種技術(shù)線路的都還存在著應(yīng)用,也都存在著移動化的需求,從技術(shù)我們該如何進行移動化接入哩?
要實現(xiàn)延生到手機上,首先要解決的是訪問通道問題,也就是能夠通過什么樣的形式訪問到數(shù)據(jù)。其次在此基礎(chǔ)上實現(xiàn)寫入數(shù)據(jù),才能實現(xiàn)流程的驅(qū)動。
基于Notes的客戶端模式:
基本上絕大多數(shù)的Notes的客戶端用戶都放棄了移動化的念頭,針對早期的Lotus(Notes 6/7)版本只提供了C++ API開發(fā)的模式,簡單來說要實現(xiàn)View / Document / Response 三個基本數(shù)據(jù)的查詢,同時還要提供視圖名或者文檔編號。
在這模式下實現(xiàn)數(shù)據(jù)接入則需要了解全部的文檔結(jié)構(gòu)、字段類型、字段數(shù)據(jù)存放格式,這就好比需要了解ERP系統(tǒng)的數(shù)據(jù)字典一樣。
這個技術(shù)要點主要在于首先通過C++ API實現(xiàn)數(shù)據(jù)的訪問和數(shù)據(jù)的寫入。C++開發(fā)技術(shù)上有一定難度,數(shù)據(jù)改寫完全靠二次分析具有極大的風(fēng)險。所以在這個模式下Notes的客戶端用戶一般都難以實現(xiàn)移動化。
基于B/S的瀏覽器模式:
現(xiàn)在普遍的Lotus都是基于瀏覽器模式進行訪問,這就表明了Domino服務(wù)器提供了HTTP標(biāo)準(zhǔn)協(xié)議的訪問通道。HTTP協(xié)議是瀏覽器和服務(wù)器交互的數(shù)據(jù)協(xié)議,是明文的形式進行數(shù)據(jù)交互。
從原理上來說遵循了HTTP協(xié)議則標(biāo)志著完成可以實現(xiàn)移動化的接入,且別太樂觀!
HTTP協(xié)議是非常復(fù)雜的,比如多域名授權(quán)、COOKIE機制、壓縮數(shù)據(jù)流傳輸、漢字編碼等等。
在這個模式下技術(shù)要點就是能夠?qū)崿F(xiàn)HTTP協(xié)議的模擬接入,根據(jù)MAStudio移動中間件廠家的經(jīng)驗,這其中主要涉及到5個重要的環(huán)節(jié):
- 登陸
- 文檔打開
- 附件下載
- 意見批示
- 流程驅(qū)動
這幾個點的操作具有代表意義,在HTTP協(xié)議上的表現(xiàn)形式各不相同。登陸部分一般都是以POST形式發(fā)送登陸信息進行身份驗證,登陸后才能獲得身份權(quán)限。一般都是通過names.nsf數(shù)據(jù)庫進行權(quán)限驗證,/names.nsf?Login,
如下是基于HTTP協(xié)議針對登陸部分的協(xié)議明文:
POST /names.nsf?Login HTTP/1.1 Accept: image/jpeg, application/x-ms-application, image/gif, */* Referer: http://192.168.1.201:8088/ Accept-Language: zh-CN User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; ) Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate Host: 192.168.1.201:8088 Content-Length: 122 Connection: Keep-Alive Cache-Control: no-cache %25%25ModDate=0000000000000000&RedirectTo=%2Faioffice2004%2Fais_index.nsf&Username=zjl&Password=123&submit.x=43&submit.y=7
從協(xié)議明文可以看到POST 地址POST /names.nsf?Login HTTP/1.1和用戶輸入的用戶名和密碼數(shù)據(jù)。實現(xiàn)這個協(xié)議涉及到gzip壓縮以及%25%25ModDate格式的URL編碼。
我們在繼續(xù)分析一個正文附件打開的協(xié)議:
GET /aioffice2004/aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F/$FILE/%E6%AD%A3%E6%96%87.doc?OpenElement HTTP/1.1 Accept: */* Referer: http://192.168.1.201:8088/aioffice2004/aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F?OpenDocument Accept-Language: zh-CN User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0;) Accept-Encoding: gzip, deflate Host: 192.168.1.201:8088 Connection: Keep-Alive Cookie: DomAuthSessId=402045A5B39335066D0C7E89982FB9DC
所有Lotus的附件打開都以這個協(xié)議格式實現(xiàn)的:
aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F/$FILE/%E6%AD%A3%E6%96%87.doc?OpenElement
這個格式為:數(shù)據(jù)庫/文檔編號/$FILE/文件名?OpenElement,在技術(shù)實現(xiàn)上我們可以通過這個形式來取到所有的文檔附件、正文附件。
本文列舉2點,其它3個環(huán)節(jié)可以同樣的形式進行分析來實現(xiàn)移動化接入的需求。
#p#
六、實施技術(shù)線路和方案
如果要實施Louts&Domino進行移動化應(yīng)用,完整的需要從三個方面來考慮實施方案:
1、 前端開發(fā)技術(shù)
目前手機前端進行開發(fā)的技術(shù)分為Native app開發(fā)模式、Web app開發(fā)模式、Hybrid app開發(fā)模式,這三個模式各自有不同的特點和合適的應(yīng)用場景,同時也是技術(shù)發(fā)展的成熟線路。
在移動應(yīng)用向企業(yè)普及的過程中,Native App的趨勢傳導(dǎo)給了企業(yè)。因此企業(yè)移動信息化通常先會嘗試傳統(tǒng)的Native App原生移動應(yīng)用開發(fā)模式。但是企業(yè)很快發(fā)現(xiàn),用Native App作為App開發(fā)模式的路子很難繼續(xù)走下去。最主要的原因是Native App開發(fā)、更新、維護的周期太長,企業(yè)移動信息化大都處于嘗試和摸索期,企業(yè)需要在短時間內(nèi)快速推出不同的功能、產(chǎn)品來適應(yīng)市場的需求和變化。
HTML5技術(shù)的興起給Web App注入了新的生機。Web App具有開發(fā)成本低、周期短、使用方便、維護簡單等特點,聽起來非常適合企業(yè)移動信息化的需求。特別是上一輪的企業(yè)信息化在PC端大多選擇了B/S架 構(gòu),這也和Web App通過手機瀏覽器訪問的方式無縫過渡。
Hybrid App(混合模式移動應(yīng)用)兼具“Native App良好用戶交互體驗的優(yōu)勢”和“Web App跨平臺開發(fā)的優(yōu)勢”。很多企業(yè)采用Hybrid App技術(shù)開發(fā)移動應(yīng)用,一方面是開發(fā)簡單,另外一方面可以形成一種開發(fā)的標(biāo)準(zhǔn)。企業(yè)封裝大量的Native Plugin(原生插件如支付功能插件)供Javascript調(diào)用,并且可以在今后的項目中盡可能的復(fù)用,從而大幅降低開發(fā)時間和成本。Hybrid App的標(biāo)準(zhǔn)化給企業(yè)移動應(yīng)用開發(fā)、維護、更新都帶來了極高的便捷性。
2、 數(shù)據(jù)接口方式
目前市場上一般都是針對B/S的Louts&Domino進行移動接入,基本上都采用以HTTP協(xié)議的方式進行數(shù)據(jù)接入主。
如果要全部總結(jié)來應(yīng)該是有三種實施的技術(shù)線路:
- C++ API開發(fā)模式
- Notes接口模式
- HTTP協(xié)議模式
第一個模式由于技術(shù)難度大、風(fēng)險高而不被常用;第二格模式一般是Lotus開發(fā)商所用,也就是辦公系統(tǒng)原開發(fā)商在Lotus基礎(chǔ)上進行二次開發(fā),提供開發(fā)訪問接口實現(xiàn)類似web service的形式。這個模式需要原有開發(fā)商的支持。
第三個模式在技術(shù)原理上較為常見、也符合技術(shù)標(biāo)準(zhǔn)。那么市場上一般的移動辦公開發(fā)廠家是怎么做的哩?是否所有移動應(yīng)用開發(fā)商都能按照HTTP協(xié)議進行開發(fā)哩?
一類廠商方案:移動應(yīng)用開發(fā)商一般都是前端開發(fā)技術(shù)為主、只擅長前端效果開發(fā),后臺服務(wù)都是采用第三方(如tomcat\java)系統(tǒng);
二類廠商方案:具有移動終端開發(fā)技術(shù),熟悉接口開發(fā),擅長于在Lotus基礎(chǔ)上進行二次開發(fā)。
三類廠商方案:類似于MAStudio移動中間件能提供移動信息化開發(fā)平臺,能夠進行終端的開發(fā)、同時具有HTTP協(xié)議成熟體系,不需要修改原有系統(tǒng)而單向進行實施開發(fā)。
3、 網(wǎng)絡(luò)交換協(xié)議
最后,在移動開發(fā)中網(wǎng)絡(luò)交換協(xié)議顯的特別重要。這里的網(wǎng)絡(luò)交換協(xié)議指的是移動終端和服務(wù)器之間的交互,這個交互過程一般是通過公網(wǎng)進行的。這個過程大家自然想到的是安全問題,這也確實是最重要的一個問題。
安全處理方式一般有:
- 依靠加密算法對數(shù)據(jù)私有密鑰加密
- 依靠SSL證書對傳輸加密
- 依賴運營商移動專線傳輸
- 依靠第三方VPN系統(tǒng)進行傳輸
網(wǎng)絡(luò)交換協(xié)議的另一問題是包容性,在開發(fā)模式上可以選擇私有協(xié)議和公有協(xié)議。私有協(xié)議能夠?qū)崿F(xiàn)安全、私密性,但是交互性不好;公有協(xié)議一般明文、開放,不具有私密性。還有一種開發(fā)模式為公私結(jié)合,在有限的范圍采用私有協(xié)議、在廣闊的范圍采用公有協(xié)議,其交互并存的模式能夠獲得較好的平衡狀態(tài)。
七、總結(jié)
以上全面的分析了lotus實現(xiàn)移動辦公的各個技術(shù)和應(yīng)用的關(guān)鍵點,在實際開發(fā)過程還存在更多的問題需要實踐和分析。Lotus雖然是一個標(biāo)準(zhǔn)的開發(fā)平臺,其單一的文檔性數(shù)據(jù)庫系統(tǒng),但是由于Lotus具有的強大二次開發(fā)功能,不同的開發(fā)者在Lotus基礎(chǔ)上創(chuàng)造出截然不同的應(yīng)用模式。
比如說精通JS的開發(fā)者可能利用java script來實現(xiàn)前端邏輯控制、和流程引擎的驅(qū)動,有很多一般性的開發(fā)者可能直接利用document的字段進行標(biāo)注流程,還有高明的開發(fā)者在某一個字段中以包含協(xié)議的形式來控制流程節(jié)點和人員。這些不同的開發(fā)者模式都將導(dǎo)致最后辦公系統(tǒng)在瀏覽器上的表現(xiàn)形式,也影響到移動辦公的實施接入。
所以實施Lotus的移動化,在技術(shù)層面不僅要熟悉http協(xié)議級別、更多的還要見識各種用戶Lotus的具體開發(fā)模式。