520 likes | 680 Views
EMIF 规范简介. 黄勇 北京师范大学现代教育技术研究所. 内容概要. 一、什么是软件互操作 二、为什么需要互操作 三、互操作原理 四、 EMIF 工作组 五、 EMIF1.1 内容简介. 一、什么是软件互操作. 软件互操作. “ 软件互操作 ” 是指各类软件之间能够交换和使用彼此的信息 基本要求 互操作过程对用户透明 互操作过程与操作系统无关、与传输协议无关、与程序语言无关、与开发厂商无关. 横向互操作. “ 横向 ” 是指处于同一应用层次或同一应用区域 “ 横向互操作 ” 是指同一应用层次或应用区域内软件之间的互操作
E N D
EMIF规范简介 黄勇 北京师范大学现代教育技术研究所
内容概要 一、什么是软件互操作 二、为什么需要互操作 三、互操作原理 四、EMIF工作组 五、EMIF1.1内容简介
软件互操作 • “软件互操作”是指各类软件之间能够交换和使用彼此的信息 • 基本要求 • 互操作过程对用户透明 • 互操作过程与操作系统无关、与传输协议无关、与程序语言无关、与开发厂商无关
横向互操作 • “横向”是指处于同一应用层次或同一应用区域 • “横向互操作”是指同一应用层次或应用区域内软件之间的互操作 • 横向互操作一般指不同类软件之间的互操作,如学籍管理系统与图书馆管理系统之间
纵向互操作 • “纵向”是指处于不同应用层次或不同应用区域 • “纵向互操作”是指不同应用层次或应用区域间软件之间的互操作 • 纵向互操作一般指同类软件之间的互操作,如教育局管理信息系统与学校管理信息系统之间
“校校通”遭遇“信息孤岛” • 2000年底,教育部启动“校校通”工程,旨在使全国90%的中小学师生共享网上教育资源;结果是:网络通了,但由于教育软件之间不能互相兼容,校校间的信息资源难以共享,造成了一个个“信息孤岛”。
“信息孤岛” 的表现与问题 • 教育管理信息横向交换与纵向交换困难:学校内部各职能部门之间不能共享一些公用信息,如学生数据、公文信息等;学校产生的数据不能直接上报教育管理部门,教育管理部门产生的数据也不能直接下达各级各类学校 • 妨碍管理部门的科学决策:教育管理部门收集的学校信息总是零散的、不精确的、时间上不统一的,难以集成在一起使用同一个计算工具进行处理,这就造成信息不完整、不精确、不及时 • 重复建设,人力和资金浪费:由于系统之间不能自由共享信息,于是同一类功能在不同系统之间就必须重复开发,同一套数据在不同系统之间就必须重复录入,造成极大的人力与资金的浪费 • 行业垄断的危险:为解决信息共享问题,教育管理部门习惯上采用软件采购一刀切的办法,即要求所有学校都统一采用某个软件,这必然导致不正当竞争、行业垄断、优质服务不可持续
问题的实质 • 问题的症结在于信息不能在区域内和区域间共享 • 教育管理信息(包括办公信息) • 教学过程与评价信息 • 教学资源信息 • 由于信息是由软件产生和管理的,所以问题的实质还在于要求软件之间实现互操作
教育软件互操作的意义 • 典型解决两类互操作问题——教育部门内部的软件互操作;教育部门之间的软件互操作 • 为改造教育管理工作流程建立基础 • 为改善教育宏观决策建立基础 • 避免同类软件重复开发和资源浪费 • 兼容不同产品,避免行业垄断
软件B 接口1 软件A 接口2 软件C 点对点模式 • 两个软件之间直接进行信息交换 • 只在少数软件之间可行
注册中心 软件A 软件B 端到端模式 注册 发现 调用 软件C • 信息提供端和信息请求端之间进行信息交换 • 是Web Services采用的互操作架构方式
软件B 中间件 软件A 软件C 中间件模式 • 信息发送方和信息接收方通过中间件的转发间接实现信息交换 • 是SIF和EMIF采用的互操作架构方式
中间件模式的优缺点 • 优点 • 管理:通过控制信息通道实现对信息流动的管理 • 寻径:由中间件来寻找信息的信宿 • 中继:当通信一方离线时,中间件可暂存信息,并保证在将来送达 • 缺点 • 信息异步(一般情况下异步方式并不影响通信效率) • 通信瓶颈(可通过提升硬件性能或分布式来解决)
成立EMIF工作组的背景 • 通过“点对点接口”实现信息共享 • 维护难,升级难;不能兼容不同厂商产品,不适于推广 • 通过“区域一体化方案”实现信息共享 • 抛弃已有软件,造成大面积资金浪费 • 由一个公司大包大揽,造成行业垄断 • 国内致力于研发信息化标准,但局限于数据标准 • 《高等教育管理基本信息集》(1994) • 《教育管理信息化标准 第1部分:学校管理信息标准》(2002)
EMIF工作组 • 2001年,教育部成立“全国信息技术标准化技术委员会教育技术分技术委员会(简称标委会)”,负责制定、推广我国信息化的相关技术标准 http://www.celtsc.edu.cn • 2003年9月3日,标委会成立EMIF工作组,由标委会专家和若干企业组成 • 2003年9月15日,EMIF工作组召开了一次会议,讨论EMIF1.1定稿计划
EMIF工作组中的专家和企业 • 专家 • 余胜泉(北师大)、汪琼(北大) • 企业 • Intel(中国) • 联想 • 校际通 • 浙大网络 • 腾图 • 常州易维尔 • 希尔 • 创星伟业
Intel对EMIF的推广 • 选择3-5家软件开发商,Intel免费提供 • Intel EMIF2003所有的源代码和所有的文档 • Intel EMIF2003技术培训和现场技术支持 • EMIF产品的测试支持 • EMIF产品市场推广的经费支持 • 加入到Intel的教育解决方案中 • 可能加入到Intel教育解决方案样板工程中 • 不断更新的EMIF参考实现
Intel的战略 • 2003年8月26日,Intel公司与教育部签署正式合作协议 • Intel牵头建立教育产业界的教育方案推动联盟,于10月启动 • Intel将力推硬件解决方案 • Intel将力推教师培训计划 • Intel将力推EMIF • Intel将研究并推动研究性学习支持平台 • Intel完全自费实施上述举措,将收益放于长远
什么是EMIF • EMIF是我国教育信息标准化进程中的一个范例 • EMIF Education Management Information System Interoperability Framework • EMIF规范是为了使各类教育管理软件之间能够彼此交换和使用教育信息而制定的一套技术规范
EMIF的目标 • 应用软件只要符合EMIF规范就可以实现互操作 • 只规范互操作行为,不影响应用软件内在功能 • 使互操作过程不受物理区域限制 • 与操作系统无关,与传输协议无关,与程序语言无关
EMIF引用的标准/规范 • SIF Schools Interoperability Framework • 教育管理信息化标准 第1部分:学校管理信息标准 • 基础教育教学资源元数据规范
内容结构 1. EMIF体系结构 2. EMIF报文规范 3. EMIF数据规范
1. EMIF体系结构 • 基本概念 • EMIF体系模型 • 数据交换模式 • ZIS的功能 • 代理的功能
基本概念——区域 • 区域是指互操作所覆盖的范围 • 区域的范围不受限制,可以小到一间学校,大到一个市、省、国家 • 区域往往根据物理边界来定义,如校园网、城域教育网 • 典型的区域如学校、教育局
基本概念——组件 • 组件即区域中的应用软件,也称为节点 • 区域中的组件包括:ZIS、应用软件及其代理 • ZIS(zone integration server)即区域集成服务器,是互操作的中介和管理器 • 代理是应用软件与ZIS通信的接口,它可以集成在应用软件内部,也可以开发成独立软件
基本概念——数据对象 • 数据对象是在EMIF中用于交换的数据的信息语义的模式 • 数据对象使用XML表示 • 数据对象使用GUID标识 • 示例
基本概念——数据对象 • “学生基本信息” <学生基本信息 RefId=“ABDE8405...”学校RefId=“33FDAC64…”学号=“880200”> <姓名>王向阳</姓名> <入学年月>200209</入学年月> <年级>2</年级> <学生类别码>DM-XSLB00</学生类别码> <性别码>1</性别码> <血型码>DM-XX2</血型码> <出生日期>19860512</出生日期> ...... </学生基本信息>
基本概念——报文 • 报文是数据对象的载体,数据对象只有封装在报文中才能够传递 • 报文使用XML表示 • 报文使用GUID标识 • 示例
报文示例 <EMIF_Message xmlns=http://www.emifinfo.org/messages/1.x Version=“1.1”> <EMIF_Provide> <EMIF_Header> <EMIF_MsgId>34DC87FE3261545A31905937B265CE01</EMIF_MsgId> <EMIF_Date>19990218</EMIF_Date> <EMIF_Time Zone = "UTC+08:00">20:39:12</EMIF_Time> <EMIF_SourceId>BNUSIS</EMIF_SourceId> </EMIF_Header> <EMIF_Object ObjectName = "学生基本信息"/> <EMIF_Object ObjectName = "学生注册信息"/> </EMIF_Provide> </EMIF_Message>
ZIS agent 应用软件B 应用软件A agent EMIF体系结构简单示意图 EMIF体系模型 • EMIF区域中各应用软件以代理作为接口,通过ZIS实现信息交换
数据交换模式 • 请求-应答模式 对应数据查询操作 • 发布-预约模式 对应数据更新操作(添加、删除、修改)
应用软件B 应用软件C 代理B 代理C 代理A 应用软件A 请求-应答模式 应答报文 请求报文 ZIS 1. 代理A向ZIS提供数据对象 2. 代理B向ZIS请求数据对象 应答报文 3. ZIS将请求转发给代理A 请求报文 提供报文 4. 代理A将应答反馈给ZIS 5. ZIS将应答转发给代理B
应用软件B 应用软件C 代理B 代理C 代理A 应用软件A 发布-预约模式 事件报文 预约报文2 预约报文1 ZIS 1. 代理B向ZIS预约数据更新事件 2. 代理C向ZIS预约数据更新事件 3. 代理A将数据更新发布到ZIS 事件报文 4. ZIS将数据更新同时发布到代理B和代理C
ZIS的功能 • 注册代理 • 存取控制 • 转发报文 • 报文队列服务 • 建立安全通道
代理的功能 • 编写报文,发送给ZIS • 接收报文,解析成数据流
2. EMIF报文规范 • 报文模式 • 报文处理 • 报文循环 • 推/拉模式 • 报文安全 • 报文处理协议 • 报文传输
报文模式 • EMIF_Ack:用于通知是否已成功接收或处理报文 • EMIF_Event:用于发布数据对象更新事件 • EMIF_Provide:用于提供数据对象 • EMIF_Register:用于注册代理 • EMIF_Request:用于获取数据对象 • EMIF_Response:用于应答对数据对象的请求 • EMIF_Subscribe:用于预约数据对象更新事件 • EMIF_SystemControl:用于控制数据流动 • EMIF_Unprovide:用于取消对数据对象的提供 • EMIF_Unregister:用于取消注册 • EMIF_Unsubscribe:用于取消对数据对象更新事件的预约
报文循环 • 报文循环是发生在代理与ZIS之间的循环 • 只要发信方(代理或ZIS)发送一个报文给接收方(ZIS或代理),接收方一定要反馈一个EMIF_Ack报文作为应答
推/拉模式 • 推/拉模式指代理与ZIS之间的通信模式 • 推 push:ZIS将报文直接传递给代理 • 拉 pull:ZIS等待代理的GetMessage命令,然后将报文传递给ZIS • 代理向ZIS注册时指定使用何种模式
报文安全 • 代理可以要求ZIS在转发报文时达到某种安全级别 EMIF_AuthenticationLevel——身份认证级别 EMIF_EncryptionLevel——加密级别
报文处理协议 • 报文预处理(ZIS) • 注册报文处理(ZIS) • 提供报文处理(ZIS) • 预约报文处理(ZIS) • 事件报文处理(ZIS) • 请求报文处理(ZIS) • 应答报文处理(代理)
数据 数据 报文处理层 报文处理层 ZIS Agent 报文传输层 报文传输层 安全通道 报文传输层 • 报文传输层与报文处理层分离
报文传输层协议——EMIF HTTPS • EMIF HTTPS引用了HTTP1.1[RFC2616]和TLS1.0[RFC2246] • EMIF HTTPS只采用HTTP1.1的一个子集 • POST方法 • 200-OK响应通知 • 不支持"Connection:Upgrade"或"Upgrade:xxx"头信息 • EMIF也支持使用其他类传输协议
3. EMIF数据规范 • 定义交换数据的信息语义模式 • 可直接用于XML绑定 • 数据对象来源 • 教育管理信息化标准:学校管理信息标准 • 基础教育教学资源元数据规范 • 其他自定义数据