学校管理工作的区块链程序设计
来源:用户上传
作者:
摘 要:区块链技术曾被认为是解决网络集中化问题的方法。虽然关注度在降低,但正如Docker之于Linux容器,AJAX之于动态网页,区块链并非销声匿迹了,而是在酝酿一次突破。本文不是区块链技术的研究实现,而是一种区块链程序的设计方法和这种设计中区块链发展方向的研究。
关键词:学校管理;区块链;程序设计
一、区块链
2009 年诞生的比特币[1],运用区块链来保证生态,开创了区块链 1.0 时代。2013 年出现的以太坊[2],结合智能合约和区块链以应对丰富的应用场景的挑战,标志着区块链2.0时代的到来。
本文以联盟链中的超级账本作为研究对象。区块链网络中的基本单位是节点。在节点上保存账本和智能合约。节点之间的交互用交易来描述。首先,交易发起节点生成交易提案,交由区块链网络背书;其次,将交易信息和背书信息打包成区块,在区块链账本中排序;最后,区块链网络向背书节点验证区块链信息的有效性,更新区块链账本。[3]
二、学校管理
下面讨论在学校现有信息系统和区块链程序的不同。本文研究的过程在教学工作四个步骤上:招生,教学计划,教学行为和结业。这些步骤包含学校主体工作,覆盖学生、教师和学校三个对象,因此具有代表性。下文中的信息系统指现有的信息系统,不再重复指出。
2.1 招生
学校根据政府部门提供的信息录取考生并发送录取通知书。信息系统的作用是辅助录入学籍并管理数据。区块链程序中,学校节点、政府部门节点和学生节点需要在同一个区块链网络中,交互发生在学校和学生之间,区块链账本中包含通知书的相关信息,区块链网络验证学校节点和学生节点的背书情况。
学生接到录取通知单后持证件入学。信息系统中登记学籍数据的入学状态。区块链程序中,学校节点、政府部门节点和考生节点在同一个区块链网络中,交互发生在学校和学生之间,区块链账本中包含学生报道的相关信息,区块链网络验证学校节点和考生节点的背书情况。
2.2 教学计划
学校根据培养方案制定学期教学计划,安排授课教师、班级学生、上课时间和上课地点,形成课表。教师根据课表安排教学进程,进行课堂设计。信息系统按规律制定班级教学计划和课表初稿,辅助排课工作中的交互,管理教学计划和课表数据。
区块链程序中,学校节点、教师节点和学生节点在同一区块链网络中,交互发生在学校、教师和学生之间,区块链账本中包含教学计划和课表信息,区块链网络验证学校节点、教师节点和学生节点的背书情况。
2.3 教学行为
学校按照课表上课。教师按照课堂设计进行过程考核。信息系统的作用是查询课表、调课辅助和过程考核辅助。
学期结束时,教师根据考试结果和过程考核数据给学生打分。信息系统辅助打分工作;根据学生评价、同行评价和督导评价得出教师的教学质量;记录学时数据、成绩学分数据和教学质量数据。
区块链程序中,学校节点、教师节点和学生节点在同一区块链网络中,交互发生在学校、教师和学生之间,区块链账本中包含调课数据、过程考核数据、成绩学分数据,评价数据、教学质量数据和课时数据,区块链网络验证学校节点、教师节点和学生节点的背书情况。
2.4 结业
所有学期结束后,学校根据学生的学习情况给学生结业。信息系统提供课程成绩学分的查询功能、辅助结业操作和管理结业信息数据。区块链程序中,学校节点、政府部门节点和学生节点在同一个区块链网络中,交互发生在学校和学生之间,区块链账本中包含毕业证书的相关信息,区块链网络验证学校节点和学生节点的背书情况。
2.5 区块链的问题
1、生命周期。区块链程序需要开始时间和结束时间限制,否则账本会无限增长。像信息系统那样设计区块链程序的生命周期,就相当于要备份数据库给所有人。这造成了不必要的存储压力,比如:学生入学时会因为下载和验证区块链花费过长的时间。从另一角度说,这些无用的冗余数据比例过高,很难说是成功的设计。区块链程序的目标应该是可以全民验证,而并非必须。
区块链程序的生命周期的规划类似信息系统数据库的切分工作。不同的是,数据库切分工作是在信息系统的基础上,基于产品性能需求对数据库进行切分;而区块链程序需要在设计时完成此项工作。数据库切分之后,程序還是可以访问所有数据;不同区块链网络之间的数据是隔离且保密的。
可以按学期按部门规划生命周期,这符合学校工作的周期规律。
2、功能。信息系统的功能设计是数据驱动的,根据需求先设计数据库再实现功能。学校信息系统一般都可分为学生模块、教师模块和教学模块等,每个模块对应一个主数据库表和若干子表。信息系统功能设计时不考虑角色的问题,角色权限只在触发时有限制。这样的设计使系统架构和系统维护变得容易而被称为优雅。区块链程序中的角色有且只有发起者和接受者,节点功能因交易内容有区别,所有节点维护同一账本。信息系统中通过数据运算验证操作的合法性,区块链程序的交互需要背书。
区块链程序更类似信息系统中的微服务设计。区块链程序需要做到更小,比如任务驱动。学校信息系统可以保留,不同的是操作记录是不可更改的,数据交互都是经过背书的,接口是通过智能合约显式声明的。这样就相当于把区块链当做网络结构的第八层来设计:应用层确定通讯对象并提供访问接口,区块链确定可信范围和可信内容,在此基础上完成程序功能。当然,这要求工作人员的编程能力。
3、节点。区块链网络中节点的不同于个人终端的概念,更类似个人服务器。因用户的个人终端关闭而导致录入成绩失败的情况是不能发生的。容器技术已经解决的很好,只是目前价格不菲。
三、区块链程序设计
3.1 用户
用户在学校区块链网络中的有一个节点,保存该用户与学校相关的区块链信息。 学校节点中只保留该用户的必要信息,如学号、职工号和姓名。用户的私人信息保留在用户节点上。学校节点每一次访问用户私人信息必须通过访问用户节点进行。用户只访问用户节点,不访问学校节点。用户节点与学校区块链网络进行交互。用户的学校信息如班级、专业等只保留在学校节点,用户必须通过用户节点与学校节点交互获取学校信息。
学校的每个部门有自己的节点,管理该部门相关的区块链信息。
学校需要提供节点服务,并在办理离校手续时回收此节点,用户随时通过学校的区块链网络获取用户节点信息。除了节点的智能合约部署外,学校需要提供节点的信息呈现程序。
3.2 功能
除了节点管理的功能外,节点不提供其他功能。节点管理功能包括:接受邀请,新增区块链和删除区块链。节点管理之外的功能由任务本身提供,也就是任务驱动。任务可以分成五个阶段:
1. 任务发起:主管部门建立区块链网络,邀请协作部门加入。
2. 任务分配:各协作部门邀请该部门在此任务的负责人;
3. 任务执行:各负责人通过区块链网络交互执行任务;
4. 任务确认:各负责人邀请各相关人员和部门主管,确认任务结果。
5. 任务完成:主管部门终止此任务,并按规定在生命周期外维护此区块链网络。
任务在部门之间协作。每个部门同时进行多个任务。每个任务有不同的操作员。
3.3 信息
学校节点整合零散的区块链数据,通过信息系统呈现学校信息。学校为用户节点提供节点信息程序。用户也可以自己编写信息程序,这对编程能力、数据整理能力提出了要求。需要指出的是,信息共享目前是通过接口对接进行的,并没有更敏捷的处理方法。区块链程序不同的是,处理数据的主动权是在用户手中。
四、小结
网络的意义在于共享。区块链解决了可靠传递难题,从而能够去中心化,进而满足了独立性、开放性和安全性的要求。在形成合理的程序环境之前,程序设计是在创造整个生态,就如域名之于网络、输入输出之于电脑、应用商店之于智能手机,目前的区块链程序需要完整的产品设计才会有用户价值。另外,区块链实现的是数据的可靠传递,不是可靠的信息传递。区块链技术的目标不是可信网络,而是用户控制自己的数据。基于此、别与此的社会目标,都是更远的远景。
参考文献:
[1]王延川.“除魅”区块链:去中心化、新中心化与再中心化[J/OL].西安交通大学学报(社会科学版):1-11[2020-05-19].http://kns.cnki.net/kcms/detail/61.1329.c.20200327.1203.002.html.
[2]邵奇峰,张召,朱燕超,周傲英.企业级区块链技术综述[J].软件学报,2019,30(09):2571-2592.
[3]史文斌. 基于Hyperledger Fabric的区块链应用系统云服务化[D].浙江大学,2018.
作者简介:
郭伟(1985-),男,汉族,籍贯:河南漯河,單位:漯河医学高等专科学校,研究方向:计算机应用。
基金项目:
漯河医学高等专科学校基础科学研究资助项目(2015-S-LMC15)
转载注明来源:https://www.xzbu.com/1/view-15251626.htm