中间件_8

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6
JAVA和C++比较
.java
package adder;
import java.rmi.*; import java.rmi.server.*; public interface Adder extends Remote { public int add(int x, int y); } public class AdderImpl extends UnicastRemoteObject implements Adder { public AdderImpl() {…… } public int add(int x, int y) { return x + y; } public static void main(String args[]) {…… } }
象一样。
远程服务器:创建远程对象的实例 客户端:使用远程对象
存根
– 存在于客户端 – 远程对象的本地映象 骨架 – 存在于服务器 – 接收客户存根的请求 – 和真正的远程对象进行交互 – 传送服务器响应到客户
RMI registry
简单的命名和查找远程对象的服务 远程对象在服务器端注册 客户能够发现远程对象和找到远程对象引用
3
What is Java 2 Platform
J2SE 关健的技术/APIs

Java 2 SDK(J2SE) Java 2 运行环境 Java插件 Java Web应用 Java热点服务和虚拟机 Java基本类(JFC) 收集框架 Swing组件 即插即用 安全 Java IDL JDBC 远程方法调用
Server
2
“Fred”
Registry Virtual Machine
RMI 流程(2)
Client Virtual Machine Client 3. Client requests Registry Serverobject Virtualfrom Machine 4. Registry returns remote reference Remote (and stub gets created) Object Skeleton
Sun公司1996年1月发布JDK1.0,1997年2月发布JDK1.1,
Java开始在企业中应用。
1998年12月发布JDK1.2,即Java 2 平台,并于1999年6月经
集成重组后重新发布。
目前JDK的最高版本为1.4。
2
What is Java 2 Platform
目前主要的Java平台及特点如下:
创建远程对象
定义远程接口
– extends java.rmi.Remote 定义一个类实现远程对象接口 – extends java.rmi.RemoteObject – or java.rmi.UnicastRemoteObject
Remote Interface 例子
import java.rmi.*; public interface Adder extends Remote { public int add(int x, int y) throws RemoteException; }
编译远程Classes
Adder.java (interface)
javac
Adder.class (interface classfile)
AdderImpl_Skel.class (skeleton classfile)
16
JAVA和C++比较
• CLASSPATH = .;C:\java\classes;C:\java\lib\rt.jar
17
RMI
18
RMI 层次
Java Virtual Machine Client
Java Virtual Machine Remote Object
Stub
Skeleton
RMI 系统体系结构
Client Virtual Machine Client Server Virtual Machine Remote Object Skeleton
Stub
Server
“Fred” Registry Virtual Machine
RMI 流程(1)
Client Virtual Machine 1. Server Creates Remote Object ClientRegisters Remote Object 2. Server Server Virtual Machine Remote Object
9
JAVA和C++比较

纯面向对象,无过程、结构和联合等,所有的内容都封装 在类中 在Java里,没有象C和C++那样的指针。用new创建一个对 象的时候,会获得一个引用 Circle circle=new Circle; circle.Draw();
可解决内存泄漏,指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私 有成员,从而破坏安全性
Remote Class 例子
import java.rmi.*; import java.rmi.server.*; public class AdderImpl extends UnicastRemoteObject implements Adder { public AdderImpl() throws RemoteException { } public int add(int x, int y) throws RemoteException { return x + y; } public static void main(String args[]) { ……} }
myTool.java: package puterCollege uestc\computerCollege\myTool.class
15
JAVA和C++比较
• import(引 用) 类 包(class package)
myApp.java: import puterCollege.* or import puterCollege. myTool
4
What is Java 2 Platform
J2EE 关健的技术/APIs

Enterprise JavaBeans (EJB) 体系结构 JavaServer Pages(JSP) Java Servlet Java 名称和目录接口 (JNDI) Java IDL JDBC Java Message Service (JMS) Java 事务 (JTA) Java 事务服务(JTS) JavaMail RMI-IIOP Software Development Kit & Application Model Java 2 SDK, Enterprise Edition (J2EE) Sun BluePrints Design Guidelines for J2EE
java.rmi.Remote java\rmi\Remote.class
•.jar rt.jar
11
JAVA和C++比较
12
JAVA和C++比较
13
JAVA和C++比较
14
JAVA和C++比较
• 每 一 个 类 和 界 面 的名 字 都 包 含 在 某 个 包 中。 package packageName
瘦客户端的引入使internet接入方便而计算被集中至服务器端使性能提高成为可能56应用程序各部分之间松耦合从而应用程序各部分的更新相互独立业务逻辑集中放在服务器上由所有用户共享使得系统的维护和更新变得简单也更安全数据库不再和每一个活动的用户保持一个连接而是由应用程序组件负责与数据库打交道降低数据库服务器的负担提高了性能n层应用程序的优点57为什么需要j2ee在企业级应用开发中所面临的而且必须解决的问题
Java
Java是Sun公司推出的一种编程语言。它是一种 通过解释方式来执行的语言,语法规则和C++类似 。 Java运行在Java虚拟机(JVM)上,独立于硬件 配置和操作系统,具有跨平台特性。用Java开发的 程序可以在网络上传输,并运行于任何客户机上。
1
What is Java 2 Platform
J2ME - Java 2 Micro Edition:用于创建嵌入式应用程序的Java
平台(如PDA、仪表)。 J2SE - Java 2 Standard Edition:用于创建典型的桌面与工作站 应用的Java平台。 J2EE - Java 2 Enterprise Edition:用于创建可扩缩的企业应用 的Java平台。
编译 Remote Classes
编译Java class
– javac
• reads .java file • produces .class file
编译存根和骨架
– rmic
• reads .class file • produces _Skel.class and _Stub.class
7
JAVA和C++比较
.java和.class
经Javac生成与体系结构无关的字节码指令,只要安装了Java 运行时系统(JRE,Java虚拟机),Java程序就可在任意的处理 器上运行。
8
JAVA和C++比较
class
class Horse • interface interface IObject • extends class Zebra extends Horse interface Ishape extends IObject • implements interface IShape class Circle implements IShape

Java中没有virtual关键字,所有非static方法都肯定会用到动 态绑定。
10
JAVA和C++比较
•包(Packages) 包(Package)由 一 组 类(class)和 界 面(interface)组 成。 它 管 理大 型 名 字 空 间, 避 免 名 字 冲 突。按 照 一 般 的 习 惯, 它 的 名 字 是 由“.” 号 分 隔 的 单 词 构 成, 第 一 个 单 词 通 常 是 开 发 这 个 包 的 组织 的 名 称。
Java的版本历史:从一种语言发展为一种平台
Java的前身是一种与平台无关的语言-“OaK‖,诞生于1991
年Sun公司的一个研究项目,最初目的是为了应用于消费类 电子设备的开发;
1994年Internet开始起步,1995年NetScape宣布把Java集成到
其浏览器中,可执行的Java代码能以Applet的形式在浏览器 中运行,形成活泼的Web页面,Java开始流行。
Remote Reference Layer
Remote Reference Layer
Transport Layer
TCP
Transport Layer
远程对象:方法能被不同宿主机上的Java虚拟机调用的对象。 远程接口:一个声明远程对象的方法的接口。 远程对象实现:一个实现远程对象接口方法的类。 远程对象引用:对于远程对象的使用,在客户端象调用本地对
4
Stub
3
Server
“Fred”
Registry Virtual Machine
RMI 流程(3)
Client Virtual Machine Client
5 6 7
Server Virtual Machine Remote Object Skeleton
Stub
Server
5. Client invokes stub method 6. Stub talks to skeleton 7. Skeleton invokes remote object method “Fred” Registry Virtual Machine
5
What is Java 2 Platform
J2ME 关健的技术/APIs

Java 2 Platform, Micro Edition (J2ME technology) Connected Device Configuration (CDC) Connected Limited Device Configuration (CLDC) C Virtual Machine (CVM) K Virtual Machine (KVM) PersonalJava Java Card JavaPhone API Java TV API Jini 网络技术
相关文档
最新文档