高校企业实践教学管理系统研究

高校企业实践教学管理系统研究

摘要:针对传统高校企业实践教学管理系统存在的数据不安全、可信性不够高的问题,提出基于区块链技术实现高校企业实践教学管理系统的方案。该方案应用ASP.NETMVC、SQLServer、Geth以太坊客户端和Nethereum等技术和工具将中心化与去中心化结合起来,有效地实现高校企业实践教学活动可信、高效地运行。

关键词:区块链;企业实践教学;去中心化;可信性;管理系统

0引言

当前,我国越来越多的高校正在实施校企协同育人“3+1”人才培养模式改革,为确保累计一年学生在企业的实践教学活动能够高效规范地运行,保障企业实践教学的质量,越来越多的高校开发、部署了企业实践教学管理系统,通过企业实践教学管理系统实现毕业设计(论文)指导、教学巡查及企业现场调研等教学活动的落实。然而,由于传统的企业实践教学管理系统具有中心化的特点,存在数据不安全和容易滋生系统开发人员或管理人员未经授权就删除或篡改数据的现象;其次,由于系统中的数据影响到对学生和教师的考核,部分用户可能为了自己的利益而抵赖自己的错误行为,例如,可能有的教师给错了一个成绩,但却坚持谎称自己提交的是另一个成绩,之所以出现信息不对,是因为系统出了问题或其他管理人员可能的误操作甚至是有意修改,而这无疑会让系统陷入被质疑的境地,从而给系统的管理带来麻烦;最后,传统的企业实践教学管理信息系统极容易导致集体作假的情况,个别部门可能出于应付上级管理部门评估检查的需要而通过行政的手段要求教师、学生甚至系统开发人员或管理人员批量修改数据,这将给上级管理部门准确了解下级部门的教学运行情况带来极大的障碍。所有这些都会在一定程度上给系统的可信性造成一定的负面影响,极大地增加系统的信用成本和管理成本。区块链技术是一种基于现代密码学、分布式一致性协议、点对点网络通信技术和智能合约编程语言等形成的数据交换、处理和存储的技术组合,是比特币、以太坊等诸多密码学货币背后的支撑性技术,可以在互不信任的环境下实现去信任中介的可信交易,具有去中心化、去信任化、防伪造和不可篡改的特点,是已经被实践证明了的可作为价值转移的技术手段,能有效解决上述传统高校企业实践教学管理系统中存在的问题。本文以高校企业实践教学管理的业务需求为立足点,提出一种基于区块链技术的高校企业实践教学管理系统的设计与实现方案。

1设计

1.1功能设计

根据校企协同育人“3+1”人才培养模式,高校企业实践教学管理信息系统需要为用户提供实习安排、教学巡查和毕业设计(论文)等业务服务,为此,我们将高校企业实践教学管理信息系统划分为四个子系统,具体的功能结构如图1所示。其中,实习安排子系统主要实现了实习基地管理、实习岗位管理、学生岗位安排、学生导师安排及现场调研等功能,它明确了学生与实习岗位、学生与指导教师之间的关系,同时规定了学生实习期间需要完成的任务,具体包括在系统中提交企业现场调研报告、生产实习报告、实习周记及实习鉴定表等材料。教学巡查子系统主要实现了巡查申请、巡查审核及巡查评价等功能,通过该子系统,教师可以申请到企业现场巡查某些学生,而学校可以审核教师的教学巡查申请,当教学巡查完成时,学生对教师的教学巡查进行评价打分。毕业设计(论文)子系统主要实现了选题、任务书、开题报告、中期检查、毕业设计(论文)及毕业答辩等功能,它明确了学生、指导教师、评阅教师和答辩组长协同完成毕业设计(论文)的过程及其需要在系统中提交的各种材料,具体包括毕业设计(论文)题目、任务书、开题报告、中期检查表、毕业设计(论文)等。用户子系统主要实现了用户管理、角色管理、权限管理、用户角色管理和角色权限管理等功能。通过该子系统,高校企业实践教学管理信息系统可以确保用户只能访问与其身份相符的功能与数据,它是系统信息安全的保障。

1.2基于区块链的可信化设计

传统的高校企业实践教学管理信息系统普遍采用B/S结构设计实现,即用户通过浏览器访问服务器,服务器根据用户的请求返回数据或将数据存储至数据库中。但这样的设计存在开发人员和系统管理人员权限过大的缺点,极容易滋生造假、抵赖和腐败的现象。为保障系统的可信性与权威性,在不影响高校企业实践教学运行效率与质量的情况下,基于区块链技术的高校企业实践教学管理系统在传统B/S结构的基础上增加了区块链和区块链访问对象。在基于区块链技术的高校企业实践教学管理系统中,当用户通过系统实现教学业务数据的提交时,系统在将业务数据存储到传统数据库的同时,将业务的核心数据以交易的方式发送至区块链上,并将交易的哈希返回给用户。由于系统同时与中心化的数据库和去中心化的区块链进行交互,而且用户可以通过第三方区块链客户端直接访问区块链数据,因此开发人员与系统管理人员无法篡改系统的数据。如果开发人员或系统管理人员通过修改系统程序或篡改系统中心数据库的数据实现作假或抵赖已发生过的行为,那么用户可以凭借发生过的交易哈希通过第三方区块链客户端访问区块链数据实现对数据真伪的验证。

2实现基于区块链技术的高校企业实践教学管理信息系统主要使用

ASP.NETMVC、SQLServer、Nethereum和Geth(Go-ethereum)等技术和工具设计实现。其中ASP.NETMVC用于实现系统的业务逻辑、数据访问和用户接口。系统的数据主要存储于SQLServer数据库,但核心业务数据则同时存储于以太坊联盟区块链。以太坊是一个具有智能合约功能的区块链平台,具有更快的“出块”速度,能够很好地满足高校企业实践教学管理信息系统的需要。系统使用当前最为成熟且应用广泛的以太坊客户端Geth部署以太坊联盟链,并通过专为以太坊设计的.NET集成库Nethereum实现与以太坊联盟链进行交互。

2.1以太坊区块链访问对象设计

为实现和以太坊区块链的交互,系统设计实现了以太坊区块链访问对象。以太坊区块链访问对象主要包括交易发送对象、交易查询对象和账户分配对象。交易发送对象主要封装了交易发送方法Send⁃Transaction,该方法接收用户以JSON格式提交的数据,并将其编码为一个字节序列,然后在此基础上,进一步将字节序列转换为十六进制格式,再将其发送给指定的高校以太坊联盟链账户。如果交易发送成功,交易发送方法将返回此次交易的哈希,否则返回空字符串。由于用户可通过第三方以太坊客户端向特定以太坊账户发送交易,且以太坊上的数据是公开透明的,为了防止用户通过第三方以太坊客户端直接向高校以太坊联盟链账户发送交易,从而达到伪造数据的目的,系统在调用Nethereum.NET集成库中的web3.Transac⁃tionManager.SendTransactionAsync方法发送交易时,将使用SHA512算法计算用户提交的原始数据的哈希,并使用系统的密钥和DES加密算法对求得的哈希进行加密,然后与原始数据一起发送给以太坊高校盟链账户。交易查询对象主要封装了交易查询方法GetTrans⁃actionByHash和交易验证方法CheckTransaction。交易查询方法接收用户传递的交易哈希,并将该交易哈希传送给Nethereum.NET集成库中的web3.Eth.Transac⁃tions.GetTransactionByHash.SendRequestAsync方法以获取与该交易哈希相匹配的以太坊交易对象,并返回该以太坊交易对象。交易验证方法接收一个以太坊交易对象作为参数,通过获取该参数的Input属性获取用户提交的原始数据InitialData和经系统加密的哈希EncryptHash,然后使用SHA512算法计算用户提交的原始数据InitialData的哈希,并将得到的哈希与使用系统密钥和DES解密算法解密EncryptHash得到的哈希进行比对,如果相等则返回true,否则返回false。账户分配对象封装了为用户生成以太坊账户的方法CreateEthAccountForUser和查询以太坊账户余额的方法GetAccountBalanceEther。CreateEthAccountForUs⁃er方法接收一个系统用户名作为参数,通过调用Neth⁃ereum.NET集成库中的Signer.EthECKey.GenerateKey()方法生成私钥,然后根据该私钥构造一个Nethereum.Web3.Accounts.Account类型对象。在获得以太坊账户对象之后,系统进一步通过交易发送对象为该以太坊账户转账一定额度的以太币,以确保该以太坊账户拥有足够的以太币能将数据存储至以太坊区块链上,最后系统将用户的用户名、以太坊账户的地址和私钥保存到数据库中。GetAccountBalanceEther方法接收一个以太坊账户地址作为参数,并通过调用Nethereum.Net集成库中的web3.Eth.GetBalance.SendRequestAsync方法获取指定账户的余额。

2.2数据存储设计

在确保系统可信的同时,为兼顾系统的运行性能,系统并没有将高校企业实践教学的所有业务数据都存储到以太坊区块链上,而是只将指导教师、评阅教师、答辩组长和系主任等用户对学生提交的作业、毕业设计(论文)或调研报告等的评价或评分等核心数据保存到以太坊区块链上。与此同时,在系统的数据库中,系统在以太坊交易记录表中保存了评价主体对评价客体评价时产生的以太坊交易哈希。通过以太坊交易记录表,用户可以凭借评价客体类型和评价客体主键快速地查询指定作业相关的以太坊交易哈希,然后通过调用以太坊区块链访问对象中的交易查询方法获取该交易哈希对应的以太坊交易对象,而不必以遍历以太坊区链上每个区块的交易,然后匹配每一笔交易中的目标数据的方式实现交易查询,这极大地提升了系统的运行性能。在用户体验方面,为简化用户提交数据的流程,系统为每个用户分配了以太坊账户,并将其保存在数据库中,当系统需要将数据存储到以太坊联盟链上时,系统根据用户登录系统的用户名查询数据库中相应用户的以太坊账户和私钥,并以该以太坊账户和私钥给系统指定的高校以太坊联盟链账户发送一笔交易。

2.3验证机制设计

为确保用户可以便捷地对系统中的核心数据进行验证,当用户将数据以交易的方式发送至高校以太坊联盟链账户时,系统将发送交易时返回的交易哈希以邮件的方式同时发送至相关用户的电子邮箱,并告知用户如何使用以太坊客户端Geth查询交易。由于以太坊客户端Geth为第三方开发的软件,而以太坊区块链具有去中心化、可溯源、不可篡改的特点,因此能有效防止程序员、数据库管理员或系统管理员对系统数据或程序的篡改,从而可以实现对数据和信息的有效验证。

3结语

基于区块链技术的高校企业实践教学管理信息系统通过综合应用ASP.NETMVC、SQLServer、Geth以太坊客户端和Nethereum等技术和工具将中心化与去中心化结合起来,以去中心化的方式实现数据的分布式存储与可信性验证,以中心化的方式兼顾系统的运行性能,有效地实现了高校企业实践教学活动可信、高效地运行。

参考文献:

[1]陈伟利,郑子彬.区块链数据分析:现状、趋势与挑战.计算机研究与发展,2018,55(9).

[2]闫莺,郑凯,郭众鑫.以太坊技术详解与实战.机械工业出版社,2018,6.

[3]纳拉扬•普鲁斯蒂.区块链项目开发指南.机械工业出版社,2017,11.

[4]邹均,张海宁,唐屹,李磊.区块链技术指南.机械工业出版社,2016,11.

[5]肖建宏,陈新竹,张文生.企业实践教学管理系统的设计与实现.福建电脑,2016,08.

作者:肖建宏 单位:广东白云学院