SOA示例应用程序
近年來,至少在參與大多數信息技術活動的人們中,面向服務的體系結構術語已經普及。 這種方法建議的指導原則是在不同的可分配系統領域中成功的主要因素。
正如定義清晰易懂一樣,將其實現到真實項目中也要直觀,簡潔,優雅。
我發布了一個應用程序,該應用程序演示了如何利用EIP(企業集成模式),IoC(控制反轉)以及構建工具和腳本語言(例如Groovy)將SOA的原理應用于一個小型項目。
我分析了一個簡單的業務案例 :一家娛樂提供商,希望根據客戶服務的訂閱向其某些客戶分發獎勵和獎金。
處理過程很簡單:
需要提供RewardsService的實現。 該服務接受客戶帳號和包含渠道訂閱的投資組合作為輸入。客戶狀態團隊目前正在開發EligibilityService,該服務接受帳號作為輸入。
我建立了一個基礎架構來為第一個有意義的功能編寫驗收測試。 這就是可以定義為“行走骨架”的東西。 原型,其基本要素是可以從Github輕松下載后可以構建,部署和測試。
RewardService是由客戶端調用,調用,反過來,whichhowever,在這種情況下沒有實現合格的服務。 由于許多實際場景都希望使用外部服務,因此概念驗證將資格服務指向黑匣子,其中僅請求/響應接口是已知的。
單元測試通過Camel測試框架模擬了模擬端點的資格服務行為。 但是,如果你想運行在本地計算機上的應用程序我設置了 ,一行代碼內,一個虛假的合格服務,merelyreturns了積極的回應:
def alwaysEligible = {exchange -> if(exchange){exchange.getOut().setBody('CUSTOMER_ELIGIBLE')}} as Processor入口點是基于Apache CXF構建的HTTP Restful接口,可以在配置中的幾行之內輕松設置。 Spring通過以下方式初始化CXF:
jaxrs.'server'(id:'restService',address:'http://${http.host}:${http.port}') {jaxrs.'serviceBeans'{ ref(bean:'rewardService')} }服務通過Apache Camel連接。 RewardService僅包含ESB上下文的引用– ProducerTemplate的實例。 這種解決方案允許在鏈接系統和業務服務之間完全隔離。Camel上下文表示SOA的布線,并通過DSL進行配置,如下例所示:
from('direct:rewards').to(eligibilityServiceEndpoint)參考:來自JCG合作伙伴 Giancarlo Frison的SOA示例應用程序 , 通過復雜的博客使事情變得簡單 。
翻譯自: https://www.javacodegeeks.com/2012/04/soa-example-application.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 水溶胶是干什么用的 水溶胶是干什么用的介
- 下一篇: 老leng是什么意思 老leng的意思