基于CEN/XFS的服务提供程序的设计与实现外文翻译资料

 2022-11-29 15:33:55

英语原文共 143 页,剩余内容已隐藏,支付完成后下载完整资料


金融服务扩展(XFS)接口说明(3.10版)第一部分:应用程序编程接口(API)- 服务提供程序接口(SPI)的第四章的翻译

4. 结构问题和执行问题

本文件的其余部分提供了CEN/ISSS金融服务扩展(以下简称“XFS”)的技术规范。

在本规范中,XFS应用程序编程接口(API)函数和服务提供程序接口(SPI)函数总是在为应用程序提供标准化的活动接口,使其获得对服务提供程序的访问方面进行描述。这种结构允许服务提供程序基于Microsoft Windows操作系统,向金融应用程序提供一组可扩展的功能,包括对金融机构专用的周边设备的访问。由于CEN成员一直最重视的XFS实际问题就是为这些周边设备提供存取能力,所采用的样例主要都与设备控制和物理输入/输出有关。

金融服务扩展的关键因素是API的定义和相应SPI的定义,XFS管理器采用这些定义,和XFS管理器提供的支持服务集一起与服务提供程序通信。这些因素与XFS执行程序相结合,为基于Windows操作系统的应用程序提供对金融设备和服务的访问。

为了提供多供应商交互功能,规范定义了一组标准接口:如果应用程序使用API与服务提供程序成功通信,该API就应该也对又其他供应商开发的其他符合的同类型服务提供程序有效,而不需要更改。为了对设备的多个硬件实现有效,应用程序必须恢复设备功能信息(这样能够允许应用程序成功地与相同硬件设备的不同种类进行交互)。使用供应商专用XFS命令字段的应用程序可能无法与其他供应商的相符服务提供程序成功交互。为了在最大程度上使多设备服务提供程序实现的设备控制相一致,应用程序应隔离供应商对设备的专用访问。任何符合SPI定义的服务提供程序对一组符合的应用程序都有效。

由于XFS设备类型的新版本在不断的开发和发布中,设备类型接口规范也会不可避免地发生变更。本规范下文中有对版本协商程序的描述,版本协商程序用于控制应用程序的变更。需要对应用程序进行更新,以支持XFS的新版本,但是为了尽量降低版本升级的工作量,建议用以下方式开发新版本,即XFS能够以适当的方式处理将来XFS版本中添加到现有命令中的附加错误代码和新的输出文本值。另外,应用程序必须为所有接收到的事件释放内存,其中要包括在开发时应用程序不知道的事件,即,对任何XFS事件,至少必须进行释放与该事件相关的内存的处理。

为了更加清楚明晰,XFS使用了三个前缀来命名函数接口:

函数类型:前缀 程序调用方 程序提供方

●API函数:WFS... ●应用程序 ●XFS管理器(主要传递给WFP函数)

●SPI函数:WFP... ●XFS管理器 ●服务提供程序

●支持函数/配置函数:WFM... ●服务提供程序 ●XFS管理器

●应用程序

4.1 XFS管理器

XFS管理器提供XFS子系统的全面管理。XFS管理器负责为API(WFS...)函数寻找SPI(WFP...)函数的路径,并调用适当的供应商专用服务提供程序。注意,调用的对象总是本地服务提供程序。

XFS管理器使用WFSOpen函数或WFSAsyncOpen函数的逻辑名称参数决定要调用的服务提供程序。逻辑名称是对定义服务类别(即,打印机、自动柜员机等)、服务类型(即,凭条打印机、日志打印机等)和服务提供程序(DLL链接文件名)以及附加信息的配置信息提供访问的关键。逻辑名称至少在每个工作站内必须是唯一的。有关配置信息的访问和管理,见第4.7部分和第8部分。

XFS管理器也提供第7部分中定义的支持函数(WFM...)和第8部分中定义的配置函数(也是WFM...)。

在允许应用程序利用任何XFS子系统管理的服务前,应用程序必须先让子系统对其本身进行识别。通过使用WFSStartUp函数能够达到这个目的。无论应用程序利用的XFS服务数量有多少,一个应用程序只需要执行该函数一次,因此该函数通常都在应用程序初始化阶段被调用。同样地,函数WFSCleanUp主要在应用程序关闭过程中调用。如果在未发送WFSCleanUp函数的情况下,存在或关闭应用程序,XFS管理器会自动进行清理,包括关闭应用程序没有关闭的与服务提供程序间的任何会话。

4.2 服务提供程序

各个供应商的各个XFS服务均通过称作服务提供程序的服务专用模块访问。例如,供应商A的日志打印机通过供应商A的日志打印机服务提供程序访问,供应商B的凭条打印机通过供应商B的凭条打印机服务提供程序访问。

下列部分描述了服务提供程序的功能和打包。

4.2.1 服务提供程序功能

XFS服务提供程序的主要功能与各自的服务驱动和/或设备驱动协同作用,这些主要功能如下:注意,实现这些功能的方式是服务提供程序开发商的工作。

●为请求设置到设备或服务的路径,这些设备或服务可能处于远程工作站上。

服务提供程序可能以多种方式与远程访问进行通信,如NetBIOS、具名管道、RPC(远程过程调用)、Windows套接字、专用网络编程接口等。

●将通用请求转化为资源专用命令。

注意,这不仅涉及到服务专用命令的转化,也涉及到使用的资源自带命令的转化。例如,命令不会转化为“Receipt Printer Service” (接收打印服务)命令,而是转化为“Brand X, Model Y Receipt Printer”(X品牌,Y型接收打印机)命令。例如,驱动程序可能执行设备专用转换表或设备专用转化过程本身,或采用标准操作系统设备接口(如Windows GDI)(如果特定的周边设备有这些资源可用)。

●用多个应用程序任意访问该资源。

注意,如果一个物理设备包括多个周边设备(例如,一台即具有凭条打印又具有日志打印功能的打印机),这也可能包括对子设备的任意访问。

●管理连接该资源的接口。

在物理设备受控制的情况下,这包括管理设备的硬件接口。例如,服务提供程序可能使用标准操作系统设备驱动程序、供应商编写的专用设备驱动程序等。

●以与应用程序一致的方式管理服务的异步性。

必须总是以Windows消息的形式向XFS管理器和应用程序返回提示SPI的异步性。

●错误校正。

在些类型的软件故障中,如应用程序崩溃,服务提供程序会丢失与应用程序的连接。在这种情况下,服务提供程序负责“有序地”关闭与该应用程序的会话。尤其是,服务提供程序会生成一个系统事件(见第4.11部分),指出该连接丢失。如果有任何来自该应用程序的请求尚未处理,还将为各执行完成生成一个正常情况下应向该应用程序发出完成消息的系统事件。

4.2.2 服务驱动“打包”

XFS服务提供程序可以如下所示的多种方式打包成DLL链接库:

●每个DLL链接库包含一个服务提供程序;例如,供应商可能创建日志打印机DLL、凭条打印机DLL、自动柜员机DLL等。

●每个DLL链接库包含多个服务提供程序;例如,供应商可能创建一个DLL,其中包含用于所有XFS兼容打印机的服务提供程序。

●在单个DLL中包含一个具体供应商的全部服务提供程序。

4.3 异步函数、同步函数和即时函数

Windows和XFS是建立在事件驱动异步模式上的。然而,XFS设计允许应用程序使用其接口以异步或同步方式执行。因此,对于各适用函数,API支持其两个版本(即,应用程序可以请求用异步WFSAsyncLock函数或同步WFSLock函数锁定服务)。

各XFS API函数以三种同步模式的一种运行:异步、同步或即时。下一部分对这三种模式进行说明。

注意,SPI是纯粹的异步接口,因此,所有SPI函数均为异步函数或即时函数;不存在同步SPI函数。

关于API和SPI函数及其同步模式的总结见第5部分和第6部分。

4.3.1异步函数

异步模式用于可能需要不确定时间量完成的操作。

相对于同步模式,用异步模式进行的操作允许应用程序以Windows自带的事件驱动、基于消息的方式进行操作。异步请求(如,WFSAsyncExecute)的处理过程如下:

· 应用程序调用XFS管理器。

· XFS管理器生成序列号,即RequestID,分配给请求,再调用服务提供程序。

· 服务提供程序给请求安排延期处理,并立即返回给XFS管理器。

· XFS管理器将RequestID返回给应用程序,并带有显示该请求已经被初始化并正在处理中的状态。

· 在某一点,服务提供程序处理该延期请求。

· 处理完成时,服务提供程序向应用程序在其原始调用中指定的窗口句柄发出一个完成消息。为了保证灵活性,使用异步函数的应用程序可以为每个请求指定另一个窗口。消息包括一个指向WFSRESULT数据结构的指针,定义请求结果(其中包括RequestID)、状态代码和其他相关数据。

4.3.2 同步函数

同步模式也有应用,如果操作可能需要不确定时间量来完成,但应用程序希望以顺序模式处理该函数,即使用同步模式。在操作完成前,XFS管理器不向应用程序返回控制,这样,同步函数被称为阻塞函数。由应用程序发出的各个同步调用在传送给服务提供程序前,均由XFS管理器转化为其异步SPI调用。

如果在Windows 3.x系统中阻塞操作没有立即完成,XFS管理器将代调用线程执行Windows消息环,由此保证Windows系统的运转。有关进程、线程和消息环的详细情况,见第4.12部分。在Windows NT环境中,调用应用程序线程在请求完成时被封锁。一个线程一次只有一个未处理的阻塞XFS调用。有关同步函数的管理的更多情况,包括默认消息环的替换,见第4.12部分。

同步请求(如,WFSExecute)的处理过程如下:

· 应用程序调用XFS管理器。

· XFS管理器将请求转化为异步SPI,生成RequestID以跟踪该请求,提供自己的窗口句柄以接收完成消息,再调用服务提供程序DLL。

· 服务提供程序给请求安排延期处理,并立即返回给稾FS管理器。

· XFS管理器模拟如上所述的以及第4.12部分中提到的同步处理。

· 在某一点,服务提供程序处理该延期请求。·

· 处理完成时,服务提供程序向XFS管理器指定的窗口句柄发出一个完成消息。消息包括一个指向WFSRESULT数据结构的指针,定义请求结果(其中包括RequestID)、状态代码和其他相关数据。

· XFS管理器从完成消息中解压缩信息,使其成为适当的参数,然后把这些参数返回给应用程序,解除对原应用程序请求的阻塞。

4.3.3 即时函数

即时函数是既非同步又非异步的API函数。典型的即时API不与服务或物理设备通信(也不以任何其它方式使用网络),因此无论是否成功,都能够保证立即完成。即时函数以两种方式处理:

· 完全由XFS管理器处理,这种情况下,立即返回给应用程序。例如:WFSStartUpWFSSetBlockingHook

· 由XFS管理器作为即时SPI传递给服务提供程序。服务提供程序处理该请求,并立即返回给XFS管理器,XFS管理器立即返回给应用程序。例如:WFSCancelAsyncRequestWFMSetTraceLevel

4.4 处理API函数

应用程序调用XFS API函数时,下列处理方案之一将会发生。注意,这种分类与上述API同步模式不同。有关API函数到SPI函数的路径,见第6部分。

· XFS管理器直接将函数转化为相应的SPI函数(如,WFSAsyncRegister)。

· XFS管理器进行一些预处理,然后将该函数转化为相应的SPI函数(如,WFSAsyncExecute)。

· XFS管理器进行一些预处理,然后将该API函数转化为不同的SPI函数,再将该SPI函数传递给服务提供程序。由于大多数同步API函数被转化为其相应的SPI函数,因此这些同步API

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[25769],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。