任务二
认识中间件软件
知识目标
1.掌握中间件的起因、概念、作用与分类。
2.了解WebSphere软件产品;尤其是WAS的产品线、体系结构与特征。
3.了解WebLogic软件及其体系结构与特征。
4.了解Tomcat软件及其体系结构与特征。
能力目标
1.能够在各种平台上熟练安装中间件并进行配置和调试。
2.能够熟练地在中间件平台上部署和调试应用程序。
3.能够搭建中间件集群环境并能够进行集群负载均衡配置管理。
4.能够熟练使用脚本语言进行日常系统管理操作。
5.能够通过日志信息判断中间件的异常。
6.能够通过中间件提供的各种性能指标进行跟踪调优操作。

网络和硬件技术的高速发展,极大地提高了计算机系统的处理能力。信息系统也由传统的C/S架构转变为B/S架构。大量的Web应用充斥在工作生活的每个地方。这些分布式应用程序大多数都是在网络环境的异构平台上运行的,使得网络和分布式应用的开发、测试和移植中所投入的代价非常高。为了降低开发、集成和维护成本,具有前瞻性的系统开发商提出了中间件(middleware)这一概念。它为集成系统的发展带来了巨大的变化。

 
扩展视频
中间件

中间件是一种独立的系统软件或服务程序,位于客户机、服务器的操作系统与分布式应用系统之间。分布式应用借助这种软件在不同的技术环境之间实现资源共享,管理计算资源和网络通信。通过提取可重用的应用模式以及对标识、认证、授权、目录、安全性等服务的标准化和互操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源的网络通信,灵活高效地开发分布式应用。对于应用软件开发,中间件远比操作系统和网络服务更为重要。中间件提供的程序接口定义了一个相对稳定的高层应用环境。不管底层的计算机硬件和系统软件如何更新换代,只要将中间件进行升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需要任何修改,从而保护企业在应用软件开发和维护中的重大投资。对于应用系统,中间件不仅简化了开发、缩短了开发周期,也减少了系统维护、运行和管理的工作量,还减少了计算机总体费用的投入。将应用软件集成起来像一个天衣无缝的整体一样协调工作,这是操作系统、数据库管理系统本身做不了的。

中间件的作用体现在它提供了以下服务上:

(1)通信服务

应用程序的开发往往要考虑操作系统提供的网络接口。针对不同的操作系统,还存在异构型的网络协议,中间件则对分布式应用的开发者屏蔽了复杂的底层网络编程细节,为分布环境下的应用程序提供远程过程调用(RPC)、消息和对象请求代理(ORB)的通信服务。

(2)并发性服务

中间件的应用必须具有高度的可扩展性,才能满足目前火热的电子商务应用。这些应用需求通常以每秒处理的请求或消息的数量来衡量,如果在系统中保证最大的并发性,就可以同时尽可能多地执行任务。中间件使用很多技术和模式来增强了并发性,例如在服务器进程中采用多线程技术。

(3)通用中间件支持

除了提供通信和并发服务外,分布式应用中使用目录服务、事务服务、管理服务、事件服务、连续性服务、负载平衡服务、配置服务来解决那些独立于任何特定应用领域的问题,中间件都集成了这些应用,很好地支持这些分布式应用所需的构件。

中间件可以按不同方式进行分类。根据提供的功能,可以划分为通信处理中间件(包括远程过程调用中间件和消息中间件)、事务处理中间件、数据存取中间件、分布对象中间件、安全中间件、网络中间件、服务器中间件(包括Web服务器中间件和服务器构架中间件)以及专用平台中间件。当前使用最多且运维人员感受最直观的应该就是服务器中间件了。这类产品有IBM公司的WebSphere Application Server、Oracle公司的WebLogic、免费开源的Tomcat和Jboss等。

一、WebSphere软件

WebSphere是IBM公司一套完整的电子商务平台软件的总称。它包含编写、运行和监视全天候Web应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施。在此平台上提供了一系列基于统一的基础平台、完全基于开放标准的相关产品组件。WebSphere是整个软件产品体系的名称。它的系列产品主要有WebSphere Portal、WebSphere MQ、WebSphere Application Server、WebSphere Commerce、WebSphere Studio 等,其中WebSphere Application Server是这里重点要介绍的应用中间件产品。WAS(WebSphere Application Server)是WebSphere系列产品的基础设施。它为企业应用程序提供了运行环境,为满足广泛用户需求而设计了独特的软件包核心。WAS为编程模型和开放标准提供了行业领先的支持,能够加速新应用程序和服务的部署交付。

WAS应用程序基础设施使你能够快速构建、部署、集成和增强企业的应用程序,使它们能够在Java环境中运行。从关键型业务应用程序和重要企业级应用程序到最小的部门级应用程序,WAS都提供了最高的可靠性、可用性、安全性和可伸缩性水平。

(一)WAS的产品线

1.WebSphere Application Server Community Edition V1.0

该产品是一个轻量级的J2EE应用程序服务器。它建立在Apache软件基金会的开放源代码应用程序服务器项目Apache Geronimo的基础上,旨在帮助你加速开发和部署工作,利用来自开放源代码社区的最新技术,为构建Java应用程序提供免费和灵活的技术基础。

2.WebSphere Application Server V6

该产品是WebSphere Application Server的基础版本,它与J2EE 1.4完全兼容,提供深度Web服务支持,可以加快开发和部署(用于降低开发周期时间和最大化使用现有技能和资源),并与IBM Rational工具紧密集成。

3.WebSphere Application Server-Express V6

该产品为中小企业管理简单的动态网站提供了一个简单便捷的选择,并具有友好的Web应用程序服务器和开发环境。

4.WebSphere Application Server Network Deployment V6

该产品基于WebSphere Application Server,主要提供高级部署服务,包括集群服务、网络边界(edge-of-network)服务、增强的Web服务和用于分布式配置的高可用性服务。

5.WebSphere Extended Deployment

该产品在WebSphere Application Server Network Deployment的基础上提供拓展的功能,用于进一步提升部署的效率,简化管理并增强关键业务应用程序服务质量。

6.WebSphere Application Server for z/OS

该产品与针对分布式平台的WebSphere Application Server使用相同的编程模型,但是针对IBM z系列硬件和z/OS操作系统进行了优化,根据系统特点提高服务质量。

(二)WAS的体系结构

WAS的体系结构主要由单元节点服务器概要文件部署管理器节点代理组成。

(三)WAS产品的技术优势

WAS产品现在是中间件平台中最优的平台之一,它具有以下技术优势:

(1)安全、可伸缩、具有弹性的应用程序基础架构,这些基础架构是实现面向服务的架构(SOA)所需要的。

(2)100%支持业界的开放性标准,包括Java/J2EE、XML、LDAP、CORBA、WML等。

(3)借助一套简单的工具和界面,快速地构建和部署可重用的应用程序服务。

(4)在可靠、可伸缩、高度可用的环境中运行服务,以确保不因为应用程序宕机时间而失去业务机会。

(5)借助具有弹性、基于标准的安全基础架构(此基础架构会移除易受攻击的威胁,同时最大限度地提高开发人员的效率),保证应用程序和数据的安全,提供了端到端(end-to-end)的安全解决方案。

(6)基于标准的消息传递方法和最新的Web服务标准,重用软件资产并扩展其使用范围。

(7)借助面向管理和监视的功能强大、易用的工具,轻松管理应用程序。

(8)跨最广泛的业界平台快速和安全地进行扩展。

(9)支持完整的J2EE 1.4编程模型和扩展,包括ServletJSPEJB和Web服务。

二、WebLogic软件

WebLogic最早由WebLogic公司开发,然后并入BEA公司。2008年Oracle为了进一步扩大和巩固数据库软件市场,成功收购BEA公司,相关软件也纳入Oracle公司的开发和销售中。WebLogic软件是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。它是商业市场上主要的Java(J2EE)应用服务器软件之一,是世界上第一个成功商业化的J2EE应用服务器,目前WebLogic最新版本为Oracle WebLogic Server 12c(12.1.1)。

WebLogic将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发集成、部署和管理之中,长期以来一直被视为市场上最好的J2EE工具之一。WebLogic常用于为在Internet或Intranet上的Web服务提供安全、数据驱动的应用程序,像数据库或邮件服务器一样,WebLogic Server对于普通用户是不可见的。

(一)WebLogic的体系结构

WebLogic的体系结构包括表示层核心服务层集成层可靠可用服务层开发层管理控制层

(二)WebLogic的特性和优势

WebLogic软件现在是中间件平台中最易用的平台之一,它具有以下技术优势:

1.支持多种标准

对业内多种标准(包括EJB、JSP、JMSJDBC、XML和WML)的全面支持,使Web应用系统的实施更为简单,并且减少了投资,同时也使基于标准的解决方案的开发更加简便。

2.可扩展

WebLogic以其高度扩展的架构闻名于业内,包括客户机连接的共享、资源池化以及动态网页和EJB组件群集。

3.开发速度快

凭借对EJB和JSP的支持,以及BEA WebLogic的Servlet组件架构,可加速投放市场的速度。当与WebGain Studio配合时,这些开放性标准可简化开发,并可发挥已有的技能,迅速部署应用系统。

4.更灵活

WebLogic的特点是与领先数据库、操作系统和Web服务器紧密集成。

5.更可靠

WebLogic Server的容错、系统管理和安全性能已经在全球数以千计的关键任务环境中得以验证。

三、Tomcat软件

Tomcat是Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核项目,由Apache、Sun和其他公司及个人共同开发完成。由于有了Sun公司的参与和支持,最新的Servlet和JSP规范得以迅速在Tomcat中体现。Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,所以它深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器,目前最新版本是8.0。Tomcat是一个小型的轻量级应用服务器基础软件,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

(一)Tomcat总体结构

Tomcat虽然结构很复杂,但是非常模块化,它由一系列嵌套的组件组成。

1.顶层组件

顶层组件包含服务器组件和服务组件。服务器组件是Tomcat服务器的实例,可以在Java虚拟机(JVM)中生成唯一的服务器实例。它还可以在一个服务器中为不同的端口设置单独的服务配置。这样,既方便单独地重启应用程序,又可以在某特定的JVM崩溃时,确保其他实例上的应用程序是安全的。服务组件用来访问请求,把请求转发给合适的Web应用程序,然后返回请求的处理结果,与它的连接器组成引擎组件。引擎也就是Servlet引擎,是处理请求的组件。引擎检查HTTP头,然后决定传送给哪个主机或者应用程序。每个服务都要命名,方便管理员能够通过日志记录每个服务的信息。

2.连接器

连接器链接Web应用程序和客户端,代表和客户端实际交互的组件。它负责接受来自客户端的请求,以及向客户返回响应结果。Tomcat的默认端口是8080,以避免与其他的Web服务器标准端口(80)相冲突。比较常见的连接器是HTTP connector和Apache JServ Protocl(AJP)connector。

3.容器组件

容器组件负责接受来自顶层组件的请求,处理这些请求,并把处理结果返回给上层组件。容器组件包括引擎组件(Engine Component)、主机组件(Host Component)和上下文组件(Context Component)。引擎组件负责接受和处理它所属的服务中所有连接器的请求。每个服务组件只能包含一个引擎组件。主机组件定义了一个虚拟主机,它允许在同一台物理机器上配置多个Web应用。多个主机组件可以包含在引擎组件中。上下文组件是使用最为频繁的组件,每个上下文组件代表了允许在虚拟主机上的每个Web应用。一个虚拟主机能够运行多个上下文组件,它们通过各自的上下文路径相互区分。

4.嵌套组件

嵌套组件嵌套在容器内,为管理人员提供管理服务。它包括全局资源组件(Global Resources Component)、加载器组件(Loader Component)、日志组件(Log Component)、管理器组件(Manager Component)、域组件(Realm Component)、资源组件(Resources Component)和阀组件(Valve Component)。全局资源组件只能嵌套在服务器组件中,用于配置服务器中其他组件所用到的全局JNDI资源。加载器组件只能嵌套在上下文组件中,用于指定一个Web应用程序的类加载器,并将该应用程序的类和资源加载到内存中。一般来说,Tomcat中默认的类加载器就能满足大部分的需求,因此开发人员没有必要定制自己的类加载器。日志组件能借助Log4J实现记录日志。管理器组件是会话管理器,负责会话的创建和维护。域组件是一个包含用户名、密码和用户角色的数据库。角色与UNIX的group类似。域的不同实现允许将Catalina集成到认证信息已经创建和维护的环境中,然后利用这些信息来实现容器管理的安全性。在任何组件(如引擎、主机或者上下文组件)中都可以嵌套域组件。另外,引擎或者主机的域会自动被低层次的容器集成,除非被明确覆盖。资源组件只在上下文组件中支持,它代表的是Web应用程序中的静态资源,以及它们允许存放的格式,例如压缩文件等。阀组件用于在请求到达目的之前,截取该请求,并处理它。它有点类似于Servlet规范中定义的过滤器。它是Tomcat专有的,目前还不能用于其他的Servlet/JS容器。阀组件可以嵌入到其他组件(如引擎、主机和上下文组件)中。阀组件通常用于记录请求、客户端IP地址,以及服务器端利用率信息,这种技术被称为请求转储(Request Dumping)。请求转储阀记录HTTP头的信息和Cookie信息。响应转储阀记录响应HTTP头和Cookies信息。阀是可重用的组件,能按照用户的需求增删。

(二)Tomcat的优势及特点

Tomcat服务器是一个免费的开放源代码的Web应用服务器,技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可。它运行时占用的系统资源少,扩展性好,且支持负载平衡与邮件服务等开发应用系统常用的功能。作为一个小型的轻量级应用服务器,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,因此它也成为目前比较流行的Web应用服务器。

四、中间件维护技能

关于中间件运维工作,应该了解和熟悉的技能如下:

(1)熟悉J2EE组成架构、标准和核心技术(JDBC、JNDI、EJB、RMI、JSP、SERVLETS、XML、JMS、IDLJTSJTAJavamailJAF),重点要熟悉最常用的JDBC、JNDI、EJB、JSP和SERVLETS技术规范以及J2EE多层架构的功能和原理。

(2)熟悉中间件的体系结构以及组件功能。

首先,关于WAS,应掌握单元、节点、服务、概要文件和节点代理的概念以及它们之间的关系。熟悉WAS数据服务层、业务逻辑层、表示层等之间的依赖关系以及各层实现的功能。熟悉智能管理(Intelligent Management)、系统管理、安全、性能监控、符合J2EE架构应用组件的功能、原理和使用方法。

其次,关于WebLogic,应掌握WebLogic应用服务器域(Domain)、集群(Cluster)、机器(Machine)、服务器(Server)、管理服务器(Administrative Server)、托管理服务器(Managed Server)、节点管理器(Node Manager)的概念及各自的作用。熟悉WebLogic表示层、核心服务层、集成层、可靠可用服务层、开发层、管理控制层之间的关系以及每一层提供的服务功能和所应用的技术规范。

第三,关于Tomcat,应掌握服务器、服务、连接器、引擎、主机、上下文的概念及工作原理。熟悉顶层组件、连接器、容器组件、嵌套组件及其所包含拓展组件的功能作用和所涉及的技术规范。

(3)能够在各种平台上熟练安装中间件并进行配置和调试。

第一,熟悉中间件在不同平台安装方法的区别以及不同版本所对应的Java运行环境。

第二,熟悉中间件安装所依赖的系统环境并熟练配置环境变量。

第三,熟悉不同版本的中间件对各操作系统版本和系统组件的依赖关系。

第四,熟悉三大中间件的三种安装方法:图形安装方法、命令安装方法、静默安装方法。

第五,熟悉三大中间件的功能结构,在安装过程中熟练选择合适的功能组件。

第六,熟练排除在安装过程中所遇到的问题。

第七,中间件安装完毕后熟练对中间件进行初始化配置和验证。

(4)能够熟练地在中间件平台上部署和调试应用程序。首先要熟悉如何在中间件上设置变量、创建数据库驱动、配置调试数据源、管理安全配置、发布与调试应用程序、管理虚拟机、创建共享库以及加载调试类等操作。

(5)能够搭建中间件集群环境并能够进行集群负载均衡配置管理。

(6)能够熟练使用脚本语言进行日常系统管理操作,熟练使用WAS的Jacl语言、WebLogic的WLST语言、Tomcat的Python语言对中间件进行变量设置、数据库驱动创建与修改、数据源配置调试、应用发布与调试、共享库创建、安全管理等日常操作。

(7)能够通过日志信息判断中间件的异常,并熟练使用javacore、heapdump分析工具进行问题诊断。

第一,熟悉WAS诊断日志SystemErr.log、SystemOut.log、ffdc和WebLogic诊断日志AdminServer.log、access.log、domain_name.log以及Tomcat诊断日志localhost_ access_log的配置方法、位置、所记录信息的类型和范围等,并能通过上述日志文件信息进行常规的问题诊断。

第二,熟练应用WAS的Support Assistant、Log Analyzer和WebLogic的Oracle Enterprise Manager以及Tomcat的jrockitgon工具软件进行javacore、dump分析,并能够分析出应用程序的缺陷和性能等问题。

(8)能够通过中间件提供的各种性能指标进行跟踪调优操作。

第一,熟悉WAS性能监控工具Tivoli Performance Viewer和WebLogic性能监控工具 iagnostics module、 jconsole、sitescope以及Tomcat性能监控工具probe、Jconsole等的配置方法、监控范围、使用方法,并能通过这些工具对应用程序、JVM信息、内存使用情况等进行跟踪和性能分析。

第二,通过上述监控工具的跟踪分析结果,能够根据应用程序Servlet重新装载比例、会话活动数量比例、外部会话读写空间代价,以及对线程池的利用率、挂起线程比例、数据库连接池利用率、访问效率、等待率、Java虚拟机的堆利用率、内存回收效率等性能指标值,对中间件的性能进行调优操作。

课后练习-填空题
 
课后练习-选择题