模块链型系统的机制浅析

时间:2022-08-15 07:35:31

模块链型系统的机制浅析

【摘 要】本文分析了拥有众多业务、逻辑模块的信息系统需要满足的几项运行机制。这些机制为软件系统开发提供了安全性、可扩展性、可维护性等需求上的保障,保证了软件系统中各个模块组成了一个有机的运行整体,而非一团散沙。为基于网络环境或多线程环境的商务应用提供了简要的技术参考,帮助系统设计者实现不同业务流程的优化。

【关键词】模块链/树;设计模式;机制

系统模块化,是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。在系统的结构中,模块是可组合、分解和更换的单元,每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

以系统模块化思想为基础,模仿现在运营管理中供应链的做法,结合软件设计中ChainofResposibility设计模式,又可以构造出模块链的思想。

一、模块链运行机制

实现模块链或模块树型的软件系统需要解决多个问题,例如:如何引导模块链(树)运行;模块链(树)中众多模块如何连接起来的;如何定位模块链(树)系统的运行方位;如果处理模块链(树)运行中出现的异常等。下面将讨论模块链(树)的关键实现技术的元素:

1、两种驱动模式

一个事件的发生将导致出这个事件的结果。而在一个系统中,用户的行为(点击按钮,按回车键等动作)触发了模块的运行,这种方式成为“被动驱动”,之所以成为被动,是因为相对于模块所在的系统来说,系统被动地接受了外部给予其的动力,这种驱动方式是最常见的。而当系统在运行过程中,经过自动的逻辑判断而由一个或多个事件触发了新模块的运行,这种方式称为“主动驱动”。

两种驱动模式结合,可以共同引导、控制模块链(树)系统按照设计者的意志有序地运行。

2、模块间的连接

模块化思想最关键的要素之一就是需要模块之间具有最低的耦合度,模块的连接可以借助一些成熟的映射框架工具,例如在用java语言进行开发的时候,可以使用Spring框架。不同语言平台实现模块的连接运用的都是相似的原理:将各个模块以类的形式编写出来,在配置文件中声明,应用映射机制实例化,然后注入到系统中。这样就不需要在系统的代码中固定的声明某个模块或者组件的实例了,而由系统根据配置文件的声明,按照次序地调用模块实例。

配置文件和代码文件是相互独立的,且容易编辑,而将模块声明到配置文件中,保证了模块间的低耦合的同时,又实现了模块的连接。

3、模块链(树)的反馈机制

模块链(树)使用ChainofResposibility模式,每一个模块作为ChainofResposibility中“问题解决者”的角色,而传过来的数据或对象将作为“问题”角色。每到达一个模块,就将该模块的运行信息记录或者输出。运行成功,当前模块将成功信息记录且反馈给系统,同时使用“主动驱动”方式通知系统,系统根据配置文件调出下一模块的实例,进入下一阶段;运行失败,当前模块也将失败信息记录并反馈给系统,系统将自动产生用户界面进而依靠用户来进一步触发系统的下一步任务。

4、状态保存机制

模块链(树)系统运行的状态信息可以用系统设计者规定格式的文件记录并保存下来,放到模块链(树)系统的外部。可以通过各种编程语言的输入输出流功能轻易实现。这样,就算一个模块链(树)系统的一次运行因意外状况(如:断电、内存溢出等情况)没有正常完毕,也能根据这些状态记录文件在系统中创建出当初断点的状态,以这种状态继续运行下去。这种机制不仅可以确保系统的稳定性,还能让机器和人的工作能够保持的同步,进而整个工作保持协调。

5、回滚机制

如果一个模块链(树)在运行的过程中,没有完成整个事务前出现了意外情况,那么就需要回滚了(即恢复到出现意外情况之前的状态),将回滚到上一个模块的状态还是更上模块的状态,这将由外界人来决定。回滚机制是建立在状态保存机制之上的,根据每一个模块保存下来的信息文件,创造出回滚所要的阶段的状态。现实中很多业务是不需要此项机制的。

二、模块链(树)在电子商务上的运用

电子商务最典型的表现就是网购,这是现在网民所熟知,并很大部分人都经历过的。网购是一个由多个阶段组成的商务过程。而一个模块链型的电子商务系统需要结合实际业务流程组建起处理这个过程的模块链或模块树。进而,实现如下过程:

1、模块链(树)的开启。求购信息收集模块,是每一个电子商务系统不可缺少的。用户提供具体的商品需求信息。而模块链系统将把求购信息封装起来,做成信息对象实例,经过验证信息实例的有效性后,再存储起来,等待与商家合作的第三方支付中介通过网络发送该用户已转账的通知事件(此时,用户已经转账到第三方支付平台了)。这一事件发生,系统以“被动驱动”方式开启整个模块链,并依次向后触发这个模块链(树)的每一个模块。

2、需求信息对象实例在模块链(树)系统的传递。系统将此需求对象实例传给后台需求分析模块,由此模块根据当前计算机中存储的销售网点信息库查找出最适合的配送路径,并发送配送通知到当地网点,由当地网点工作人员发送确认信息回到系统,此时需求分析模块更新需求信息对象实例并建立模块运行记录存储到数据库中,系统根据配置文件转向下一模块,这个运行流程可以通过形象的用户界面向系统管理员展示,方便工作人员有效的管理和控制。

3、模块链(树)面向用户的实时信息查询。到物流这一环节,可以使用射频技术,在装载商品的载体上贴上电子标签,可以将货品到达的位置经过无线电波直接传入到系统内部,模块链(树)系统将为用户提供货品运程及方位的实时查询。

4、模块链(树)的终结。商品达到用户所指地址时,物流人员会让用户在收条上签名以确认收到货品。在这之后,将有一段的时间内,用户可以进行退货或换货等售后服务,模块链(树)经过这段“售后服务期”过后,将转到一个通知商家确认第三方支付平台转账的模块,转账成功确认后,模块链系统运行终结。

三、总结

以上过程代表了模块链型电子商务系统的一个简要的业务流程。虽然现实中很多业务步骤在计算机中可以省略掉,但是这样必然要掺杂人工处理的步骤,也必然带来后续的管理问题。只要模块链系统代表的方案足够完善,必然比人工和游离模块系统达到更高的效率。

参考文献:

[1]王金玉, 刘永, 叶礼伟. 新型动态网站模型研究[J]. 电脑知识与技术, 2010,(07) :1639-1640.

[2]张珺, 彭小珈. 管理信息系统课程中“模块化教学法”的探讨[J]. 中国管理信息化, 2010,(08) :101-103.

[3]高源晴,庄毅,欧阳森林,钟纪源. 基于MVC设计模式的项目管理的研究与应用[J]. 计算机应用研究, 2006,(07) .

[4]李杰. 基于Java技术的应用研究[J]. 商场现代化, 2010,(07) .

上一篇:学在官府与学在民间 下一篇:舌尖上的护肤品 口服美容市场“起步跑”