JavaEE体系架构总结 本文关键词:架构,体系,JavaEE
JavaEE体系架构总结 本文简介:第一章javaEE体系架构web回顾:web的核心技术就是servlet和JSP,然而组成一个基本的web应用程序还有:客户端浏览器、HTTP协议、javabean、xml、标记库、web服务器和web容器等技术,通过采用JSP+servlet+javaBean技术实现web应用的开发(也就是MVC
JavaEE体系架构总结 本文内容:
第一章
javaEE体系架构
web回顾:
web的核心技术就是servlet和JSP,然而组成一个基本的web应用程序还有:客户端浏览器、HTTP协议、javabean、xml、标记库、web服务器和web容器等技术,通过采用JSP+servlet+javaBean技术实现web应用的开发(也就是MVC模式),MVC中的每一个组件,她们都充当着不同的角色servlet就是充当控制器角色负责处理业务和控制业务流程,JSP充当视图角色负责输出响应的结果,javabean充当模型角色,负责具体的业务逻辑和业务数据。
详解:当客户端浏览器向web服务器发出HTTP请求,所请求的消息通过控制器,然后控制器从中获得信息,接着控制器把业务逻辑将信息交给一个适当的模型对象,这个模型对象与数据库进行交互,并且按照请求信息的要求进行处理、应答并收集信息,然后把控制权转交给控制器,控制权得到接过信息后决定采用什么样的视图向客户端浏览器显示响应信息,在这一过程中,控制器并不是直接将信息给某个视图做显示,通常这是一个包括把数据放置在适当的javaweb作用域范围对象的过程,这个作用域对象在控制器和视图之间共享。
Javaweb应用开发的层次:
表示层->业务层->持久层
表示层采用了HTML、jsp、XML等视图技术。
业务层中使用java的组件技术javabean实现业务逻辑,在持久层使用jdbc完成业务数据的持久化,在逻辑分层中采用MVC模式将表示层与业务层进行分离,这样便于修改和加入表示层,把处理过程放置在分离的业务层中也更便于测试。采用DAO模式将业务层与持久层分离,从而使得层与层之间进行数据传输。
Web应用的优缺点:
优点:1.web应用能够在servlet容器中运行,便于管理
负载小、对业务层对象的访问叫简单,可以在不同的Servlet之间移植。
然而Web应用也存在一定的缺陷:
1.
她只针对一个服务器和一个数据库,性能较低,应用有限。
2.
无法完成相应的事务处理。
二、JavaEE
1.什么是javaEE企业级应用?
JavaEE是一套设计、开发、汇编和部署企业应用程序的规范,目的与核心是提供相应的服务。
JavaEE体系结构的优缺点:
优点:分布式组件、应用程序的可移植性、可靠与稳定性。
缺点:较高的资源需求、较高的应用程序服务器费用
篇2:企业在信息架构虚拟化建设中易犯的十个错误
企业在信息架构虚拟化建设中易犯的十个错误 本文关键词:架构,错误,虚拟,建设中,企业
企业在信息架构虚拟化建设中易犯的十个错误 本文简介:企业在信息架构虚拟化建设中易犯的十个错误2013-10-1409:39虚拟化改变了企业数据中心和IT架构,但实际上虚拟系统仍然有改进的空间,切莫因为疏于规划与维护而失去虚拟化系统原有的优势。深信通结合众多的大中型企业信息架构规划案例,列举了10个在企业虚拟化建设进程中易犯的错误。1、缺少明确的资源部
企业在信息架构虚拟化建设中易犯的十个错误 本文内容:
企业在信息架构虚拟化建设中易犯的十个错误
2013-10-14
09:39
虚拟化改变了企业数据中心和IT架构,但实际上虚拟系统仍然有改进的空间,切莫因为疏于规划与维护而失去虚拟化系统原有的优势。深信通结合众多的大中型企业信息架构规划案例,列举了10个在企业虚拟化建设进程中易犯的错误。
1、缺少明确的资源部署方法
企业很关心虚拟系统配置及部署的速度,但是很少有人会注意当一个虚拟化系统生命周期结束的时候会发生什么。这是很重要的,因为很多虚拟系统的配置是为了满足临时的IT需求,例如测试一个新的应用。遗憾的是,对于不再需要一个虚拟系统的时候,却没人记得去移除它,这个虚拟系统开始占用本可以用于其他地方的宝贵空间。最终,这逐渐升级成全面的虚拟服务器蔓延,随着物理资源的不断消耗浪费,整个数据中心的效率都会受到影响。
2、未能优化虚拟系统
因为虚拟系统共享一个通用的资源池,并非每个系统在同一时刻都需要这些资源,可能虚拟系统要比在专用物理服务器上的虚拟系统要小。然而,IT的趋势是,将这些系统简单地视为都是针对原来的物理服务器环境,在虚拟环境中重新部署的时候并不改变这些系统。因此,这些系统占用了超过所需的更多资源,虚拟化最初带来的经济效益流失了。
3、没有在最适合的位置部署虚拟化系统
人们对于虚拟化通常有一个直觉,那就是在x86服务器主机上部署虚拟化可以达到最佳效果——但是很多人却意识到,将虚拟Linux或者Windows系统迁移到大型机所能带来的经济效益其实更高一些!如果数据中心内有大型机,那么规划虚拟化的时候不要忘了它。
4、信息孤岛仍然存在
通过将所有托管选项对虚拟系统开放,你最大限度发挥了数据中心虚拟化的好——但是如果你的主机选择可能包括从x86服务器到大型机等各类设备,你的IT员工必须协同工作。在很多数据中心内,员工之间的合作可能是一个比系统集成更大的挑战。这是因为大型机和分布式x86计算组过去通常是彼此独立工作的。这么多年系统和功能都是分离的,因此很难打破这种孤岛式的工作习惯——但是如果你要实施一套端到端的虚拟化战略,充分利用各种主机,这个团队就必须共同努力。
5、确保超越数据中心的虚拟化战略眼光
很多企业机构将他们的精力集中在削减数据中心占地空间和减少服务器数量,这样他们就可以立即实现虚拟化的成本效益,但虚拟化工作不应该止于此。从长期来看,你打算只在自己的数据中心内利用虚拟化吗——或者你是否会剥离某些将与IaaS(基础设施即服务)提供商合作在云中运行的应用?负责虚拟化项目的经理们应该考虑虚拟化的方方面面——不管是在数据中心内的虚拟化,还是通过外包的方式。如果他们没有从整体考虑虚拟架构的话,会发现很难准确评估总成本和应用性能。
6、手动配置脚本导致错误发生并威胁到系统支持协议
大多数站点创建然后重新使用手动脚本用于虚拟系统配置,针对他们特定的IT环境按需修改脚本。这减少了工作量,因为程序员们可以使用“骨架”脚本,只需要少量的修改就可以了。遗憾得是,对脚本的手动修改也可能发生错误。更糟糕的是,如果一个虚拟操作系统被过度修改,那么可能导致新系统偏离原本厂商发行操作系统的风险,厂商会拒绝对其提供支持。解决方案是,使用自动脚本功能进行系统配置,不仅会检查错误,而且确保最终的虚拟操作系统仍然兼容厂商的版本。据称,很多企业机构从手动脚本转向自动脚本还可以提升生产率。
7、缺少后续ROI
监控虚拟化最动态ROI的时候是在第一轮收入和安装虚拟解决方案的时候。原因之一是,比较容易显示设备和电力成本的初始收益,因为你把服务器搬出了数据中心,减少数据中心设备占地空间。然而,随着虚拟服务器的蔓延,一些初始收益减少了。IT应该有一个长期的、持续的方法来监控虚拟化的ROI,这样就不会失去最初实现的收益了。
8、来自应用开发者和厂商的不灵活的实践
应用开发者和软件厂商都习惯于有他们自己专用的物理服务器。开发者将他们的服务器视为个人工作资源,第三方应用提供商通常试图出售包括针对软件的专用物理服务器的交钥匙解决方案。这些专有性的倾向会造成虚拟化实施的僵局。
9、忘记把虚拟资产纳入资产管理范围
软件和数据中心的资产管理往往把重点放在物理资源上,但是也应该有虚拟资源的生命周期管理。
10、不了解虚拟化的局限性
虚拟化并非对每个系统都可行的解决方案。在某些情况下,一个系统要求一个专用的物理服务器(甚至是一个服务器集群)。一个很好的例子是用于大数据分析的高性能计算。这些服务器必须并行处理数据,这在虚拟化部署下是不能很好工作的。
篇3:Atlas架构介绍
Atlas架构介绍 本文关键词:架构,介绍,Atlas
Atlas架构介绍 本文简介:Atlas架构介绍Atlas架构有两个主要部分组成。第一部分为客户端脚本库。它可使开发者更高效地为Web应用程序编写和实现客户端功能。Atlas客户端脚本库具有一个丰富的组件模型,并允许开发者以面向对象的方式进行脚本编程。该脚本库同样包括很多提供常见操作的类,可以直接在应用程序中使用,其中包括网络访
Atlas架构介绍 本文内容:
Atlas架构介绍
Atlas架构有两个主要部分组成。第一部分为客户端脚本库。它可使开发者更高效地为Web应用程序编写和实现客户端功能。Atlas客户端脚本库具有一个丰富的组件模型,并允许开发者以面向对象的方式进行脚本编程。该脚本库同样包括很多提供常见操作的类,可以直接在应用程序中使用,其中包括网络访问、用户界面增强、行为、动作和字符串操作等。因为Atlas脚本基于XML的标记性语言,所以在将来对于实现Ajax功能的应用程序,它会很容易地支持由可视化开发工具自动生成代码。
第二部分为服务器端扩展的集合。开发者可以使用这些服务器端扩展将客户端与服务器端两种应用程序模型集成起来。借助于这些服务器端扩展,开发者仍可以使用现有的ASP.NET应用程序模型,但生成的代码却执行于客户端Atlas运行时之上。
图2-5显示了Atlas的架构。
这样,编写Atlas应用程序与目前编写ASP.NET
Web
Form应用程序的过程类似。服务器端控件将Atlas的声明脚本(相对于ASP.NET的HTML
UI)发送给客户端,然后页面在Atlas客户端框架下运行。此后,应用程序即可运行于客户端,且并不需要频繁回送。客户端应用程序同样可以使用Atlas服务代理,直接连接Web
Service或Windows
Communication
Foundation
(WCF)服务,给用户带来更丰富的客户端体验。
Atlas架构大大减少了开发者所需的代码量,进而提高了开发效率,因为服务器端控件已经为你生成了大量的代码。这种架构将页面中的内容、样式、行为和代码清晰地分开。一种典型的Atlas应用程序设计模式是直接在客户端调用Web服务或WCF服务,而无须再通过一个中介层。这样避免了使用中介层对通信效率的影响,同时也避免了增加中介层对应用程序设计、实现和部署中带来的复杂性。最后,Atlas兼容多种浏览器,它基于熟知的标准设计,使用一个浏览器兼容层脚本库来支持所有流行的浏览器,包括Mozilla/firefox、Safari,当然还有IE。在第3章中会有更详细的介绍。
Atlas客户端脚本库
Atlas带来了一个拥有丰富的类型系统的富客户端API。JavaScript本身包含类的基本概念,但却缺少对类型的充分支持。为了让开发者更容易地开发类和组件,Atlas提供了一些建立在JavaScript之上的类库,以提供更丰富的类库和类型的集合,允许开发者使用命名空间、类、接口、继承以及其他一些通常与现代的高级语言联系紧密的特性。Atlas的脚本库同样提供了一个包含辅助类的基础类库,让脚本开发变得更容易。这个基础类库包括字符串构建类(string
builder)、序列化器类(serializer)、调试类、跟踪类以及网络访问类等。微软公司也将提供一些能与上述调试类、跟踪类集成在一起的工具,让开发者更方便地对脚本程序进行调试。关于Atlas的脚本库,在第3章中会有更深入的介绍。
Atlas包含一个建立于XMLHTTPRequest之上的客户端网络栈,用以调用服务器并使用服务器端功能。例如客户端脚本库中的WebRequest类、WebResponse类和MethodRequest类等。这些类兼容各种不同的浏览器,它们将对XMLHTTPRequest的使用抽象出来,提供给开发者一层一致性的编程接口。这一层将不同浏览器对XMLHTTPRequest的不同实现隐藏起来,让开发者无须了解这些即可开发Ajax类型的应用程序。
另外,Atlas客户端框架还为服务器端服务实现了Web
Service桥(Web
Service
bridge),客户端浏览器可以直接通过Web
Service桥访问服务器端方法。当通过一个特别的URL调用这个服务时,Web
Service桥生成的JavaScript代理将被下载到客户端。
这些JavaScript代理提供一个由Web
Service桥自动生成的接口层,可以通过在服务URL地址后添加/js调用,例如http://servername/servicename/service.asmx/js。
在JavaScript中添加标签即可将这个代理的代码包含在应用程序当中,这样就可以通过代理调用这个服务了。
所以,如果你已经使用.NET框架将你的中间件封装并暴露成了Web
Service,那么使用Atlas即可直接从浏览器中访问它们。在以前的实现中,可能还需要创建一个Web应用程序,来使用这些Web
Service并将其提供给客户端浏览器。
另外,对于现存的建立在ASP.NET之上的Web应用程序,可以在页面中的方法上添加一些属性将其暴露成Web服务。这样就可以容易地改造原有的非面向服务(non-service-oriented)的应用程序,让其暴露出一系列的原子性功能单元,供浏览器中的Ajax应用程序使用!这是页面回调(page
callback)的一个极好的替代品。在第6章和第10章中会有更详细的介绍。
JS对象标记
为了提高数据与类型的传输效率,Atlas支持JSON(JavaScript对象标记)格式。相对于XML和SOAP,JSON更加轻量级。并且,由于不同浏览器中XML/SOAP解释器的实现有所不同,解析同样XML和SOAP格式的数据并不一定能够得到一致性的结果。对象的JSON表示方法与在JavaScript中创建该对象的语法保持一致。
例如,下列代码是一个类的典型表示方法,用来表示某人姓名和年龄:
可以使用下列代码以JSON的方式表示上述类的一个实例:
Atlas
Web用户界面
传统的Ajax应用程序使用HTML以及其相关技术,例如DHTML和CSS来创建用户界面。当界面需要动态改变时,应用程序通过XMLHTTPRequest调用服务器,然后服务器将新的界面样式发送回客户端,浏览器再将其插入到DOM中并呈现。
例如,考虑下面的情况:使用Ajax技术实现一个金融网站(在第11章中会有完整的示例程序)。当用户改变要查看的公司时,页面中的一些部分需要用新的内容更新。图2-6显示了这个应用程序的雏形,包含一个基本的报价和几张图表。考虑如下场景:用户将选择他是否要查看这家公司更详细的报价信息。如果是,那么单击一个按钮来得到这些信息。你希望这些信息显示在同一个页面上,但不希望整个页面被刷新——仅仅是希望这些信息出现而已(参见图2-7)。如果不使用Ajax技术,哪怕网络往返行程再短,在呈现新数据时页面也会闪烁一次。浏览器将会清空并重绘整个页面,虽然页面上的大部分内容都不需要改变。
图2-6
正在加载详细报价信息
图2-7
无页面闪烁地呈现详细报价信息
上述方案带来的问题,一部分是由于该方案没有将表现与业务逻辑清晰的分开而造成的。服务器在管理业户逻辑的同时也管理着UI,而表现层却仅仅简单地负责将服务器分派的内容显示出来。当然,服务器完全可以只发送文本,而不发送界面样式,但这又需要一个JavaScript程序解析该文本并由此生成UI。与完全在服务器端生成UI相比,这种方式往往会更加费力,因为在服务器端开发中,可以充分借助强大的Visual
Studio以及C#或VB.NET(当然,还可以使用Java和Java的IDE)以提高开发效率。
在Atlas的模型中,数据位于服务器端,这也是属于它的位置,而界面样式等表示层代码在第一次呈现后就一直位于客户端。运行于浏览器中的组件和控件将接管所有的呈现任务。从较高的层次来看,运行于浏览器中的组件和控件分为如下两大类别:
q
组件(component):组件类似于积木,是一类可以以声明或编程方式创建的可重用的模块。组件控制着自己的生存周期,组件之间也能很容易地通过绑定或事件彼此连接起来。
q
控件(control):控件是一类与DHTML元素相关联的用户界面元素。控件管理并控制该元素的所有呈现任务。
Atlas
Web
UI数据绑定
关于Atlas的Web
UI,在第7章中会有非常详细的介绍。
Atlas提供一个数据绑定的组织结构,通过使用数据绑定,可以将组件与组件,或组件与数据源(data
source)连接并集成起来。Atlas支持双向的数据绑定;通过数据绑定,数据源可以直接被修改,并且在数据绑定上还可以对数据进行某种形式的转换,在绑定时将一个值转化为另一个,借此实现一些基本的业务逻辑。
图2-8显示了Atlas中一个数据绑定控件的例子,这个例子来自于第5章。关于Atlas的数据绑定,在第5章中会有更详细的介绍。
图2-8
Atlas中应用数据绑定的控件
在Atlas中,可以为某个Web
Service方法添加DataObjectMethod()属性,来指定这个方法执行的是选择、插入、更新或删除操作中的某一个。
下述代码演示了指定该方法为选择操作。
通过使用DataObjectMethod()属性,我们可以将Web
Service方法和客户端数据绑定集成起来,为数据访问提供端到端的良好体验。下述代码演示了使用上面Web
Service方法和服务器端控件的Atlas客户端以及其中的Atlas脚本。
目前列出太多的类似上面的代码并没有什么意义。但不用担心,当读过本书,看到Atlas脚本是如何与HTML优美地配合起来实现GUI逻辑,如何与服务器端控件巧妙结合时,上述代码将很快变得自然而易于理解。
上述代码首先创建了一个名为MyManager的ScriptManager对象,用来保证将适当的脚本和脚本库下载到客户端。然后是HTML标签,用来定义用户界面。这段HTML标签用来表示一个简单的列表,是页面用来生成这个列表的主控模板(master
template)。接下来的部分是在本书中见到的第一个Atlas脚本的实例。
这段Atlas脚本的第一步是建立数据源。通过如下方式使用标签:
上述代码使用属性来指定数据源的名称和提供数据的Web
Service的URL。然后定义了一个当该数据源的某个属性变化时将被触发的事件(在Atlas中叫做动作(action))。
然后定义了一个ListView控件,与数据源绑定。这个ListView控件将依照Web
Service的响应数据生成一个列表。关于上述控件,在第5~7章中会有非常详细的介绍。
最后一部分声明了该绑定被触发的时机。该绑定将在应用程序加载完成时被触发,通过下述Atlas脚本定义:
这段代码非常易懂,几乎无须太多的说明——当页面[2]加载完成时,调用数据源的选择方法。这段代码触发了绑定,当得到数据时,列表将刷新并显示新的数据。
在处理客户端编辑的功能上,数据源控件功能非常强大。数据源控件是一类高效的、离线的数据集(data
set),使用JavaScript实现,包含数据表、列、行等概念。数据源控件同样支持批量更新,允许在客户端暂存修改,并在更新时批量提交回服务器。数据源控件还支持优化并发(optimistic
concurrency),能对修改保持跟踪并提交回服务器处理冲突。
第7章中将讨论Atlas是如何处理数据的。
[1].
原文如此。按照ASP.NET快速入门中的解释,Web部件是一类块状的页面组件,它允许用户依照个人喜好个性化网站的内容,以简单地拖放方式布局页面等。——译者注
[2].
指Atlas客户端应用,而不是HTML页面。——译者注