真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用RMI實(shí)現(xiàn)基于Java的分布式計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)怎么用RMI實(shí)現(xiàn)基于Java的分布式計(jì)算,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、嘉禾網(wǎng)站維護(hù)、網(wǎng)站推廣。

Java 2 Enterprise Edition(J2EE)遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)框架允許你創(chuàng)建透明的、分布式的服務(wù)和應(yīng)用程序?;赗MI的應(yīng)用程序由Java對(duì)象構(gòu)成,這些對(duì)象相互調(diào)用,同時(shí)忽略對(duì)方的位置。換言之,一個(gè)Java對(duì)象可調(diào)用另一個(gè)虛擬機(jī)上的某個(gè)Java對(duì)象的方法,整個(gè)過(guò)程和調(diào)用同一個(gè)虛擬機(jī)上的某個(gè)Java對(duì)象的方法無(wú)異。駐留在不同虛擬機(jī)上的對(duì)象為了相互獲得引用,可以使用RMI的查找服務(wù),或者將對(duì)象引用作為方法調(diào)用的一個(gè)參數(shù)或者返回值來(lái)接收。參數(shù)和返回值借助Java的對(duì)象序列化機(jī)制由RMI來(lái)進(jìn)行封送。
遠(yuǎn)程對(duì)象和接口
Java提供了一個(gè)完全限定名稱為java.rmi.Remote的接口。任何對(duì)象要想?yún)⑴c和另一個(gè)Java對(duì)象的遠(yuǎn)程會(huì)話,就必須直接或間接地實(shí)現(xiàn)該接口。尤其要注意的是,任何由java.rmi.Remote接口來(lái)標(biāo)識(shí)的對(duì)象都暗示著它的方法可從其他任何虛擬機(jī)進(jìn)行調(diào)用。實(shí)現(xiàn)了 java.rmi.Remote接口的對(duì)象通常稱為“遠(yuǎn)程對(duì)象”,必須采用以下方式來(lái)聲明它的方法:
? 每個(gè)支持遠(yuǎn)程調(diào)用的方法都必須在其throws子句中聲明java.rmi.RemoteException。
? 對(duì)于一個(gè)可遠(yuǎn)程調(diào)用的方法,它的每個(gè)非基本(nonprimitive)參數(shù)或者返回值都必須直接或間接地聲明為實(shí)現(xiàn)了java.io.Serializable接口。
除了實(shí)現(xiàn)java.rmi.Remote接口和正確聲明任何遠(yuǎn)程方法之外,遠(yuǎn)程對(duì)象必須提供一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù),它能引發(fā)一個(gè)java.rmi.RemoteException異常。這就保證了對(duì)象可基于一種序列化狀態(tài)來(lái)遠(yuǎn)程構(gòu)造。
遠(yuǎn)程對(duì)象必須導(dǎo)出,以接收傳入的遠(yuǎn)程方法調(diào)用。為此,你通常需要擴(kuò)展java.rmi.server.UnicastRemoteObject或者java.rmi.activation.Activatable。通過(guò)對(duì)其中任何一個(gè)類進(jìn)行擴(kuò)展,遠(yuǎn)程對(duì)象就可在創(chuàng)建時(shí)自動(dòng)導(dǎo)出。

以下接口定義展示了java.rmi.Remote接口最典型的用法:
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface TimeKeeper extends Remote
{
public String currentDate() throws RemoteException;
public String currentTime() throws RemoteException;
}
由于String類聲明為實(shí)現(xiàn)了java.io.Serializable接口,所以String是遠(yuǎn)程方法的有效返回類型。
以下代碼展示了如何實(shí)現(xiàn)TimeKeeper接口,以便定義一個(gè)有效的遠(yuǎn)程對(duì)象:


import java.rmi.RemoteException;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class TimeKeeperImpl implements TimeKeeper
{
public TimeKeeperImpl()
throws RemoteException
{
}
public String currentDate() throws RemoteException
{
Calendar cal = new GregorianCalendar();
String retVal = (cal.get(Calendar.MONTH) + "/" +
cal.get(Calendar.DAY_OF_MONTH) + "/" +
cal.get(Calendar.YEAR));
return retVal;
}
public String currentTime() throws RemoteException
{
Calendar cal = new GregorianCalendar();
String retVal = (cal.get(Calendar.HOUR_OF_DAY) + ":" +
cal.get(Calendar.MINUTE) + ":" +
cal.get(Calendar.SECOND));
return retVal;
}
}

關(guān)于“怎么用RMI實(shí)現(xiàn)基于Java的分布式計(jì)算”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


網(wǎng)站名稱:怎么用RMI實(shí)現(xiàn)基于Java的分布式計(jì)算
地址分享:http://weahome.cn/article/pjschg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部