Patent Publication Number: US-6222536-B1

Title: Method and apparatus for providing a number of subscribers with on-line banking service employing a plurality of bank systems

Description:
FIELD OF THE INVENTION 
     The present invention relates to an on-line banking system and, more particularly, to a method and apparatus which are capable of providing various on-line banking services to a number of subscribers employing a plurality of bank systems in an effective manner. 
     DESCRIPTION OF THE PRIOR ART 
     Through the use of the Internet and a powerful client software system, a bank service system has been dramatically changed. To date, most of the commercial banks have provided on-line banking services, e.g., so called home banking services to their clients by using personal computers via a public switched telephone network(PSTN), an integrated service digital network(ISDN), or a packet communication network. Further, a web service has been started for Internet subscribers. 
     A virtual banking system, e.g., an on-line banking system, is newly introduced and is capable of providing virtual banking services easier to use through the use of various multimedia to the subscriber instead of providing conventional character-based banking services. Further, the virtual bank system also provides various accounting services which have been supplied only by tellers of banks and can be easily updated to provide new services to the user. 
     In order to provide these services, a conventional virtual banking system employs customized client software for each bank so that the virtual banking services applied by each bank can be provided to the subscribers without needing any other requirements. 
     However, there is a problem that, in order for user to simultaneously or randomly receive banking services from a number of bank systems, a number of customized client software systems must be provided. Further more, in order to provide newly updated banking services to the user, another updated customized client software system can be needed by the user since it is difficult to update the conventional customized client software system. 
     SUMMARY OF THE INVENTION 
     It is, therefore, a primary object of the invention to provide an improved method and apparatus, for use in a virtual banking system, which are capable of providing various on-line banking services to a number of subscribers employing a plurality of bank systems in an effective manner. 
     In accordance with one aspect of the present invention, there is provided a relay server system, for use in an on-line banking system, connected between a number of subscriber terminals and a plurality of bank systems, for providing banking services to the subscriber, which comprises: subscriber coupling means, connected to the subscriber terminals, for performing a protocol conversion process; data storage means for storing process control information, history information, output screen data, and subscriber information; request processing means for analyzing an input request message to generate corresponding handling process based on an analyzed request type and for providing a format-converted response data to the subscriber coupling means based on output screen data stored in the data storage means; and session managing means, in response to the input request message from the request processing means, for generating and format-converting an inquiry message based on the process control information to thereby provide the format-converted inquiry message to a corresponding bank system, and, in response to a response message from the bank system, for extracting and format-converting a response data to thereby provide the format-converted response data to the request processing means. 
     In accordance with another aspect of the present invention, there is provided a method of providing on-line services for a number of subscribers through the use of a relay server system connected to a plurality of bank systems, which comprises: a) initializing a data structure in a session process and establishing the communication path between the session process and a request handling unit; b) when a request message is inputted from a subscriber, performing a subscriber identification process and analyzing the type of the request in the request handling unit; c) when the type of the request is an output screen request, acquiring subscriber information from the request message to generate an output screen based on the acquired subscriber information, which is then coupled to the subscriber; d) when the type of request type is a session end time extent request, providing a session end time extension command to the session process to initialize a timer thereof; e) when the type of request is a banking service request, extracting subscriber information from the request message to provide a subscriber request to the session process in a ready state; f) identifying an internet protocol address of the subscriber, establishing a communication path to a corresponding bank system, generating and format-converting an inquiry message, providing the format-converted inquiry message to the corresponding bank system  13  and temporarily storing data designated as save; g) when a response message is received from the corresponding bank system, analyzing and format-converting the response message to generate a format-converted response message to be relayed to a request handling process and to temporarily store data designated as save; and h) retrieving output layout data based on the format-converted response message to generate an output screen to be applied to the subscriber. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects and features of the present invention will become apparent from the following description of preferred embodiments given in conjunction with the accompanying drawings, in which: 
     FIG. 1 is a schematic block diagram of a virtual banking system employing a virtual banking relay server system in accordance with the present invention; 
     FIG. 2 is a detailed block diagram of the virtual banking relay server system shown in FIG. 1; 
     FIG. 3 is a detailed block diagram of the request processing unit shown in FIG. 2; 
     FIG. 4 is a detailed block diagram of the session management unit shown in FIG. 2; 
     FIG. 5 is a flow chart showing the operation of the request processing unit in accordance with the present invention; 
     FIG. 6 is a flow chart illustrating the operation of the session management unit in accordance with the present invention; and 
     FIG. 7 is a flow chart demonstrating the operation of the virtual banking relay server system upon receiving a banking service request in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIG. 1, there is shown a virtual banking system. The virtual banking system includes a number of subscriber terminals  11 , a virtual banking relay sever system  12 , a plurality of bank systems  13 ; and serves to simultaneously or selectively provide on-line banking services for a plurality of bank systems to a number of subscribers. 
     Each of the bank systems  13  is a conventional banking accounting system for dealing with various banking services, e.g., checking balance, transferring funds and the like; and serves to receive and process input data from one or more external devices and provide processed results to an output device. 
     The virtual banking relay server system  12  is connected between the subscriber terminals and the bank systems; and serves to relays subscriber request messages as inquiry messages to the bank systems  13  and process output data as response messages from the bank system through the use of some multimedia tools to thereby provide the processed data, e.g., bank system responses, to the subscriber terminals. 
     An “inquiry message”, hereinafter, means a data stream, which is coupled to the bank systems, and a “response message” denotes a data stream, which is outputted from the bank system  13 . When a subscriber selects a desired one of banking service items contained in a menu screen of a subscriber terminal, the virtual banking relay server system  12  provides an input screen for the selected banking service item to the subscriber&#39;s terminal  11 . 
     When the subscriber select a desired service item through the use of the input screen provided in a subscriber terminal  11 , the virtual banking relay server system  12  generates an inquiry message by using input data and then relays the inquiry message to a corresponding bank system  13 . The virtual banking relay server system  12  transmits a response message outputted from the corresponding bank system  13  to the subscriber terminal  11  by using an output screen layout file for displaying the response message. The output screen can also include various items for requesting input operations of the subscriber. 
     Referring to FIG. 2, there is shown a detailed block diagram depicting the virtual banking relay server system  12 , which includes a subscriber coupling unit  21 , a request processing unit  22 , a session management unit  23 , and a data storage unit  24 . 
     The data storage unit  24  includes a first storage location for storing subscriber access history information, a second storage location for storing data access information, a third storage location for storing output screen layout information, and a fourth storage location for storing process control information. 
     The first storage location serves to store subscriber access history information which is mornitered by the virtual banking relay server system  12 . The subscriber access history information is used for acquiring and analyzing all of events occurring in the virtual banking relay server system  12  by the banking systems  13 . 
     The second storage location includes resources, e.g., various multimedia data for use in visually providing virtual banking services, data for use in an identification of the subscriber, various code maps, and shared objects. The resources constitute two type portions: common portions commonly use in all of the bank system  13 ; and exclusive portions for exclusively use in each bank system  13 . 
     The third storage location is a file system for storing the output screen layout information to be provided to the subscriber terminals  11 , which includes a menu screen, banking service initial screen, a response screen and the like. 
     The fourth storage location is a file system for storing the process control information representing: message formats to be exchanged between the virtual relay server system and the bank systems  13  when the subscriber bank service request occurs; and methods of constructing fields contained in the message and manipulating contents of the fields contained therein. 
     The subscriber coupling unit  21  is connected to a number of the subscriber terminals  11  and is provided with a server having a hyper text transfer protocol(HTTP) emulation function. When a request representing the use of a common gate way interface(CGI) is issued by a subscriber terminal  11 , the subscriber coupling unit  21  relays the request to the request processing unit  22  and provides the HTML format message outputted from the request processing unit  22  to the subscriber terminal  11 . Furthermore, the subscriber coupling unit  21  receives audio and video data, which can be used in providing the video conference and multimedia circumstances, from the data storage unit  24  to provide them to the subscriber terminal  11 . 
     The request processing unit  22  receives service request messages from the subscriber terminals  11  to generate corresponding processes to the service request messages. The request processing unit  22  includes various type of processes, e.g., a request handling process a, document acquisition process a, session control process and the line. Each of these processes is called by the HTTP server whenever the subscriber service request message occurs in order to process the subscriber service request message. 
     The subscriber request message includes a banking service request, a session control request and an anchor request for requesting output screen layout files, wherein the banking service request needs a commuication with the session process and is processed by using the request handling process. The anchor request is handled by using the document acquisition process; and the session control requests are processed by using respective session control processes based on the type of the control requests. The session control process contains a process for extending the session end time, a process for terminating the session and the like. 
     The session management unit  23  serves to maintain and manage sessions for the subscribers communicating with the bank systems  13  through the use of the virtual banking relay server system  12 . For each subscriber, a session process is generated and terminated in case an end request is issued by the corresponding subscriber terminal and, during a time out period, there is no subscriber request message. 
     The session management unit  23  performs the following functions: 
     First, a portion or all of the data inputted by the subscriber stored in a cache memory contained therein during a time period designated by the process control information stored in the data storage unit  24 . In this case, data of a field defined as L on the process control information is stored in the cache memory until the session is terminated, and data of a field designated as S on the process control information is also stored in the cache memory until another type of banking service is initiated. When data of a same field already exists in the cache memory, the data is overwritten thereon and the data expired by a storage period is then deleted. As a result, all of the data to be transmitted to the bank system  13  need not be repetitively inputted thereto during the banking services and the virtual banking relay server system  12  can generate inquiry messages by only using the data stored in the cache memory. 
     Second, a response message inputted from the bank system  13  is analyzed and data of a field thereof designated as “save” on the handling control information is stored in the cache memory during a predetermined storage period. 
     Third, data of a field thereof designated as “reuse” in the handling control information retrieved from the cache memory and the inquiry message is constructed by using the retrieved field data. 
     Fourth, before transmission of the inquiry message, an inquiry format conversion process for data inputted by the subscriber and the reused data is performed. The handling control information includes the format conversion rule for each field data. The inquiry format conversion routine is implemented by using the shared objects, wherein the inquiry format conversion routine servers perform the conversion process by using received field data and format conversion codes and return the conversion results. That is, since, when a new format conversion rule for processing a banking service for a specific bank system is required, the corresponding inquiry format conversion routine is programmed and the new format conversion rules are assigned in the process control information, the format conversion process can be adaptively performed. 
     Fifth, the response message outputted from the bank system is analyzed and the response format conversion process is performed before relaying them to the subscriber. The response format conversion routine and the format conversion rules are identical to those of the inquiry format conversion process. 
     Sixth, it is checked whether the subscriber requesting the service is identical to the registered owner to thereby prohibit a hacking for the session process. 
     Seventh, the subscriber banking information, e.g., a bank account list, is acquired and cached until the session is terminated. Therefore, the subscriber can select input items, e.g., an account number and the like, on the pull-down menu without manually inputting them. 
     Eighth, all of the events occurring in the handling process, for on-line banking services are registered in the history information. 
     Referring to FIG. 3, there is shown a block diagram of the request processing unit  22  which includes a request analyzer  31 , a subscriber identification block  32 , a data transceiver  33 , an output screen data generation block  34 , and a data base access block  35 . 
     The request analyzer  31  analyzes a request message inputted from the subscriber to generate a corresponding process. At the same time, the request analyzer  31  requests an identification for the subscriber to the subscriber identification block  32 . 
     At the subscriber identification block  32 , the subscriber identification process is performed in response to the request and the result is then relayed back to the request analyzer  31 . 
     The data transceiver  33  serves to communicate with the session management unit  23  based on the type of the process generated by the request analyzer  32 . 
     The output screen generation block  34  retrieves a corresponding output layout file via the database access block  35  from the data storage unit  24  and writes the subscriber session information inputted form the data transceiver  33  on the corresponding output layout file to thereby generate the output screen which is coupled to the subscriber coupling unit  21 . 
     The database access block  35  accesses the data stored in the data storage unit  24  in response to a request from the output screen generation block  34  and the subscriber identification block  32 . 
     Referring to FIG. 4, there is shown a block diagram of the session management unit  23 , which is provided with an inquiry message generation block  41 , a database access block  42 , a temporal storage block  43 , an inquiry format conversion block  44 , a bank system coupling block  45 , a response format conversion block  46  and a response message analyzer  47 . 
     The inquiry message generation block  41  receives the inquiry data from the request processing unit  22 , wherein the inquiry data contains a message type, a service start flag, an inquiry message name, an internet protocol/(IP) address, a common response name, subscriber input data, etc. When the service start flag is not a NULL state, the inquiry message generation block  41  initializes the temporal storage block  43  and retrieves an inquiry message syntax corresponding to the inquiry message name via the database access block  42  from the data stage unit  24  to thereby generate an inquiry message based on the inquiry message syntax. Thereafter, the inquiry message is relayed to the inquiry format conversion block  44 . Furthermore, the inquiry message generation block  41  receives the format-converted inquiry message and stores field data thereof designated as “save” in the temporal storage block  43 . And then, the format-converted inquiry message is fed to the bank system coupling block  45 . 
     The inquiry format conversion block  44  converts the inquiry message into a format-converted inquiry message by using the format conversion rules designated in the process control information and the format-converted inquiry message is returned to the inquiry message generation block  41 . 
     In the inquiry message generating process, the inquiry message generation block  41  initializes an inquiry data buffer, e.g., the temporal storage block  43  and updates the inquiry data buffer by using default values for field data of the inquiry message designated on the process control information. Thereafter, field values thereof, which are defined as the acquisition method and designated as post or postable on the process control information, are updated by using the subscriber input data. Further, field values, which are defined as the acquisition method thereof and represented as reuse, are updated by using data stored in the temporal storage block  43 . The format-converted data outputted from the inquiry data conversion device  44  is sequentially provided into the inquiry message region having the number of bytes designated in the process control information to thereby generate an inquiry message to be transmitted to the bank coupling block  45 . 
     The bank system coupling block  45  serves to couple the session management unit to the bank systems  13 . 
     The bank system  13  receives and analyzes the format-converted inquiry message and process inputted request contents based on the analyzed results to thereby provide the corresponding response message to the bank system coupling block  45 . 
     The response message includes a common response portion and an exclusive response portion, wherein the common response portion can be recognized at the reception of the subscriber service request. 
     The response message analyzer  47  analyzes the common portion of the response message, when the response message is received via the bank system coupling block  45 . The common portion of the response message has a field corresponding to the response message code. As a result, a response message name corresponding to the response message code can be detected by using the code map. 
     Thereafter, the response message analyzer  47  analyzes the response message by using the process control information corresponding to the response message name. As a result, field data designated as save on the process control information is stored in the temporal storage block  43 , and then the extracted response data is relayed to the response format conversion block  46 . 
     The response format conversion block  46  converts the extracted response data by using the format conversion rules designated on the handling control information to generate a format-converted response message to be coupled to the response message analyzer  47 . 
     The response message analyzer  47  relays the format-converted response message to the request processing unit  22 . 
     Referring to FIG. 5, there is illustrated a flow chart  22  showing the operation of the request processing unit in accordance with the present invention. 
     After the start step, at step  101 , when a request message is received from a subscriber terminal  11 , a subscriber identification is checked and, at step  102 , the requested service type is analyzed based on the request message. 
     As a result, if the requested service type is an anchor request for obtaining the output screen layout file, at step  103 , the corresponding information including, e.g., a session identifier, an output layout file name, a history list, an object window and the like, is acquired from the request message inputted from the subscriber terminal. 
     At step  104 , the output screen layout file requested is retrieved and an output screen is generated by combining the subscriber session information with the output layout file. Thereafter, at step  105 , the output screen is transmitted to the subscriber coupling unit  21 . 
     When the requested service type is the banking service request, at step  106 , subscriber information including , e.g., a session identifier, a service start flag, an inquiry message name, a common response portion name, an output layout file name, history information, object windows, a subscriber terminal address, subscriber input data, is acquired from the request message. 
     And then, at step  107 , it is checked whether it is a first connection and, if so, the process goes to step  108 . At step  108 , a new session process is generated. If not, or the new session process has been generated, at step  109 , a ready state of the session is checked and, when the session process is in the ready state, at step  110 , the request message is manipulated and transmitted to the session process of the session management unit  23 . 
     Thereafter, when processed results from the session management unit  23  is received, at step  111 , the processed result is analyzed to thereby obtain an output screen layout file name. And then, at step  112 , the output screen layout file is retrieved based on the output screen layout file name and the output screen is generated by combining the subscriber session data, the processing results with the output screen layout file. At step  105 , the output screen is then relayed to the subscriber coupling unit  21 . 
     When the requested service type is an end time extension request, at step  113 , a session end time extension command is generated and provided to the session process. And then the process is terminated. When the requested service type is a session termination request, at step  114 , the session end command is generated and transmitted to the session process. And then the process is terminated. 
     Referring to FIG. 6, there is shown a flow chart depicting the operation of the session management unit  23  in accordance with the present invention. 
     At step  201 , the data structure is initialized and the required data is retrieved. In order to transmit the request message or the session control request to the session process, at step  202 , since it is needed that the communication path is formed between the session process and the request process unit, a socket for establishing the communication path is assigned to the session process. A notice representing the connection ready state is issued to the request process unit to thereby ready the connection with the request handling process. 
     At step  203 , when the session process is connected to the request handling process, the state of the parent process is converted into an active state by using a signal and, at step  204 , it is determined whether the process end signal is issued. When the process end signal is not issued, at step  205 , the request message is received from the request process unit  22  and, at step  206 , the service request type is checked and determined. 
     When the service request type is the banking service request, at step  207 , the banking service request is processed. When the service request type is the session end time extension request, at step  208 , the timer is initialized. When the service request type is the session end request, at step  209 , the process is terminated. 
     Referring now to FIG. 7, there is shown a flow chart demonstrating the process for handling the banking service request in accordance with the present invention. After the start step, at step  301 , an IP address of the subscriber terminal  11  is retrieved from the request message of the request handling process and, at step  302 , the IP address contained in the request message is compared with the prestored IP address of a current terminal owner. 
     When the IP address is not identical to the prestored IP address, at step  303 , the address error message is transmitted to the request handling process and the process is terminated. 
     When the IP address is identical to the prestored IP address, at step  304 , the communication path for the corresponding bank system  13  is checked and, when the communication path exists, at step  305 , the communication path for the corresponding bank system  13  is assigned. When the communication path establishing process has failed, the error message is transmitted to the request processing unit  22  and the process is terminated. 
     When the communication path is established, at step  306 , it is determined whether the new banking service start request is issued. If the new banking service request is issued, at step  307 , the temporal storage block  43  is initialized. If not or the temporal storage block  43  has been initialized, at step  308 , the inquiry message is generated, format-converted, and transmitted to the corresponding bank system. 
     As described by using FIG. 4, in the inquiry message generation process, the inquiry data buffer, e.g., the temporal storage block  43 , is initialized and updated by using default field values designated on the process control information. And then data of fields designated as post and postable on the process control information is updated by using input data provided by the subscriber, and values of fields defined as reuse is updated by using data stored in the temporal storage block. The format-converted data is written into the inquiry message region having the number of bytes defined on the process control information to thereby generate the format-converted inquiry message. 
     After the format-converted inquiry message is transmitted to the corresponding bank system  13 , at step  309 , the data of the inquiry message defined as save on the process control information is then stored in the temporal storage block  43  and the process waits for the response message. 
     When the response message is received from the corresponding bank system  13 , at steps  310  and  311 , the response message is analyzed by using the process control information and response data extracted from the response message is format-converted by using prestored rules and then relayed to the request handling process. Thereafter, at step  312 , data of the inquiry data defined as save on the process control information is stored in the temporal storage block  43 . 
     As demonstrated above, in the present invention, it is readily appreciated that on-line banking services for a plurality of banks can be effectively provided to a number of subscribers, each having an HTTP emulation by using the inventive relay server system connected therebetween. Furthermore, the relay server system is capable of providing an effective flexibility in the online services for the subscribers by using a number of request handling processes and the subscribers and the bank system connections to thereby implement various on-line services for the subscriber in a simplified manner. 
     While the present invention has been shown and described with reference to the particular embodiments, it will be apparent to those skilled in the art that many changes and modifications may be made without departing from the spirit and scope of the invention as defined in the appended claims.