CEN/XFS标准(原名为WOSA/XFS)(中文版)-第1部份
CEN/XFS标准(原名为WOSA/XFS)-第1部份:服务提供程序接口(SPI);这是整个标准几十篇文档的最核心的部份,最重要的部份。
中文版,保证翻译质量。
CEN/XFS MIB SDK
CEN/XFS定义的MIB(管理信息库Management Information Base)。
如果你留心的话,可能对MIB有所印象,因为各个行业都在建MIB,在新闻报道上也会见到这个名词。
其实很简单,如果你了解SNMP(简单网络管理协议)最好,MIB是里面一个重要的组成部分。MIB是个类似于数据库的东西,目的是用一种树型结构把某些相关的东西组织在一起。
ATM监控程序是通过报文来获取ATM现在的状态。典型的实现方式是:ATM不断会发送表示自己当前各个设备状态的数据包给前置机(比如打印机状态、钱箱状态、读卡器状态等),这个状态包的格式都已经定义好了,哪一位表示什么都是固定的,ATM监控程序收到数据包后进行相应的解包分析,就知道目前该ATM的状态了。
当然,不同的银行有不同的实现方式,但是目前大部分如此。这里面有个问题是各个银行的包格式不同,导致为一个银行开发的ATMC无法将监控这块直接搬到另外一个银行的环境中,另外,状态包能够定义的状态也不是很够,只能监控很少的内容。
是该考虑统一ATM终端监控软件的时候了。显然,这个责任放到CEN/XFS的头上是最合适不过了。
CEN/XFS换了种方式,将这种状态包的方式抛弃的九霄云外,或者CEN/XFS根本就没想到过还有人在用这种方式。CEN/XFS借鉴了SNMP的协议,实现了一个全新的监控软件架构的设计。
简单的看看CEN/XFS的监控软件设计架构:
每台ATM上放一个叫做SNMP Agent(SNMP 代理)的小软件,前置机(先只考虑在前置机管理)上面放一个叫做SNMP Manager(SNMP 管理器)的软件。有这两个软件就可以完成整个ATM的监控了。
下面看看具体的监控过程。SNMP Agent驻留在每台ATM上,它负责收集ATM的当前状态数据。当需要查看ATM的状态时,管理员在装有SNMP Manager的机器上,开始请求查看某台ATM的状态。则SNMP Manager会通知该ATM上的SNMP Agent程序,让其将以前收集的状态数据发送过来。同样,管理员可以用SNMP Manager主动控制SNMP Agent程序,达到控制ATM的功能。通过这个交互过程,就可以完成监控ATM了。
其实有个地方我们没有提到,这就是SNMP Agent和SNMP Manager之间是通过什么交互的,是ISO8583报文吗?显然不是,它们之间的交互是基于标准TCP/IP中的SNMP协议而来的。如果你想多了解一些,请查看SNMP的相关文章。
对于SNMP来说,其中的MIB是很重要的一块。CEN/XFS向IANA (Internet Assigned Number Authority)申请了一个root代码,为16213。所有的XFS里面提到的设备都在16213下面分配有对应的子树(sub_tree)和节点(node)。在MIB里面,可以通过一串类似于IP地址那样的以点分割的数字串(比如16213.2.2.2.1.3.8.80),唯一的标识某个设备(比如读卡器)的唯一状态(比如设备断电了)。
也就是ATM上每个需要监控的设备信息都在MIB中唯一的编码了,这种 编码叫做OID(Object Identifier)。例如对于读卡器Online状态有个OID的编码,通过该编码就知道读卡器的状态了,并且该编码是全球唯一的一串数字。
CEN(WOSA)/XFS Manager SDK
CEN/XFS标准(原名为WOSA/XFS)是对ATM等金融机具硬件模块的软件调用接口进行统一规定。
WOSA/XFS规范目前使用广泛的版本有1.0、1.11、2.0、3.0、3.01、3.02、3.03一共7个版本,其中常说谁的SP(Service Provider)符合WOSA/XFS2.0还是3.0规范,就是指上面提到的WOSA/XFS本身的规范版本。如果你见到某些厂家的SP版本并没有上面提到的几个版本,那说明厂家的SP版本是自己厂家内部定的版本号,与WOSA/XFS规范的版本没有必然联系,但是厂家的SP版本一定可以对应到符合上面几个版本中的一个版本。目前最新的是WOSA/XFS 3.03规范。
对于WOSA/XFS,XFS Manager是一定要提到的。我们简单看看WOSA/XFS的架构,这个大家应该都比较熟悉了。中间是XFS Manager,上面是ATMC,下面是SP,其中XFS Manager对上面有API(Application Programming Interface)接口,对下面有SPI(Service Provider Interface)接口。
XFS Manager是WOSA/XFS规范的核心,它规定了API和SPI接口,从而达到统一上面的ATMC和下面的SP的功能,ATM软件能够实现所谓的跨平台是靠它来主要实现的。
XFS Manager实际上是三个DLL组成,在系统目录\Windows\System32下面,分别是MSXFS.DLL(基本的XFS API and SPI函数,在Include目录下的XFSAPI.H和XFSSPI.H中定义)、XFS_SUPP.DLL(一些支持函数,在Include目录下的 XFSADMIN.H中定义)、XFS_CONF.DLL(配置函数,在Include目录下的Xfsconf.h中定义)。
我们上面提到的7个版本,可以通过找到MSXFS.DLL文件,然后右键查看其文件属性,里面有个版本号,从而就知道某台机器运行的SP符合哪个版本的WOSA/XFS规范,这是个判断WOSA/XFS版本的一个有效办法。
Enterprise Library4.1学习手册
Enterprise Library for .Net Framework 3.5 – EntLib v4.1 是patterns & practices 小组为.NET Framework 3.5 开发一套企业库,目前最新版本为v4.1,共包括9个Application Block,包括数据访问(Data Access Application Block)、异常管理(Exception Handling Application Block)、数据验证(Validation Application Block)等等,对企业应用开发非常有帮助,也非常实用。
围棋xgf文件格式解析
围棋xgf文件格式解析.
schema location: C:\Source\misc\xgf\xml-spec\xgf.xsd
targetNamespace: http://xmp.net/xgf/namespaces/xgf/20020407
Elements Complex types
GameCollection XGFGameType
XGFGame
C#中的委托和事件详解(含源码)
委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。
[算法]位运算优化(以位域、位棋盘为例)
在冷战发展到顶点的时期,国际象棋是计算机科学的一个研究热点。原苏联和美国各自独立的提出了新的象棋数据结构——位图棋盘。美国团队——Slate和 Atkin,基于Chess 4.x软件出版了《人类和机器的国际象棋技能》一书,其中有一章讨论了位图棋盘算法,这可能是最早的关于位图棋盘算法的印刷品。 原苏联团队,包括Donskoy以及其他人员,开发了使用位图棋盘算法的程序Kaissa。
国际象棋通用引擎协议(UCI)(universal chess interface)(中英对照)
UCI协议,全称是国际象棋通用引擎协议(Universal Chess Interface,直译作通用象棋接口)。它是开放的象棋引擎协议,所谓“开放的”引擎协议,指的是:
(1) 协议内容是公开的,并且可以免费使用;
(2) 你可以根据该协议自己编写象棋引擎,凡是支持该协议的界面,都可以使用你编写的引擎;
(3) 你可以根据该协议自己编写象棋界面,凡是支持该协议的引擎,都可以被你编写的界面调用。
UCI协议的前身是象棋引擎SOS和Shredder使用的引擎协议,在他们的作者Rudolf Huber和Stefan Meyer-Kahlen对该协议的改进下,2000年11月28日UCI协议问世了。