欢迎来到天天文库
浏览记录
ID:43810538
大小:988.00 KB
页数:177页
时间:2019-10-15
《分布式系统-RMIamp;CORBA》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java分布式系统RMI&CORBA软件体系结构演化•Host-based•用户接口,业务逻辑,数据库统统包含在一个大的应用中软件体系结构演化•Client/Server•数据库位于Server•用户接口在客户•业务逻辑位于客户或者服务器或者二者都有分布式系统•应用系统由分布在网络上不同计算机中的对象组成,这些对象可以使用本应用系统中的对象服务,也可以使用其它应用系统中的对象服务基于Socket的远程连接•java.net包提供了基本的基于TCP/IP的通信•Socket–区分不同应用程序进程间的网络通信和连接,主要使用3个参数:通信的目的IP地址、使用的传输层协议(TCP或
2、UDP)和使用的端口号。通过将这3个参数结合起来,与一个Socket绑定,应用层就可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。SocketTest.javaimportjava.io.*;importjava.net.*;publicclassSocketTest{publicstaticBufferedReadergetBufferedReader(Socketsocket)throwsIOException{InputStreaminputStream=socket.getInputStream();InputStr
3、eamReaderinputStreamReader=newInputStreamReader(inputStream);BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);returnbufferedReader;}publicstaticvoidmain(String[]args){Socketsocket=null;try{StringdomainName="time-a.timefreq.bldrdoc.gov";intport=13;socket=newSocket(domainName
4、,port);System.out.println("Socketacquired");BufferedReaderin=getBufferedReader(socket);while(true){Stringline=in.readLine();if(line==null)break;if(line.length()!=0)System.out.println(line);}}catch(IOExceptione){System.out.println("Error"+e);}finally{if(socket!=null){try{socket.close();}catc
5、h(IOExceptioneio){System.out.println(eio);}}}}}缺点•仅支持程序间基于流的连接•程序员需要考虑底层细节分布式对象系统•分布式对象系统的要素•体系结构•RMI:Java的远程计算设施JavaRemoteObjectInvocation(RMI)•就像调用本地对象方法一样调用远程方法LocalMachine(Client)RemoteMachine(Server)SampleServerremoteObject;ints;…s=remoteObject.sum(1,2);1,2publicintsum(inta,intb){retur
6、na+b;}System.out.println(s);3RMI体系结构BusinessObjectInterfacemyBusObj=(BusinesObjectInterface)Naming.lookup("fred")wheretheserver-sideobject(JVM#2)isoftypeBusinessObjectImplwhichimplementsBusinessObjectInterfaceTheStubandSkeletonnotleekcallsRMIClientRMIServerStubreturn•客户对远程方法的调用发送给stub.–stub
7、负责把调用适当地处理后传输给服务器侧的skeleton–打开socket–Marshaling参数–发送数据流.•Skeleton接收远程调用,unmarshals参数,并调用实际的远程对象实现RMI场景1.某java程序创建了一个用来接受远程访问的对象,该程序联系名字服务,按名字注册该对象,然后进入等待请求状态,该程序称为Server2.另外一个程序,作为Client,首先联系名字服务,请求与对象建立连接3.名字服务器查找对象,并定位Server4.名字服务器和对象管理器为Client返回Stub对象
此文档下载收益归作者所有