系统分析师学习笔记(十七)

新技术应用

中间件技术

中间件概述

1.中间件的功能
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于操作系统之上,管理计算资源和网络通信,实现应用之间的互操作。

(1)负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
(2)提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
(3)提供一个多层架构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发。
(4)屏蔽硬件、操作系统、网络和数据库的差异。
(5)提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。
(6)提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。

2.中间件的分类
采用自底向上的方式来划分,可分为底层中间件、通用型中间件和集成型中间件三个大的层次。底层中间件的主流技术主要有JVM(Java Virtual Machine,Java虚拟机)、CLR(CommonLanguage Runtime,公共语言运行库)、ACE(Adaptive Communication Environment,自适配通信环境)等;通用型中间件也称为平台,其主流技术主要有RPC、ORB、MOM(Message-Oriented Middleware,面向消息的中间件)等;集成型中间件的主流技术主要有WorkFlow、EAI等。

3.中间件的应用
中间件提供了应用系统基本的运行环境,也为应用系统提供了更多的高级服务功能。中间件技术在企业应用集成中扮演着重要的角色,可以从不同层次采用不同种类,不同技术的中间件产品进行应用集成。

4.中间件的发展趋势
中间件作为构筑企业信息系统和电子商务系统的基石和核心技术,向着标准化和构件化方向发展。具体来看,有以下三种发展趋势:

(1)规范化。对于不同类型的中间件,目前都有一些规范可以遵循。规范的建立极大地促进了中间件技术的发展,同时保证了系统的扩展性、开放性和互操作性。
(2)构件化和松耦合。中间件技术朝着面向Web和松散耦合的方式发展。
(3)平台化。一些大的中间件厂商在已有的中间件产品基础上,提出了完整的面向互联网的软件平台战略计划和应用解决方案。
主要的中间件

1.远程过程调用
RPC是一种广泛使用的分布式应用程序处理方法。应用程序使用RPC来远程执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。一个RPC应用可分为两个部分,分别是服务器和客户。这里的“服务器”和“客户”是指逻辑上的进程,而不是指物理计算机。

在RPC模型中,客户和服务器只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的服务器。因此,RPC为分布式计算提供了强有力的支持。同时,RPC所提供的是基于过程的服务访问,客户与服务器进行直接连接,没有中间机构来处理请求,因此,也具有一定的局限性。

2.对象请求代理
对象请求代理(Object Request Broker,ORB)的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。

3.远程方法调用
RMI是Java的一组用于开发分布式应用程序的API。RMI使用Java语言接口定义远程对象,它集合了Java序列化和Java远程方法协议。

RMI目前使用Java远程消息交换协议(Java Remote Messaging Protocol,JRMP)进行通信。JRMP是专为Java的远程对象制订的协议。因此,RMI具有Java语言本身的一些优点,用RMI开发的应用系统可以部署在任何支持Java运行环境的平台上。但由于JRMP是专为Java对象制订的,RMI对于用非Java语言开发的应用系统的支持不足,不能与用非Java语言书写的对象进行通信。

4.面向消息的中间件
MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交换,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布式环境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。

在MOM中,消息传递和排队技术有以下三个主要特点:

(1)通信程序可在不同的时间运行。程序不在网络上直接相互通信,而是间接地将消息放入消息队列。因为程序间没有直接的联系,所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
(2)对应用程序的结构没有约束。在复杂的应用场合中,通信程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通信方式的构造并没有增加应用程序的复杂性。
(3)程序与网络复杂性相隔离。程序将消息放入消息队列或从消息队列中取出消息来进行通信,与此关联的全部活动,例如,维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其他程序通信,并且它们不涉及网络通信的复杂性。

MOM系统的基本元素是客户、消息和MOM提供者,后者包括API和管理工具。

5.事务处理监控器
事务处理监控器(Transaction Processing Monitor,TPM)又称为交易中间件,是当前应用最广泛的中间件之一。它能支持数以万计的客户进程对服务器的并发访问,使系统具有极强的扩展性,因此,适于电信、金融、证券等拥有大量客户的领域。

总体上来说,TPM具有有以下功能:

(1)进程管理,包括启动服务器进程、为其分配任务、监控其执行并对负载进行平衡。
(2)事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。
(3)通信管理,为客户和服务器之间提供多种通信机制,包括请求/响应、会话、排队、订阅/发布和广播等。

TPM界于客户和服务器之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能,它可以被看作是事务处理应用程序的“操作系统”。

中间件与构件的关系

应用在中间件提供的环境中可以更好地集中于业务逻辑,并以构件的形式存在,最终自然而然地在异构环境中实现良好的协同工作。中间件与架构在本质上是一致的。

(1)面向需求。基于架构的构件化软件开发应当是面向需求的,即设计师集中精力于业务逻辑本身,而不必为分布式应用中的非功能质量属性耗费大量的精力,理想的架构在这些方面应当为软件提供良好的运行环境。事实上,这些正是中间件所要解决的问题,因此,基于中间件开发的应用真正是面向需求的,从本质上符合构件化设计的思想。
(2)业务的分隔和包容性。服务器构件要求有很好的业务自包容性,应用开发人员可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式。针对每种业务,设计和开发是可以独立进行的。在提供业务的分隔和包容性方面,架构和中间件有同样的目标。例如,消息中间件规定了消息是有属性的,其中部分属性则与业务的划分有关。构件只进行相应类型的消息交互,至于如何保证业务的分类运行与管理,则是中间件的事情。
(3)设计与实现隔离。构件对外发生作用或构件间的交互,都是通过接口进行的,构件使用者只需要知道构件的接口,而不必关心其内部实现,这是设计与实现分离的关键。中间件在分布交互模式上也规定了接口(或类似)机制,例如,IDL(Interface Definition Language,接口定义语言)就是描述接口的语言规范,从早期的DCE(Distributed Computing Enviornment,分布式计算环境)到现在的CORBA、DCOM、RMI等都使用IDL描述接口,所不同的只是语言规范。
(4)隔离复杂的系统资源。架构很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可复用甚至“即插即用”的基础,与中间件的意图也是一致的。中间件最大的优势之一就是屏蔽多样的系统资源,保证良好的互操作性。应用构件开发人员只需要按照中间件规定的模式进行设计开发,而不必考虑下层的系统平台。因此,中间件真正提供了与环境隔离的构件开发模式。
(5)符合标准的交互模型。架构是一种抽象的模型,但模型中应当定义一些可操作的成分。例如,标准的协议等。中间件则实现了架构的模型,实现了标准的协议。例如,基于CORBA的中间件使用的是CORBA规范作为架构模型,定义了数据表示语法、数据包格式、消息语义等内容,以实现互操作性协议。因此,基于中间件的构件是符合标准模型的。
(7)软件复用。软件复用是构件化软件开发的根本目标之一,中间件提供了构件封装、交互规则、与环境的隔离等机制,这些都为软件复用提供了方便的解决方案。另外,中间件可以建立访问过去的应用的通道,或者在新的中间件体系中建立特殊的运行容器,封装以往的应用,从而最终做到对遗留系统的继承性复用。
(8)提供对应用构件的管理。基于中间件的软件可以方便地进行管理,因为构件总可以通过标识机制进行划分。例如,COM就是利用Windows系统注册表配合几种唯一标识构件的方式,实现构件的登记、注销和定位。CORBA规范中有接口池、实现池等规范定义,配合应用登记管理的机制,也能对应用构件实施管理。

基于中间件开发的应用是构件化的,中间件提供了构件的架构,大大提高了应用构件开发的效率和质量。

J2EE与.NET平台

J2EE核心技术

1.分布式的多层应用程序
J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件被分别部署到不同的机器中。

2.J2EE构件
J2EE规范是这样定义J2EE构件的:客户端应用程序和applet是运行在客户端的构件;Java Servlet和JSP(Java Server Pages,Java服务器页面)是运行在服务器端的Web构件;EJB(Enterprise Java Bean,企业Java Bean)是运行在服务器端的业务构件。

(1)客户端。客户层可以直接和运行在J2EE服务器中的业务层通信,也可以通过运行在Web层中的JSP页面和Servlet与业务层构件进行通信。J2EE客户层可以分为Web客户端、Applets和Java应用。
(2)中间层。J2EE中间层的内容极为丰富,也是J2EE架构的核心,绝大多数的J2EE应用程序都会将业务逻辑部署在中间层,EJB是J2EE中间层中最重要也是最有特点的构件之一。JB可以从持久化的存储设备中获取数据,对它进行处理(如果需要),并将其发送到客户端应用程序。EJB可以分为三种类型,分别是会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-driven Beans)。
(3)企业信息系统层。企业信息系统层处理企业信息系统软件,并包含诸如企业资源计划、主机事务处理、数据库系统等一些底层系统。

3.J2EE容器
J2EE容器为J2EE标准中每一个构件类型提供底层服务,用户完全不需要自己开发这些服务,而是全力以赴地着手解决业务问题。在容器中可包含若干构件,并为这些构件提供服务。

J2EE容器可以分为J2EE服务器、EJB容器、Web容器和客户端应用程序容器。

(1)J2EE服务器:J2EE服务器是J2EE产品的运行容器,它提供EJB容器和Web容器。
(2)EJB容器:管理它所包含的EJB,负责对象的注册、提供远程接口、创建和清除对象实例、检查对象安全性、管理对象的活动并协调分布式事务处理。
(3)Web容器:管理JSP页面和Servlet构件的执行。Web构件和Web容器运行在J2EE服务器中。
(4)客户端应用程序容器:管理应用程序客户端构件的运行。应用程序客户端和它的容器运行在客户端中。

4.Java EE
Java EE 5从很多开源项目中吸取了不少养分,更关注开发与部署的快捷和简便,增加了对轻量级容器的支持、JSF(Java Server Faces,Java服务器界面)等表现层技术、使用Annotations取代部署描述符、使用EJB3.0简化EJB的开发、增强了对Web Service和SOA的支持。

Java企业应用框架

目前主流的轻量级架构是把Struts、Spring和Hibernate这三种在业内比较推崇的开源技术基于MVC模式相结合。

1.Struts 框架
Struts是一个基于J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。在Struts框架中,模型由实现业务逻辑的JavaBean构成,控

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 数据库 1.1. 死锁 数据库中死锁产生的原因是 两个或多个数据事务都已封锁了一些数据对象,然后又都 请求已为其它事务封锁的数据对象加锁 ,从而出现死等待。 死锁的诊断方法一般由 超时法 和等待图 法。 1.2. 数据库体系结构★ 三类数据库系统体系结构: 集中式: DBMS 和应用程序都存放在一台计算机上; 主从式(客户机 / 服务器):DBMS 存放在服务器上,应用程序存放在客户机上; 分布式: 数据库在物理上分布在不同的场地,而逻辑上属于一个整体。 对于分布式数据库, 分布透明性 是指用户不必关心数据的 逻辑分片 ,不必关心数据 物 理位置 分配的细节,也不必关心各个场地上的数据库 数据模型 。 分布透明性和归入 物理独立性 的范围,包括三个层次 : 分片透明性 :最高层次的分布透明性,用户或应用程序只对全局关系进行操作, 不必考虑 数据 分片 ; 位置透明性 :用户或应用程序应当 了解分片情况,但 不必了解片段的存储场地 ; 局部 数据模型透明 性:用户或应用程序要了解分片及各片段存储的场地,但 不必 了解局部场地上使用的是何种数据模型 。 1.3. 分布式数据库★ 【概念】逻辑统一,物理分布; 分布式数据库必须保证数据库全局数据一致性,并发操作可串行性,和故障的全局性; 【特点】 (1)数据独立性与位置透明性; (2)集中和节点自治相结合; (3)支持全局数据库的一致性和可恢复性; (4)复制透明性; (5)易于扩展性;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值