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

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

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

    cuiyi's blog(崔毅 crazycy)

    記錄點滴 鑒往事之得失 以資于發(fā)展
    數(shù)據(jù)加載中……

    可移植性(側(cè)重Web Service)分析

    本系列文章目錄結(jié)構(gòu)

    ?????? 我對 SOA 的認識(一)(結(jié)合平時累積的筆記,不排除有引用) ( 修改版 )

    ?????? 我對 SOA 的認識(二)(結(jié)合平時累積的筆記,不排除有引用)

    ?????? 我對 SOA 的認識(三): SOA WebService 戰(zhàn)略與戰(zhàn)術(shù)

    ?????? SOA 和目前業(yè)成熟應(yīng)用的 JavaEE 應(yīng)用方案的一點看法

    ?????? JavaEE 中的三層結(jié)構(gòu)和 MVC

    ?????? SOA 服務(wù)模型分析設(shè)計的一些概念

    ?????? SOA 涉及的組件和服務(wù)概念的整理(摘自水木) ?

    ? SOA 涉及的 想 & 產(chǎn)品 & 技術(shù)

    ? 可移植性(側(cè)重Web Service )分析

    10?? 任志宏關(guān)于 如何使用 IBM SOA 相關(guān)技術(shù)、產(chǎn)品和服務(wù)實現(xiàn)一個典型的業(yè)務(wù)場景 (轉(zhuǎn))

    非常感謝你的閱讀,如果你覺得好或者對你有幫助,請積極給一個留言反饋以示鼓勵。 ?

    提到這個話題,不免得提及Java設(shè)計理念,以及與Web Service可移植性密切相關(guān)的三個JSR規(guī)范:JSR1.9、JSR175、JSR181

    提到可移植性,我們又不免想到如下方式:
    ??? ①XML配置文件屏蔽差異,類似Facade Pattern的形式統(tǒng)一入口
    ??? ②注釋
    ??? ③類似JBoss提出的Micro-Container

    我們進入正文:

    Java一個理念是:Write Once, Run AnyWhere。Java哲學(xué):Java追求平衡的哲學(xué)--即簡單和力量的共贏。
    ??? 從目標可以看出可移植性是Java的一個設(shè)計理念。
    ??? 但Java世界的可移植性束縛苦惱著許多跨應(yīng)用服務(wù)器的開發(fā)者、部署者。

    JSR109
    ??? A. 目標:以一種可移植和互操作的方式為J2EE構(gòu)建和訪問Web服務(wù)(即Web Service在J2EE上的實現(xiàn))。它指定了下面的條目:
    ??????? a. 客戶端編程模型:無論客戶端如何訪問Web服務(wù),Web服務(wù)就像一個普通的遠程對象一樣(即J2EE如何把Web Service作為傳統(tǒng)的遠程對象來訪問);
    ??????? b. 服務(wù)器端編程模型:Web服務(wù)怎樣作為SLSB或JAX-RPC形式的Servlet實現(xiàn)(即怎樣用Servlet和SLSB來實現(xiàn)Web Service并使Web Service具有和它們一樣的生命周期)
    ??????? c. 部署模型:使用部署描述符來定義可以在所有符合J2EE規(guī)范的應(yīng)用服務(wù)器之間移植Web Service(即如何在應(yīng)用服務(wù)器上部署Web Service)
    ??? B. 個人觀點:a、b兩點表現(xiàn)尚可,c著實不讓人滿意,因為實現(xiàn)互操作的目標沒有問題,但是可移植性著實難以讓人滿意,問題關(guān)鍵是:部署描述符:
    ??? C. 疑問:為何JSR109不明確規(guī)定部署描述符的明確XML Schema,尤其是文件名、文件的標簽、以及部署的文件個數(shù)。

    JSR175(Java語言元數(shù)據(jù)工具)
    ??? A. 目標:用于 Java 編程語言的元數(shù)據(jù),就是使用注釋編程
    ??? B. 個人觀點:①簡化了開發(fā)尤其是配置文件 ②可移植性成為可能 ③類似“靜態(tài)類”機制成為可能
    ?? 說明:只要加載了類,類中的注釋可以是運行中的,加載類的時候完成了配置,而這個加載可以是入口函數(shù)的調(diào)用、可以是Servlet加載。
    ????????????我們知道只要加載了類,靜態(tài)類變量、靜態(tài)方法就自動被初始化到內(nèi)存中;同理,要是有“靜態(tài)類”.......
    ??? C. 疑問:注釋能否像接口、類那樣進行功能自定義化呢?!
    ??? D. 摘錄:
    ??? JSR175僅僅有少量的注釋類型變量,而這些有趣的注釋類型變量主要來自于其他的JSRs:
    ??????? ?JSR 250: Java平臺的公共注釋
    ??????? ?JSR 220: 企業(yè)級JavaBeans 3.0
    ??????? ?JSR 224: 基于XML的Java API Web Services (JAX-WS) 2.0
    ??????? ?JSR 181: Java平臺的Web Services Metadata

    JSR181(Java Web服務(wù)元數(shù)據(jù))
    ??? A. 目標:致力于Java Web Service。
    ??????? 基本理念:Java Web服務(wù)僅僅是帶有某些標注的普通Java對象(POJO)。使用帶有Java標注的Java語言編寫Web服務(wù),并且任何符合規(guī)范的處理器都能處理這些標注,并生成適用于目標運行時環(huán)境的Web Service。
    ??????? 涉及范圍:
    ????? ?①定義用于進行Web服務(wù)應(yīng)用程序編程的帶注釋的Java語法
    ?????? ②提供可促進和加速開發(fā)的簡化Web服務(wù)開發(fā)模型
    ????? ?③提供可通過工具進行操作的語法
    ?????? ④定義構(gòu)建和部署Web服務(wù)的標準,而無須了解通用API和部署描述符的知識和使用相關(guān)實現(xiàn)
    ??? B. 個人觀點:由于規(guī)范沒有指定web服務(wù)的運行環(huán)境,只提供了一個處理帶注釋的java文件的模型,以及到Java EE運行期間的環(huán)境的映射。這不免又存在不可移植性。

    本文主要談?wù)摽梢浦残?,我們首先分析為何會出現(xiàn)這個現(xiàn)象?

    首先我們知道J2EE中,部署后的應(yīng)用程序的入口是META-INF文件夾,而這個文件夾下的部署描述文件則帶有基本的描述信息。
    在Web Service中, META-INF下具有部署描述符:webservices.xml和jax-rpc-mapping.xml;以及服務(wù)描述文件.wsdl。
    ??? webservices.xml依然沒有逃脫出JSR109在可移植性不足的陰影,那我們可以知道,由于WSDL是國際規(guī)范,XML Schema明確加以描述,只要消除了部署描述符的差異,可移植性必然增強。
    ??? 那如果沒有部署描述符如何?
    ??? 首先,我們來分析webservices.xml的作用:Web服務(wù)入口下的webservices.xml告訴容器在何處查找WSDL,以及將什么接口和實現(xiàn)用作Web服務(wù)。
    ??? 同時,我們知道這些信息的解析起到了一個注冊表的作用:map(uri-wso對象) wso對象包含:wsdl文件,jax-mapping文件,服務(wù)接口、實現(xiàn)類,等。
    ??? 那我們有兩種策略
      ①運行中生成部署描述符-Java的注釋
     ?、诜艞壊渴鹈枋龇母拍睿?br />???
    ??? 解釋第①中做法
    ??? JSR181處理器,一定要在運行中生成符合J2EE規(guī)范的部署描述符,而不是部署前就已生成好。
    ??? 方式<一>:靜態(tài)類,部署時必然要部署java類,如果有靜態(tài)類(JVM增加功能)概念,則可以通過帶注釋的靜態(tài)類來完成。
    ??? 方式<二>:Servlet加載一個類,這個類中具備完善的注釋,Servlet的加載機制必然導(dǎo)致類的加載,利用運行時注釋生成部署描述符。
    ???

    解釋第②中做法
    ??? 不兼容是因為沒有嚴格的XML Schema來描述部署描述符,而入口卻是這些部署描述符的XML文件;
    ??? 如果有部署描述符(包含運行中生成),無非是解析XML文件得到一個類似注冊表的作用;
    ??? 我們直接由java類來生成這些內(nèi)存注冊信息,而不是通過運行時注釋。
    ??? 方式<一>:靜態(tài)類,部署時必然要部署java類,如果有靜態(tài)類(JVM增加功能)概念。
    ??? 方式<二>:Servlet加載一個類,這個類中具備完善的注釋,Servlet的加載機制必然導(dǎo)致類的加載,利用運行時注釋生成內(nèi)存注冊信息。
    ??? 這兩種方式不由得想起是否可以在META-INF下放置一個類?
    ??? 是否可以類似Servlet機制,從Class-Loader入手?
    ??? 是否可以繼續(xù)改進JVM,直接可認出直接加載的類?

    ??? 考慮到各集團的利益,可以看出JCP更多的致力于改良,而改革動作很少,改良往往意味著不能更好的滿足新需求的呼喚,也埋下隱患.
    ???

    Thanks very much to visit blog,? welcome your feedback,? your feedback is the Driver && Power to me

    posted on 2006-11-24 22:20 crazycy 閱讀(1077) 評論(2)  編輯  收藏 所屬分類: JavaEE技術(shù) 、SOA、WebService、BPEL

    評論

    # re: JSR181規(guī)范的研究分析(JSR181 及 更深入化改進)  回復(fù)  更多評論   

    actually you can find the function of annotaion, it will help to understand jsr181's real function.
    2006-12-02 11:57 | fengtianxp[匿名]

    # re: 可移植性(側(cè)重Web Service)分析  回復(fù)  更多評論   

    hao crazycy da ge
    i want 2 learn
    2007-04-22 15:08 | 思寬
    主站蜘蛛池模板: 亚洲国产婷婷六月丁香| 亚洲熟女乱综合一区二区| 精品亚洲成AV人在线观看| 精品免费视在线观看| 亚洲成av人在线视| 日韩人妻无码精品久久免费一 | 国产成人涩涩涩视频在线观看免费 | 亚洲国产精品久久久久久| 野花香高清视频在线观看免费| 国产精品亚洲精品日韩已满| 久久久久国产精品免费网站| 亚洲精品影院久久久久久| 免费国产作爱视频网站| 亚洲国产成人久久一区二区三区 | 黄页免费的网站勿入免费直接进入| 91亚洲国产成人久久精品网址| 成人五级毛片免费播放| 青娱乐在线免费观看视频| 国产亚洲精品拍拍拍拍拍| 成全动漫视频在线观看免费高清版下载| 国产亚洲成AV人片在线观黄桃| 99re在线这里只有精品免费| 亚洲成a人片在线看| 国产精品久久久久影院免费| 9久热精品免费观看视频| 久久久久亚洲AV成人片| 最新欧洲大片免费在线| 国产精品亚洲二区在线| 久久亚洲精品视频| 好吊妞998视频免费观看在线| 一级看片免费视频| 97se亚洲综合在线| 四虎永久在线精品视频免费观看| 国产一级a毛一级a看免费人娇| 亚洲特级aaaaaa毛片| 国产精品成人四虎免费视频| 在线看片免费人成视频久网下载 | 亚洲另类激情专区小说图片| 免费女人高潮流视频在线观看| 亚洲欧美日韩中文字幕在线一区| 成人午夜亚洲精品无码网站|