web软件构架 软件构架 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

web软件构架 软件构架

时间:2021-04-13 12:51:37
web 应用架构图 用什么软件是为了方便监控运行状态、CSS等不会根据不同用户而变化的静态内容,将其直接返回给用户。因为不需要进行逻辑判断,性能主要取决于I :负载均衡、授权验证(可选),是在对浏览器
作者:

web软件构架

web 应用架构图 用什么软件

是为了方便监控运行状态、CSS等不会根据不同用户而变化的静态内容,将其直接返回给用户。

因为不需要进行逻辑判断,性能主要取决于I/:负载均衡、授权验证(可选),是在对浏览器发起的请求进行授权校验、运维后台。

1)负载均衡是为了改善用户体验、充分利用服务器资源,主要功能是将新的请求转发到不那么忙的服务器进行处理。

2)授权验证、升级维护系统,不直接参与对外服务。

先写这么多吧,如果不是合法的请求。

具体实现会根据业务需要而变化,也可以变得非常复杂。

5)数据库,是数据所在,既有经典的关系型传统数据库系统,也有为了提升访问性能,就回什么内容。

而在实际应用中,WEB系统的架构。

最简洁的就是用NODEJS写一个echo,就是客户端发什么内容,一般会调用数据库和数据缓存,响应可以非常快,WEB系统这个话题太大了。

一般来说,是根据用户请求的不同,而进行响应的业务逻辑处理,就予以拒绝或者重定向至登录页面,也会把一部分动态内容,例如对访问量大的新闻页,做静态处理,以提升响应速度。

静态内容服务的典型是CDN。

4)动态内容服务。

那么简单来讲,只要是能与浏览器通过网络交互的系统,都可以算是WEB系统,主要是指后端,前端就是各种浏览器了,一般有这么几个部分、减轻的内存数据库。

6)运维后台。

3)静态内容服务,是指图片、静态内容服务、动态内容服务(业务逻辑);O读写。

有具体的问题了。

超大型网站。

比如对用户数据的CRUD(增删查改)。

这是绝大多数WEB系统的核心所在、数据库...

web2.0到底怎么架构?

Web 2.0是一个新生的术语,它的应用可以让人了解目前万维网正在进行的一种改变——从一系列网站到一个成熟的为最终用户提供网络应用的服务平台。

这种概念的支持者期望Web 2.0服务将在很多用途上最终取代桌面计算机应用。

Web 2.0并不是一个技术标准,不过它包含了技术架构及应用软件。

它的特点是鼓励作为资讯最终利用者透过分享,使到可供分享的资源变得更丰盛;相反的,过去的各种网上分享方式则显得支离破碎。

概览 Web(在这里,指代“Web 1.0”)最早的概念包括不常更新(甚至不更新)的静态HTML页面。

而.com时代的成功则是依靠一个更加动态的Web(指代“Web 1.5”),其中CMS(内容管理系统)可以从不断变化的内容数据库中即时生成动态HTML页面。

从这两种意义上来说,所谓的眼球效应则被认为是固有的Web感受,也因此页面点击率和外观成为了重要因素。

Web 2.0的支持者认为Web的使用正日渐以交互性和未来的社会性网络为导向,所提供的服务内容,通过或不通过创建一个可视的、交互的网页来充分挖掘网络效应。

某种观点认为,和传统网站相比,Web 2.0的网站更多表现为Point of presence或者是依赖用户的门户网站。

另一方面,其实早在1999年,著名的管理学者彼得·杜拉克 (Peter F. Drucker)就曾指出当时的资讯科技发展走错了方向,因为真正推动社会进步的,是"Information Technology"里的"Information",而不是"Technology"。

若然单单着重技术层面而忽略了资讯的话,就只是一具空的躯壳,不能使社会增值。

而Web 2.0很明显是透过参与者的互动:不论是提供内容、为内容索引或评分,都能够使他们所使用的平台增值。

透过参与者的互动,好的产品或资讯本著它的口碑,从一小撮使用者扩展到一大班人,一但超过了临界质量,就会“像病毒一样广泛留传”(葛拉威尔,2002)。

该词的来源 有不少人以为"Web 2.0"是一个技术的标准,其实这是个美丽的误会,因为Web 2.0只是一个用来阐述技术转变的术语。

这个术语是由O"Reilly Media的Dale Dougherty 和 MediaLive 的 Craig Cline 在共同合作的脑力激荡(brain storming)会议上提出来的。

Dougherty提出了Web目前正处于复兴时期,有着不断改变的规则和不断演化的商业模式。

而Dougherty则是举例说明——“DoubleClick是Web 1.0,Google AdSense 则是Web 2.0。

Ofoto是Web 1.0;Flickr 则是Web 2.0”,而不是给出确切的定义,和补充一个商业前景,同时O"Reilly Media、Battelle和MediaLive 在2004年10月启动了第一个Web 2.0大会。

第二次的年会已在2005年10月举办。

在他们的会议开场白上,O"Reilly和Battelle总结了他们认为的表现了Web 2.0应用特色的一些关键原则:将Web作为平台; 驾驭群体智慧 资料将变成未来的“Intel Inside”; 软件不断发行与升级的循环将会终结(“永久的Beta版”) 轻量型程序设计模型; 通过内容和服务的联合使轻量的业务模型可行; 软件执行将跨越单一设备 丰富的使用者体验 分享和参与的架构 所驱动的网络效应; 通过带动分散的、独立的开发者把各个系统和网站组合形成大汇集的改革; 拉动长尾的能力; 快速的反应与功能新增 双向的互动 这种软件发布中的版本号的使用从某一方面也暗示了整个Web已经被看作是一种有着重大增值意义的新产品,而且正在被重新编写和发布。

同语义网的比较 对于Web 2.0这个词的一个较早的出现是作为语义网的同义词。

这两个概念有点相似而且是互补的。

结合了基于标签的Folksonomy(分众分类法)的社会性网络系统如FOAF和XFN,以及通过Blog和Wiki进行发表,已经创建了一个语义环境的天然基础。

技术 Web 2.0技术基础比较复杂而且还在演化中,但可以肯定的是包括服务器端软件、内容联合组织、消息协议、基于标准的浏览器和各种不同的客户端应用程序。

(一般会避免使用非标准浏览器的一些增强功能和插件)这些不同但是互补的方法提供了Web2.0信息存储、创建和分发的能力,这些能力远远超出了先前人们对网站的期望。

如果一个网站使用了以下一些技术作为特色的话,就说他是利用了Web 2.0技术:技术方面:CSS, 语义化有效的XHTML标记,和Microformats 不突出的丰富应用技术(例如Ajax) 数据的联合,RSS/ATOM RSS/ATOM数据的聚合 规则且有意义的URL 支持对网志发帖子 REST 或者是XML Web服务API 某些社会性网络方面 通用概念:网站不能是封闭的——它必须可以很方便地被其他系统获取或写入数据。

用户应该在网站上拥有他们自己的数据。

完全地基于Web —— 大多数成功的Web 2.0网站可以几乎完全通过浏览器来使用 内容联合组织 Web 2.0的首要的也是最重要的发展,包括了使用标准化协议的网站内容的联合,这可以让最终用户在其他环境中使用网站的数据,包括另一个网站、浏览器插件、或者一个单独的桌面应用程序。

这些联合协议包括RSS,资源描述框架(RDF),和Atom,这些都是基于XML的。

特别的协议如FOAF和XFN(XHTML朋友网络)——这两者都是为了社会性网络开发的——扩展了网站的功能或者可让最终用户不集中于网...

怎样看web项目的系统架构设计

软件下载: 1、java 这里使用的是jdk1.4.2。

下载地址:http:dlc.sun.comjdkj2sdk-1_4_2_07-windows-i586-p.exe; 2、tomcat 这里的tomcat的版本是5.0的,安装版或是解压版都是可以的。

下载地址:http:apache.linuxfoum.netdis ... a-tomcat-5.0.28.exe 3、数据库 推荐使用mysql,ut暂时找不到下载地址,由于此次偶们班有课程设计要用sqlseve的,所以下面实践会使用sqlseve(找张安装盘安装) 注:连接sqlseve需要三个ja文件(文件名ms开头),可从这里下载: http:www.softhouse.com.cnhtml ... 11250300001646.html 上面包括完整的配置方法

javaweb三层架构配置软件安装情况是什么?

软件安装: 1.双击安装jdk。

装完后在我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量: (假设你的JDK安装在c:jdk) JDK_HOME=C:\jdk classpath=.;%JDK_HOME%\li\dt.ja;%JDK_HOME%\li\tools.ja 在PATH(原来就已存在)中添加:%JDK_HOME%\in 这样jdk环境配置成功。

2.双击安装你的Tomcat。

(建议安装在D:tomcat) 注:tomcat5.0.x版本不需配置环境变量就可以使用,但如果需要编译Sevlet则必须将tomcat的两个ja文件也放到环境变量中,具体方法如下: 在我的电脑-属性-高级-环境变量-系统变量中添加: TOMCAT_HOME=D:\tomcat 修改classpath变成:.;%JDK_HOME%\li\dt.ja;%JDK_HOME%\li\tools.ja;%TOMCAT_HOME%\common\li\sevlet-api.ja;%TOMCAT_HOME%\common\li\jsp-api.ja; 这样已经完整安装完Tomcat了。

建议:在PATH中再添加:%JDK_HOME%\in;%TOMCAT_HOME%\in 这样做的目的是在虚拟dos中可以使用tomcat的工具 最后顺便把第一步下载回来的三个ja文件放到tomcat目录下的commonli目录中 3.测试: 打开开始菜单中的tomcat(小猫图案)的monito工具,点击stat seve,显示绿色三角形即为启动,打开浏览器在地址栏输入:http:localhost:8080可以看到小猫图案说明已经配置成功。

4.安装数据库(sqlseve) windows xp下必须安装个人版或开发版(个人推荐个人版)。

一直next就可以(微软的东西就是方便),这里注意到域帐户那里选择本机帐户,到验证那里选择混合验证(这点很重要,若选择系统认证以后在程序中就连接不上数据库),为你的sa用户输入一个密码(如果练习用就不用考虑安全性啦,选择“空密码”就可以)

数据可视化的web前端开发采用什么样的架构比较合适

web前端分为网页设计师、网页美工、web前端开发工程师 首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责 网页美工只针对UI这块儿的东西,比如网站是否做的漂亮 web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。

web前端需要掌握的有脚本技术javascript DIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。

后端的话可供开发的语言有 asp、php、jsp、.NET 这些后端开发语言的话搭建环境都不一样,具体如果你想学的话看是想从事前端部分还是后端程序部分。

后端开发如果有一定的条件的话可以转为软件开发。

不过要有一定的语言基础,类似java语言。

C#等。

关键是看你的兴趣爱好。

这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是。

在我们实际的开发过程中,我们当前这样定位前端、后端开发人员。

1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。

2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。

现在来看,我们对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题。

还是先google一下,看看网上对Web前端开发、Web后端开发分别是什么看 Web前端: 顾名思义是来做Web的前端的。

我们这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。

包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。

Web后端:后端更多的是与数据库进行交互以处理相应的业务逻辑。

需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。

我们再来看看大公司对前后端人员招聘的要求,通过这个角度看看前端、后端的技术要求: Web前端: 1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。

2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。

3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery 4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。

5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。

6)...... Web后端: 1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解 2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力 3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑 4)精通面向对象分析和设计技术,包括设计模式、UML建模等 5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力 6)...... 从几个公司的招聘要求可以看到,做Web开发,对前端和后端的要求是各自所不同的。

而我们目前的实际情况,也和这个差不多,但是,我们无论在知识的掌握程度上,还是知识掌握的宽度上,都是不够的。

首先,我们在前端缺乏积累,没有沉淀,专业的前端技术的积累是从去年才开始的,同时,在前端也缺乏支撑与高手,所以,走起来比较困难。

同时,前端人员培养的较少,一个原因是对前端了解太少,另外一个原因就是对前端与后端的工作比例估计不足。

所幸,我们在这一年也在前端有了很快的进步,培养了几个优秀的开发人员,有意识的解决了前端的用户体验,这都是可喜的。

今年,需要更进一步,专业化。

其次,我们在后端发展的不够宽,后端的知识体系已经比较完善,但是,很多应用点都没有涉及到。

同时,对现有技术框架的理解都不够深入,太浮躁。

我们目前的设计团队在解决互联网高并发、大数据量的存取上经验与能力都还不足,需要正视这些问题。

后端技术的发展需要更加的精进,以解决实际存在的问题为主。

最后,我们在前端、后端都缺乏熟练工,这会影响到开发的速度,同时,也不利于后期技术的研究。

B/S 构架系统的实现

第一、什么是C/S结构。

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。

它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系 统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

而且代价高,效率低。

第二、什么是B/S结构。

B/S(Browser/Server)结构即浏览器和服务器结构。

它是随着 Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端 (Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。

这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立B/S结构的网络应 用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。

它是一次性到位的开发,能实现不同的人员,从不同的地 点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服 务器数据库也很安全。

特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

第三、管理软件主流技术。

管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。

首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。

其次,今天所有电脑的 浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识 别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

二、C/S和B/S之比较 C/S和B/S是当今世界开发模式技术架构的两大主流技术。

C/S是美国Borland公司 最早研发,B/S是美国微软公司研发。

目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。

这两种技术都有自己一定的市 场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可 谓仁者见仁,智者见智。

1、C/S架构软件的优势与劣势 (1)、应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。

二者可分别称为前台程序与后台程序。

运行数据库服务器程序的机器,也称为应用服务器。

一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

(2)、数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。

所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。

在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。

在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

(3)、C/S架构的劣势是高昂的维护成本且投资大。

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务...

软件的架构与设计模式之什么是架构

一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。

具体地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)。

所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。

·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行具体设计甚至建造,这些决定就很难更改甚至无法更改。

显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

计算机软件的历史开始于五十年代,历史非常短暂,而相比之下建筑工程则从石器时代就开始了,人类在几千年的建筑设计实践中积累了大量的经验和教训。

建筑设计基本上包含两点,一是建筑风格,二是建筑模式。

独特的建筑风格和恰当选择的建筑模式,可以使一个独一无二。

下面的照片显示了中美洲古代玛雅建筑,Chichen-Itza大金字塔,九个巨大的石级堆垒而上,九十一级台阶(象征着四季的天数)夺路而出,塔顶的神殿耸入云天。

所有的数字都如日历般严谨,风格雄浑。

难以想象这是石器时代的建筑物。

图1、位于墨西哥Chichen-Itza(在玛雅语中chi意为嘴chen意为井)的古玛雅建筑。

(摄影:作者)软件与人类的关系是架构师必须面对的核心问题,也是自从软件进入历史舞台之后就出现的问题。

与此类似地,自从有了建筑以来,建筑与人类的关系就一直是建筑设计师必须面对的核心问题。

英国首相丘吉尔说,我们构造建筑物,然后建筑物构造我们(We shape our buildings, and afterwards our buildings shape us)。

英国下议院的会议厅较狭窄,无法使所有的下议院议员面向同一个方向入座,而必须分成两侧入座。

丘吉尔认为,议员们入座的时候自然会选择与自己政见相同的人同时入座,而这就是英国政党制的起源。

Party这个词的原意就是"方"、"面"。

政党起源的要害就是建筑物对人的影响。

在软件设计界曾经有很多人认为功能是最为重要的,形式必须服从功能。

与此类似地,在建筑学界,现代主义建筑流派的开创人之一Louis Sullivan也认为形式应当服从于功能(Forms follows function)。

几乎所有的软件设计理念都可以在浩如烟海的建筑学历史中找到更为遥远的历史回响。

最为闻名的,当然就是模式理论和XP理论。

架构的目标是什么正如同软件本身有其要达到的目标一样,架构设计要达到的目标是什么呢?一般而言,软件架构设计要达到如下的目标:·可靠性(Reliable)。

软件系统对于用户的商业经营和治理来说极为重要,因此软件系统必须非常可靠。

·安全行(Secure)。

软件系统所承担的交易的商业价值极高,系统的安全性非常重要。

·可扩展性(Scalable)。

软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。

只有这样,才能适应用户的市场扩展得可能性。

·可定制化(Customizable)。

同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。

·可扩展性(Extensible)。

在新技术出现的时候,一个软件系统应当答应导入新技术,从而对现有系统进行功能和性能的扩展·可维护性(Maintainable)。

软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。

一个易于维护的系统可以有效地降低技术支持的花费·客户体验(Customer Experience)。

软件系统必须易于使用。

·市场时机(Time to Market)。

软件用户要面临同业竞争,软件提供商也要面临同业竞争。

以最快的速度争夺市场先机非常重要。

架构的种类根据我们关注的角度不同,可以将架构分成三种:·逻辑架构、软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。

比如下面就是笔者亲身经历过的一个软件系统的逻辑架构图 图2、一个逻辑架构的例子从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。

每一个层次都含有多个逻辑元件。

比如WEB服务器层次中有Html服务元件、session服务元件、安全服务元件、系统治理元件等。

·物理架构、软件元件是怎样放到硬件上的。

比如下面这张物理架构图描述了一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器、主机等等。

图3、一个物理架构的例子·系统架构、系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。

系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。

此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。

首先,一个软件系统中的元件首先是逻辑元件。

这些逻辑元件如何放到硬件上,以及这些元件如何为整...

现代JavaWeb开发架构是怎样的?

在本文中,我将集中讨论现代的Java开发框架,分析它们的特征和各自的使用优点。

另外,我还想比较目前流行的生产质量框架,例如Stuts,Sping和Hienate,并详细讨论其基本相似性及有关基本概念。

我将简短分析被用于支持这些框架的企业开发环境或工具箱,例如Boland JBuilde,Eclipse以及BEA Wokench。

请记住,市场上有许多有关这些开发框架的图书;然而,在任何一篇文章中,要对它们进行深入描述是不可能的。

不过,我将尽力讨论最广泛地使用的概念。

1. 共同点 几乎所有现代的网络开发框架都遵循了模型-视图-控制(MVC)设计模式--商业逻辑和描述被分开,由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动。

这条途径成为了网络开发的事实上的标准。

每个框架的内在的机制当然是不同的,但是开发者们使用来设计和实现他们的We应用软件的API是很类似的。

差别还存在于每个框架提供的扩展方面,例如标签库,JavaSeve Faces或JavaBean包装器等。

所有的框架使用不同的技术来协调在We应用程序之内的导航,例如XML配制文件,java属性文件或定制属性。

所有的框架在控制器模块实现的方法方面也存在明显的不同。

例如,EJB可能实例化在每个请求中需要的类或使用Java反射动态地调用一个适当的行动(Action)类。

另外,不同框架在各自引入的概念上也有所不同。

例如,一个框架可能定义用户请求和反应(以及错误)场所,而另外一个框架可能仅仅定义一个完整的流--从一个请求到多个响答和随后的再请求…… 各种Java框架在它们组织数据流的方法方面是很类似的。

在请求发出后,在应用程序服务器上产生一些行动;而作为响应,一些可能包含对象集的数据总是被发送到JSP层。

然后,从那些对象--可能是有sette和gette方法的简单类,javaeans,值对象,或者一些集合对象--中提取数据。

现代的Java框架还想方设法简化开发者的开发任务,如通过使用简易的API,数据库连接池,甚至数据库调用包等提供自动化的追踪方式来实现。

一些框架或者能够钩进(hooked into)另外的J2EE技术中,例如JMS(Java消息服务)或JMX,或把这些技术集成到一起。

服务器数据持续性和日志也有可能成为框架的一部分。

2. 企业开发环境 一些框架在We开发者社区和企业发展领域变得相当流行。

随着这些框架的日渐成熟并开始发行稳定的版本,商业的IDE(集成发展环境)开始为这些框架提供支持并把他们纳入到自己的产品中。

一些IDE甚至基于框架的概念开发出整个的产品,例如,BEA WeLogic Wokshop就是基于Stuts框架建立起来的。

Boland Juilde为Stuts提供了内建的支持,也支持JSF和JSTL。

Eclipse平台已成为一个很流行的开发工具,部分因为它是基于插件的,部分因为它对于We框架的支持。

现在,出现了众多的Eclipse插件,甚至完整的基于Eclipse的IDE。

许多插件被设计适合于Stuts框架开发,例如MyEclipse(www.myeclipse.og)或M7。

大多数IDE都具有图形化的流程和可视化对象(类代理)。

例如,下面是一个JBuilde的行动(Action)设计器,用于规划We应用程序的页面顺序。

WeLogic Wokshop引入Java页面流程技术,它扩展了Stuts框架而提供了一个简化的开发模型并增加了另外一些特性。

Wokshop使用页面流(Page Flows),实现轻易地把用户接口与导航和商业逻辑分离开来。

页面流由JSP页组成,这些页面包含用户接口元素和一个控制器文件(JPF)--它包含由用户提供的数据将怎样被处理的指令以及下一步什么页面将被返回到用户的信息。

页面流动提供给开发者一个可视化的We应用程序总体轮廓,它让开发者能够看到直观地分析不同的JSP页彼此相关联,并实现We应用程序整体结构的快速建立。

大家还关注
阅读排行
推荐阅读