OpenUI5 - SAP开源中的移动大战略
Download :http://sap.github.io/openui5/
網上很少能看到介紹OpenUI5的中文文章,有也是“ SAP 開源的 JavaScript 框架,有點重”。首先我不去說OpenUi5到底有多重,先說說SAP為什么把OpenUI5開源,除了軟件license法律上的原因之外。
先說說歷史,SAP在UI框架上的選擇其實也糾結了十多年了,是多年前,SAP就很有先見的推出了SAP GUI,這個其實就是最早的BS框架,不過這個B是SAP自己的客戶端而不是標準瀏覽器,但是遵循的就是三層框架。這個工具開發迅速,運行迅速,但是頁面呆板,SAP頁面開發都需要遵循特定的模式,但是這也是由于SAP針對的特定企業客戶決定的,因為一個企業的應用程序數量往往比一個互聯網網站多,為了方便統一的風格,而且便于客戶的迅速學習,而且也便于迅速的開發,這樣的設計是合理的。模式的概念一直在SAP延續,所有的程序要求模板化,樣式一直也能快速開發。后來web 2.0時代SAP推出的Webdynpro基本上也延續了這一風格。
慢慢的,客戶對于交互界面的要求越來越高,用戶談起SAP的界面,第一感覺就是丑,然后SAP開始謀求轉變,也經過了痛苦的轉型,SAP甚至投奔過微軟的silverlight,哈哈,又是一個新玩意,有興趣的同學可以查查微軟的網站,最后silverlight無聲無息了,這時候SAP覺得還是要有自己的UI框架,不能受制于人,于是投奔html5,有了現在的OpenUI5.
好了,開始進入正題,OpenUI5就是為了在寫寫在瀏覽器上跑的javascript框架么?不盡然,我們來分析一下下OpenUI5里面一些特點。
1. 首先,OpenUI5還確實是一個不錯的javascript框架。如果你使用javascript來開發一系列產品,平臺的選擇有幾點你是需要考慮的:
1) 有足夠多的漂亮的控件而不是每一個都從原生的html開始寫起
2) 有一個編程框架,比如MVC,便于各個團隊代碼的統一
3) 支持數據綁定。
4) 最少的代碼,能開發同時支持桌面,平板和手機的UI。
OpenUI5都支持上面的特性而且還很好的整合在一起。我也使用過一些其他的開源產品做過一些項目,比如JQuery Mobile, Angular, Knockout, Backbone,發現能不做修改同時支持以上特性的開源項目還是比較少,比如JQuery Mobile就只有控件和API,沒有框架支持,而且開發的UI只在手機顯示比較漂亮,Angular是一個很好的框架但是沒有控件,也沒有移動支持。我也嘗試把兩者結合在一起開發,但是額外的整合成本很高,比如使用html5的data標簽render出來的div往往會和數據綁定沖突,這個題外話。OpenUI5提供了很多不算難看的控件和切換效果,支持MVC框架,而且支持多種數據綁定,比如JSON和OData,而且少量特定平臺的代碼,程序能同時在桌面,平板和手機上運行,比如SplitApp。
2. OpenUI5只是一個寫Javascript的框架么?仔細研究一下OpenUI5的開發原則,所有的應用都被開發成一個component而不是一個html頁面,component會被包含在一個容器里面,這個容器可以是一個簡單的html div,但是,SAP有一個launchpad的html頁面,component會包含在這個稱為lauchpad的容器中,這個容器能干些什么?這個容器可以按照用戶的權限,顯示用戶能看到的應用,沒有權限的應用用戶是看不到的,而且用戶可以按照用戶的習慣,把容器里的應用的顯示做一些調整,比如分組,位置。好了,移動portal的雛形出來了。像這個樣子。
3. 僅僅一個portal夠了么?不夠,如果關心SAP,會發現SAP發布了一個叫Kapsel 的瀏覽器,這個瀏覽器能干啥?首先,它是一個普通的瀏覽器,能跑html5和openui5程序;然后,它內部預置了OpenUI5的所有library,標準的library不用每次下載,其次,它能緩存OpenUI5的程序,由于容量限制,很多移動設備瀏覽器一般不會緩存程序,但是Kapsel會壓縮緩存OpenUI5程序,然后按照修改更新。再其次,它里面還包含了cordova(以前叫做phonegap)的包,這樣,OpenUI5可以在Kapsel上訪問硬件設備了。
慢著慢著,怎么感覺這個瀏覽器不像一個瀏覽器,更像一個操作系統,不過本來現在操作系統和瀏覽器的區別越來越小。現在html5下瀏覽器又是webgl,又是本地緩存數據庫,又是多線程,又是websocket,本來和操作系統沒多少區別。想象Kapsel就是一個操作系統,用戶打開Kapsel,可以看到自己所有的買過的程序,下載一次就如同現在移動設備上的應用安裝,對于很多BYOD的用戶,它直接安裝一個Kapsel就如同安裝了一個移動設備上的設備管理器,企業的應用都在這個設備管理器內部管理,而且Kapsel還是一個企業內部的app store,你能看到你自己所有經過授權的程序。沒有授權的程序你也無法訪問。
看到這里,似乎有些想法了,SAP去年還不是有風聲要收購黑莓嗎?為什么?把這個Kapsel直接架在黑莓硬件上,不就是一個WebOS?這樣,OpenUI5對這個WebOS就如同object C對IOS,Java對Android,就是一個應用開發語言了。仔細看OpenUI5的一些設計,比如component的routing,怎么那么像android的activity。
好了,知道為什么SAP為什么要將OpenUI5開源了,大家都來用OpenUI5寫程序,大家用的多了,生態圈建好了,以后,這些程序就可以直接放到SAP的Kapsel瀏覽器甚至Kapsel OS上去了。
4. 這個是OpenUI5的全部么?還不是?畢竟Kapsel是一個針對企業的瀏覽器,還有一些其他針對企業的特點,比如
1) 和SAP Mobile Plateform的集成。你用OpenUI5開發了好多應用,那么可能數據服務來自于很多服務器吧,比如說企業有HCM服務器,有CRM服務器,你打開每一個應用難道都要去配置連接到哪個服務器?不用的,你只要把你的Kapsel指定到一臺SAP的SMP服務器上,這個服務器上托管了所有的OpenUI5程序,同時這個服務器也配置了不同OpenUI5程序的數據服務器地址,這樣,你的數據請求會按照SMP服務器的配置轉發到配置的真正服務器上,實現了服務器的統一管理。應用程序的授權也在這臺SMP服務器上。
2) 按照權限的跳轉。在你的OpenUI5程序中,如果你要跳轉到其他的應用程序,會按照你權限的不同跳轉到不同的應用程序上,比如在你的程序里面你說要跳轉到銷售訂單,那么你是經理還是業務員跳到的應用程序也是不一樣的,這也是一些企業程序的特點。
還有很多,不扯了,所以看OpenUI5不僅僅是一個javascript框架(雖然是一個不錯的javascript框架),將來也可能是一個app的標準開發語言,他的開源不像以前MaxDB的開源,重要的是修建一個新的APP的開發人員合作圈。
末了,補充一下,OpenUI5的核心大概900K,包含JQuery的包,但是可以分為很多包on-demand加載。如果你需要使用一些其他服務比如D3,也另外加載。也不算太重,而且可以包含在Kapsel瀏覽器中。
總結
以上是生活随笔為你收集整理的OpenUI5 - SAP开源中的移动大战略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP BDT业务数据工具集的开发原理及
- 下一篇: 工单更改历史记录