————————收稿日期:2008年8月20日97第18卷现代教育技术Vo1.182008年第11期ModernEducationalTechnologyNo.112008基于WAP的移动个人知识管理系统设计与开发傅健杨雪王珍珍(吉林大学高等教育研究所,吉林长春130012)【摘要】个人知识管理(PKM)和移动学习都是当前教育领域研究热点:个人知识管理利于个人知识的扩充和创新,而移动学习便捷了人们的学习,将Wml和Jsp技术结合,采用MVC-Model2模式设计和开发了手机等移动终端可随时接入的WAP个人知识管理系统,为学习者提供便捷和高效的知识管理方式。【关键词】WAP;移动学习;个人知识管理;Jsp;MVC;Wml【中图分类号】G40-057【文献标识码】A【论文编号】1009-8097(2008)11-0097-05个人知识管理(PersonalKnowledgeManagement),简称PKM,昀早由美国的PaulA.Dorsey教授在1998年提出:“PersonalknowledgeManagementshouldbeviewedasasetaproblem-solvingskillsthathavebothalogicalorconceptualaswellasphysicalorhands-oncomponent.”,译为中文即“个人知识管理应该被看作既有逻辑概念层面又有实际操作层面的一套解决问题的技巧与方法”[1]。尽管个人知识管理目前有多种版本定义,其本质却都在于整合个人的知识资源,提高个人工作学习效率和竞争力。通过实施个人知识管理,个人可以快速有效地存取所获知识,提高效率。随着个人知识管理越来越得到认可和重视,相应的知识管理系统近年来也已经出现,典型的如:针式PKM、magicflu中文信息知识管理平台、MicrosoftOneNote,同时很多基于Web2.0的社会性软件(Blog、Wiki等)也被用做个人知识管理的有效平台,虽然这些都一定程度上促进了个人的知识管理,但用户还是摆脱不了电脑终端或网线的束缚。实际生活中,有时候突然的灵感或体会等重要知识都不能及时记录,即使记录下来,但终因缺乏良好的管理而出现无法找到的尴尬局面,不仅不利于知识掌握,而且做了大量重复的知识存储过程,为解决这些问题,本文将Wml和Jsp技术结合,设计和开发了一个基于手机等移动终端的个人知识管理系统,方便学习者随时随地存储和管理自己的知识,同时也为移动学习研究者开发移动学习站点提供参考。一WAP技术简介WAP(WirelessApplicationProtocol)即无线应用协议,是由一个称为“WAP论坛”的公开组织提出的,其定义来自无线工业界。WAP是移动通信终端与互联网融合的产物,它基于现有的XML和IP等Internet技术,主要为手机等无线移动终端能够访问各种服务和信息(特别是Internet上的服务与信息)提供规范[2]。1998年5月,WAP规范1.0版推出,并于1999年9月发布了1.1版,当前版本为WAP2.0,它通过WML技术使得手机浏览器可以识别浏览WAP网页。目前WAP技术广泛应用于生活服务信息、商业、娱乐、理财等领域,而且近年来随着移动学习(M-leaning)的兴起,开始被应用于移动教育资源和信息站点的开发。二移动个人知识管理系统的分析1系统的设计目的(1)增加个人的知识储量;(2)使个人的知识成为良构性的知识,有利于知识存取和知识系统体系的建立;(3)促进同学、同行知识的共享,有利于通过共享交流转化为个人知识资本,促进知识创新。2系统的设计原则(1)良好的远程接入特性:基于WAP的开发,使得用户可以随时随地通过手机等移动终端接入系统。(2)体现个性化和简易性:每个用户通过自己注册的帐号,应该可以建立不同于别人的知识体系,而且由于手机等移动数字终端屏幕有限且可操作不多,因此系统应简单易用,易于操作。98(3)体现知识管理中的可良构性:知识应具有不同的类别,便于检索浏览。(4)体现积累性与可管理性:知识点内容可能随着学习的进一步有所修改,因此需要具有良好的管理功能。可以对知识进行修改、添加和删除,体现知识积累的重要性;同时将管理功能与浏览功能集于同一界面,便于管理。(5)体现一定的知识共享特点:个人知识管理区别与企业管理,主要目的是提高个人的知识能力,但作为个人知识管理系统,具备一定的共享交流功能,更能扩大个人知识储量。但要注意系统设计在使个人和他人进行交流、共享知识的同时还应考虑对个人不愿共享知识的保密。(6)强大的知识检索功能:强大的检索功能是个人知识管理必须具备而且要求较高的模块,良好的检索应提供多角度的检索方式并能对检索结果按不同要求进行筛选。三移动个人知识管理系统的总体设计1根据以上提出的原则,可将功能模块划分为图1所示:图1移动个人知识管理系统功能模块划分图详细功能介绍:(1)注册登录模块:用户可以通过手机等移动数字终端访问系统进行注册并登录,建立属于自己的知识体系;(2)浏览模块:用户进入系统后可以选择自己建立的知识类别来进入各类别的知识点列表,从而选择可浏览的知识点,查看知识点的内容;同时若该知识点被设置为共享且有其他用户评论,则用户可以查看别人针对该知识点的评论并可以回复,进行一定的交流;(3)知识类别/知识点管理模块:用户可以根据自己的学习情况对知识点和知识分类进行管理和扩充,建立良构的知识体系,在知识点设置上,可以设置是否为共享,保护隐私知识内容的同时便于共享;(4)检索模块:用户可以通过按标题、标签、内容三种方式对知识库进行检索,同时可以按“时间”和“是否包含别人共享知识”等筛选检索结果;(5)共享交流模块:该模块汇聚了所有用户共享出的知识,用户可以浏览并对其进行评论,还可以给发布共享知识的用户留言。2数据库的设计及要点根据以上功能要求,利用PowerDesigner工具可将个人知识管理系统数据库设计如图2所示:图2移动个人知识管理系统数据库图对于知识点表(Knowledge)中的是否共享(isshare)字段和用户信件表(Message)中的阅读状态(readstate)字段应该设置为bit型,以达到逻辑判断的目的;对于内容较长的字段使用text类型,而诸如用户名等字段则用varchar类型,使得满足存储要求的前提减少存储空间。四移动个人知识管理系统的实现根据以上对系统的分析以及设计,可将该系统的主界面设计如图4中的右图所示,包含四个主菜单供选择:进入知识库、检索知识库、共享交流、收发信件。对于该系统的开发,这里以RedHatEnterpriseLinux5为平台,以Tomcat5.5为服务器,采用的技术方案是以Jsp和Wml相结合的方式,按照MVC-Model2来设计:MVC(Model,View,Controller的缩写,分别为模型、视图、控制)是Application开发的一种设计模式,它要求在开发中把业务逻辑、界面显示和数据进行分离以利于组件复用和开发分工,而MVC-Model2具体是指使用Jsp+Servlet+JavaBean技术方案:Model层实现系统的业务逻辑,这里使用DAO模式封装对数据的操作;View层用于与用户的界面交互,采用Jsp、Wml结合实现;Controller层是Model层与View层间的纽带,使用Servlet来完成有效控制,具体如图3所示。下面具体介绍下后台数据库的连接并以MVC-Model2实现系统登录模块为例介绍系统的实现。图3系统开发的环境及MVC-Modle2模式991后台数据库的连接后台数据库是存取用户信息及其各自知识类别、知识点等信息的关键,这里使用可跨平台的MySQL做为数据库,Jsp与数据库的连接可以通过JDBC或ODBC方式,而ODBC依赖微软平台,移植性不强,所以这里采用JDBC方式,在对数据库的操作上通过建立一个ConnectionManager类来提供对数据库的连接,然后通过DAO模式来调用,ConnectionManager类的关键代码如下:publicclassConnectionManager{publicstaticConnectiongetConnection(){//定义取得到数据库PKM连接的方法……Class.forName(com.mysql.jdbc.Driver);ConnectiondbConnection=DriverManager.getConnection(jdbc:mysql://localhost:3306/pkm?user=root&password=fujian);……returndbConnection;}……}2MVC-Model2实现登录模块(界面如图4)实例图4移动PKM的登录模块(1)在视图层(View层):利用Jsp和Wml相结合生成手机可以浏览的页面,结合方式主要有两种:一种是利用Jsp中的out.println()方法动态生成WML,另一种方式是将Jsp代码和Wml代码分离,Jsp负责处理会话,Wml负责显示Jsp处理的结果,这里以第二种方式为例,Login.jsp关键代码如下:……%response.setContentType(text/vnd.wap.wml);%!—上面为头部分和JSP操作部分,以下为WML显示部分--wmlcardtitle=移动PKMp用户:inputname=nametype=text/br/密码:inputname=passwordtype=text/dotype=acceptlabel=登录gohref=LoginServletmethod=post!—调用LoginServlet--postfieldname=namevalue=$name/postfieldname=passwordvalue=$password//go/do……/p/card/wml(2)在控制层(Contorl层):接受视图层Login.jsp传来的用户名和密码,使用Servlet进行控制,LoginServlet关键代码如下:……publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringname=request.getParameter(name);Stringpassword=request.getParameter(password);if(newPKMdao().checkUser(name,password))//调用PKMdao()类的checkUser()方法验证用户{……this.getServletContext().getRequestDispatcher(/main.jsp).forward(request,response);}……(3)在模型层(Model层):使用DAO模式封装对数据的操作,提供操作数据库的checkUser()方法供控制层LoginServlet调用,PKMdao类关键代码如下:……publicbooleancheckUser(Stringname,Stringpassword){//操作数据库、验证用户的checkUser()方法booleanflag=false;Connectioncon=ConnectionManager.getConnection();……PreparedStatementps=con.prepareStatement(select*frompkmuserwherename=?andpassword=?);ps.setString(1,name);ps.setString(2,password);if(ps.executeQuery().next())flag=true;……returnflag;}……通过以上MVC-Model2模