本想等校园卡升级的项目完成后,再来仔细聊聊校园卡的事情,但最近一段时间,学校的校园卡不太消停,那就提前说说吧。
无论是教师还是学生,进入校园,第一件事情就是要办理一张校园卡,有了它,吃饭、洗澡、喝水就不用发愁了。但也许很多人并不了解,校园卡系统是如何工作的。譬如,很多人都在问,为何微信支付为校园卡充值之后,还要跑去贴卡领取呢,这也太麻烦了吧?的确,这很麻烦,但个中缘由,还要慢慢说来。
为离线消费而生
北京理工大学校园卡系统的建立,是在 2004 年前后,在那之前,食堂也早就有了专门的饭卡系统,但随着门禁、开水机等各种需求的增加,各种独立的卡片使用起来并不方便,于是学校开始统一规划建设校园一卡通,俗称一卡通。后来为了和银行一卡通区别,更多的场合学校工作人员会称之为校园卡。
校园卡系统,是一个对稳定性要求极高的系统,部署于整个校园各个楼宇的各类读写卡设备,必须随时可用。不要说在 2004 年,即便是人们已经在讨论 AI 替人的今天,对于学校这样的单位而言,想要一个信息系统后台实现 99.99% 的可用性,也是非常困难的。但校园卡系统的要求就是这样,无论何时,消费行为都可能发生,校园卡系统必须可以工作,甚至即便是是断电断网了,食堂的饭也要能卖。局部的故障可以接受,但大面积的故障决不能发生。
为了适应这样一种环境,整个校园卡系统是按照短时离线可工作的方式设计的,而这就要求存入校园卡的钱,不仅要记录在后台数据库中,还必须要记录在卡片中。一旦断网,任何一个机具都可以独立地根据内置的程序和配置完成对卡片的操作,再在网络连通时将操作结果回传给后台服务器。系统的这种设计,最大程度的降低了整个系统对网络和服务器后台的依赖,使得整个一卡通系统得以长期平稳运行。
但就像马克思主义哲学所强调的事物的两面性,享受了可离线系统的优点,也就必须要接受可离线系统的缺点。这种缺点体现在很多方面:
- 卡片挂失后,依然可能有经济上的损失。当用户丢失卡片后,即便做了挂失操作,也没有人能保证卡片内的钱不被用掉。因为挂失操作虽然会触发系统下发黑名单,但系统广播黑名单信息时,未必所有的消费终端都处于在线状态,如果消费终端离线了,那么它就会漏掉这一条黑名单信息。而这张卡,就可以继续在这个离线的终端上使用。只有卡片在一台接收到黑名单信息的消费终端上使用时,才会被锁定,进而实际进入挂失状态。
- 线上给卡片充值,必须贴卡领取。通过微信支付等支付手段向个人的校园卡账户充值,只是完成了后台数据库这一端的数据修改,而卡片内部所记录的账户余额并没有修改,必须通过贴卡,充的钱才能加到卡片里。
- 设备长期离线或损坏,会造成消费流水丢失。当用户在一台离线的消费终端上用卡后,消费记录被缓存在本地设备中。长期线路故障或工控机故障等原因,都有可能造成消费流水丢失。这就给后台对账和结算等管理工作造成了困扰。
在日常生活中,我们最常接触的两类卡片就是银行卡和市政公交卡,前者就是典型的将钱记在数据库,而卡片只相当于一个号码,消费时 POS 机必须连接银行网络。而后者,就是将钱写在卡片里面,虽然库中也有,但消费时以卡内金额为准。大多数学校的校园卡,其工作原理,跟公交卡类似。为何公交卡不可挂失?即便你挂失了,在根本不连网的公交车上,那张卡也还是能用的。
庞大古老的系统
学校的校园卡系统,从业务逻辑上来讲并不复杂,无非是开户、销户、挂失、解挂、充值、消费等等,但随着校园信息化建设的不断进行,各种其它系统与校园卡系统的不断连接,整个校园卡系统已经非常庞大。从功能上,今天的校园卡已经涉及到食堂、浴室、开水、借还书、班车、门禁、考勤、签到各个领域;从范围上讲,校园卡专网已经铺设到学校的几乎每一个楼宇;从机具数量上讲,食堂消费类 POS 有三四百台,而浴室和开水类的 POS 有一两千台。目前校园卡系统中的卡片有四五万张,涉及学校各种各类人员。
但这个建于 2004 年的系统,几乎没有过大的升级,就连一些食堂的 POS 机,也还是在 2004 年配置的第一代设备。整个校园卡专网并不是一张像校园网那样纯粹的以太网,网内的大量消费类 POS 是通过 485 总线连接到工控机,经由工控机完成数据采集和远程命令下发的。对总线类网络有了解的人都知道,这样的网络中一个节点的错误,都有可能造成局部网络的瘫痪。
随着系统的不断扩展和机具长期使用的老化,系统的维护工作逐年增加。在所有维护工作中,最困难的莫过于水控类 POS。一方面,由于北方水质比较硬,极容易造成水控阀门的阻塞;另一方面,工科学生“动手能力”太强,动不动就剪断设备控制线直接造成设备损坏或脱网。如果说前者还可以通过加强维修而减少,后者简直就是维修工人的噩梦。而这些脱网的水控设备,由于无法接收解挂失指令,又会不断地造成一些同学的卡片被锁定。
由于校园卡系统小问题不断,时间久了,无论是用户还是学校的工作人员,都难免对这个系统有各种各样的抱怨。经常有人在问,这样一个系统能不能换个厂商重新来过?虽然从理论上来说,这是可能的,但从现实上来说,要想把一个规模如此巨大的系统,直接推到重来,其投入和难度可想而知。更大的问题是,即便是彻底换过一遍,谁又能保证新换的东西一定比现在好呢?
破解校园卡系统困局
问题虽多,解决虽难,但也不能一拖再拖,在经过长时间的观察、思考、调研、总结之后,校园卡系统升级这件事情,也就列入了学校信息化建设的议事日程。面对一个怪兽,要将其驯服就要有策略有步骤。
第一步:升级系统,更正数据,重塑接口
现有校园卡系统的一大问题就是核心软件过于陈旧,目前校园卡系统依然使用着 2004 年部署的软件,虽然厂商在十几年的发展过程中已经通过推出新的方式解决了很多大小问题,但学校若不采用新系统,则这些问题对学校依然无解。而且,由于旧系统的开发技术过于老旧,在对接一些新功能时,必须通过打补丁的方式重新开发,不仅大大拖延了建设工作开展的,同时这些补丁也把学校一次又一次送上了小白鼠的位置。因此,只有更换掉陈旧的软件,才能把校园卡系统的改造送上正确的轨道。
在更换软件的同时,要将校园卡系统的人员信息库学校注册中心的人员信息库对接,而这其中最重要的是将校园卡系统中历年来积累的错误信息特别是未升级的教职工工号进行调整。完成这一对接后,可以保证未来的人员信息一次录入直接进入卡务系统,为自助办卡创造条件。
同时,校园卡与图书馆、良乡考勤、宿舍楼门禁、校医院HIS系统的对接接口需要重新调整,消费类和非消费类需求的对接可以考虑采用不同的方式。进而降低整个系统的耦合程度,实现学校与厂商之间的适度解绑。
第二步:改进技术,减少数量,提高质量
相对于校园卡联网设备的数量而言,目前的设备维修力量的确是捉襟见肘。而联网设备的脱机,对于整个卡务系统的伤害就如蚂蚁对大象的噬咬一般。既然不能保证全部设备实时在线,不如干脆将数量最为庞大的水控设备直接设计为离线工作模式,因为水控类设备的特点是每一笔消费的金额都非常小。
在北京航空航天大学,其校园卡已经启用了一种俗名“小钱包”的机制,用户可以持卡在水控类 POS 上直接消费,当消费额累计到一定程度如三元后,一次性贴卡从账户中付款。通过这种机制,只有贴卡付款的机具需要联线,而所有一两千台水控都可以作为扣款傻终端。这一技术上的改造,将会大大降低水控类设备的维修难度和长期维护成本,进而提高服务质量。
同时设备在线程度提高,也可以大大提高账务的准确程度,不仅可以减少后勤部门因流水丢失而造成的回款损失,也可以减少因卡库不平给用户用卡造成的困扰。
第三步:更换旧机具,启用新卡片
校园卡系统目前面临的另外一个问题就是卡片安全度不足,虽然通过后台对账机制可以防范不法分子对校园卡的破解,但最好的解决方法依然是使用新型卡片。但要起用新型卡片,就必须更换所有不支持新型卡片的旧机具。
当所有机具都支持了新型的 CPU 卡,通过手机 NFC 等新兴技术实现卡片与手机的合一,吃饭刷手机,就有了技术上的基础,也就不再是遥不可及的未来。
以上三步,最难的是第一步,一旦走完,后面两步就顺理成章了。如果一切顺利,升级的新系统会在五月前后上线,而后面的两步,会在未来的一到两年内逐步实施。
但升级新系统,也会带来一个问题,就是目前广泛使用的招行圈存机将会下线,因为银行为学校定制的旧机具早已停产,连维修时需要的备件都已经只能通过拆掉另一台机器来寻找了。这也是为何学校要在升级系统前推动新兴的第三方支付手段向校园卡充值通道的建立,否则到时候就只能用现金充值了。
在这些工作进行的同时,也许还需要探索有没有一种方式,可以在拥挤的食堂和潮湿的浴室中,补充现有校园卡消费模式。也许未来的校园卡,会被彻底颠覆呢……