前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的柳树的诗句主题范文,仅供参考,欢迎阅读并收藏。
2013年3月22日,根据“互联网的那些事”微博爆料,王健林,冯仑,郭广昌,李东生,曹国伟,李彦宏,马化腾,江南春,古永锵等重要人物齐聚淘宝创新大厦,有知情人士称,这次商界大佬共聚一堂是为了共同推动智能物流骨干网计划。
根据阿里巴巴对智能物流骨干网(China Smart Logistic Network,简称CSN)的规划,CSN将是一个覆盖全中国,投资周期为5-8年,多层次、多节点的立体网络,电商生态系统的各种角色如制造商、网商、快递物流、第三方服务公司等,都将在网络的渐次展开中成为建设者、使用者、进化者。其作为中国未来商务的基础设施,将支撑日均300亿元的交易额,促进1000万家新型企业的诞生。
“社会化”物流启动
2013年1月23日,阿里巴巴、银泰、复星、富春、“四通一达”、顺丰,以及相关资本市场的领军机构、及金融机构等齐聚杭州阿里巴巴集团总部进行闭门会议,通过了“1000亿元投资建设物流网”的决议。这标志着相对于京东等电商的自办物流而言,阿里巴巴电子商务时代的“社会化”物流正式启动 。
其实,早在2012年12月1日,阿里巴巴集团便与浙江省金华市人民政府签署战略合作协议,宣布投资建设“中国・金义电子商务新城”项目,即中国智能物流骨干网关键节点的首个全国样本项目。据悉,阿里巴巴还与上海嘉定、成都高新区等地进行了关键节点建设的会谈。
在电商物流园中,至少有三种角色:阿里巴巴向地方政府要政策,制定标准,保证“智能化”,同时兼有投资人身份;投资或金融机构负责资金来源;第三方物流企业负责运营。
物流技术与应用杂志社主编王继祥对本刊记者说:“电商虽然有很多配送公司,但结点最为关键,因为两点成一线,想编织覆盖全国的物流网,必须先建点。同时,在阿里巴巴的影响力与号召力下,势必带动土地增值。马云投资几百亿,是稳赚不赔。”“马云搭平台后,地方政府也会给出优惠政策,有利于集合各方力量,吸引更多人加盟。建一个社会化的系统,这是马云最大的优势。”
数据显示,2012年,中国网络零售规模远超1万亿,年增速超过80%,达到10万亿只是时间问题。王继祥说:“这些年物流快递业的演化进度有目共睹,2012年支撑国人57亿只包裹流转,“四通一达”承担了其中80%的运量。”
但物流基础设施和设备投入严重滞后将越来越掣肘快递行业的发展。以物流中心的面积为例,中国人均物流仓储面积仅为美国的1/14;现有物流仓储设施中,超过70%建于上世纪90年代之前,不能满足现代化需求;中国目前5.5亿平方米的物流仓储设施的供应量中,达到国际化标准的,不满1000万平方米。
面对这一窘境,马云一直想介入其中。早在14年前,马云就曾提出“电商三流”的说法,即电子商务必须打通信息流、资金流、物流三个难点环节。眼下,信息流由淘宝、阿里巴巴、天猫、阿里妈妈等网站解决,资金流则由“阿里金融+支付宝”基本解决,物流则成为其中最为薄弱的环节。
2011年前后,阿里巴巴在物流方面进行了多方面的探索,方法主要是两种:一是直接投资,比如投资百世物流,星晨急便等新型物流企业;二是结盟,2011年初淘宝宣布与第三方物流服务商结盟,做云物流。2012年初,阿里巴巴还正式与包括邮政在内的九大物流商结盟。
业内专家表示,马云最早是希望由他搭建平台,引入社会上的物流公司,通过物流公司在淘宝上提供物流服务,但一段时间后,他就发现物流公司有的比较散,有的不能满足需求,有的没有全国网络。基于此,他才想做一个覆盖全国的物流系统,并试图自己投资进行建设,这就是智能物流骨干网最早的雏形。
所谓“智能”
2011年作为“十二五”的开局之年,我国提出了“智慧物流”的概念。2012年2月14日,工信部出台《“十二五”物联网发展规划》强调将大力推进物联网技术在物流领域等9个重点行业中的研发与应用。
根据相关资料对智慧物流的解读,它被认为是利用集成智能化技术,使物流系统能模仿人的智能,具有思维,感知,学习、推理判断和自行解决物流中某些问题的能力。智慧物流的出现,可以实现物流的信息化、智能化、网络化、电子化,实现传统物流向现代物流的转变。
建成后的“中国智能物流骨干网”,也将通过系统深度整合,通过数据交互、共享的原则,推动供应链平台提高效率、降低成本,以更好地支撑电子商务的发展,从而让物流网络迈入智慧商务时代。王继祥认为,所谓智能,可以理解为 “生态系统”的概念。
“智能物流”的关健是智能化,而智能化的关健是大数据。阿里巴巴智能物流的优势就是数据采集平台的优势,即由淘宝、阿里巴巴、天猫、阿里金融+支付宝等提供庞大数据的支持。
有专家表示,现在的物流企业还不能与淘宝网和阿里巴巴等电子商务企业进行无缝对接,只有这些企业都互相开放平台,产生网络化与智能化的服务,才算是建立起电子商务的生态系统。
王继祥认为,马云对于智慧物流的理解是希望通过物流的建设联络制造商和服务商,将电子商务的触角延伸到销售、制造、生产与分销等领域。在这种智能的物流系统中,电商能够与各个环节充分融合,并对整个生态系统进行演化和演进,即所谓进化。促使整个“生态系统”的边界延伸。
站在阿里巴巴合作方的角度,他们认为,“中国智能物流骨干网”极可能成为一个超级 IT 系统,首先将各家整合,再实现相关交互。“四通一达”及顺丰提供的就是基础运输能力,连接北上广的大规模包裹交换中心。这样,几乎全部的产业链都可以顺利的生长于由包裹物流组成的网络上,并最终形成整个商业环境。
特别是未来智能骨干网络里将汇聚买家购买物品的庞大信息(如地址、购买商品、消费习惯等)。通过对这些数据深度挖掘,可以细分出各区域、各分类人群的需求,并通过过去的购买信息以及物流信息预测未来的需求,这才是隐藏最深的价值。
关键词: 数据流; 压缩桶; 聚集查询; 时间维度
中图分类号:TP393 文献标识码:A 文章编号:1006-8228(2012)04-29-03
Aggregate compression algorithm for data stream
Wang Baojun, Zhan Ying
(Zhejiang Institute of Communications, Hangzhou, Zhejiang 311112, China)
Abstract: In many fields, data stream continues to grow in terms of generation speed. Aggregate query for data stream was most widely used. By constructing compression buckets, the authors provides in this paper a compression algorithm for data stream based on time dimension, in order to dynamically form compression data stream, and give mathematical method of aggregate query for data stream, by use of compression buckets.
Key words: data stream; compression buckets; aggregate query; time dimension
0 引言
数据流是随着网络的广泛应用而出现的一种新的数据形式。数据流聚集查询是数据流管理与知识发现系统中一种重要的数据知识发现模型,但快速流动的流数据与有限的处理能力之间的矛盾使得流数据的聚集查询分析比关系数据库的聚集分析更困难。
目前国内外已经对数据流聚集查询模式展开了研究。Dobra A等人研究利用随机草图技术,提取数据流的轮廓,减少数据的处理量来加快数据处理速度,并提出了一种草图分割技术来提高算法的性能[1]。Gilbert A C等人研究采用小波技术对数据流进行压缩,实现了近似聚集查询[2]。Madden研究了传感器网络中的聚集查询问题,重点是如何动态地建立路由树,实现流水线聚集操作[3,4]。Ahnad Y提出了数据流查询的分布式操作[5]。张冬冬等人提出了一种新的数据流传输方式,有效地减少网络中分布式数据流的传输量[9]。傅鹂等人建立了基于数据流驱动的数据流连续查询模型,设计并使用查询算子在查询链中的有序组合来构造出各种复杂的连续查询语句[7]。李建中等人提出利用多元线性回归方法来预测具有线性关系的数据流的未来聚集值,但如果数据不具有线性关系,该模型误差就会增大[10]。
以上的数据流聚集查询相关算法采用近似聚集、压缩数据流等技术来提高查询速度。由于数据流的“流”性和随机性,使得流量的变化具有突发性,然而,商业活动中,普遍要求能够实时地检索面向数据流的聚集查询结果,并获得更高的准确率。
1 数据流压缩
1.1 相关问题描述
数据流是一个以数据到达时间为戳的数据序列。流数据的聚集查询分为预定义查询(Predefined Query)和即席查询(Real-time Query)两类。预定义查询主要针对数据流后续到来的数据计算查询结果;而即席查询是针对数据流中流过的所有数据。数据流源源不断地流入系统,因此无法将所有数据流保存起来,为了获得更为准确的即时查询结果,在聚集查询中,需要对数据流进行压缩。由于数据流动态振荡流动,面向数据流的数据流聚集查询系统无法存储所有流数据,而用户有查询分析过去与未来流数据的需求,因此需要不断地压缩数据流,来满足用户需求。压缩后的数据流结构应该是简单的,方便为用户提供各类流数据聚集查询,并能够最大程度地反映原始流数据。压缩后的数据流结构是对压缩后的数据流的静态特征的描述,它描述数据的内容和流数据之间的相互关系。
由于数据流连续无限地流动,数据流具有时间特征,因此可以在时间维度上压缩数据流。本文采用基于对数尺度的时间倾斜框架模型[8]来压缩数据流。面向数据流压缩算法以增量的方式对压缩数据流进行更新,从而提高数据流的压缩速度,满足数据流聚集查询的实时性要求。用户会根据需求向系统提出多种聚集查询,这要求压缩数据流尽可能地反映原数据流的信息。随着时间的流逝,流过的流数据被不断地压缩,历史流数据被不断地抛弃。
1.2 相关定义
定义1. 设PT为时间分区长度。构造压缩桶Buckcets(BuckcetsID=0…n),压缩桶有三个抽屉drawer(drawerID=0…2),每个抽屉存放流数据的时间长度为2 BuckcetsID×PT。压缩桶的结构如图1所示。其中每个桶的2号抽屉是临时存储单元。如果0号抽屉是空的,则同一个桶的1号抽屉也空。
设i(i=0…n)为压缩桶的编号, i号桶中的抽屉存储流数据的时间长度为2i×PT。每个压缩桶的第0号与第1号抽屉存放流数据,2号抽屉是临时存储空间,只有当这个桶中的第0号与第1号抽屉非空,此时只能将新流入的流数据临时存放到2号抽屉,系统合并此桶的第0号与第1号抽屉,并推入下一桶后,新流入到2号抽屉的流数据被转移到同一桶的0号抽屉。例如,第0号桶流入第3个PT时间长度的流数据,而第0号桶的第0号与第1号抽屉已经分别存储了第1个和第2个PT时间长度,系统压缩第0号桶的第0号与第1号抽屉,并将流数据推入第1号桶的第0号抽屉后,第3个PT时间长度的流数据才可以流入第0号桶的第0号抽屉。也就是说,桶号为i的流数据来源于桶号为i-1的桶,系统压缩第i-1号桶的第0号与第1号抽屉,并将流数据推入第i号桶的第0号或第1号抽屉。压缩桶间的数据压缩与流动示意图如图2所示。
图1 压缩桶的结构
图2 压缩桶间的数据压缩与流动示意图
引理 保存流数据的最大时间长度为LongTime,MaxBCount为保存LongTime时长的流数据所需压缩桶的数量。则
⑴
证明:设m个桶最多可以存储流数据的时间长度为MaxT(m),则
MaxT=(2×20+2×21+…+2×2m) ×PT
所以MaxT(m)=(2m+1-2)×PT
设m-1个桶最多可以存储流数据的时间长度为MaxT(m-1),则
当时间长度LongTime满足:
MaxT(m-1)<LongTime≤MaxT(m)
则存储时间长度LongTime的流数据至少需要m个桶。所以:
证毕。
1.3 数据流压缩算法
以商业零售实际业务数据流为例,本文将探索针对数据流的聚集查询与压缩方法。商业零售数据流结构如下:sale(ProductID,OrderQty),sale是超市商业零售数据流,ProductID表示产品编号,OrderQty表示订货量。用户根据需求提交各类查询,并请求实时获得各类查询结果。例如,系统根据用户提交的产品号 ProductID,选择相关产品进行压缩。
定义初始数据流结构:
Datasourse(timestamp;productID;orderqty),timestamp记录了流数
据到达的时间点。
定义压缩后数据流的数据结构:
Compresssourse(starttime; productID; maxorderqty;minorderqty;sumorderqty; countorderqty),starttime表示压缩的初
始时间; maxorderqty表示订货量的最大值;minorderqty表示订
货量的最小值;sumorderqty表示订货量的总和; countorderqty表
示订货次数。
算法1:数据流压缩算法
输入:初始数据流。
输出:经过压缩后的数据流存储在桶中,每个抽屉存储压缩后的数据流。
定义桶的数据结构:
public struct buckets
{public compresssourse drawer0;
public compresssourse drawer1;
public compresssourse drawer2;}
根据需存储的最大时间长度,计算需要的桶数MAXBcount;
定义桶DataS:
buckets[] DataS = new buckets[MAXBcount];
初始化桶中的所有抽屉;定义记录时间长度的变量feng;定义时间分区PT;
While(true)
{根据用户提交查询的产品号ProductID 获取原始数据流;
获得产生数据流的当前时间;
if(接收的是第一个流数据)
{压缩后直接推入0号桶2号抽屉,它的starttime为被推入流数据的
timestamp。接着进入下一循环等待下一个流数据;}
计算新流入的流数据的timestamp与0号桶2号抽屉的starttime相隔时间feng:
if (是同一个时间分区feng < PT)
{压缩同一时间分区内的数据到0号桶2号抽屉;
回到循环开头,继续读下一个数据;
continue;}
else
{ 记录当前桶号码;
while (DBcount < MAXBcount)
{if (桶0号抽屉有空)
{将桶2号抽屉的数据移到桶0号抽屉;
break;}
else
{if (桶1号抽屉有空)
{将桶2号抽屉的数据移到桶1号抽屉;
break; }
else
{if (不是最后一桶)
{将该桶的0号与1号抽屉合并后放入下一桶中的2号抽屉;
该桶的0号与1号抽屉变空;}
else
{丢弃该桶的0号与1号抽屉;}
合并后,该桶0号抽屉空出来,放入该桶2号抽屉的流数据; }}}
if (0号桶2号抽屉空))
{将新读入的数据放入0桶2号抽屉;
重新设置starttime;}
else {break;}}}
2 获得压缩桶状态的数学方法
当用户向系统提出面向数据流的查询请求时,系统首先判断流数据被压缩到哪些桶中,而压缩流数据存储了最大值、总和等聚集值,使得用户获得聚集值变得非常方便。
在压缩过程的任意时刻,用户均可能提出获得流数据的聚集值,这要求系统能够迅速判断各个桶的状态,也就是每个桶中的0号抽屉或1号抽屉是否存储了压缩数据。
假设j为最后流入桶中的时间分区流数据,求每个桶中含有数据的抽屉数。存储第j个时间分区,需要BCount个桶。则:
, ⑵
如果,BCount大于MaxBCount,则从MaxBCount+1到BCount号桶的流数据被丢弃。所以,
,j∈N+。
则,
, ⑶
其中ai的取值仅为0或1,表示第i个桶中有ai+1个抽屉有流数据。ai=0表示0号抽屉存储了压缩流数据,ai=1表示0号与1号抽屉存储了压缩流数据。
例如j=33,表示持续流入数据流的时间长度为33×PT个时间长度。根据公式⑵,此时需要的桶数为5。根据公式⑶,得到33-25+1=2。则2=0×20+1×21+0×21+0×21+0×21,由此,我们可以得到压缩桶的状态为0号桶、2号桶、3号桶、4号桶的0号抽屉存储了压缩数据,1号桶的0号与1号抽屉存储了压缩数据。
3 结束语
本文提出了在时间维度上压缩数据流的方法:不断流入压缩桶的流数据被不断地以2为底的对数尺度进行压缩。实验表明,压缩桶结构在满足了压缩数据的存储需求的同时,大大减少了存储空间,桶中的压缩数据能够随着时间不断地更新,基于时间倾斜的数据流压缩算法能够提高数据流的压缩速度。能够满足数据流聚集查询的实时性要求,也能够提高数据流动态聚集查询的效率及灵活性。
参考文献:
[1] Dobra A,Garofalakis M,Gehrke J,et a1.Processing Complex Aggregate Queries over Data Streams[C].Proceedings of the 2002 ACM SIGMOD International Conference on Management of Data,M acIison.W isconsin.2002.
[2] Gilbert A C,Kotidis M uthukrishnan S M ,et a1.Surfing Wavelets on Streams: One―pass Summaries for Approximate Aggregate Queries[C] .Proceedings of the 27th International conference on Very Large Data Bases.2001
[3] Madden S R,Franklin M J,Hellerstein J M ,et a1.TAG :A Tiny Aggregation Service for Ad―hoc Sensor Networks[C] .Proc.of the 5th Symp.on Operating Systems Design and Implementation,Boston,USA 2002.
[4] Madden S R.Szewczyk R.Franklin M J.et a1.Supporting Aggregate Queries Over Ad―hoc Wireless Sensor Networks[C].Proceedings of the Workshop on Mobile Computing and Systems Applications.Los Alamitos:IEEE Computer Press.2002.
[5] Ahnad Y,Berg B,Cetintemel U,et a1.Distributed operation in the borealis stream processing engine[C].Proc of ACM SIGMOD Conference.Baltimore:[s.n.],2005:882~884
[6] 詹英,吴春明,王宝军.一种与缓冲区紧耦合的环形循环滑动窗口的数据流抽取算法[J].电子学报,2011.39(4):2262~2267
[7] 傅鹂,鲁先志,蔡斌.一种基于数据流驱动的数据流连续查询模型[J].重庆工学院学报(自然科学),2008.22(10)
[8] Jiawei Han,Micheline Kamber.Data Mining Concepts and Techniques[M].China Machine Press.
金融类流式计算
大数据流式计算会根据数据产生的规模与方式的不同分别应用于金融、互联网以及物联网中。众所周知,在金融银行领域的日常运营中,通常会产生大量数据,这些数据的时效性往往较短,因此,金融银行领域是大数据流式计算最典型的应用场景之一,也是大数据流式计算最早的应用领域。在金融银行系统内部,每时每刻都有大量的、往往是结构化的数据在各个系统间流动,并需要实时计算;同时,金融银行系统与其他系统也有频繁的数据沟通,这些数据不仅有结构化数据,也有半结构化和非结构化数据。通过对这些大数据的流式计算,发现隐含于其中的内在特征,可以帮助金融银行系统进行实时决策。
在金融银行的实时监控场景中,大数据流式计算往往体现出自身的优势。例如:在风险管理方面,包括信用卡诈骗、保险诈骗、证券交易诈骗、程序交易等,需要实时跟踪发现;营销管理方面,根据客户信用卡消费记录,掌握客户的消费习惯和偏好,预测客户未来的消费需求,并为其推荐个性化的金融产品和服务。
互联网类流式计算
随着互联网技术的不断发展,用户可以实时提供和分享各类数据。据统计,目前互联网中75%的数据来源于个人,主要以图片、音频、视频数据形式存在,迫切需要进行实时分析和计算的工作。
在互联网领域中,大数据流式计算的典型应用场景主要包括以下方面:搜索引擎提供商们往往会在反馈给客户的搜索页面中加入点击付费的广告信息,插入什么广告、在什么位置插入这些广告才能得到最佳效果,往往需要根据客户的查询偏好、浏览历史、地理位置等综合语义进行决定,而这种计算对于搜索服务器而言往往是大量的。一方面,每时每刻都会有大量客户进行搜索请求;另一方面,数据计算的时效性极低,需要保证极短的响应时间。同理,我们构建社交网站,一样需要实时分析用户的状态信息,及时提供最新的用户分享信息到相关的群体,准确地推荐朋友、推荐主题、提升用户体验,并能及时发现和屏蔽各种欺骗行为,至此大数据流式计算的方法就会帮助我们达成这种目标定位。
物联网类流式计算
相对于金融和互联网领域,在物联网的应用环境中,各个传感器会不定时产生大量数据,这些数据通常包含时间、位置、环境和行为等内容,具有明显的颗粒性。由于传感器的多元化、差异化以及环境的多样化,这些数据呈现出鲜明的异构性、多样性、非结构化、有噪声、高增长率等特征,所产生的数据量之密集、实时性之强、价值密度之低是前所未有的,更需要进行实时和高效的计算。
无 业
(1)服务器存储系统非常重要。大家都知道,硬盘作为服务器数据存储的主要设备,同时也是一种技术含量高、制造精密的设备。服务器硬盘的发展目前已达到每秒10000转或15000转,普通的SA7A硬盘也非常接近这个转速,在运行当中,一点细小的故障都有可能造成硬盘物理损坏,所以一般服务器都采用Raid磁盘阵列存储,加强服务器硬盘的容错功能。
(2)除了Raid硬盘容错外,对于一些非常重要的数据要使用其他设备实时进行备份。推荐企业用户、商务用户架构的网络服务器,选用磁带机配合专业备份软件(Veritas-Netbackup、CAArcsewer),定期定时做相对完善的备份方案。如果是个人用户的话,建议采用经济的CD-ROM/DVD光盘做为备份方式。
(3)对于一些简单的误删除或格式化,针对文件不多,个人技术不错的情况,可在网上下载一些,恢复软件(DataRecover、Easyre-covery等)来尝试进行恢复。当然,做之前可以先用Ghost软件做个磁盘全备份,同时在恢复时最好是接上从盘。如果你个人对恢复的结果不满意,就需要寻求专业的数据恢复公司进行操作了。
(4)如果发现服务器数据丢失,千万不要再盲目操作,否则会减小数据恢复的机率。可通过电话寻找正规的数据恢复公司得到技术支持,听取专家建议或请专业技术人员检查。此时,你可以关机停止硬盘读写数据。不再往丢失数据的分区或硬盘里写入数据,以减少二次破坏。
(5)时刻注意服务器硬盘的运行状况,对于服务器硬盘指示灯多多观察。一般来讲,服务器外观都有每一块硬盘指示灯,正常情况下一般会是绿色,指示灯出现特殊情况时,就需要采用相关措施,仔细检查硬盘设备是否正常。一旦硬盘受损或数据丢失,请不要惊谎,一定要保持冷静的头脑。以下是关于计算机常见硬盘故障情况与用户采用的建议措施:
硬盘受损或数据丢失:
①硬盘出现异常声响,此时磁头已不正常寻址,为防止打伤盘体,需要立即断电。不可拆解硬盘,需要交由有超净间的专业公司拆开检查。
②)BOOS不认盘,找不到硬盘,先请计算机工程师仔细检查,还需要先告知内有重要数据,需小心处理。以免再次误操作而导致硬盘损伤。
硬盘正常但突然读不到数据:
①勿执行重建分区表或格式化等会破坏数据的动作。虽然还有救,但已无法100%救回所有数据,万一受损的是重要的文件就得不偿失了。
②先判断正确,勿任意重装Windows操作系统或用恢复盘进行操作,很容易将数据区覆盖,而且通常覆盖区是以几百M计算的。
③引导时如自动执行Scandisk、Vrepair时,请按Esc或空格键取消动作,先检查出受损原因,以免内部档案遭大量破坏。
(6)当然,如果确认服务器硬盘存在特殊故障时,需要进行开盘处理!这个时候,选择一家专业的数据恢复公司变得非常重要。目前,数据恢复由于技术门槛含量高,相对于一般的计算机维修公司来讲要少,但少并不代表没有。一些技术实力差、环境有限,甚至一些只管接单再转其他公司操作的JS随处可见!这个时候,请需要仔细识别,避免上当受骗,造成无法估算的后期损失。
如何快速更新病毒库
我们自己通过制作程序制作的安装包,只能让我们恢复到在制作当时的病毒库。这就需要我们经常做,太麻烦了!而下载安装瑞星制作的安装包,则能让瑞星恢复到重装系统前的最新病毒库。但有一点就是我们在初次安装瑞星时,不要安装在系统盘上,否则重装后就什么都没有了!
目的:建立用流式细胞术检测小鼠腹腔诱导的巨噬细胞吞噬功能的方法。方法:用贴壁法筛选有活性的巨噬细胞,再与用碳酸盐缓冲液制备的荧光素(FITC)标记的大肠埃希菌混合,37℃孵育,每10min取少量固定后加EB染巨噬细胞核,用流式细胞仪检测,计算巨噬细胞对大肠埃希菌的吞噬率。结果:FITC能够有效标记大肠埃希菌;小鼠腹腔诱导的巨噬细胞能够吞噬大肠埃希菌,并且在30min时达到最大峰值。结论:用流式细胞术检测小鼠巨噬细胞吞噬FITC标记大肠埃希菌是测定巨噬细胞吞噬功能简便、快速和重复性好的定量方法。
【关键词】 巨噬细胞 吞噬作用 大肠埃希菌 流式细胞仪
Establish a New Method of Detecting Phagocytosis of Macrophage by Flow Cytometry
Abstract Objective: To use a new method of detecting phagocytosis of macrophage induced from the Belly of mouse by flow cytometry. Methods: Firstly, the living macrophages were collect by cultivating and adherencing, and bacterium coli(E. coli) was labeled FITC. Secondly, E. coli was mixed with macrophages, every 10 minute to take out of small amounts of mixed liquor,and add a little of EB dye. Finally, the fluorescent intensity was measured by flow cytometry. Results: The E. coli was labeled well by FITC in carbonate buffer. Macrophage can phagocytize E. coli and the efficient rat of phagocytosis was highest about at 30 minute. Conclusion: The method that detecting phagocytosis of macrophage phagocytizs E. coli is convenient、fast、good repeatability.
Key words macrophage; phagocytosis; bacterium coli; flow cytometry
巨噬细胞(macrophage,MP)是机体天然免疫的主要免疫细胞,吞噬率则直接反映巨噬细胞的吞噬功能。通常测定吞噬率的方法是对吞噬细菌的MP染色后在显微镜下观察、计数的方法,也有研究者用流式细胞仪(Flow Cytometry,FCM)检测MP的吞噬功能[1,2]。我们在检测小鼠MP吞噬细菌的实验中发现,小鼠MP的形态较小,染色后在显微镜下观察计算吞噬率较为困难。本研究试建立用流式细胞术FITCEB法检测MP的吞噬功能,以求找到一种简便、客观和重复性好的方法。
1 材料和方法
1.1 实验材料
1.1.1 主要试剂
FITC;EB;2%淀粉肉汤;大肠埃希菌DH5A;2%琼脂LB固体培养基;含血清培养基;流式细胞仪四色校准微球(CaliBRITEBeads,美国BD公司)。
1.1.2 实验动物
BALB/C小鼠,25只,体重(19±2)g,由本院免疫学教研室保存提供。
1.1.3 主要仪器和软件
隔水恒温培养箱,型号:GNP9270 (上海精宏实验设备有限公司);自控式CO2细胞孵育箱,型号:2300(美国Shellab公司);分光光度计,型号:Jenway 6305 (Barloworld公司);蔡司荧光显微镜,型号:ZEISS AXIO Imager.A1 (蔡司光学仪器(上海)国际贸易有限公司);流式细胞仪,型号:FACSCalibur (美国BD公司);CellQuest软件。
1.2 实验方法
1.2.1 大肠杆菌培养及标记荧光素(FITC)
接种大肠杆菌于2%琼脂LB固体培养基表面皿上,在37℃隔水恒温培养箱中孵育48h,取少量菌落用PBS洗,革兰氏(图1)和GW染色观察(图3),并调节浓度(OD≈0.40在620nm处)。荧光素标记大肠杆菌[3]:离心去上清,加入250ul 1%Triton X100 和1ml FITC(0.01mg FITC/500ul 碳酸盐缓冲液)37℃避光孵育15min,离心去上清,少量PBS重悬细菌待用,并用荧光显微镜观察(图2)。
1.2.2 巨噬细胞吞噬大肠杆菌
诱导、筛选腹腔巨噬细胞:腹股沟注入1ml2%淀粉肉汤液,48h后开腹腔收集渗出液,培养基洗一次,转入培养瓶中37℃ CO2孵育箱孵育2h,收集贴壁细胞(1×107event)于离心管中4ml培养基重悬待用,并GW染色观察(图3)。检测巨噬细胞吞噬大肠杆菌:加FITC标记大肠杆菌于巨噬细胞培养液中,置于37℃水平摇床上(慢速摇动),每10min取摇匀液0.5ml,PBS洗一次,70%乙醇固定10min,离心后加入1ml EB(0.5μg/ml),37℃避光孵育15min待测。首先使用BD CaliBRITE Beads试剂调整仪器,设定仪器基本参数,上样后先用FSCH/SSCH圈定MP,再采集红色荧光强度,并计算实际吞噬率(某时刻实际吞噬率=某时刻吞噬率-0min时的吞噬率),同时取少量GW染色观察(图3)。
1.3 统计分析
采用SPSS11.0软件进行统计分析,数据以±s表示,P<0.05为有统计学意义。
2 结果
2.1 小鼠巨噬细胞吞噬FITC标记大肠埃希菌的定量观察
由大肠埃希菌的革兰氏染色图像(图1)可以看出:大肠埃希菌为革兰氏阴性菌,并没有其他细菌污染,可以应用于吞噬实验;由大肠埃希菌的荧光显微镜观察(图2)可以看出:用碳酸盐缓冲液(pH=9) 制备的荧光素(FITC)能够有效标记大肠埃希菌;在不同时间段GW染色观察巨噬细胞吞噬大肠埃希菌过程的图像(图3)中可以看出:在0~20min内巨噬细胞吞噬大肠埃希菌的量逐渐增加(巨噬细胞吞噬泡中大肠埃希菌的量增加),30min左右时巨噬细胞吞噬量最高,40min后巨噬细胞吞噬量有减少趋势(吞噬泡中有明显的溶菌现象,泡内大肠杆菌形态逐渐模糊)。
2.2 小鼠巨噬细胞吞噬FITC标记大肠埃希菌的动力学特点
小鼠巨噬细胞与FITC标记大肠埃希菌在37℃作用不同时间后, 巨噬细胞的实际吞噬率在0、10、20、30、40、50min时分别为0%、11.20±2.0%、21.57±2.1%、62.22±5.0%、54.58±3.5%、37.22±4.1%,在30min左右即达到峰值(表1,图4)。表1 巨噬细胞吞噬大肠埃希菌的动力学数据(略)
3 讨论
人类细胞免疫功能一般认为应包括白细胞、红细胞及巨噬细胞等三大系统,其相应的检测指标分别为:以CD4和CD8为主的T细胞亚群检测,以RBCC3bRR和RBCICR为主的红细胞免疫功能检测和以巨噬细胞吞噬率为主的巨噬细胞吞噬功能检测。但是,在临床上由于细胞免疫功能检测方法较繁琐,往往作前两项检测,对于某些免疫性疾病以及与免疫功能损伤有关疾病的诊断与治疗中,全面地评估机体的免疫状态极为重要。
检测MP功能最常用的方法之一就是检测其对细菌的吞噬率,传统方法是取外周血与细菌混合作用后涂片染色,在显微镜下观察MP对细菌的吞噬率。该方法一般要寻找200个以上MP中吞噬细菌MP数量,操作较烦琐,且形态较小,显微镜下观察其对细菌的吞噬率更为困难。因此,已有研究者报道用流式细胞术测定中性粒细胞对荧光素标记细菌的吞噬功能[4,5],但目前有关巨噬细胞吞噬功能的检测报道不多。
本研究在前人研究基础上[6],选择FITC和EB双荧光性物质标记法检测MP对大肠埃希菌的吞噬功能。其检测原理是:首先利用FITC在碳酸盐缓冲液中标记大肠埃希菌,再用MP吞噬标记后的大肠埃希菌,吞噬完成后,加入EB染料标记MP,在488nm的激光下MP内大肠埃希菌上的FITC首先发出绿色荧光,其荧光又可以激发MP上的EB染料,使其产生红色荧光,通过计算红色荧光的表达率反映MP对大肠埃希菌的吞噬功能。实验结果显示:0~20min内吞噬率逐渐增加;30min左右吞噬率达到平台,与有关资料一致;40min以后吞噬率反而减少,有可能通过MP内溶菌酶作用把MP内细菌消化、分解,释放到细胞外,导致MP内细菌减少,荧光能力减弱。其中,在流式细胞仪荧光强度直方图中CV平均值为3.9%,由此可见,自动流式细胞仪用于检测巨噬细胞吞噬功能,不但测量数据准确性高、重复性好、操作简便、快速,而且保持MP细胞膜的完整性,能够直接体现MP对细菌的吞噬能力,同时弥补了FITC荧光性弱难以区分、检测的弱点。
本实验结果充分证明通过流式细胞术的FITCEB法能够简便、快速和重复性好地定量检测巨噬细胞对大肠埃希菌的吞噬功能。
参考文献
1 张盈华,殷缨,张莉,等.流式细胞仪测定巨噬细胞吞噬率方法的建立及其应用.第四军医大学学报.2002,23(17):1559~1561.
2 WhiteOwen C,Alexander JW,Sramkoski RM,et al.Rapid whole blood microassay using flow cytometry for measuring neutrophil phagocytosis. J Clin Microbiol, 1992,30(8):2071~2076.
3 赵修春,姚春艳,李柏青,等.流式细胞术检测小鼠中性粒细胞吞噬功能的方法学探讨.基础医学.2004,29(5):388~390.
4 Vander Top EA, Perry GA, GentryNielsen MJ. A novel flow cytometric assay for measurement of in vivo pulmonary neutrophil phagocytosis. BMC Microbiology. 2006,6:61.
关键词:脱硫脱硝系统 设计原则 数据采集 双向传输
中图分类号:X8 文献标识码:A 文章编号:1672-3791(2015)10(c)-0021-02
1 系统设计原则
1.1 一般性原则
为了便于数据采集系统进行二次开发及出于使用的便捷性考虑,在进行系统设计时应注意以下几个原则:(1)平台化原则。方便后期用户根据自己的实际需求随时进行变更;(2)开放性原则。确保设计系统与既有其他系统协调一致,便于进行数据传输;(3)易维护原则。系统尽量采用模块化设计,便于进行周期性维护和错误定位;(4)安全性原则。确保系统配套有完备的安全体系。
1.2 特殊考虑原则
厂级数据采集系统的主要功能是在电厂工作时,能够实时地进行数据采集并传输到信息网络,让终端数据作为操作人员决策的依据。所以,系统设计的关键原则就是确保DCS等控制系统的安全,与此同时提高系统的效率以及可靠性。
2 主站采集系统
2.1 系统功能
2.1.1 接收实时数据
接受来自脱硫/脱硝工作站传送的实时数据包。
2.1.2 通讯协议转换
(1)发送协议转换:接收来自不同DCS系统的通讯格式实时数据,并将其转换成统一的UDP协议,以便传输给横向隔离装置。
(2)上传协议转换:将横向隔离装置传来的实时数据转换成系统管理中心统一的通信格式,再上传数据中心。
2.1.3 数据预处理
进行数据计算以及格式的转换,为系统提供必要的前期数据处理。
2.2 采集框架图
2.3.1 登陆报文
(1)登陆请求包。
数据内容就是登陆密码和ip地址,密码长度为6个字节。报文总长度为26+ip地址的字节长度。
(2)登陆应答包。
数据内容根据登陆请求包来定,长度为1个字节,分三种情况:登陆失败、登陆成功和已登陆。报文总长度为21个字节,具体数据内容如下:
登陆失败:0x01。登陆成功:0x00。已登陆:0x02。
2.3.2 心跳报文
(1)心跳请求报文。
数据内容为当前的时间,格式为yyyy-MM-dd HH:mm:ss。长度为19个字节。报文总长度是39个字节。
(2)心跳应答报文。
数据内容为心跳应答标识(0x0A),报文总长度是21个字节。
2.3.3 数据报文
(1)数据请求报文。
3 脱硫脱硝系统的复杂网络中的双向数据传输方案设计
3.1 方案设计
3.1.1 对数据双向通信时,可进行以下定义
(1)定义了无数据传输的中断的时间长度。
(2)定义了允许通过的最大字节数。
(3)定义了传输中数据包的类型为登录包、登录应答包、测试链路包、测试连接应答包、数据请求包、数据请求应答包。
(4)登录包和测试包的字节数都小于允许通过的最大字节数。
3.1.2 工控机端的具体实现方式
(1)获取统一的编码,TCP连接成功后立刻发送登录包,并等待登录应答包。
(2)等待30s后,如果未收到登录应答包,就自动断开TCP连接,并重复3.1.2(1)。
(3)在收到登录应答包时,启动测试链路线程,每隔3.1.1(1)定义的时间长度进行链路测试,并在三次未收到测试链路应答包的情况下,自动断开TCP连接,重复3.1.2(1),同时关闭测试链路线程。
3.1.3 服务器端的具体实现方式
(1)获取各个电厂工控机统一编码值。
(2) 启动服务器数据接收程序和数据采集程序。
(3)等待工控机和服务器建立TCP连接。
数据采集程序,将采集的命令转化成字节数组,根据允许通过的最大字节数对数据进行分包,并构建数据请求包,然后发送给工控机。
(1)等待接收数据请求应答包。(2)在收到数据请求应答包时,确定请求的包是否是分包传输或单包传输。如果是分包传输,则需等待其他分包的数据,并进行分包合并,形成数据请求应答包,最后解析数据入库。
3.2 实施方式
实施具体方式如下。
(1) 在服务器端开启数据采集的服务端程序。(2)等待电厂侧工控机的TCP网络连接及登录。(3)工控机端启动TCP连接程序,等待数据请求。(4)双方进行双向的数据传输。
4 结语
作为二氧化碳排放“大户”,电厂应该做好数据采集平台的建设,保证数据传输的有效性以及可靠性。该文基于目前数据采集系统数据双向传输存在的问题,设计出一种可行的优化方案,提高了双向传输数据的质量,对保护生态环境必将发挥积极的作用。
参考文献
[1] 孙栓柱,代家元,高进,等.江苏省火电机组节能减排在线监测系统的开发及应用[J].电力科技与环保,2014(1):50-53.
关键词:Matlab软件;制流与分压电路实验;特性研究
一、分压电路特性研究及参数的变化
首先,用1000Ω滑线变阻作分压器,负载电阻用1000Ω(K=1),测出滑线电阻滑动端的位置参数X和U/Umax分压比,并作出U/Umax的关系曲线。其次,同上,用1000Ω滑线电阻和500Ω的负载电阻(K=0.1),测出X和U/Umax,记录不同的K值。在Matlab软件中编写下列程序实现分压电路实验数据的处理和图像的拟合:
x0=0:0.1:1.0;
y1=[0 0.24 0.48 0.58 0.72 0.92 1.12 1.58 2.18 3.42 4.46];
z1=max(y1);
y2=[0 0.38 0.72 0.98 1.32 1.72 2.02 2.48 3.26 4.18 4.64];
z2=max(y2);
y3=[0 0.40 0.82 1.18 1.58 2.02 2.40 2.98 3.62 4.32 4.52];
z3=max(y3);
y4=[0 0.18 0.28 0.34 0.48 0.58 0.78 1.02 1.66 2.98 4.48];
z4=max(y4);
n=3;
p1=polyfit(x0,y1,n)
p2=polyfit(x0,y2,n)
p3=polyfit(x0,y3,n)
p4=polyfit(x0,y4,n)
xx=0:0.01:1.0;
yy1=polyval(p1,xx);
yy2=polyval(p2,xx);
yy3=polyval(p3,xx);
yy4=polyval(p4,xx);
plot(xx,yy1/z1,'r',x0,y1/z1,'.r')
hold on;
plot(xx,yy2/z2,'k',x0,y2/z2,'.k')
hold on;
plot(xx,yy3/z3,'b',x0,y2/z2,'.b')
hold on;
plot(xx,yy4/z4,'g',x0,y4/z4,'.g')
hold off;
由实验可得不同K值的分压特性曲线,如图1所示。从曲线可以清楚看出分压电路有如下几个特点:第一,不论R0的大小,负载RZ的电压调节范围均可从0■E;第二,K越小电压调节越不均匀,曲线线性程度越差,细调程度较差;第三,K越大电压调节越均匀,因此要电压U在0到Umax整个范围内均匀变化,则取K>1比较合适。
■
图1 不同K值的分压特性曲线
二、制流电路特性研究及参数的变化
首先,用1000Ω滑线变阻作制流器,负载电阻用100Ω(K=0.1),测出滑线电阻滑动端的位置参数X和分压比I/Imax,并作出I/Imax-x的关系曲线。其次,同上,用10000Ω滑线电阻和20Ω的负载电阻(K=0.02),测出X和I/Imax,记录不同的K值,并作出关系曲线,在Matlab软件中编写下列程序实现制流电路实验数据的处理和图像的拟合:
x0=0:0.1:1.0;
y1=[0.04 0.04 0.08 0.12 0.18 0.22 0.30 0.52 1.02 3.58 4.18];
z1=max(y1);
y2=[0.04 0.04 0.08 0.12 0.18 0.24 0.30 0.52 0.92 2.38 4.98];
z2=max(y2);
y3=[0.02 0.02 0.02 0.04 0.12 0.18 0.28 0.40 0.70 2.98 3.52];
z3=max(y3);
y4=[0.01 0.01 0.01 0.01 0.02 0.08 0.20 0.30 0.60 1.20 2.0];
z4=max(y4);
n=3;
p1=polyfit(x0,y1,n)
p2=polyfit(x0,y2,n)
p3=polyfit(x0,y3,n)
p4=polyfit(x0,y4,n)
xx=0:0.01:1.0;
yy1=polyval(p1,xx);
yy2=polyval(p2,xx);
yy3=polyval(p3,xx);
yy4=polyval(p4,xx);
plot(xx,yy1/z1,'r',x0,y1/z1,'.r')
hold on;
plot(xx,yy2/z2,'k',x0,y2/z2,'.k')
hold on;
plot(xx,yy3/z3,'b',x0,y2/z2,'.b')
hold on;
plot(xx,yy4/z4,'g',x0,y4/z4,'.g')
hold off;
(上接第47页)
■
图2 不同值的制流特性曲线
图2表示不同K值的制流特性曲线,从曲线可以清楚地看到制流电路有以下几个特点:第一,K越大电流调节范围越小;电流调节越均匀,曲线线性程度较好;第二,K(K≥1)时调节的线性较好;第三,K较小时(即R0>RZ),电流调节范围大,电流调节越不均匀,曲线线性程度越差,细调程度较差;第四,不论R0大小如何,负载RZ上通过的电流都不可能为零。第五,制流电路适用于负载电阻较小,功耗较大,电压调节范围较小的场合。
综上所述,当负载电阻较大时,要求调节范围较宽时宜采用分压电路。相反,在负载电阻较小,功耗较大且调节范围不太大时,选用制流电路较好。
参考文献:
[1]陈玉林,李传起.大学物理实验[M].北京:科学出版社,2007:186-190.
[2]穆晓东.制流与分压电路实验参数的选择与确定[J].大学物理实验,2004,(01).
关键词:大数据;卷烟营销;物流配送
中图分类号:G726.82 文献标识码:A 文章编号:1001-828X(2014)010-00-01
一、引言
近几年,随着网络技术和计算机技术的迅速发展,数据时代已经到来。处在发展关键时期的烟草行业如何在全球控烟形势日益严峻的大背景下实现企业运行调控、新品推广、品牌传播,用大数据思维对现有海量数据进行创新应用显得尤为重要。截止目前,烟草行业在全国范围内拥有500多万零售户,按照到2015年烟草行业要打造全部零售户客户20%的现代零售终端的目标,届时全国就有百万户现代零售终端店,每天数亿笔交易,交易产生的数据量惊人。通过对这些数据的收集、分析、应用,可以帮助我们分析零售户和消费者的行为,了解他们的需求变化,从而提升企业运行水平,提高品牌培育能力,增强个性化客户服务,显著提升运营效益。
二、大数据介绍
1.大数据的介绍
互联网周刊定义“大数据”的概念远不止于大量的数据。而是指一些在小规模数据无法实现必须在大规模数据的基础上才能做的事情。换句话说,大数据让我们以一种不同于传统流程的方式或思维,对已有海量数据进行分析,更深层次的挖掘数据背后所蕴含的信息,实现产品或服务价值最大化,或者形成更为符合实际而不仅仅依靠直觉判断的决策。
2.大数据应用现状
大数据应用的关键所在,就在于技术与经营的结合。面对庞大并且复杂多样的数据,传统的流程或者工具已经无法挖掘数据的潜在价值,必须依靠“大数据”来挖掘数据背后的价值。
零售企业监控客户的店内走动情况以及与商品的互动。它们将这些数据与交易记录相结合来展开分析,从而在销售哪些商品、如何摆放货品以及何时调整售价上给出意见,此类方法已经帮助某领先零售业减少了17%的存货,同时在保持市场份额的前提下,增加了高利润率自有品牌商品的比例。
三、“大数据”技术在卷烟营销与物流配送方面的应用
坚持以满足客户需求为中心,通过现代零售终端实时经营数据,努力挖掘消费者的行为特点和喜好,在庞大的数据背后找到更为市场所接受的产品和服务方式,并根据特定的条件,有针对性地制定营销方案。
1.运行调控
卷烟市场营销是一个综合的经营管理过程,贯穿于烟草商业企业经营活动的全过程。“市场需求基本满足、零售客户有所选择、零售价格保持稳定、社会库存基本合理、供销关系稍紧平衡”是当前烟草商业企业市场营销的终极目标。随着扫码枪、RFID射频识别等新技术的发展和应用,烟草企业已经具备搜集和融合“工商零消”各个环节相关数据信息的能力,使得烟草企业管理层能够基于“大数据”进行企业运行调控决策,而不是仅仅依靠经验和直觉。“大数据”使管理层能够更及时、更准确地了解市场实际情况来进行企业运行调控决策甚至是预判。
2.品牌培育和推广
大数据思维的核心是将数据分析从传统的因果分析转换到相关性分析。谷歌公司把5000万条美国人最频繁检索的词条和美国疾控中心在2003年至2008年间季节性流感传播时期的数据进行了比较。他们希望通过分析人们的搜过记录来判断这些人是否患上了流感。在将得出的预测与2007年、2008年美国疾控中心记录的实际流感病例进行对比后发现,他们的预测与官方数据的相关性高达97%。和疾控中心一样,他们也能判断出流感是从哪里传播出来的,而且判断非常及时,不会像疾控中心一样要在流感爆发一两周后才可以做到。
烟草商业企业也能够如谷歌公司通过搜索引擎采集搜索记录一样,通过卷烟零售终端实时采集卷烟销售信息,进而综合分析零售终端所采集的数据,有效的发现不同地域或者不同消费水平的人群与卷烟品牌、价位,口味、包装等关键属性之间的关系。如A地消费者可能喜欢红色包装的卷烟,而B地消费者可能喜欢黄色包装的卷烟。运用大数据思维,烟草工商企业能够以市场经济为导向,数据分析为支持,更好的指导品牌培育和推广。
3.个性化客户服务
随着烟草行业卷烟“网上订货、网上配货、网上结算、网上营销”等营销服务的深度开展以及移动互联网技术的快速发展,烟草行业卷烟营销模式也将会发生巨大改变。如订货方式可能会由传统的电话呼叫订货全部演变为现在的PC网上订货,再由PC网上订货过渡到移动终端订货。而随着手机支付、指纹支付等新技术的兴起,未来消费者购买卷烟也可以用手机或指纹进行支付。
这些新模式的诞生和新技术的兴起,将会为烟草行业提供海量的零售户和消费者相关数据,如果烟草行业能对这些数据进行更深层次的挖掘,将会为卷烟营销人员节省大量的工作时间,并且能够为零售户提供更为精准和及时的个性化服务,做到“智慧营销”。例如根据零售户的网上订货历史记录和终端实时销售记录,卷烟网上订货系统可以在零售户登录后做到智能推荐卷烟商品销售组合。
4.“大数据”卷烟物流配送
烟草行业卷烟配送流程是按客户订单组织货源,并按照计划好的预定线路配送到户。但是一旦订单发生大幅波动,这种配送模式将无法适应。市场需求和订单数量总是在不断发生变化,按计划进行配送和动态变化的市场需求是相互矛盾的。通过GPS/GIS、RFID、传感器等技术采集送货车、送货员、零售户的实时数据,再进行数据融合和综合分析可以达到弹性配送。例如通过采集和分析数据,动态的调整某一车辆配送线路,如延长或缩短配货距离甚至跨区域配送,从而最大化的降低物流成本。
四、结语
总的来看,“大数据”对现有商业机制的改变和冲击是巨大的,大数据技术在烟草行业的应用前景也是无比广阔的。烟草行业应该紧紧抓住“大数据”带来的新机遇,努力创造良好的“大数据”应用环境,将“大数据”与行业发展结合起来,最终实现卷烟营销和物流配送的升级,为“卷烟上水平”提供有力保障。
参考文献:
[1]维克托・迈尔-舍恩伯格,肯尼思・库克耶,著.盛杨燕,周涛,译.大数据时代:生活、工作与思维的大变革[M].杭州:浙江人民出版社,2013.
[2]周亮.“大数据”技术在浙江烟草新时期的应用[J].硅谷,2013(19):128-130.
【关键词】数据库技术;工作流;二维数据表;流程模型
1.工作流概述
工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递和执行。它是实现业务过程管理与控制的一项关键性技术。其要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的河水就是工作流[1]。
2.审批工作流的过程模型
过程模型用来定义工作流的过程逻辑,包括组成工作流的所有活动以及活动之间的依赖关系。在日常的各项审批活动中,业务处理是按照用户所选择的固定流程进行流转,过程模型如图1。
图1 审批工作流过程模型图
3.审批工作流二维表的设计
通过对功能需求的分析,信息文件按照选择的流程进行流转审批,因此首先得考虑存储流程规则信息的二维数据表,每一个流程信息实体应该包括流程编号(FlInId,主键,数值类型)、名称(FlInName,字符型)、类别编号(FlClId,数值型)、版本(FlInVersion,数值型)、状态(FlInStat,字符型)等字段属性。FlInId 字段存储流程编号信息,作为主键设置,控制流程信息的唯一性。FlClId字段存储流程类别代码信息,考虑系统扩展性,用数字代码的形式进行存储,另设计存储类别信息的二维表,以便于使流程信息可进行多层次分类。FlInVersion字段存储流程版本信息,记录流程修改的次数。FlInState字段存储的流程状态信息,可设计为和停止两种状态。
每个流程按照固定的步骤进行流动,系统必须设计存储相应步骤信息的二维数据表,一个流程可拥有多个步骤,每一个步骤实体应包括步骤编号(AcInId,主键,数值型)、步骤名称(AcInName,字符型)、步骤排序号(AcInSortNo,数值型)和步骤所属的流程编号(FlInId,数值型)等字段属性,为了考虑有的步骤可以有多人处理,系统设计了步骤处理人的数据表,包括序号(AcUsId,主键,数值型),处理人代号(AcUsUserId,字符型)、步骤序号(AcInId,数值型)等字段属性。
当用户添加信息后,系统根据信息的类别选择了相应的流程,使用过程中要考虑信息流动的过程和流动的状态,以提示各个步骤处理人能操作自己需要处理的数据,因此系统设计了与信息相关的表,即任务表,主要用来存储本信息选用的流程、目前的处理的步骤、目前需要处理的用户等信息,每一个人物实体应包括任务序号(TaInId,主键,数值型),信息序号(ItInId,数值型),步骤序号(AcInId,数值型),处理人号(TaInDealUserId,字符型),任务状态(TaInState,字符型),任务版本(任务版本,字符型)等字段属性。
在用户进行审批操作后,应记录相应的任务处理记录,便于用户查看已处理的操作信息或进行撤销操作,因此系统设计了相应的任务操作记录表,每一个人物操作实体应包括任务记录序号(TaHiId,主键,数值型),信息序号(ItInId,数值型),步骤序号(AcInId,数值型),信息类型(ItStClId,数值型),签名数据(TaHiSignData,字符型),任务记录标志(TaHiFlag,字符型),任务记录备注(TaHiBz,字符型)等字段属性。
4.审批工作流核心功能实现
在前面数据库表的设计中,我们已经设计了4个表存储数据流实现的相关信息,通过这些表,可实现多种审批需求的业务。下面以财务报销审批业务为例,展示流程配置管理和信息流审批具体应用及其实现过程。
4.1流程配置管理实现
系统在流程管理模块实现流程的添加、删除、更新等维护工作。具体添加的实现过程是先定义流程信息对象,将界面的表单数据赋予对象的相关属性,通过对象的AdaByObject方法将其写入数据库并返回插入的主键值。再通过循环语句将表单中的步骤和处理人分别插入至相应的表中。主要的实现代码如下:
Dim oAFlowInfo As New AFlowInfo ‘定义流程实体对象
……
根据表单对oAFlowInfo进行赋值
……
For Each nItem As GridViewRow In gvPurview.Rows ‘获取流程访问权限
Dim nCbxChecked As New CheckBox
nCbxChecked = nItem.FindControl("cbxChecked")
……
Next
……
nRetrunFlInId = oAFlowInfo.AddByObject(oAFlowInfo) ‘根据AdaByObject方法将流程信息写入数据库
If nRetrunFlInId > 0 Then ‘大于0表示写入成功,则写入步骤信息
For Each nItem As GridViewRow In gvActorInfo.Rows
Dim oAActorInfo As New AActorInfo
……
nRetrunAcInId = oAActorInfo.AddByObject(oAActorInfo)
If nRetrunAcInId > 0 Then ‘大于0表示写入成功,则写入步骤处理人
Dim oActorUser As New AActorUser
……
oActorUser.AddByObject(oActorUser)
End If
Next
End If
4.2流程审批实现
在工作流的审批过程中,用户主要是通过修改TaInDealUserId字段的值来完成数据的传递操作,TaInDealUserId字段存储的是待处理用户的用户编号,用户登录系统后进入审核模块自动检测用户编号和数据的此字段值是否一致,如果一致表示则显示在待审批信息表中,等待用户的审批,用户审批后,系统根据既定流程修改TaInDealUserId的值。具体的实现过程是先获取当前步骤信息,并检测是否存在下一步骤,再根据结果向任务表写入相关数据完成审批过程。主要的实现代码如下:
……
oActorInfo = oActorInfo.GetToObject("FlInId=" & nFlInId_Present & " and AcInSortNo=" & nAcInSortNo_Present)‘获取当前的步骤实体信息
……
oActorInfo = oActorInfo.GetToObject("FlInId=" & nFlInId_Present & " and AcInSortNo=" & nAcInSortNo_Present + 1) ‘检测下一步骤实体信息
If Not oActorInfo Is Nothing Then ‘判断步骤实体信息是否存在
oTaskInfo.AcInSortNo=nAcInSortNo_Present + 1
oTaskInfo.TaInDealUserId=oAActorUser.AcUsUserId
Else
oTaskInfo.AcInSortNo=0
oTaskInfo.TaInDealUserId=""
end if
oTaskInfo.UpdateByObject(oTaskInfo)
……
Return "审批成功!"
【参考文献】
[1]刘志明.基于工作流技术的项目管理系统设计与实现[D].湖南:湖南大学教育技术学,2009.