Java企业级应用架构设计是每个Java开发者不必学的知识,本文将对Java EE应用的架构与设计进行一些基础性的介绍,而这些内容构筑了整个Java EE应用开发的基础。
Java企业级应用架构设计中的分布式结构大致可以分为单级结构、2级结构、3级结构和N级结构。充分理解和应用分布式结构可以更好的理解当代网络计算的现状,设计出更优的企业级应用程序。
长久以来,Java企业级版本(Java EE)已经成为了众多产业领域(如银行业、保险业、零售业、酒店业、旅游业以及电信业等等)进行企业商务应用开发和部署的平台选择。Java EE之所以应用如此广泛,其原因在于,Java EE可以为构建健壮、高扩展性的分布式应用系统提供标准化的平台,而这些应用所支持的范围可以涵盖从银行核心业务运作,到航空公司订票引擎之间的广大区域。不过,开发成功的Java EE应用也可能成为一项艰巨的任务,Java企业级应用架构设计在其中起着重要作用。
首先Java EE平台自身所提供的丰富选择就足可以令人生畏。那些过剩的框架、实用程序类库、集成开发环境(IDE),以及可供选择的工具让一切都更加富有挑战性。因此,选择好合适的技术对于开发基于Java EE的软件来说至关重要。而那些拥有健壮架构与设计准则的技术,会对构建易于维护、重用以及扩展的应用系统大有裨益。
我们将首先回顾一下分布式计算的进化史以及n级结构。之后我将展示Java EE平台是如何解决分布式应用开发中的难点的。同时你还会了解模型-视图-控制器(MVC)结构准则。然后我会结合MVC准则与Java EE平台,来讲解多层Java EE应用结构。
在了解了应用系统架构之后,我将把注意力集中到基于面向对象原则的Java EE应用开发上。我同时还会讲解如何使用设计模式来简化设计过程,以及如何选择最佳的实践范例。此外我还会触及Sun公司的Java BluePrints所收录的设计模式目录,其内容在Deepak Alur et al的《核心J2EE设计模式》(Prentice Hall出版社,2003年)一书中有详细的介绍。在文章的最后,我将介绍通用建模语言(UML)以及其在可视化Java EE文档设计与架构之中所扮演的的角色。
分布式计算进化史
在分布式计算中,一个应用会被划分为若干稍小的部件,并同时运行在不同的计算机上。这种计算方式又被称为“网络计算”,因为这些部件通常会通过建立在TCP/IP或者UDP协议之上的某些协议进行通讯。这些稍小的应用部件被称为“级”,每一级都可以向其他连接级独立提供一类服务。而“级”又可以被细化为若干“层”,以便降低功能的粒度。大多数Java企业级应用架构设计都应具有三个不同的层:
◆表现层负责用户接口。
◆业务层执行业务逻辑。在运行过程中,它还会与数据访问层进行交互。
◆数据访问层负责对存储在企业信息系统(EIS)中的数据进行存取等操作。
通过分析分布式计算结构的跃迁史,我们可以更好的理解当代网络计算的现状。在接下来的几节中,我将用几个恰当的例子介绍分布式结构的变迁。
单级结构
单级结构的使用可以追溯到那些使用简易终端连接巨型主机的日子。在这种结构中,用户接口、业务逻辑以及数据等所有应用构成层都被配置在同一个物理主机中。用户通过终端机或控制台与系统进行交互,而这种方式只具有非常有限的文本处理能力(参见图1)
图1. 单层结构(图中文字:Console——“控制台”;Dumb Terminal——“简易终端”;Mainframe——主机)
2级结构
在1980年代早期,个人电脑(PC)变得非常流行,它比大型主机便宜,处理能力又比简易终端之类的设备强。PC的出现为真正的分布式(客户端——服务器,C/S)计算铺平了道路。作为客户端的PC现在可以独立运行客户接口(UI)程序,同时它还支持图形化客户接口(GUI),允许用户输入数据,并与服务器主机进行交互,而服务器主机现在只负责业务逻辑和数据的部分。当用户在客户端完成数据录入后,GUI程序可以选择性的进行数据有效性校验,之后将数据发送给服务器进行业务逻辑处理。Oracle基于表单的应用就是2级结构的优秀范例。表单的GUI存储在客户端PC中,而业务逻辑(包括代码以及存储过程)以及数据仍然保留在Oracle的数据库服务器中。
此后又出现了另外一种2级结构,在这种结构中,不只是用户接口(UI),连业务逻辑也被放到了客户端一级。这种应用的典型运行方式是直接连接数据库服务器进行各种数据库查询。这种客户端被称作“胖客户端”,因为这种结构将可执行代码的相当大一部分都放到了客户端一级(参见图2)。
图2. 2级结构(Business Logic Layer——业务逻辑层;Optional——可选;User Interface Layer——用户接口层;Thick Client——胖客户端;Data Access Layer——数据访问层; Mainframe Server——服务器主机)
3级结构
尽管2级“胖客户端”应用的开发很简单,但是任何用户接口或者业务逻辑的改变所导致的软件升级都需要在所有客户端上进行。幸运的是,在上世纪90年代中期,硬件成本已经变得越来越低,而CPU的运算能力却得到了巨大提升。与此同时,互联网的发展非常迅速,互联网应用的发展趋势已经逐渐显现,两者的结合最终导致了3级结构的产生。
在3级结构模型中,PC客户端只需要安装“瘦客户端”软件——比如浏览器——来显示服务器提供的展示内容,服务器负责准备展示内容、业务逻辑以及数据访问逻辑,应用程序的数据来自企业信息系统,例如关系数据库。在这样的系统中,业务逻辑可以通过远程访问,因此通过Java控制台应用程序支持一个独立的客户端就成为课程。业务层主要通过数据访问层与信息系统实现交互。因为整个应用都位于服务器之上,因此这样的服务器也被称作“应用程序服务器”或者“中间件”(参见图3)。
图3. 3级结构(图中文字:Presentation Layer——表现层;Business Logic Layer——业务逻辑层;Data Access Layer——数据访问层;Thin Client——瘦客户端;Application Server——应用程序服务器;Enterprise Data——企业数据;Database Server——数据库服务器)
N级结构
随着互联网带宽的不断提高,全世界的各大企业都相继启动了他们的网络服务。这种变化导致应用服务器无法继续承担表现层的巨大负荷。这项任务现在已经由专门负责产生展示内容的专门网页服务器所承担。展示内容之后被传送到客户端级的浏览器上,浏览器会负责将用户接口表现出来。N级结构中的应用服务器负责提供可远程访问的业务逻辑组件,而表现层网页服务器则使用本网协议通过网络访问这些组件。图4展示了n级结构。
以上是Java企业级应用架构设计中的分布式结构,在不同的需求和应用场景中,我们会用到不同的分布式结构,设计不同的Java企业级应用架构。
http://aini99.taobao.com
分享到:
相关推荐
Java平台提供了一组强大的工具和框架,如RMI(远程方法调用)、JMS(Java消息服务)和EJB(企业级JavaBean),这些都为构建分布式系统提供了基础。源码中可能涉及这些技术,帮助开发者了解如何在实际项目中应用它们...
【Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式】 这门课程是针对Java开发者设计的,旨在提升他们的企业级项目架构能力,特别是聚焦于Tomcat集群和Redis分布式缓存的应用。课程内容丰富,适合希望晋升...
三本书分别关注大型分布式网站架构设计、大型网站系统与Java中间件的实践以及分布式Java应用的基础与实践,它们是深入理解并掌握Java在大规模系统中的应用的关键资源。 首先,"大型分布式网站架构设计"这部分内容会...
综上所述,Java分布式应用和SOA是构建现代企业级系统的重要组成部分。掌握这些技术和架构原理,对于开发高效、可靠且易于维护的分布式应用至关重要。随着云计算和微服务的兴起,Java开发者需要不断更新知识体系,以...
在现代企业级应用中,尤其是在云计算和微服务架构盛行的今天,掌握Java分布式应用的设计原则和技术至关重要。下面将详细介绍Java分布式应用程序设计的相关知识点。 1. **分布式系统基础**: - 分布式系统的概念:...
6. **微服务架构**:近年来,Java分布式应用程序设计倾向于微服务架构,其中每个服务都是一个小的、独立的单元,可以独立部署、扩展和更新。Spring Boot和Spring Cloud框架为Java微服务提供了强大的支持。 7. **...
Java EE企业级应用架构是用于构建大规模、复杂的企业级软件系统的框架,它提供了一整套标准和规范,旨在简化开发过程,提高可伸缩性和可维护性。Java EE(原名J2EE)自1990年代以来不断演进,从最初的1.2版本到现在...
在IT行业中,Java分布式应用程序设计是一项关键技能,尤其在大型企业级系统开发中不可或缺。本资源包含一本名为“JAVA分布式程序设计”的电子书以及相关的源码示例,旨在帮助开发者深入理解和实践Java在分布式环境中...
JavaEE企业级分布式高级架构师培训课程主要涵盖了JavaEE技术栈在大型企业中的高级应用,旨在培养具备深厚理论基础和实战经验的分布式系统架构设计师。这个课程内容广泛且深入,通常包括以下几个核心知识点: 1. **...
Spring框架是Java EE开发中的核心组件,它提供了一个全面的基础设施,支持创建企业级Java应用程序。Spring的核心特性包括依赖注入(DI)和面向切面编程(AOP),使得代码更加模块化,易于测试和维护。Spring MVC是...
Java互联网架构师是一个涵盖广泛领域的专业角色,这个角色需要深入理解软件开发的各个方面,特别是针对大规模、高并发的互联网应用。本课程集成了多种关键知识点,旨在帮助在职Java工程师提升技能,迈向架构师之路。...
Java企业级应用开发是软件开发领域的一个重要方向,它涵盖了构建大规模、高性能、可扩展的分布式应用程序的技术和框架。这份详细的课件集是为初学者准备的,旨在帮助他们掌握Java在企业环境中的核心概念和实践技能。...
Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式,下载绝对值得,里边干活多多
分布式Java应用是现代企业级软件开发中的重要组成部分,它涉及到多个服务器协同工作,以处理大规模数据和高并发请求。在本资源包中,"分布式Java应用完整版"提供了全面的学习资料,包括视频教程和电子书,帮助开发者...
Java作为企业级应用的首选语言,其强大的生态系统和丰富的开源框架使其在分布式系统中扮演了重要角色。 1. **Java分布式技术**:Java提供了多种分布式技术,如RMI(Remote Method Invocation)用于远程方法调用,...
在当前的互联网时代,分布式系统已经成为企业级应用的主流架构。Java作为广泛使用的编程语言,其在分布式领域的应用非常广泛。本篇将深入探讨分布式Java应用的基础知识和实践要点,通过源码分析帮助读者理解如何构建...
《Java EE企业级应用开发教程(Spring Spring MVC MyBatis)》是一本专注于Java企业级应用开发的专业教程,由黑马程序员编著。本书的核心在于深入浅出地介绍如何使用Java EE技术栈,特别是Spring、Spring MVC和...
接下来,EJB(Enterprise JavaBeans)是另一种常见的Java分布式编程模型,主要针对企业级应用。EJB提供了一种标准的方式来创建可部署的、安全的、事务处理的组件,如会话bean、实体bean和消息驱动bean,它们可以在...
分布式集群系统架构设计及应用部署是当前互联网架构设计中的一个核心技术点,它能够有效应对高并发访问量和海量数据带来的压力。为了提高系统的高吞吐、高并发和高可靠性,分布式集群系统的构建成为企业级应用部署的...