wosa(全称是windows开放式系统体系结构 windows open system architecture),是微软公司提出的一种在windows操作系统下的软件架构

wosa/xfs是基于wosa的扩展金融服务(window open system architecture/ extensions for financial services),是微软公司为全球金融行业软件提出的一种软件架构,它在wosa软件架构的基础上针对全球金融行业进行了一些相应的修改。

随着全球信息技术的发展和个人电脑的发展,人们倾向于购买各个电脑厂商的硬件,然后自己组装成一台完整的电脑,这样可以避免购买单个厂商的硬件,从而不用受制于某个单独的厂商。作为与个人电脑相似的银行金融外设行业(以atm为例),银行希望能够象个人电脑一样购买多个厂商的产品,然后组装成一台atm机。这样一来,银行的atm机就不会受制于某一家厂商,银行只需要一台atm机的各个厂商维护各自的设备,整机可以由某个厂商维护,也可由专门维护atm机的专业公司来维护。最终,会有更多原来没有能力生产整台atm的厂商或代理公司进入到金融行业,它们只销售atm机中的几个硬件,从而银行拥有更多的选择,会得到更多更好的服务,得到更便宜的价格,它是各个厂商互相竞争中的最大受益者。所以,国外银行现在都要求各个厂商的设备能够互相连接起来,从而组成一台完整的atm机。

为了使不同厂商的金融外设能够组合成一台完整的atm,需要在两方面考虑,一方面是硬件的互连,一方面是软件的互连。由于硬件的发展有很多年的历史,也有许多已有的技术规范能够使不同的硬件在物理上连接起来,所以硬件的互连基本都可以做到。但是软件的发展历史相对于硬件来讲时间比较短,还没有现成的技术规范能够使不同硬件上的控制软件能够互相连接起来。为了处理金融行业的软件互连问题,微软公司、几个大的金融外设厂商和几个大的银行机构在一起讨论,最终定下来了一套软件技术规范。只要任何一个厂商自己硬件的软件驱动程序符合这套规范,那么它的硬件就可以无缝连接到其他同样符合这套规范的atm机上,而不需要做任何的软件改动。同时wosa也规定了硬件驱动程序和atm上层控制流程的程序之间的接口规范,从而银行可以购买非厂商提供的atmc上层程序,比较典型的是kal公司,它可以不卖硬件,只卖软件,提供给银行更多的选择和更专业的软件服务。

这一套软件技术规范就被称为wosa/xfs规范,一般简称wosa/xfs。

因为银行作为wosa的最大受益者,所以国外银行购买的金融设备都要求符合wosa规范,其中atm首当其冲的被要求必须符合wosa规范。当然,ncr、diebold等大的atm厂商都很快迎合这种需要,相继对原有的软件进行了彻底的改造,推出了自己的符合wosa规范的atm软件。

近几年,随着wosa的优点越来越被肯定,所以国内银行相继要求各个厂商提供符合wosa标准的硬件驱动程序,并且ncr、diebold等国外厂商也在大力的向国内银行推广它的wosa软件,灌输wosa的概念,相信随着时间的推移,国内各个银行一定也会走国外银行同样的道路,最终要求各个厂商的金融外设全部符合wosa的规范。

WOSA的特点

++使用Microsoft* Windows*作为client-server计算机操作系统平台

++通过WOSA族的开放接口和相关服务来集成Windows平台的应用

++尽量利用现有在WOSA元素;仅在现有WOSA族服务不能提供有关服务时加以定义和扩展,并尽可能使用现有的格式和标准

++金融服务WOSA扩展(WOSA/XFS)适用于金融应用的特殊服务和设备需要

++在API和SPI定义上保持最高级别的兼容性,以适应新型和增强功能的扩展能力

WOSA接口

WOSA仅包含一系列稳定的,开放界面接口,而将系统复杂性对用户和开发人员隐藏。WOSA 允许用户和开发人员对各种服务和企业具有无缝集成Windows应用的能力;因为它提供了同类设备层的标准接口,如读卡器类,一个应用与具体的读卡器无关,从一个供应商A的读卡器换到另一个供应商B的读卡器,无需更改任何应用程序。它包括这样一些接口:

++开放数据库连接 (ODBC) 作为标准数据库存取

++消息应用编程接口(MAPI)作为消息服务的存取

++通讯支持, 包括 Windows SNA, RPC, and Sockets

WOSA元素

++每个WOSA元素包括一套相关软件, 一般由设备供应商提供:

++应用程序接口 Application Program Interfaces (APIs)

++服务提供接口 Service Provider Interfaces (SPIs)

WOSA/XFS定义了以下的设备服务

++摄相机 cameras

++存款单元 deposit units

++读卡器 identification cards

++密码键盘 PIN pads

++传感器和指示器 sensors and indicator units

++文字终端 text terminals

++吐钞机 cash dispenser modules

++各类打印机 a wide variety of printing mechanisms

wosa和jxfs都能做到具体的设备和应用程序保持独立性,两者的区别就是前者是windows平台,后者是Java平台。

JXFS有DC(Device Control)和DS(Device Service)两层组成,应用程序都是基于DC编写的,DS是具体的设备厂商提供的驱动程序

可以通过http://www.xfsws.com/techspecs.htm了解一些xfs的基本常识。总体说,现在所有主要大厂商都是该标准的参与者,
Diebold, NCR, wincor都已经为很多总行开发了XFS终端软件。软件结构大致为windows OS->XFS SP->Middleware(like Involve)-> 
development Environment(Aptra/Agilis/ProToPas)-> Application.
由此可见,所有厂商都为 xfs开发了便于自己开发atmc的开发环境,目的是大大节约开发时间和复杂度。 
 
一般是这样的:
使用HTML网页作为ATM操作界面,在网页中调用ActiveX控件来控制业务流程。
有许多ActiveX控件,一般每个设备一个控件,再加上其它像网络、协议等控件。
HTML网页中通过JavaScript或其它脚本调用ActiveX控件的方法,实现对硬件的控制和流程的控制。
HTML网页中调用flash来显示画面。
 
转自:http://blog.csdn.net/gkyh899/article/details/12982211

金融自助设备WOSA/XFS规范介绍的更多相关文章

  1. WOSA/XFS及SP综述

    转自  http://blog.csdn.net/andyhou/article/details/6888416 前言:         写给ATM硬件和软件人员的无言歌.         希望对工作 ...

  2. USB 3.0规范中译本 第10章 集线器,主机下行口以及设备上行口规范

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章描述USB 3.0 集线器的体系结构要求.本章还描述主机下行口和集线器下行口之间功能性的不同之处,以及设 ...

  3. JavaSript模块规范 - AMD规范与CMD规范介绍(转)

    JavaSript模块规范 - AMD规范与CMD规范介绍 JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发? 模块化是指在解决某一个复杂问题或者 ...

  4. 79.iOS 设备的UI规范和iOS各控件默认高度

    iOS设备的UI 规范 iPhone界面尺寸 iPhone图标尺寸 iPad的设计尺寸 iPad图标尺寸 iPhone设备尺寸分辨率比例 iPhone各设备 launch image iOS 各种控件 ...

  5. WOSA XFS 官方文档地址

    WOSA XFS 官方文档地址: ftp://ftp.cencenelec.eu/CWA/CEN/WS-XFS/

  6. sptt规范介绍

    相关资源 如何开发sptt工程的原子操作 移动端测试方案--sptt sptt规范 一个标准的sptt工程的目录如下: [sptt-project] | -- [ios] | | -- [atoms] ...

  7. JavaSript模块规范 - AMD规范与CMD规范介绍

    JavaSript模块化   在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?       模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题 ...

  8. 异步编程之Javascript Promises 规范介绍

    什么是 Promises Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口. 传统的回调函数 说到JavaScript的异步编程处理,通常我们 ...

  9. JavaSript模块规范 - AMD规范与CMD规范介绍 (转载lovenyf.blog.chinaunix.net)

    JavaSript模块化   在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?       模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题 ...

随机推荐

  1. 如何为自己的项目在pycharm中设置debug?

    比方说我们的某一个项目运行需要走这个指令: (MyObject)blaxon@debian:~/Desktop/checkmato$ python checkmato/nose_plugin/plug ...

  2. python如何控制数据库?

    http://www.w3cschool.cc/python/python-mysql.html 通过利用MySQLdb可以操作数据库 实例: 以下实例链接Mysql的TESTDB数据库: # enc ...

  3. HDU 3600 Simple Puzzle 归并排序 N*N数码问题

    先介绍八数码问题: 我们首先从经典的八数码问题入手,即对于八数码问题的任意一个排列是否有解?有解的条件是什么? 我在网上搜了半天,找到一个十分简洁的结论.八数码问题原始状态如下: 1 2 3 4 5 ...

  4. java 13-3 int类型的包装包Integer

    1.Integer的概述 需求1:把100这个数据的二进制,八进制,十六进制计算出来 需求2:判断一个数据是否是int范围内的.  首先你得知道int的范围是多大? 为了对基本数据类型进行更多的操作, ...

  5. Rdlc报表出现空白页解决方法(转)

    在使用RDLC报表时,碰到这种情况:当只有一页数据时,报表确显示两页,第二页除了报表头之外数据为空.然后,当有多页数据时,最后一页为空. 这个问题很奇怪,网上有很多解决方案,以下的方法可以解决此问题. ...

  6. Android应用开发中如何使用隐藏API(转)

    一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类.方法或常量)是有原因的.其中很大的原因就是Android系统本身还在不断的进化发展中.从1.0.1.1到 ...

  7. 支持MVC的代码生成运行效果 C# ASP.NET

    做技术的,你若还不懂MVC的话,你好像是外星球来的一样,或者还生活在远古社会里一样,这几天正好没什么事情干,可以静心学习学习MVC技术,顺便把原先的代码生成器修改了一下,只要数据库里设计好了数据结构, ...

  8. tkinter 改变按钮状态

    import tkinter as tk def btn1_change_btn1(event): '''方式一:通过事件控制自己''' if event.widget['state'] == 'no ...

  9. opencv2学习:计算协方差矩阵

    图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少. 首先,利用matlab计算一下,便于比较: >> data=[1,2,3;10,20,30] dat ...

  10. 【OpenGL】查看显卡对OpenGL的支持程度

    由于开发工作中要用到OpenGL的API进行渲染,公司配的电脑又是集成显卡,所以想知道显卡对OpenGL的支持程度. 下面介绍的方法就解决了这一点. 1.下载安装EVEREST Ultimate Ed ...