⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0068.htm

📁 Java语言是Internet上最热门的编程语言
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>企业计算中的Java</strong></big></p>

<div align="right">---摘自《中国计算机报》(文/潘逸群)</div>

<p><strong>  概述<br>
</strong><br>
<br>
  长期以来,Client/Server结构一直是企业计算中使用最普遍的计算架构之一。但广大用户在享受C/S结构带来的利益时,也忍受着越来越大的成本投入和使用与管理上的麻烦。<br>
<br>
  在C/S结构当中,几乎所有的应用逻辑都在客户端实现,导致客户端的应用程序越来越复杂,也给开发人员带来了大量的移植工作;同时要维护如此“肥”且节点众多的客户机更是一件庞杂的工作。<br>
<br>
  Java给上述问题的解决带来了曙光。跨平台和从服务器下载执行等特性使Java技术在企业计算中得到越来越多的应用。C/S正逐渐退出舞台,代之而起的是一种新的分布式计算架构:三层次(3-tier)企业计算架构。<br>
<br>
  三层架构中处于第一层的是客户端表示层。与C/S结构中的“肥”客户端不同,客户层仅仅是整个应用系统中的图形用户界面表示,不表示任何应用逻辑,其运行代码可以从位于第二层的Web服务器下载到本地的浏览器中执行,几乎不需要任何管理工作,是我们平时说的“瘦”客户机;处于第二层的是应用服务层,由一或多台服务器(Web 
服务器也位于这一层)组成,处理企业应用中的所有业务逻辑和对数据库的访问等工作,该层具有良好的可扩充性,可以随着应用的需要任意增加服务器的数目(构成“宽”的服务器层);处于第三层的是数据中心层,由数据库系统和企业中的已有系统组成。<br>
<br>
  比三层计算更新的概念是多层计算,主要是将三层计算中的应用服务层继续细分为Web服务器层和应用服务层,Web服务器不再处理任何业务逻辑,而只是将处理请求转发到相应的应用服务单元。<br>
<br>
  在多层计算中,用户的开发工作主要集中在应用服务层进行,许多中间件(Middleware)厂商推出了各自的应用服务器中间件产品,负责提供较底层的服务如负载均衡、状态监测等,以便用户能够将大部分精力集中在业务逻辑的开发。<br>
<br>
  Java为多层计算中的每个层次都提供了强大的技术。Java 2平台的JFC所提供的客户端技术,成为开发客户图形用户界面的首选。在应用服务层和数据中心层,包括Servlet、RMI、JDBC、Java 
IDL在内的四种技术能够让企业快速地开发他们的分布式应用;对于市场上各式各样的中间件产品,Java也提供了独特而有效的解决方案。Java技术正逐渐成为企业计算的潮流。<br>
<br>
<br>
<strong>  Java分布式计算技术<br>
</strong><br>
<br>
  下面分别介绍一下Servlet、RMI、JDBC和Java IDL等四种技术在企业计算中的应用和它们的技术特点。<br>
<br>
  1.Servlet<br>
<br>
  与applet是采用Java语言编写的在客户端浏览器中运行的小应用程序相比,Servlet是采用Java编写的在服务器端运行的小应用程序。正如applet扩展了Browser的功能一样,servlet扩充了Web 
server的功能。Servlet (实际上专指HTTP Servlet)需要一个位于Web server的运行环境(Jeeves)做支撑,目前市场上的大部分Web服务器如IBM、Netscape等都已经支持Jeeves.<br>
<br>
  在以Web为中心的应用中,用户通过访问企业Web站点上的主页请求需要的应用服务,由Web站点将服务请求传递给相应的业务逻辑处理单元(business 
logic object)进行处理,并将处理结果返回给Web站点,再由Web站点将结果送回到用户的浏览器中。如图:<br>
<br>
<img src="images/00681.jpg" width="300" height="90" alt="00681.jpg (5922 字节)"><br>
  在传统的基于Web的应用中,CGI (Common Gateway Interface)程序在上述处理过程中扮演着重要的角色,用户的处理请求将由Web服务器调用相应的CGI程序(业务逻辑处理单元)来完成。但是CGI程序本身存在着许多缺陷。当用户的请求需要启动CGI程序来完成时,Web服务器将启动一个进程(process)来运行该CGI程序,由于进程对于系统资源有较大的消耗,一旦在某个时刻有大量的访问者访问该Web站点(这种情况经常发生),Web服务器的性能将直线下降。另外每个CGI程序都需要有一个相应的脚本描述程序(script),由于CGI的开发缺乏IDE(Integrated 
Developing Enviroment)工具的支持,这使得CGI的开发工作变得非常繁琐,尤其是在编写脚本描述程序的时候。<br>
<br>
  Java对此的回答是Servlet。与每个CGI程序都占用一个进程不同,每个Servlet 
在运行时只占用系统的一个线程(Thread)。与进程相比,线程对系统资源的消耗要小得多,在很大程度上保证了系统在有大量的用户访问时仍能保持良好的性能。目前Servlet 
技术不但正被越来越多的 Web server所支持,而且正被越来越多的应用服务器(Application 
Server)中间件开发商所采用,如WebLogic 公司的Tanga、ATG的Dynamo等产品都已完全支持Servlet。Servlet与协议无关,HTTP 
servlet只是其中的一种,这使得Servlet可以嵌入多种服务器之中。<br>
<br>
  与CGI程序一旦将请求结果返回给浏览器以后即终止运行不同,Servlet一旦被系统管理员装载,它一直处于激活状态,就像Web 
server提供的一种服务一样,除非系统管理员将之终止。Servlet的这一特性使开发人员可以利用Servlet永久性保留某些信息以备后用。比如建立与数据库的连接是一件费时的工作,我们可以利用Servlet保存一些已经建立的连接,提高系统的使用效率。<br>
<br>
  Sun公司提供了JSDK(Java Servlet Development Kit),包括类库javax.servlet.*,(Servlet 
API 是Java 2平台的标准扩展之一)和一个servlet开发与测试引擎,用于servlet的开发和测试。此外,许多IDE开发工具如JBuilder2 
也提供对servlet开发的支持。<br>
<br>
  2. RMI: Remote Method Invocation<br>
<br>
  在大型的企业计算中,需要将整个应用系统分解成若干子系统并运行于相应的部门当中,以提高整个系统的应用效率和可维护性及安全性。由于不同的工作由不同的系统来完成,在它们之间需要一种安全便利的通讯机制。从面向对象的角度来说,企业计算需要一种分布式的对象模型,使得运行于不同主机之间的对象能够互相进行方法调用,假设某企业分别有一个人事管理系统(HRMS)和财务管理系统(FMS)分别运行于人事部和财务部,HRMS计算每个员工的出勤率,而FMS根据员工的出勤率计算员工的当月工资。如图:<br>
<br>
<img src="images/00682.jpg" width="340" height="74" alt="00682.jpg (6362 字节)"><br>
  当FMS需要计算某员工的月工资时,FMS必须找到HRMS(可能运行在其它的主机上)然后调用其方法getWorkingdayNo以计算该员工的出勤率,并将结果返回本系统以计算该员工的月工资。RMI是基于Java的能够满足上述计算的分布式计算模式,实现了在运行于不同虚拟机的对象之间的方法调用。<br>
<br>
  RMI的研究工作其实在1994年(Java诞生之前)就已在Sun公司的实验室里开始了。研究人员在充分评估了分布计算的趋势并比较了多种分布式系统以后开发了RMI对象模式,在1997年JDK1.1发布时正式推出,成为Java分布式计算的重要技术之一。JDK1.1为RMI的开发提供了一系列的API,简化了RMI的开发工作。<br>
<br>
  从调用方式来看,RMI和RPC(远过程调用)有很大的相似之处,但二者之间最大的不同在于:RMI是面向对象,而RPC是基于过程调用的。由于RMI面向对象的特性,RMI调用可以直接将对象在调用的两端之间进行传递,不但可以传送数据,而且还可以传递方法(mobile 
behavior),扩展了RMI的使用;另外RMI还支持两个RMI对象之间的方法回调(callback)。<br>
<br>
  RMI赋予每个RMI对象一个唯一的名字,并将之与实际的对象捆绑在一起(binding),这种对象关系登记在RMI的注册登记表中,调用者通过对象的名字找到相应的对象后调用它的方法,而不需要考虑该对象的实际物理存储位置。这不但更符合人们的使用习惯,而且提高了系统的可扩充性和鲁棒性。RMI将多个RMI对象的名字登记在同一张登记表中(监听于某端口),一个对象有一或多个方法以供远程调用,从而使一个端口可以提供多种服务,节约了系统的端口资源。<br>
<br>
  目前,RMI还只限于用Java语言编写的RMI对象之间的调用,它们之间通过JRMP(Java 
Remote&nbsp; Method Protocol)进行通信;对于另一种对象模式CORBA,RMI还不能实现同CORBA对象之间的互相调用。不过Sun公司开发的进行二者之间相互通讯的产品(RMI 
over IIOP)已进入最后测试阶段,不久将正式发布。<br>
<br>
  3. JDBC: Java Database Conectivity<br>
<br>
  在所有的企业中,数据库保存着它的重要信息。对数据库的访问能力在企业计算占据着重要的地位,直接影响着应用系统的使用。<br>
<br>
  JDBC提供了Java与数据库进行连接和访问的能力。与ODBC相类似,JDBC是由Sun公司提出的一系列对数据库进行操作的规范,其最后的使用依赖于对各数据库产品的JDBC 
驱动程序(JDBC driver)。目前市场上所有的主流数据库产品都有相应的JDBC 
驱动程序,这些驱动程序有的由数据库厂商自己提供,有的由第三方厂商开发,并且有的已经通过了“100%”Java纯认证。<br>
<br>
  根据各种JDBC 驱动程序采用的技术的不同,大致可将JDBC 
驱动程序分成四类:<br>
<br>
  &middot;JDBC-ODBC bridge<br>
<br>
  将JDBC访问指令转换成ODBC指令,然后通过ODBC 
驱动程序完成数据库的访问。这类驱动程序的效率最为低下。<br>
<br>
  &middot;Native-API partly-Java driver<br>
<br>
  将JDBC访问转成数据库驱动程序,在客户端的API直接完成对数据库的操作。这类驱动程序需要在每台客户机上预先安装,不利于维护和使用。<br>
<br>
  &middot;Net-protocol all-Java driver<br>
<br>
  将JDBC访问转换成与数据库无关的网络协议送出,然后由一个中间件服务器再将之转换成特定数据库的访问指令,完成对数据库的操作,中间件服务器能支持对多种数据库的访问。这类驱动程序具有最大的灵活性,只是需要一个中间服务器的支持。<br>
<br>
  &middot;Native-protocol all-Java driver<br>
<br>
  将JDBC访问转换成数据库能够识别的协议,完成对数据库的操作。由于这类协议基本上都是个数据库厂商自己专用,因此使用这类驱动程序也就极大地限制了数据库产品的选择自由度。<br>
<br>
  综合比较这四类驱动程序,第三类驱动程序应是企业计算中比较合适的选择。<br>
<br>
  Java 2平台中的JDBC API定义了一系列的Java类用来表示数据库连接、SQL语句、结果集、存储过程等数据库对象,开发人员能够利用这些API开发数据库应用。<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -