OpenHandX-River 1.0
ESB企業(yè)服務(wù)總線產(chǎn)品
2012-10-8
作者:彭明華
openhandx@foxmail.com
本文檔中的任何部分都不得以任何手段任何形式進(jìn)行復(fù)制與傳播
目錄
1 前言
2 組件
3 主要特性
4 ESB現(xiàn)實(shí)意義
5 代理模式
6 點(diǎn)對(duì)點(diǎn)模式
7 異步消息服務(wù)
8 完善簡(jiǎn)潔的服務(wù)、用戶(hù)、權(quán)限管理
9 支持ESB服務(wù)集群,負(fù)載均衡
10 服務(wù)監(jiān)控
11 OpenHandX所有項(xiàng)目介紹
1 前言
OpenHandx-River是一個(gè)OpenHandX-Unreal Web Service標(biāo)準(zhǔn)的ESB(Enterprise Service Bus)企業(yè)服務(wù)總線產(chǎn)品。ESB本身是構(gòu)筑企業(yè)系統(tǒng)的必要元素,改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運(yùn)作,實(shí)現(xiàn)了不同服務(wù)之間的通信與整合。OpenHandx-River提供了一種開(kāi)放的、基于Unreal的 OpenService,通過(guò)簡(jiǎn)單的服務(wù)注冊(cè),來(lái)完成粗粒度應(yīng)用(服務(wù))和其他組件之間的互操作,夠滿(mǎn)足大型異構(gòu)企業(yè)環(huán)境的集成需求。OpenHandx-River以一種無(wú)縫的非侵入方式提供企業(yè)全新的服務(wù)接口,并能夠在部署環(huán)境中支持任何標(biāo)準(zhǔn)。更重要的是,充當(dāng)“緩沖器”的River(負(fù)責(zé)在諸多服務(wù)之間轉(zhuǎn)換業(yè)務(wù)邏輯和數(shù)據(jù)格式)與服務(wù)邏輯相分離, 從而使得不同的應(yīng)用程序可以同時(shí)使用同一服務(wù),不用在應(yīng)用程序或者數(shù)據(jù)發(fā)生變化時(shí),改動(dòng)服務(wù)代碼邏輯。
OpenHandx-River是將所有基于OpenHandX-Unreal開(kāi)發(fā)項(xiàng)目的Web Service(或相同標(biāo)準(zhǔn)的Web Service)集中起來(lái),統(tǒng)一包裝、統(tǒng)一管理、統(tǒng)一入口構(gòu)成企業(yè)服務(wù)總線,是打造數(shù)據(jù)服務(wù)為中心企業(yè)架構(gòu)的重要組件。River提供了代理、點(diǎn)對(duì)點(diǎn)兩種ESB服務(wù)模式,同時(shí)滿(mǎn)足安全和高速訪問(wèn)的需求。在消息傳遞上River具備發(fā)送消息的功能,解決系統(tǒng)間異步的消息和數(shù)據(jù)傳遞。此外OpenHandx-River也是OpenHandx-Real和Unreal框架的最佳實(shí)現(xiàn)。
2 組件
組件名稱(chēng) |
說(shuō)明 |
open-river1.0.jar |
River ESB核心包,提供river代理、點(diǎn)對(duì)點(diǎn)兩種服務(wù)模式,消息傳遞的功能,并具備集群、監(jiān)控的能力 |
index.htm |
登錄主界面 |
clusterchart.htm、clustermonitor.js 、config.js、frame.js、group.js、grouprela.js、login.js、marketchart.htm、marketmonitor.js、marketservice.js、marketservicerela.js、messagechart.htm、messagemonitor.js、messagename.js、messagenamerela.js、rootuser.js、store.js、user.js、userrela.js |
River ESB服務(wù)注冊(cè)、用戶(hù)管理及服務(wù)運(yùn)行監(jiān)測(cè)界面 |
3 主要特性
l 提供代理、點(diǎn)對(duì)點(diǎn)兩種ESB服務(wù)模式
l 異步的消息和數(shù)據(jù)傳遞功能
l 支持ESB服務(wù)集群,負(fù)載均衡
l 支持服務(wù)調(diào)用出錯(cuò)自動(dòng)重試
l 完善簡(jiǎn)潔的服務(wù)、用戶(hù)、權(quán)限管理
l 提供集群方式的服務(wù)調(diào)用監(jiān)控和內(nèi)存監(jiān)控的功能
4 ESB現(xiàn)實(shí)意義
SOA(Service-Oriented Architecture)服務(wù)導(dǎo)向架構(gòu)把企業(yè)系統(tǒng)的元素分解或者打包成一個(gè)個(gè)面向服務(wù)的模塊,供外界調(diào)用。這種做法解決了企業(yè)各個(gè)跨系統(tǒng)間的調(diào)用、系統(tǒng)間的功能整合、增強(qiáng)了所有系統(tǒng)的綜合能力等有重要意義。另外一個(gè)層面的意義防止信息孤島。但是隨著企業(yè)信息化建設(shè)的深入,系統(tǒng)之間的服務(wù)往來(lái)越來(lái)越多就會(huì)出現(xiàn)以下?tīng)顩r:
在如此眾多的企業(yè)系統(tǒng)部署和維護(hù)不是一個(gè)容易的事。假設(shè)有一個(gè)相對(duì)主要的系統(tǒng)出現(xiàn)故障,備用系統(tǒng)替換故障系統(tǒng)非常困難(所有依賴(lài)的系統(tǒng)也需要重新配置),因此依賴(lài)的相關(guān)系統(tǒng)也會(huì)出現(xiàn)故障,以此類(lèi)推最終導(dǎo)致企業(yè)所有系統(tǒng)癱瘓,這是一個(gè)很恐怖的后果
。
ESB企業(yè)服務(wù)總線就是將SOA服務(wù)器包裝、注冊(cè)、發(fā)布出來(lái)供系統(tǒng)間調(diào)用,所有系統(tǒng)只有通過(guò)ESB才能交互。ESB完成消息轉(zhuǎn)換和消息路由。每個(gè)系統(tǒng)無(wú)需關(guān)心被調(diào)用的服務(wù)來(lái)自何方,系統(tǒng)間的耦合度降低。另外系統(tǒng)間的維護(hù)代價(jià)大大降低,比如:1、ESB總線上“電子商務(wù)”系統(tǒng)需要升級(jí)(或者IP和域名發(fā)生變化),單純采用SOA方式需要將所有下游系統(tǒng)做適應(yīng)性改變,使用ESB只需要在ESB中修改已注冊(cè)的服務(wù),其下游系統(tǒng)不需任何改變。2、“電子商務(wù)”系統(tǒng)出現(xiàn)故障,馬上啟用“電子商務(wù)”備份系統(tǒng),在有ESB的情況下只需要修改注冊(cè)服務(wù)而已。ESB的優(yōu)勢(shì)還有更多。
ESB另外的作用是為了業(yè)務(wù)流程平臺(tái)(Business Process Platform,BPP) 。雖然企業(yè)系統(tǒng)SOA服務(wù)為業(yè)務(wù)流程提供了充足的原材料,但是只有ESB才能提供統(tǒng)一和穩(wěn)定的服務(wù),為業(yè)務(wù)流程平臺(tái)的實(shí)現(xiàn)流程服務(wù)的可配置、個(gè)性化,快速響應(yīng)提供基礎(chǔ)。
5 代理模式

代理模式是指A系統(tǒng)需要訪問(wèn)B的系統(tǒng)服務(wù)必須通過(guò)River ESB,River ESB充當(dāng)代理了角色,完成服務(wù)轉(zhuǎn)發(fā)和信息的傳遞。這種模式安全性較高,B系統(tǒng)處于企業(yè)安全性最高的生產(chǎn)網(wǎng),并且不直接暴露給外網(wǎng)提供服務(wù)。A系統(tǒng)可以處于級(jí)別低的辦公網(wǎng),中間可以由River ESB完成代理功能。這樣既保證了B系統(tǒng)的安全,又能完成系統(tǒng)間服務(wù)的調(diào)用,用作安全性要求較高的場(chǎng)合。
6 點(diǎn)對(duì)點(diǎn)模式
點(diǎn)對(duì)點(diǎn)模式是指A系統(tǒng)通過(guò)River ESB拿到B系統(tǒng)的相關(guān)信息,然后直接調(diào)用B系統(tǒng)的服務(wù),River ESB僅僅充當(dāng)了服務(wù)地址解析的角色。這樣做的好處減少了網(wǎng)絡(luò)和River ESB服務(wù)器的開(kāi)銷(xiāo),因此性能大大提高。這種模式需要A、B系統(tǒng)處于同一網(wǎng)絡(luò),能直接互聯(lián),主要用作性能要求高的場(chǎng)合。River ESB提供專(zhuān)門(mén)的接口來(lái)調(diào)用,B系統(tǒng)具體部署在何處對(duì)于A系統(tǒng)仍然是不透明的,就象代理方式訪問(wèn)River ESB一樣。
7 異步消息服務(wù)
通常有這樣一種需求,A系統(tǒng)需要給B系統(tǒng)傳輸消息或數(shù)據(jù),B系統(tǒng)由于種種原因忙于別的事情(比如:正在做數(shù)據(jù)加工匯總等批量)不能立即響應(yīng)當(dāng)前服務(wù)請(qǐng)求。A系統(tǒng)可以將消息或數(shù)據(jù)上傳到River ESB服務(wù)器中,B系統(tǒng)有空的時(shí)候再?gòu)腞iver ESB服務(wù)器取回消息或數(shù)據(jù)。這樣就完成了系統(tǒng)間異步消息的傳輸。
8 完善簡(jiǎn)潔的服務(wù)、用戶(hù)、權(quán)限管理
服務(wù)注冊(cè)

消息設(shè)置

用戶(hù)設(shè)置

分組設(shè)置
9 支持ESB服務(wù)集群,負(fù)載均衡
River ESB支持集群,可以通過(guò)添加River ESB服務(wù)器得到性能上的線性提升。部署最復(fù)雜可分為兩級(jí),River ESB使用服務(wù)器集群,B系統(tǒng)也使用服務(wù)器集群。A系統(tǒng)使用River的接口方法就能完成ESB服務(wù)器均衡的調(diào)用。River ESB服務(wù)器也能均衡調(diào)用B系統(tǒng)的服務(wù)器。其中任何一臺(tái)服務(wù)器出現(xiàn)故障,所有的服務(wù)調(diào)用都會(huì)轉(zhuǎn)到其他服務(wù)其上,保證了River ESB的穩(wěn)定性。
10 服務(wù)監(jiān)控
集群監(jiān)控-監(jiān)控每臺(tái)River ESB服務(wù)器的調(diào)用次數(shù)和服務(wù)內(nèi)存消耗情況

服務(wù)監(jiān)控-分別監(jiān)控每個(gè)服務(wù)及在每臺(tái)River ESB服務(wù)器的調(diào)用情況

消息監(jiān)控-分別監(jiān)控隊(duì)列及在每臺(tái)River ESB服務(wù)器的分布情況
11 OpenHandX所有項(xiàng)目介紹
項(xiàng)目名稱(chēng) |
說(shuō)明 |
open-Common |
公共開(kāi)發(fā)包,整理了日常開(kāi)發(fā)中可能經(jīng)常用到的方法、工具類(lèi) |
open-Chart |
圖表工具,核心采用jfreechart,將jfreechart重新包裝簡(jiǎn)化,方便使用 |
open-Report |
多維度報(bào)表工具,支持表達(dá)式計(jì)算、匯總、分組、排序、集成圖表,支持Excel輸出 |
open-Real |
持久層報(bào)表工具,封裝jdbc的增、刪、改、查。具有自動(dòng)匹配sql條件,orm影射 |
open-Batch |
分布式批量架構(gòu),處理復(fù)雜耗時(shí)的數(shù)據(jù)加工或ETL加工 |
open-Unreal |
SS(Script-Service)腳本服務(wù)Web開(kāi)發(fā)框架,并提供WebServie功能 |
open-River |
基于open-unreal的ESB產(chǎn)品,提供代理和點(diǎn)對(duì)點(diǎn)模式,并提供快速消息傳輸通道 |
OpenHandX下載地址:http://code.google.com/p/openhandx2/
posted on 2012-11-12 21:24
彭明華 閱讀(1713)
評(píng)論(2) 編輯 收藏 所屬分類(lèi):
OpenHandX產(chǎn)品