1、中间件技术
中间件,是处于系统软件和应用软件之间的一类软件。
1.1 中间件概述
中间件位于操作系统之上,管理计算资源和网络通信,实现应用之间的互操作。
1.1.1 中间件的基本功能:
- 负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
- 提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的高效率通信机制。
- 提供一个多层架构的应用开发和运行平台,以及一个应用开发框架,支持模块化的应用开发。
- 屏蔽硬件、操作系统、网络和数据库的差异。
- 提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。
- 提供一组通用的服务区执行不同的功能,避免重复的工作和 使应用之间可以相互协作。
1.1.2 中间件的分类
1.1.3 中间件的应用
为了完成不同层次的集成,可以采用不同的技术和产品。
- 为了完成底层传输层的集成,可以采用 CORBA技术
- 为了完成不同系统的信息传输,可以采用消息中间件
- 为了完成不同硬件和操作系统的集成,可以采用J2EE中间件产品
1.1.4 中间件的发展趋势
- 规范化
- 构件化和松耦合
- 平台化
1.2 主要的中间件
中间件可以为上层应用提供不同形式的通信服务,包括:同步、排队、订阅\发布、广播等,在这些基本的通信平台上,可以构建各种框架,为应用程序提供不同领域内的服务,例如:事务处理监控器、分布式数据访问、对象事务管理器等。
中间件为上层应用屏蔽了异构平台的差异,而其上的框架又定义相应领域内的应用框架、标准的服务构件等,用户只需告诉框架所关系的时间,然后提供这些事件的代码。
1.2.1 远程过程调用 - RPC
- 支持异步调用
- RPC提供的是基于过程的服务访问,客户与服务器进行直接连接,没有中间机构来处理请求。
- 局限:RPC通常需要一些网络细节以定位服务器;在客户发出请求的时候,要求服务器必须是活动的。
- 支持C/S架构
1.2.2 对象请求代理 - ORB
1990年底,OMG首次推出对象管理架构模型(OMA),对象请求代理(ORB)是这个模型的核心组件,它的作用在于提供一个通信框架,透明的在异构的分布计算环境中传递对象请求,CORBA规范包括了ORB的所有标准接口。
1.2.3 远程方法调用 - RMI
RPC的Java版本
1.2.4 面向消息的中间件 - MOM
MOM指的是利用高效可靠的消息传递机制进行平台无关的信息交换,并基于数据通信来进行分布式系统的集成。
通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。
典型:
- IBM 的 MQSeries
- BEA 的 MessageQ
在MOM中,消息传递和排队技术主要有以下三个主要特点:
- 通信程序可在不同的时间运行。程序不在网络上直接相互通信,而是间接的讲消息放入消息队列。因为程序间没有直接的联系,所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立刻处理消息;
- 对应用程序的结构没有约束。在复杂的应用场景中,通信程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通信方式的构造并没有 增加应用程序的复杂性。
- 程序与网络复杂性相隔离。程序讲消息放入消息队列或从消息队列中取出消息来通信,与此关联的全部活动,例如:维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等,是MOM的任务,程序不直接与其他程序通信,并且它们不涉及网络通信的复杂性。
MOM系统的基本元素是客户、消息和MOM提供者。
1.2.5 事务处理监控器 - TPM
也称:交易中间件 Transaction Processing Monitor - TPM
- 目前应用最为广泛
- 支持数以万计的客户进程对服务器的并发访问,使得系统具有极强的扩展性。
- 适用于电信、金融、证券等拥有大量客户的领域。在对效率、可靠性要求严格的关键任务系统中具有明显的优势。
- TPM一般支持负载均衡
- 支持分布式两阶段提交 2PC
- 保证事务完整性和数据完整性
- 具有安全认证和故障恢复功能
TPM介于用户和服务器之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。
TPM具有以下功能:
- 进程管理
- 事务管理
- 通信管理
交易中间件(TPM)中的两阶段提交(2PC,Two-Phase Commit)协议是一个确保在分布式系统中所有参与者都同意提交或回滚事务的原子性协议。这种协议对于保证分布式事务的一致性和完整性至关重要。
在2PC协议中,涉及到两种角色:
事务协调者(Transaction Coordinator):负责协调多个参与者的事务投票和提交/回滚决策。
事务参与者(Participant):即本地事务执行者,可以是数据库或其他需要参与事务的资源管理器。
两阶段提交协议的具体步骤如下:
准备阶段(Prepare Phase):
事务协调者向所有事务参与者发送Prepare请求,询问它们是否可以提交事务。
事务参与者根据本地执行的情况决定是否可以提交事务。如果可以,它将在本地写入Undo/Redo日志(Undo日志用于回滚事务,Redo日志用于在提交事务时写入数据文件),并锁定相关资源,然后向事务协调者发送Yes响应;如果不可以,则发送No响应。
提交阶段(Commit Phase):
如果事务协调者收到了所有事务参与者的Yes响应,它将向所有参与者发送Commit请求,指示它们提交事务。事务参与者收到Commit请求后,会释放锁定的资源,并将Redo日志写入数据文件,完成事务的提交。
如果事务协调者收到了任何No响应或超时未收到响应,它将向所有参与者发送Abort请求,指示它们回滚事务。事务参与者收到Abort请求后,会使用Undo日志回滚事务,并释放锁定的资源。
需要注意的是,两阶段提交协议虽然可以确保分布式事务的原子性,但也存在一些缺点,如阻塞问题、单点故障问题等。因此,在实际应用中,需要根据具体的业务场景和需求来选择合适的分布式事务解决方案。
2、J2EE与.NET平台
2.1 J2EE核心技术
2.1.1 分布式的多层应用程序
2.1.2 J2EE构件
- 客户端应用程序和applet是运行在客户端的构件。
- Java Servlet 和 JSP(Java Server Pages,JAVA服务器界面) 是运行在服务器端的 Web构件。
- EJB(Enterprise Java Bean,企业JavaBean)是运行在服务器端的业务构件。
1、客户端
- 客户层可以直接和运行在J2EE服务器中的业务层通信,也可以通过运行在 Web层中的JSP页面和Servlet 与业务层构件 进行通信。
- J2EE客户层可以分为Web客户端、Applets和Java应用。
(1)Web客户端:也称为瘦客户端,一般由各种浏览器承担,在浏览器中显示由JSP或者Servlet动态生成的Web界面。
(2)Applet是一种特定的Java程序,其最大的特点就是在本地浏览器中执行
(3)Java应用程序是运行在客户端的本地应用程序,由本地的JVM负责解释执行。Java应用程序可以直接访问运行在业务层EJB,也可以通过http访问运行在web容器中的servlet,并通过servlet达到业务处理的目的。
2、中间层
J2EE的核心
EJB 是J2EE 中间层中最重要的也是最有特点的构件之一。
EJB 可以从持久化的存储设备中获取数据,对它进行处理,并将其发送到客户端应用程序。
3、企业信息系统层
2.1.3 J2EE容器
2.1.4 JavaEE
JavaEE 5 中,推出了EJB3.0 的标准。
- 引入了依赖注入
- 引入了 新的对象关系映射 ORM
2.2 Java企业应用框架
MVC model-view-controller 模型-视图-控制器
2.3 .NET平台概述
待补充
2.4 比较分析
待补充
3、虚拟计算
3.1 P2P计算
3.1.1 需要解决的关键问题
- 资源存放
- 资源定位
- 资源获取
3.1.2 网络拓扑结构
- 集中式结构模式
- 分布式非结构化模式
- 分布式结构化模式
- 混合结构模式
3.1.3 P2P关键技术
3.1.4 P2P的应用
3.1.5 P2P的特点与优势
3.1.6 存在的问题
3.2 云计算
3.3 软件即服务
SaaS系统的设计:
采用的也是BPS架构,分为:数据层、业务逻辑层和表示层。
由于SaaS是高度依赖网络的,当网络不能连接,或者服务器无法连接的情况时,就必须规划好系统的离线应用问题。
在进行离线应用的设计时,需要考虑:
- 常用数据的本地存储
- 离线基本操作
- 离线操作的恢复
3.4 网格计算
待补充
3.5 普适计算
待补充
4、片上系统 - SoC
待补充
5、多核技术
待补充
6、面向方面的编程 - AOP
AOP 是一种基于关注点分离的新技术,系统中的不同关注点能被分离出来 进行单独设计。