《社会技术系统的需求监控与自修复》由会员分享,可在线阅读,更多相关《社会技术系统的需求监控与自修复(9页珍藏版)》请在金锄头文库上搜索。
1、社会技术系统的需求监控与自修复 王明良, 彭鑫, 赵文耘 复旦大学软件学院, 上海 201203 摘 要 社会技术系统同时具备社会系统和技术系统的特性。这类系统需求的满足受到许多社会化因素的影响,具有很强的不确定性。运行时需求监控及自修复过程是保证这类系统的运行时正确性、减少系统失效的有效手段。本文针对社会技术系统的特性,提出了一种需求监控和自修复方法。该方法能够改进这类系统对于运行环境变化和不确定性的适应能力,从而减少系统失效并实现整体性能的最优化。 在此基础上, 本文在社会技术系统理论的指导下构建了一个具备社会技术特性的订餐系统, 并验证了本文方法的有效性。 关键字 社会技术系统,需求监控
2、,自修复 Requirements Monitoring and Self-Repairing for Socio-Technical Systems WANG Mingliang, PENG Xin, ZHAO Wenyun Software School, Fudan University, Shanghai 201203, China Abastract Socio-Technical system theory believes that any work system has a dual nature, on one hand it is a Social system, whil
3、e at the same time it is a Technical system, these both natures are closely related and are influenced by each other, only to meet the needs of both sides can we improve the efficiency of the whole work system. With its “sociality“ in nature, we will face a lot of uncertainty in the working process;
4、 such uncertainty may prevent us from reaching the final goal. In this paper, the author constructs a simple ordering system under the guidance of Socio-Technical system theory. On this base, the author strengthens the system by offering with the ability of requirement monitoring and self-repairing
5、in order to enable the system to cope with the changing environmental (or such uncertainty factors) more rationally and finally achieving the overall performance optimization. Key words Socio-Technical System, Requirement Monitoring, Self-Repair 1. 引言 社会技术系统理论兴起于第二次世界大战以后的英国,这种理论认为任何一个工作组织,它既是一个社会系统
6、,又是一个技术系统,二者有密切的关系且相互影响。只有既满足社会系统的需要,又满足技术系统的需要的工作组织,才是最好的组织1,而在很多的工作系统中,设计者只注重了其技术性的特点而忽视或者不够重视其社会性特点2。 社会技术系统包含着人,硬件、软件、物理环境以及规则和数据等诸多“社会”和“技术”要素,换句话说,它是技术分系统和社会分系统的结合,或者说是技术和“它的”“社会环境”的复杂融合。但由于社会技术系统的开放性以及其各组成部分的固有特性, 尤其是具有 “社会力量 (social power) ”的那部分3,系统在在整个生命期面临着诸多“不确定性”变化,诸如硬件损坏,软件崩溃,而人类行为则具有更强
7、的不可预知性等;这些变化在构建系统时不可预知,但它们却可能系统的运行产生影响, 成为系统达成需求的障碍4。 而需求监控正是为了应对这些“不确定”而生。监控是性能调优的一种常用的技巧,这些监控包括进度的检查,事件的捕捉,问题的诊断等。软件系统中的需求监控是指在基本工作系统的基础上, 通过插入代码收集信息以确定系统工作是否已经达到既定需求或者已经达成到怎样的程度5。而在社会技术系统中, 这种监控可能不只是通过插入代码实现,它还可能是一些硬件监控器具,诸如各种监控设备;它面向的可能不只是软件系统, 也可能是一条生产流水线甚至是开放的工作环境。监控几乎总是和“修复”成对出现。监控不是目的, 利用监控收
8、集得到的信息进行系统修复和干预以达到性能优化才是最终目的。 监控收集得到的状态信息会作为后续修复行为的驱动,作为一个社会系统,因其上下文环境的变化,即使同样的事件输入也可能需要不同的应对措施, 为了更理智地进行修复和干预,可能需要一个具有推理判断能力的决策系统,这些状态信息作为输入进入决策系统, 经过推理模块的判断推理确认后,采取既定的干预措施以修复故障,达成目标。 任何一个工作系统, 都会与周围环境进行经常性的交流;在面临上述种种“不确定性”变化时,系统能够在一定限度内自行调节, 但这种变动在多大程度上能够为系统所承受而不至于引起系统结构上的变动在更大程度上取决于系统的技术分系统的灵活性1。
9、 本文针对社会技术系统的特性, 提出了一种需求监控和自修复方法。 该方法能够改进这类系统对于运行环境变化和不确定性的适应能力, 从而减少系统失效并实现整体性能的最优化。在此基础上,本文在社会技术系统理论的指导下构建了一个具备社会技术特性的订餐系统, 并验证了本文方法的有效性。 2. 方法和技术基础 虽然社会技术系统最初作为组织管理领域理论而诞生,但在软硬件技术领域仍然具有着强大的理论基础和技术支撑,尤其是随着普适计算、移动计算以及人工智能的发展。 2.1. Multi-Agent 系统(MAS) Multi-Agent 系统(MAS)是指由多个 Agent 集合而成的协作系统,其多个 Agen
10、t 成员之间相互协调,相互服务,共同完成一个任务。Agent 可以是异质的和分布的,传统的Multi-Agent 系统研究多是针对软件 Agent,事实上,人、机器人、 甚至一个组织都可以是 Agent。 在 Multi-Agent 系统中,各 Agent 个体本身的活动是自主独立的, 其自身的目标和行为不受其它 Agent 成员的限制;当面临超出 Agent 个体能力的复杂问题时,Agent 将要完成的任务分配给其他 Agent,并以交互式团体的形式协作解决问题。由此可见,Agent 既具有自治性又具有协作性。除此之外 Multi-Agent 系统还具有很多其他的良好特性,比如它所具有的良好
11、模块化、易于扩展性能够降低开发和管理难度;在实现过程中,通过按照面向对象方法构建多层次,多元化的 Agent,可以大大降低系统复杂性6。 在社会技术系统中也存在着诸多异质和分布的个体, 比如诸多散布的物理设备、 具有不同功能的软件体以及各种具有不同身份的个体, 它们各自承担着不同的责任 (自主性) ,但又需要彼此之间的紧密协作 (协作性) 共同达成系统目标,这些特点与 Multi-Agent 系统所具有的特点很好地契合。 2.2. CLIPS 专家系统 Multi-Agent 系统和专家系统能形成完美的结合,集成了专家系统的 Agent 个体能够更智能、 更理性的识别并应对碰到的问题7。在社会
12、技术系统中,会存在很多目标违反的情况,这些情况有些可能很直接很简单,但另一些则可能非常复杂而并非那么明显。处在不同的上下文环境中,针对同样的事件输入, 不同 Agent 个体或者同样的个体但处在不同的时间,都可能需要不同的干预措施应对,如何判断是否需要进行处理, 以及需要执行怎样的处理措施?虽然在高级语言(比如 java)中通过逻辑控制(比如 ifelse)可以实现,但是这会使得程序臃肿繁杂且难以扩展(将过程逻辑和业务逻辑混合是很不好的习惯)。CLIPS 提供了解决这种问题的更好方案。 CLIPS 是 NASA 开发的一种专家系统工具。 CLIPS 具有强有力的推理引擎,其推理的基础是规则,规
13、则基于事实和对象的模式匹配。CLIPS 为它们定义了自己的语法,该语言简洁易懂,但 CLIPS 同时支持和高级程序语言的集成(如 C和 java) 8。 2.3. 传感器技术 人们为了从外界获取信息,必须借助于感觉器官。而机器、软件系统为了获取自然、社会和生产领域中的信息则需要传感技术的协助。随着科学技术的发展,传感技术的应用已经相当普及。传感技术已经渗透到极其之泛的领域。可以毫不夸张地说,从茫茫的太空,到浩瀚的海洋,以至各种复杂的工程系统,几乎每一个现代化项目,都离不开各种各样的传感器。为了在不影响监控对象原有工作流程、不破坏其原有结构的前提下,达到需求监控和自修复的目的,必须依靠各种传感技
14、术以自动捕捉社会技术系统中各个体的相关工作活动。比如利用 RFID 技术自动识别目标对象并获取相关数据,该技术已经相当成熟且广泛应用在多个领域,比如图书管理9,物流10等。 3. 问题场景及案例设计 任何特定的社会技术系统,都会随着时间/事件而发生着诸多变化。这是因为社会技术系统本身就是开放的,且其内部诸多元素都具有着“社会性”特点,即使系统内部技术自子系统保持着恒定, 外部变化所带来的影响也会延及系统内部,从而给系统整体工作带来影响。本文使用一个订餐系统搭建了具备典型社会技术特性的目标系统, 并以此为基础进行了案例研究。 3.1. 基本工作流程 订餐系统的基本工作流程如下: 1) 客户登录订
15、餐系统进行订餐; 2) 管理员收到订单并确认, 系统根据情况将菜品分配给厨师进行烹饪; 3) 烹饪完毕,配餐员对菜品进行确认并打包; 4) 当某个订单的所有菜品完成, 配餐员打包订单并通知送餐员; 5) 送餐员根据要求进行配送。 6) 客户签收订单,整个订餐目标完成。 3.2. 需求偏离 作为工作在开放的社会技术系统中的个体,厨师,配餐员以及送餐员等的工作行为必然受到外界环境的影响, 他们可能会因各种原因而遭遇“意外”事件,这些事件都可能会成为系统达成最终目标的障碍(目标违反,需求偏离) ,其中有些事件技术分系统能够进行有限的调节, 但在更多时候,由于技术系统以及人的能力的局限性, 我们很难进
16、行及时有效的控制。以下是在订餐系统中部分具有代表性的案例4: 管理员可能(因为闲聊或者打电话而)忘记确认并响应订单,导致订单延迟; 厨师上厕所后(想着昨晚的牌局而)忘记洗手,直接去做菜; 配餐员可能(因家人疾病而忧心过度精神恍惚而)配餐错误,会导致用户抱怨,也可能导致服务失败; 送餐员可能(因为时间匆忙而)错拿分配给其他送餐员的订单; 送餐员可能 (因红灯或塞车而长时间或者碰上熟人而长聊)阻滞在送餐途中,不能准时送达; 送餐员可能在送餐途中(因为睡眠不足而精神恍惚)意外撞倒, 食物被毁, 需要提醒系统重新准备食物并配送。 3.3. 案例设计 要避免需求偏离阻碍需求达成, 首先需要识别到此类需求偏离情况,也就是需求监控,和传统的通过插入软件代码监控需求不同;在此案例系统中,我们需要上文提到的各种监控技术(设备) 。加入了监控技术(设备)的场景如图 3.2所示。 图 3.2 案例场景图 每一个工作人员都携有 RFID 标签以标志身份,每一份食物和每一个订单也都会配有 RFID 标签以区别彼此并标志其主