




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Sakai架构设计与实现:
面向服务的组件式微内核架构
XingtangHu(Hu2@)LanceSpeelmon(lance@)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实践和案例分析3Sakai平台目标企业级平台清晰划分表现层,工具,核心服务以及平台构件提供各工具模块间的无缝集成基于组件式的可扩充能力以及隔离类载入安全机制异构数据互操作性以及对非Java平台集成支持具备易于本地化和功能定制的灵活性4Sakai信息聚合门户工具包聚合工具互操作性网格计算数据仓库知识发现工具JSR170/2675核心工具安全认证服务AuthzGroupService网站服务SiteService工具集管理ToolManager会话管理SessionManager文件内容服务ContentHostingService课程管理服务CourseManagementService6Sakai标准服务标准服务例子用户目录服务UserDirectoryProvider–mapyourlocaluserinformation(eginLDAP,IMSEnterprise,Kerberos)intoSakai用户群组服务GroupProvider课程管理CourseManagementProvider门户代理PortalHandler(newinSakai2.4)–registernewtop-levelhandlersintheSakaiportalURLspace实体服务EntityProducer–exportprimaryentitieshandledbyyourserviceas1st-classSakai“Entities”(resolvablebyURLs,addressiblebyEvents,searchable)更多例子详见Sakai源代码7Sakai的概念和表现形式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平台,工具和服务9Sakai应用平台面向服务的架构工具集TOOLS面向用户界面和数据持久层隔离鼓励直接采用面向表现层的服务服务SERVICES通过统一接口访问其它服务不能自己调用数据模型需要标准的函数接口平台FRAMEWORK提供工具和服务注册提供公共服务对数据持久层透明抽象工具层AbstractToolLayout工具ToolCode(Java)应用服务ApplicationServices公共服务CommonServices(SAF)内核Kernel(SAF)表现层PresentationServices(SAF)服务接口函数(APIs)10Sakai应用结构图URL:/confluence/x/BGo网络应用Webapps组件Components共享模块Shared商业逻辑实现Logic-impl(businesslogic)工具集Tool(presentation)数据访问实现Dao-impl(dataaccess)公共服务接口Public-api(service)逻辑接口Logic-api(businesslogic)数据访问接口Dao-api(dataaccess)数据模型接口Model11外部External三层架构3-tierarchitecture三层应用架构表现层Presentation商业逻辑层BusinessLogic数据访问层DataAccess数据库Database用户User其它网络应用OtherApps12表现层PresentationLayer用户交互和外观层用户界面(GUI)或者是基于浏览器客户端(clientview)对商业逻辑层businesslogic和数据访问层透明dataaccess3-tierarchitecture表现层Presentation商业逻辑层BusinessLogic数据访问层DataAccess13商业逻辑层LogicLayer包含商业信息\数据处理的逻辑规则也叫中间层对表现层(presentation)和数据访问层透明(dataaccess)3-tierarchitecture表现层Presentation商业逻辑层BusinessLogic数据访问层DataAccess14数据访问层DataAccessLayer对数据持久化进行物理存储对数据库或者文件系统的访问进行管理对表现层(presentation)和商业逻辑层保持透明(businesslogic)3-tierarchitecture表现层Presentation商业逻辑层BusinessLogic数据访问层DataAccess15层切割关键要素层保持自身独立性,并减少对其它层的依赖不相邻的层禁止直接通讯3-tierarchitecture表现层Presentation商业逻辑层BusinessLogic数据访问层DataAccess16Sakai组件管理容器ComponentManager借用Spring容器对bean管理的能力来创建和维护Sakai组件,包括对组件生命周期管理对组件注册组件是对Sakai服务接口函数的具体实现17Sakai组件管理容器ComponentManager组件注册组件管理接口函数接口函数对象18Tomcat容器(Container)基础Tomcat–TheServer服务Services引擎Engine(Catalina)上下文ContextJSPsServletsValvesAJPConnector8009SSLConnector84438080HTTPConnector主机HostsRealmValvesValves19Tomcat(J2EE)类加载机制树形结构类加载机制JavaClassLoaders经典Servlet容器(container)加载层次结构注意Web应用类加载(ClassLoaders)优先搜寻本地目录,此外都是优先搜寻父节点目录20Sakai类加载机制(ClassLoaders)Sakai在经典J2EE类加载层次ClassLoaderlayout中的位置Sakai组件非常类似于网络应用(webapps)中的Servlets都使用URLClassLoader加载类父节点可以共享不同点组件只有声明文件components.xml(Springfile),不包含web文件web.xml组件只负责响应函数调用,对Servlet调用(dispatches)不支持Component1Component2APIsuphereComponentsinhereToolsinhere21Sakai工具(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)已经存在备份,禁止将其包括在网络应用(Web
application)本地空间中22Sakai组件开发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)组件<beanid="org.sakaiproject.user.api.UserDirectoryService“ class="org.sakaiproject.user.impl.DbUserService" init-method=“init”
destroy-method="destroy" singleton="true">
<propertyname="autoDdl“value=“${auto.ddl}”/> <propertyname="cacheMinutes“value=“5”/></bean>26Sakai应用文件结构目录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,othermetafilesURL:/confluence/x/BGo27文件结构目录URL:/confluence/x/BGo28Java包结构图URL:/confluence/x/BGo29SakaiJava消息服务案例分析目标:替换基于数据库事件服务(eventservice)利用ActiveMQ组件包构建消息系统3031
m_eventTrackingService=(EventTrackingService)ComponentManager.get("org.sakaiproject.event.api.EventTrackingService");13232表现层技术
/velocity//products/servlet//products/jsp/JSF/javaee/javaserverfaces/http://www2.caret.cam.ac.uk/rsfwiki//wiki/AJAXAJAX33JavaServerPages易于开发和配置支持热启动,热部署在Sakai中大量采用且运行稳定是成熟稳定的技术,并拥有强大社区支持良好文档支持34JavaServerFaces用一组基于Java的函数接口APIs定义网络状态管理(managingstate),事件代理(handlingevents),以及定义页面导航规则(definingnavigation)可以借助JSP作为页面渲染器也可以独立于JSPs而采用第三方页面渲染器包含一组客户定制页面标签库(taglibraries)包括错误事件代理,输入验证以及国际化支持JSFURL:/javaee/javaserverfaces/35代码概览<%@tagliburi="/jsf/html"prefix="h"%><%@tagliburi="/jsf/core"prefix="f"%><html><head><title>JSFsample</title></head><body><f:view><h1><h:outputTextvalue=“Hello#{}"/></h1><h:dataTableid=“items"value="#{itemsBean.items}"var=“item"><h:column><h:outputTextvalue="#{item.value}"/></h:column></h:dataTable></f:view></body></html>JSF36ReasonableServerFaces基于Spring框架的网络表现层编程平台(webprogrammingframework)利用纯XHTML模板,对界面UI和代码Code隔离轻量级Lightweight和纯面向组件编程易于和AJAX与Javascript集成URL:/velocity/37
Sakai环境
Sakai环境聚合层表现层工具层服务层系统层客户端聚合代理框架服务内部聚合表现层工具层服务层系统层外部聚合系统整合与集成38在Sakai中集成非Java应用(Applications)Sakai网络服务网关Sakai服务网络应用代码网络会话和服务启动Sakai启动控制39
应用案例分析在校学生:99,122人40原始系统OncourseSu/Fall04Spring05Su/Fall05Spring06Su/Fall06遗留系统
历史数据保留2学年新系统OncourseCLPilotPeriod–LimitedRelease05年秋季起课程系统默认由OncourseCL
创建Fall’05byWebformrequestonlyOncourseCL系统部署,迁移Sakai开发发起机构
Indiana,Michigan,Stanford
andMITCL1.5CL2.0CL2.1CL2.x41课程系统OncourseCL架构图主服务器(IUB):备用服务器(IUPUI):42BuildProcessSlideFromRob/LanceSakai部署流程需求分析进度控制源码管理产品开发系统测试质量控制系统发布任务分配系统部署Subversion43Sakai行业应用案例部署情况INSTITUTIONUSERSSITESWEBSERVERSSYSINTEGRATIONIndiana*121,46853,97916PeopleSoftUNISA92,0004Novell,ActiveDirectoryMichigan67,28117,4538UMIAC,KerebosYale14,5694Banner,CASFernandoPessoa5,2502,000UCT4,040482PeopleSoft,NovellNsureEtudesAlliance**2,56079UC,Merced1,2303051Banner,uPortalTotals
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全多方签名-洞察及研究
- 大学教学课件资源
- 软件著作权保护体系-第1篇-洞察及研究
- 金融AI伦理与监管挑战:2025年合规风险防范与行业监管体系构建
- 2022年华蓥市小学五年级语文期中考试试卷
- 2022年公主岭市三年级语文第一单元考试试卷
- 医疗信息安全防护-第6篇-洞察及研究
- 2022年东台市小学三年级语文期末考试试卷
- 2022年彬州市小学六年级语文第一单元考试试卷
- 军考题目及答案
- 酸碱中和加药量自动计算
- 2022年江苏省苏州市吴江区初中教师专业素养比赛模拟数学试卷
- GB/T 29862-2013纺织品纤维含量的标识
- 光合作用在农业生产上的应用课件
- 景区商户管理制度
- AVR自动电压调节器
- 生物制药技术与工程课件
- 乡村道路建设项目可行性研究报告
- 医用氧气使用检查及记录表
- 室外消防栓点检记录表
- 中职《机械基础》V带传动电子教案
评论
0/150
提交评论