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. 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数

    1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...

  2. 详解反射->Type.System

    反射先了解 一:system.Type 获取基本信息: Type.Name   //类名 Type.FullName //完整路径 Type.Namespace //空间名 public class ...

  3. Maya FEM节点框架完成

    这几天把物理模拟框架移植到maya之中了. maya编程有一点比较关键,就是要让自己的程序逻辑适应maya的节点求值机制.在物理模拟中,往往需要进行时间积分,对此我的解决办法是,写一个节点rigSim ...

  4. work_queue 函数调用栈

    init_workqueues --->  create_worker --> kthread_create_on_node

  5. U3D Debug.log的问题

    今天在测试有yield有关的问题时,发现Debug.log()是异步输出机制.不一定会在调用后立即执行. 在C++有类似问题:std::cout 也不一定会立即输出,加上"\n"或 ...

  6. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux

    我用过的编辑器不少,真不少- 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号.它小巧绿色且速度非 ...

  7. AS2.0大步更新 Google强势逆天

    New Features in Android Studio 2.0Instant Run: Faster Build & Deploy逆天吗?你还在羡慕iOS的playground吗?And ...

  8. Android一个大众化的设置界面

    布局代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an ...

  9. java从0开始学——数组,一维和多维

    #,在java中,允许数组的长度为0:也就是允许      int[] zeroLenthArray = new int[0]; #,匿名的数组初始化是合法的:     int[] smallPrim ...

  10. [CareerCup] 13.5 Volatile Keyword 关键字volatile

    13.5 What is the significance of the keyword "volatile" in C 这道题考察我们对于关键字volatile的理解,顾名思义, ...