雲端 SOA 軟體工廠
摘要
SOA軟體工廠的目的是授權給資服業者或使用者在NEO SOA-ERP標準系統上開發新程式以延伸標準系統的功能,或將傳統系統SOA化,並佈上雲端使用。本文介紹軟體開發流程及軟體工廠之應用範例。SOA軟體工廠開發出來的程式可直接在雲端供手機、PDA或PC等各種前端設備叫用。
軟體開發流程
軟體開發流程分為三個階段:從需求到規格初稿、從規格初稿到規格完稿、和從規格完稿到程式。如下圖,這三個階段分別以深藍、藍、和淺藍標示:
分為三階段的理由如下:第一階段面對的是使用者,必須由有經驗、溝通能力良好的系統分析師來擷取使用者的真實需求。但系統分析師不熟悉系統深層的架構,所以第二階段由系統設計師根據規格初稿做出規格完稿,再經系統架構師審核後,就能展示給使用者確認。第三階段則由程式設計師根據規格完稿完成程式。
系統分析師訪談使用者,目的是為了精準的描述使用者需求,它是一個反覆過程(iteration),即每個步驟會反覆修正,直到確定需求:
1. 步驟1:每一個作業寫一份規格初稿,須清楚的表達為什麼需要這個作業,以及使用者的操作方式,即use case,以條列的方式陳述未來使用者如何操作系統。(請參考UML的use case格式)
2. 步驟2:在規格初稿中加入「畫面」(prototype),並描述相關畫面元件的預設值、取捨位數、受限條件和備註。對於畫面上的特殊按鈕,須描述其行為,以及開始(pre condition)和結束(post condition)條件。
3. 步驟3:使用者需求涉及多個作業時,須撰寫規格初稿總說明,包括系統範圍、相關作業及之間的關係、作業流程圖等。規格初稿總說明的目的是定義相關規格初稿的關係,即structured use cases。(請參考UML)
系統設計師審核規格初稿,作出可直接撰寫或產生程式的規格完稿。規格完稿須經系統架構師審核、並展示給使用者確認後,才能發包生產。規格完稿除了精煉(refine)規格初稿的內容外,尚包括資料庫結構、服務協定、及測試案例(test cases)等。這個階段的重點包括:
1. 優先使用既有服務或服務組合,儘量提高服務的重用性(reusability)。在搜尋、組合、評估服務的過程中,發現所需服務不存在、太大、太小、或效能太差時,才開發新服務。
2. 開發新服務時,除了考慮規格初稿的需求,也要考慮未來可能的需求,儘量提高服務的重用性。
規格完稿發包給程式設計師進行編碼(coding)和測試(testing),這是相當自動化的過程。
在開發階段,半成品程式放在雲端,世界各地的程式設計師一起開發系統,可隨時簽出(check out)程式,加工後再簽入(check in)程式,軟體工廠會作版本管理。程式完成後佈署到雲端由專人以規格完稿中的測試案例進行測試。在應用階段,使用者可使用瀏覽器或Java介面叫用雲端服務,前者不需安裝任何程式,後者則NEO會自動更新用戶端程式,使用者完全不需要安裝動作。開發和應用階段的環境如下圖所示:
SOA軟體工廠應用範例
SOA軟體工廠的應用範圍很廣,本文僅介紹其中一部分,包括:客製NEO SOA-ERP系統新功能、利用NEO客製大型ERP系統新功能、利用NEO發展異質傳統系統的服務並開發整合應用、利用NEO開發服務介接ERP與其他系統、以及利用NEO既有服務或撰寫新服務開發新系統。
- 為個別行業或個別企業客製NEO SOA-ERP新功能
1. 利用SOA軟體工廠客製行業別專屬模組,以延伸標準系統的服務。例如:配銷實務除了一般配銷外,還有零售配銷和進出口貿易配銷等2種行業別實務,分別有不同的會計傳票處理方式(現金或應收帳款)和不同的文件(信用狀),資服業者可利用軟體工廠客製這2種行業別實務需要的模組。
2. 行業別專屬模組獨立於標準模組之外。例如,零售配銷和進出口貿易配銷為行業別專屬模組,實作一般配銷沒有提供的服務和資料表。行業別專屬作業畫面取代標準作業畫面,呼叫標準服務以及行業別專屬服務。因為服務的介面(API)是一種合約,一經發佈就不會再變,所以,不管選擇哪種行業別畫面,都可以執行,不會有衝突。
3. 對個別企業的需求,儘量以EUD客製工具滿足,不得已才利用SOA軟體工廠客製新功能。
4. 以上做法讓NEO SOA-ERP成一個可以量身訂做並快速導入的ERP系統。
1. 設計大型ERP系統(Oracle或SAP)所需新功能,先從需求到規格初稿,再從規格初稿到規格完稿。
2. 規格完稿包含轉資料服務規格,填寫「服務協定」(UC Excel)。
3. 將大型ERP系統相關資料庫資料填入「資料庫結構文件」(DB Excel)。
4. 利用軟體工廠的「服務程式產生器」產生轉資料服務程式。
5. 組合轉資料服務程式和現成服務程式,完成資料從大型ERP系統資料庫轉入或轉出NEO的服務組合。
6. 利用軟體工廠產生服務程式和介面程式,在NEO客製大型ERP系統所需新功能。
1. 利用軟體工廠及各傳統系統的資料庫結構在NEO開發可重用的服務元件。
2. 利用軟體工廠組合上述服務元件開發跨系統整合應用。
3. 這些可重複使用的服務元件是企業可長可久的IT資產。
1. 企業中除了ERP系統往往還有BI, PLM, CRM等其他系統,本範例以BI為例。
2. 分析BI系統的資料倉儲結構,設計從ERP轉資料到BI的服務協定。
3. 對於非SOA ERP系統,分析與BI相關的ERP資料庫結構,撰寫能轉出Excel檔作為轉資料服務的輸入訊息之程式;對於SOA ERP系統,找出與BI相關的現成服務,並與轉資料服務組合在一起。
4. 在BI的介面叫用轉資料服務,即可將資料從ERP資料庫轉入BI的資料倉儲。
1. 設計新系統,先從需求到規格初稿,再從規格初稿到規格完稿。
2. 尋找NEO SOA-ERP服務及其WSDL,設計如何組裝這些服務。
3. 若找不到既有NEO網路服務則撰寫新的網路服務。
4. 利用BPEL產生器組裝NEO服務及自己寫的服務成為新服務,並產生BPEL服務組合的WSDL。
5. 測試並評估這些BPEL服務組合的正確性和執行效率。
6. 利用軟體工廠讀進BPEL服務組合的WSDL,產生介面,測試商務流程。
7. 系統整合測試、資料轉換與系統開帳、系統上線。
結論
經營企業唯一不變的法則就是「變」,無法因應環境變化而適時調整的企業很快就會被淘汰。企業經營絕對不能沒有ERP,傳統僵化的ERP系統無法靈活修改,滿足企業的需求。SOA軟體工廠讓ERP系統可以大量客製化。透過服務的叫用,ERP的客製變得又快速又安全。軟體工廠打破了ERP系統最好不要客製的迷思,ERP應該因使用者需求的改變而經常客製。
|