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

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

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

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    基于Tuscany的Web應(yīng)用程序分析

    Tuscany下典型的Web架構(gòu):

    乍一看,平淡無奇,這不就是我們常用的Web目錄結(jié)構(gòu)么?沒錯!

    但玄機(jī)出在Web.xml和Calculator.composite上,下面我們分別看下這兩個文件:

    Web.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
    Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>

    <display-name>Apache Tuscany Calculator Web Service Sample</display-name>

    <filter>
    <filter-name>tuscany</filter-name>
    <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
    </filter>

    <filter-mapping>
    <filter-name>tuscany</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list id="WelcomeFileList">
    <welcome-file>calc.jsp</welcome-file>
    </welcome-file-list>

    </web-app>

    這里使用了TuscanyServletFilter過濾器,此過濾器的作用我們會在后文提到。

    Calculator.composite

    <?xml version="1.0" encoding="UTF-8"?>
    <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
    targetNamespace="http://sample"
    xmlns:sample="http://sample"
    name="Calculator">

    <component name="CalculatorServiceComponent">
    <implementation.java class="calculator.CalculatorServiceImpl"/>
    <reference name="addService" target="AddServiceComponent"></reference>
    <reference name="subtractService" target="SubtractServiceComponent"></reference>
    <reference name="multiplyService" target="MultiplyServiceComponent"></reference>
    <reference name="divideService" target="DivideServiceComponent"></reference>
    </component>

    <component name="AddServiceComponent">
    <implementation.java class="calculator.AddServiceImpl"/>
    </component>

    <component name="SubtractServiceComponent">
    <implementation.java class="calculator.SubtractServiceImpl"/>
    </component>

    <component name="MultiplyServiceComponent">
    <implementation.java class="calculator.MultiplyServiceImpl"/>
    </component>

    <component name="DivideServiceComponent">
    <implementation.java class="calculator.DivideServiceImpl"/>
    </component>

    </composite>
    此文件類似Spring,是Tuscany的服務(wù)配置文件,在此文件中提供了組件、實現(xiàn)的聲明及配置。

    下面,再結(jié)合調(diào)用時序圖,來詳述Tuscany在此應(yīng)用中的位置及作用。

    由此時序圖可知,整個流程如下:

    1、應(yīng)用服務(wù)器啟動;

    2、客戶端訪問calc.jsp頁面,服務(wù)器調(diào)用Web.xml中的配置TuscanyServletFilter過濾器;

    3、在TuscanyServletFilter過濾器中,首先得到一個WebAppServletHost實例,WebAppServletHost是在Web應(yīng)用環(huán)境中使用的Tuscany功能提供者;

    4、在WebAppServletHost中,得到一個SCADomain實例,并將之放入ServletContext上下文中,以后可藉由相應(yīng)的key得到此SCADomain實例;

    5、calc.jsp中成功取得SCADomain實例;

    6、通過SCADomain實例取得CalculatorServiceComponent組件;

    7、調(diào)用CalculatorServiceComponent組件的各種業(yè)務(wù)方法實施計算。

    這一個完整的過程,演示了Tuscany在一個Web應(yīng)用中所充當(dāng)?shù)慕巧谀撤N意義上Tuscany和Spring是相同的,只不過粒度不一樣,

    Spring注重的是bean的管理,是技術(shù)層面的,粒度相對較細(xì);而Tuscany關(guān)注 則是業(yè)務(wù)組件的管理,是業(yè)務(wù)層面的,粒度相對較粗。

    從軟件重用角度講,業(yè)務(wù)重用比技術(shù)重用更加受歡迎,操作起來也更加容易。業(yè)務(wù)重用是趨勢。現(xiàn)在的SAAS熱潮更加證明,軟件即服務(wù)的

    時代已經(jīng)到來。

    posted on 2008-04-27 21:35 gembin 閱讀(645) 評論(0)  編輯  收藏 所屬分類: SCASOA

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    free counters
    主站蜘蛛池模板: 午夜免费福利网站| 手机在线免费视频| 亚洲人精品午夜射精日韩 | 人人揉揉香蕉大免费不卡| 国产国拍亚洲精品福利| 国产va免费观看| 亚洲va无码手机在线电影| 免费日本一区二区| 久久久亚洲AV波多野结衣| 免费观看国产网址你懂的| 亚洲娇小性色xxxx| 国产最新凸凹视频免费| 国产精品亚洲一区二区无码| av无码东京热亚洲男人的天堂| 人人爽人人爽人人片av免费| 黑人大战亚洲人精品一区| 无码av免费一区二区三区| 亚洲毛片免费观看| 成**人免费一级毛片| 爱情岛论坛免费视频| 亚洲精品国偷自产在线| 中文字幕免费视频| 亚洲第一综合天堂另类专| 亚洲一级Av无码毛片久久精品| 高清永久免费观看| 亚洲小说图片视频| 又粗又大又硬又爽的免费视频| 91国内免费在线视频| 亚洲国产成人超福利久久精品| 国产一区二区视频免费| 国产免费一级高清淫曰本片| 亚洲高清资源在线观看| 国产一区二区三区在线观看免费| 中文在线观看国语高清免费| 亚洲明星合成图综合区在线| 国产jizzjizz视频免费看| 99精品视频在线观看免费专区 | 亚洲欧洲综合在线| 免费二级毛片免费完整视频| 免费国产成人午夜在线观看| 亚洲色偷偷综合亚洲AV伊人蜜桃 |