第四章 框架設計
第二節 雲端服務三層式架構
圖 17 為本研究提出之雲端服務三層式架構圖,分別為服務展示層(Presentation Layer)、服務協調層(Service Orchestration Layer)以及資料存取層(Data Access Layer),以下將分述之。
服務介面層 (Presentation Layer)
View Components Model - View - ViewModel
View Models Control
View Models Data Binding
Data Binding
服務協調層 (Service Orchestration Layer)
Facade Task
BOManager Business Objects
Builder Business Objects
Commands
資料存取層 (Data Access Layer)
ADO.Net Data Provider LINQ or DataSet WCF Services
Request / Result
WCF Services
DB
Asynchronous Call Agent
Service A
Service B
Service C
…..
Services
圖 17 雲端服務三層式架構 (資料來源:本研究整理)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
一、 服務展示層(Presentation Layer)
由於雲端環境將大量依賴網路間通訊,包括服務間的呼叫或資料傳遞。為了 改 善 Web Services 可 能 的 效 能 問 題 , 本 研 究 使 用 微 軟 所 發 展 的 Windows Communication Foundation (WCF),WCF 是由微軟發展的一組資料通訊的應用程 式開發介面,由於服務導向架構(Service-Oriented Architecture)在軟體工業中的 盛行,因此微軟設計了一個統一的程式開發模型,對於資料通訊提供了最基本、
最有彈性的支援。此外,WCF 是微軟下一世代開發分散式應用程式的技術。它是 被設計成幫助開發服務導向的應用程式,因此在服務展示層部分,使用者的呼叫 或資料傳遞皆統一使用 WCF Service 傳遞,且為了展示層的服務效能,皆使用非同 步的呼叫模式,讓使用者使用服務的停頓時間降低。
二、 服務協調層(Service Orchestration Layer)
服務協調層包含一個或多個流程服務,依流程定義的業務規則與業務邏輯來 組合業務服務與應用服務。服務協調層透過預先定義的流程邏輯,以控制流程中 業務活動的執行順序,以建立複雜的服務組合,服務組合包含一組服務的組裝,
提供對一個特定業務任務或流程進行自動化所需要的功能,而服務編排的主要技 術及透過商業流程執行語言(Business Process Execution Language, BPEL)的開放 標準,來將網路服務與商業流程搭配並編排,此標準主要用於組織的業務流程管 理,定義了支援此標準主要用於組織的業務流程管理。
因此本研究在服務協調層中,使用 Façade 物件作為一個可執行的中心流程來 協同內部及外部的 Web 服務中的非同步呼叫,Facade 物件將查詢 Commands 表,
依據 Commands 中所描述的服務流程順序,以及訊息互動的順序來控制參與者之 間的協同,通過中心流程來控制流程的目標,包含服務功能的執行及服務調用順 序。
Façade 經 由 查 詢 Commands 得 知 執 行 流 程 後 , 交 由 非 同 步 呼 叫 代 理 人
(Asynchronous Call Agent)處理整體服務流程,非同步呼叫代理人將依照服務流
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
程以 WCF 中的非同步呼叫進行資訊傳遞,非同步呼叫代理人將等待服務流程全數 執行完畢,才會將結果彙整後回傳。此種方式可避免各服務因互相等待或是執行 所需時間較長而導致應用程式效能較差,並且可利用 SOA 低耦合的特性,將一個 較大型的運算工作,進行邏輯上的切割或是使用帄行運算的切割方式,產生數個 小型服務並在不同的虛擬機器上執行, 因此可讓應用程式在雲端私有雲的環境上,
更有效率的執行。
三、 資料存取層 (Data Access Layer)
本研究使用 SQL SERVER 2008 R2 容錯叢集,SQL Server 容錯移轉叢集會針 對整個 SQL Server 執行個體提供高可用性支援。其為一個或多個節點或伺服器的 組合,具有兩個以上的共用磁碟。應用程式會個別安裝到 Microsoft 叢集服務 (MSCS) 叢集群組中,在任何時候,資源群組都只能由叢集中的某個節點所擁有。
應用程式服務擁有容錯移轉叢集執行個體名稱,應用程式可以透過參考這個容錯 移轉叢集,執行個體名稱,連接到容錯移轉叢集執行個體;且應用程式不需要知 道主控容錯移轉叢集執行個體的是哪一個節點。因此在資料存取層中,容錯叢集 可視應用程式的資料容量多寡,來進行節點的資源配置。
‧
服務介面層 (Presentation Layer)
View Components Model - View - ViewModel
View Models Control
View Models Data Binding
Data Binding
服務協調層 (Service Orchestration Layer)
Facade Task
SRN Services
Commands
資料存取層 (Data Access Layer)
ADO.Net Data Provider LINQ or DataSet WCF Services
Request /
Asynchronous Call Agent
Simulation Service Services
Monthly SRN
Weekly SRN
Daily SRN
Hourly SRN
Minutely
SRN …..
Rule Library Service
Rule Compiler
Service
Strategy Frame Execution
Service
Genetic Algorithm
Service
SRN Controller
Monthly SRN Publisher
Weekly SRN Publisher
Daily SRN Publisher
Hourly SRN Publisher
Minutely SRN Publisher
Asynchronous Call
s 圖 18 交易策略評估雲端服務架構
(資料來源:本研究整理)