freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

遠程調(diào)用和組件安全(已修改)

2025-01-06 22:10 本頁面
 

【正文】 第十章遠程調(diào)用和組件安全 遠程調(diào)用和組件,給程序功能的擴充提供了較大的支持。本章主要針對目前比較流行的遠程調(diào)用方法和常見的組件進行安全講解。 遠程調(diào)用 (RPC/RMI)為程序的分布式應(yīng)用開發(fā)架構(gòu)提供了技術(shù)支持,它不需要了解底層網(wǎng)絡(luò)通信協(xié)議 ,在應(yīng)用層通過網(wǎng)絡(luò)從遠程計算機程序上請求服務(wù)。本章首先講解遠程調(diào)用的基本原理和安全問題。 ActiveX是微軟技術(shù)系列中提供的一種控件開發(fā)模型,將組件或?qū)ο蟠虬岣吡顺绦虻闹赜眯裕?JavaApplet是采用 Java創(chuàng)建的基于 HTML的程序,瀏覽器將其暫時下載到用戶的硬盤上,并在 Web頁打開時在本地運行。本章對這兩種技術(shù)也進行了安全方面的講解。 DCOM是在微軟技術(shù)系列中,以 RPC為基礎(chǔ)思想建立的組件模型,能讓組件以可靠、安全和高效的方式進行網(wǎng)絡(luò)通訊; EJB是 SUN系列中以 RMI為基礎(chǔ)思想建立的服務(wù)器端組件模型,也能部署分布式應(yīng)用程序,并能充分利用 java跨平臺的優(yōu)勢。本章對這兩種技術(shù)進行了安全方面的闡述。CORBA由 OMG組織制訂,是 OMG為解決分布式處理環(huán)境中,不同平臺、不同語言甚至不同硬件系統(tǒng)之間的通訊而提出的一種解決方案。本章最后對 CORBA安全進行了講解。 遠程調(diào)用安全 遠程調(diào)用概述傳統(tǒng)的網(wǎng)絡(luò)分布式程序需要進行復(fù)雜的底層通信編程,但是有了遠程過程調(diào)用 (Remote Procedure Call, RPC)之后,開發(fā)網(wǎng)絡(luò)分布式應(yīng)用程序更加容易了。 RPC的出現(xiàn),讓開發(fā)者不需要了解底層網(wǎng)絡(luò)通信協(xié)議,直接通過網(wǎng)絡(luò)從遠程計算機程序上請求服務(wù)。該技術(shù)在 1981 年由 B. J . Nelson 在其博士論文中提出,后被開放式軟件基金會 (OSF) 制定為分布式計算環(huán)境 (DCE) 的分布式計算標(biāo)準(zhǔn)。RPC通信模型是基于客戶 / 服務(wù)器通信模型的,是一種同步通信方式,即:調(diào)用方必須等待服務(wù)器響應(yīng)。在客戶端, RPC為遠程過程提供了抽象,在調(diào)用時,其底層消息傳遞機制對客戶來說都是透明的。在 Java系列中, RMI(Remote Method Invocation)技術(shù)是遠程過程調(diào)用的一種實現(xiàn)。 RMI使用 Java遠程消息交換協(xié)議 (Java Remote Messaging Protocol, JRMP)進行通信。用 Java RMI開發(fā)的應(yīng)用系統(tǒng)可以部署在任何支持 Java運行環(huán)境的平臺上。如圖是 RPC/RMI通信過程:從圖中可以看出,在 RPC 中,服務(wù)以過程的形式放在服務(wù)器端,客戶負(fù)責(zé)請求服務(wù),服務(wù)器執(zhí)行客戶的請求,運行被調(diào)用的過程。 RPC 在整個調(diào)用過程中需要經(jīng)過的步驟如下: 1:客戶端請求進行遠程調(diào)用,激活客戶端存根,指定目標(biāo)服務(wù)器; 2:客戶端存根將被調(diào)用的過程和參數(shù)打包,作為消息發(fā)送給服務(wù)器,等待數(shù)據(jù)消息的返回; 3:服務(wù)器接收消息,服務(wù)器存根根據(jù)消息中的過程和參數(shù)等信息,調(diào)用服務(wù)器端的過程; 4:服務(wù)器將結(jié)果作為消息返回給客戶端存根; 5:客戶端存根將結(jié)果返回給用戶。什么情況下適合使用遠程調(diào)用呢?舉一個例子,某公司內(nèi)部辦公系統(tǒng)的結(jié)構(gòu)如下: 客戶端使用桌面應(yīng)用程序。很顯然,為了應(yīng)對數(shù)據(jù)庫的遷移或改變,訪問數(shù)據(jù)庫的代碼不應(yīng)該寫在客戶端,否則會造成大量客戶端的改變。此時,訪問數(shù)據(jù)庫的代碼寫在服務(wù)器端,作為一個方法或過程的形式對外發(fā)布,客戶端可在不知道服務(wù)器細(xì)節(jié),也不知道底層通信協(xié)議的基礎(chǔ)上,訪問服務(wù)器端的這些方法,就好像調(diào)用自己機器上的方法一樣。如果用 Java實現(xiàn),就可以使用 RMI技術(shù)。當(dāng)然, RMI還有很多其它的功能,讀者可以參考相應(yīng)文獻。 以上面應(yīng)用為例,服務(wù)器端訪問數(shù)據(jù)庫 (如查詢 )的代碼模擬如 。import 。import 。public class P10_01_Query extends UnicastRemoteObject implements P10_01_QueryInterface{ public P10_01_Query() throws RemoteException{}public String query() throws RemoteException{//查詢數(shù)據(jù)庫代碼return 查詢結(jié)果 。}}import 。import 。public interface P10_01_QueryInterface extends Remote{public String query() throws RemoteException。}:很顯然,服務(wù)器端的 P10_01_QueryInterface接口內(nèi)并沒有核心代碼。接下來將服務(wù)器對象對外發(fā)布。見代碼。import 。public class P10_01_RunServer { public static void main(String[] args)throws Exception { P10_01_QueryInterface queryInterface=new P10_01_Query()。 //啟動注冊表 ().exec(rmiregistry)。 //將這個對象起一個 JNDI名稱,放入注冊表 (queryInterface,queryInterface)。 }}運行,服務(wù)器端的對象即對外發(fā)布??蛻舳说玫椒?wù)器端發(fā)布的接口,然后遠程調(diào)用服務(wù)器端的方法,客戶端代碼見 :import 。public class P10_01_Client {public static void main(String[] args) throws Exception{P10_01_QueryInterface queryInterface=(P10_01_QueryInterface)(String result=()。(result)。}}運行,即可調(diào)用服務(wù)器端的 query方法。顯示結(jié)果為:從上面的例子可以看出,客戶端無需知道服務(wù)器端的核心代碼,只需要知道接口即可。當(dāng)然,在該
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1