上一期討論到以BAE這樣的技術,結合雲端服務到手機端,這是一種不一樣的應用程式發模式,讓手機用戶端(client)的應用整合有了很大的不同。開啟手機的雲端應用整合,Data Push的機制在這裡更顯重要,在此提供一些個人淺見,請不吝指教。
Push API的技術研發是Android作業系統目前所久缺的一環,但已經有一些相關技術正在進行。向服務器發出請求,再建立連線後進行資料傳輸,這是典型的網路模式。行動裝置的應用上,改採Push的方式進行資料傳輸,是普遍被認為是一種更有效的方法。Push API的做法是由服務器主動「推出」資料給「接收端」,也就是,這是一種由「sender」主動發送資料的技術。
相對於Data Push,上述所提及的典型模式稱為Data Pull,也就是由接接收端控制資料傳輸,與Data Push正好相反。Data Push在手持裝置上應用,其實已行之有年,例如:SMS、Push mail;Data Push機制第一次被大量討論,是在Web service興起的那幾年,當時又被泛稱為「主動式服務」。Data Push也講求Server Side技術,因為資料由傳送端(Server)主動發出,所以Server端的架構與技術是關鍵。
隨著3G與4G網路的普及,以及開放平臺的興盛,在手機端以Data Push的機制整合雲端服務,可以造就一些有興的新應用;以應用產品的角度看待Data Push機制,雖然這是舊瓶新裝的技術,但所見有很大的不同。技術發展面來看,可以在Android框架裡發展一套成熟的Push API,讓應用開發者可以使用大量的Push API來製造應用軟體。這個機制的好處是什麼呢?例如,應用程式只需要「描述」資料屬性,就可以被動式從服務器端接收資訊;服務器端會根據用戶的資料需求,「客製化」般地推出用戶需要的資訊。
在一個以資料傳輸(Data Communication)為導向的3G網路環境下,Data Push的機制更形重要;在這裡,我們討論的角度是「讓開發者以Data Push的思考模式製造應用軟體」。將Push API整合到裝置,開放雲端服務,就是融入Data Push的機制到應用程式裡的第一步,這此,就可以達成「讓應用開發者更輕鬆地使用Data Push想法來製造軟體」。
開放平臺的「SDK」是很重要的環節,所以更具體的做法是提供SDK,讓開發者在裝置上發展應用軟體。所以,只要能將Push API加入SDK,並將雲端服務開放給Push API使用,就可以達到這個構想。當裝置,例是手機,能使用開放的雲端Push API來撰寫各式應用,這個裝置的功能將更強大;當然,更強大是技術層面上的意義,讓裝置更「個人化」、以及「更生活化」、更好用,這產品層面的意義,也是更重要的意義。
Data Push導向的應用軟體,也可以解決部份麻煩的技術問題,例如:電源管理。在用戶端以Ping方式通知Server端「我還活著」,Server端再將資料推出,可以做出更好的電源管理機制,主要的關鍵在於通訊模組可以不需要做永續性的開啟。Data Push導向的應用軟體,也可以解決瀏覽內容的問題,Data Push以HTTP做為基礎,送出XML甚致HTML的文件,如此便能採用現有的Browser技術,或是上一期曾提到的BASE技術。許多新的想法,都是建構在已有的技術之上,Data Push導向的應用軟體,確實是一個舊瓶裝新酒的想法,但是可以帶來新的使用體驗。