分享
 
 
 

WEB 应用中的整体结构和层次关系

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

网页层次的内部原理

这一章我们将讲述入对你的用应程序如何设计和利用网页层的物理和逻辑的方面。我们将讲述存在于各个建筑层的关系和在整个用应程序中各个部件所发挥的作用。将特别关注web层,它允许应用程序和客户端通过网页的形式进行交流和相互操作。

Struts Framework是基于java servlet和Java server page 技术的,并在此基础上进行扩展,因此它在web容器中是独立的。对于struts开发者来讲,理解web容器如何处理客户端请求是深刻理解框架本身的基础。这一章将阐述web容器的各种各样的组件并详细说明他们各自得职能。

体系结构得预览

这个部分我们将从较高的层次看看struts应用结构。尽管这个部分展示了企业应用结构,但是并不是所有用struts写得应用都会是这样得规模和这样得构成。但是这种类型的应用程序可以让我们理解如何很多配置struts应用程序。

许多应用程序,特别是j2ee应用程序,可以分层来描述。应用程序的功能被分成很多对立的层,或者说是功能层,这样可以实现职责分离,重用性好,更强得扩展性,和许多其他得利益。这种分离可能是物理方面的分离,也就是说分布在独立的硬件资源上,或者是纯粹的逻辑功能得分离。这种情况下,就是一层或多层配置在同一的硬件资源上,但是这种分离的形式是以软件的形式给出的。下图展示了一种典型的struts应用程序的层次。

并不是每个struts应用程序都包含在上图中所展示所有的层。对许多较小的应用,中间层主要是有web容器组成的,然后由它和在企业信息系统(EIS)层中的数据库直接进行交互。

注:什么是容器?

有多种多样的容器。EJB容器,web容器,servlet容器等等。总之。容器就是提供给软件组件运行的环境,不需要组件开发人员的担心。Web容器允许servlet,jsp组件和其他的java类配置在其中并执行。像JNDI,连接池和事务这些服务,都可以在容器的级别上进行配置,组件开发人员根本不需要担心这些资源的管理;这类似于EJB容器管理安全事务和实体池。(bean pooling).

当我们用容器提供的服务时,组件开发人员可能必须放弃对于容器环境的控制,对重要服务的处理都不需要开发人员去担心编译过程。第三方提供者必须遵循明白公布出来的公共规则来构建容器。尽管第三方提供商可以以自我的方式实现容器的一部分,但是他们必须遵循这个规则,从而保证开发人员能够便捷地进行开发。

客户层

客户层提供了供用户和应用进行交互的一种方法。这种交互可以通过浏览器的方式,也可能是通过编程实现网络服务接口的方式。不论是哪种类型的客户,这种交互包括执行一个请求和从中间层接收一些反映。

就struts框架应用来说,最长见的客户类型是web浏览器。但是,也有可能有像无线设备和java Applet这种类型的客户。

网页层

图2-1展示了中间层是WEB层和一些应用服务组件集成而成的。在图2-1中,是一个EJB容器。这两层经常是组合在一起的,很多应用服务都包含WEB层功能。

Web层提供了让客户端和寄居在其他层的应用逻辑进行交互的能力。在很多一般的web应用中,一般不会让这一层一些或所有的用应逻辑。在更大型的企业应用中,web层作为一个翻译器,让HTTP请求映射到在中间层的其他的服务。

Web层也负责按照应用和用户状态处理屏幕流程。Web层也和数据库交互,或者在企业应用中,作为应用服务器。Web层是相当于把客户应用和核心的后台事务系统粘合在一起的粘合剂。

在web层的组件允许开发人员扩展web服务的功能。对于struts,它通过利用运行在servlet容器中的框架组件。

中间层

中间层通常被称为应用层或者是服务器。这部分是归因于在这一层经常有服务器的这一事实。并不是所有的应用都有应用层的。对于小的web应用更是如此。许多小的工程选择放弃利用大的应用服务器,而和数据库或者是其他的一些数据存储直接进行交互。当一个应用服务器存在的时候,web层利用RMI的一些变种和他们进行交互。对于EJB服务存在于这一层的时候,交流的协议就是在IIOP基础上的RMI.

注:RMI overIIOP

Remote Method Invocation(RMI)允许调用远程对象上的方法。RMI的java实现是著名的java远程方法调用协议(JRMP),它已经存在一定的时间,它是为了java对java远程交流而特别设计的。

对于java版的RMI有一个问题,就是JVM必须同时在客户端和服务端运行,它才能用。对于许多用其他语言(像c++)写的被称为遗产的应用,java需要和这些系统进行交互。这样,RMI over IIOP就出现了。

Intenet Interoperability Protocol(IIOP)是为了让分布式的组件通过TCP/IP进行相互交互而设计的。IIOP是语言和平台对立的。

因此,通过运用在IIOP 上的RMI,java才能够与用其他的语言写的应用在各种各样的平台上进行交互。RMI/IIOP 正如被所写的那样,需要EJB服务器的支持,因此存在于EJB和J2EE的规格说明中。

当包含应用层的时候,它能够提供更多的扩展性,容错能力和很高的可得到的架构。当然,它依赖于很多不同的因素。其中主要的一个目的是把表现的职能从模型和事务规则中分离出来。现代,很多web应用都是用EJB服务器作为应用层。他们可能没有用到J2EE架构的各个方面,如EJBs,但是有很多由于存在J2EE服务器而引起的其他的很多利益。

企业信息系统层(EIS)

企业信息系统层包括在整个企业中所用到的数据和服务。它提供了对企业资源,包括数据库,大型机,用户关系管理应用(CRM),资源计划系统。

中间层通过利用针对这种资源的协议和在企业信息系统中的组件进行交互。例如,中间层通常利用JDBC驱动来和关系数据库进行交互。对于企业资源计划系统,尽管一些系统和其他的资源开始支持更像web服务的存取方式,但是私有的适配器仍然被使用。

这是本人的第一次翻译,有不对的地方请各位多多见谅。并把意见发送到我的邮箱:anywn_ldh@126.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有