中间件的分类
22
其它服务
❖ 连接池(Connection Pooling) 线程池和实例池(Thread Pooling and Instance Pooling)
❖ 以上这些服务以组件API的形式提供给应用 程序使用,使应用程序编程的复杂性,和代 码量大大减少
23
中间件定义
❖中间件(Middleware)是一种软件,处于系统软件 (操作系统和网络软件)与应用软件之间,它能 使应用软件之间进行跨网络的协同工作(也就是 互操作),这时允许各应用软件之下所涉及的 “系统结构、操作系统、通信协议、数据库和其 它应用服务”各不相同。 ❖位于操作系统和应用软件之间的一个软件层, 向各种应用软件提供服务,使不同的应用进程能 在屏蔽掉平台差异的情况下,通过网络互通信息。
53
❖原子性(Atomicity)指的是:事务要么完整地执行 (即做完上述系列操作中的每一个),要么根本不执行, 而绝不会出现只执行一部分操作的情况。
❖一致性(Consistency)指的是:一个事务执行完成, 必定进入某个稳定状态;若进入的是另一个不一致的状 态,则这一事务将被丢弃而不予执行。
❖(隔离(Isolation)指的是:一个事务与其它事务并 行作用于一共享资源上时,前者的进行是与后者之间完 全隔离开的。
31
构件化带来的成效
❖ 应用成果
核心业务的稳定性、可维护性大为提高,开发的工作 量逐步减少。上海医保在未应用构件之前,核心代码 为60万行,编制构件替换原有模块后,总体代码量未 有显著增加,其中实时交易的代码量减少40%,测试 和错误量减少60%。温州医保继续完善上海医保的构 件,总体工作量减少20%,宁波医保完全使用医保领 域构件,总体工作量减少30%,代码行节省40%,错 误率减少50%,测试工作量减少40%,需求变更响应 效率提高35%。
21
应用服务器的功能
❖ HTML生成 纯的瘦客户程序不能直接与服务器端组件通信,
没有办法用客户浏览器的HTML或ECMA脚本交换 结果集。这意味着服务器端需要另一个组件来生成 和处理HTML。应用程序服务器必须解码(decode) 一个URL,来决定执行哪一个组件。该组件访问数 据库或其他组件,获得结果集,将结果集包装为 HTML(或XML),再将其返回给浏览器。
40
分布式对象中间件
41
计算
典型应用
计算
机A
机B
42
❖面向对象的中间件技术基本思想是提供一种 统一的接口.使对象之间的调用和数据共享不 再关心对象的位置、实现语言及所驻留的软硬 件系统。 ❖技术标准:
OMG 组 织 的 CORBA、Microsoft 的 COM/DCOM、SUN的J2EE(RMI)等
❖ 提供的服务: 安全服务(Security Services) 为了获得资源访问权,客户必须通过服务器的
认证,因此服务器必须要有验证用户的安全措施, 一旦用户身份被验证,服务器将允许或禁止他对组 件的访问和所管理的数据连接
17
应用服务器的功能
❖ 状态和会话管理(State and Session Management) 用户会话(Session):是指具有唯一访问者 标识(唯一地址)的访问者进入或再次进入网站 的过程 应用服务器将管理这些Session的状态, 取代cookies和隐藏字段
数据库的直接连接,效率较ODBC高
❖(5)数据库网关
❖ 用于分布式应用环境,无需在客户机进行各
种配置,如安装各种ODBC驱动、设置ODBC 数据 源等,使用网关来统一管理不同数据库的访问
❖ 相关产品:EDA/SQL、RDA、DRDA
50
事务处理中间件 (Transaction Processing
18
应用服务器的功能
❖ 负载平衡和失败恢复(Load Banlancing and FailOver) 负载平衡意味着一组服务器可以被集中成为一 个服务器集群(cluster/farm)。发往服务器的请 求被一个分配器(dispatcher)处理以便将请求发 给最空闲的服务器,此后客户将直接与那台服务器 通信。负载平衡机制为系统提供了很好的扩展性 如果集群内某台主机失效停机,新的请求将被 重新路由给其他某台服务器
❖ 为了处理一个请求(request),Web服务器可 以响应(response)一个静态页面或图片,进 行页面跳转(redirect)
7
Web服务器
运行于操作系 统之上,如IIS
8
❖ 或者把动态响应(dynamic response)的产生委托 (delegate)给一些其它的程序例如CGI脚本, JSP(JavaServer Pages)脚本,servlets, ASP(Active Server Pages)脚本,服务器端(serverside)JavaScript,或者一些其它的服务器端(serverside)技术。
29
成功案例
医保卡管理 报销管理
自动生成报表
30
成功案例
❖ 项目简介
上海市医疗保险计算机管理系统(初期未使用构件,在系统第 二版升级时编制构件)、温州市医疗保险计算机管理系统(应 用上海医保项目的构件,并进行构件的完善)、宁波市医疗保 险计算机管理系统(应用上海医保项目的构件)。
❖ 构件复用
针对医保领域的通用业务、设计思想进行复用,复用的方面包 括:政策分析与业务设计、系统建模、数据库设计、业务模块 等。复用的业务包括:实时交易、医保卡管理、报销业务、报 表设计等,基本涵盖医保的核心业务。
比socket通信编程更简单
35
36
37
实际过程:
RPC是如何工作的?
客户端程序
服务器端程序
Local Call
Remote Procedure
Client Stub
Server Stub
RPC Interface
send receive
RPC Interface
send receive
Networ3k8
❖ 提供了业务代码的存放和运行的环境。 ❖ 从物理上把业务逻辑(Business logic)同客
户端和数据资源分离开来。 ❖ 应用程序服务器可使一个商业系统得以快速
简便的开发和部署,也可以适应商业系统的 用户增加而无需重构系统,这一切都是因为 它处于一个相对独立的结构层
16Leabharlann 应用服务器功能❖ 管理客户会话、管理业务逻辑、管理与后端计算资 源(包括数据、事务和内容)的连接。
43
典型应用
44
数据库访问中间件
45
典型应用
❖ 集成多个异构数据库,如:
电子政务平台(拆迁涉及:土地局、公安局、财 政局等部门)
学生资料管理(学生资料涉及:教务处、后勤处、 献财务处、户籍科、医院等)
46
47
48
连接应用程序和数据库的软件,允许通过单一 的、定义良好的接口访问网络中来自不同厂商的 数据库产品
❖持久性(Durability)指的是:当一个事务完成时, 即使系统或者共享资源发生故障,该事务的执行结果也 不会因此而丢失。
54
❖本地事务的管理由数据库系统来完成。
❖联机交易处理系统需要处理大量的分布式事务。
❖分布式事务涉及到多个数据库,且允许这些数据库异构, 如在不同的银行间进行资金转账。
❖ 这些服务器端(server-side)的程序通常产生一个 HTML的响应(response)来让浏览器可以浏览。
9
10
比如ASP、 JSP,运行于 web服务器
11
数据库
EJB运行于应
服务器
用服务器,提
供API调用, 12 取代script
13
路 由 器
防负 火载 墙均
衡
服
务
器
缓
冲
服 Web服
❖ 群号:17641217
1
分布式系统典型案例
❖ 电信(比如10000号) ❖ 航空 ❖ 网上购物(课本第二页)
2
3
航空订票呼叫中心
控制电话 呼入呼出
4
认识中间件
❖从web服务器到应用服 务器
5
HTTP请求 HTTP响应
6
Web服务器
❖ 当Web服务器接收到一个HTTP请求(request), 会返回一个HTTP响应(response),例如送回 一个HTML页面。
Middleware,TPM)
51
典型应用
❖ 银行转帐,在线支付,
52
❖又称分布式事务处理中间件。专门针对联机交 易处理系统而设计。 ❖事务是对共享的系统资源所完成的一件工作, 它通常是由一些列操作所组成。事务必须具有 ACID(Atomicity,Consistency,Isolation 和 Durability)属性。
32
❖按 照 IDC(Internet 数 据 中 心 ) 的 分 类 方 法 , 中 间件分为: ❖远程过程调用中间件 ❖分布式对象中间件 ❖数据库访问中间件 ❖事务处理中间件 ❖消息中间件
33
远程过程调用中间件
34
典型应用
分布式计算环境中,计算机A调用计算机B 程序(过程),共享计算资源
把一个完整的应用分布(分隔)到多台计 算机,每台计算机执行一部分功能(函数), 计算机间的进程用RPC互相调用,形成一个整 体。
(1)通用网关接口CGI(驻留在WebServer上) (2)专用API:DLL形式
NSAPI(Netscape) ISAPI(Microsoft) (3)通用数据库接口 JDBC(SUN) ODBC(Microsoft)
49
❖(4)数据库引擎
❖
Borland 公 司 开 发 , 类 似 于 ODBC, 支 持 与
25
4. 组件技术- 概述
面向对象的基本原则: