Kurogo:让移动门户更灵活
2013-01-31李若淼杨旭樊春
文 /李若淼 杨旭 樊春
(作者单位为北京大学计算中心)
响应式设计
移动终端的普及极大地加速了信息的传播,无论在何时何地,人们都可以享受到高速的网络服务。通过近些年的网络建设,无线热点已经覆盖了北京大学校内的大部分区域,这在为广大师生员工提供了更便利的网络环境的同时,也对学校的信息化服务提出了新的要求。科技的快速发展带来了种类繁多的移动设备,从最早的功能手机到现在已席卷全球的智能手机,从Android平台到iOS平台,从3寸屏到9寸屏,众多的移动设备给开发人员带来的最大的难题就是如何让每台设备都有良好的用户体验,可以考虑以下三种方式解决这个问题:
第一种途径是维持现状。用户直接通过移动设备上的浏览器访问学校网页。显然用户在访问那些为高分辨率浏览器设计的网页在移动设备相对较小的屏幕时无法得到良好的用户体验,这也将直接导致用户不愿意再次使用移动设备获取信息。
第二种途径是为学校各网站设计低分辨率的网页。用户通过移动设备的浏览器访问的是优化后的网页,能够获得较好的用户体验。但由于移动设备种类繁多,屏幕尺寸不一,很难保证所有移动终端都能够展示出优质的界面。
第三种途径是通过响应式设计展示网页。移动客户端在访问网站时,会向服务器发送自己的设备信息,服务器通过对设备信息的判断和分类,根据不同的系统平台、屏幕尺寸等信息,通过流式系统布局、可缩放的图片等方法,向客户端展示优化后的网页。
在这三种途径中,响应式设计无疑是移动网页技术发展的趋势,这种方式让开发人员在面对分辨率不同、尺寸各异、平台不一的移动设备时依然能够为用户提供较好的使用体验。作为高校移动门户,面对广大师生数量庞大的移动设备,更有必要采用响应式设计,为老师同学提供更舒适信息服务。件和演出活动。
5.学生和教职工服务
针对不同用户,提供不同的服务,满足不同的需求是移动门户的特色之一。移动门户将所有用户分为三类:未登录用户、登录的学生用户和登录的教职工用户。用户通过统一身份认证系统登录后可以根据自己的角色查询不同的信息。学生用户登录之后可以查询自己的考试成绩、本学期的课程内容以及奖学金等财务收入情况;教职工用户登录后可以查询自己的工资和科研经费等项目。
6.毕业离校和新生入学
根据学校的特点,移动门户在7月初和8月底分别针对毕业生离校和新生入学提供了相应的服务。7月,毕业的同学可以通过移动门户查询自己的毕业离校手续办理情况,不需要办理或者已经办理完成的手续就不再需要去柜台办理,有效减少了同学们办理离校手续的时间。在8月底新生入学之际,移动门户针对新同学推出了新生地图、入学须知和报到进程三个模块。其中新生地图详细标注了新生在开学初期需要办理事务的地方,入学须知介绍了新生入学的流程和开学报到须知,报到进程记录了新生报到手续的办理情况。帮助初来乍到的新同学更快地融入新的校园生活。
7.概况和常用电话
移动门户在北大概况模块中介绍了北京大学的一些基本信息,为用户了解北大提供一个便捷的窗口。同时,移动门户提供了校内的一些紧急电话,用户可以直接通过移动门户拨打电话寻求帮助。
8.空闲教室查询
选择自习教室长期以来是困扰学生们的一个问题,为此,移动门户为用户提供了校本部教学楼的使用情况。用户可以通过空闲教室模块查询教学楼的教室占用情况,合理选择自习教室。
基于Kurogo框架的移动门户
通过大量调研,我们决定采用Kurogo框架作为底层开发面向移动设备的北京大学校内信息门户。Kurogo框架是一个开源项目,源于2008年的MIT校园移动门户项目。经过多年的开发,Kurogo框架已经帮助哈佛等多所大学建立了移动门户。
Kurogo框架提供了设备侦测功能,使用Platform和pagetype两个属性对所有设备分类。Platform包括ANDROID、BBPLUS、BLACKBERRY、 COMPUTER、FEATUREPHONE、IPHONE、 IPAD、P A L M O S、S P I D E R、S Y M B I A N、WEBOS、WINMO 和 WINPHONE7、,pagetype包括了basic, compliant和tablet三个值。服务器在收到请求后,会根据user agent字段内容来判断当前请求来源于哪种设备。如果用户需要,还可以自定义判断规则,实现更有针对性的分类。例如一个运行Android系统的平板电脑,它的两个属性值就可能是platform=ANDROID,pagetype=tablet。在此基础上,Kurogo实现了响应式的页面设计。根据用户终端的不同,服务器可以按照一定规则选择返回给客户端显示的内容,开发人员可以针对不同的设备开发更加友好界面内容。北京大学校内信息门户在此基础上设计了针对不同设备的页面,使用户在平板电脑、智能手机甚至功能机上都能方便地获取信息。
Kurogo框架提供了较成熟的数据获取和数据解析功能,所有的数据获取对象都继承自DataRetrieve类,所有的数据解析对象都继承自DataParser类。Kurogo提供了从URL获取数据、从Web Service获取数据和从数据库获取数据三种方法,同时用户可以根据自己的需求通过继承DataRetriver类来定义自己获取数据的方法。Kurogo同时提供了针对各种格式的数据解析对象,有解析ini格式数据的INIFileParser;有将RSS数据转换为对象的RSSDataParser;有解析json数据的JSONDataParser,开发人员可以通过继承JSONDataParser将数据转换为系统需要的对象;同样,解析xml数据的XMLDataParser同样需要开发人员通过继承来实现对具体内容的操作。借助完整的数据获取和解析功能,北京大学校内信息门户的数据均来源于其他业务系统,有效地利用了资源,避免了相似功能的二次开发,同时减少了系统的维护成本,为系统的长期稳定运行打下了基础。
Kurogo框架提供了用户认证系统和多种访问控制方式。认证系统的用户有组和用户名两个属性,系统可以根据用户是否登录、用户所在的组以及每个特定的用户来实现功能模块的访问控制。在开启了认证功能之后,Kurogo框架为开发人员提供了多种可选的身份认证方式。有最简单的密码认证——将用户名、组名和密码等数据存储在系统某个文件中,通过核对文件中的用户名和密码完成认证;有数据库认证——通过查询数据库中的用户名、组名等数据验证用户身份;也支持LDAP、CAS等方式的身份验证。此外Kurogo框架还提供了google账户和google app账户的认证接口。北京大学校内信息门户以此为基础,开发了基于北京大学统一认证服务的身份认证系统,并根据用户角色提供不同的服务。开发了仅对于学生用户可见的成绩查询、课表查询功能,仅对教师用户可见的科研经费查询功能,以及对登录用户可见的个人收入查询功能等。
在Kurogo框架中,各项功能由各个模块完成。每个功能模块的构成遵循统一标准,有一个控制逻辑的对象,一套独立的配置文件,一系列采用smarty模板的html页面以及其他的图片、文件等资源。服务器接收到的每个请求都根据一定原则交给不同的模块处理,或返回指定位置的资源。
Kurogo框架为开发者提供了强大的扩展功能。Kurogo框架提供了新闻、人员查询、视频、日历、地图、照片、体育活动、社交网络、联系电话、登录等基本功能模块,如果有新的功能需求,用户可以按照模块的标准编写新的模块。标准的控制逻辑对象提供了配置文件读取、界面内容传递、身份验证、访问控制等功能,开发人员只需要按照业务逻辑处理数据,传递给页面显示即可。Kurogo框架提供了一系列标准的页面组件,开发人员可以根据新的业务需求设计自己的页面组件,也可以选择满足要求的组件放置在页面中。北京大学校内信息门户对新闻、日历、地图、人员查询等模块进行了修改,并增加了成绩查询、北大概况、空闲教室等模块,建成了有十多项主要功能的移动信息门户。
未来展望
北京大学校内信息门户的推出为广大师生员工提供了更便捷的信息获取渠道,获得了一致好评,为北京大学移动信息服务建立了良好的基础,也为未来推出Android平台和iOS平台的原生应用建立了良好的信息接口。在未来,北京大学校内信息门户还需要根据师生的需求,调整和开发新的功能,为用户提供更好的信息服务。