throbber
WOSA
`
`(Windows"' Open Services Architecture)
`
`Extensions for Financial Services
`
`A C1ient—Server Architecture
`
`for Financial Enterprise Computing
`
`under Microsoft® Windows
`
`Revision 1.1
`
`April 14, 1994
`
`Develo d b the members of the Bankin S stems Vendor Council:
`
`Andersen Consulting
`AT&T Global Information Solutions
`
`Digital Equipment Corporation
`
`EDS Corporation
`
`International Computers Limited
`Microsoft Corporation
`Ing. C. Olivetti & C. S.p.A.
`Siemens Nixdorf Informationssysteme AG
`Tandem Computers
`Unisys Corporation
`
`AMS
`
`Exhibit 2005
`
`RA v AMS
`
`IPR20 1 7—00049
`
`ABB Inc’
`EXHIBIT 1003
`
`Page 1 of 228
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`ii
`
`Revision History:
`0.71
`1.0
`1.01
`
`
`
`
`December 17, 1992
`May 24, 1993
`
`June 11, 1993
`
`
`Preliminary release of API specification
`Initial release of API and SPI specification
`Minor updates to BSVC member contact list
`
`1.1
`
`
`
`April 14, 1994
`
`
`
`Major updates and additions
`
`
`
`
`
`
`
`
`The information in this document was contributed by members of the Banking Systems Vendor Council and
`represents its current views on the issues discussed as of the date of publication. It is furnished for
`informational purposes only and is subject to change without notice. The Banking Systems Vendor Council
`makes no warranty, express or implied, with respect to this document.
`
`Microsoft is a registered trademark, and Windows and Windows NT are trademarks of Microsoft
`Corporation.
`
`
`Apple and Macintosh are registered trademarks of Apple Computer, Inc.
`
`IBM and NetView are registered trademarks of International Business Machines Corporation.
`
`UNIX is a registered trademark of UNIX Systems Laboratories.
`
`Microsoft part number: 098-54431
`Page 2 of 228
`
`
`
`
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`iii
`
`Table of Contents
`
`1. Introduction
`1.1 Background
`1.2 Objectives
`1.3 Strategies
`1.4 Benefits
`2. WOSA Extensions for Financial Services Overview
`2.1 Architecture
`2.2 API and SPI Summary
`2.3 Device Classes
`3. Other WOSA Components
`3.1 Enterprise Communications
`3.1.1 Windows SNA APIs
`3.1.2 Windows RPC (Remote Procedure Call)
`3.1.3 Windows Sockets
`3.2 MAPI (Messaging API)
`3.3 ODBC (Open Database Connectivity)
`3.4 License Service API
`3.5 Windows Telephony API
`3.6 WOSA Extensions for Real-Time Market Data
`4. The Future of WOSA and the Extensions for Financial Services
`4.1 Financial Transaction Messaging and Management
`4.2 Network and System Management
`4.3 Security
`4.4 Emerging technologies
`5. Architectural and Implementation Issues
`5.1 The XFS Manager
`5.2 Service Providers
`5.2.1 Service Provider Functionality
`5.2.2 Service Provider “Packaging”
`5.3 Asynchronous, Synchronous and Immediate Functions
`5.3.1 Asynchronous Functions
`5.3.2 Synchronous Functions
`5.3.3 Immediate Functions
`5.4 Processing API Functions
`5.5 Opening a session
`5.6 Closing a Session
`5.7 Configuration Information
`5.8 Exclusive Service and Device Access
`5.8.1 Lock Policy for Independent Devices
`5.8.2 Compound Devices
`5.9 Timeout
`5.10 Function Status Return
`5.11 Notification Mechanisms — Registering for Events
`5.12 Application Processes, Threads and Blocking Functions
`5.13 Memory Management
`
`1
`1
`1
`2
`3
`4
`5
`8
`9
`10
`10
`10
`11
`11
`11
`11
`12
`12
`12
`13
`13
`13
`13
`13
`14
`14
`15
`15
`16
`16
`16
`16
`17
`17
`18
`19
`20
`23
`23
`24
`26
`26
`27
`29
`31
`
`
`
`Page 3 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`6. Application Programming Interface (API) Functions
`6.1 WFSCancelAsyncRequest
`6.2 WFSCancelBlockingCall
`6.3 WFSCleanUp
`6.4 WFSClose
`6.5 WFSAsyncClose
`6.6 WFSCreateAppHandle
`6.7 WFSDeregister
`6.8 WFSAsyncDeregister
`6.9 WFSDestroyAppHandle
`6.10 WFSExecute
`6.11 WFSAsyncExecute
`6.12 WFSFreeResult
`6.13 WFSGetInfo
`6.14 WFSAsyncGetInfo
`6.15 WFSGetSCode
`6.16 WFSIsBlocking
`6.17 WFSLock
`6.18 WFSAsyncLock
`6.19 WFSOpen
`6.20 WFSAsyncOpen
`6.21 WFSRegister
`6.22 WFSAsyncRegister
`6.23 WFSSetBlockingHook
`6.24 WFSStartUp
`6.25 WFSUnhookBlockingHook
`6.26 WFSUnlock
`6.27 WFSAsyncUnlock
`
`iv
`
`33
`35
`36
`37
`38
`39
`40
`41
`42
`44
`45
`47
`49
`50
`52
`54
`55
`56
`58
`60
`63
`66
`68
`70
`71
`73
`74
`75
`
`
`
`Page 4 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`April 14, 1994
`
`WOSA Extensions for Financial Services, Revision 1.1
`
`
`7. Service Class Definitions
`7.1 Printers
`7.1.1 Banking Printer Types
`7.1.2 Forms Model
`7.1.3 Command Overview
`7.1.4 Info Commands
`7.1.4.1 WFS_INF_PTR_STATUS
`7.1.4.2 WFS_INF_PTR_CAPABILITIES
`7.1.4.3 WFS_INF_PTR_FORM_LIST
`7.1.4.4 WFS_INF_PTR_MEDIA_LIST
`7.1.4.5 WFS_INF_PTR_QUERY_FORM
`7.1.4.6 WFS_INF_PTR_QUERY_MEDIA
`7.1.4.7 WFS_INF_PTR_QUERY_FIELD
`7.1.5 Execute Commands
`7.1.5.1 WFS_CMD_PTR_CONTROL_MEDIA
`7.1.5.2 WFS_CMD_PTR_PRINT_FORM
`7.1.5.3 WFS_CMD_PTR_READ_FORM
`7.1.5.4 WFS_CMD_PTR_RAW_DATA
`7.1.5.5 WFS_CMD_PTR_MEDIA_EXTENTS
`7.1.6 Execute Events
`7.1.6.1 WFS_EXEE_PTR_NOMEDIA
`7.1.6.2 WFS_EXEE_PTR_MEDIAINSERTED
`7.1.6.3 WFS_EXEE_PTR_FIELDERROR
`7.1.6.4 WFS_EXEE_PTR_FIELDWARNING
`7.1.7 Form and Media Definition
`7.1.7.1 Form Definition
`7.1.7.2 Field Definition
`7.1.7.3 Media Definition
`7.2 Magnetic Stripe Readers and Writers
`7.2.1 Info Commands
`7.2.1.1 WFS_INF_IDC_STATUS
`7.2.1.2 WFS_INF_IDC_CAPABILITIES
`7.2.2 Execute Commands
`7.2.2.1 WFS_CMD_IDC_READ_TRACK
`7.2.2.2 WFS_CMD_IDC_WRITE_TRACK
`7.2.2.3 WFS_CMD_IDC_EJECT_CARD
`7.2.2.4 WFS_CMD_IDC_RETAIN_CARD
`7.2.2.5 WFS_CMD_IDC_RESET_COUNT
`7.2.2.6 WFS_CMD_IDC_RESET
`7.2.3 Messages
`7.2.3.1 WFS_EXEE_IDC_INVALIDTRACKDATA
`7.2.3.2 WFS_EXEE_IDC_NOMEDIA
`7.2.3.3 WFS_EXEE_IDC_MEDIAINSERTED
`7.2.3.4 WFS_EXEE_IDC_MEDIAREMOVED
`7.2.3.5 WFS_SRVE_IDC_CARDACTION
`7.2.3.6 WFS_USRE_IDC_RETAINBINFULL
`7.2.4 Form Description
`7.3 Cash Dispensers
`7.3.1 Info Commands
`7.3.1.1 WFS_INF_CDM_STATUS
`7.3.1.2 WFS_INF_CDM_CAPABILITIES
`7.3.1.3 WFS_INF_CDM_CASH_UNIT_INFO
`7.3.1.4 WFS_INF_CDM_TELLER_INFO
`7.3.1.5 WFS_INF_CDM_TELLER_POSITIONS
`7.3.1.6 WFS_INF_CDM_CURRENCY_EXP
`7.3.1.7 WFS_INF_CDM_MIX_TYPES
`7.3.1.8 WFS_INF_CDM_MIX_TABLE
`
`v
`
`76
`77
`78
`78
`80
`81
`81
`83
`84
`84
`85
`87
`88
`90
`90
`91
`93
`94
`95
`96
`96
`96
`96
`97
`98
`98
`99
`102
`103
`104
`104
`106
`108
`108
`109
`110
`110
`111
`111
`112
`112
`112
`112
`112
`113
`113
`114
`116
`117
`117
`118
`120
`122
`123
`123
`124
`125
`
`
`
`Page 5 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`7.3.2 Execute Commands
`7.3.2.1 WFS_CMD_CDM_DENOMINATE
`7.3.2.2 WFS_CMD_CDM_DISPENSE
`7.3.2.3 WFS_CMD_CDM_PRESENT
`7.3.2.4 WFS_CMD_CDM_REJECT
`7.3.2.5 WFS_CMD_CDM_RETRACT
`7.3.2.6 WFS_CMD_CDM_CASH_IN
`7.3.2.7 WFS_CMD_CDM_OPEN_SHUTTER
`7.3.2.8 WFS_CMD_CDM_CLOSE_SHUTTER
`7.3.2.9 WFS_CMD_CDM_SET_TELLER_INFO
`7.3.2.10 WFS_CMD_CDM_SET_CASH_UNIT_INFO
`7.3.2.11 WFS_CMD_CDM_START_EXCHANGE
`7.3.2.12 WFS_CMD_CDM_END_EXCHANGE
`7.3.2.13 WFS_CMD_CDM_OPEN_SAFE_DOOR
`7.3.2.14 WFS_CMD_CDM_CHECK_VANDALISM
`7.3.3 Messages
`7.3.3.1 WFS_SRVE_CDM_SAFEDOOROPEN
`7.3.3.2 WFS_SRVE_CDM_SAFEDOORCLOSED
`7.3.3.3 WFS_USRE_CDM_CASHUNITTHRESHOLD
`7.3.3.4 WFS_SRVE_CDM_CASHUNITINFOCHANGED
`7.3.3.5 WFS_SRVE_CDM_TELLERINFOCHANGED
`7.3.3.6 WFS_EXEE_CDM_DELAYEDDISPENSE
`7.3.3.7 WFS_EXEE_CDM_STARTDISPENSE
`7.3.3.8 WFS_EXEE_CDM_CASHUNITERROR
`7.4 Personal Identification Number (PIN) Keypads
`7.4.1 Info Commands
`7.4.1.1 WFS_INF_PIN_STATUS
`7.4.1.2 WFS_INF_PIN_CAPABILITIES
`7.4.1.3 WFS_INF_PIN_KEY_LIST
`7.4.1.4 WFS_INF_PIN_KEY_DETAIL
`7.4.2 Execute Commands
`7.4.2.1 WFS_CMD_PIN_CRYPT
`7.4.2.2 WFS_CMD_PIN_GENERATE_KEY
`7.4.2.3 WFS_CMD_PIN_IMPORT_KEY
`7.4.2.4 WFS_CMD_PIN_TRANSLATE
`7.4.2.5 WFS_CMD_PIN_GET_PIN
`7.4.2.6 WFS_CMD_PIN_VALIDATE
`7.4.2.7 WFS_CMD_PIN_GET_PIN BLOCK
`7.4.2.8 WFS_CMD_PIN_GET_DATA
`7.4.2.9 WFS_CMD_PIN_ADMINISTRATION
`7.4.2.10 WFS_CMD_PIN_DISPLAY
`7.4.3 Messages
`7.4.3.1 WFS_EXEE_PIN_DIGIT
`7.5 Check Readers and Scanners
`7.5.1 Info Commands
`7.5.1.1 WFS_INF_CHK_STATUS
`7.5.1.2 WFS_INF_CHK_CAPABILITIES
`7.5.1.3 WFS_INF_CHK_FORM_LIST
`7.5.1.4 WFS_INF_CHK_QUERY_FORM
`7.5.1.5 WFS_INF_CHK_QUERY_FIELD
`7.5.2 Execute Commands
`7.5.2.1 WFS_CMD_CHK_READ_FORM
`7.5.2.2 WFS_CMD_CHK_MULTICOMMAND
`7.5.2.3 WFS_CMD_CHK_READ_IMAGE
`7.5.2.4 WFS_CMD_CHK_MODE_SWITCH
`7.5.3 Pragmatics of using the commands
`7.5.4 Execute Events, Results, Codes
`7.5.4.1 WFS_EXEE_CHK_NOMEDIA
`7.5.4.2 WFS_EXEE_CHK_MEDIAINSERTED
`7.5.5 Forms Language Usage
`
`vi
`
`126
`126
`129
`131
`131
`131
`132
`133
`133
`133
`134
`134
`135
`135
`135
`136
`136
`136
`136
`136
`136
`137
`137
`137
`138
`139
`139
`140
`142
`142
`143
`143
`145
`146
`147
`148
`150
`152
`153
`154
`155
`156
`156
`157
`158
`158
`159
`160
`160
`161
`162
`162
`164
`166
`167
`168
`168
`168
`168
`169
`
`
`
`Page 6 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`8. Service Provider Interface (SPI) Functions
`8.1 WFPCancelAsyncRequest
`8.2 WFPClose
`8.3 WFPDeregister
`8.4 WFPExecute
`8.5 WFPGetInfo
`8.6 WFPLock
`8.7 WFPOpen
`8.8 WFPRegister
`8.9 WFPSetTraceLevel
`8.10 WFPUnloadService
`8.11 WFPUnlock
`9. Support Functions
`9.1 WFMAllocateBuffer
`9.2 WFMAllocateMore
`9.3 WFMFreeBuffer
`9.4 WFMGetTraceLevel
`9.5 WFMKillTimer
`9.6 WFMMakeResult
`9.7 WFMOutputTraceData
`9.8 WFMReleaseDLL
`9.9 WFMSetTimer
`9.10 WFMSetTraceLevel
`10. Configuration Functions
`10.1 WFMCloseKey
`10.2 WFMCreateKey
`10.3 WFMDeleteKey
`10.4 WFMDeleteValue
`10.5 WFMEnumKey
`10.6 WFMEnumValue
`10.7 WFMOpenKey
`10.8 WFMQueryValue
`10.9 WFMSetValue
`
`vii
`
`170
`171
`172
`173
`175
`177
`179
`180
`183
`184
`186
`187
`188
`188
`189
`189
`190
`190
`191
`191
`192
`193
`194
`196
`197
`197
`198
`198
`199
`200
`201
`202
`203
`
`
`
`Page 7 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`Appendix A - Data Structures
`A.1 WFSRESULT
`A.2 WFSVERSION
`Appendix B - Messages
`B.1 Command Completions and Events
`B.1.1 Command Completion Messages
`B.1.2 Event Messages
`B.2 Timer Events
`B.3 Device Status Changes
`B.4 Undeliverable Messages
`B.5 Hardware Errors
`B.6 Version Negotiation Failures
`Appendix C - Error Codes
`Appendix D - Planned Enhancements and Extensions
`D.1 Event and System Management
`D.1.1 WFMReportEvent
`D.2 Administration Function Definitions
`D.2.1 WFSLoad
`D.2.2 WFSReset
`D.2.3 WFSResume
`D.2.4 WFSSuspend
`D.2.5 WFSUnload
`Appendix E - Banking System Vendor Council Contacts
`Appendix F - Other WOSA Specifications and Information
`
`viii
`
`1
`1
`2
`3
`3
`3
`3
`3
`4
`5
`6
`7
`8
`11
`11
`11
`12
`12
`12
`12
`13
`13
`14
`17
`
`
`
`Page 8 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`1.
`
`Introduction
`
`April 14, 1994
`
`1
`
`This is Revision 1.1 of the specification for the Windows Open Services Architecture, Extensions for
`Financial Services (WOSA/XFS). The Software Development Kit (SDK), which will supply the
`components and tools to allow the implementation of compliant applications and services, is now in beta
`testing. This specification is being distributed to the financial services community for continuing review
`and comment, which will provide additional input to the testing and enhancement of the SDK. An
`updated version of this specification will be included in the production version of the SDK.
`
`The members of the Banking Systems Vendor Council encourage banks and other financial services
`companies world-wide, as well as their technology suppliers, to get updated information on the status of
`the project, and to submit comments, questions, and requests for the SDK and updated specification
`(when available). This may be done on CompuServe, in the Microsoft developer services area in the
`Windows Extensions forum (“GO WINEXT”), in the WOSA/XFS message section and library, or via one
`of the member contacts listed in Appendix E.
`
`The Banking Systems Vendor Council is accepting applications for affiliate membership; interested
`parties should also contact one of the Council members.
`
`
`1.1
`
`Background
`
`The Banking Systems Vendor Council, an organization of leading vendors of information technology to the financial
`services industry, was formally announced at the American Bankers Association National Operations and
`Automation Conference (NOAC) in Denver on May 18, 1992. Revision 1.0 of this specification was released at
`NOAC in New Orleans on May 24, 1993.
`
`The charter members of the Banking Systems Vendor Council are:
`
`• Andersen Consulting
`• AT&T Global Information Solutions
`• Digital Equipment Corporation
`• EDS Corporation
`•
`International Computers Limited
`
`• Microsoft Corporation
`•
`Ing. C. Olivetti & C. S.p.A.
`• Siemens Nixdorf Informationssysteme AG
`• Tandem Computers
`• Unisys Corporation
`
`
`The Banking Systems Vendor Council has held many multi-vendor development meetings, in addition to numerous
`additional hours invested in defining this specification for the WOSA Extensions for Financial Services.
`
`
`
`1.2 Objectives
`
`The charter of the Banking Systems Vendor Council is to develop an approach to financial enterprise computing that
`will allow financial institutions to develop complete, consistent sets of solutions that meet these objectives:
`• Reduce the costs of software development and maintenance by:
`•
`improving the efficiency and productivity of development organizations,
`•
`reducing the costs of developer training, and
`•
`allowing the use of a much larger set of existing applications.
`Improve the "time to market" of new applications via easier development and rapid deployment.
`•
`• Allow institutions the flexibility to build systems modularly, using the largest possible range of hardware
`and software products from multiple vendors, and to upgrade these systems incrementally while maximizing
`the value of the original investment.
`• Define an architecture that allows scalability of solutions across a broad range of hardware platforms.
`• Encourage the development of more and better applications by promoting widespread adoption of standard
`interfaces and platforms.
`• Reduce the costs of training users.
`
`Page 9 of 228
`
`
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`April 14, 1994
`
`2
`
`1.3
`
`Strategies
`
`The following key strategies have been adopted by the Banking Systems Vendor Council to implement the objectives
`defined above:
`
`0 Use the Microsoft® Windows” operating systems family as the strategic platform for client—server
`computing.
`0 Adopt the Windows Open Service Architecture (WOSA) family of open interfaces and associated services
`for the integration of Windows and Windows-based applications into enterprise computing solutions.
`0 Utilize existing WOSA elenents wherever possible, defining new elements, or extensions to existing
`elements, only when no suitable candidate(s) exist in the evolving WOSA family that meet the needs of
`financial services computing. In all cases, existing formal or de facto standards will be utilized to the
`maximum degree possible.
`Enhance WOSA with the Extensions for Financial Services to meet the special requirements of financial
`applications for access to services and devices.
`0 Maintain the highest possible level of compatibility of both the API and SP] specifications as the Extensions
`for Financial Services evolve to include new and enhanced capabilities.
`
`0
`
`WOSA comprises a family of stable, open-ended interfaces for enterprise computing environments that hides system
`complexities from users and application developers. WOSA allows the integration of Windows and Windows-based
`applications seamlessly with all the services and enterprise capabilities that application developers and users need. It
`includes such interfaces as:
`
`0 Open Database Connectivity (ODBC) for standard access to databases,
`0 Messaging Application Prograrmning Interface (MAPI) for standard access to messaging services, and
`0
`communications support, including Windows SNA, RPC, and Sockets.
`Each of the elements of WOSA includes a set of Application Program Interfaces (APIS) and Service Provider
`Interfaces (SPIs), with associated supporting software. The architecture of WOSA is shown below:
`
`Window s-based
`
`
`
`W OSA: Windows 0 en Services Architecture
`
`For additional infomlation on WOSA, see the WOSA Backgrounder (Microsoft part number 098-34801).
`
`The Extensions for Financial Services extend WOSA by defining a Windows-based client—server architecture for
`financial applications. The extensions (as with the other elements of WOSA) include a set of APIs and SPIs
`corrunon to multiple financial applications.
`
`The WOSA Extensions for Financial Services are planned to include specifications for access to financial
`peripherals (such as passbook/joumallreceipt printers, magnetic card readerslwriters, PIN pads, etc.), financial
`transaction messaging and management, as well as related services for financial networks such as network and
`systems management and security. All these capabilities are specified for access from the familiar, consistent
`Microsoft Windows user interface and programming enviromnents. Whenever possible, the capabilities will be
`incorporated into the family of standard WOSA elements, and will utilize existing fomral and de facto standards.
`Page 10 of 228
`
`AMS
`
`Exhibit 2005
`
`RA V AMS
`
`IPR2017-00049
`
`applications
`
`Windows APIS
`
`Windows
`
`Windows SPIs
`
`Service
`
`providers
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`1.4
`
`Benefits
`
`April 14, 1994
`
`3
`
`Adoption of the Windows platforms, the WOSA architecture and the Extensions for Financial Services will deliver a
`wide range of benefits to banks and other financial services institutions, satisfying the objectives stated above by
`allowing them to:
`• Access financial services and devices using standard Windows user and programming interfaces, with the
`resultant savings in user and developer training.
`• Utilize the large, growing range of Windows-based applications and development tools.
`• Exploit the variety of products that will be developed by the multiple vendors that will support this initiative.
`• Develop applications which will be able to run with few or no changes on the full range of Windows operating
`systems (and associated range of hardware platforms). The Windows family consists of the Windows version
`3.1, Windows™ for Workgroups and Windows NT™ operating systems. Future versions of the Windows
`operating systems family will also be supported.
`• Deploy modular and adaptable line of business solutions (financial services delivery systems, relationship
`banking, etc.) to address the changing conditions experienced in today's markets.
`
`
`Note that since the interfaces specified in WOSA are open and utilize many industry standards, vendors and users
`have many options to develop solutions that involve interoperatibility with other operating system platforms.
`
`
`
`Page 11 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`4
`
`2. WOSA Extensions for Financial Services Overview
`
`A key element of the Extensions for Financial Services is the definition of a set of APIs, a corresponding set of SPIs,
`and supporting services, providing access to financial services for Windows-based applications. The definition of
`the functionality of the services, of the architecture, and of the API and SPI sets, is outlined in this section, and
`described in detail in Sections 5 through 10.
`
`The specification defines a standard set of interfaces such that, for example, an application that uses the API set to
`communicate with a particular service provider can work with a service provider of another conformant vendor,
`without any changes.
`
`The specification is intended to be usable within all implementations and versions of the Windows operating
`systems, from Windows version 3.1, Windows for Workgroups version 3.1 and the initial versions of Windows NT,
`and onwards. It thus provides for both 16 and 32 bit operating environments (operating under the Win32s subsystem
`in 16 bit environments).
`
`Although the WOSA Extensions for Financial Services define a general architecture for access to service providers
`from Windows-based applications, the initial focus of the Banking Systems Vendor Council has been on providing
`access to peripheral devices that are unique to financial institutions. Since these devices are often complex, difficult
`to manage and proprietary, the development of a standardized interface to them from Windows-based applications
`and Windows operating systems can offer financial institutions and their solution providers immediate enhancements
`to productivity and flexibility.
`
`Other issues critical to financial enterprise computing will also be addressed in the future by the Banking Systems
`Vendor Council, and similar definitions for these areas will be added to the Extensions for Financial Services (or as
`basic WOSA elements). These are expected to include:
`• Financial transaction messaging and management
`• Network and system management
`• Security
`• Emerging technologies such as object-oriented development, multimedia capabilities and pen computing
`
`
`See Section 4 for more detail.
`
`Page 12 of 228
`
`
`
`
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`April 14, 1994
`
`5
`
`2.1
`
`Architecture
`
`The architecture of the WOSA Extensions for Financial Services (WOSA/XFS) system is shown below.
`
`Windows-based
`
`applications
`
`
`
`WOSA/XFS APIs
`
`WOSA/XFS Manager
`Configumfion
`
`Information
`
`
`
`Service
`providers
`
`WOSA/XFS SPIs
`
`Figure 2.1 — WOSA Extensions for Financial Services Architecture
`
`The applications communicate with service providers, via the WOSA Extensions for Financial Services Manager,
`using the API set. Most of these APIs can be invoked either "synchronously" (the Manager causes the application to
`wait until the API's function is completed) or "asynchronously" (the application regains control immediately, while
`the function is performed in parallel).
`
`The common deliverable in all implementations of this WOSA Extensions for Financial Services specification is the
`WOSA Extensions for Financial Services Manager, which maps the specified API to the corresponding SPI, then
`routes this request to the appropriate service provider.
`'I‘he Manager uses the configuration information to route the
`API call (made to a "logical service" or a "logical device") to the proper service provider entry point (which is
`always local, even though the device or service that is the final target may be remote). Note that even though the
`API calls may be either synchronous or asynchronous, the SP1 calls are always asynchronous.
`
`The developers of financial services to be used via XFS and the manufacturers of financial peripherals will be
`responsible for the development and distribution of service providers for their services and devices. A setup routine
`for each device or service will also be necessary to define the appropriate configuration information. This
`infomiation will allow an application to request capability and status information about the devices and services
`available at any point in time.
`
`Page 13 of 228
`
`AMS
`
`Exhibit 2005
`
`RA V AMS
`
`IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`6
`
`The primary functions of the service providers are to:
`• Translate generic (e.g., forms-based) service requests to service-specific commands.
`• Route the requests to either a local service or device, or to one on a remote system, effectively defining a
`peer-to-peer interface among service providers.
`• Arbitrate access by multiple applications to a single service or device, providing exclusive access when
`requested.
`• Manage the hardware interfaces to services or devices.
`• Manage the asynchronous nature of the services and devices in an appropriate manner, always presenting
`this capability to the XFS Manager and the applications via Windows messages.
`
`
`The system design supports solution of complex problems, often not addressed by current systems, by providing for
`maximum flexibility in all its capabilities:
`• Multiple service providers, developed by multiple vendors, can coexist in a single system and in a network.
`• The service class definition is based on the logical functionalities of the service, with no assumption being
`made as to the physical configuration. A physical device that includes multiple distinct physical capabilities
`(referred to as a "compound device" in this specification) is treated as several logical services; the service
`provider resolves any conflicts. Note also that a logical service may include multiple physical devices (for
`example, a cash dispenser consisting of a note dispenser and coin dispenser).
`• Similarly, a physical device may be shared between two or more users (e.g., tellers), and the physical device
`synchronization is managed at the service provider level.
`• The API definition and associated services provide time-out functionality to allow applications to avoid
`deadlock of the type that can occur if two applications try to get exclusive access to multiple services at the
`same time.
`• The architecture is designed to provide a framework for future development of network and system
`monitoring, measurement, and management.
`
`
`Note that Figure 2.1 is a high level view of the architecture and, in particular, it makes no distinction between service
`providers and the services they manage. This specification focuses on service providers rather than on services,
`because the way a service provider communicates with a service is a vendor-specific internal design issue that
`applications and the XFS Manager are unaware of. In fact, there are many different ways that service providers can
`make services available to applications. Hence, this specification refers primarily to the service providers, since
`these are the modules with which the XFS Manager communicates. There are occasional references to 'service'
`where this is appropriate.
`
`
`
`
`Page 14 of 228
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`April 14, 1994
`
`7
`
`Example
`Figure 2.2 below shows a WOSA/XFS system supporting a set of financial peripherals. Note that in this framework
`the XFS Manager interfaces directly with a set of service providers that interface directly with the physical devices.
`Thus, the service providers are shown as implementing the service provider, service, and device driver functions,
`although these are more likely to be two or more separate layers. Many other configurations are possible.
`
`WorkStation 1
`
`WorkStation 2
`
`WorkStation 3
`
`Application
`
`Application
`
`Application
`
`WOSA/XFS API
`
`Configuration
`Information
`
`WOSA/XFS API
`
`Configuration
`Information
`
`WOSA/XFS API
`
`Configuration
`Information
`
`WOSA/XFS
`Manager
`
`WOSA/XFS
`Manager
`
`WOSA/XFS
`Manager
`
`WOSA/XFS SPI
`
`WOSA/XFS SPI
`
`WOSA/XFS SPI
`
`Passbook
`Printer
`Service
`Provider
`
`Vendor X
`
`Passbook
`Printer
`Service
`Provider
`
`Vendor Y
`
`Passbook
`Printer
`Service
`Provider
`
`Vendor Y
`
`Magnetic
`Card Reader
`Service Provider
`
`Vendor Y
`
`Passbook
`Printer
`Vendor X
`
`Passbook
`Printer
`Vendor Y
`
`Magnetic
`Card Reader
`Vendor Y
`
`Passbook
`Printer
`Service
`Provider
`
`Vendor X
`
`Passbook
`Printer
`Vendor X
`
`Figure 2.2 — A WOSA/XFS architecture example for a branch office banking system
`
`It should also be noted that one vendor's service providers are not necessarily compatible with another vendor's, as
`shown in Figure 2.2. If one application has to access the same service class as implemented by different vendors, a
`service provider is installed for each vendor.
`
`
`
`Page 15 of 228
`
`
`
`
`
` AMS
` Exhibit 2005
` RA v AMS
` IPR2017-00049
`
`

`

`WOSA Extensions for Financial Services, Revision 1.1
`
`
`2.2
`
`API and SPI Summary
`
`April 14, 1994
`
`8
`
`Sections 5 through 7 of this document present the interfaces that allow a financial application to communicate in a
`standard fashion with financial services and devices. The functions are at a sufficiently high level to allow for
`seamless redirection to other parts of the underlying operating system. A printer, for example, might rely on a set of
`services provided by the operating system, but in order to handle the unique characteristics of a financial printer and
`application, the service provider would preprocess the command, then redirect the derived commands to the
`operating system's printing services. In other implementations, the printer might be supported entirely by
`WOSA/XFS service mechanisms, and not use the operating system printing services in any way.
`
`The API is structured as sets of:
`• Basic functions, such as StartUp/CleanUp, Open/Close, Lock/Unlock, and Execute, that are common to
`all the WOSA Extensions for Financial Services device/service classes,
`• Administration functions, such as device initialization, reset, suspend or resume, used for managing
`devices and services, and
`• Specific commands, used to request device/service-specific functions, and sent to devices and services as a
`parameter of the Execute basic function.
`
`
`To the maximum extent possible, the syntax of specific commands that are used with multiple device/service classes
`is kept consistent across all devices. A primary objective is to standardize function codes and structures for the
`widest possible variety of devices.
`
`The SPI is kept as similar as possible to the API. Some commands are processed exclusively by the XFS Manager,
`and so are not in the SPI, and there are minor differences in the specific parameters passed at the two interface levels.
`
` A
`
` typical scenario showing the usage of the APIs is shown below. This example illustrates the functions used to
`print a form.
`•• StartUp (connects the application to the XFS Manager, including version negotiation)
`• Open (establishes a session between the application and the service provider)
`• Register (specifies the messages that the application should receive from the service provider)
`•• Lock (obtains exclusive access to the service by the application)
`• multiple Execute functions, passing one or more specific commands:
`àààà Print_Form
`àààà etc.
`• Unlock (releases exclusive access to the service by the application)
`• Deregister (specifies that the application should no longer receive messages from the service provider)
`•• Close (ends the session between the application and the service provider)
`•• CleanUp (disconnects the application from the XFS Manager)
`
`Note that within a session (defined by Open and Close), an application may at any time change the classes of
`messages it wishes to receive from the service provider (using Register), and ma

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket