事件驱动(精选8篇)
事件驱动 篇1
一、事项会计
(一) 事项、经济事项与会计事项
事项是指对一项活动特征的可行观察结果。这个定义很好地概括了“事项”的本质, 奠定了定义会计事项和经济事项的基础。以此类推, 可以认为, 经济事项是指对一项活动来自经济的角度的观察或描述的结果。事项会计法强调“会计事项”这一概念, 是构筑于其基础之上的会计理论。会计事项是指有关组织的经济活动应在会计上加以反映的经济事项。由于每个组织的经济事项繁多, 至于哪些事项应该在会计上加以反映, 哪些事项不加以反映, 主要取决于该事项是否满足会计假设的要求。换句话说, 会计事项是指会计主体与信息用户相关, 并且导致经营实体的各项资产和权益发生变化的经济事项。
(二) 事项会计的提出
美国乔治·索特 (George·H·Sorter) 教授在《论会计基本理论》一书中针对传统财务会计以价值为计量基础所引起的缺陷而提出了事项法会计 (Event Approach Accounting) 理论。他认为, “财务会计人员的任务只是提供有关事项的信息, 而让使用者自己选择适用的事项信息。”1969年, 索特发表了论文《基本会计理论的事项论》, 对事项法会计理论作了进一步的阐述。
(三) 事项会计的特点
事项法会计采用多种计量属性反映事项各方面的特征, 多维地揭示经济事项的价值和非价值方面的信息, 因而事项信息具有全面性、完整性及冗余量少的特点;提供“原汁原味”的事项信息, 让信息使用者运用决策模型进行决策, 因而满足信息使用者的需要。
(四) 事项会计与价值会计的区别
索特教授将传统的会计方法称为“价值法”, 其根本假设是“会计信息的用户的需求是已知的并能够被充分而特别地被说明, 因此, 可以通过会计理论推断为有用的决策模型产生最优的输入。”而“事项法”会计建立在完全不同的假设上, 即“会计人员可能对决策者如何使用信息一无所知, 会计的目的是为不同的可能决策模型提供可能相关的经济事项信息, 而不是直接为不可知或根本不可能知道的决策模型提供价值输入。”事项法会计认为财务会计目标在于提供与各种可能的决策模型相关的经济事项信息, 与决策相关的事件的信息应尽量以其原始的形式保存;会计人员只是提供有关事项的信息, 而让信息使用者自己根据其决策需要加工产生所需要的适用的事项信息, 并将其运用在决策模型中。
(五) 事项会计与会计信息系统
事项会计的建立基础是计算机网络的高度发达及财务软件的广泛应用。信息时代, 网络会计成为会计发展的新趋势, 这使得事项法的应用具有物质技术基础, 企业可以通过Intranet技术实施“实时报告系统”。
1.网络会计为事项会计的应用创造了客观条件, 把事项会计在非信息时代不能实现的梦想变为现实。
2.实时报告系统使基于“事项法”的财务报告模式变为现实。电子商务环境下的网络会计在高速运行下, 实时报告系统的建立, 打破了原有的信息处理模式, 提供了更为广阔的信息空间, 可以充分满足使用者的“个性”需求。
(六) 事项会计的局限性
作为一种不同于传统会计的新生理论, 事项会计有种种优点, 但也有许多亟待解决的问题。
1.事项会计的建立基础是计算机网络的高度发达及财务软件的广泛应用。
2.事项的标准难以确定。企业的经济活动是极其繁多复杂的, 哪些应进入会计信息系统提供给信息使用者, 还没有一个现实的可操作的标准。
3.大量事项信息的列示可能泄露企业商业机密, 对企业竞争不利, 同时可能增加信息报告成本。
4.大量事项信息的列示, 对于信息使用者来说可能造成信息过量, 而更加难以做出正确决策;并且是否多数信息使用者能够自行判断、收集、分解、组合、汇总事项会计信息, 这对事项会计的发展将是一个很大的限制。
5.事项会计对外提供财务报告必须进行必要的分类, 如何分类也是一个问题。
6.事项信息的列示是否比传统的价值计量更可检验, 事项特点的展示是否一定比事项价值的汇总反映能更好地帮助信息使用者预测, 还有待实践检验, 还没有充分的理论依据。
二、事件驱动会计
(一) 传统报表驱动式会计处理模式的局限
传统的报表驱动式会计处理模式是以简单的借和贷来对经济业务事项进行描述, 只能反映经济业务活动的财务侧面。新经济环境下, 企业信息使用者要求能够得到较为详细的经济业务描述。这就形成了企业经济业务的记录与报告和信息使用者的需求之间的矛盾。造成这种矛盾的根本原因在于:
1.传统的报表驱动式会计处理模式收集的数据不能反映企业业务活动的所有方面, 只是企业业务活动的小部分。
2.传统的报表驱动式会计处理模式存储与处理的只是经济业务的有限特征, 表现是只考虑能够以货币进行计量的这部分特征。
3.传统的报表驱动式会计处理模式有延时的缺点。不能实时地记载和处理经济业务, 从而影响企业的决策, 甚至会导致错误的决策。
4.传统的报表驱动式会计处理模式要经过信息浓缩, 易使信息失真。在信息的浓缩过程中, 无疑会使一些重要的决策信息因过滤而被掩饰了, 从而对决策者的科学决策造成影响。
(二) 事件驱动式会计处理模式
在会计信息系统中, 在21世纪新的经济环境下, 会计不再只是对经济业务的记载、分类、处理、报告及对企业财产的保护的模式, 而是一个新的模式, 这个新模式能够根据信息使用者的需求向相关信息使用者提供有用的信息;有效地整合企业的信息处理和业务流程, 实时地获取、存储与处理经济业务数据及报告经济信息;完成会计功能的渗透, 帮助企业高层管理者制订业务规程, 形成企业的核心业务流程。这就是新的会计处理模式——事件驱动式会计处理模式。
“事件驱动 (Event Driven) ”本是一计算机术语, 是指当某一特定事件要求代码进入工作时, 程序指令即开始执行。而当其成为一项会计术语时, 是指经济实体一项业务一经发生, 即意味着会计信息系统的“程序指令开始执行”。基于事件驱动的会计信息系统的核心就是将业务事件作为会计分类的最小单元。这里的业务事件不仅包括事项法下的会计事项, 还包括一切影响企业价值的非会计事项。在日常工作中, 会计信息系统仅仅把交易活动的最基本特征进行存储, 比如交易活动涉及的资源、参与者以及地点等。会计信息使用者按各自的要求对业务事件的特征进行分类、计算并转化为他们所需要的与决策有关的信息。
(三) 事件驱动式会计处理模式的特点
事件驱动式会计处理模式的核心是将事件作为会计分类的最小单元, 在日常的会计处理过程中, 仅仅把经济业务活动的各项特征, 信息使用者按各自的要求对事件进行分类、计算并转化为他们所需的有用信息。与传统的报表驱动式会计处理模式相比, 事件驱动式会计处理模式具有以下的特点:
1.采用信息报告。这个过程取代了传统报表驱动式会计处理模式中的数据的传递、存储、确认与复制的过程。它在经济业务发生时, 能够实时地进行控制, 以保证在原始数据产生的每一个时点完成对各种数据的收集、处理并产生相应的报告。这样, 就消除了由于数据的确认与浓缩所造成的有用信息的流失, 以及由于传递、处理过程的时差所造成的信息报告的不及时性。
2.对所有经济业务数据的收集与集中处理, 有效地利用了大型数据库技术。这使得所集数据集中了所有信息使用者的观点, 扩大了会计的范围, 能够多角度地反映企业的生产经营活动, 使财务数据与非财务数据有效地集成在一起, 从而使得由此提供的财务报告更完善、更具有弹性, 满足各方使用者的需求。
3.将信息流程与实时控制有机地整合在一起, 实现会计信息系统与业务流程的融合, 从而达到实时控制企业生产经营及管理的全过程。这有效地控制了企业生产经营、信息处理及管理决策的风险, 为企业生产经营的良性循环提供有力的保障。
(四) 事件驱动式会计处理模式的局限
实施这个新模式的困难是, 如何对经济业务数据进行分类, 分类的标准是什么等等, 这些问题制约着事件驱动式会计处理模式的发展。但应该看到, 随着计算机技术的飞速发展, 电子商务的普及与应用, 也为事件驱动式会计处理模式的发展带来了前所未有的机遇。
三、事项会计与事件驱动会计的联系与区别
事项法和事件驱动法都认识到不同的信息使用者对会计信息的需求不同, 因此它们都主张从信息使用者的需求角度出发, 依靠大型数据库实时收集信息, 并将信息处理权交由信息使用者掌握。但是, 事项法主要是针对传统价值法下所提供的会计信息形式过于单一, 相关性可靠性过低的问题而提出的, 它可以说是颠覆了传统的会计信息系统的根本。事项法的核心是强调以会计事项作为经济数据元, 在财务报告中提供足够的明细数据, 以便使用者能够重构发生过的经济事项, 但它并没有解决明细数据的采集问题, 而且也不一定能保证信息使用者获取它所需要的信息。而基于事件驱动的会计信息系统并非针对传统会计信息系统的缺陷提出的, 它是从组织整体这个角度考虑的。由此所建立的会计信息系统目标是为顾客创造价值。由于立足点是整个企业, 所采集的信息的视角就不再仅仅拘泥于会计数据——这恰恰是价值法和事项法所关注的, 而是有关业务事件的基本特征。可以说, 对于传统的价值法而言, 事项法是一次进步, 而事件驱动法则是一次飞跃。概括起来, 事项会计和事件驱动会计的区别主要有以下三点:
1.后者并没有像前者一样全盘否定传统的价值法。事项会计认为传统价值法下的会计凭证等没有存在的必要, 强调以专用报告取代通用报告;事件驱动会计则将传统的会计凭证等作为某种输出视图, 认为会计信息系统所产生的会计报告应该具有一定的弹性, 能够支持实时报告、一般报告以及特殊报告。
2.事项会计强调会计事项是进入会计信息系统的基本数据元, 而事件驱动会计则认为会计信息系统的元数据不仅仅包括那些改变企业资产、负债和所有者权益的会计事项, 还包括所有管理层想要规划、控制和考核的业务事件。
3.后者往往会引起会计业务流程重组。事件驱动会计认为, 为了更好地支持决策、为顾客创造价值, 必须进行业务流程整合, 使业务流程与信息流程紧密结合。
在信息技术迅猛发展的今天, 企业应当给予事项会计与事件驱动会计信息系统充分的重视, 学习和应用相关理论, 对现有的会计信息系统进行更新和改进, 使其在企业的管理中发挥更好的作用。
摘要:计算机信息技术已成为世界经济和科技发展的重要因素, 对社会的每个领域都产生了巨大影响。会计界也发生了巨大变化, 众多会计专家和学者对信息技术环境下会计理论及会计信息系统等问题作了大量研究。事项会计和事件驱动会计就是在这样的背景下提出的。文章回顾了事项会计和事件驱动会计的相关理论, 分析了两种理论对会计信息系统的贡献和局限性, 比较了两者的异同。
关键词:事项会计,事件驱动会计,会计信息系统
参考文献
[1].张永雄.基于事项法的会计信息系统构建研究.会计研究, 2005 (10)
[2].张静远, 袁皓.事件驱动法和事项法的异同分析.北方经贸, 2005 (2)
[3].邹建军.试论事件驱动式会计处理模式.广西会计, 2002 (8)
[4].王锴.事项会计理论述评.技术经济, 2002 (5)
[5].陈韶君.事项法会计信息系统初探.财会月刊, 2001 (4)
[6].李艳玲.事项会计初探.财会月刊, 2000 (4)
事件驱动 篇2
偏好五大事件驱动类公司
我们重点研究了工银瑞信基金旗下产品二季度投资组合,并对兄弟基金之间的交叉持股进行了合并计算。结果显示,工银瑞信基金共有47只重仓股票在二季度末持股市值超过了1亿元。而这47家上市公司之中,有39只在今年上半年公告过重大事项,占到83%的比重。可见,工银瑞信基金的整体投资风格已趋于事件驱动。
具体来看,这些上市公司发生的重大事项包括以下几类:
第一类,上市公司或其控股股东重大资产重组。包括中国平安、中百集团、盐湖股份、宏达股份、赛马实业、上海家化、深发展A、双汇发展、山推股份等。
第二类,上市公司进行资产收购、转让,分拆上市、整体上市等。包括同方股份、洋河股份、江淮动力、浙富股份、泸州老窖、辽宁成大、中国神华、中信证券等。
第三类,上市公司进行公开增发、定向增发、发行债券等再融资行为。包括综艺股份、浦发银行、招商银行、苏宁电器、格力电器、海南海药、凯迪电力、桂东电力、柳工、皖维高新、交通银行、海螺水泥、农产品、冀东水泥、兴业银行、美的电器、民生银行、中信证券等。
第四类,上市公司控股股东或主要股东进行增持。包括贵州茅台、中国卫星、民生银行等。
第五类,上市公司实施或拟进行股权激励。包括海大集团、万科A、爱尔眼科等。
我们不否认,其中一些公司,工银瑞信的投资逻辑可能是从公司基本面出发,而并非这些事项的影响,但如此高比例的公司呈现出上述的共同特征,应当不是一种巧合。
过度运用“事件驱动”策略业绩平平
事实上,工银瑞信基金偏好重组股的风格由来已久,在2009-2010年,工银瑞信基金就曾多次进驻ST类公司豪赌重组,*ST中钨、ST甘化、锌业股份(曾为*ST锌业)等都曾出现过工银瑞信基金的身影。
另外,从介入时点看,有些股票工银瑞信基金是在重大事项公告之后介入的,而有些则是在重大事项公告之前便埋伏进去的。相对于中小投资者,基金公司在上市公司信息获取方面有着十分明显的优势。如果过度介入重组股、定增股和资产注入股,难免有内幕交易之嫌。
从今年上半年基金的投资收益来看,工银瑞信基金采取这种策略的结果并不算理想,该公司旗下偏股基金绝大多数上半年为负收益,其中工银大盘蓝筹股票基金、工银中小盘成长股票基金的亏损幅度分别为13.19%和11.18%,工银稳健成长基金的亏损幅度也有9.82%。可见,过度运用事件驱动策略并没有给工银瑞信基金带来超额收益。
我们同时发现,工银瑞信基金旗下不同风格之间的产品并没有体现出应有的差异化的特点。例如,今年上半年大盘股整体表现好于小盘股,然而工银大盘蓝筹股票基金上半年的亏损幅度甚至大于工银中小盘成长股票基金。导致这一结果的重要原因在于两只基金的资产配置并没有像基金名称那样表现出相匹配的差异。
公募基金不应将事件驱动作为主打策略
随着基金数量的增加以及市场风格的变化,今年上半年基金投资风格表现出越来越多的差异化。这有一定的积极意义,一个成熟的市场应当包容多元化的投资理念。
基于事件驱动的欠费控制优化分析 篇3
关键词:运营支撑系统,欠费控制,事件驱动,用户行为
BOSS(Business Operating Support System)系统的账务子系统承担了计费话单、月租、程控功能、优惠的计算过程,账务子系统收费的及时性、准确性、稳定性指标对整个BOSS系统的运行质量、客户服务满意度、欠费控制有重要影响。随着中国移动“移动通信专家”向“移动信息专家”转变的战略思想深入贯彻,不断扩大的市场份额带来了不断上升的计费用户量;另一方面,用户营销细分的深入、业务推广速度的加快使得账务系统和流程复杂度提高。账务子系统在完成合账的计算之后判断用户欠费情况触发信誉度工单,从而完成从费用计算到欠费控制的过程,减少或避免用户行为带来的欠费的风险。
1 现有系统欠费控制流程
目前,在BOSS系统欠费控制中,费用包含两个方面:一方面是计费话单,另一方面是月租、程控功能等固定费用。计费话单采用的是离线计费方式,当话单产生之后由采集程序从网元采集至计费系统处理,处理之后送至账务子系统进行合账处理,根据欠费情况产生信誉度控制工单。固定费用的收取是在每日0时之后由账务子系统进行全量计算,之后产生费用变化触发信誉度工单,此时信誉度工单集中产生,对HLR的指令和系统资源产生波峰效应。目前的费用收取方式会导致用户订购行为发生的时间与实际收费的时间存在滞后性,导致用户有可能在这段时间产生大量费用而又无法进行信誉度控制,导致欠费风险的增加。
由于中国移动的产品日益多样化,特别是4G时代的到来,都对账务系统多样化支撑和账务处理及时性和准确性提供了更高的要求。
2 用户事件行为的欠费分析
由于用户产生订购的行为时间和费用收取时间存在滞后性,在这段时间内就会存在信誉度控制的模糊区,增加用户的透支额度,增加欠费风险。
观察以下场景:假如0透支用户需先交2元至账户才能订购2元短信套餐(含30条短信),但由于现行方案是到次日0时才收取这2元月租费用,因此在订购的时间至次日0时,用户有可能发送了50条短信(按0.1元/条)才触发了信誉度控制,而当次日0时到达才通过日账计算收取这部分费用时,用户已欠费2元,无形之中已经使0透支用户的额度提高了,带来了欠费风险。
从近期对用户欠费行为分析中发现,现在已经出现利用该时间差恶意发送短信,造成欠费的情况,尤其在套卡用户上。通过对订购30元短信套餐的2600个欠费套卡用户行为发现,其都是通过购买卡片后发送超过赠送额度的短信,当次日0时日账计算费用时,欠费额度已经升至30元,构成了恶意欠费。在统计的样本欠费金额中,出月账时样本平均欠费金额达25.41元。
同样,该问题在其它月租、程控功能费用收取上同样也存在。目前虽然在用户必须存有足够余额的前提下才允许订购相关产品的规则已经出台,但也无法完全规避这一问题。
3 建立基于事件驱动的欠费控制
现有的技术方案是不能实时解决由于用户行为产生的欠费风险。于是,有必要对这一情况找出一种较合理的处理方式,确保及时性,同时又能约束用户行为产生的欠费。
当用户使用按月收取的产品时,无论何时收取,都是足月收取,在用户与运营商之间已经建立产品订购协议,明确了这种规约。因此,当用户订购了这类产品时,费用的收取应与产品生效时间存在一致性约束,这就为建立事件驱动的欠费控制提供了基础。
将事件作为费用计算的驱动消息,实现用户的费用第一时间计算的同时,也降低了离线处理后产生的欠费风险。同时,由于基于事件驱动的处理方式已经第一时间分摊处理了一部分的用户数据,也提高了常规的日账处理速度。
整个系统处理流程图如下:
第一,该方法中,事件分为用户事件和系统事件。用户事件是用户需要通过办理业务触发系统响应的一种活动,如用户在前台办理短信套餐,这是一个用户事件。
第二,系统事件是用户不需要通过办理业务触发系统响应的一种活动,如用户拨打电话产生话单,送至算费引擎,这是一个系统事件。
第三,根据事件属性转换成消息,分别进入用户事件消息队列或系统事件消息队列。消息队列按FIFO(First In First Out)顺序计算,最先进入队列的消息最先被处理。
第四,事件含有以下属性E(es,et,st,sk,bc):事件序列号es:标识事件序列号的一组数字;事件类型et:区分是用户事件还是系统事件;子事件类型st:标识子事件类型,如入户、套餐变更、语音话单、短信话单等;事件key-sk:事件标识符,对于用户事件对应用户号码,对于系统事件,对应事件源,如话单文件号;账务周期bc:用户的账务月。
第五,用户消息队列的处理:事件的em和bc的组合在该队列中具有唯一性,当后续的em和bc到来并已存在队列时,后者消息不进入队列,直接删除。根据FIFO,一旦有用户事件产生,则算费引擎根据事件标识符sk,触发用户的费用计算,计算完毕后,更新用户实时费用信息。
第六,系统消息队列的处理:根据子事件类型st由相关的程序处理,如子事件为语音话单时,则由语音话单程序进行处理该事件消息。
第七,优化后的费用收取控制流程。
如用户139********在前台办理2元短信套餐(月租2元,含30条短信),用户办理该业务后,触发了一个用户事件E(100000001,1,3,139********,201102),算费引擎在收到该事件消息后,立即重新计算用户的费用,由于该2元短信套餐是按月租收取,则月租应立即收取不必等到次日0时再收取费用,这样就避免了潜在的欠费风险。
4 结语
事件驱动 篇4
关键词:事件驱动会计信息系统,会计运用,数据仓库
1 传统会计信息系统和基于事件驱动会计系统的比较
1.1 传统会计信息系统及其弊端
传统的会计信息系统是基于手工会计信息的处理模式,通过实现会计核算的电子化,根据系统中的数据完成相应的操作指令,如查询输出,更改数据、自动地生成财务报表等,并以视图的形式输出。由于传统的基于视图的会计信息系统仅是对手工会计信息处理方式的模拟,决定了其具有诸多的弊端,主要表现在以下三个方面:(1)会计数据处理有限。传统的会计信息系统处理对象只包括货币现金流动的结果,而对一些比较重要的会计信息如可靠性等缺乏关注,即使在后期普遍采用脚注来弥补不足,也无法满足企业决策层对各项会计信息的实时需求,影响企业的决策水平,不利于企业的长远战略发展。(2)会计数据缺乏实时性。传统的会计信息系统中数据具有严重的滞后性,由于受到信息处理和传送能力的局限,数据库数据与实际企业的各项业务活动严重脱节,并且在各个职能部门之间传递时也缺乏实时性,最直接的后果是导致会计报表的生成严重滞后于业务活动,最终使得决策层的决策偏离于最优决策,不利于企业的长远发展。(3)会计数据冗杂。在传统的基于视图驱动的会计信息系统中,各信息子系统对数据的分类标准不同,来源于原始凭证的企业的业务活动的相同数据就可能被层层的记录,一方面浪费了资源,造成数据冗余,另一方面数据层层录入难免会出现不一致,破坏了数据的一致性。
1.2 基于事件驱动会计信息系统及优势
基于事件驱动会计信息系统本质上是基于业务过程或事件来构建的,通过企业的日常业务活动完成信息搜集、处理、使用,在业务处理的同时完成会计信息的收集、处理、传输等实时操作。同时充分借助于网络通讯的优势实现会计数据的及时传输,高度共享。相比较于传统的会计信息系统模式具有以下优势[1,2]:(1)信息的采集更加科学。新型的基于事件驱动的会计信息系统在数据的采集时更加注重于企业业务活动中全方位,多方面的信息的搜集和记录,进而灵活地利用这些全面的数据生成高质量的报表,为企业的决策提供科学支撑。(2)会计数据集成存储和处理。新型的会计信息系统充分运用了数据仓库技术,实现了财务数据的高度集成,即通过在各相关财务记录之间建立相互关联的逻辑连接进而形成一个逻辑数据库,减少了数据库中的冗余信息,提高系统用户的响应效率,同时保证了数据库中数据的一致性。(3)实时控制。信息手段的现代化使得会计信息系统之间实现了信息的实时传输,增加信息的透明度,使得企业资源在各部门之间合理分配,提高效率,同时有利于加强企业内部的会计控制机制,及时发现企业经营活动中的各种问题并及时加以解决,减少决策损失,提升企业核心竞争力。
综上,相对于传统的会计信息系统,基于事件驱动会计信息系统更能适应当前信息化的要求,有助于企业的长远发展,实现自身价值。
2 基于事件驱动的会计信息系统的设计
2.1“事件驱动”思想———数据的采集
所谓“事件驱动”思想是指该事件是系统运行的触发器,通过系统定义的某些事件发生,系统就会自动运行相关的操作过程进行处理。当经济活动发生时,会计信息系统就会自发地根据定义的“会计事件”执行相关的操作。
2.2 网络通讯
互联网应用的普及是当前企业会计处理的大前提,会计人员可以充分利用网络通讯技术实现会计数据的高效传输,降低企业经营的成本。在新型的会计信息管理系统中,通过信息化手段将企业会计信息子系统的各个节点连接起来,实现数据共享。
2.3 数据仓库思想———数据存储处理智能化
数据仓库在会计信息系统中的引进是会计数据处理的一大飞跃,实现了数据采集、存储和处理智能化。在新型的会计信息系统中,业务活动发生时,业务事件数据被系统实时采集并按照一定的原则存储在数据库的相应位置,当系统受到系统用户的操作指令后,系统被触发,按照系统的自定义选择合适的模型或处理工具,自动从数据库中读取相应的数据执行指令,最后反馈系统用户的请求,以视图的形式输出。
3 基于事件驱动的会计信息系统在会计中的的运用
3.1 业务过程
业务过程指企业通过创造为客户提供直接或间接的商品或服务等以满足客户的需求,从而得到资源的逻辑活动的集合,其涉及企业日常业务活动的全过程,在会计信息系统中一般都会涉及获取和支付过程、转换业务过程和销售和收款过程等三个基本的业务过程。
3.2 信息过程
信息过程是指信息的获取和存储、挖掘及反馈的全过程。一般可以把企业的信息过程分为以下三类,即业务数据的实时采集、会计相关数据的存数和维护和会计信息的反馈:(1)业务数据的实时采集、存储和维护。首先,会计信息系统中要实时记录业务活动数据;其次,对于收集的数据要进行筛选,分类处理,符合要求的业务数据连同与数据库其他业务数据之间的关系一并存入事件驱动数据库相应的内存单元,方便以后的处理调用;最后要进行数据的定期更新和维护。(2)联机分析处理(OLTP)。联机分析处理主要是针对用户对于系统提出请求操作,系统会根据用户的指令要求,调用数据库中的相关数据,并套用相关的技术模型在线的予以多角度、多层次的分析所需要的数据,最后进行有效集成发现其中的规律,并以视图的形式输出给用户结果的处理过程,为企业的决策过程服务[3]。(3)数据传递和反馈。数据的反馈主要是指企业决策者根据会计信息系统处理会计数据时所作出的高质量的指标信息做出正确决策的过程。
3.3 决策管理过程
决策管理过程是系统的管理者或是系统的用户在设计、更新和控制以及评价业务过程时的决策活动。例如设计和控制会计信息系统的触发事件,更新设备决策时触发处理设备业务事件等。
4 加强会计系统内部风险控制
基于事件驱动的会计信息系统相对于传统的基于视图模式在系统性能、处理能力以及数据的有效性等方面都有着无可比拟的优势,但面对当前复杂的企业经营环境,当前的基于事件驱动的系统模式也面临巨大的风险挑战,基于此我们应积极的予以应对。
4.1 存在的风险
(1)软硬件故障。硬件能力的不足以及软件系统也可能由于自身存在的漏洞而崩溃,以及网络本身的故障也会给系统数据的安全性带来巨大的威胁。
(2)误操作和蓄意破坏。基于事件驱动会计信息系统是一个基于内部公共共享平台的实时处理的分布式系统,从而决定了它可能会受到会计人员的误操作以及系统之外人员的恶意攻击的威胁,导致系统的一致性和信息的准确性降低[4]。
(3)信息的安全性。随着信息技术的不断发展,互联网的普及,会计数据在互联网上的安全传输面临着巨大的挑战。同时由于基于事件驱动的会计信息系统是一个开放的信息系统从而决定了其更容易受到来自互联网上的攻击。
4.2 相应的处理策略
(1)完善会计软件的设计。无论是会计软件的开发公司还是各级会计软件的评审机构,要加强对软件内部控制的设计和检查,确保软件产品在数据的输入,处理以及传输过程均有高强度的安全保护功能,注重对内部控制机制功能的开发和检验。
(2)规范会计人员操作。首先应将系统中不相容的权限进行分离,便于会计人员在系统中的分工,然后指定严格的操作规范,设立严格的监督稽查机制,对会计人员的操作加以严格控制,保证会计信息的安全可靠,减少误操(下转第172页)(上接第160页)作。
(3)加强内部控制。首先应在会计信息系统中加强操作控制,即信息的设计中加入相应的控制程序,设置操作权限,过滤掉一些无效的或超越权限的会计处理,保证会计数据的完整性;其次进一步加强内部审计控制,定期对会计资料、机内数据和书面资料的一致性等进行审查,加强监督机制,保证系统的高效运转。
参考文献
[1]张荣贤,郑艺龙.构建基于事件驱动的会计信息系统[J].中国管理信息化,2007(3)
[2]江其玟.基于数据仓库的业务事件驱动型会计信息系统研究[J].审计与经济研究,2004,19(5)
[3]石道元.事件驱动会计信息系统的设计[J].财会月刊(理论),2006(5)
事件驱动 篇5
无线传感器网络 (Wireless Sensor Network, WSN) 作为一种低成本、低功耗的技术手段在物联网中被广泛应用, 起到至关重要的作用。随着技术发展, WSN的应用领域已经涉及到了医疗、环境、和国防等领域。WSN可以按照时间和时间驱动的方式进行发送和采集数据。时间驱动方式下WSN节点将依设定周期性采集检测数据, 用于现场基础环境的检测, 使用对象为具有一定传输速率的网络。而在事件驱动方式下WSN在事件触发后进行数据采集和传输, 大部分普通节点在事前处于休眠状态, 只周期性的采集少量数据上传节点, 所以这类网络应具备实时性、扩展性和稳定性的特征。基于事件驱动的WSN主要应用于需要对突发事件进行监测的情景, 如火灾、地震、农业生产环境突变等。每个节点的能量是固定的, 且观测节点常处于恶劣的观测陷阱中, 更换失效节点成本极高。因此降低能源消耗、延长WSN生存时间已经成为目前研究的热点问题。
WSN的数据传输是能耗的主体部分, 若对每个相同的突发事件都重新建簇会造成极大的浪费, 对相似突发事件的簇结构进行重复利用, 是节省能源、延长网络生存时间的一个好方法。
本文受生物适应性免疫机制的启发, 这种免疫机制会在病毒第一次入侵时学习和记录病毒的特征, 此后这类病毒再次入侵时, 可以依据记录的特征快速识别并消灭这类病毒。通过分析事件驱动的路由算法和生物免疫机制的相似性, 可将生物免疫机制引入算法设计中, 提出基于事件驱动的动态免疫簇路由算法 (EDICR) 。
二、事件驱动型路由算法
TEEN协议是典型的事件驱动特征路由协议, 可以短时间内对突发事件进行响应, 下面对TEEN协议各阶段工作流程进行具体分析:1.初始化阶段, 在初始化阶段, 每个节点被选为簇头节点的概率是一样的, 目的在于平衡各节点能耗。2.成簇阶段, 节点先选择所在簇, 打开收发器, 使用CSMA/MAC协议, 簇头节点可以获取属于它的簇内节点。3.数据传输阶段, TEEN协议中有两个重要的值, 分别为硬阈值 (HT) 和软阈值 (ST) 。一旦初始化结束, Sink节点会向簇头节点传输两个阈值, 这两个阀值会被广播给其他节点。传感器节点不断感知周围环境, 当感知监测值首次达到硬阈值时, 此传感器节点会把这个值储存在SV中, 同时将数据向簇头节点传输。
事件驱动的WSN的典型分簇协议中, 在建立分簇时, 节点之间的距离, 节点的剩余能量, 事件的强度等因素会成为影响建簇的因素。目前较为先进的基于TEEN协议的动态路由分簇算法名为DCRA, 它基于突发事件特征, 在事件发生后根据事件动态建簇。
三、基于事件驱动的动态免疫分簇路由算法
(一) 网络模型及无线通信能耗理论
1. 网络模型
假设在A区域中随机部署传感器节点, 同时假设这个WSN拥有以下几条特点:
(1) 网络由基站和传感器节点构成, 其中只有一个位置固定的基站, 位于监测区域外;传感器节点数量众多, 根据应用场景的不同情况部署足够多的传感器节点, 分布在监测区域, 传感器一经部署不再移动。
(2) 能量方面, 基站具有非常大的无线发射功率, 且可以获得持续能量供给;各节点拥有相同的固定能量值, 且无法补充, 无线发射功率有限。
(3) 只有特定事件才会触发传感器节点传输数据, 而不是周期性采集数据传输给基站, 但是当特定事件发生时, 传感器节点需要具备极高的响应速度。
(4) 无事件发生时, 节点的收发器处于休眠状态;一旦事件发生, 将立刻唤醒多个传感器节点, 第一时间把数据发送给基站。
(5) 可以将A区域划分为面积已知的几个部分并且编号。
(6) 各传感器节点时钟同步。
在这些假设中, 前两条假设在WSN当中具有普适性。其余的假设与事件驱动型网络特点更相符。特别是第五条, 因为节点被分区编号, 具备了独立的位置, 采集到的数据才具有更大的意义, 本文将全部传感器节点分布的区域看作一个广义节点来处理。
2. 无线通信能耗理论
直线距离为两个节点间传输一次k bits的数据, 发送方能量的减少值是:
接收方收取k bits数据消耗的能量为:
通常情况下:
其中Eelec为编码调制1 bit数据所消耗的能量。εdn是放大器传输1 bit数据的能耗, 能耗大小与数据传输的距离和误码率有关。ε是传播损耗系数, n是传播损耗指数, n的值因环境不同而改变, 取值范围为[2, 4]。为降低传感器节点能耗, WSN应少用长距离单跳通信, 转用短距离多跳通信方式。
(二) EDICR算法流程
EDICR算法流程是参照生物免疫系统原理, 基于TEEN和DCRA协议生成的, 通过使用已经发生过的相似突发事件的簇结构, 减少能量损耗。所做的改进如下:
1.初始化网络后, 传感器节点进入休眠状态, 休眠中的节点只能完成参数计算、数据请求等任务。当某检测区域发生事件时, 通过软硬阈值的值去判断是否触发事件, 是否激活传感器节点。
2.事件触发后, 传感器节点首先对事件的亲和度条件进行判断, 被激活的节点是否符合能量条件, 只有同时满足条件的事件会完成成簇记录, 完成簇建立后进行数据传输。
3.簇头节点与基站多跳通信。
4. 簇在生命周期结束时会被解散。保存事件记录, 再次初始化网络, 待下一次事件发生, 重新建簇和传输数据, 循环执行这个过程, 直到耗尽所有传感器节点的能量, EDICR算法整体流程图如图1所示。
(三) 与生物免疫系统的映射
生物免疫系统结构非常复杂, 具有自适应性。具体体现为当肌体被病毒入侵时, 免疫系统能够快速识别病毒, 迅速将其消灭, 维持肌体健康。WSN由于对历史簇结构没有记忆, 所以当想死时间发生时, 会重新建簇, 这种行为会浪费大量的能量。比较事件驱动的无限传感器网络对以上情况加以了改进, 它同时具备传感器网络路由算法强大的信息处理能力, 和生物免疫系统强大的防御功能。见表1, 因为与事件驱动的路由算法有相似之处 (其主要映射关系如表3.2) , 由此引申, 发现事件驱动的路由算法中相似事件出现时建簇能量浪费问题可以通过引入生物免疫机制得到解决。将传感器节点作为抗体, 事件作为抗原, 在免疫过程中抗体对抗原有记忆保存的功能, 使得以后出现相似的抗原 (事件) 时抗体 (传感器节点) 能够及时响应对事件快速成簇。这样既减少了簇类建立阶段的大量能耗, 同时增长网络生存时间。
(四) 事件触发成簇与数据传输
事件触发成簇过程由两个阶段构成, 分别为判断事件触发、构建簇类, 如图2所示。
数据传输过程是通过簇头对其簇内的数据进行采集和融合处理。融合处理后的数据被传输给sink节点, 簇头和Sink节点的采用多跳的方式进行通信, 以便节省簇头节点能量消耗。
1. 检测是否达到触发条件
在EDICR中, 利用TEEN协议的硬阈值 (HT) 和软阈值 (ST) , 在网络的初始化阶段将这两个值向所有的传感器节点进行广播。节点通过不断感知所处环境, 感知到的数据值D首次达到硬阈值数值时, 这个节点向Ropt范围内的节点传输信号, 在此范围内的全部节点都有资格争取成为簇头节点, 根据簇头选择算法建立簇类后, 簇内节点传输数据给簇头, 并将这个数据保存为SV。在此过程中, 这些节点必须满足以下两个条件才会采集并发送数据:
(1) SV减去收到数据值所得到的差取绝对值不小于软阈值;
(2) 当前接收到的数据不小于硬阈值;
当现场检测到的值同时满足以上两个条件时, 触发事件, 传感器节点的状态从休眠变为兴奋, 通过式 (1) 得到成簇的范围ccfw, 式 (2) 得到成簇的生命周期cczq, 所有处于ccfw内的节点都有资格争取簇头的资格, 同时保存此次检测数据为SV。
其中Ropt代表最优成簇半径, D代表监测数据值。
在公式中, S表示簇的常规生命周期, 其值可以根据实际情况而定, 通常是一个固定值, D代表检测数据值。从式1中可知, 在硬阈值 (HT) 和Ropt为常数时, 事件的刺激强度与ccfw成正比, 从式2中可知, S和硬阈值为常数时, 事件的强度越大成簇周期越长。
根据事件驱动WSN的特点, 在没有发生事件时, 休眠全部节点, 使得TEEN在不需要传输数据的阶段不建簇, 减少了能量浪费。另外, 根据事件的不同特征, 成簇范围和成簇周期也不同, 大量减少了通信过程中的能量消耗。
2. 建立簇类和数据传输
(1) 判断亲和度
当事件满足触发条件, 触发成簇之后, 首先根据公式3对比新的事件和历史事件的亲和度有多少, 并根据公式4找到最大亲和度。
其中Affinity用来评价亲和度, 范围为[0, 1]。Affinity越大, 亲和度越高。ΔD=|D-D*|。D为检测数据的值, D*为历史数据, S为事件的欧式距离, Affinity__max为当前事件和之前所有事件中相似事件的最大亲和度。
如果最大亲和度大于等于0.7满足评价标准则即可进入下一步骤。
(2) 在判断事件激活区域传感器节点能量水平后, 对最高亲和度事件进行选择, 复制该事件的簇的结构, 进行建簇, 然后进行数据传输, 当簇的生命周期结束时, 解散全部所形成的簇。更新节点信息, 保存事件的成簇记录, 再次初始化网络, 等待下一个事件发生, 再次进行建簇和数据传输, 循环执行这个过程, 直到全部传感器节点的能量消耗殆尽。
四、结语
本章引入生物免疫系统的工作机制, 针对事件驱动的突发事件监测中, 可能遇到的相似事件的情况, , 设计了一种动态免疫分簇路由算法EDICR。该算法将对比当前事件和历史事件, 若相似度很高, 则直接调用历史事件的成簇记录, 达到减少了建簇能耗的目的。
参考文献
[1]刘海涛, 马建, 熊永平.物联网技术应用[M].北京:机械工业出版社, 2014.
[2]刘化君.物联网体系结构研究与探讨[J].计算机与网络, 2013, 36 (13) :68-71.
[3]刘化君, 刘传清.物联网技术[M].北京:科学出版社, 2014.
[4]沈苏彬, 范曲立, 宗平, 等.物联网的体系结构与相关技术研究[J].南京邮电大学学报:自然科学版, 2010, 29 (6) :1-11.
[5]李道亮.物联网与智慧农业[J].农业工程, 2012, 02 (1) .
[6]文黎明, 龙亚兰.物联网在农业上的应用[J].现代农业科技, 2013, (15) :54-54.
[7]王保云.物联网技术研究综述[J].电子测量与仪器学报, 2011, 23 (12) :1-7.
[8]马建, 物联网技术概论[M].机械工业出版社, 2011.
[9]陈剑霞, 于海斌.一种面向无线传感器网络协同任务分配的动态联盟更新机制[J].传感技术学报, 2013, 22 (4) :499-504.
事件驱动 篇6
在计算机集成制造系统 (CIMS) 中, 生产调度是联结生产过程控制和管理的纽带。所谓生产调度是在给定时间范围、有限的资源和过程配方的前提下, 决定when, where和how生产一组产品的决策过程[1]。流程工业调度问题是多约束、多目标、随机不确定优化问题, 是NP (Non-polynomial) 完全问题, 求解规模随问题的增大呈指数增加[2]。因此, 它不能像计划问题一样建立严格意义的优化模型求解, 模拟仿真成为辅助调度决策的主要手段。
事实上炼油厂的调度工具大多数是基于调度仿真的, 仿真可以为生产调度优化提供分析数据, 即“what-if”分析[3], 比如商业调度软件Aspen Orion[4], HYSIS.Rfinery[5]都集成了调度仿真、线性规划和专家系统等这些技术, 巴西圣保罗大学开发的SIPP[6]和希腊佩特雷大学的原油调度软件[7]也都将调度仿真和其它优化技术相结合, 以便辅助调度指令的生成。
但对于企业综合自动化的应用和需求来说, 用这些包括工艺操作变量和完整物性参数的流程模拟软件建模及仿真计算成本太高。
鉴于此, 仿真系统IntelSim[8]以较低的建模成本, 对固定生产方案和操作条件下的全流程投入产出物流过程进行模拟。此后扩展为多生产方案炼油过程仿真系统[9,10], 建立了一个生产方案列表及其对应的装置产率模型, 以固定的仿真周期 (生产班次, 8 h) , 根据调度指令从方案列表读取模型进行仿真。该系统能处理两类事件:一类是在不同班次间发生方案切换的事件, 如图1中的E1, 它是生产调度的常见事件, 也是仿真系统处理的主要事件, 对应的装置产率模型为Y
该系统无法处理班次内的两个及以上的事件, 如图1的E3, E4。所以, 这个仿真实现方法的关键问题是时间间隔的选择, 需要同时考虑准确性和效率。如果选择较大的时间间隔, 系统的计算效率提高, 但容易产生在一个时间间隔内有两个及以上的事件的情况使系统无法处理, 系统的准确性降低。如果选择较小的时间间隔, 使一个时间间隔内最多只有一个事件, 系统可以处理所有事件, 准确性提高, 但系统的计算效率降低。
由于调度事件可以发生在任意时刻, 本文提出了调度事件驱动的仿真建模方法, 根据事件划分仿真时间间隔, 推进系统仿真。仿真系统从一个事件发生时刻直接推进到下一个事件发生时刻, 仿真的准确性和效率都可以提高。
2 石化企业生产调度需求定义
石化企业物流生产包括原油进厂、生产加工、中间产品储存、二次加工和产品出厂, 是一个连续时间过程, 生产计划、生产调度及过程控制方案等的变化都会对其各类参数及平衡产生直接影响, 石化企业物流过程随着生产计划、生产调度以及装置控制方案的改变而改变。尽管如此, 从调度层面看石化物流生产, 许多装置的加工方案和操作条件在设备投入使用以后就不再发生频繁的变化。石化生产调度一般是对装置的生产方案, 装置和罐区的物料移动量进行选择、决策, 时间周期一般为班 (8 h) 或天, 最长可达一周。针对石化企业生产调度的特点, 假设系统是准稳态的, 即生产过程在本次调度事件发生后到下一次调度事件发生前, 装置的生产状态和装置之间的物流关系是不变的, 物流的动态变化可以用平均值或累积量来近似处理, 且调度方案发生切换时的动态过渡状态在调度时间周期下可忽略。
在石化企业中, 生产调度是指调度人员通过调度指令操作生产过程, 实现生产计划目标。在本文中, 调度事件是指操作人员或控制系统遵照调度指令所进行的生产操作。调度指令集如图2所示。假设调度指令被按时严格执行, 则调度事件与调度指令是等价的。
3 调度事件驱动的建模方法
在石化生产调度系统准稳态假设下, 根据调度事件把石化企业物流生产过程分解为不同的稳态过程, 建立过程与事件的关联关系, 由事件推进过程, 如图3所示。稳态过程由物料、设备和物流关系组成, 指定过程输入值, 计算得到过程输出值。调度事件驱动石化物流过程的建模如图4所示。
记调度事件为E (ei∈E) , 稳态过程为P (pi∈P) , 则
pi=P (ei) (1)
记物料、设备和物流关系分别为MA, EQ, G, 则
式中:EQi, MAi, Gi——对应每一个稳态过程pi上的物流、设备和物流关系。
3.1 调度事件
事件在像石化物流过程这样的“网络化”过程中的定义相当重要, 事件发生位置不同, 产生的效果也不同。本文把石化物流生产过程的调度事件分为两类:全局调度事件和设备调度事件。其中, 全局调度事件, 记为E, E={ei} (i表示事件的种类) , 考虑物流网络中的所有设备;设备调度事件, 记为Unit_E, Unit_E={Unit_ej, i} (j表示设备, i表示事件的种类) , 考虑某一特定设备。全局调度事件在综合考虑了设备调度事件后得到, 设备调度事件由全局调度事件分解得到, 在某一时刻, 全局调度事件与设备调度事件的关系如图5所示。
图5为一个3设备物流网, 则:
如果没有特别指明设备调度事件, 文中出现的调度事件指全局调度事件。
3.2 过 程
在石化实际生产中, 物流过程由不同物料在物流设备中的转化、存储和移动形成, 物流关系贯穿各类生产设备。物料MA={原料, 中间产品, 产品, 辅助物料}, 设备EQ={加工设备, 容积设备, 管道设备, 辅助设备}。其中, 加工设备在不同生产方案下的输入、输出物流可以由产率模型得到, 产率模型用工厂数据统计拟合, 具体建立方法见文献[10]。
基于设备和物料的物流关系拓扑图G由节点A (ai∈A) 和弧V (vij∈V) 组成。
节点A可以是加工设备、容积设备和虚拟节点。{加工设备, 容积设备}∈EQ, 而虚拟节点的引入, 可以用来表示分流点、汇流点和虚拟罐。对于管道设备, 如果管道存量可以忽略时, 管道在拓扑图中就是弧;如果管道存量不能忽略时, 将管道存量定义为上游虚拟罐设备, 所以弧V代表存量可以忽略的管道, 连接上、下流的设备, 决定物料的流向。
物流关系G可以分为物流的转变和物流的转移。在加工设备和油品调和罐中发生的是物料转变。对发生物流的转变关系的节点, 其进出物流可以建立如下转换关系 (当节点为加工设备时, 该转化关系同文献[10]的产率模型一致) :
式中:MA (in, i) ——节点的进料, i=1, 2, …, l;MA (out, j) ——节点的出料, j=1, 2, …, k;bj——对应出料的转换率, j=1, 2, …, k;q——物料的流量属性。
在油品存储罐和管道中发生的是物流转移。在物流转移过程中, 物料的属性和流量都是不变的。
整个物流关系G应同时满足单节点平衡和物流网络约束关系, 具体如下:
单节点平衡:
式中:ΔQ——单位时间内设备容积的变化。
物流网络约束关系矩阵:
式中:n——节点数。
当i≠j时, vij=0表示无物流从ai到aj, vij=1, 表示有物流从ai到aj;当i=j时, vij表示物流从ai到ai, 约定vij=1。
在图2的石化生产调度指令集中, 设备生产方案切换指令改变式 (4) 的bj和式 (6) 物流网络约束关系矩阵V。物料移动指令改变节点输入输出物料MA (in, i) 和MA (out, j) 的种类 (i, j) , 数量 (q) 和方向 (物流网络约束关系矩阵V) , 实现调度事件对过程的驱动。
4 仿真实现
在多生产方案仿真系统[10]的基础上, 利用MATLAB/Stateflow工具的事件驱动功能, 和MATLAB/SIMULINK, Oracle数据库一起开发的调度事件驱动的石化物流仿真系统, 根据中石化某分公司MES生产数据, 建立了各类功能炼油装置13套、储罐180个、逻辑罐区14个、涉及物料418种, 来模拟生产方案切换和物料移动调度事件, 和设备故障等随机事件。仿真流程如图6所示。在仿真过程中, 如果某些量 (如罐容) 超标了, 应中断仿真报警, 并重新开始。
5 仿真实例
对某企业2007-01-05 6:00~14:00到2007-01-12 14:00~22:00的23个班次的生产数据进行仿真、对比。开始时首先根据仿真时段前一生产班次的实际记录设定初始值, 然后根据生产信息输入调度事件指令开始仿真, 设备调度指令可以由全局调度指令分解得到。本节中, 真实值指来自生产现场的数据, 仿真值1指由本系统仿真所得的数据, 仿真值2指由多生产方案系统仿真所得的数据[10]。
5.1 Ⅰ常
Ⅰ常在这期间的生产方案为Ⅰ常重整料、灯油、柴油、溶脱油方案, 模型参数如表1所示。
虽然Ⅰ常的生产方案不变, 但仍有各种事件发生。表2为Ⅰ常在这期间发生的生产事件统计。
仿真后, Ⅰ常的重整料 (Sidetrack Ⅰ) 和常二线 (Sidetrack Ⅲ) 的输出数据, 与实际生产数据、多生产方案仿真系统的数据对比如图7所示。
表3为数据的误差分析, 可以得出:由于本系统考虑了同一生产方案内各种生产事件的影响, 因此它比多生产方案仿真系统的数据更接近生产数据。
5.2 Ⅰ常的后续设备
仿真模型除了单生产设备模型的准确性外, 更取决于设备模型之间物流结构的准确度。同时, 上游设备的模型准确性会影响下游设备的模型准确性, 即上游设备模型误差会通过物流关系传播累积而影响下游设备。图8为与Ⅰ常重整料侧线相关联的局部流程。在表2所列的生产事件影响下, Ⅰ常重整料侧线输出的下游装置催化重整的进料侧线的仿真数据对比如图9所示, 误差分析如表3所示。结果可得本系统催化重整进料的仿真值相比多生产方案仿真系统, 与真实值拟合得较好, 表明了本系统物流结构的准确性;并根据常识误差在传播过程中有累积效应, 造成下游设备模型的仿真误差比上游设备大, 提高上游设备模型的精确度有助于提高下游设备模型的精确度。
注:CDU——Distillation Unit;RAU——Catforming
6 结 论
本文针对石化企业的生产调度问题, 分析了石化生产调度对仿真的需求, 鉴于文献[9,10]多生产方案炼油过程物流仿真系统按照固定周期推进系统仿真的不足, 提出了一种调度事件驱动的石化物流仿真模型的建模方法, 该方法是在系统准稳态假设的前提下, 根据发生的调度事件把石化的物流生产过程分解成各个稳态过程, 从而把生产过程与调度事件相互关联起来, 在稳态过程上可以建立石化物料、设备和它们的物流关系, 实现了调度事件对石化物流生产过程仿真的驱动。根据上述建模思想, 建立的调度事件驱动的石化物流仿真系统由事件推进仿真, 支持不固定周期的仿真。系统可以对生产方案切换和物料移动调度事件、其它生产事件和随机事件进行仿真。仿真结果与实际生产数据、多生产方案仿真系统的数据进行对比分析后, 显示了本仿真系统的有效性和优点。它可以帮助调度人员预先分析调度方案, 寻找更优的调度指令, 实现调度优化。
参考文献
[1]FLOUDAS C A, LIN Xiao-xia.Continuous-time Versus Discrete-time Approaches for Scheduling of Chemical Processes:Review[J].Comp Chem Eng, 2004, 28:2109-2109.
[2]赵小强, 荣冈.流程工业生产调度问题综述[J].化工自动化及仪表, 2004, 31 (6) :8-13.
[3]JEFFREY D K.Next-generation Refinery Scheduling Technolo-gy[C]//2003 NPRA Plant Automation and Decision SupportConference.San Antonio, TX, 2003.
[4]Aspen OrionTMPetroleum Refinery and Petrochemical Schedu-ling for All Plant Activities[EB/OL]. (2004-04-26) [2008-05-09].http://www.aspentech.com/ps/orion.pdf.
[5]Hyprotech LTD and KBC Advanced Technologies AnnounceHYSIS.RefineryTM[EB/OL]. (2000-03-26) [2008-05-09].http://kbcdev.contentactive.com/default/documents/indus-try%20releases/pr_000306.pdf.
[6]MAGALHAES M V O, MORO L F L, SMANIA P, et al.SIPP-A Solution for Refinery Scheduling[C]//1998 NPRAComputer Conference.San Antonio, TX:National PetroleumRefiners’Association, 1998:16-18.
[7]GEORGE C, NIKOLAOS P, DIMITRIS M.Refinery Short-term Scheduling with Tank Farm, Inventory and DistillationManagement:An Integrated Simulation-based Approach[J].European Journal of Operational Research, 2005, 166:812-827.
[8]裴瑞凌, 荣冈.流程工业生产调度问题综述[J].化工自动化及仪表, 2005, 32 (2) :43-46.
[9]LI Jian-lie, RONG Gang, FENG Yi-ping.A Hybrid Platformfor Refinery Simulation with Case Switches[C]//8th Interna-tional IFAC Symposium on Dynamics and Control of ProcessSystems.Canc挷n, Mexico, 2007:267-272.
事件驱动的C51单片机编程模型 篇7
传统的程序结构是线性的,CPU按顺序一条一条地执行代码,而事件驱动是程序控制的一种新的模型,其程序流程不是固定的,而由用户或系统的事件来触发什么时候执行哪段代码。事件驱动的程序比较容易扩展,且程序结构清晰,对用户操作响应及时。
本文指出了在C51单片机中开发中,C语言容易误解的几个方面;然后给出了C语言实现事件驱动的程序框架。
1 概述
传统的单片机程序大都用汇编语言编写,编写的程序代码效率很高,可以充分利用单片机的有限资源,对于单片机初学者来说也可以更深入掌握单片机的内部结构、指令系统,更容易理解单片机硬件系统同软件之间的对应关系。但有些项目或产品中对单片机的处理能力要求不高,对响应速度也不高,但单片机软件内部逻辑处理复杂,算法实现难度较大,比如实现较复杂的通信控制协议、复杂的数学运算等。对于这种情况,如果还采用汇编语言编写程序,则实现的复杂度很大,调试相当困难,难于保证整个软件质量;另外,代码量很大,使汇编代码难于阅读、改进和维护。因此对于这种情况,可以用C语言来代替汇编语言进行单片机软件开发。
C语言是一门中级语言,把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言代码效率不及汇编语言,但C语言有很好的表述能力来描述系统结构,对于开发人员来讲更容易把握软件的逻辑结构,更容易把精力花在解决实际逻辑问题上而不是浪费在汇编语言上下跳转的混乱中。C语言主要优点在于它的结构化设计、灵活的数据结构、代码的高效率、可移植性,这正是开发较大系统所必须考虑的因素。所以,在大型程序设计时,应该首先考虑使用C语言而不是汇编。
2 应用
C语言在单片机程序中的应用和在标准计算机中的应用有很多不同的地方,下面总结一下在应用中注意的问题。
2.1 同标准C语言的区别
不同体系单片机上的C语言和标准C语言大部分语法是相同的,但也会有细微的差异,因此在单片机上开发C语言程序时,要特别注意此体系单片机上的C语言同标准C语言不同的地方,比如Keil C51上的C语言有很多关键字同标准C语言上的不同,增加了data、idata、xdata等关键字。如果想让程序在不同体系的单片机上运行,这些不同的地方就要特别注意,具体差异一定要查阅对应的C语言手册。
2.2 数据结构
数据结构的应用是C语言最强大表达能力的体现,除了使用最基本的数据类型外,还可以使用用户自定义的数据结构。基本的数据类型包括整型、实数型、字符型等,自定义数据结构主要指结构体struct、枚举enum、共用体union等高级数据类型。在单片机C语言编程中,很多人只使用基本的数据类型,而不使用高级自定义数据结构。理由是使用高级数据结构会严重影响代码执行速度。其实,这是不正确的看法,下面通过比较基本数据类型和高级数据结构两种形式的数据访问代码的效率来论证。以C51单片机为例,程序如下:
上面对应的汇编代码由C51编译器内存模式采用大模式、代码9级优化所产生,注意查看“比较开始”,“比较结束”之间的语句1.1/1.2/1.3及2.1/2.2/2.3产生的对全局外部变量访问和对全局结构体变量成员访问汇编代码的差异。可以发现,1.1/1.2/1.3对应的代码形式完全一样,2.1/2.2/2.3对应的代码形式也完全相同,效率也相同,所以使用高级数据结构不会增加代码的开销,编译器会自动进行优化。因此,在代码编写时应尽量使用高级数据结构来组织信息,达到代码易于编写、易于维护的目的。
2.3 程序库的使用
标准C语言有很多的库可以使用,如stdlib、stdio等,利用语言本身提供的库可以重用大量标准功能,减少代码重复开发,如字符串操作等。但不用体系的单片机C语言库同标准C语言库是不同的,使用其中函授时应该搞清楚其中的区别,如函数名称相同,但参数顺序可能会不同。
另外,开发中很多人喜欢用自己编写的函数代替库函数,认为这些的代码效率高;其实库函数本身已经针对于单片机体系进行了优化,只要正确使用执行效率一般比自己重写的函数要快得多。因此,除非非常清楚库函数的实现机制及其存在的弊端,应尽量使用语言自带的函数库。
3 基本原理
3.1 基本概念
传统的程序是线性的,由主程序按照代码流程一直运行直到代码结束,程序流程是按照程序设计人员设计的流程执行。事件驱动是程序控制的一种新的模型,特别是在可视化用户界面方面应用广泛。事件驱动程序的流程不是固定的,程序只提供对各种事件的处理代码接口,而到底什么时候执行哪段代码由用户的操作事件决定。用户的操作事件是指用户同系统的交互事件,如通过鼠标点击某个按钮,按下键盘上的某个键,定时器到达等。程序只要提供对事件的响应代码就完成了软件的功能。
可以看出,事件驱动的程序组织围绕事件处理展开,更容易使程序模块化、结构化,并且各功能模块界限分明,便于扩展。
3.2 Windows事件模型
Windows操作系统是典型的事件驱动,单片机的事件模型也可以借鉴其实现。在Windows中,应用程序只需将设计好的窗体显示出来,剩下的工作主要是用户进行操作产生事件,不同的事件产生特定标识的消息,消息由Windows送入消息队列,再有Windows的user.dll模块把消息分发给应用程序的消息处理接口,应用程序根据事件进行不同的处理,显示响应给用户。图1是Windows事件驱动的模型图。
在这种模型中,应用程序只需处理其关心的事件,不需要耗时等待事件的产生,而由Windows统一进行调度,这样能充分利用CPU的处理能力,使系统对外界响应准确而及时。
4 驱动软件
在事件驱动基本原理基础上,借鉴Windows事件驱动模型,提出能应用到C51中的事件驱动软件架构。
4.1 总体架构
事件源是事件驱动的源头和动力,一般由中断或周期扫描产生事件,当发生事件时就把事件转变为标识事件的消息,放入对应的消息队列。处理函数检测到消息队列不为空时,依次取出消息进行处理,直到消息队列为空如图2。
4.2 事件源
事件源一般由中断或周期扫描产生,常见的有按键事件、串口事件、定时事件等。事件检测代码一定要精悍短小,耗时少,而对事件的具体处理可能会消耗较长的时间,一般放在主循环中处理。
按键事件可以采用周期扫描的方法,而周期扫描可以在时钟中断中进行,如时钟中断定时10ms。当定时中断到达时,扫描系统的所有按键状态,执行逻辑判别,如果发现有键按下,则产生按键消息,并将键值存入消息体。实际应用时还要注意按键的去抖处理等。
串口事件用中断的方法实现。用C程序编写好的串口中断处理函数进行串口线上字节的接收、缓存。串口通信协议一般以字节组成的数据帧结构进行传送,而控制协议中一般规定了帧头、帧尾等控制标志,在中断程序中就可以进行帧头帧尾的判别,直接将接收的字节组成完整的帧结构。这样,当判别到帧结束的时候,就可以形成“串口数据帧到达消息”送入串口消息队列。
定时事件采用时钟中断的方法实现。在时钟中断到达时,对各个定时计数器加1,如果定时计数器到达了预定的值,则说明定时时间到达,此时生成“定时到达消息”送入定时消息队列。
4.3 消息队列
消息队列用来暂存各种事件产生的消息,防止消息瞬间产生过多来不及保存而丢失。消息队列的设计有多种可选择的策略模型,可以采用全局一个消息队列;也可以根据不同事件类型各对应一个消息队列;或根据优先级设计几个消息队列。选用哪种策略要和系统实际需求结合起来选用。一般情况下,选用一个事件类型对应一个消息队列的模型比较合理,此模型处理逻辑清楚,并且可以根据事件的重要程度给定各个队列的优先级,如串口消息队列优先于按键消息队列,系统结构如图3:
每个队列采用先入先出原则。队列实现上可以采用链式动态分配结构,也可以采用静态数组循环结构。动态分配需要额外的内存分配、回收等损耗,访问时间有抖动,但可以充分利用系统闲置的缓冲区暂存较多的消息,减少了由于瞬间消息数量太大造成的事件丢失;静态数组访问速度很快,访问时间固定,但队列容量固定,必须选取合理的容量大小,在消息溢出率和内存利用率间取得平衡。队列中每个消息项可以用结构体实现。
4.4 处理函数
处理函数放在main函数的主循环中,连续循环调用。处理过程较简单:查看队列中是否有消息需要处理,如果有则取出消息,根据消息内容执行不同的函数即可。主函数结构举例如下:
主循环中三个函数分别用于处理串口消息队列、定时器消息队列、按键消息队列。根据消息优先级不同,队列的处理有所区别:对于高优先级的队列处理函数,要把所有的消息都处理完毕才返回;对于低优先级的队列处理函数,可以只处理一个消息就返回,这时主循环又会进入高优先级处理函数,如果有高优先级的消息则处理,如果没有则再次进入低优先级消息处理函数。这样就保证了高优先级的消息被优先处理。程序流程如图4。
5 结语
C语言逐渐成为嵌入式开发的主要编程语言,在C51系列单片机中的应用也越来越广,本文指出了C51上C语言编程的几个要点,在此基础上,给出了用C语言实现的基于事件驱动的编程模型,包括事件源产生机制、消息队列实现和优先级策略、消息处理函数结构。此模型逻辑清晰,具有较强的通用性,可以针对不同的应用情况进行扩展,有较强的实际应用价值。
参考文献
[1]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.
[2]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001.
事件驱动 篇8
英国的XMOS Semiconductor公司推出了一种全新的控制器件:事件驱动多核心处理器(以后简称XCore处理器)。凭借一种叫作软件化芯片(Software Defined Silicon)的新技术,XMOS提出了一种革命性的电子设计方法:硬件设计软件化。通过软件设计,可以使用XCore处理器实现以前需要通过FPGA,ASIC实现的硬件性能。这种新的处理器集RISC CPU的效率、DSP的性能和FPGA的灵活性于一体。
1XCore处理器的基本构架
图1为XCore处理器的基本框架图[1]。如图所示,每个处理器(以XS1-G4为例)有4个内核(XCore),XCore之间通过一种称之为X-link的技术连接,可以实现XCore之间的数据通信。XCore内部有丰富的硬件资源:8 KB的OTP ROM,64 KB的RAM,10个计算器,6个时钟模块,7个同步单元和4个硬件锁。除此之外,XCore最特别的是具有8个硬件线程[2]和32个通道端(Channel Ends)以及1个事件驱动管理器。每个硬件线程具有独立的专有寄存器组[3],同时可以访问所在核内的共享硬件资源。
通道(Channel)是线程之间通信的主要方式,一个通道可以连接几个通道端。这样,使用各个通道端的硬件线程就可以相互通信了。通道可以在不同的XCore之间建立,依托强大的X-link功能,甚至不同处理器之间的线程也可以通过通道进行通信。
2XCore处理器特点
2.1 硬件多线程技术
硬件多线程技术是XCore处理器能够硬件设计软件化的关键。有别于传统的操作系统实现的多线程,硬件多线程是通过特有的硬件单元来调度。每个硬件线程的时间片精确到1个时钟周期(对应于处理器工作在400 MHz主频的情况下,就是2.5 ns)。传统的操作系统分配给线程的时间片都是在ms级[4,5]。线程调度的实时性保证了多个硬件线程可以组成高性能的处理流水线。每个XCore拥有8个硬件线程,如果这个8个线程全部运行,在400 MHz的CPU主频的情况下,理论上可以组成一条8级的主频为50 MHz的流水线;如果处理器内的4个XCore全部运行,则可以组成4条这样的并行流水线[6]。这足以完成大部分中低性能的FPGA实现的功能。
2.2 多功能智能IO模块
多功能智能IO模块是XCore处理器的另一大特色,该模块可以对IO数据进行处理,然后再将数据缓存后送CPU内核处理,这样,可以减轻IO操作对CPU内核的负担。使得流水线设计瓶颈可以缓解。设计者可以适当延长处理流水线每一级的长度,使得软件设计更加灵活,功能更加强大。
多功能智能IO模块具有以下几个功能:端口宽度可编程;带时钟、片选的IO接口;可编程时序IO接口;序列化IO接口;可编程FIFO缓存接口;可编程条件IO接口。灵活运用这些功能,可以轻易的实现MII,ULPI等高速总线接口。
2.3 事件驱动运算
相对于操作系统管理下的软件线程,XCore处理器的硬件线程具有同样的灵活性[7]。每个硬件线程可以被阻塞,当硬件线程被阻塞时处于睡眠状态,它所占用的时钟周期可以释放给其他的硬件线程。举个例子,如果某个XCore以400 MHz的工作频率运行8个线程,那么每个硬件线程的实际工作频率是50 MHz。当其中4个线程被阻塞时,剩下的4个硬件线程的工作频率就能够提升到100 MHz。当线程被阻塞时,需要等待指定的事件将它唤醒,这些事件可以由定时器、智能IO模块和线程之间通信的通道产生。基于事件驱动运算的机制,可以极大地减少XCore处理器的功耗并显著地提升XCore处理器的效能。
3实例介绍
串口服务器是在工业控制领域经常用到的一类设备,其作用是实现UART与以太网之间的协议转换,下面给出了3个不同的设计方案:采用通用嵌入式CPU实现的设计方案[8];采用FPGA实现的设计方案[9];以及采用XCore处理器设计方案,如图2所示。
这3个方案比较类似,基本上都是单核心处理芯片加外围接口芯片的SOC解决方案。不同的是,第1个方案的处理核心是集成了以太网MAC和UART的通用处理器。第2个方案的处理核心是FPGA器件。第3个方案的处理核心是XCore处理器。
第1个方案的优点是设计起来容易、功能灵活;在通用嵌入式CPU上运行操作系统,使用标准的TCP/IP协议和UART协议,能够实现各种复杂的控制功能。缺点也很明显:CPU内部集成的串口有限,一般只能实现不超过4个串口的串口服务器;实时性差、由于软件处理能力有限,当串口数据流量较大时,CPU会来不及处理,只能将数据放入缓存,待CPU空闲时处理。这样导致数据转发的延迟增大。
第2个方案的优点是扩展能力强、实时性高;由于FPGA具有硬件可编程的特点,理论上器件内部可以实现任意个数目的串口(实际受所选FPGA器件容量大小的影响)。FPGA采用硬件流水线处理串口数据转以太网数据,因此,数据处理的速度很快,基本上不产生延迟,实时性好。这种方案的缺点是:设计难度比较大,需要获得授权使用以太网MAC和UART的IP模块,并且需要设计控制模块来协调各个接口,然后进行系统级的仿真和测试,整个设计开发周期长、设计难度大;灵活性差,功能不强。由于采用硬件实现的机制,FPGA只能实现简单的底层网络报文,无法实现TCP/IP等高层次的网络协议转发。同样,一些诸如流量控制、报文路由、IP管理之类的功能也无法实现。这样、导致这个方案的可用性以及可维护性差。
第3个方案综合了2个方案的优点并弥补了它们的不足。首先,XCore处理器的IO管脚像FPGA一样是可以编程设计的。设计者可以分配足够多的管脚给UART。使用标准XCore处理器函数库,每个UART模块需要1个硬件线程来实现,每个以太网MAC模块需要4个硬件线程来实现。这样,使用4个核的XCore处理器,可以实现具有16个串口的串口服务器。除实现UART和以太网MAC需要的20个硬件线程外,处理器内还剩下12个硬件线程的资源,这些硬件线程可以用来运行TCP/IP协议,还可以用来实现流量控制、报文路由、IP管理等诸多功能。由于XCore处理器具有实时多线程的特点,能够保证处理IO数据的硬件线程实时运行,从而保证了数据转发的实时性。同时,XCore处理器设计属于软件编程的范畴,使用C语言就可以方便地实现各种控制管理功能,这使得开发周期缩短,开发难度降低。
4结语
从上面的研究分析、实例介绍可以看出:相对于传统的控制器件,XCore处理器具有优异的性能和充分的灵活性,很适合用在一些对处理器功能要求多、实时性要求高的场合。同时,XCore处理器采用C语言编程的特点可以使开发难度以及开发周期大大降低,再考虑到XCore处理器丰富的硬件资源,采用XCore处理器的硬件设计软件化方案是一种能够广泛应用的低成本、高效率解决方案。
摘要:针对现代电子设计低成本、高效率、高灵活性的特点,研究了一种新型的处理器:事件驱动多核心处理器。通过对这种处理器基本构架的研究,以及采用新型处理器与采用传统控制器设计差异的对比,分析出该处理器具有性能高、实时性强、易编程等优点。最后,提出了一种新的设计方法:硬件设计软件化,给众多电子系统设计提供新的思路和参考。
关键词:XMOS,事件驱动多核心处理器,硬件线程,硬件设计软件化
参考文献
[1]SETTLE A,KIHM J L,JANISZEWSKI A,et al.Archi-tectural support for enhanced SMT job scheduling[C]//Proc.of the 13th International Conference on Parallel Ar-chitecture and Compilation Techniques.California,USA:[s.n.],2004:10-20.
[2]PAREKH S,EGGERS S J,LEVY H M.Thread-sensitivescheduling for SMT processors[R].Washington,USA:Washington University,2000.
[3]FRIGO M,STRUMPEN V.The cache complexity of mul-tithreaded cache oblivious algorithms[C]//Proceedings ofACM Symposium on Parallelism in Algorithms and Archi-tectures[S.l.]:ACM,2006:271-280.
[4]HUNT G C,LARUS J R,TARDITI D,et al.Broad newOS research:challenges and opportunities[C]//Proc.ofthe 10th Workshop on Hot Topics in Operating Systems.[S.l.]:USENIX Press,2005:10-20.
[5]邵立松,孔金珠,戴华东.芯片级多线程处理器的操作系统调度研究[J].计算机工程,2009,35(15):277-279.
[6]曹折波,李青.多核处理器并行编程模型的研究与设计[J].计算机工程与设计,2010,31(13):2999-3002.
[7]PAREKH S,EGGERS S J,LEVY H M.Thread-sensitivescheduling for SMT processors[R].Washington,USA:Washington University,:2000.
[8]陈政石,秦红波,粒铁鹰.基于MSP430F149的串口服务器设计[J].电子技术应用,2009(1):95-97.
[9]卢俊文,郑鹭斌,忠清.基于IP核的多UART扩展及其FP-GA实现[J].计算机技术与发展,2010,20(6):188-191.