个人总结,仅供参考,欢迎加好友一起讨论
第二版教材对应第7,8两章,是整个架构考试里最重要的章节,其内容不仅在选择题占大头,案例论文也是每年都考。本章节选择题,除了教材上有的架构基本概念、架构风格、DSSA、ABSD、质量属性和架构评估外,还涉及到了很多教材上没有的内容,如构件和连接件、中间件、构件开发等,这些内容在老版教材是有单独的章节,但是第二版教材已经都删除了,个人认为出题的概率还是很大的。
架构的本质
架构的作用
Kruchten在1995年提出了一个“4+1”的视图模型。“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件架构的全部内容。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。对于不同的软件系统来说,侧重的角度也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。
ADL(Architecture Description Language)是一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体化语法和概念框架。如: Aesop、MetaH、C2、Rapide、SADL、Unicon等。
ADL三个基本元素:
ADL是建模用的,是一些伪代码
基于架构的软件设计(ABSD,Architecture-Based Software Design)是一种架构驱动方法,架构驱动也就是说架构先行,需求获取和分析还没有完成就开始架构设计,需求获取和分析与架构设计并行,例如产品线系统和长期运行的系统,我们不可能开始就能决定所有的需求。
ABSD强调由业务【商业】、质量和功能需求的组合驱动架构设计,强调采用视角和视图来描述软件架构,采用用例(描述功能需求)和质量场景(描述质量需求)来描述需求。
ABSD方法有三个基础:
再次强调:
另外:
传统的软件开发过程包括问题定义,需求分析,软件设计,实现,测试。
ABSD把整个软件过程分成六个部分,架构需求,设计,文档化,复审,实现,演化六个步骤。
五大架构风格 | 子风格 |
---|---|
数据流风格 Data Flow |
批处理(Batch Sequential) 管道-过滤器(Pipes and Filters) |
调用/返回风格 Call/Return |
主程序/子程序(MainProgram and Subroutine) 面向对象(Object-oriented) 层次结构(Layered System) |
独立构件风格 Independent Components |
进程通信(Communicating Processes) 事件驱动系统(隐式调用)(Event System) |
虚拟机风格 Virtual Machine |
解释器(interpreter) 规则系统(Rule-based System) |
仓库风格,以数据中心 Data-centered |
数据库系统(Database System) 黑板系统(Blackboard System) 超文本系统(Hypertext System) |
五大架构风格常考关键字汇总
架构风格 | 简介 | 关键字与示例 |
---|---|---|
数据流 - 批处理 | 一个接一个,以整体为单位 | 某种方式处理数据,修改后用别的形式写回数据。日志分析、计费、数据仓库 |
数据流 - 管道过滤器 | 一个接一个,前一个输出是后一个的输入 | 每个阶段都有输入和输出,读输入经过处理产生输出。传统编译器,是管道过滤器风格,UNIX管道 |
调用/返回 - 主程序/子程序 | 显示调用,主程序直接调用子程序 | 开发语言,主动调用程序 |
调用/返回 - 面向对象 | 对象是构件,通过对象调用封装的方法和属性 | 面向对象的开发语言,具有封装性,一个对象改变不会影响其它对象 |
调用/返回 - 层次结构 | 分层,每层最多影响其上下两层,有调用关系 | 为上层提供服务,使用下层的服务,只能见到自己邻近的层,上层知道下层身份,不能调整层次之间的顺序,如TCP/IP协议 |
独立构件 - 进程通信 | 进程间独立的消息传递,点对点、同步或异步、远程方法调用 | 构件之间不直接交互,通过网络、管道、信号直接通信投递消息,或者通过共享内存、消息队列、发布订阅模式间接通信 |
独立构件 - 事件驱动 | 隐式调用,不直接调用,通过事件驱动 | 事件触发,推动动作。构件不直接调用一个过程,触发或者广播一个或多个事件。如:程序语言的语法高亮、语法错误提示、断点调试、新闻公众号订阅 |
虚拟机 - 解释器 | 解释自定义的规则,解释引擎、存储区、数据结构等,执行效率较低 | JVM,自定义游戏,自定义地图,自定义流程、灵活定义 |
虚拟机 - 规则系统 | 规则库、规则集、规则解释器、选择器和工作内存,常用于DSS和人工智能 | 机器人,人工智能,DSS,引入规则库,按照规则引擎 |
仓库 - 数据库 | 数据共享、共享数据源,独立的处理单元、中央共享数据,主动提供数据共享 | 现代IDE集成开发环境,以数据为中心,也称数据共享风格剪切板、仓库风格、注册表/共享仓库 |
仓库 - 黑板 | 知识源、黑板(共享数据)和控制三部分,全局数据库。。被动提供数据且不确定顺序的更新共享数据存储区 | 语音识别、知识推理、图像处理、模式识别等 |
仓库 - 超文本 | 网状链接,多用于互联网 | 静态网页、任意跳转 |
批处理序列 |
---|
批处理风格的每一步处理都是独立的,并且每一步是顺序执行的。数据必须是完整的,以整体的方式传递。 |
管道/过滤器 |
在管道/过滤器风格的软件架构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。 |
主程序/子程序 |
---|
主程序/子程序风格是结构化开发时期的经典架构风格。这种风格一般采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。 |
面向对象风格 |
这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。 |
层次结构风格 |
层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见 |
进程通信 |
---|
构件是独立的过程,连接件是消息传递,构件通常是命名过程,消息传递的方式可以是点对点,异步或者同步的方式,以及远程过程方法调用等。 |
事件驱动的系统 |
构件不直接调用一个过程,而是触发或广播一个或多个事件。这种风格中的构件是匿名的过程,它们之间交互的连接件往往是以过程之间的隐式调用(implicit invocation)来实现的。基于事件的隐式调用风格的主要优点是为软件复用提供了强大的支持,为构件的维护和演化带来了方便,其缺点是构件放弃了对系统计算的控制。 |
解释器 |
---|
解释器通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,其缺点是执行效率比较低。 |
基于规则的系统 |
基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS中。 |
数据库系统 |
---|
数据库系统是仓库风格最常见的形式。在数据库系统中,构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理单元对数据元素进行操作。 |
黑板系统 |
黑板系统包括知识源、黑板和控制三个部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯一媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中,例如,信号处理、问题规划和编译器优化等。 |
超文本系统 |
超文本系统中出现的构件以网状链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。超文本是一种非线性的网状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联。超文本系统通常应用在互联网领域。 |
题目,给大类选大类,给小类选小类
问:Java程序可以做到“一次编写,到处运行”,从架构风格上看符合( )风格的特点。
答:虚拟机风格
问:在网络通信中,进行包的解析,一般先进行包头的分离,然后进行报文解析及后续处理,根据这一特点选用( )风格最合适。
答:解析数据,分层逐次操作,数据流风格
问:某公司欲开发一个基于图形用户界面的集成调试器。该调试器的编辑器和变量监视器可以设置调试断点。当调试器在断点处暂停运行时,编辑程序可以自动卷屏到断点,变量监视器刷新变量数值。针对这样的功能描述,采用( )的架构风格最为合适。
答:集成调试器,调试器中有多个部件,强调可设置断点,断点处都触发操作,独立构件风格中的事件驱动。
问:某游戏公司欲开发一个大型多人即时战略游戏,游戏设计的目标之一是能够支持玩家自行创建战役地图,定义游戏对象的行为和之间的关系。针对该目标,公司应该采用( )架构风格最为合适。(四选一:管道-过滤器、隐式调用、主程序-子程序、解释器)
答:支持自行创建,自定义规则,虚拟机风格的解释器
问:某公司承接了一个开发家用空调自动调温器的任务,调温器测量外部空气温度,根据设定的期望温度控制空调的开关。根据该需求,公司应采用( )架构风格最为合适。(四选一:解释器、过程控制、分层、管道-过滤器)
答:过程控制/闭环控制架构风格
问:某公司欲开发一个语音识别系统,语音识别的主要过程包括分割原始语音信号、识别音素、产生候选词、判定语法片断、提供语义解释等。每个过程都需要进行基于先验知识的条件判断并进行相应的识别动作。针对该系统的特点,采用( )架构风格最为合适。(四选一:解释器、面向对象、黑板、隐式调用)
答:语音识别,仓库风格中的黑板系统
问:某公司欲开发一个漫步者机器人,用来完成火星探测任务。机器人的控制者首先定义探测任务和任务之间的时序依赖性,机器人接受任务后,需要根据自身状态和外界环境进行动态调整,最终自动完成任务。针对这些需求,该机器人应该采用( )架构风格最为合适。(四选一:解释器、主程序-子程序、隐式调用、管道-过滤器)
答:有自定义的情况,虚拟机风格的解释器。另外其中隐式调用其实就是事件驱动,对应的显示调用(调用/返回风格)
问:某公司拟开发一个扫地机器人。机器人的控制者首先定义清洁流程和流程中任务之间的关系,机器人接受任务后,需要响应外界环境中触发的一些突发事件,根据自身状态进行动态调整,最终自动完成任务。针对上述需求,该机器人应该采用( )架构风格最为合适。(四选一:面向对象、主程序-子程序、规则系统、管道-过滤器)
答:有自定义的情况,虚拟机风格的解释器。如果没有解释器风格,就选择大类虚拟机风格,或者是虚拟机风格下的规则系统
问:Windows操作系统在图形用户界面处理方面采用的核心架构风格是( )风格。
答:图形用户界面,独立构件风格中的事件驱动
例题:
解析:
第一空,字眼“程序源代码作为整体,依次在不同模块中进行传递”,符合“顺序批处理”的特点。
第二空,字眼“支持代码的增量修改与处理”,又有“IDE”集成开发环境,符合仓库风格,仓库风格是以数据为中心的,所以这里选择“数据共享”。
第三空,字眼“触发”,符合独立构件风格中的事件驱动,也就是“隐式调用”。
第四空,设计模式的考察,设计模式和架构设计是相辅相成的,字眼“适应性改造”,选择“适配”。
第五空,字眼“模拟新操作系统”,符合“虚拟机”特点。
客户机/服务器(Client/Server,C/S)架构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S架构定义了工作站(客户应用程序)如何与服务器相连,以实现数据和应用分布到多台计算机上。服务器负责有效地管理系统的资源,其主要任务集中于对DBMS的管理和控制,以及数据的备份与恢复;客户应用程序的主要任务是提供用户与数据库交互的界面,向服务器提交用户请求并接收来自服务器的信息,对存在于客户端的数据执行应用逻辑要求。这是一种“胖客户机(fat client)、瘦服务器(thin server)”的架构,其处理流程如下图:
其主要特点:
其缺点:
与二层C/S架构相比,在三层C/S架构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种客户机称为瘦客户机(thin client)。三层C/S架构将应用系统分成表示层、功能层和数据层三个部分,如下图:
表示层
表示层是系统的用户接口部分,担负着用户与系统之间的对话功能。它用于检查用户从键盘等输入的数据,显示输出的数据。
功能层
功能层也称为业务逻辑层,是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额、按照预定的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。
数据层
数据层相当于二层C/S架构中的服务器,负责对DBMS的管理和控制。
与传统的二层架构相比,三层C/S架构具有以下优点:
在B/S架构中,除了数据库服务器外,应用程序以网页形式存放于Web服务器上,用户运行某个应用程序时,只须在客户端的浏览器中键入相应的网址,调用Web服务器上的应用程序,并对数据库进行操作,完成相应的数据处理工作,最后将结果通过浏览器显示给用户。基于B/S架构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
另外,B/S架构也有一些缺点存在:
实现困难,成本较高。
为了弥补B/S架构存在的一些不足,提高用户体验,富互联网应用(Rich Internet Application,RIA)技术应运而生。
富互联网架构的特点:
MVC架构,既是架构模式也是设计模式。
MVC分为主动和被动两种MVC模型。主动MVC有对模型的观察机制,会把数据主动返回到View。主动MVC能推送数据给视图,但被动模型是没有的。主动MVC就是引入了观察者模式来实现了向视图的推送信息。如下:
MVP的所有的操作都要经过Presenter。MVC中的C主要做事件的分发,并不做事件业务的处理。而P层可以处理业务逻辑。MVP比MVC更加容易进行工程化测试。
MVC和MVP的一个最大的区别就是View和Model是否有交互。所以MVP在耦合程度上是更加有优势的。
MVP是MVC的变种,模型与视图完全分离,可以修改视图而不影响模型。
MVP实现了V与M之间的解耦,(V不直接使用M,修改V不会影响M)。
MVP更好的支持单元测试(业务逻辑在P中,可以脱离V来测试这些逻辑,可以将一个P用于多个V,而不需要改变P的逻辑)。
MVP中V要处理界面事件,业务逻辑在P中,MVC中界面事件由C处理。
MDA是Model Driven Architecture 的缩写,也叫模型驱动架构。起源于分离系统规约和平台实现的思想,MDA的主要目标是:Portability(可移植性),Interoperability(互通性),Reusability(可重用性)。
其中,M为Model,客观事物的抽象表示;Model-Driven,使用模型完成软件的分析、设计、构建、部署、维护等各开发活动;A是Architecture ,构成系统的部件、连接件及其约束的规约。
MDA的3种核心模型:
MDA是模型驱动架构,由OMG定义的一个软件开发框架,基于UML及其他工业标准。MDA把建模语言用作一种编程语言而不仅仅是设计语言,模型在软件开发中扮演了非常重要的角色。
DSSA(Domain Specific Software Architecture)特定领域软件架构,可以看做开发产品线的一个方法或理论,目标就是支持一个特定领域中多应用的生成。
DSSA以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,支持一个特定领域中多个应用的生成。
架构评估的基准是架构质量属性
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
例如:
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
例如:
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性【信息不泄露给未授权的用户】、完整性【防止信息被篡改】、不可否认性【不可抵赖】及可控性【对信息的传播及内容具有控制的能力】等特性。
例如:
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
例如:
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。
例如:
软件v可测试性是指通过测试揭示软件缺陷的容易程度。
例如:
敏感点是一个或多个构件(和/或构件之间的关系)的特性。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
风险点是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
非风险点是指不会带来隐患,一般以“XXX要求是可以实现(或接受)的”方式表达。
例如:
软件架构评估有三种方式:基于调查问卷(检查表),基于度量,基于场景。
基于调查问卷(检查表):是指组织相关人员进行评估,这种方式最简单易行,但是主观性强。
基于度量:强调量化指标,最客观,但是这种方式实施难度大,因为需要评估者对系统非常熟悉,不然很难量化清楚各项指标。
基于场景:筛选出系统的关键场景,根据系统在不同场景中的表现进行评估,这种方式客观程度介于2者之间,这也是目前较为流行的结构评估方法。
场景是从风险承担者的角度与系统交互的简短描述。
质量场景的6个组成部分:
基于场景的方法主要有三种(前2种方式用得比较多):
SAAM,最初用于分析架构可修改性,后扩展到其它质量属性(例如:可移植性、可扩充性)。
SAAM的主要输入是问题描述、需求说明和架构描述,其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估。
软件架构分析法分为6个步骤:
架构权衡分析法(ATAM,Architecture Tradeoff Analysis Method)是在SAAM上发展而来。核心是结合质量属性效用树对系统进行评价,确定风险点、敏感点、权衡点,并对系统架构做出决策和折中。整个评估过程强调以质量属性作为评估核心,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
ATAM分成4个阶段,如下图:
图例参考:
质量属性效用树:识别质量属性并排序,主要包含性能、可用性、可修改性、安全性四个方面。
性能:性能延时(将用户数据库存储延迟到了最小值300ms,提供了实时的视频图像),交易吞吐量(使认证服务器的平均吞吐量最大化)。
可修改性:新增产品目录,商业产品修改(已小于20人月的工作量添加CORBA中间件,以小于4人周的工作量更改web界面)。
可用性:硬件故障(若站点A断电,要求在3秒内将任务重定向到站点B,若磁盘出现故障,要求在5分钟内重新启动,要在1-5分钟之内检测并恢复网络故障),商业软件故障。
安全性:数据机密性(信用卡交易在99.999%的时间内是安全的,客户数据库z认证在99.999%的时间内能正常工作),数据完整性。
质量属性效用树示例图如下:
CBAM用来对架构设计决策的成本和收益进行建模,它的基本思想是架构策略影响系统的质量属性,反过来这些质量属性又会为系统的项目干系人带来一些收益(称为“效用”),CBAM协助项目干系人根据其投资收益率选择架构策略。CBAM可以看作是ATAM的补充,在ATAM评估结果的基础上对架构的经济性进行评估。
SAEM方法,SAABNet方法、SACMM方法、SASAM方法、ALRRA方法、AHP方法、COSMIC+UML方法等。
软件产品线主要由两部分组成,分别是核心资源和产品集合。核心资源是领域工程的所有结果的集合,是产品线中产品构造的基础。
软件产品线开发有4个基本技术特点,即过程驱动、特定领域、技术支持和架构为中心。与其它软件开发方法相比,组织选择软件产品线的宏观上的原因有:对产品线及其实现所需的专家知识领域的清楚界定;对产品线的长期远景进行了战略性规划。
组织选择软件产品线的原因:
双生命周期模型分成两个重叠的生命周期:领域工程和应用工程。
领域工程使用DSSA,主要任务有领域分析,领域设计,领域实现。
领域工程主要任务:
应用工程领域:需求分析,系统设计,系统实现。
应用工程在领域工程结果基础上构造新产品:
三生命周期模型为有多个产品线的大型企业增加企业工程流程,以便在企业范围内对所有资源的创建、设计和重用提供合理规划。
SEI模型基本活动分为三部分,分别是核心资源开发(即领域工程)、产品开发(即应用工程)和管理。
SEI模型的主要特点:
核心资源开发活动的目标是建立产品线的生产能力。根据输入端的产品约束、框架、生产约束、生产策略和遗留资产清单,核心资产开发活动产出三项输出:
划分依据:用演化方式和革命方式引入产品线开发过程,基于现有产品还是开发全新的产品线。
四种方式的基本特征如下:
演化方式 | 革命方式 | |
---|---|---|
基于现有产品 | 基于现有产品架构设计产品线的架构,经演化现有构件,开发产品线构件 | 核心资源的开发基于现有产品集的需求和可预测的、将来需求的超集 |
全新产品线 | 产品线核心资源随产品新成员的需求而演化 | 开发满足所有预期产品线成员的需求的核心资源 |
软件产品线开发过程分为领域工程和应用工程,相应的软件开发组织结构也应该有两个基本组成部分,即负责核心资源的小组和负责产品的小组。这也是产品线开发与独立系统开发的主要区别。
组织模型:开发部门、商务部门、领域工程部门和层次领域工程部门。
动态的组织结构,根据产品线的建立方式和发展阶段、成熟程度的变化,有一种组织结构向另一种组织结构演变。
组织结构类型:
要成功实施产品线,主要取决于以下因素:
定义1:软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。
定义2:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能。
定义3:构件是一个独立发布的功能部分,可以通过其接口访问它的服务。
构件系统架构特性:
软件复用(软件重用)是使用已有的软件产品(如设计、代码和文档等)来开发新的软件系统的过程。
复用的发展过程:
复用的维度:
第一步,检索与提取构件
基于关键字的检索,特点:树形或有向无回路图结构。
刻面检索法,特点:利用Facet描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征。
例如,分多个刻面:1 应用领域、2 使用环境、3 功能
超文本检索法,特点:按照人类的联想思维方式任意跳转到包含相关概念或构件的文档。
第二步,理解与评价构件
第三步,修改构件
第四步,组装构件
组装的三种方式:
构件组装失配问题:
构件标准规范包括OMG的CORBA、Sun的EJB/J2EE和微软的COM/DCOM/COM+。
COBRA
CORBA体系的主要内容包括以下几部分:
四种构件:
构件模型:
EJB/J2EE
EJB是Sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。EJB 构件用于封装业务逻辑,使开发人员无须再担心数据访问、事务处理支持、安全性、高速缓存和迸发等琐碎任务的编程。
支持的5种构件模型:Applet、Servlet、JSP、EJB、Application Client。
其中,EJB中的BEAN分三种:
COM/DCOM/COM+
COM+ ⊇ DCOM ⊇ COM
参考https://blog.csdn.net/lili40342/article/details/128586533
中间件是一类构件,中间件是一类系统软件。
中间件,简化结构、屏蔽差异、利于复用。
采用中间件技术的优点:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于操作系统之上,管理计算资源和网络通信,实现应用之间的互操作。
目前,应用服务器已经成为电子商务应用中一种非常关键的中间件技术。通过它能将一个企业的商务活动安全有效地实施到Internet上,实现电子商务。它并非一种传统意义上的软件,而是一个可以提供通过Internet来实施电子商务的平台。在分布式、多层结构及基于构件和服务器端程序设计的企业级应用开发中,它提供的是一个开发、部署、运行和管理、维护的平台。它可以提供软件“集群” 的功能,因而可以让多个不同的、异构服务器协同工作、相互备份,以满足企业级应用所需要的可用性、高性能、可靠性和可伸缩性等。
故而,从某种意义上说,应用服务器提供了一个“企业级应用的操作系统”。实现 J2EE规范的应用服务器称为 J2EE 应用服务器。