第15章 · 播客 第3集

基于中间件的开发 · 应用服务器:三阶段演进与四大作用

🎙️ 本集播客第3集:Web 应用开发三阶段各自的优缺点、应用服务器「企业级应用的操作系统」的定位、以及四大作用逐条过——运行期四服务、三层结构只改中间层、无单点故障这些短语都是选择题的直接取材点。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第15章播客 第3集
⬇ 下载本集 点击播放
阿明
小雅姐,中间件的八大类我背齐了。今天这个应用服务器,是不是上一集讲的哪一类的延伸?
小雅
算第八类之外的舞台。原文说,目前应用服务器已经成为电子商务应用中一种非常关键的中间件技术,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础,如 IBM 的 Websphere、Oracle 的 Internet 应用服务器、Sybase 的 Enterprise 应用服务器等。在拆概念之前,先看它是怎么一步步被逼出来的——Web 应用开发大致经历了三个阶段。
阿明
第一阶段是什么?
小雅
第一阶段,大家都使用 Web 服务器提供的服务器扩展接口,使用 C 或者 Perl 等语言进行开发,例如 CGI、API 等。优点是这种方式可以让开发者自由地处理各种不同的 Web 请求,动态地产生响应页面,实现各种复杂的 Web 系统要求。但主要问题有两个:对开发者的素质要求很高,往往需要懂得底层的编程方法、了解 HTTP 协议,此外这种系统的调试也相当困难。记「素质要求高、调试相当困难」。
阿明
第二阶段是脚本语言,PHP、ASP 那批?
小雅
对。第二阶段,大家开始使用一些服务器端的脚本语言进行开发,主要包括 ASP、PHP、Livewire 等。实现方法实质上是在 Web 服务器端放入一个通用的脚本语言解释器,负责解释各种不同的脚本语言文件。优点有三:首要优点是简化了开发流程,使 Web 系统的开发不再是计算机专业人员的工作;由于这些语言普遍采用在 HTML 中嵌入脚本的方式,方便实际开发中的美工和编程人员的分段配合;对于某些语言,由于提供了多种平台下的解释器,所以应用系统具有了一定意义上的跨平台性。注意措辞是「一定意义上的」跨平台性。
阿明
那它的问题呢?
小雅
原文说得也细:主要问题是系统的可扩展性不够好,系统一旦比较繁忙,就缺乏有效的手段进行扩充。此外,从一个挑剔者的眼光来看,这种方式不利于各种提高性能的算法的实施,不能提供高可用性的效果,集成效果也会比较差。为了解决这些问题,出现了第三个阶段,也就是应用服务器的方式。三个阶段的考法是「三阶段排序」和「各阶段主要问题」:第一阶段的病是素质要求高调试难,第二阶段的病是可扩展性不够好、集成效果差。
阿明
所以应用服务器到底是什么?
小雅
定义给你:应用服务器是在当今 Internet 上企业级应用迅速发展、电子商务应用出现并快速膨胀的需求下产生的一种新技术,通过它能将一个企业的商务活动安全有效地实施到 Internet 上,实现电子商务。它并非一种传统意义上的软件,而是一个可以提供通过 Internet 来实施电子商务的平台。在分布式、多层结构及基于构件和服务器端程序设计的企业级应用开发中,它提供的是一个开发、部署、运行和管理、维护的平台。
阿明
「并非传统意义上的软件、而是一个平台」,这句听着就是判断题。
小雅
原文接着还有两处金句。第一,它可以提供软件「集群」的功能,因而可以让多个不同的、异构服务器协同工作、相互备份,以满足企业级应用所需要的可用性、高性能、可靠性和可伸缩性等——四个性质按这个顺序背。第二,故而,从某种意义上说,应用服务器提供了一个「企业级应用的操作系统」。这个带引号的说法是选择题原文,问「应用服务器被比作什么」,答企业级应用的操作系统。最后一句也不许漏:实现 J2EE 规范的应用服务器称为 J2EE 应用服务器。
阿明
那它具体能干什么?我记得有一串编号的作用。
小雅
四个作用。作用一:更合理地分工企业级应用开发,加快应用的开发速度,减少应用的开发量。应用服务器将系统功能与业务功能分开,使得编程人员能够集中精力在业务功能上。原文解释了原因:在系统内建立部署的构件越来越多、并且为分布式架构的时候,系统功能必将变得越来越复杂,对可靠性,也就是负载均衡、容错和故障恢复的需求也会越来越高,而开发人员只关注编码业务方面的功能,对系统一级的功能并没有多少兴趣,因为系统级底层功能的实现一般需要非常复杂的专业技能,因此对功能实现的合理分离可以允许技能的优化。
阿明
系统功能业务功能分开,让开发只管业务。还有什么配套?
小雅
作用一的补充:在应用服务器上开发采用的模块化方法,提供了大量的可重用模块,一个新的系统可以通过组合一些现成的框架和模块,再加上一定的开发来快速完成,而新开发出的代码又可作为今后重复利用的模块,这一点对于降低开发成本、提高开发速度是非常重要的。另外,为了便于开发,有些应用服务器还提供开发版的服务器,以便进行各种调试工作;应用服务器一般还提供集成开发环境,将本地编辑、上传、项目管理和调试工具等集中在一起;还有一些产品内置一些代码的自动生成器、数据库设计辅助工具等,例如 ORM,也就是 ObjectRelation Mapping 对象关系映射等。
阿明
作用二是那个五段式的平台吧?
小雅
作用二:应用设计、开发、部署、运行、管理、维护的平台。原文说,应用服务器既是应用开发的平台,包括表示层、应用层和数据层的设计模式和编程环境;同时又是多层结构应用的部署、运行平台,对多层结构应用进行配置、启动、监控、调整,并在开发的不同阶段承担不同的职责。然后逐段拆:设计——应用服务器完成底层通信、服务,并屏蔽掉复杂的底层技术细节,向用户提供结构简单、功能完善的编程接口,让用户可以专心于商务逻辑的设计;开发——提供了完全开放的编程语言和应用接口,用户可以用任何自己习惯的开发工具来工作,另外自己也提供快速开发的工具和手段。
阿明
部署和运行呢?
小雅
部署——应用服务器可以部署在任何硬件平台、任何操作系统上,而且可以分布在异构网络中,帮助用户在复杂的网络环境中配置系统参数,使系统发挥最大的性能;运行——应用服务器采用的是开放技术标准,它提供了一个完整的标准实现,即提供了系统的运行环境,在运行中提供应用系统的名字解析、路由选择、负载平衡、事务控制等服务,并提供系统容错、修复、迁移、升级扩展等功能;管理——让用户通过图形化的界面方便地管理自己的资源,而且在系统运行时也能动态监控和管理。运行期的四个服务——名字解析、路由选择、负载平衡、事务控制,多选题原句。
阿明
作用三我记得和平台无关有关。
小雅
作用三:使得应用与底层平台无关,便于商业逻辑的实现与扩展。一个好的应用服务器通过提供对操作系统数据库平台的广泛支持,或采用平台无关技术如 J2EE,从而能够做到让应用独立于操作系统数据库平台。显然,它可以确保企业应用具备很好的移植性并保护了企业在应用和开发技能上的投资。扩展性方面:企业的商业逻辑不可能一成不变,应用服务器技术可以很好地解决这个问题,因为它采用了三层结构体系,应用服务器将业务流程单独作为一层,客户可以根据自己的商业逻辑来专心设计这一层,当客户业务扩展时,只需专注于改进中间层的设计,原系统就能平滑方便地升级。这里的三层结构、业务流程单独一层、只改中间层,是简答题的骨架。
阿明
作用四是那个基础架构?
小雅
作用四:为企业应用提供现成的、稳定而强健的、灵活的、成熟的基础架构。在构建电子商务应用的竞争中,许多企业已经没有时间去从容地「千锤百炼」一个电子商务架构体系,通过应用服务器,立刻就可以拥有一个成熟的架构,包括基础平台、标准、应用开发工具和预制构件——四个内容。还有稳定性保障:许多企业的业务服务于全球,计算机业务系统需要提供 24 小时不间断的服务,应用服务器通过分布式体系来保障,表现为三条:当系统处理能力不够时,可以通过简单地增加硬件来解决;动态调整不同主机间的负载可以最大地利用系统资源,同时提高单机的稳定性;当系统中的某台机器出现故障时,它的工作可由其他机器来承担,不会影响系统整体的运行,即无单点故障。
阿明
加硬件、调负载、无单点故障。这四条作用后面是不是还有个专家提示?
小雅
有,希赛教育专家提示:目前市面上的应用服务器的解决方案基本都具备了这些作用,因而企业在选购应用服务器产品的时候,不能简单地判断优劣,而需要先充分了解自己的需求到底是什么,然后在各个主要技术问题上,确定适合自己的解决方案,最后寻找使用这些解决方案的产品来完成自己的系统。这段的考点是选购原则:先了解需求、再定解决方案、最后找产品,顺序不能乱。
阿明
四大作用齐了。本集就到这?
小雅
本集必背清单:三阶段——第一阶段 C 或 Perl 加 CGI、API 扩展接口,自由处理各种 Web 请求但素质要求高、调试相当困难;第二阶段 ASP、PHP、Livewire 脚本解释器,简化开发、美工编程分段配合、一定意义上的跨平台性,病在可扩展性不够好、不能提供高可用性、集成效果差;第三阶段应用服务器。
阿明
定位和四作用也压一遍。
小雅
定位与四作用:并非传统意义上的软件而是平台,提供开发、部署、运行和管理、维护的平台,软件集群支撑可用性、高性能、可靠性、可伸缩性,被比作企业级应用的操作系统。四作用——一是分工开发加快速度减少开发量,系统功能与业务功能分开;二是设计开发部署运行管理维护的平台,运行期提供名字解析、路由选择、负载平衡、事务控制四服务。
阿明
四作用的后两条和选购原则呢?
小雅
顺着四作用的后两条:三是应用与底层平台无关,三层结构把业务流程单独作为一层,业务扩展只需改进中间层;四是现成稳定强健灵活成熟的基础架构,分布式保障三招——加硬件、调负载、无单点故障。选购原则:先了解需求、再定解决方案、最后找产品。
阿明
产品部分呢?五大产品不讲了?
小雅
下一集专讲产品,WebLogic、WebSphere、iPlanet、Oracle iAS、EAServer 五大应用服务器各自的招牌细节一网打尽——基于什么语言、靠什么认证、和谁集成,产品与特性的配对是选择题常客,单独一集才装得下。