<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    笨笨的思想片斷

    零碎片斷,雜七雜八。
    posts - 25, comments - 79, trackbacks - 0, articles - 0

    Java Service Request Broker 簡(jiǎn)介

    Java Service Request Broker(JSRB)是一個(gè) Java/C/C++ 的開(kāi)源項(xiàng)目
    Project URL http://jsrb.sourceforge.net

    項(xiàng)目目標(biāo)按照優(yōu)先順序依次是:
    1 高效,透明的通訊框架,屏蔽本地/遠(yuǎn)程網(wǎng)絡(luò)架構(gòu)的復(fù)雜性(高效來(lái)源于基于poll/epoll的NIO通訊框架,透明來(lái)源于多個(gè)JSRB Server之間的動(dòng)態(tài)級(jí)聯(lián)機(jī)制).
    2 高效率,穩(wěn)定的服務(wù)請(qǐng)求處理機(jī)制(高效來(lái)源于服務(wù)端為C語(yǔ)言實(shí)現(xiàn),穩(wěn)定來(lái)源于對(duì)服務(wù)進(jìn)程的不間斷監(jiān)控和自動(dòng)重啟動(dòng)機(jī)制)
    3 分布式事務(wù)處理能力(JSRB 作為分布式事務(wù)管理器,初步實(shí)現(xiàn)了DTP XA協(xié)議,還在開(kāi)發(fā)過(guò)程中).
    4 客戶端語(yǔ)言中立(語(yǔ)言無(wú)關(guān)通訊協(xié)議,客戶端提供Java或C API庫(kù)).

    JSRB 大致架構(gòu)如下:



    JSRB SERVICE 特性/訪問(wèn)方式

    1 SERVICE 無(wú)狀態(tài),通過(guò)二進(jìn)制數(shù)據(jù)傳遞輸入輸出數(shù)據(jù)
    2 運(yùn)行時(shí),可以有多個(gè)SERVICE實(shí)現(xiàn)進(jìn)程, JSRB會(huì)平衡調(diào)度這些進(jìn)程.

    SERVICE支持同步/異步兩種訪問(wèn)方式:
    SERVICE之間也支持forward和嵌套調(diào)用兩種方式

    同步訪問(wèn)SERVICE:
    Response Data = JsrbConection.syncCall("SERVICE NAME",Request Data);
    當(dāng)客戶端從syncCall中返回時(shí),它已經(jīng)獲得SERVICE的返回?cái)?shù)據(jù)



    異步訪問(wèn)SERVICE
    long key = JsrbConnection.asyncCall("SERVICE",Request Data);
    ...
    Response Data = JsrbConnection.fetchReply(key);
    客戶端可以提交服務(wù)請(qǐng)求后,過(guò)一段時(shí)間再去嘗試獲取數(shù)據(jù), 便衣客戶端同時(shí)提交多個(gè)服務(wù)請(qǐng)求,增加并發(fā)性.




    SERVICE FORWARD
    客戶端訪問(wèn)SVC1, SVC1完成后將該請(qǐng)求forward到SVC2, SVC2完成后直接返回客戶端數(shù)據(jù).



    SERVICE的嵌套調(diào)用
    SVC1 調(diào)用SVC2 并獲得SVC2的返回?cái)?shù)據(jù).







    一般問(wèn)題:
    1 為什么會(huì)選擇用Java 實(shí)現(xiàn)Service Request Broker
    答: Java跟C語(yǔ)言相比, 代碼執(zhí)行速度其實(shí)并不慢. 我們一般感覺(jué)J2EE 應(yīng)用慢,主要是由于IO(特別是socket和JDBC)慢造成的.
    Java 在多線程編程, 開(kāi)發(fā)的方便性方面比C/C++強(qiáng).
    JSRB在實(shí)現(xiàn)過(guò)程中,自行定義和實(shí)現(xiàn)了一套NIO框架, 增加了對(duì)于Linux epoll(Edge Triggered Mode)的支持, 同時(shí)為了實(shí)現(xiàn)與C進(jìn)程的高效通訊,自行實(shí)現(xiàn)了Sysv IPC和創(chuàng)建子進(jìn)程方面的Native代碼.


    2 為什么要用C實(shí)現(xiàn)業(yè)務(wù)代碼,作為Service的實(shí)現(xiàn)語(yǔ)言.
    從企業(yè)端的應(yīng)用來(lái)看, 企業(yè)應(yīng)用必定要跟數(shù)據(jù)庫(kù)打交道, 實(shí)際上C語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)要比Java訪問(wèn)數(shù)據(jù)庫(kù)快1到兩個(gè)數(shù)量級(jí). 甚至可以說(shuō), J2EE應(yīng)用響應(yīng)的大部分的延遲時(shí)間都耗費(fèi)在JDBC上.
    從大型項(xiàng)目的實(shí)施經(jīng)驗(yàn)來(lái)看, 將這部分代碼放在C進(jìn)程中, 盡管要多付出通訊方面的代價(jià),總體還是要比純Java的方案快得多.


    3 為什么分布式事務(wù)的優(yōu)先級(jí)最低
    從大型項(xiàng)目的實(shí)施經(jīng)驗(yàn)來(lái)看, 分布式事務(wù)由于運(yùn)行代價(jià)過(guò)高, 業(yè)務(wù)系統(tǒng)中用到的概率很小(基本上直接用數(shù)據(jù)庫(kù)的事務(wù)). 對(duì)于CICS/TUXEDO應(yīng)用而言,首先還是將CICS/TUXEDO 作為一個(gè)高效/穩(wěn)定的通訊和服務(wù)請(qǐng)求處理排隊(duì)框架來(lái)用.
    如果真要有分布式的交易的需求,一般采用流水對(duì)帳+沖正處理方式解決.


    4 為什么選擇無(wú)狀態(tài)方式實(shí)現(xiàn)SERVICE
    無(wú)狀態(tài)是提高并發(fā)效率, 實(shí)現(xiàn)透明故障遷移的最佳方式. Server端資源有限,為并發(fā)的成千上萬(wàn)個(gè)用戶同時(shí)維護(hù)狀態(tài)是非常困難的,這樣也會(huì)造成集群實(shí)現(xiàn)的困難.
    由于Client端是有狀態(tài)的,所以這在實(shí)現(xiàn)上其實(shí)問(wèn)題不大.



    今后得空還會(huì)慢慢寫更多文檔介紹JSRB的一些組件的實(shí)現(xiàn)方式和特性.


    Feedback

    # re: Java Service Request Broker簡(jiǎn)介[未登錄](méi)  回復(fù)  更多評(píng)論   

    2008-01-27 06:56 by 哈哈
    想法其實(shí)不錯(cuò),不過(guò)有些說(shuō)法需要實(shí)踐來(lái)證明。上來(lái)就說(shuō)“ Java跟C語(yǔ)言相比, 代碼執(zhí)行速度其實(shí)并不慢”,“實(shí)際上C語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)要比Java訪問(wèn)數(shù)據(jù)庫(kù)快1到兩個(gè)數(shù)量級(jí)”缺乏稅賦力。

    其實(shí)我反而覺(jué)得j2ee訪問(wèn)數(shù)據(jù)庫(kù)慢不完全因?yàn)閖dbc,更多的是數(shù)據(jù)庫(kù)本身就慢,設(shè)計(jì)有問(wèn)題或者查詢策略有問(wèn)題。
    還有一個(gè)瓶頸就是對(duì)象序列化。目前應(yīng)用最廣的webservice可以說(shuō)也是最緩慢最消耗資源的,相對(duì)的就得到了對(duì)各種平臺(tái)的良好兼容和支持。
    j2ee應(yīng)用還有一個(gè)大毛病就是太費(fèi)內(nèi)存,當(dāng)然換來(lái)的是程序的可靠性,平臺(tái)無(wú)關(guān)性。

    分布式事務(wù)我沒(méi)那么多經(jīng)驗(yàn),就不發(fā)表太多評(píng)論。
    你說(shuō)的JSRB可能確實(shí)不錯(cuò),不過(guò)我認(rèn)為還需要再進(jìn)行論證。至少?gòu)拈喿x了本文之后還沒(méi)真正感覺(jué)到太多驚喜。

    我覺(jué)得現(xiàn)在的企業(yè)應(yīng)用大多會(huì)吧降低程序和設(shè)計(jì)復(fù)雜度放在首位。如果這方面做的比較好可能更吸引人。

    "業(yè)務(wù)系統(tǒng)中用到的概覽很小"中的概覽是不是概率?
    主站蜘蛛池模板: 亚洲日韩激情无码一区| 免费大黄网站在线观| 很黄很色很刺激的视频免费| 成人免费在线看片| 毛片A级毛片免费播放| 国产成人无码免费视频97| 亚洲中久无码不卡永久在线观看| 亚洲色WWW成人永久网址| 久久91亚洲精品中文字幕| 亚洲成a人片毛片在线| 亚洲爆乳大丰满无码专区| 日本激情猛烈在线看免费观看| 99re8这里有精品热视频免费 | 亚洲资源最新版在线观看| 亚洲成a人片在线不卡一二三区| 一进一出60分钟免费视频| 久久免费视频精品| 最近2019中文字幕免费看最新| 亚洲а∨天堂久久精品| 亚洲色图国产精品| 亚洲av无码专区在线电影天堂 | 伊人久久五月丁香综合中文亚洲| 人人爽人人爽人人片A免费 | 免费的涩涩视频在线播放| 国产AV无码专区亚洲AV手机麻豆 | 久久久久久a亚洲欧洲AV| 亚洲精品中文字幕| 在线观看免费黄色网址| 无码人妻一区二区三区免费| 久久影院亚洲一区| 亚洲一区免费视频| 国产黄片不卡免费| xxxx日本免费| 一本色道久久综合亚洲精品高清| 亚洲国产成人精品久久| CAOPORM国产精品视频免费| 国产乱码免费卡1卡二卡3卡| 亚洲无线码在线一区观看| 亚洲人成网站色在线观看| 三上悠亚电影全集免费| 免费特级黄毛片在线成人观看|