




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Sakai架构设计与实现 面向服务的组件式微内核架构 XingtangHu Hu2 iupui edu LanceSpeelmon lance indiana edu MichaelKorcuska mkorcuska 印第安纳大学 SAKAI基金会3月1日 2008年 Sakai中国研讨会华中师范大学武汉 中国周六 日 3月1 2日 2008年 1 成员介绍 胡兴堂 博士网络课程系统专家 印第安纳大学信息技术中心2006印第安纳大学博士后2006中国科学院研究生院地理信息系统博士学位2002中国科学院研究生院地理信息系统硕士学位2001武汉大学地理信息系统学士学位 LanceSpeelmon Oncourse系统和Sakai系统主架构师 印第安纳大学MichaelKorcuska Sakai基金会首席运营官 2 目录 Sakai项目介绍Sakai架构Tomcat容器和类加载机制 classloader Spring容器和组件管理机制 componentsmanager Sakai开发平台工具和服务 Toolsandservices 网路应用架构 WebAppstructure Sakai实践和案例分析 3 Sakai平台目标 企业级平台清晰划分表现层 工具 核心服务以及平台构件提供各工具模块间的无缝集成基于组件式的可扩充能力以及隔离类载入安全机制异构数据互操作性以及对非Java平台集成支持具备易于本地化和功能定制的灵活性 4 Sakai信息聚合门户工具包 聚合工具 互操作性 网格计算数据仓库知识发现工具 JSR170 267 5 核心工具 安全认证服务AuthzGroupService网站服务SiteService工具集管理ToolManager会话管理SessionManager文件内容服务ContentHostingService课程管理服务CourseManagementService 6 Sakai标准服务 标准服务例子用户目录服务UserDirectoryProvider mapyourlocaluserinformation eginLDAP IMSEnterprise Kerberos intoSakai用户群组服务GroupProvider课程管理CourseManagementProvider门户代理PortalHandler newinSakai2 4 registernewtop levelhandlersintheSakaiportalURLspace实体服务EntityProducer exportprimaryentitieshandledbyyourserviceas1st classSakai Entities resolvablebyURLs addressiblebyEvents searchable 更多例子详见Sakai源代码 7 Sakai的概念和表现形式 Sakai是轻量级的J2EE Servlet 容器 container Tomcat WebSphere WebLogicSakai工具 tool 是面向用户的界面组成元素 本质上也是ServletSakai组件 component 是SakaiAPI的实现 也是一组SpringBeans的集合 8 工具Tools web 不能直接访问数据持久层 persistence 主要用于实现客户端交互界面presentation GUI 服务Services Components API Impl 提供文档化的函数接口MustprovidedocumentedAPI不包括表现层功能presentation notawareofHTMLatall 可以通过接口函数直接访问其它服务 数据模型除外 notdatamodels 平台Framework Tomcat 提供工具和服务的注册toolsandservice提供公共服务commoncapabilities对数据层保持透明domainobjects 平台 工具和服务 9 Sakai应用平台 面向服务的架构工具集TOOLS面向用户界面和数据持久层隔离鼓励直接采用面向表现层的服务服务SERVICES通过统一接口访问其它服务不能自己调用数据模型需要标准的函数接口平台FRAMEWORK提供工具和服务注册提供公共服务对数据持久层透明 抽象工具层AbstractToolLayout 工具ToolCode Java 应用服务ApplicationServices 公共服务CommonServices SAF 内核Kernel SAF 表现层PresentationServices SAF 服务接口函数 APIs 10 Sakai应用结构图 URL http issues sakaiproject org confluence x BGo 网络应用Webapps 组件Components 共享模块Shared 商业逻辑实现Logic impl businesslogic 工具集Tool presentation 数据访问实现Dao impl dataaccess 公共服务接口Public api service 逻辑接口Logic api businesslogic 数据访问接口Dao api dataaccess 数据模型接口Model 11 外部External 三层架构3 tierarchitecture 三层应用架构 表现层Presentation 商业逻辑层BusinessLogic 数据访问层DataAccess 数据库Database 用户User 其它网络应用OtherApps 12 表现层PresentationLayer 用户交互和外观层用户界面 GUI 或者是基于浏览器客户端 clientview 对商业逻辑层businesslogic和数据访问层透明dataaccess 3 tierarchitecture 表现层Presentation 商业逻辑层BusinessLogic 数据访问层DataAccess 13 商业逻辑层LogicLayer 包含商业信息 数据处理的逻辑规则也叫中间层对表现层 presentation 和数据访问层透明 dataaccess 3 tierarchitecture 表现层Presentation 商业逻辑层BusinessLogic 数据访问层DataAccess 14 数据访问层DataAccessLayer 对数据持久化进行物理存储对数据库或者文件系统的访问进行管理对表现层 presentation 和商业逻辑层保持透明 businesslogic 3 tierarchitecture 表现层Presentation 商业逻辑层BusinessLogic 数据访问层DataAccess 15 层切割关键要素 层保持自身独立性 并减少对其它层的依赖不相邻的层禁止直接通讯 3 tierarchitecture 表现层Presentation 商业逻辑层BusinessLogic 数据访问层DataAccess 16 Sakai组件管理容器ComponentManager 借用Spring容器对bean管理的能力来创建和维护Sakai组件 包括对组件生命周期管理对组件注册组件是对Sakai服务接口函数的具体实现 17 Sakai组件管理容器ComponentManager 组件注册 组件管理 接口函数 接口函数对象 18 Tomcat容器 Container 基础 Tomcat TheServer 服务Services 引擎Engine Catalina 上下文Context JSPs Servlets Valves AJPConnector 8009 SSLConnector 8443 8080 HTTPConnector 主机Hosts Realm Valves Valves 19 Tomcat J2EE 类加载机制 树形结构类加载机制JavaClassLoaders经典Servlet容器 container 加载层次结构注意Web应用类加载 ClassLoaders 优先搜寻本地目录 此外都是优先搜寻父节点目录 20 Sakai类加载机制 ClassLoaders Sakai在经典J2EE类加载层次ClassLoaderlayout中的位置Sakai组件非常类似于网络应用 webapps 中的Servlets都使用URLClassLoader加载类父节点可以共享不同点组件只有声明文件components xml Springfile 不包含web文件web xml组件只负责响应函数调用 对Servlet调用 dispatches 不支持 Component1 Component2 APIsuphere Componentsinhere Toolsinhere 21 Sakai工具 Tools 开发 Sakai工具 Tools 非常类似普通Servlet支持广泛使用表现层技术包括RSF JSF和Velocity需要同时在web文件 web xml 和全局文件file tools toolname xml 中注册申明可以使用AppBuilder插件 Plugin 进行文件管理和配置工具的申明上下文文件 applicationContext xml 自动汇入到全局共享Spring上下文 context 文件中 因此Sakai服务 services 能够在Spring中被直接引用因为在共享空间中Spring文档包 JARs 已经存在备份 禁止将其包括在网络应用 Webapplication 本地空间中 22 Sakai组件开发 Sakai组件 component 由以下标准模块组成申明函数接口模块 APImodule 一般只包括Java接口定义 interfacedefinitions 和常量 constants 打包成JAR包并部署在共享区 sharedarea 组件功能实现模块 Implmodule 包含接口函数 APIinterfaces 包含Spring格式的配置文件 components xml 用于申明能够被共享的Spring上下文 context 访问的组件功能打包成WAR包并部署在组件区 componentsarea 23 组件管理容器ComponentManager 对Spring应用上下文 ApplicationContext 进行管理允许用id或者Class访问 mgr get org sakaiproject site api SiteService 24 怎样调用Spring服务 在网络配置文件web xml中增加上下文装载监听器 ContextLoaderListener 给对象创建组建定义 beandefinitions 在新对象中以属性的方式引用Sakai服务 services 25 用Spring管理Sakai服务 Services Sakai函数接口 APIs 以Java接口 interfaces 方式定义每个Sakai函数接口 APIs 都只有一个对应实现SakaiSpring上下文配置文件中 components xml 定义Springbean命名依照函数接口规定全名例子 在Spring配置文件中定义Sakai用户目录访问服务 UserDirectoryService 只有一个全局共享Sakai应用上下文 context 管理所有服务 services 组件 26 Sakai应用文件结构目录 4个主要文件目录函数接口目录Api interfaces 商务逻辑Logic businesslogicanddaoapis数据模型Model POJOs value dataobjects 公共服务Public ServiceAPI ifyouhaveone 数据持久化配置Hbm HibernateHBMfiles函数接口实现目录Impl implementations 数据访问Dao dataaccessimplementation商务逻辑Logic businesslogicimplementation测试Tests programmatictests unit integration 组件信息包目录Pack componentdefinitions Spring配置文件 Sakaicomponents xml 工具目录Tool webapp Java源代码src java javaclassesusedbyyourtoolonly网络应用相关文件src webapp xml jsp html othermetafiles URL http issues sakaiproject org confluence x BGo 27 文件结构目录 URL http issues sakaiproject org confluence x BGo 28 Java包结构图 URL http issues sakaiproject org confluence x BGo 29 SakaiJava消息服务案例分析 目标 替换基于数据库事件服务 eventservice 利用ActiveMQ组件包构建消息系统 30 31 m eventTrackingService EventTrackingService ComponentManager get org sakaiproject event api EventTrackingService 32 表现层技术 http jakarta apache org velocity JSF http www2 caret cam ac uk rsfwiki http en wikipedia org wiki AJAX AJAX 33 JavaServerPages 易于开发和配置支持热启动 热部署在Sakai中大量采用且运行稳定是成熟稳定的技术 并拥有强大社区支持良好文档支持 34 JavaServerFaces 用一组基于Java的函数接口APIs定义网络状态管理 managingstate 事件代理 handlingevents 以及定义页面导航规则 definingnavigation 可以借助JSP作为页面渲染器也可以独立于JSPs而采用第三方页面渲染器包含一组客户定制页面标签库 taglibraries 包括错误事件代理 输入验证以及国际化支持 JSF URL 35 代码概览 JSFsample JSF 36 ReasonableServerFaces 基于Spring框架的网络表现层编程平台 webprogrammingframework 利用纯XHTML模板 对界面UI和代码Code隔离轻量级Lightweight和纯面向组件编程易于和AJAX与Javascript集成 URL http jakarta apache org velocity 37 Sakai环境 Sakai环境 聚合层 表现层 工具层 服务层 系统层 客户端 聚合代理 框架服务 内部聚合 表现层 工具层 服务层 系统层 外部聚合 系统整合与集成 38 在Sakai中集成非Java应用 Applications Sakai网络服务网关 Sakai服务 网络应用代码 网络会话和服务启动 Sakai启动控制 39 应用案例分析 在校学生 99 122人 40 原始系统Oncourse Su Fall04 Spring05 Su Fall05 Spring06 Su Fall06 遗留系统历史数据保留2学年 新系统OncourseCL PilotPeriod LimitedRelease 05年秋季起课程系统默认由OncourseCL创建 Fall 05byWebformrequestonly OncourseCL系统部署 迁移 Sakai开发发起机构Indiana Michigan StanfordandMIT CL1 5 CL2 0 CL2 1 CL2 x 41 课程系统OncourseCL架构图 主服务器 IUB 备用服务器 IUPUI 42 BuildProcess SlideFromRob Lance Sakai部署流程 需求分析 进度控制 源码管理 产品开发 系统测试 质量控制 系统发布 任务分配 系统部署 Subversion 43 Sakai行业应用案例 部署情况 IndianaUniversity 截止2006二月 108 190用户访问OncourseCL系统 EtudesAlliance
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遗传疾病预防手册
- 模具安全管理规定
- 手性拆分应用前景探讨-洞察及研究
- 监理工作流程标准操作手册
- 快递业人力资源规划策略-洞察及研究
- 小学四年级数学方程应用题专题训练
- 企业成本控制与预算编制方案
- 互联网金融平台用户风险防范指南
- 网络信息安全保密制度指南规定
- 智能制造工艺控制规定
- 量子物理发展简史教学课件
- 全国高中数学联赛
- (通桥【2018】8370)《铁路桥梁快速更换型伸缩缝安装图》
- FZ/T 80004-2014服装成品出厂检验规则
- 绿色化学4章课件
- 计量经济学-西南财大庞皓-博导
- 《海洋经济学》配套教学课件
- DBJ53-T-40-2011 云南省城镇园林工程施工质量验收规程
- 晕厥(课件)课件
- 气体灭火的施工方案
- 工程概算表【模板】
评论
0/150
提交评论