门禁系统外文翻译资料
2022-11-16 15:07:32
英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料
毕业论文(设计)
英文翻译
原文标题 Access Control System
译文标题 门禁系统
门禁系统
Manfred Broy,Ketil St01en
第八章用一个驱动的方式介绍了方程式规格的风格。第八章中的例子已经被用来解释方程式风格的基本原则。它们因此都是小型的和带一点人工智能的。在本章中,我们提供了一个方程式的风格去建立一个ACS门禁控制系统的模型。因此我们以一个更真实的文字描述来演示这种方程式风格是否适合此项实验。ACS的第一个规范出现在[BH93],是从我们已经适应的非正式规范而来。
ACS的目的是通过控制一些建筑的门只向信任的已经被识别的人开放。这种安全性建立在用户拥有个人出入卡,或者是知道个人出入密码的基础之上。每扇门是被门位置处的一种本地物理装置所控制。系统储存的信息包括出入权限,卡片和密码。这些信息都被保存在一个中央系统中,同时该系统也具有身份认证和身份识别功能。因此本地系统与中央系统相互通信是必要的。这些信息可能会被一个操作人员通过终端输入和修改。
正如9.1部分所说,一个本地系统包含了一个本地控制单元,一个门锁机制,一个包含读卡器的显示器,一个显示单元和一个键盘。这个门有一个简单的磁锁通过命令控制门的开关。门锁的开关是由控制单元发出的信号所决定。卡片是有一个储存识别信息的磁条的塑料卡片。
我们处理的ACS被分为四个小章节。9.1部分描述了在四个狂徒规范下的系统架构。9.2部分描述了三个控制模块的功能。9.3部分介绍了错误信息处理。9.4部分增加了实时约束。
9.1 系统架构
我们从四个模块来描述这一整个ACS的架构开始。
图9.1 系统架构
ACS包含了一个与许多子系统通信的中央系统。每个子系统有一个独一无二的识别对象。人名就是这些识别设置的对象。每个子系统是通过两个方法连接中央系统的。
本地系统发送一对线程、进程的卡片信息和个人识别密码到中央系统,中央系统接受并检测,之后子系统接收中央系统返回的结果:如果这个人允许出入就返回OK,否则返回NO。
ACK是结果的类型。它仅包含两个信号,分别是OK和NO,因此:
type Pair = Cid x Pid
type Ack = ok I|nok
中央系统和子系统通过外接实体进行通信。对于中央子系统,这个外部实体是一个操作人员。通过一些MMI这个操作人员建立并且维护着身份认证和身份识别的数据库。在我们研究的ACS系统中,我们利用抽象的方式进行交互。在本地系统的情况下,外部的人想要进入建筑物或一个特定的房间需要通过它的门。
我们也从这些方面进行抽象;对于我们的目的而言是足够查看与人交互的键盘、名字、屏幕、和读卡器等物理设备。它们是作为本地系统的子组件。
因此,我们得到了以下框图:
在两个框图的帮助下描述出了中养系统和子系统之间的内部结构。
中央系统包含了控制每个子系统的中央控制器。除此之外,有一个认证组件来检查PID是否对应CID,并由门禁寄存器通过PID检查被识别者是否有出入该门的权限。
我们用这些消息打开和关闭来控制门锁和门的操作。因此,我们定义了:
Type OpCl = open | close
门锁在以下情况被忽略。本地控制器在9.2.2部分进行详细叙述。该部分可由下面的框图表示。它包含四个部分:一个控制器,显示器,读卡器和键盘。
面板控制器管理读卡器,本地控制器,键盘,显示器的通信。读卡器,显示器和键盘是人们用来与系统软件部分通信的硬件实体。面板控制器将在9.2.3详细介绍。
9.2 控制器的功能特性
在本章节中我们描述了中央控制器,本地控制器和面板控制器这三个部分的功能特性。
9.2.1 中央控制器
中央控制器直接使用两个控制状态。
中央控制器从本地系统接收卡的信息和个人识别号。它把整个PAIR部分发送到身份认证部分,第二个部分被发送到门禁部分.如果没有任何答复,门就不开。如果都有回复,那么门就打开。
9.2.2 本地控制器
如9.2所说,本地控制器有三个输入输出口。本地控制器采用四个控制状态。概述如图9.3所示,在初始状态空闲时,本地控制器可以从面板转发卡片信息和个人识别信息到中央系统。
图9.2 本地控制器主要接口
图9.3 本地控制器控制流
如果没有匹配的卡信息,什么都不会发生。这个操作主要有以下两种表现形式:
Idle((),li,do) = ((),(),())
Idle((p)- po,li,do) = ((),(p),())- val(po,li,do)
在控制状态val,本地控制器将等待确认中央系统执行的结果。如果没有收到结果,那么什么都不发生。如果有回复,确认信息将被发送到面板控制器,打开的信号被发送到门锁。如果中央系统回复的为No,那么面板控制器回到空闲状态。
Val(po,(),do) = ((),(),())
Val(po,(ok) - li,do) = ((ok),(),(open))- op(po,li,do)
Val (po,(nok)- li,do) = ((nok),(),()) - idle(po,li,do)
在控制状态下操作本地控制器等待确认释放并打开门锁的信号。通过发送门锁关闭信号和控制PCL来对此信号做出响应。如果什么信号都没有搜到,那么什么都不会发生。另一方面,如果收到关闭信号,那么它将保持等待控制器的打开信号。
经过整合不同的部分,我们得出如下结论:
这个规范主要基于四个控制状态之间的转变。
图9.4 成功收到本地控制器的消息序列图
如图9.4中所示,通过一个消息序列图可以说明本地控制器的一个可能的运行状态。它表示了一个开门的成功的求。它使用的是像MSC[ITU96]和UML[OMG98]的消息序列图来演示数学符号和图形描述。更详细的描述在第十和十一章,可以为这种图形化建模技术建立一个数学基础。
9.2.3 面板控制器
在上述章节中,面板控制器被作为本地控制器来使用。它的外部接口图如图9.5所示:
图9.5 面板控制器外部接口图
如图9.6所示,我们再次使用四个状态。
图9.6 面板控制器控制流
控制最初在空闲状态,期间面板可以读到读卡器发出的CID并传递给getpid控制。没有收到cid,什么都不会发生。此行为由两个第一方程式所捕获。注意,这里使用的局部变量来存储CID并且记录我们从开始第一次的五种可能的尝试,以获得正确的PID。
控制状态的getpid通过数字键盘发送数字信号被转发,并传递到waitpid。如果没有收到数字信号,什么都不发生。本地状态有两个组件。一个仅仅记录刚收到的数字信号,另一个记录迄今为止接受度奥的数字信号的数量。控制状态waitpid的作用是读取四个数字信号和利用辅助的“*”来计算与cid一起发送到中央处理器的pid。
现在的控制处在控制状态VAL。它等待的结果估值;有三种可能的结果。
- 如果本地控制器不响应,什么都不发生。
- 本地控制器发送OK信号,那么卡就被释放了,信号被传到显示器,并且控制器变为空闲状态。
- 如果本地控制器发送的是nok信号,那么显示器将显示nok,并且取决于持卡人尝试刷卡的次数,读卡器将读另外一张卡,或者读卡器没收此卡并且回到空闲状态。
9.3 异常处理
在前一节中的三个控制器的规格是基于假设组件能够接受期望的纯信号并且总是提前知道哪一个输入通道即将有输入信号。例如,在9.2.3节部分,制定的控制器在指定的通道co等待输入信号。然后再通道pi和ko再次等待co的输入信号(如果输出是活跃的)。
我们现在说明在上一节中的控制器的规格如何可以适于处理在下面所示的假设的情况
1.接收到的信号可能是不相关的,因此应立即丢弃,让它们不和之后同一通道上接收到的信号混合起来。面板控制器可以,比如,接收任何时间点的数字信号,因为某人无意间按了键盘上的按键,或者因为卡片在错误的时间点被读卡器读到了而接收到一个cid。
2.因为异常事件,显著信号可被外部标准输入所接收。例如,局部控制器可接收来自门锁指示错误消息,如果门重新打开它不再被关闭。在这种情况下,局部控制器应立即停止打开过程。
基本的思想是使用瞬间合并组件的方法,当消息按顺序出现和发送的时候,将输入信号合并成一个单一的流。比如,面板控制器设定为沿着以下的线。
InstMrg描述了一种所谓的瞬时合并,在输入信号被接收的瞬间进行了合并和转发。
下面的规范是基于假设R和S不相交。
与9.2.3节中的面板控制器相反,连续面板控制器通过SeqPanelControl只有一个输入通道,此通道是按顺序接收输入信号的。因此他可能在错误的时间点接收信号。顺序控制面板的规范作为练习留给读者思考。
9.4 时序约束
到目前为止,我们只描述ACS的不计时的行为。 在这个部分我们概括我们的规范如何推广到处理时序问题。
9.4.1 超时简介
上面所指定的ACS有一些弱点。一个很明显的不足之处是如果一个人试图不从键盘输入同行密码进入某个建筑物它会处于永无止境的等待状态。此问题可以通过引入超时响应来补救。如图9.7所示,在面板控制器的情况下,控制流可以调节到允许从getpid、waitdig以及idle触发超时响应。
为了处理超时问题,我们显然需要定时框架。然而,只有输入的时序是至关重要的。相对于之前规范的方程式,有两个主要的变形:包含时间刻度的输入流,和gerpid以及waitdig如果没有在规定时间内接收到数字信号,此时会有一个本地状态组件确保用来控制转到空闲状态。
如果我们假设该面板控制器在控制被转移回到idle之前等待了30时间单元,9.2.3中所说的面板控制器将会在173和174页重新说明。
图9.7 面板控制器的控制流超时
需要我们注意的是它违背了早期的规则,多个输入的历史可能导致任意结果:首先,这个说明是基于隐含的输入消息按照固定的顺序接收的假设。例如,如果该面板控制器在等待co信道的输入,然后假设什么都不发生除了运转是从两个其他的的输入信道被接收。正如在9.3中所解释的,如果这种假设不成立,我们可以使用瞬间合并来把输入历史放到一个单一的流中。第二,如果只有 ticks被co接收那么以上的规则允许任何输出历史。这将能够轻易的被增加方程式来进行处理。
不幸的是,有其他的相似的输入历史对于如此简单的解决方法是行不通的。考虑到,例如,人们进门的时候总是超时的情况。在这种情况下输出历史应该是,但是我们的规范允许任意输出行为。然而这不是个严重的问题,因为这些额外的要求不希望实现部分不包含输出。事实上,如7.3节所解释的,它们可通过增加标签移除。
9.4.2 施加响应时间的约束
之前部分的说明被写入了时间框架,但是在正确的时间没有限制输出。在很多场合,输出消息的时间与输入消息一样重要。有如下两种基本的时间限制:
- 响应时间达到上限-需要一个信号与固定的时间间隔一起发送出去。
- 时间调度-需要一个信号在一个精确的时间点被发送出去。
两种约束是为了ACS相关。在面板控制器的情况下,对时间调度没有真实需求。例如,当访问被提供了足够的权限,在显示信息跟卡片被释放之前存在一个延迟上限。而且,当一对数字认证被传到本地控制器的时候同样适用。一种在一个算法风格内指定这样的时间约束的方法是使用oracles来在这个给出的限制里面选择确切的调度时间。然而这种约束更容易在非算法方式表达,这是它们经常被指向非功能性需求的原因。
例如,在下五个时间单元并且在ok信号到达之前授权访问此时要指定一个释放信号发送到读卡器。它足以将下面的联合公式加到面板控制器中。
如已经解释过得,在面板控制器的情况下时间调度没有任何真实需求但这种
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[30191],资料为PDF文档或Word文档,PDF文档可免费转换为Word