作者是 寶盛   

 雲端SOA商務軟體的開發與應用

 

 何謂SaaS?

所謂SaaS (Software as a Service)就是把軟體做成服務,放在雲端供地面上的各種應用程式呼叫。應用程式透過瀏覽器由雲端自動下載到地面,使用者不需任何安裝動作。應用程式只包含操作介面,沒有商務邏輯,所有邏輯都寫在雲端服務元件中,例如NEO SOA-ERP(簡稱NEO)就是共含5,000多個服務(即Web service術語中的operation)的近500個服務元件(Web service術語中的service)構成。

應用程式方面,目前寶盛已開發出完整的Java Swing應用程式呼叫這些NEO服務元件,這些應用程式被分類成系統管理、核心、採購管理、銷售管理、庫存管理、財務會計、成本會計、需求計劃等模組,並已經在雲端營運。目前也有其他軟體開發商(神通)開發出Android手機及平板電腦應用程式呼叫NEO的服務元件,如銷售訂單查詢、出貨單查詢等。軟體開發商目前也已開發出大量利用開源碼工具iReport呼叫NEO現成服務的報表,使用者只要會使用iReport就可以呼叫NEO的現成服務產生任何需要的報表。


    所以,NEO是一套可以讓軟體開發商或使用者利用呼叫現成服務元件的方式開發應用程式的SaaS。軟體開發商開發出來的應用程式也是SaaS,一樣放在雲端供使用者下載使用。使用者使用開發商提供的SaaS,即應用程式;而開發商的應用程式則使用NEO提供的SaaS,即服務元件。

雲端SOA軟體工廠NEOGen

NEOGen是開發雲端SOA商務軟體的方法和工具,NEO就是用NEOGen開發出來的。NEO屬於ERP領域,故其現成服務,除系統管理和核心模組外,皆和ERP有關;但NEOGen則與ERP無關,適用於任何領域SaaS的開發,包括人力資源管理(HR)、客戶關係管理(CRM)、製造執行系統(MES)等企業用商務軟體,也包括KTV、電影、新聞、課後輔導、保全等家庭或學校用商務軟體。開發企業用SaaS時,NEO的系統管理和核心模組的服務皆可再利用;開發家庭或學校用SaaS時,至少系統管理模組的服務可再利用。在雲端時代,所謂「開發應用程式」即利用各種前端工具開發介面並呼叫現成的服務,若無現成服務可供呼叫,則利用NEOGen開發新服務。

NEOGen開發出來的服務是企業級的EJB (Enterprise Java Bean)服務,具高度穩定性和容錯性。EJB雖複雜,NEOGen的服務框架已經大大降低其複雜度,讓服務的開發變成一件簡單的事。用NEOGen開發出來的服務可被各種用戶端應用程式呼叫,共有RMI, JNDI, SOAP和REST等四種調用服務的方式。

NEOGen開發出來的系統架構如下圖:



以ERP、HR或CRM等企業用系統為例,軟體開發商可以用NEOGen的前端產生器產生Java Swing應用程式透過RMI呼叫NEO服務,或用servlet及jsp撰寫前端應用程式並透過JNDI呼叫NEO服務,或用非Java的語言撰寫前端應用程式並透過SOAP或REST呼叫NEO服務。使用NEOGen前端產生器產生Java Swing前端應用程式的優點是可以繼承NEO的無程式客製(NPC, non-programming customization)功能,方便上線後的系統調適。用NEOGen開發系統的另一優點是程式碼高度標準化,所有程式風格都一致,且服務文件自動產生,系統維護容易。

例如,本身擁有HR產品的公司想要開發雲端HR服務新產品,由於原來的產品不是SOA,或甚至連三層式架構都不是,無法發揮雲端效益。這樣的公司可以利用NEOGen重新開發雲端HR SaaS,快速將其HR領域知識變成雲端服務。開發服務元件和應用程式的過程如下:

  1. 將一個use case(即服務元件)既有的資料庫schema填入NEOGen的資料庫分析文件(Excel),並填入其他必要的資料。資料庫分析文件須包含承租戶代號(Tenant ID)等必要的6個欄位,及系統代號(System ID)和時間戳記(Time Stamp)等NEO特有的欄位。
  2. 利用NEOGen的產生器自動產生一個use case的9種基本服務之服務元件協定文件(Excel),再自動產生服務說明文件(JavaDoc)及網路服務說明語言(WSDL)。
  3. 利用NEOGen的服務產生器讀入資料庫分析文件及服務元件協定文件,自動產生一個use case的9種基本服務之原始程式碼,並佈署到雲端供前端程式使用。
  4. 利用NEOGen的應用程式產生器自動產生一個use case之用戶端應用程式,呼叫既有服務,並佈署到雲端供使用者下載。

 家庭用或學校用SaaS

至於家用或學校用SaaS,由於相對簡單,不一定要用EJB這種複雜元件,使用Hibernet開發服務即可。但因NEOGen已經簡化了EJB服務的開發,開發起來不會比Hibernet慢,且用NEOGen可以開發更sophisticated的產品,家用或學校用SaaS的供應商若認為他們的產品是mission critical,也可以考慮使用NEOGen開發EJB服務。

以KTV為例,影音檔、影音播放程式、和KTV應用程式放在雲上伺服端中的資源容器中,地上的用戶端則可在使用時從雲下載或更新影音播放程式(圖中的檔案維護程式)和KTV應用程式(圖中的NEO應用程式),以及每次點歌時從雲下載歌的影音檔(放在資源容器的「檔案」中)。KTV應用程式可利用手機或平板電腦呼叫服務容器中具強大的搜尋功能的KTV服務,使用簡便。利用NEOGen可快速開發雲端KTV系統。

以課後輔導為例,教材檔、試卷檔及各種維護程式放在雲端伺服器的資源容器中,地上的用戶端則可在使用時從雲下載或更新教材程式、試卷程式、和互動程式(圖中的檔案維護程式)等。教材程式包括給老師或家長編製教材的工具,老師或家長可從教材檔中挑選教材,編製成適合特定學生的教材,再透過互動程式從遠端指導教學或觀察學生的自習情況。試卷程式可讓老師或家長從題庫中挑選題目編製成考卷,並透過互動程式同時對多位學生發出及收回考卷,並立即自動評分,老師或家長可掌握每一位學生的學習成效。互動程式並可讓老師或家長和學生對話,也可透過加裝的監視系統看到學生週遭的影像,方便老師或家長遠距管理學生。利用NEOGen可快速開發雲端課後輔導系統。

NEOGen開發的雲端多租戶系統亦可應用在家庭保全上。只要向營運商租一個帳號,有任何異常狀況,家長就可以收到系統發出的訊息,接著可從監視系統看到家裡各房間的影像,只要按一個鈕就可通知警方或保全公司。利用NEOGen可快速開發雲端保全系統。

結論

企業管理和日常生活都已離不開雲端SOA商務軟體。NEOGen是雲端多租戶SOA商務軟體開發方法與工具,它可以讓雲端營運商開發企業級的雲端SOA商務軟體,例如寶盛已經利用NEOGen開發出完整的雲端多租戶SOA-ERP並已在營運中。ERP以外的商務軟體開發商可以利用NEOGen開發雲端SOA的企業應用,即便是家庭或學校用的雲端SOA多租戶商務軟體,也可以用NEOGen開發。

由於NEO具備特性(feature)之ERP底層結構,利用NEOGen在NEO上開發特殊行業之ERP SaaS (例如鞋業、紙業、膠帶業、紡織業等),約需再開發20%服務元件,80%可重用既有服務元件;開發非ERP之企業應用SaaS (例如HR、CRM、MES等),約需再開發40%服務元件,其餘可重用NEO現成服務元件;開發家庭或學校用的SaaS,約80%的服務元件需重新開發,只有20%可重用NEO現成服務元件。和ERP比較,家庭或學校用的SaaS簡單太多了,所以雖然能重用的現成NEO服務元件不多,用NEOGen開發也會相對容易。

NEOGen可應用在各種雲端多租戶企業級商務系統的開發,是雲端時代不可或缺的軟體開發工具。