




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java EE公司级运用架构一.Java EE是啥? Java EE(Java Enterprise Edition)是一种公司级运用的软件架构,一起是一种思想,一套规范。二.Java EE的展开史 Java Enterprise Edition的展开不知不觉现已12年了,不知道我们有没留神,一初步,Java Enterprise Edition简称“J2EE”,直到版别5才改名为Java EE,而如今最新的版别则是Java EE 6。 到这里,或许有人会问,为啥会有这么多套Java EE规范?这些版另外不一样是啥?1.J2EE1.2的出现,首要是将之前各个单独的规范绑定到一起。2.J2EE1.3,则是继续完善J2EE系统规划。3.J2EE1.4,首要是加入了一个重要主题:Web Service4.而Java EE 5,主题则是“简化”,简化之前杂乱的J2EE思想,改善开发领会。三.Java EE终究要处置啥疑问?1.Java EE处置啥疑问? 从Java EE展开布景看,它与“分布式运用”以及“互联网运用”的联络密不可分,而这两者也正是Java EE要处置的疑问! 其实,分布式运用跟着90年代互联网的兴起逐步初步广泛。在90年代中,各种分布式运用规范逐步诞生,如:OMG的CORBA,MS的DCOM等,而Sun在推出Java的RMI(Remote Method Invocation)后,便以RMI作为通讯基础构建了Java EE。我认为,Java EE最中间要处置的疑问便是“分布式运用”。而在接下来的比赛中,Java EE也不负所托,逐步代替了CORBA,DCOM的方位。2.分布式运用与RPC RPC(Remote Procedure Call),在聊到分布式运用时许多人会榜首时辰想到它。所谓RPC,便是远程调用一个效力,但作用和本地调用一样。在初步的时分,RPC很类似C言语的函数调用,但跟着编程言语和技术的展开,特别是面向方针和面向组件技术的广泛运用,便出现了“远程方针/方法调用”。所谓“远程方针/方法调用”其实便是把调用远程方针和本地方针的区别躲藏起来,让调用者可以像运用本地方针那样调用远程方针。从本质上说,初步的RPC和后来的“远程方针/方法调用”稍有不一样,在“远程方针/方法调用”中,被调的效力还需要考虑如:方针生命周期处理,业务处置这些疑问。但抽象地说,初步的RPC和“远程方针/方法调用”都称为:RPC,所以之前说到的如:DCOM,CORBA,JAVA的RMI,.NET的Remoting都称为RPC。而我认为,RPC的本质便是:运用协议 + 传输协议。而各种不一样的RPC完结之间的区别亦在此。 而所谓的“分布式运用”,实习上可以说是用RPC方法,把各个分布在不一样机器的运用模块联组成一个系统。可以说RPC是“分布式运用”的基础,所以就有“以RMI作为通讯基础构建了Java EE”这一说了。四.Java EE系统规划 这里,我计划从分析“公司级运用”下手,并藉此逐步建立整个Java EE系统。1.概述Java EE系统规划 为了有形象,我们先来个最简略Java EE架构图看看:从上图看到,Java EE一般分为4层:(1)客户端(2)web层(3)业务逻辑层(4)公司信息层(EIS:Enterprise Information System) 呵呵,不要认为Java EE只是描写效力端规范,实习上,它仍是包含了一些客户端相关东东,比方:Applet.不过,Java EE的关键仍是在效力端这方面,而这篇文章关键也是介绍Java EE在效力端这方面的内容。2.“公司级运用”分析(1)分布式运用 首先从总的来看,一个“公司级运用”代表着,这个系统肯定是“非常大型的”,这么大型的系统,这么多的运用,是不可能把运用都安置在一台机器上的,所以“分布式运用”这个需要便瓜熟蒂落地出现。志向的“公司级运用”中,各种功用模块大约分布在不一样的机器上,在需要某功用的时分,我们可以动态地进行调用。(2)系统分层 公司运用中,业务的功用会非常杂乱。此时,模块间的解耦以及系统的分层初步显得重要,解耦与分层会使得系统规划清楚,并且健旺。而传统的分层方式是一般是:接入层,逻辑层,数据层。(3)异步 描写分布式运用时,你遇到的榜首个疑问便是:等待.在公司级运用中,业务的处置时杂乱的。如果把子模块安置到不一样机器后,要处置一个业务,很可能需要到多台机器上进行调用;另外,子模块的运算也需要一定的时辰,此时,“等待”就出现了。由于你无法估量这个杂乱的业务啥时分才华处置完,所以,“异步”这个概念也瓜熟蒂落地被引入。(其实,这也体现了软件描写中“快慢分别”的原则)(4)业务,安全 关于业务的重要性这里就不多说了。 而安全,一般指对某个模块的授权,身份验证等等,在公司级运用中,安全肯定是重要的一块。(5)Java EE途径与其他已有资源、效力、系统的联络 在Java EE出来之前,许多公司很可能现已建立了比拟完善的公司信息系统(EIS),显着,和这些已有的系统联络,在公司级运用中显得尤为重要。3.Java EE系统规划胪陈 OK,如今让我们来逐步知道,Java EE每个部件的作用吧。(1)Servlet,JSP JSP,Servlet同属“web层”,并都归于“动态网页技术”。所谓“动态网页技术”和传统的“静态网页技术”不一样,传统的“静态网页技术”说白便是把做好的html文件直接上传到效力器并直接供客户阅览,而“动态网页技术”则是每次都根据用户央求,动态生成照应页面并回来。“动态网页技术”的长处不言自明,无论从灵活性,数据保密性等方面说都是“静态网页”所无法比美的。但“动态网页技术”也是有缺陷的,便是相对较慢,如今的处置计划一般是:把“动态网页”中相对固定的部分做缓存,即所谓“静态页面”。(额.“静态网页”和“静态页面”本质上没啥区别,都是静态页面,但思想上却有很大区别。而如今的程序员一般会对“静态”这个词赋予一个新的含义:“缓存”)【1】Servlet Servlet实习上便是按照Servlet规范编写的一个java类,与传统的命令行发起的Java运用程序不一样,Servlet位于Web效力器内部,并由Web效力器加载并调用。【2】JSP JSP全称是:JavaServer Page。这项技术的推出目的其实很简略,为了抵偿Servlet一个很重要的缺陷:“费事”。先看看Servlet终究啥地方让人觉得费事,下面是一个Servlet处置Get央求比方:public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException System.out.println(处置GET央求ing.); response.setContentType(text/html;charset=GB2312); PrintWriter out = response.getWriter(); out.println(); / 静态内容 out.println(); / 静态内容 out.println(Hyddds Servlet Demo + new Date().toString(); / 动态内容 out.println(); / 静态内容 out.println(); / 静态内容从上面这个比方,信赖我们现已发现疑问了,Servlet首要是把动态内容混合到静态内容中以发作html,这致使Servlet代码中将会输出许多的html标识,哇,阴间,简直便是阴间,一起,这也非常不利于程序员和UI美工的协作(不要希望美工人员会和你一起写html标识)。为了处置这些疑问,JSP诞生了。 JSP是一种建立在Servlet规范之上的动态网页技术,一般做法是:在html页面中嵌入JSP符号和脚本代码。JSP把静态内容和动态内容的分别,完结了内容和标明的分别。【3】Servlet与JSP的联络 上图描写得比拟清楚了,JSP文件先是转换为Servlet类,然后编译,并发起Servlet实例照应客户端央求。为啥说JSP是建立在Servlet上的动态网页技术,从这里可以看出来。 Web层首要便是JSP以及Sevlet这两项技术。(2)EJB(Enterprise JavaBean) 之前说过,分布式运用是Java EE一个基础的需要,额那在不一样机器上的“分布式”的运用终究会以一个啥样的形状出现呢?答案便是:EJB。EJB归于业务逻辑层上的东东。 所谓Bean,其实是“组件”的意思。EJB可以让你像搭积木一样,通过本地/分布式调用组装不一样运用到大型运用中,使你能集中精力来处置公司的业务逻辑,而像业务、网络、安全等等这些底层效力则统统留给EJB效力器开发商来处置。 运用根据组件的开发,可以把代码重用上升到一个新的高度。运用面向方针开发,重用的是类,而根据组件时,重用的则是更大的功用块。 【1】EJB vs Java Bean 我自个认为,Java Bean恰当所以数据存储类(不触及详细业务逻辑),专门用来存数数据,供应getter,setter方法,并且在JVM上可直接工作。EJB则恰当于一个功用模块,供应业务逻辑的效力,而工作时,则需要EJB容器的帮忙。 EJB是业务逻辑层最重要的技术哦!(3)Container(容器) Container这个概念经常在Java EE中出现,所谓Container,在Java EE 5 Tutorial中有这样一段说明:“Containers are the interface between a component and the low-level platform-specific functionality that supports the component.”,而Container的作用,我自个的认为是:为“运用程序”供应一个环境,使其可以不有必要注重某些疑问,如:系统环境变量,业务,生命周期.粗浅地说,Container就像“秘书”,帮“运用程序”处理着各种杂乱的疑问,为其供应工作时支撑。 其间,Java EE里有两个很重要的容器:Web容器和EJB容器【1】Web容器 Web容器是用于保管“Web运用程序”的J2EE容器,首要担任处理“Servlet”和“JSP”工作。【2】Servlet容器 其实,上图中的Servlet指的便是Servlet容器。而Servlet的描写初衷,实习是根据线程池的非常好的线程容器,见下图: 【3】EJB容器 EJB容器首要担任处理“EJB”的工作。 而EJB的描写实习上是根据方针池的思想,你可以认为EJB=方针池+远程方针池。见下图:【4】Servlet与EJB 其实,根据Servlet和EJB的描写初衷,我们现已可以看出Java EE对两者人物的定义了。线程的本质抉择了Servlet只适宜一些比拟简略的轻量级运用;一旦疑问杂乱了,最佳的便是运用EJB。(4)RMI RMI全称:Java Remote Method Invocation,便是运用Java方针序列化的机制,完结远程类方针的实例化以及调用的方法。 RMI在Java EE中的首要是担任处置通讯疑问,特别是不一样的EJB容器之间的通讯。我们知道,在分布式运用中,各个功用模块(EJB)之间通讯需要有共同的RPC协议,否则无法通讯,而RMI便是担任这方面的作业。【1】RMI 与 CORB 可以说,RMI便是CORBA的Java版完结。【2】再谈“远程调用” 如今干流的远程调用方法,不管是com/com+,soap,webservice,rmi,.net remoting,说白了都一样的,便是序列化,网络传输,反序列化。 序列化方法:同种runtime的,可以native的二进制序列化,序列化的功率高。文本的序列化(xml/json/自定义格式)的方法,可以跨途径和言语,一般根据中间类型。但此序列化方法的功率低,数据量也偏大。 网络传输:则可以使socket/http或是自定义协议的。 socket数据冗余最小,功率最高。RMI其实是socket上的自定义协议。 http要走http的报文,文本的方法最适宜,完结最简略,开发和安置便当。(5)JMS JMS:Java Message Service。JMS供应一种消息机制,首要作用是供应异步通讯的支撑,是Java EE的重要基础模块。值得注意,异步通讯,一般都选用消息机制,这种情况在Windows中最常见。(6)JTA JTA:Java Transaction API,首要供应业务效力和分布式业务处理功用,保证分布式业务的共同性,是Java EE的重要的基础模块。(7)JAAS JAAS:Java Authentication Authorization Service(Java认证于授权效力),供应了对Java组件的安全保护,如哪些Servelt,JSP能被哪些用户访问,哪些EJB能被调用等。但需要注意的是,JAAS只供应了对JAVA EE组件的保护,关于公司运用业务的权限,它是做不到的。(8)Connector Connector首要作用便是把其他已有的资源、效力、系统联络到Java EE系统中。不一样的效力供应商和Java EE途径会定义不一样的协议,而Connector便是指这些协议的完结。 至此中止,Java EE的中间模块介绍完毕,让我们来看看J2EE 1.3的架构图(当时的J2EE架构仍是比拟简略的):4.J2EE 1.4 以及 Java EE 5系统规划(1)J2EE 1.4 系统规划 J2EE 1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年贵州科级领导干部选拔考试仿真试题及答案
- 甘南州中考试题及答案
- 工厂机电考试题库及答案
- 日照地理中考试题及答案
- 融创会计笔试题库及答案
- 人资岗位笔试题库及答案
- 2025年护士执业资格考试题库(妇产科护理学专项)产前检查护理案例分析试附答案
- 2025年“世界知识产权日”线上知识竞赛题库(附答案)
- 2025年畜牧防疫知识试题及答案
- 2025年应急预案知识考试题库及答案(共80题)
- 供应链金融服务平台搭建及运营计划
- 司法确认调解协议(2025年版)
- 医疗器械直调管理制度
- (高清版)DBJ33∕T 1294-2023 建设工程造价指标采集分析标准
- 海姆立克急救法操作考核标准
- 2025年店铺转租合同模板版
- 八年级英语上学期 选词填空解题方法及专项训练(解析版)
- 【语文试题卷】2024学年第一学期九年级12月学情调研(终)
- 2022年第十七届广东省中学生天文知识竞赛试题(含答案)
- 2023年温州市苍南县粮食收储有限公司招聘考试真题
- 《永遇乐-京口北固亭怀古》课件
评论
0/150
提交评论