Sudoku迷宮的混合方法:將規則應用程式部署到雲中

來源:互聯網
上載者:User
關鍵字 雲計算 應用程式 Sudoku迷宮 混合方法

在本專欄中,我將重點介紹如何在雲上執行該規則應用程式。 Web 應用程式能夠利用將要部署到公共雲中的規則引擎嗎? 如果能,我們將使用哪些規則整合模式? 我們將部署哪些 ODM 元件? 我們可期待獲得怎樣的執行性能水準? 哪些挑戰在等著我們? 這些是本專欄希望為兩個廣泛使用的雲產品回答的問題:Google App Engine™ 和 Amazon Web Services™。

本專欄描述一個個人的發現之旅,集成了兩種領先的技術:雲計算和商務規則管理系統。 這兩種技術都能迎合不可阻擋的變化力量:基礎架構需求的變化和決策邏輯的變化。 作為商務規則管理系統 (BRMS) 的長期研究者,我非常好奇在雲上開發和部署基於規則的應用程式時需要解決哪些挑戰。 我們將 第 1 部分 仲介紹的 Sudoku 規則集部署到雲中,以證明在雲上使用規則的可行性,還要特別注意理解雲帶來的部署和執行限制。 規則維護和許可等其他領域不屬於本文的討論範疇。

雲計算(在一個可擴展、共用的 IT 環境中部署基於網路的應用程式)在如今的 IT 領域風頭正勁,因為與更加傳統的應用程式部署模型相比,它提供了眾多的優勢。 這些優勢包括大規模可伸縮性、接近即時的可用性和配備,以及改進的成本管理控制。

雲計算不僅對 IT 管理員而言代表著一種根本性轉變,對架構師和開發人員也是如此。 從開發角度上講,特別有趣的是平臺即服務 (PaaS),它以服務的形式提供開發環境。 在 PaaS 模型中,雲提供者提供了一個 計算平臺,該平臺通常包含作業系統、程式設計語言執行環境、資料庫和 Web 服務器。 這些服務是免費的或按即用即付模式提供。 應用程式開發人員可在雲平臺上開發和運行他們的軟體解決方案,無需擔憂購買和管理底層硬體和軟體層的成本和複雜性。 此外,在許多 PaaS 產品中,底層資源會自動擴展,以滿足應用程式需求。 PaaS 的示例包括:Amazon™ Elastic Beanstalk、Google App Engine、Microsoft® Azure 和 IBM SmartCloud® Application Services。

使用 PaaS 模型構建的應用程式會在提供者的基礎架構上運行,通過 Internet 從提供者的伺服器提供給一般大眾。 此部署模型稱為公共雲。 通常,公共雲上可用的服務受供應商的設計和能力約束。 考慮到這些限制,我很想知道是否可使用它們開發和部署規則應用程式。 我們將使用哪些 WebSphere ODM 元件? 規則應用程式應如何打包? 這些是我即將在構建應用程式和編寫本專欄時回答的問題。 在這裡,我們會探索如何將一個 Web 應用程式部署在兩個具有免費每日配額的流行的公共雲服務上:Google App Engine 和 Amazon Web Services (AWS)。

Sudoku Web 應用程式

Sudoku Web 應用程式為使用者提供了一個進入 Sudoku 迷宮的介面,並調用伺服器上的規則引擎。 Sudoku Web 應用程式的目標很簡單:

該應用程式應通過 Internet 提供給一般大眾。 該應用程式應在後端採用一個規則引擎(使用 第 1 部分 中描述的規則集)來解決 Sudoku。 該應用程式應是方便使用的。 它應該使用一個基於 AJAX 的互動式前端來捕獲 Sudoku 配置,顯示解法和分步說明。

圖 1 顯示了該 Web 應用程式,可在 此處 找到它。 插圖的頂部給出了允許使用者輸入 Sudoku 資料或將此資料作為字串導入的螢幕。 底部顯示了按一下 Solve using Rules 後得到的解法螢幕。 右側的清單描繪了規則引擎使用的分步推理。 按一下任意清單項會突出顯示與該推理步驟對應的儲存格,顯示目前位置推匯出的 Sudoku 解法。

圖 1. Sudoku Web 應用程式

該 Web 應用程式是使用 Google Web Toolkit™ (GWT) 構建的,後者是一個開發工具組,用於構建基於瀏覽器的複雜應用程式。 GWT SDK 提供了一組核心 JAVA API 和小部件。 這些工具使開發人員能夠使用 JAVA 編寫 AJAX 應用程式,然後將原始程式碼編譯為可跨所有瀏覽器(包括用於 Android™ 和 iPhone® 的移動瀏覽器)運行的高度優化的 JavaScript。 可在 此處 找到 GWT SDK 的簡介和它在 Eclipse 中的安裝和使用說明。 我發現使用 Google Plugin for Eclipse 來開發 GWT 應用程式非常有趣。

如果使用 GWT,那麼所有編碼都將使用 JAVA、HTML 和 CSS 完成。 應用程式代碼劃分為伺服器代碼、用戶端代碼和共用代碼。 GWT 將用戶端 JAVA 代碼和共用 JAVA 代碼編譯為可在任何 Web 瀏覽器上運行的 JavaScript。 用戶端 JavaScript 使用 GWT 遠端程序呼叫 (RPC) 框架與伺服器通信,這使 Web 應用程式的用戶端和伺服器元件能夠通過 HTTP 交換 JAVA 物件。 從用戶端調用的伺服器端代碼被引用為一個服務,可使用 JAVA servlet 架構實現它。 在用戶端代碼中,GWT 自動生成一個代理類來調用該服務,處理在用戶端與該服務之間來回傳遞的 JAVA 物件的序列化。

將一個使用 GWT 構建的應用程式部署到 Web 服務器很簡單。 您需要做的是將 GWT 生成的用戶端 HTML、CSS 和 JavaScript 檔案複製到 Web 服務器。 伺服器端代碼也可輕鬆地部署到一個 servlet 容器中,因為 GWT 編譯器在一個標準 WAR 目錄結構中創建輸出。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.