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企业级应用架构相关推荐

  1. Java企业级应用架构设计中的分布式结构

    Java企业级应用架构设计中的分布式结构 2010-12-24 13:54:12|  分类:默认分类 |  标签:|字号大中小 订阅 Java企业级应用架构设计是每个Java开发者不必学的知识,本文将 ...

  2. Java之下载word文档,java企业级应用架构

    使用notepad++或者其他工具打开xml文件,查看生成的模板是否正确. 符号和变量名没有被分开算正常.符号和变量名没有被分开算正常.符号和变量名没有被分开算正常.{topic}这几个符号是紧密相连 ...

  3. 一步一步理解Java 企业级应用的可扩展性

    老实说,"可扩展性"是个全面且详尽的话题,而且往往得不到充分理解.人们通常认为可扩展性等同于高可用性,笔者见过编程新手和架构师"老手"都建 议将集群作为可扩展性 ...

  4. 企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨...

    何谓大规模并发,不同层面有不同的理解 企业应用(Intranet):千级强并发,万级弱并发(在线用户),十万级用户 大型企业ERP.供应链,大型企业HR.办公OA 互联网应用(Internet):百万 ...

  5. java ejb jsp 架构_JavaEE架构

    B/S 体系结构 image.png Java EE 经典架构 image.png Java EE 13规范 JDBC image.png JDBC 对象与接口 java.sql.DriverMana ...

  6. 【演讲实录】下一代企业级应用架构管理体系

    在IT系统的建设和管理中,敏态和稳态似乎不可协调的两个问题,那么在企业IT系统的管理中,如何根据需求去合理管控,今天将通过王璞老师在第七届数据技术嘉年华上的分享进行详细解读. 本次分享重在讲解企业系统 ...

  7. java 企业级应用设计规范_一步一步理解Java 企业级应用的可扩展性

    原标题:一步一步理解Java 企业级应用的可扩展性 老实说,"可扩展性"是个全面且详尽的话题,而且往往得不到充分理解.人们通常认为可扩展性等同于高可用性,笔者见过编程新手和架构师& ...

  8. 企业级小架构设计部署实现-docker变种(一)负载均衡网站

    企业级小架构设计部署实现 企业级小架构设计部署实现-docker变种(一)负载均衡网站 企业级小架构设计部署实现-docker变种(二)日志系统 Elastic 企业级小架构设计部署实现-二- Ans ...

  9. 阿里云ACP企业级互联网架构ACP实验之本地配置EDAS开发环境

    精选30+云产品,助力企业轻松上云!>>> 实验概述 企业级分布式应用服务(Enterprise Distributed Application Service, 简称 EDAS)是 ...

最新文章

  1. 洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib
  2. java输出流flush操作
  3. input val >=zero input_val <=one
  4. PHP项目部署在tomcat,在Tomcat中部署Web项目的操作方法(必看篇)
  5. 山谷序列C语言,通达信 山谷独创 主升黑马主图源码
  6. 如何合理的规划jvm性能调优
  7. if laytpl 非_Layui-神奇的layui.laytpl
  8. java excel导出2007_java操作excel文件,实现批量导出,和导入
  9. JAVA核心知识总结
  10. 获取Java对象中所有的属性名称和属性值
  11. python进阶22再识单例模式
  12. mac idea jrebel 激活
  13. Apache和Apache Tomcat的区别是什么?
  14. linux密码记录木马,注意 “QQ大盗”木马注入 QQ 进程记录QQ账号与密码
  15. 华为服务器修改root密码,华为云 服务器重置root密码
  16. 数学解题技巧-孙明华
  17. 每天叫醒的不是闹钟而是励志文章梦想
  18. 嵌入式实践项目(二)——机房温度监控系统
  19. xmanager连接linux终端,Xmanager连接CentOS 7远程桌面
  20. 国际及国内计算机界核心期刊和会议

热门文章

  1. $.ajaxSetup({}) --- js ajax统一配置
  2. SQLSERVER查看数据库日志方法和语句示例,已亲测。
  3. 名帖21 赵之谦 篆书《铙歌册》
  4. python建筑工程中的应用_计算机语言在rhino、Revit等建筑软件中的应用初探,个人,对于,建筑学,领域,rhinorevit,探索...
  5. 调研分析:全球与中国木姜油市场现状及未来发展趋势
  6. 1011 A+B 和 C (15 分)
  7. IPVS之隧道转发模式
  8. IPVS调度算法之DH
  9. java做HTML ENCODE
  10. 使用FFT变换实现图像卷积