Java Server Programming:Principles and Technologies
By Subrahmanyam Allamaraju, Ph.D.Summary
Building and managing server-side enterprise applications has always been a
challenge. Over the last two decades, the role and importance of server-side
applications has increased. The twenty-first century economy dictates that ecommerce
and other enterprise applications are transparent, networked, adaptable, and
service-oriented. These demands have significantly altered the nature of applications.
As enterprises migrate from closed and isolated applications to more transparent,
networked, and service-oriented applications to enable electronic business
transactions, server-side technologies occupy a more prominent place. Despite the
disparity of applications that exist in any enterprise, server-side applications are what
power twenty-first century enterprises!
The purpose of this article is two-fold. Firstly, this article attempts to highlight the
technical needs for server-side applications, and thereby establish a set of
programming models. Secondly, based on these programming models, this article
introduces the reader to the Java 2, Enterprise Edition (J2EE).
If you are a beginner to server-side programming, or the J2EE, this article will
help you gain an overall perspective of what this technology is about. If you are
familiar with one or more J2EE technologies, this article will provide the basic
principles behind server-side programming, and help you relate these principles to
specific J2EE technologies.
Introduction
Building and managing server-side enterprise applications1 has always been a
challenge. Over the last two decades, the role and importance of server-side
applications has increased. The twenty-first century economy dictates that ecommerce
and other enterprise applications are transparent, networked, adaptable, and
service oriented. These demands have significantly altered the nature of applications.
As enterprises migrate from closed and isolated applications to more transparent,
networked, and service-oriented applications to enable electronic business
transactions, server-side technologies become more prominent. Despite the disparity
of applications that exist in any enterprise, server-side applications are the ones that
power twenty-first century enterprises.
The history of server-side applications dates back to the mainframe era, an era
during which only mainframes roared across enterprises. They were centralized in
nature, with all the computing—from user interfaces, to complex business process
execution, to transactions—performed centrally. The subsequent introduction of minis,
desktops, and relational databases fueled a variety of client-server style applications.
This contributed to a shift in the way applications could be built, leading to various
architectural styles, such as two-, three-, and multi-tier architectures. Of all the styles,
database-centric client-server architecture was one of the most widely adapted. Other
forms of client-server applications include applications developed using remoteprocedure
calls (RPC), distributed component technologies, such as Common Object
Request Broker Architecture (CORBA), and Distributed Component Object Model
(DCOM), etc. Just as these technologies and architectures were diverse, so too were
the nature of clients for such applications. The most commonly used client types for
these applications were desktop based (i.e., those developed using Visual Basic or
other similar languages). Other types of clients included other applications (viz., as in
enterprise application integration) and even Web servers.
Subsequently, what we see today are Internet-enabled server-side applications. The
underlying technologies for building Internet-enabled server-side applications have
evolved significantly and are more mature and less complex to deal with, as you will
see later in this article. Apart from providing more flexible programming models,
todayrsquo;s server-side technologies are infrastructure intensive.
What is server-side programming?
The terms server and server-side programming are very commonly used. But what is a
server? Generally speaking, a server is an application hosted on a machine that
provides some services to the other applications (clients) requesting the services. As is
obvious from the definition, a server typically caters to several clients, often
concurrently. The services offered by a server application can be very diverse—
ranging from data, and other information, management to the execution of specialized
business logic. Although several types of server applications are possible, you can
quickly recognize the following two kinds of servers:
1. Commercial Database Servers (or Database Management Systems): Servers
that manage data, which come from vendors, such as Oracle, Sybase, and
Microsoft. Client applications use standard APIs, such as Open Data Base
Connectivity (ODBC) or Java Data Base Connectivity (JDBC), in combination
with SQL (Structured Query Language) to access/manipulate the data. In addition
to these standard APIs, you may use vendor-specific client access APIs to
communicate with the database server. These servers are responsible for
consistently managing data such that multiple clients can manipulate the data
without loss of consistency.
2. Web Servers: The other easily recognizable types of servers are Web servers. A
Web server hosts content, such as HTML files. Clients (W
剩余内容已隐藏,支付完成后下载完整资料
Java服务器程序设计: 原理和技术
作者:Subrahmanyam Allamaraju
建立和管理服务器端企业应用一直是挑战。在过去的二十年中,作用和服务器端的重要性应用有所增加。二十一世纪的经济决定了电子商务
和其他企业应用是透明的,网络化,适应性强,服务至上。这些要求已大大改变了应用程序的性质。随着企业的迁移从封闭和孤立的应用程序更加透明,
网络化,面向服务的应用,使电子业务交易,服务器端技术占据更加突出的位置。尽管在任何的应用程序的企业存在差距,服务器端应用程序是什么
电力二十一世纪的企业!
本文的目的有两个方面。首先,本文试图以突出服务器端应用的技术需求,从而建立一套编程模型。其次,根据这些编程模型,本文
介绍了到Java 2企业版(J2EE)的读者。如果你是一个服务器端编程初学者,或J2EE,本文将帮助你获得一个什么样这项技术是对整体的观点。如果你是
与一个或多个J2EE技术的熟悉,本文将提供基本的后面的服务器端编程的原则,并帮助您联系这些原则特定的J2EE技术。
简介
建立和管理服务器端企业应用一直是 挑战。在过去的二十年中,作用和服务器端的重要性应用有所增加。二十一世纪的经济决定了电子商务和其他企业应用是透明的,网络化,适应性强,服务为本。这些要求已大大改变了应用程序的性质。
随着企业的迁移从封闭和孤立的应用程序更加透明,网络化,面向服务的应用,使电子业务
交易,服务器端技术变得更加突出。尽管差距在任何的应用程序的企业的生存,服务器端应用程序是那些电力二十一世纪的企业。对于服务器端应用程序的历史可以追溯到大型机时代,一个时代 在此期间只大型机吼道跨企业。他们被集中在自然,所有的计算,从用户界面,到复杂的业务流程执行中,把交易,集中执行。此后推出的迷你合约,台式机,和关系数据库这一事件引起了客户的各种应用服务器风格。这有助于建立一个可以应用的方式转变,导致各建筑风格,如两,三年,多层次架构。在所有的样式,数据库为中心的客户机服务器体系结构是最广泛适应之一。其他客户机服务器应用形式包括:应用开发使用remoteprocedure
调用(RPC),分布式组件技术,如通用对象,请求代理架构(CORBA)和分布式组件对象模型 (DCOM)的,等等,正如这些技术和体系结构是多种多样的,因此也被
为这类客户申请的性质。最常用的客户类型 这些应用程序是基于桌面(即那些使用Visual Basic或开发其他类似的语言)。其他类型的客户包括其他应用程序(即,如
企业应用集成),甚至Web服务器。
随后,我们今天看到的是互联网功能的服务器端的应用。该建设互联网基础技术功能的服务器端应用程序进化显着,而且更成熟,不太复杂的处理,你会后面看到这篇文章。除了提供更灵活的编程模型,当今的服务器端技术是基础设施密集。
什么是服务器端的编程?
术语服务器和服务器端编程是非常普遍的。但什么是服务器?一般来说,服务器是一个应用程序的机器上托管 提供一些服务,(客户)要求的其他应用程序的服务。正如明显的自定义,服务器通常迎合了几个客户,往往同时进行。由服务器应用程序提供的服务可以是非常多样,
从数据和其他信息,管理到专门的执行业务逻辑。尽管服务器应用程序可能有几种类型,你可以快速识别的服务器以下两种:
1。商业数据库服务器(或数据库管理系统):服务器管理数据,如Oracle,SYBASE的是从厂商要来, 微软。客户端应用,如开放数据库标准的API,连接(ODBC)或Java数据库连接(JDBC),结合与SQL(结构化查询语言)来访问/操纵的数据。此外这些标准的API,你可以使用供应商特定的客户端访问API与数据库服务器通信。这些服务器负责坚持管理数据,使得多个客户端可以操作数据没有一致性的损失。
2。 Web服务器:其他容易辨认类型的服务器是Web服务器。Web服务器主机的内容,如HTML文件。客户端(Web浏览器)访问本内容提交请求使用超文本传输协议(HTTP)。在其基本模式下,Web服务器映射一个客户端请求中的一个文件系统的文件,然后发送到客户端的请求文件的内容作出。类似数据库服务器,Web服务器可以处理并发请求,往往数千名。因为我们习惯使用这些类型的服务器的工作,我们常常忽视了这个事实,他们虽然标准化的服务器端应用程序。然而,当我使用这个词的服务器端编程,我不是指发展这样的数据库或Web服务器。这样的应用程序进行商品化年前。这些通用服务器端应用提供标准的,预定义的功能。在对服务器端编程的情况下,我们更感兴趣的specialpurpose发展应用程序实现具体的业务用例。
为什么是很重要的或相关的考虑服务器端的应用程序?为什么要构建应用程序,可以提供服务的几个客户端应用程序?下面是一些说明服务器端需要共同方案应用:
1。执行一些逻辑,用不同的申请。这是一原因促使分布式技术发展的早期,如RPC.17想想看,你正在开发一些新的应用程序实施业务用例。假定有一些业务逻辑已经实施在不同的应用程序。在这种情况下,可作为功能单独的/隔离类或函数库,你可以考虑重用相同在新的应用程序代码。但是,如果这种逻辑(和代码)在很大程度上取决于一些数据被管理的现有的应用程序?在这种情况下,类/函数库不能被重用,因为这些类/函数库,可能无法执行没有这些数据的可用性。另外,如果这样的代码依赖于现有的应用程序若干其它地区,因此很难重用在新的应用程序代码?一种可能的解决办法来处理,这是由在现有执行此应用程序逻辑,这就是,而不是重用代码从现有的应用程序,新的应用程序可以发送一个请求(与任何
所需的数据),以现有的应用程序来执行这个逻辑,并取得任何的结果。
2。获取信息的另一个应用程序维护/数据。这又是一个场景,任务服务器端应用程序和客户端。数据库服务器和其他应用程序保持在一本属于持久存储信息范畴;但是,数据库服务器,如关系数据库管理系统,通常管理的原始数据(数据行各表)。这些数据可能会或可能不会直接使用(在商业意义上)的其他应用程序依靠这些数据。例如,考虑一个数据库持有的所有各个账户客户在一家银行。在这种系统的共同要求,是巩固所有给定客户的帐户并提交所有帐户总结的看法。根据该客户的帐户类型,产生过程总结观点可能涉及一些复杂的计算,包括表演
评估一些业务规则。现在考虑在其他银行的银行执行多个应用程序其中一些任务需要概括了客户所有账户的看法。对于例如,一个应用程序负责计算每月账户费可需要综合帐目收支平衡的价值。当有几个这样的应用程序需要此数据,它是适当的,让其中一个应用程序处理这对所有其他应用程序的计算。
3。整合应用。在任何特定的企业,是不难发现几个经过多年开发的应用程序可用于执行不同的业务使用任务。你甚至可能发现这种独立的应用程序维护
企业不同部门和不同的编程开发利用语言和技术。从某种程度上说,这种应用是一种结果的开车从分散基于大型机的应用程序的需求。然而,由于我们前面讨论的要求之一,几乎所有的企业所遇到的今天是互联网络的能力,这样的应用,使业务工作流程可以建立整个企业。为了进一步说明,让我们以传统的零售商业案例 收集通过呼叫中心,平邮等产品的订单,让我们假设 ,一个订单输入应用程序是用来记录所有的订单(在一个数据库)抓获通过这些渠道。我们还假设该公司已经开发了一个内部为了实现的应用程序,它发生在数据库中记录的命令,进行任何任务需要完成每一张订单。这两个应用程序stovepiped因为这些应用程序的每个地址的特定业务任务一个没有任何业务流程的整体知识脱钩的方式。在这情况下,整体业务流程接收(和输入)命令,然后履行每个订单。这种stovepiped应用程序无法单独地,实施最终的端到端业务流程。为了实现这一点,你需要整合应用,例如,订单输入应用程序可以自动触发实现应用程序,直接或间接的影响。这是企业应用integration18问题,但有几种方法来实现这种一体化。一方法是使订单输入应用程序调用(或通知)的实现申请后,直接的命令已抓获。实现应用程序的然后可以启动一个业务流程,从而简化整个履约活动这些应用程序。
同步请求响应模型
这种模式背后的基本思想是,它允许客户端应用程序调用方法/功能上执行远程应用程序。技术,如CORBA,Java远程方法调用(RMI)和企业JavaBeans(EJB)的跟进这模型。
以下功能特点的同步请求响应模型方法:
1。客户端和服务器之间的合同是基于接口。该接口客户端和服务器之间的远程接口。它指定操作/方法,客户端可以调用服务器上。
2。之间的客户端和服务器之间的通信是同步的。这是没有本地方法调用不同的。当调用一个方法,客户端线程等待,直到服务器响应。这也意味着该服务器应和
运行客户端来调用服务器方法。
3。通信是connectionful。应用程序可以维护合同各种请求和响应之间的客户端和服务器。这两个特点拉近方法调用本地对象的行和调用远程对象的方法。
基本要求什么是实施这种做法的技术要求?在我们可以识别的技术要求,让我们更详细地研究这种方法。该下面的图4显示了作为应用程序(客户端)调用在一个不同的方法过程。在面向对象的语言,如Java,接口或方法存在类。因此,在Java环境中,这种方法涉及到一个客户端调用对一个对象,在不同的过程中存在的方法(可能在不同的机器上)。
Java RMI
现在让我们说明如何开发客户端和服务器对象,并生成代理和与Java的RMI骨架类。
Java RMI的是一个纯Java环境CORBA的选择。 Java RMI的定义用于指定远程接口框架,它是在特定的java.rmi包。 J2SE的还包括用于远程对象和运行时支持clientserver沟通。您可以指定让您的远程接口扩展接口java.rmi.Remote接口(这表明了Java运行时,它是一个远程接口)如下:
public interface Process extends java.rmi.Remote {
public void process(String arg) throws java.rmi.RemoteExcetion;
}
此代码片段定义了一个方法的远程接口。唯一的例外子句是必需来表示,这种方法可以抛出通信相关例外。接下来的一步是实现一个类,实现了远程接口。这是服务器对象。
public class ProcessImpl extends UnicastRemoteServer implements
Process {
public ProcessImpl() {
super();
}
public void process(String arg) throws java.rmi.RemoteExcetion
{
// Implement the method here
}
}
一旦你的远程接口,下一步是使用rmic编译器上实现类生成代理和skeleton类。你会发现这编译器下的J2SE分布。此编译器选项来创建源文件为代理和骨架类。其他技术如CORBA或EJB,使用类似的方法来指定和远程接口生成代理和骨架。
虽然代理和骨骼消除了网络层次的需要编程,以下两个问题应予以考虑:
1。如何保持骨骼对象B的实例?如果服务器
应用程序创建一个实例开始,对于每个请求,还是应该共享一个例如对所有的要求?什么是线程的任何/并发影响策略?
2。位置透明:你如何显示服务器的位置的
代理对象?你能预先确定这一点,迫使代理来调用特定实施远程接口可在一个给定的网络位置?如果因此,客户端应用程序将在服务器的位置而定。但是,是有可能实现了位置透明性?
实例管理
一旦远程接口,其实现的情况下,接下来的问题是如何让实现类在运行时(进程)可用实例。创建一个执行对象的新实例不足以使这个通过实施远程接口。在服务器的命令实施对象可用,并且能够处理请求来自网络客户端应用程序,下面的附加步骤是必需的:
1。申办的过程实例应该可以通过网络访问。通常情况下,这可以归结为一个服务器套接字通过网络(即监听请求的服务器进程应该有必要的基础设施,这样做)。
2。服务器进程应分配一个线程来处理每请求。服务器通常需要是多线程的。
3。服务器进程可承办多个远程接口的实现。对一些信息的不同包含在传入的网络请求,服务器进程应该是能够识别的正确实施对象。例如,该接口的名称可以指定执行对象服务器。在这种情况下,服务器应该有知识,即类实现该远程接口。
4。一旦服务器识别正确的接口,它应该调用相关骨架类。这个类可以和解组请求参数,并调用适当的方法的实现类。在上面的列表,创建实例的任务,取决于是否clientserver通讯须有状态或无状态的。解决这一问题当你希望多个客户端来调用远程对象的方法。有状态和无状态之间沟通的主要区别在于是否
远程实例可以维持,靠
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[479555],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。