KR100536925B1 - XFS service provider framework module and computer readable record medium on which a program there for is recorded - Google Patents
XFS service provider framework module and computer readable record medium on which a program there for is recorded Download PDFInfo
- Publication number
- KR100536925B1 KR100536925B1 KR10-2003-0007469A KR20030007469A KR100536925B1 KR 100536925 B1 KR100536925 B1 KR 100536925B1 KR 20030007469 A KR20030007469 A KR 20030007469A KR 100536925 B1 KR100536925 B1 KR 100536925B1
- Authority
- KR
- South Korea
- Prior art keywords
- service
- service provider
- xfs
- framework
- agent
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
서비스 사용자 정보와, 서비스 세션(session) 관련정보와, 디바이스의 독점적 사용을 위한 제어정보를 디바이스에 제공하는 디바이스 컨트롤 프레임웍(Device Control Framework)과; 디바이스(Device)를 사용하기 위한 어플리케이션(application)에 의해 구동하는 XFS Manager와 상기 디바이스 컨트롤 프레임웍(Device Control Framework) 간(間)의 중계자 기능을 수행하는 XFS 서비스 프로바이더 인터페이스 에이전트(XFS Service Provider Interface Agent)를 포함하여 이루어지는 XFS 서비스 프로바이더 프레임웍 모듈(XFS Service Provider Framework)으로서, CEN/XFS 표준 스펙을 따라 제어 방식을 구현하는 경우 동종 유니트의 제조사 또는 유니트의 특성에 의존성을 최소화함으로써 유니트 간의 호환성을 최대화할 수 있으며, 응용 프로그램의 관점에서도 CEN/XFS 인터페이스 만을 고려함으로써 유니트의 변경이 가해져도 응용 프로그램에 영향을 미치지 않는 장점을 갖는다.A Device Control Framework for providing the device with service user information, service session related information, and control information for exclusive use of the device; XFS Service Provider Interface Agent, which acts as a relay between the XFS Manager and the Device Control Framework, which are run by an application to use a device. XFS Service Provider Framework (XFS Service Provider Framework), which implements control according to the CEN / XFS standard specification, maximizes compatibility between units by minimizing dependence on the manufacturer or unit characteristics of the same unit. In terms of applications, only the CEN / XFS interface is taken into consideration so that even if the unit is changed, it does not affect the application.
Description
본 발명은 각종 금융장치(Device)를 제어하기 위한 서비스 프로바이더(Service Provider)에 관한 것으로서, 보다 상세하게는 XFS(Extension for Financial Services)에 정의된 규약에 따라 금융 자동화 시스템을 구성하는 다양한 금융장치(device)들을 제어하는 서비스 프로바이더(Service Provider) 모듈의 구현을 위한 소프트웨어 구동 장치로서 XFS 서비스 프로바이더 프레임웍 모듈(Service Provider Framework)에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a service provider for controlling various financial devices. More specifically, various financial devices constituting a financial automation system according to the rules defined in Extension for Financial Services (XFS). A software driving device for implementing a service provider module that controls (devices), and relates to an XFS service provider framework module.
금융 자동화시스템에는 현금자동 입출금기(Auto Teller Machine/Card Dispenser), PoS(Point-of-Sale) 및 은행원이 고객의 통장을 처리하고 검색하는 금융단말기(Banking Terminal)등을 포함하여 이루어진다. 이러한 금융장치들은 고유의 기능을 위해 카드 리더 유니트(Card Reader Unit), 지폐방출기 유니트(Cash Dispenser Unit), 프린터 유니트(Printer Unit), 키패드 유니트(Keypad Unit) 등을 포함한다. 금융 자동화시스템을 이용하는 사용자에게 금융 서비스를 제공 위해 금융 자동화시스템에 부착된 유니트들이 응용 프로그램에 의해 제어되어야 하며, 이러한 제어 프로그램을 XFS(Extension for Financial Services) 국제 표준에서는 서비스 프로바이더(Service Provider)모듈 이라고 명칭 한다. 또한 이러한 유니트들의 제어 방식은 유니트의 제조사에 매우 의존적일 수 있으므로 CEN/XFS 표준 스펙에서 일관된 제어를 위한 사용자 인터페이스를 정의하고 있다.Financial automation systems include Auto Teller Machine / Card Dispenser, Point-of-Sale and Banking Terminal, where bankers process and retrieve customer accounts. Such financial devices include a card reader unit, a cash dispenser unit, a printer unit, a keypad unit, and the like for unique functions. The units attached to the financial automation system must be controlled by an application program in order to provide financial services to the users of the financial automation system. Such a control program is a service provider module according to the Extension for Financial Services (XFS) international standard. It is called. In addition, the control method of these units can be highly dependent on the manufacturer of the unit, so the CEN / XFS standard specification defines a user interface for consistent control.
XFS 표준의 장치 분류 기준에 의하면 현재의 개발된 많은 금융장치들이 여러 개의 금융장치 기능을 하나의 하드웨어 장치에서 통합하는 복합 디바이스 형태로 개발되어지며, 기존의 상용 서비스 프로바이더(service provider)들은 이러한 복합 기능 장치에서 각각의 기능을 배타적으로 제어하기에 많은 애로사항을 갖는 구조적인 문제점을 가지고 있다.According to the device classification criteria of the XFS standard, many of the financial devices developed today are developed in the form of a composite device integrating multiple financial device functions in one hardware device. Existing commercial service providers There is a structural problem with many difficulties in exclusively controlling each function in a functional device.
본 발명은 하나의 워크스테이션 내의 복수의 어플리케이션이 하나의 금융장치를 공유해서 사용할 수 있는 XFS 서비스 프로바이더 프레임웍 모듈을 제공하는 것을 목적으로 한다.An object of the present invention is to provide an XFS service provider framework module that allows a plurality of applications in one workstation to share and use one financial device.
본 발명의 다른 목적은 CEN/XFS 표준 스펙을 따라 제어방식을 구현하는 경우 유니트 특성에 따른 변경 부분을 최소화할 수 있는 XFS 서비스 프로바이더 프레임웍 모듈을 제공하는 것이다.Another object of the present invention is to provide an XFS service provider framework module that can minimize the change according to the unit characteristics when implementing the control method according to the CEN / XFS standard specification.
본 발명의 또 다른 목적은 다중 어플리케이션 및 다중 세션 기능을 구현할 수 있는 XFS 서비스 프로바이더 프레임웍 모듈을 제공하는 것이다.Another object of the present invention is to provide an XFS service provider framework module that can implement multiple applications and multiple session functions.
이러한 목적들을 달성하기 위한 본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈은 제어모듈에서 구동하는 금융장치의 기능제공 성격에 따라 디바이스 클래스를 분류하고 이에 따른 컨트롤 프레임웍을 달리하는 것을 특징으로 한다.The XFS service provider framework module according to the present invention for achieving these objects is characterized by classifying the device class according to the nature of the function provided by the financial device running on the control module and different control framework accordingly.
본 발명에 따른 XFS 서비스 프로바이더 프레임웍(XFS Service Provider Framework) 모듈의 구성(構成)상 특징은 각 어플리케이션의 식별 정보인 서비스 사용자 정보와, 어플리케이션이 서비스 프로바이더에게 서비스를 요청할 때 서비스 요청 상태정보인 서비스 세션(session) 관련 정보와, 디바이스의 배타적 사용을 위한 제어정보 등을 이용하여 장치제어 기능을 수행하는 디바이스 컨트롤 프레임웍(Device Control Framework)과; 금융장치(Device)를 사용하기 위한 어플리케이션(application)에 의해 구동하는 XFS 매니저(Manager)와 상기 디바이스 컨트롤 프레임웍(Device Control Framework) 간(間)의 중계자 기능을 수행하는 XFS 서비스 프로바이더 인터페이스 에이전트(XFS Service Provider Interface Agent)로 이루어진 점이다.An aspect of the configuration of the XFS Service Provider Framework module according to the present invention is service user information, which is identification information of each application, and service request state information when an application requests a service from a service provider. A device control framework that performs a device control function using service session related information and control information for exclusive use of the device; An XFS service provider interface agent (XFS) that performs a relay function between an XFS manager driven by an application for using a device and the device control framework. Service Provider Interface Agent).
본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈의 다른 특징은 상기 XFS 서비스 프로바이더 인터페이스 에이전트(XFS Service Provider Interface Agent)가, XFS 매니저(manager)에 의해 호출 실행될 함수들로 구성된 XFS 서비스 프로바이더 인터페이스 함수부(XFS Service Provider Interface functions)와; 어플리케이션(application)에 의해 요청된 금융장치 제어 서비스인 논리적 서비스(Logical Service)에 대응되는 서비스 프로바이더(Service Provider) 모듈을 제어하고 서비스 실행 명령을 서비스 프로바이더(Service Provider)에 전송하고 그 처리 결과와 함께 디바이스 이벤트(Device Event)를 해당 어플리케이션(application)으로 전달하고 이벤트 클래스 리스트(Event Class List)를 관리하는 서비스 에이전트(Service Agent)와; 어플리케이션(application)에 의해 요청되어 상기 XFS 서비스 프로바이더 인터페이스 함수부(XFS Service Provider Interface functions)를 통해 제공되는 논리적 서비스(logical service)에 대응되는 서비스 에이전트(Service Agent)를 생성하고, 관련 정보를 관리하는 에이전트 매니저(Agent Manager)와; 서비스 에이전트(Service Agent)와 서비스 프로바이더(Service Provider) 실행 모듈간의 통신을 담당하는 인터-프로세스 통신모듈(Inter-Process Communication)을 포함하여 이루어지는 점이다.Another feature of the XFS service provider framework module according to the present invention is that the XFS service provider interface agent, the XFS service provider interface function unit consisting of functions to be called by an XFS manager (manager) (XFS Service Provider Interface functions); Controls a service provider module corresponding to a logical service, which is a financial device control service requested by an application, and transmits a service execution command to a service provider, and processes the result. A service agent for delivering a device event to a corresponding application and managing an event class list; Create a service agent corresponding to a logical service requested by an application and provided through the XFS service provider interface functions, and manage related information. An agent manager; It is the point that the inter-process communication module (Inter-Process Communication) responsible for the communication between the service agent (Service Agent) and the service provider execution module (Inter-Process Communication).
삭제delete
본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈의 또 다른 특징은 상기 디바이스 컨트롤 프레임웍(Device Control Framework)이, 복수의 서비스 프로바이더 인터페이스 에이전트(SPI agent)와의 프로세스간 통신(Inter-process communication) 및 이와 관련한 연속성 유지 기능을 수행하는 서비스 커먼 라이브러리부(Service Common Library)와; 금융장치(Device)의 논리적인 기능(Logical Service) 및 디바이스 상태의 점검 및 상태변화에 따른 이벤트를 발생하는 논리적 서비스 라이브러리부(Logical Service Library)와; 논리적 서비스를 관리하고, 디바이스의 논리적 타입에 따라 지원하는 디바이스 클래스를 달리하는 디바이스 프레임웍 템플리트 라이브러리(Device Framework Template Library)부를 포함하여 이루어지는 점이다.Another feature of the XFS service provider framework module according to the present invention is that the device control framework (Device Control Framework), the inter-process communication with a plurality of service provider interface agents (SPI agent) and related thereto A service common library unit performing a continuity maintaining function; A logical service library unit for generating an event according to a logical function of a financial device and a device state check and a state change; It includes a Device Framework Template Library that manages logical services and supports different device classes according to the logical type of the device.
삭제delete
이하, 첨부된 도면을 참조로 본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈의 구성과 그에 따른 동작을 설명하기로 한다.Hereinafter, the configuration of the XFS service provider framework module and its operation according to the present invention will be described with reference to the accompanying drawings.
본 발명의 설명에 앞서, 이하에서 사용되는 용어를 다음과 같이 확인한다.Prior to the description of the present invention, the terms used below are identified as follows.
·어플리케이션(application): XFS에서 정의하고 있는 XFS 매니저의 API를 호출하여 금융 장치를 사용하는 금융거래 어플리케이션.Application: A financial transaction application that uses a financial device by calling an API of the XFS Manager defined in XFS.
·XFS 매니저(XFS Manager): XFS 매니저를 호출하는 어플리케이션과 장치제어를 구현한 서비스 프로바이더를 연결하는 동작을 수행하는 XFS SDK로 XFS Implement Group에서 제작 공개하는 Toolkit이며, msxfs.dll, xfs_conf.dll, xfs_supp.dll등 세 개의 DLL로 구성된다. XFS Manager: An XFS SDK that connects an application that calls XFS Manager with a service provider that implements device control.It is a toolkit published and published by the XFS Implement Group. Msxfs.dll, xfs_conf.dll It consists of three DLLs, xfs_supp.dll.
·서비스 프로바이더 인터페이스(Service Provider Interface): 금융 장치를 제어하기 위해 XFS 표준 사양서에 정의된 장치 제어 함수의 집합.·서비스 프로바이더(Service Provider): XFS 표준 사양서에 정의된 SPI 함수 셋을 구현하여 XFS 매니저와 연동하여 어플리케이션에게 금융 장치 제어 서비스를 제공하는 구동 모듈.·논리적 서비스(Logical Service): 제조사 마다 금융장치를 구동하는 방법은 차이가 있을 수 있으나 근본적으로 서비스 관점에서 장치의 역할 및 기능은 차이가 없다, 예를들어 프린터의 경우 제조사마다 구동 방식은 다를 수 있으나 프린팅(printing)이라는 서비스는 동일하다 따라서 금융 장치가 갖는 모든 기능들을 서비스 관점에서 바라본 논리적 기능들을 XFS 표준에서 논리적 서비스라 정의한다.·서비스 사용자 정보: XFS 표준 사양서는 각종 금융 장치의 제어 기능을 논리적 서비스로 구분하여 정의하고 있고 금융장치 제어 모듈인 서비스 프로바이더는 어플리케이션을 구분하기 위해 고유한 식별 정보 갖는 서비스 사용자 정보를 관리하며 이는 Lock 정책을 이용한 금융 장치의 배타적 접근을 관리하기 위해 이용되는 정보이다.·서비스 에이전트(Service Agent): XFS 표준 사양서에서 정의하고 있는 논리적 서비스에 따라 금융 장치를 구동할 수 있도록 XFS 서비스 프로바이더 인터페이스 에전트의 구성 요소.·에이전트 매니저(Agent Manager): 어플리케이션이 요청한 논리적 서비스에 따라 금융장치를 구동하기 위해 서비스 에이전트가 생성되는데 이러한 서비스 에이전트의 생성, 관리 및 종료를 담당하는 XFS 서비스 프로바이더 인터페이스 에전트의 구성 요소.·다중 세션(session): 금융 거래 어플리케이션이 특정 서비스 프로바이더 와 여러 개의 세션(session)을 설정하는 경우로 서비스 프로바이더는 세션을 구분하는 식별자를 갖는다.·컨텍스트: 에이전트 매니저(Agent Manager)가 논리적 서비스 해당하는 서비스 에이전트(Service Agent)를 생성, 관리 및 종료하기 위해 이용하는 에이전트(Service Agent)에 대한 정보.Service Provider Interface: A set of device control functions defined in the XFS Standard Specification for controlling financial devices.Service Provider: Implementing a set of SPI functions defined in the XFS Standard Specification. A driving module that provides financial device control services to applications in conjunction with the XFS Manager. Logical Service: The method of driving financial devices may vary among manufacturers, but the role and function of the device is fundamentally in terms of services. There is no difference, for example, different printers may have different driving methods, but the printing service is the same. Therefore, all functions of a financial device are defined as logical services in the XFS standard. Service user information: The XFS standard specification documents The control function is defined as logical services and the service provider, a financial device control module, manages service user information with unique identification information to distinguish applications. This is to manage exclusive access of financial devices using lock policy. Service Agent: A component of the XFS Service Provider Interface Agent to run financial devices in accordance with the logical services defined in the XFS Standard Specification. Agent Manager: Service agents are created to drive financial devices according to the logical services requested by the application. Components of the XFS service provider interface agent responsible for creating, managing, and terminating these service agents. Multiple sessions: Financial transactions. Application specific In the case of establishing multiple sessions with the service provider, the service provider has an identifier for identifying the session.Context: The agent manager creates a service agent corresponding to a logical service. Information about the service agent used to manage and terminate.
XFS 서비스 프로바이더(Service Provider)를 개발하는 작업은 해당 디바이스 종류에 맞추어 XFS에서 정의한 서비스 프로바이더 인터페이스(Service Provider Interface: 이하 "SPI"라 함)를 적절하게 구현하는 것이다. SPI를 구현하는 일은 크게 두 가지로 분류되는데, 하나가 디바이스 동작을 위하여 XFS manager가 호출하는 SPI를 구현하는 것과, 다른 하나가 디바이스에 관련된 정보를 얻기 위하여 XFS manager가 호출하는 SPI를 구현하는 것이다. 그 두 가지 SPI를 구현하는 것의 많은 부분이 XFS에서 정의한 데이터 구조(data structure)에 따른 정보의 전달방식을 위해 구현되는 것이다. 예를 들면, 스태커(stacker)가 있는 현금지급기와 스태커가 없는 현금지급기와 같이 모두 현금지급기이지만 디바이스의 기능에 차이가 있어 디바이스와의 통신방식이나 동작지시에 사용되는 명령의 차이에 의한 구현부분은 XFS Service Provider를 작성하는 작업에서 극히 일부분에 지나지 않는다. 따라서, 디바이스의 차이에 의한 구현부분을 클래스(class) 형태로 정의하고 그 클래스(class)의 정의를 이용하여 XFS SPI부분을 구현한다면, 향후에 새로운 디바이스에 대한 XFS Service Provider를 제작해야 하는 경우 그 클래스의 내부 구현부분만 새로운 디바이스의 스펙(specification)에 맞도록 만들면 쉽게 서비스 프로바이더(Service Provider)를 제작할 수 있다. The task of developing an XFS Service Provider is to properly implement the XFS-defined Service Provider Interface (SPI) for the device type. Implementing an SPI can be divided into two main categories, one implementing the SPI called by the XFS manager for device operation, and the other implementing the SPI called by the XFS manager to obtain information about the device. Much of the implementation of the two SPIs is implemented for the delivery of information according to the data structure defined in XFS. For example, the cash dispensers such as the ATM with the stacker and the ATM without the stacker are all ATMs, but the functions of the devices are different. It is only a small part of writing the XFS Service Provider. Therefore, if the implementation part by device difference is defined in the form of class and the XFS SPI part is implemented using the definition of the class, then in the future, the XFS Service Provider for the new device should be produced. You can easily create a service provider by making only the internal implementation of the class match the specification of the new device.
이와 같이 금융 장치의 제조사에 따라 다른 구현부분을 각 디바이스 클래스(Cash Dispenser Class, Printer Class, Identification Card Class, Personal Identification Number Pad Class등)로 정의하여 공통적으로 사용하므로 효율적으로 서비스 프로바이더 모듈을 개발할 수 있다.As such, different implementation parts are defined by each device class (Cash Dispenser Class, Printer Class, Identification Card Class, Personal Identification Number Pad Class, etc.) according to the manufacturer of the financial device, so that the service provider module can be efficiently developed. have.
하나의 워크스테이션(Workstation)에서 XFS 매니저(Manager)를 사용하는 어플리케이션이 N개가 있을 때는 XFS 매니저(Manager)는 각각의 어플리케이션마다 로드(load)되야 하므로 XFS 매니저(Manager) N개가 실행되는 형태이나, 어플리케이션들과 각종 금융장치 제어 서비스를 제공하는 서비스 프로바이더 간의 독립적인 세션(session)을 관리하여 하나의 워크스테이션(Workstation) 내에 1개의 XFS 매니저(Manager)가 존재하는 기능을 제공한다.When there are N applications that use XFS Manager in one workstation, the XFS Manager must be loaded for each application, so N XFS Managers are executed. It manages independent sessions between applications and service providers that provide various financial device control services, and provides a function that one XFS manager exists in one workstation.
XFS Manager는 각각의 금융 장치를 논리적인 디바이스 클래스(Logical Device Class)(예, PTR : 각종 인쇄기, CDM: 현금출력기, IDC: 카드리더, SIU: 센서 및 램프, PIN : 키입력장치)로 나누고 있다. 어플리케이션(application)이 사용하려는 디바이스 기능을 제공하는 서비스 프로바이더를 DLL 형태로 로드(load)할 수 있다.The XFS Manager divides each financial device into a logical device class (eg, PTR: various printers, CDM: cash dispenser, IDC: card reader, SIU: sensor and lamp, PIN: key input device). . A service provider providing a device function to be used by an application may be loaded in the form of a DLL.
각각의 서비스 프로바이더 모듈 XFS 매니저(Manager)가 호출, 실행, 관리하기 위한 SPI(Service Provider Interface)를 제공하게 되며 서비스 프로바이더는 하나 또는 하나 이상의 금융 장치의 논리적인 서비스를 제공하도록 금융 장치를 제어하기 위한 제어 코드로 구성된다.Each service provider module XFS Manager provides a Service Provider Interface (SPI) for invoking, executing, and managing, and the service provider controls the financial device to provide logical services of one or more financial devices. It consists of a control code for
본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈(XFS Service Provider Framework Module)(1)은 도 1에서 보는 바와 같이, 서비스 사용자 정보와, 서비스 세션(session) 관련정보와, 디바이스의 독점적 사용을 위한 제어정보를 디바이스에 제공하는 디바이스 컨트롤 프레임웍(Device Control Framework)(200)과; 디바이스(Device)를 사용하기 위한 어플리케이션(application)에 의해 구동하는 XFS Manager와 상기 디바이스 컨트롤 프레임웍(Device Control Framework)(200) 간(間)의 중계자 기능을 수행하는 XFS 서비스 프로바이더 인터페이스 에이전트(XFS Service Provider Interface Agent)(100)로 구성되어 하나의 워크스테이션 내의 복수개의 어플리케이션이 하나의 금융 장치를 공유해서 사용할 수 있도록 구성하고 있다. As shown in FIG. 1, the XFS Service Provider Framework Module 1 according to the present invention includes service user information, service session related information, and control information for exclusive use of the device. A device control framework 200 for providing a device to the device; XFS Service Provider Interface Agent (XFS Service) that performs the relay function between the XFS Manager and the Device Control Framework 200 which are driven by an application for using a device. Provider Interface Agent (100) is configured to allow a plurality of applications in one workstation to share and use one financial device.
XFS 서비스 프로바이더 인터페이스 에이전트(XFS Service Provider Interface Agent)(100)는 XFS manager에 의해 실행되며 DLL 형태로 구성된다. 어플리케이션이 사용하는 디바이스의 종류 및 수에 관계없이 한 개만이 어플리케이션 실행모듈에서 실행되고, 사용하는 모든 디바이스 모듈의 시동, 기능 실행 및 종료를 담당한다.The XFS Service Provider Interface Agent 100 is executed by the XFS manager and is configured in the form of a DLL. Regardless of the type and number of devices used by the application, only one is executed in the application execution module and is responsible for starting, executing and terminating all device modules.
도 2는 상기 XFS 서비스 프로바이더 인터페이스 에이전트(SPI Agent)(100) 모듈의 구성을 좀 더 상세히 나타낸 블록도이다. 도시된 바와 같이, XFS 매니저(manager)에 의해 호출 실행될 함수들로 구성된 XFS 서비스 프로바이더 인터페이스 함수부(XFS Service Provider Interface functions)(110)와; 어플리케이션(application)에 의해 요청된 로지컬 서비스(logical service)에 대응하는 서비스 프로바이더(Service Provider)실행 모듈을 제어하고 서비스 실행 명령을 서비스 프로바이더(Service Provider)에 전송하고 그 처리 결과와 함께 디바이스 이벤트(Device Event)를 해당 어플리케이션(application)으로 전달하고 이벤트 클래스 리스트(Event Class List)를 관리하는 서비스 에이전트(Service Agent)(130)와; 어플리케이션(application)에 의해 요청되어 상기 XFS 서비스 프로바이더 인터페이스 함수부(XFS Service Provider Interface functions)(110)를 통해 제공되는 로지컬 서비스(logical service)에 대응하는 서비스 에이전트(Service Agent)(130)를 생성하고, 관련 컨텍스트(context)를 관리하는 에이전트 매니저(Agent Manager)(120)와; 서비스 에이전트(Service Agent)(130)와 서비스 프로바이더(Service Provider) 실행 모듈간의 통신을 담당하는 인터-프로세스 통신모듈(Inter-Process Communication)(140)을 포함하여 구성된다.2 is a block diagram illustrating in more detail the configuration of the XFS Service Provider Interface Agent (SPI Agent) 100 module. As shown, an XFS Service Provider Interface functions 110 composed of functions to be called by an XFS manager; Controls the service provider execution module corresponding to the logical service requested by the application, sends the service execution command to the service provider, and sends the device event along with the processing result. A service agent 130 for delivering a device event to a corresponding application and managing an event class list; Create a service agent 130 corresponding to a logical service requested by an application and provided through the XFS service provider interface functions 110. An agent manager 120 for managing an associated context; It is configured to include an inter-process communication module (Inter-Process Communication) 140 that is responsible for communication between the service agent (Service Agent) 130 and the service provider execution module.
또한, 금융장치(Device)로부터 발생하여 상기 인터-프로세스 통신모듈(140)을 통해 서비스 에이전트(130)로 제공된 이벤트를 보내기 위해 설정된 레지스터드 윈도우즈 리스트(Registered Windows List)와; 상기 에이전트 매니저(Agent Manager)(120)에서 서비스 에이전트(Service Agent)(130)를 관리하기 위한 서비스 에이전트 리스트(Service Agent List)를 포함한다.A registered Windows List generated from a financial device and configured to send an event provided to the service agent 130 through the inter-process communication module 140; The agent manager 120 includes a service agent list for managing a service agent 130.
XFS 서비스 프로바이더 인터페이스 함수부(XFS Service Provider Interface functions)(110)는 XFS Manager에 의해 호출 실행될 함수들의 세트(set)로서 Open, Close, Lock, Register, Deregister, GetInfo, Execute등의 명령이 있다.The XFS Service Provider Interface functions 110 are sets of functions to be called by the XFS Manager and include commands such as Open, Close, Lock, Register, Deregister, GetInfo, and Execute.
어플리케이션(Application)에서 XFS API Open을 실행 시 사용할 디바이스에 대한 logical Service Name을 아규먼트(Argument)로 전달하고 XFS Manager는 SPI Open을 호출한다. SPI Open 함수는 Agent Manager에게 logical Service Name에 해당하는 서비스 프로바이더(Service Provider) 모듈의 실행을 요청한다.When the application executes XFS API Open, the logical service name for the device to be used is passed as an argument, and the XFS Manager calls SPI Open. The SPI Open function asks the Agent Manager to execute the Service Provider module corresponding to the logical service name.
어플리케이션(Application)은 사용하던 디바이스를 종료하기 위해 XFS API Close를 호출하고 XFS Manager는 SPI Close를 호출한다. SPI Close 함수는 Agent Manager에게 해당 서비스의 종료를 요청한다.The application calls XFS API Close to close the device, and the XFS Manager calls SPI Close. The SPI Close function requests the Agent Manager to terminate the service.
어플리케이션(Application)은 특정 디바이스를 배타적으로 사용하기 위해 XFS API Lock 명령을 호출하고 XFS Manager는 SPI Lock을 호출한다. SPI Lock 함수 내에서는 Agent Manager에게 해당 서비스에 대한 Lock을 요청한다.The application calls the XFS API Lock command to exclusively use a particular device, and the XFS Manager calls SPI Lock. In the SPI Lock function, ask the Agent Manager to lock the service.
어플리케이션(Application)은 사용하던 Lock을 해제하기 위해 XFS API Unlock 명령을 호출하고 XFS Manager는 SPI Unlock을 호출한다. SPI Unlock 함수 내에서는 에이전트 매니저(Agent Manager)(120)에게 해당 서비스에 대한 Unlock을 요청한다.The application calls the XFS API Unlock command to unlock the lock used, and the XFS Manager calls SPI Unlock. In the SPI Unlock function, the Agent Manager 120 requests an unlock for the corresponding service.
어플리케이션(Application)은 디바이스에서 발생하는 이벤트를 전달받기 위해 XFS API Register를 호출하고 XFS Manager는 SPI Register를 호출한다. SPI Register 함수 내에서는 에이전트 매니저(Agent Manager)(120)에게 해당 서비스에 해당하는 이벤트 클래스의 Register를 요청한다.The application calls the XFS API Register to receive events from the device, and the XFS Manager calls the SPI Register. In the SPI Register function, the Agent Manager 120 requests a register of an event class corresponding to a corresponding service.
어플리케이션(Application)은 디바이스를 종료시키기 전에 이벤트를 전달 받기 위해 등록한 XFS API Deregister를 호출하고 XFS Manager는 SPI Deregister를 호출한다. SPI Deregister 함수 내에서는 에이전트 매니저(Agent Manager)(120)에게 이벤트 클래스의 Register를 요청한다.The application calls the registered XFS API Deregister to receive events before shutting down the device, and the XFS Manager calls SPI Deregister. In the SPI Deregister function, the agent manager 120 requests a register of an event class.
어플리케이션(Application)은 디바이스에 대한 정보를 얻기 위해 XFS API GetInfo를 호출하고 XFS Manager는 SPI GetInfo를 호출한다. SPI GetInfo 함수 내에서는 에이전트 매니저(Agent Manager)(120)에게 해당 Logical Service의 정보를 요청한다.The application calls XFS API GetInfo to get information about the device, and the XFS Manager calls SPI GetInfo. In the SPI GetInfo function, the agent manager 120 requests information of a corresponding logical service.
어플리케이션(Application)은 디바이스의 기능을 실행하기 위해 XFS API Execute를 호출하고 XFS Manager는 SPI Execute를 호출한다. SPI Execute 함수 내에서는 에이전트 매니저(Agent Manager)(120)에게 해당 Logical Service 실행을 요청한다.Application calls XFS API Execute to execute device functions and XFS Manager calls SPI Execute. In the SPI Execute function, the Agent Manager 120 requests the execution of the corresponding Logical Service.
에이전트 매니저(Agent Manager)(120)의 주요 기능은 어플리케이션 (application)에 의해 요청된 logical Service에 해당하는 서비스 에이전트 (Service Agent)(130)의 실행 및 종료, 어플리케이션(application)이 사용하는 모든 서비스 관련 에이전트 매니저(Service Agent)와 관련 컨텍스트의 관리 및 요청된 서비스의 실행을 위해 에이전트 매니저(Service Agent)를 찾고 실행을 요구한다.The main function of the agent manager 120 is to execute and terminate the service agent 130 corresponding to the logical service requested by the application, and to related to all services used by the application. In order to manage an agent manager and its associated context and to execute a requested service, a service agent is found and required to be executed.
SPI Open 함수에서 Logical Service에 대한 Open을 요청하면 에이전트 매니저(Agent Manager)(120)는 요청된 Logical Service Name의 이미 실행된 서비스 에이전트(Service Agent)(130)가 있을 경우 관련 컨텍스트를 등록하고 서비스 에이전트(Service Agent)(130)에게 Logical Service의 Open을 요청한다. 이미 실행된 서비스 에이전트(Service Agent)(130)가 없으면 Logical Service에 대한 서비스 에이전트(Service Agent)(130)를 생성하고 관련 컨텍스트를 등록한 뒤 Logical Service의 Open을 요청한다.When the SPI Open function requests the opening of the Logical Service, the Agent Manager 120 registers the relevant context if there is already an executed Service Agent 130 of the requested Logical Service Name. (Service Agent) 130 requests the opening of the Logical Service. If there is no service agent 130 already executed, the service agent 130 for the logical service is created, the relevant context is registered, and then the logical service is opened.
SPI Close 함수에서 Logical Service에 대한 Close를 요청하면 에이전트 매니저(Agent Manager)(120)는 해당 서비스 에이전트(Service Agent)(130)에게 서비스의 종료를 요청하고 해당 컨텍스트를 제거한다. Logical Service에 대한 모든 컨텍스트가 제거되면 해당 서비스 에이전트(Service Agent)(130)를 종료시킨다.When the SPI Close function requests the close of the logical service, the agent manager 120 requests the service agent 130 to terminate the service and removes the context. When all contexts for the logical service are removed, the corresponding service agent 130 is terminated.
SPI Lock 함수에서 Logical Service에 대한 lock을 요청하면 Agent Manager는 해당 서비스 에이전트(Service Agent)(130)에게 lock을 요청한다..When the SPI lock function requests a lock for the logical service, the agent manager requests a lock from the corresponding service agent 130.
SPI Unlock 함수에서 Logical Service에 대한 Unlock을 요청하면 에이전트 매니저(Agent Manager)(120)는 해당 서비스 에이전트(Service Agent)(130)에게 unlock을 요청한다..When the SPI Unlock function requests an unlock for the logical service, the agent manager 120 requests the unlocked service agent 130.
SPI Register 함수에서 Logical Service에 대한 Register를 요청하면 에이전트 매니저(Agent Manager는 이벤트 클래스 리스트에 등록한다.When the SPI Register function requests a register for the logical service, the agent manager registers it in the event class list.
SPI Register 함수에서 Logical Service에 대한 Deregister를 요청하면 에이전트 매니저(Agent Manager)(120)는 이벤트 클래스 리스트에서 해당 이벤트 클래스를 제거한다.When the SPI Register function requests Deregister for the Logical Service, the Agent Manager 120 removes the corresponding event class from the event class list.
SPI GetInfo 함수에서는 Logical Service의 정보를 요구하면 에이전트 매니저(Agent Manager)(120)는 해당 서비스 에이전트(Service Agent)(130)에서 Logical Service의 정보를 요청한다.When the SPI GetInfo function requests the information of the logical service, the agent manager 120 requests the information of the logical service from the corresponding service agent 130.
SPI GetInfo 함수에서는 Logical Service의 실행을 요구하면 에이전트 매니저(Agent Manager)(120)는 해당 서비스 에이전트(Service Agent)(130)에서 Logical Service의 실행을 요청한다.In the SPI GetInfo function, when the Logical Service is requested to be executed, the Agent Manager 120 requests the Logical Service to be executed by the corresponding Service Agent 130.
서비스 에이전트(Service Agent)(130)의 주요 기능은 어플리케이션 (application)에 의해 요청된 logical Service에 대응하여 해당하는 Service Provider 실행 모듈의 실행 및 종료를 수행하고 서비스 실행 명령을 Inter-Process Communication 모듈을 통해 Service Provider 모듈로 전송한다. Service Provider 실행 모듈의 처리 결과 또는 디바이스 이벤트를 전달받으면 해당 어플리케이션(application)으로 전달하는 기능과 이벤트 클래스 리스트를 관리한다.The main function of the service agent 130 is to execute and terminate the corresponding service provider execution module corresponding to the logical service requested by the application, and execute the service execution command through the inter-process communication module. Send to Service Provider module. Manages the function and event class list delivered to the application when the result of the service provider execution module or the device event is received.
SPI Open 함수 처리결과로 서비스 에이전트(Service Agent)(130)가 생성되면 워크스테이션(workstation) 내에 Logical Service에 해당하는 Service Provider를 찾고 없으면 Service Provider 실행 모듈을 실행시키고 Inter-Process Communication을 통한 connection을 수행한다. 요청된 Logical Service에 대한 Open을 Service Provider 모듈로 전달하고, 수행 결과를 수신하면 해당 어플리케이션(application)으로 결과를 전달한다..When the service agent 130 is created as a result of SPI Open function processing, if the service provider corresponding to the logical service is not found in the workstation, the service provider execution module is executed and the connection is performed through inter-process communication. do. Delivers the Open for the requested Logical Service to the Service Provider module, and delivers the result to the application when receiving the execution result.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 close를 요청 받으면 서비스 에이전트(Service Agent)(130)는 Inter-Process Communication을 통해 Logical Service의 close를 전달하고, 결과를 수신하면 해당 어플리케이션(application)에게 결과를 전달하고, 에이전트 매니저(Agent Manager)(120)에게 해당 컨텍스트의 제거를 요청한다. 대응되는 Logical Service를 사용하는 모든 세션이 종료되면 서비스 에이전트(Service Agent)(130)는 자신의 종료를 에이전트 매니저(Agent Manager)(120)에게 요청한다.Upon receiving a request for close of the Logical Service from the Agent Manager 120, the Service Agent 130 delivers a close of the Logical Service through inter-process communication, and receives a result of the corresponding application. The result is transmitted to the agent, and the agent manager 120 requests removal of the context. When all sessions using the corresponding Logical Service are terminated, the service agent 130 requests the agent manager 120 for its termination.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 lock을 요청 받으면 서비스 에이전트(Service Agent)(130)는 해당 Service Provider에게 lock을 요청한다. 결과를 수신하면 해당 어플리케이션(application)에게 전달한다.Upon receiving a request for the lock of the logical service from the agent manager 120, the service agent 130 requests the lock from the corresponding service provider. When the result is received, it is delivered to the application.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 unlock을 요청 받으면 서비스 에이전트(Service Agent)(130)는 해당 Service Provider에게 unlock을 요청한다. 결과를 수신하면 해당 어플리케이션(application)에게 전달한다.When the Logical Service is requested to be unlocked from the Agent Manager 120, the Service Agent 130 requests the corresponding Service Provider to unlock. When the result is received, it is delivered to the application.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 Register를 요청 받으면 이벤트 클래스 리스트에 등록한다.When the Logical Service Register is requested from the Agent Manager 120, it is registered in the event class list.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 Deregister를 요청 받으면 이벤트 클래스 리스트에서 이벤트 클래스를 삭제한다.When the Deregistration of Logical Service is requested from the Agent Manager 120, the event class is deleted from the event class list.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 정보를 요청 받으면 Service Provider에게 정보를 요구하고, 결과를 수신하면 어플리케이션(application)에게 전달한다.When receiving the information of the Logical Service from the Agent Manager (Agent Manager) 120, it requests the information from the Service Provider, and receives the result and delivers it to the application.
에이전트 매니저(Agent Manager)(120)로부터 Logical Service의 실행을 요청 받으면 Service Provider에게 Logical Service 실행을 요구하고, 결과를 수신하면 어플리케이션(application)에게 전달한다.When the Logical Service is requested to be executed from the Agent Manager 120, the Logical Service is requested to the Service Provider, and when the result is received, the Logical Service is transmitted to the Application.
인터프로세스 커뮤니케이션(Inter-Process Communication)(140)의 주요 기능은 SPI Agent부(100)와 Service Provider 실행부 간의 통신을 담당하는 부분으로 named Pipe, Socket, Shared Memory 및 RMI 기술을 적용하여 구현 가능하다.The main function of inter-process communication 140 is the part responsible for communication between the SPI Agent 100 and the Service Provider Execution Unit, which can be implemented by applying named pipe, socket, shared memory, and RMI technologies. .
도 3은 상기 디바이스 컨트롤 프레임웍(Device Control Framework)(200)의 구성을 나타낸 블록도이다. 도시된 바와 같이, 복수의 서비스 프로바이더 인터페이스 에이전트(SPI agent)와의 프로세스간 통신(Inter-process communication) 및 이와 관련한 연속성 유지 기능을 수행하는 서비스 커먼 라이브러리부(Service Common Library)(210)와; 논리적 서비스를 관리하고, 디바이스의 기능에 따라 지원하는 디바이스 클래스를 달리하는 디바이스 프레임웍 템플리트 라이브러리부(Device Framework Template Library)(220)와; 금융장치(Device)의 논리적인 기능(Logical Service) 및 디바이스 상태의 점검 및 상태변화에 따른 이벤트를 발생하는 논리적 서비스 라이브러리부(Logical Service Library)(230)를 포함하여 이루어진다. 3 is a block diagram illustrating a configuration of the device control framework 200. As shown, a service common library 210 which performs inter-process communication with a plurality of service provider interface agents (SPI agents) and maintains continuity relating thereto; A device framework template library 220 for managing logical services and different device classes supported according to device functions; It includes a logical service library unit 230 for generating a logical function of the financial device (Device) and the check of the device state and the event according to the state change.
한편, 상기 서비스 커먼 라이브러리부(Service Common Library)(210)는, 인터 프로세스 통신을 담당하고 수신된 커맨드(command)를 커맨드 큐(command queue)에 입력하는 IPC 매니저(Inter-Process Communication Manager)(211)와; 커맨드 큐(command queue)로부터 커맨드(command)를 꺼내 명령을 수행하는 커맨드 디스패춰(Command Dispatcher)(212)로 구성된다. 상기 IPC 매니저(Inter-Process Communication Manager)(211)는 상기 서비스 프로바이더 인터페이스 에이전트(SPI agent)(100)로부터의 연결을 감시하는 서버부(Server)(도시되지 않음)와; 서비스 프로바이더 인터페이스 에이전트(SPI agent)통신을 담당하는 클라이언트 쓰레드(Client thread)(도시되지 않음)로 구성된다.Meanwhile, the service common library 210 is in charge of inter-process communication and inputs a received command to a command queue (Inter-Process Communication Manager) 211. )Wow; It is composed of a command dispatcher (212) for extracting a command from the command queue to perform a command. The IPC manager (211) includes a server (not shown) for monitoring the connection from the service provider interface agent (SPI agent) (100); Service Provider Interface Agent (SPI agent) It is composed of a client thread (not shown) that is in charge of communication.
논리적 서비스 라이브러리부(Logical Service Library)(230)는 디바이스 클래스의 기본적인 논리적 서비스를 구현하는 논리적 서비스 클래스(Logical service Class)(231)와; 디바이스(Device)의 상태와 이벤트(Event)를 감시하는 이벤트 모니터부(Event Monitor)(232)로 구성된다.The logical service library unit 230 includes a logical service class 231 for implementing basic logical services of the device class; An event monitor unit 232 for monitoring a device state and an event is included.
근래에 들에 많은 금융장치들이 XFS 클래스 분류상 여러 개의 기능을 수행하는 복합 디바이스가 많이 사용되고 있어, 상기 디바이스 프레임웍 템플리트 라이브러리부(220)를 디바이스 제어모듈에서 구동하는 금융장치 성격에 따라 한 가지의 기능만을 제공하는 장치를 위한 심플 디바이스 프레임웍 템플리트(Simple Device Framework Template)와; 다기능 복합장치를 위한 멀티플 디바이스 프레임웍 템플리트(Multiple Device Framework Template)로 분류한다. 또한, 멀티플 디바이스 프레임웍 템플리트 중에서 실행모듈에서 두 개 이상의 디바이스 클래스를 구동하며 한 디바이스의 동작이 다른 디바이스의 동작이나 실행 결과에 영향을 주는 인터디펜던트 디바이스 프레임웍 템플리트(Interdependent Device Framework Template)의 형태를 갖는 분류를 갖는다.In recent years, many financial devices have been used in a complex device that performs a number of functions in the XFS class classification, one function depending on the characteristics of the financial device that drives the device framework template library unit 220 in the device control module. A Simple Device Framework Template for a device providing only; Categorized as a Multiple Device Framework Template for Multifunction Multifunction Devices. In addition, among the multiple device framework templates, the execution module drives two or more device classes, and the operation of one device has the form of an independent device framework template that affects the operation or execution result of another device. Has a classification.
본 발명은 이러한 유니트 특성에 의존될 수밖에 없는 유니트 제어 방식을 상세히 기능적으로 분류하여 제어 방식 중에서 모든 유니트에 공통된 부분 또는 동종의 유니트에 공통된 부분을 독립 구성함으로써 유니트 특성에 따른 변경 부분을 최소화할 수 있다.The present invention can minimize the change according to the unit characteristics by independently configuring the unit control scheme that can not only be dependent on the characteristics of the unit in detail functionally by configuring a part common to all units or a common part of the same unit of the control scheme .
공통된 모듈은 역할 범위에 따라서, 첫째 모든 디바이스 유니트에 공통된 제어 모듈과로 XFS Manager와 연동하여 응용 프로그램으로부터 요구되는 명령어들을 처리한다. 둘째로 동종의 디바이스 유니트 제어를 위해 공통된 기능을 갖는 디바이스 클래스 프래임워크 모듈로 - 예를 들어, 금융자동기기 시스템에 A사의 프린터 유니트를 사용하다가 B사의 프린터 유니트로 변경했을 때 프린터 유니트라는 동종의 공통 제어 부분은 변경이 필요 없고 단지, Device Specific Control Class라는 유니트 특성에 관련된 부분만 변경이 요구된다.The common module handles the commands required from the application program in conjunction with the XFS Manager with the control module common to all device units, depending on the role scope. Second, a device class framework module with common functions for the control of homogeneous device units-for example, when a printer unit of company A is used in a financial automatic machine system and then a printer unit of company B is used, The control part does not need to be changed, only the parts related to the unit characteristics called Device Specific Control Class are required to be changed.
금융 기기는 경우에 따라 디바이스 유니트를 공유할 수 있어야 한다. 예를 들어, 은행원들이 이용하는 통장프린터는 2 금융단말기에 1대가 설치되어 서로 공유하도록 할 수 있다. 이 경우 디바이스 유니트를 사용하기 위한 권한을 관리하고 허락하는 정책이 요구되는데, 본 발명은 이러한 다양한 공유 경우를 제어할 수 있는 방안을 제시하고 있다. 본 발명에 따른 디바이스 컨트롤 프레임웍(Device Control Framework)은 다중 어플리케이션(Multiple Applications)과 다중 세션(Multiple sessions) 모드에 대한 제어를 수행할 수 있다.The financial device should be able to share device units in some cases. For example, bank account printers used by bankers can be installed in two financial terminals and shared with each other. In this case, a policy for managing and allowing a right to use a device unit is required. The present invention proposes a method for controlling such various sharing cases. The device control framework according to the present invention can perform control for multiple applications and multiple sessions modes.
먼저, 도 4에 도시된 바와 같이, 하나의 워크스테이션(Workstation)에 실행된 어플리케이션(Application A와 Application B)이 하나 이상 존재하고 각 어플리케이션(application)은 하나 이상의 서비스 프로바이더 사용자를 가지며, 하나 이상의 서비스 프로바이더(SP A, SP B, SP C)를 통해 서로 다른 디바이스(Device A, Device, B, Device C)에 대해 하나 이상의 세션을 연결하여 사용하는 다중 어플리케이션 내의 다중 세션을 갖는 다중 사용자 모드(Multiple Device Owners with multiple sessions in multiple applications)이다.First, as shown in FIG. 4, one or more applications (Application A and Application B) executed on one workstation exist and each application has one or more service provider users. Multi-user mode with multiple sessions within multiple applications that connect and use one or more sessions to different devices (Device A, Device B, Device C) through service providers (SP A, SP B, SP C) Multiple Device Owners with multiple sessions in multiple applications.
각 어플리케이션(application)은 하나 이상의 서비스 프로바이더의 사용자(Application A의 Owner A와 Owner B, Application B의 Owner C와 Owner D)를 가질 수 있으며 각각의 서비스 프로바이더는 디바이스 별로 하나만이 생성된다.Each application may have one or more service provider users (Owner A and Owner B of Application A, Owner C and Owner D of Application B), and only one service provider is created for each device.
각각의 서비스 사용자는 하나 이상의 서비스 프로바이더에 대한 사용권을 가질 수 있으며 각각의 서비스 프로바이더에 대해 하나 이상의 세션을 연결할 수 있다.Each service user can have a license to one or more service providers and can connect one or more sessions to each service provider.
각각의 서비스 프로바이더는 각 디바이스를 사용하는 서비스 사용자에 대한 정보와 각각의 서비스 사용자가 연결한 세션과 관련된 정보를 관리한다. 서비스 프로바이더는 최초 application이 사용하기 위한 open 명령을 실행하면 실행되고 서비스 사용자와 이에 대한 세션 정보를 등록한다. 이후 동일한 서비스 사용자가 open 명령이 실행하면 새로운 세션이 연결되며 세션정보와 사용자 정보를 등록한다. 동일한 서비스 사용자가 연결된 세션에 대한 close를 실행하면 해당 세션을 끊고 해당 정보를 삭제한다. 다른 또는 동일한 application의 새로운 서비스 사용자가 open을 실행하면 새로운 서비스 사용자에 대한 정보와 해당 세션을 등록한다. 서비스 프로바이더는 관리하고 있는 모든 서비스 사용자와 이에 대한 세션들이 종료되었을 때 실행이 종료된다.Each service provider manages information about service users using each device and information related to sessions connected by each service user. The service provider is executed when the first open command is used for the application and registers the service user and session information about it. After that, when open command is executed by the same service user, a new session is connected and session information and user information are registered. If the same service user executes close on the connected session, the session is disconnected and the information is deleted. When a new service user of another or the same application executes open, information about the new service user and the session are registered. The service provider terminates when all service users it manages and their sessions have terminated.
Owner A, Owner B와Owner C가 Device A에 대해 각각 하나 이상의 세션(Owner A가S1, S2와 S3을, Owner B가 S4, S5를, Owner C가 S6, S7을 실행)을 실행하고 있다.Owner A, Owner B and Owner C are each running one or more sessions for Device A (Owner A runs S1, S2 and S3, Owner B runs S4 and S5, Owner C runs S6 and S7).
S1에서 독점적인 사용권한을 갖기 위해 lock을 실행하면 서비스 프로바이더 SP1은 S1에 대한 lock을 허용한다 (Locked S1 of Owner A). 이후 S1으로부터 실행되는 모든 명령은 실행하며 S1이 아닌 모든 명령에 대한 결과를 Locked를 리턴한다.If lock is executed to have exclusive permission at S1, service provider SP1 allows lock on S1 (Locked S1 of Owner A). All commands executed from S1 then execute and return Locked with the results for all non-S1 commands.
현재 인증된 lock의 소유자가 아닌 세션(S4 또는 S6)으로부터 lock 명령을 받으면 lock 큐에 넣고 lock 명령에 설정된 타임아웃까지 현재의 사용자가 lock을 해제하지 않으면 lock 명령에 대해 락타임아웃(Lock lock timeout)을 보고한다.When a lock command is received from a session (S4 or S6) that is not the owner of the currently authenticated lock, it is put on the lock queue and locks out to the lock command unless the current user releases the lock until the timeout set in the lock command. ).
현재 인증된 lock의 소유자의 다른 세션(S2 또는 S3)으로부터 lock 명령을 받으면 받는 즉시 lock을 인증한다.When a lock command is received from another session (S2 or S3) of the currently authorized lock owner, the lock is authenticated as soon as it is received.
동일한 서비스 사용자로부터 두개 이상의 세션(S1, S2)에서 lock을 인증받은 상태에서 하나의 lock을 인증받은 세션(S1)이unlock을 요청하면 해당 세션에 대한 lock을 해제하고, 다른 인증된 세션(S2)이 unlock을 요청할 때까지 lock에 대한 다른 서비스 사용자(Owner B, Owner C, Owner D)의 사용을 제한한다.If a session (S1) that has been authenticated with one lock requesting an unlock is obtained while the lock is authenticated in two or more sessions (S1, S2) from the same service user, the lock is released for the corresponding session, and another authenticated session (S2). Restrict the use of other service users (Owner B, Owner C, Owner D) to the lock until this unlock request is made.
서비스 사용자와 서비스 세션과 관련된 정보의 관리, 독점적 사용을 위한 lock policy 및 이를 위한 lock queue 및 lock owner 정보관리 등을 Device Control Framework(200)에서 제공한다.The Device Control Framework 200 provides management of information related to service users and service sessions, lock policy for exclusive use, and management of lock queue and lock owner information therefor.
다음은, 도 5에 나타난 바와 같이, 하나의 워크스테이션(Workstation)에 실행된 어플리케이션이 하나 이상(Application A와 Application B) 존재하고 각 어플리케이션(application)은 하나 이상의 서비스 프로바이더 사용자(Application A의Owner A와 Owner B, Application B의 Owner C와 Owner D)를 가지며, 하나 이상의 서비스 프로바이더(SP A, SP B, SP C)를 통해 서로 다른 디바이스(Device A, Device, B, Device C)를 사용하는 다중 어플리케이션 내의 단일 세션을 갖는 다중 사용자 모드(Multiple Device Owners with a single session in multiple applications)이다.Next, as shown in FIG. 5, one or more applications (Application A and Application B) executed on one workstation exist and each application includes one or more service provider users (Owner of Application A). Owner A and Owner B, Owner C and Owner D of Application B) and use different devices (Device A, Device B, Device C) through one or more service providers (SP A, SP B, SP C) Multiple device owners with a single session in multiple applications.
각 어플리케이션(application)은 하나 이상의 서비스 프로바이더의 사용자(Application A의 Owner A와 Owner B, Application B의 Owner C와 Owner D)를 가질 수 있으며 각 서비스 프로바이더는 디바이스 별로 하나만이 생성된다.Each application may have one or more service provider users (Owner A and Owner B of Application A, Owner C and Owner D of Application B), and only one service provider is created for each device.
각 서비스 사용자는 하나 이상의 서비스 프로바이더에 대한 사용권을 가질 수 있으며 각각의 서비스 프로바이더에 대해 하나 이상의 세션을 연결할 수 있다.Each service user can have a license to one or more service providers and can connect one or more sessions to each service provider.
각 서비스 프로바이더는 각 디바이스를 사용하는 서비스 사용자에 대한 정보와 각 서비스 사용자가 연결한 세션과 관련된 정보를 관리한다. 서비스 프로바이더는 최초 application이 사용하기 위한 open 명령을 실행하면 실행되고 서비스 사용자와 이에 대한 세션 정보를 등록한다. 이후 동일한 서비스 사용자가 open 명령이 실행하면 새로운 세션이 연결되며 세션정보와 사용자 정보를 등록한다. 동일한 서비스 사용자가 연결된 세션에 대한 close를 실행하면 해당 세션을 끊고 해당 정보를 삭제한다. 다른 또는 동일한 application의 새로운 서비스 사용자가 open을 실행하면 새로운 서비스 사용자에 대한 정보와 해당 세션을 등록한다. 서비스 프로바이더는 관리하고 있는 모든 서비스 사용자와 이에 대한 세션들이 종료되었을 때 실행이 종료된다.Each service provider manages information about service users using each device and information related to sessions connected by each service user. The service provider is executed when the first open command is used for the application and registers the service user and session information about it. After that, when open command is executed by the same service user, a new session is connected and session information and user information are registered. If the same service user executes close on the connected session, the session is disconnected and the information is deleted. When a new service user of another or the same application executes open, information about the new service user and the session are registered. The service provider terminates when all service users it manages and their sessions have terminated.
Owner A, Owner B와 Owner C가 Device A에 대해 각각 하나의 세션(Owner A가S1을, Owner B가 S2를, Owner C가 S3을 실행)을 실행하고 있을 때:When Owner A, Owner B, and Owner C are each running one session for Device A (Owner A runs S1, Owner B runs S2, and Owner C runs S3):
S1에서 독점적인 사용권한을 갖기 위해 lock을 실행하면 서비스 프로바이더 SP1은 S1에 대한 lock을 허용한다 (Locked S1 of Owner A). 이후 S1으로부터 실행되는 모든 명령은 실행하며 S1이 아닌 모든 명령에 대한 결과를 Locked를 리턴한다.If lock is executed to have exclusive permission at S1, service provider SP1 allows lock on S1 (Locked S1 of Owner A). All commands executed from S1 then execute and return Locked with the results for all non-S1 commands.
현재 인증된 lock의 소유자가 아닌 세션(S2 또는 S3)으로부터 lock 명령을 받으면 lock 큐에 넣고 lock 명령에 설정된 타임아웃까지 현재의 소유자가 lock을 해제하지 않으면 lock 명령에 대해 lock timeout을 보고한다.When a lock command is received from a session (S2 or S3) that is not the owner of the currently authenticated lock, the lock is put in the lock queue and a lock timeout is reported for the lock command unless the current owner releases the lock until the timeout set in the lock command.
현재 인증된 lock의 소유자가 lock 명령을 실행하면 받는 즉시 lock을 인증한다.If the owner of the currently authenticated lock executes the lock command, the lock is authenticated immediately upon receipt.
S1에 대해 lock을 인증한 상태에서 unlock을 요청하면 해당 세션에 대한 lock을 해제하고, 다른 세션(S2 또는 S3)에 의한 lock 요청이 있으면 이에 대해 인증한다. When unlock is requested for S1, the unlock request is released, and if there is a lock request by another session (S2 or S3), authentication is performed.
서비스 사용자와 서비스 세션과 관련된 정보의 관리, 독점적 사용을 위한 lock policy및 이를 위한 lock queue및lock owner 정보관리 등을 Device Control Framework(200)에서 제공한다.The Device Control Framework 200 provides management of information related to service users and service sessions, lock policy for exclusive use, and lock queue and lock owner information management therefor.
다른 모드로는 도 6에서 나타난 바와 같이, 하나의 워크스테이션에 실행된 어플리케이션이 하나 이상(Application A와 Application B) 존재하며, 각 어플리케이션(application)은 하나 이상의 서로 다른 디바이스(Device A, Device, B, Device C)를 서비스 프로바이더(SP A, SP B, SP C)를 통해 서로 다른 디바이스(Device)를 사용하는 다중 어플리케이션 내의 싱글 세션을 갖는 단일 사용자 모드(A Single Device Owners with a single session in multiple applications)가 있다.In another mode, as shown in FIG. 6, one or more applications (Application A and Application B) executed on one workstation exist, and each application includes one or more different devices (Device A, Device, B). , Device C) A Single Device Owners with a single session in multiple using different devices through service providers (SP A, SP B, SP C) applications).
각 어플리케이션(application)은 하나의 서비스 프로바이더의 사용자(Application A의 Owner A, Application B의 Owner B)를 가질 수 있으며 각각의 서비스 프로바이더는 디바이스 별로 하나씩 생성된다.Each application may have a user of one service provider (Owner A of Application A, Owner B of Application B), and each service provider is created for each device.
각 서비스 사용자는 하나 이상의 서비스 프로바이더에 대한 사용권을 가질 수 있으며 각각의 서비스 프로바이더에 대해 하나의 세션이 연결된다.Each service user can have a license to one or more service providers, and one session is associated with each service provider.
각 서비스 프로바이더는 각 디바이스를 사용하는 서비스 사용자에 대한 정보와 각각의 서비스 사용자가 연결한 세션과 관련된 정보를 관리한다. 서비스 프로바이더는 최초 application이 사용하기 위한 open 명령을 실행하면 실행되고 서비스 사용자와 이에 대한 세션 정보를 등록한다. 동일한 서비스 사용자가 연결된 세션에 대한 close를 실행하면 해당 세션을 끊고 해당 정보를 삭제한다. 다른 application의 새로운 서비스 사용자가 open을 실행하면 새로운 서비스 사용자에 대한 정보와 해당 세션을 등록한다. 서비스 프로바이더는 관리하고 있는 모든 서비스 사용자와 이에 대한 세션들이 종료되었을 때 실행이 종료된다.Each service provider manages information about service users using each device and information related to sessions connected by each service user. The service provider is executed when the first open command is used for the application and registers the service user and session information about it. If the same service user executes close on the connected session, the session is disconnected and the information is deleted. When a new service user of another application executes open, information about the new service user and the session are registered. The service provider terminates when all service users it manages and their sessions have terminated.
Owner A, Owner B가 Device A에 대해 각각 하나의 세션(Owner A가 S1을, Owner B가 S2를 실행)을 실행하고 있을 때:When Owner A and Owner B are each running one session for Device A (Owner A runs S1 and Owner B runs S2):
S1에서 독점적인 사용권한을 갖기 위해 lock을 실행하면 서비스 프로바이더 SP1은 S1에 대한 lock을 허용한다 (Locked S1 of Owner A). 이후 S1으로부터 실행되는 모든 명령은 실행하며 S1이 아닌 모든 명령에 대해 Locked를 리턴한다.If lock is executed to have exclusive permission at S1, service provider SP1 allows lock on S1 (Locked S1 of Owner A). All commands executed from S1 then execute and return Locked for all non-S1 commands.
현재 인증된 lock의 소유자가 아닌 세션(S2)으로부터 lock 명령을 받으면 lock 큐에 넣고 lock 명령에 설정된 타임아웃까지 현재의 소유자가 lock을 해제하지 않으면 lock 명령에 대해 lock timeout을 보고한다.When a lock command is received from a session (S2) that is not the owner of the currently authenticated lock, the lock is put in the lock queue, and a lock timeout is reported for the lock command unless the current owner releases the lock until the timeout set in the lock command.
현재 인증된 lock의 소유자가 lock 명령을 실행하면 받는 즉시 lock을 인증한다.If the owner of the currently authenticated lock executes the lock command, the lock is authenticated immediately upon receipt.
S1에 대해 lock을 인증한 상태에서 unlock을 요청하면 해당 세션에 대한 lock을 해제하고, 다른 세션(S2)에 의한 lock 요청이 있으면 이에 대해 인증한다.If the lock is requested for S1 and the lock is requested, the lock is released for the corresponding session, and if there is a lock request by another session (S2), the lock is authenticated.
서비스 사용자와 서비스 세션과 관련된 정보의 관리, 독점적 사용을 위한 lock policy 및 이를 위한 lock queue및 lock owner 정보관리 등을 Device Control Framework(200)에서 제공한다.The Device Control Framework 200 provides management of service user and service session related information, lock policy for exclusive use, and management of lock queue and lock owner information.
도 7은 서비스 프로바이더 실행모듈이 실행된 때의 서비스 프로바이더 모듈 초기화 및 프레임웍 구동방법을 나타낸 흐름도이다.7 is a flowchart illustrating a service provider module initialization and framework driving method when a service provider execution module is executed.
서비스 프로바이더(Service Provider) 실행 모듈이 구동되면 프로그램의 메인 초기화 루틴에서 서비스 프로바이더(Service Provider)를 생성시킨다(S1 과정).When the service provider execution module is driven, the service provider is created in the main initialization routine of the program (step S1).
서비스 프로바이더(Service Provider)는 내부적으로 Lock Policy와 Lock Queue를 생성한다. 논리적 서비스 라이브러리(Logical Service Library)의 논리적 서비스 클래스(Logical Service Class)를 계승한 디바이스 컨트롤 클래스를 생성한다(S2 과정)Service Provider creates Lock Policy and Lock Queue internally. Create a device control class that inherits the logical service class of the logical service library (step S2).
해당 포인터를 서비스 프로바이더(Service Provider)로 등록하여 준다(S3 과정).Register the pointer as a service provider (S3 process).
인터-프로세스 커뮤니케이션 매니저(IPC Manager)를 생성하면 내부적으로 Command Queue와, Command Dispatcher를 생성한다(S4 과정). Creating an inter-process communication manager (IPC Manager) creates a command queue and command dispatcher internally (step S4).
IPC Manager의 초기화(Initialize)를 호출하면 SPI Agent와 인터프로세스 통신을 가동하고 Command Dispatcher를 실행시킨다.Calling Initialize of IPC Manager starts interprocess communication with SPI Agent and executes Command Dispatcher.
이상에서 설명한 바와 같이, 본 발명에 의한 XFS 서비스 프로바이더 프레임웍 모듈은 CEN/XFS 표준 스펙을 따라 제어 방식을 구현하는 경우 동종 유니트의 제조사 또는 유니트의 특성에 의존성을 최소화할 수 있으며, 유니트 간의 최대한의 호환성을 기대할 수 있다. 아울러, 응용 프로그램의 관점에서도 CEN/XFS 인터페이스 만을 고려함으로써 유니트의 변경이 가해져도 응용 프로그램에 영향을 미치지 않는 장점을 갖는다.As described above, the XFS service provider framework module according to the present invention can minimize the dependency on the manufacturer of the same unit or the characteristics of the unit when implementing the control method according to the CEN / XFS standard specification, You can expect compatibility. In addition, in consideration of the application program, only the CEN / XFS interface is taken into consideration so that the change of the unit does not affect the application program.
도 1은 본 발명에 따른 XFS 서비스 프로바이더 프레임웍 모듈의 구성을 개략적으로 나타낸 블록도이다.1 is a block diagram schematically illustrating a configuration of an XFS service provider framework module according to the present invention.
도 2는 도 1의 XFS 서비스 프로바이더 인터페이스 에이전트(SPI Agent) 모듈의 구성을 나타낸 블록도이다.FIG. 2 is a block diagram illustrating a configuration of an XFS service provider interface agent (SPI Agent) module of FIG. 1.
도 3은 도 1의 디바이스 컨트롤 프레임웍(Device Control Framework) 모듈의 구성을 나타낸 블록도이다.FIG. 3 is a block diagram illustrating a configuration of a device control framework module of FIG. 1.
도 4 내지 도 6은 는 본 발명에 따라 구현되는 다양한 모드를 나타낸 구성도이다.4 to 6 are diagrams illustrating various modes implemented according to the present invention.
도 7은 서비스 프로바이더 실행모듈이 실행된 때의 서비스 프로바이더 모듈 초기화 및 프레임웍 구동방법을 나타낸 흐름도이다.7 is a flowchart illustrating a service provider module initialization and framework driving method when a service provider execution module is executed.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0007469A KR100536925B1 (en) | 2003-02-06 | 2003-02-06 | XFS service provider framework module and computer readable record medium on which a program there for is recorded |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0007469A KR100536925B1 (en) | 2003-02-06 | 2003-02-06 | XFS service provider framework module and computer readable record medium on which a program there for is recorded |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040071481A KR20040071481A (en) | 2004-08-12 |
KR100536925B1 true KR100536925B1 (en) | 2005-12-16 |
Family
ID=37359375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-0007469A KR100536925B1 (en) | 2003-02-06 | 2003-02-06 | XFS service provider framework module and computer readable record medium on which a program there for is recorded |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100536925B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101363161B1 (en) * | 2011-11-04 | 2014-02-13 | 주식회사 엘지씨엔에스 | System for managing sharing |
CN103135966B (en) * | 2011-11-24 | 2016-08-24 | 深圳市证通电子股份有限公司 | SP implementation method based on XFS standard and SP framework |
KR101965859B1 (en) * | 2017-10-13 | 2019-04-05 | 주식회사 에이텍에이피 | apparatus, method and system for control a financial machine with cloud CD/ATM |
-
2003
- 2003-02-06 KR KR10-2003-0007469A patent/KR100536925B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20040071481A (en) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6052731A (en) | Apparatus, method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources | |
CN103034799B (en) | A kind of desktop access control method of kernel level | |
DE69827405T2 (en) | SYSTEM AND METHOD FOR A MULTIPURPOSE CHIP CARD THAT ENABLES SUBSEQUENT STORAGE OF AN APPLICATION TO THIS CARD | |
JP5534520B2 (en) | System and method for browser-based access to smart cards | |
US5781724A (en) | Method and system for integrating additional functionality into a login system | |
US5812768A (en) | System for allocating adaptor to server by determining from embedded foreign protocol commands in client request if the adapter service matches the foreign protocol | |
US6405317B1 (en) | Security module for a transaction processing system | |
EP2477165B1 (en) | Multi-application smart card, and system and method for multi-application management of smart card | |
US20020032655A1 (en) | System and method for providing financial services terminals with a document driven interface | |
US20020138446A1 (en) | System and method for providing security for financial services terminals with a document driven interface | |
US20040123152A1 (en) | Uniform framework for security tokens | |
US20060218061A1 (en) | Integrated financial services platform | |
US20020138431A1 (en) | System and method for providing supervision of a plurality of financial services terminals with a document driven interface | |
JP2002514826A (en) | Personalization of smart card in multi-station environment | |
US6289343B1 (en) | Apparatus and method for performing semantic concurrency control in dispatching client requests within a server in a client/server computer system | |
US20150379489A1 (en) | Device information on a self-service terminal | |
KR100317402B1 (en) | Apparatus, method and computer program for providing arbitrary locking modes for controlling concurrent access to server resources | |
CN101542435A (en) | Enhanced user interface manager and method for managing non-contemporaneous user interface modules | |
US20040267667A1 (en) | Automated cash transaction system | |
KR100536925B1 (en) | XFS service provider framework module and computer readable record medium on which a program there for is recorded | |
WO2011082078A2 (en) | Configuration of issued dynamic device | |
CN101329661B (en) | System and method for implementing PC / SC interface of HID / SCSI apparatus | |
CN106778193B (en) | Client and UI interaction method | |
WO2017147762A1 (en) | Interactive system and device based on biological characteristic | |
JP2007025907A (en) | Authentication system and authentication method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121130 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20131111 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20141201 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20151204 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20161107 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20171128 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20181129 Year of fee payment: 14 |