APP下载

中国古谱数据库管理平台设计与实现

2017-02-23孙宁赵维平王宇飞陆奇峰王凌

现代计算机 2017年1期
关键词:曲谱古籍检索

孙宁,赵维平,王宇飞,陆奇峰,王凌

(1.上海音乐学院,上海 200031;2.西安交通大学,西安 710049;3.上海计算机软件技术开发中心,上海 201112)

中国古谱数据库管理平台设计与实现

孙宁1,赵维平1,王宇飞2,陆奇峰3,王凌3

(1.上海音乐学院,上海 200031;2.西安交通大学,西安 710049;3.上海计算机软件技术开发中心,上海 201112)

采用软件工程的方式方法设计并实现中国古谱数据库管理平台。依据需求分析完成对平台架构以及功能模块的设计,采用Laravel框架进行整个项目开发、MySQL实现数据库管理、VueJS实现页面开发。该平台的设计与实现旨在为上海音乐学院提供古籍曲谱管理服务,对同类系统的研究与应用具有参考价值。

软件工程;古谱数据库;Laravel框架;MySQL;VueJS

0 引言

随着信息技术的发展与进步,书籍作为重要的公共信息资源之一,其管理方式已经发生了巨大的改变,迫切需要通过现代网络信息技术建立完善的书籍管理系统[1]。戎玫、张广泉等人通过UML语言实现图书管理系统体系结构的整体建模,使用Visual Basic开发整个系统[2];邵永初利用ASP.NET、C#、SQL Server 2005等技术设计并实现古籍管理系统,提高了古籍业务的工作效率和管理水平,为古籍信息化管理建设提供了借鉴[3];赵博、仝芳洁等人利用TPI对汉唐时期《黄帝内经》进行收集和整理,建立《内经》古籍数据库,为医学古籍管理系统的设计提供了参考[4]。

上海音乐学院收藏有丰富的古籍曲谱资料,作为学校最重要的公共信息资源之一,如何将这些古谱资料合理共享给教师和学生,使其在专业教学和学术科研中发挥应有的作用已经成为一个重要问题[5-6]。传统的管理方法主要是由学校委派工作人员负责统计古谱资料的借出和归还、古谱资料的分类、新古谱资料的记录等工作,工作量庞大且容易出现错误。针对这些问题,迫切需要设计一种古谱数据库管理平台。

本文为上海音乐学院设计了一个基于B/S架构的古谱数据库管理平台,可以方便学生和教师进行古谱资料查询、下载,只需要用户注册并获相应权限;方便管理员实现用户管理,对古谱资源进行分类管理,并为不同用户赋予相应的阅读、下载等权限。

1 需求分析

1.1 功能需求分析

中国古谱数据库管理平台是依据上海音乐学院的需要而建立的辅助化信息管理系统。该系统以古谱资料的采集管理、查询和展示为核心,旨在提高管理效率和查询效率。该平台包括两大部分:采集管理平台和展现及应用平台,具体功能需求如下:

(1)采集管理平台

①古籍资料上传:通过对古籍曲谱进行扫描得到相应的图片资料,提供单个资料上传和资料批量上传功能。每本古籍约100张图片以内,每个图片分为高清和普清,高清每张为10-20M大小,每本古籍高清占1G左右容量。普清为720×480分辨率。

②视频资料上传:采集古籍曲谱的相关视频信息并上传,保存到数据库。视频资料包括AVI、ASF、RMVB、MPEG等常用格式。

③资料属性录入:资料包括视频资料和古籍的图片资料。每个视频拥有如:名称、介绍、发布时间等多个属性。把视频的多个属性和视频本身关联,为检索提供依据;每本古籍拥有如古籍名称、作者、年代、简介、类别等多个属性。通过建设古籍的多个属性。把古籍图片和古籍相关联,为检索提供依据。另外,每本古籍可能包括了多个曲子,每个曲子包括1到多页。每个曲子拥有如曲子名称、曲子作者、类别等多个属性。通过内网的管理界面可以实现:录入古籍的多个属性、录入古籍中曲子的多个属性、录入视频的多个属性。

④资料分类管理:根据古籍曲谱的属性对其进行有效分类,分类可以多级,使资料能在语意上能有序地进行管理和查找。

⑤用户管理:主要包括网站用户和内部管理用户。

网站用户:VIP用户(提供下载普清资源功能、预览全本);专家用户(预览全本);普通用户(预览部分资料);网站匿名用户(可以查看资源,但是没法预览和下载)。

内部管理用户:资源上传用户(资源上传、填写资源属性);资源管理用户(资源删除和修改、属性修改和确认);资源发布用户(资源的开发情况设定,确定资源级别针对某个角色开放,针对某个人);系统用户(系统权限、角色、后台管理等功能)。

(2)展现及应用平台

①用户注册和登录:主要包括用户注册填写个人资料,提交注册信息后内部管理用户审核及开通权限。内部管理用户由系统用户设置及管理,用户登录后才能使用开通的权限。

②资源检索:包括简单检索和分类检索。简单检索是依据视频资料名称的模糊检索或依据古籍名称的模糊检索;分类检索是根据古籍和视频类型实现检索。

③资源列表展示:依据用户的检索条件,将检索到的资源信息以列表的形式展示在网页上,用户可以选择查看、下载感兴趣的资源。

④资源分类展示:依据用户所选择的古籍曲谱类型标签,网页中将分页显示属于此类型的所有古籍曲谱信息,用户可以选择查看感兴趣的古籍曲谱。

⑤最新资源:主要是用于展示最近一段时间内新加入的古籍曲谱信息,包含古籍名称、作者、年代、简介等。

⑥资源推荐:根据用户的浏览记录、下载记录等信息,通过协同过滤推荐算法挖掘用户潜在的古籍浏览习惯、偏好,向用户推荐其可能喜欢的古籍曲谱。

根据功能分析,该平台的总体功能架构如图1所示:

图1 平台总体功能架构图

1.2 关键技术分析

系统采用Laravel框架,Laravel作为一套简洁、优雅的PHP Web开发框架(PHP Web Framework),其语法富有表现力,拥有丰富的扩展包,便于开发人员进行系统开发。

Laravel采用MVC的设计模式,强制分离了业务逻辑与用户界面,其生命周期主要分为:

(1)获取到HTTP请求实例,将其routed到一个合适的Laravel控制器;

(2)控制器通过特定action实现与数据模型交互,并依照商业逻辑处理从数据库中获取到的数据,然后调用结果视图;

(3)View本身将数据做格式化,在浏览器中渲染视图,最终提供HTTP的response到浏览器。

系统数据库采用MySQL,用户可以在内网的任意一台计算机上查询所需要的古籍曲谱信息。MySQL使用方便、安全稳定,具有体积小、开放源代码等特点,与PHP、Apache一起可以构建出良好的开发环境,采用单点模式适用于小规模应用,采用集群模式可以为为大规模应用提供可靠安全的数据存储功能。同时,MySQL可通过索引实现数据高速检索操作,并具有强大的SQL扩展功能。

2 平台设计

2.1 总体架构设计

基于Laravel框架开发的古谱数据库管理平台分别包括浏览器应用程序和服务器应用程序两部分。整个平台采用Browser/Server结构,其总体架构如图2所示。

图2 平台总体架构

用户通过浏览器向内网的应用服务器发送HTTP请求,通过权限验证便可以查阅存储在数据中心(库)的资源;内部管理员在后台实现系统、用户和资源的管理,完成数据文件上传、更新等操作。

2.2 逻辑结构设计

整个平台基于Laravel,采用MVC的设计模式(Model-View-Controller,即“模型-视图-控制器”)[7]。Model(模型)表示应用程序核心;View(视图)对数据(数据库记录)进行显示,即能直观看到的Web界面;Controller(控制器)向系统发出指令的工具,处理输入(写入数据库记录)。其平台逻辑结构设计如图3所示:

图3 逻辑结构图

在与Laravel进行交互时,浏览器向Web服务器发送一条请求(Request),Web服务器会将接收到的请求发送给Laravel Routing引擎。Laravel Routing接收到请求后,选择合适的控制器(Controller)类方法进行重定向。

接着由控制器类接管,控制器在特定情况下会立即呈现出一个视图(View),即被转换成为返回给浏览器的HTML模板,并与模型进行交互,这里模型负责与数据库(Database)进行通信。控制器将在模型调用完成后呈现最终视图,并向浏览器返回整个页面。

2.3 数据库设计

数据库设计是整个古谱数据库管理平台的核心,其设计的是否合理将会直接影响整个数据库应用系统的软件架构及数据处理的效率[8]。整个平台采用MySQL作为后台数据库,通过PDO实现对数据的访问及增添、修改、删除等操作。根据平台业务需求,创建了古谱数据库,主要包含11张数据表,存储了了各子功能模块的数据信息。这里列举最重要3张表的E-R关系,如图4所示:

图4 数据库表的E-R关系

3 平台实现

3.1 工作流程

在整个平台中主要包括两个部分:采集管理平台和展现及应用平台,这两部分相对独立。在采集管理平台中,管理员可以对资源进行上传、删除、向指定权限的用户发布,实现资源检索、统计以及用户管理等;在展现及应用平台中,用户依据自身权限对相应资源进行访问。平台整体工作流程见图5。

图5 平台工作流程

3.2 主要技术实现

(1)基于session的登录认证

用户可以通过request对象中的session对象来实现基于session的登录认证。

在用户登录服务器之后,服务器会保存用户登录的信息session,被访问过的其他服务器会通过一个唯一标识来共享这个session。为了验证同一用户的不同会话,需要先对用户登录进行验证,验证成功之后,将会下发一个sessionid,以后的每次请求都会携带这个sessionid,通过这个sessionid来判断是否已经存在同样的session,若已存在,则代表该用户已经登录。

(2)权限认证

用户可以访问而且只能访问自己被授权的资源,即查看当前登录用户的角色是否包含该功能的权限。如果有,则表示有权访问,否则表示无权访问。

①角色:用户可定义角色并给其赋予权限;

②用户:系统用户的角色是由用户赋予。

③权限:任意一个角色都可拥有多个权限,并且一个权限可以分配给不同角色。

(3)Eloquent ORM

Laravel自带的Eloquent ORM提供了一个美观、简单的与数据库打交道的ActiveRecord实现,每张数据表都对应一个与该表进行交互的“模型”,模型允许对表中数据进行访问,如:查询、添加、修改等。

数据表经常要与其他表做关联,比如一则新闻,可能会包含多条评论,或者某条购买记录会被关联到对其付款的用户。通过Eloquent可以更简单地组织并处理这些表之间的关联关系,并且Eloquent支持如:一对多、多对多、多态关联等不同类型的关联关系。

(4)Vue.js

Vue.js作为一个Web界面库,用于构建数据驱动,旨在利用尽可能简单的API去实现数据的响应式绑定和组件的组合使用。其工作原理图如图6:

图6 Vue.js工作原理图

Vue.js的核心是一个响应的数据绑定系统,绑定被创建后,DOM与数据将会保持同步。每当修改了数据,DOM便会相应地更新,并且数据修改与DOM更新实现分离。这使得代码撰写变得更简单,更容易理解与维护。

(5)VueX

VueX作为一个状态管理架构,统一管理、维护各个Vue组件的可变化状态,这里的状态分为组件内部状态和多组件共用状态。客户端所有组件都是在action中完成对流入数据的处理(如异步请求等),然后通过action触发mutation修改state,后由state经过getter分发给各组件。

(6)Vue-router

不同于传统页面使用超链接实现页面跳转、切换的方式,Vue的单页面应用是通过路由设定访问路径,并将其与组件进行映射以实现路径切换,即组件切换。Vue-router作为Vue.js的路由插件,两者深度集成用以实现这种应用。

4 应用效果展示

在服务端提供了数据及界面元素后,用户通过浏览器登录后可直接访问主平台页面。图7为展现及应用平台的展示页面;图8是用户的资源检索页面;图9是采集管理平台主页面;管理员可以进行资源上传、删除、发布以及用户管理等;图10是用户统计和资源分布展示图。

5 结语

古谱数据库管理平台建设对上海音乐学院的教师和学生具有重要意义,将有效提高上海音乐学院的专业教学质量和学术科研能力。整个平台结合了目前最流行的Web应用开发技术PHP和MySQL技术,使平台运行稳定、快捷、高效、可靠性安全性高;为教师和学生的检索、阅读提供了便利,并提高了古籍曲谱管理人员的工作效率,减轻工作负担;同时,对同类院校乃至其他大中院校面向不同领域的古籍管理系统建设提供了借鉴,具有重要参考价值。

图7 展现及应用平台主页面

图8 资源检索页面

图9 采集管理平台主页面

图10 用户统计和资源分布展示

[1]王慧兰.基于面向对象技术的图书管理系统研究[J].中外企业家,2016(14).

[2]戎玫,张广泉,刘艳.基于软件体系结构和UML的图书管理系统设计与实现[J].计算机科学,2005,32(6):224-227.

[3]邵永初.高校图书馆古籍管理系统的分析与设计[D].南昌大学,2014.

[4]赵博,仝芳洁,刘森林,等.汉唐时期《黄帝内经》古籍数据库建设研究[J].贵阳中医学院学报,2014,36(6).

[5]熊瑛.基于ASP.NET的高校院系图书管理系统设计与实现[J].科技资讯,2015,13(26):177-178.

[6]朱铁樱.基于ASP.NET的图书管理系统[J].电脑知识与技术,2016,12(13).

[7]魏立明,徐成波,林君.智能照明控制系统设计[J].吉林建筑工程学院学报,2014,31(2):74-76.

[8]代元平,郑君芳.医学实验文档管理系统的数据库设计与实现[J].中国医疗设备,2016,31(4):93-96.

Design and Implementation of Chinese Ancient Spectrum Database Management Platform

SUN Ning1,ZHAO Wei-ping1,WANG Yu-fei2,LU Qi-feng3,WANG Ling3

(1.Shanghai Conservatory of Music,Shanghai 200031;2.Xi`an Jiaotong University,Shaanxi Province,Xi'an 710049;3.Shanghai Development Center of Computer Software Technology,Shanghai 201112)

Uses software engineering method to design and implement the management platform of Chinese ancient spectrum database.According to the requirement analysis to complete the design of platform architecture and functional module,uses the Laravel framework to develop the entire project,MySQL to achieve database management and VueJS to implement page development.The design and implementation of the platform is designed to provide the ancient music management service for Shanghai Conservatory of Music and has a reference value for the research and application of similar systems.

Software Engineering;Ancient Spectrum Database;Laravel Framework;MySQL;VueJS

1007-1423(2017)01-0064-06

10.3969/j.issn.1007-1423.2017.01.016

孙宁(1981-),女,山东青州人,助教,在读博士,研究方向为中国古代音乐史、东方音乐

赵维平(1957-),男,四川人,研究生,教授,研究方向为中国古代音乐史、东方音乐

王宇飞(1992-),男,江苏无锡人,研究生,研究方向为移动开发、大数据、推荐系统

陆奇峰(1988-),男,上海人,本科,工程师,研究方向为Web开发、软件工程、大数据

王凌(1973-),男,浙江诸暨人,硕士,工程师,研究方向为数据库、需求分析、软件工程

2016-11-15

2017-01-01

上海音乐学院2016中国音乐史高峰团队项目

猜你喜欢

曲谱古籍检索
曲谱
中医古籍“疒”部俗字考辨举隅
赵倩作品赏析
西藏大批珍贵藏文古籍实现“云阅读”
瑞典专利数据库的检索技巧
在IEEE 数据库中检索的一点经验
夏日之恋
一种基于Python的音乐检索方法的研究
我是古籍修复师
《最美职工 职工最美》 曲谱