国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于jCOM搭建Java-微軟信息橋梁(上)

2019-11-18 11:16:39
字體:
來源:轉載
供稿:網友

一、jCOM簡介

據Gartner的研究分析,在名列全球前1000名的企業中,大約90%都混合應用了java和Windows技術。然而,Java技術和微軟技術分別提供了豐富但卻迥然不同的解決方案,或至少說這兩種方案之間的差異是巨大的。

為了解決這一矛盾,Sun率先提出了JNI解決方案。JNI,即Java本機接口,是編寫Java本機方法和把Java虛擬機嵌入到本機應用程序中的標準編程接口。Java本機接口的主要目的就是保證本機方法庫在不同平臺上的Java虛擬機中的二進制兼容性。使用JNI編寫程序,就可以很方便地做到程序的跨平臺可移植。盡管如此,Sun提供的JNI解決方案只是底層的API包裝,在實際開發中用到大量Java/COM互操作時,直接從JNI級進行開發顯然效率并不高。

為此,大大小小的公司甚至個人都試圖提供全部或局部的Java/COM互操作解決方案。例如,WebLogic提供的jCOM技術,bridge2java(IBM提供的基于Java本機接口和COM技術,答應把ActiveX對象輕易地集成到Java環境中),jacoZoom(是一個java類庫—它答應你在java程序中使用ActiveX控件和ActiveX服務器,基于Java本機接口和COM技術,答應使用于Windows平臺上的任何java環境中),J-Integra for COM(http://j-integra.intrinsyc.com/),還有一個小型的JCom橋接庫(http://sourceforge.net/PRojects/jcom/,它也支持從Java中調用COM對象,例如Excel工作簿,VB的COM對象等)。其中,WebLogic提供的jCOM技術為微軟的COM對象和Java對象提供一個穩定、無縫的機制,讓這兩種對象可以協同工作。

jCOM,即Java/COM橋,它是一種用軟件實現的橋接機制,可以幫助Java應用程序快速訪問微軟的COM/DCOM組件。而且,微軟的COM應用程序也可以通過這個機制訪問基于Java的對象。jCOM不僅具有實現相對簡單的特點,而且其最吸人的部分在于它的透明性。對Java程序員來說,COM對象看起來與其他Java對象沒有什么不同。而對COM開發人員來說,遠程Java對象看起來就象是本機COM組件。在這些對象中可以找到jCOM運行時刻引擎進行動態類型映射,因此從表面上屏蔽了數據類型間的差異。遠程對象的數據類型被動態地轉換成調用程序所使用的基元類型。對Java開發人員來說,COM數據類型表現得就象Java基元類型;而對COM開發人員來說,Java數據類型看起來就象是COM數據類型。

本文將重點討論BEA的Java/COM解決方案。

二、jCOM工作原理

jCOM聲稱以雙向方式工作,實際只是答應在Java和COM組件之間,在任意一個方向上通信—Java對象可以調用COM組件,COM組件又可以調用Java對象。當然,在這兩種不同的分布式組件框架之間,有著兩種截然不同的底層體系結構負責線路級通信。在運行時,jCOM內部設置了一個雙協議棧環境,實現對底層兩個彼此獨立的基礎結構的支持(參考圖1)。對于COM組件,有一個在DCE遠程過程調用之上的COM/DCOM實現。對于Java對象,有一個在Java遠程方法IIOP(Internet Inter-ORB)之上的遠程方法調用(RMI)實現。調用要通過這些協議棧,并通過內部的協議轉換進行處理,內部的協議轉換能夠有效地屏蔽掉低一級的協議。對于EJB來說,來自COM客戶的調用看起來就似乎是來自Java客戶的調用。對于COM組件來說,來自Java客戶的調用看起來就好象是來自一個普通的COM客戶。

jCOM提供了能夠自動生成更高級別COM/DCOM代理以及RMI存根的工具。客戶程序用COM/DCOM代理以及RMI存根在這兩個不同的基礎結構間封裝并傳送調用。jCOM可以設置成本機模式,這樣就可以利用本機操作系統的動態鏈接庫,從而減輕DCOM的網絡負荷,并極大地提高系統性能。

下面看一下Java對象如何調用COM對象:

import com.jCOMSample.account.*;

clsaccount account=new clsaccount();

double accountbalance=getaccountbalance("Xiao Wang");

圖1演示了當Java對象訪問COM組件的時候事件產生的標準流程。首先,jCOM為要訪問的COM組件生成—個代理對象,Java對象開始調用這個代理對象。然后,代理對象與jCOM運行時引擎通信,jCOM運行時引擎又把代理對象的消息封裝成遠程過程調用的COM/DCOM形式,通過TCP/ip發送到Windows環境里的COM組件。在最低的一層上,jCOM使用服務器上的標準Java網絡類進行調用。

基于jCOM搭建Java-微軟信息橋梁(上)

點擊查看大圖


圖1.jCOM運行時刻環境 點擊看原圖



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金沙县| 乌兰浩特市| 三明市| 二连浩特市| 加查县| 寿宁县| 囊谦县| 平和县| 屏东县| 前郭尔| 上蔡县| 太湖县| 高尔夫| 聊城市| 海伦市| 循化| 满洲里市| 嘉祥县| 灵宝市| 额敏县| 东兴市| 来凤县| 广河县| 垣曲县| 张掖市| 顺义区| 德保县| 芦山县| 壶关县| 娄底市| 鄂尔多斯市| 丰城市| 崇仁县| 甘孜县| 隆安县| 马尔康县| 定南县| 凌源市| 永登县| 新泰市| 南投市|