Abstract:
A system and associated method for receiving an unlimited number of data items modified by a Web transaction. A processor requests a service from a Web-service program by sending the service program a set of data items and a client identifier. The Web-service program responds with a Web-interface program identifier and a user session identifier. The processor uses the session identifier, the Web-interface program identifier, and a storage location of the data items to open a session with a Web-interface program, during which the processor directs the Web-interface program to modify the data items and store them on a data storage device without interacting with the Web-service program. When the user session terminates, the processor requests from the Web-service program the modified data items and the Web-service program sends the data items to the processor without involvement of the Web-interface program.

Description:
This application is a Continuation application Claiming Priority to Ser. No. 12/277,771, filed Nov. 25, 2008. 
    
    
     FIELD OF THE INVENTION 
     The present invention discloses a system and associated method for effectively transferring large amount of data between a user program and a web application servicing complex transactions for the user program. 
     BACKGROUND OF THE INVENTION 
     Conventional client program of a web application transfers data gathered by user inputs within a Uniform Resource Locator (URL). Data within the URL, however, are limited in the amount of data to be transferred, thus the data transferring method of conventional client program cannot support a web application demanding bidirectional transfers of large amount of data such as a sizable document and/or extensive information. 
     Thus, there is a need for a system and associated method that overcomes at least one of the preceding disadvantages of current methods and systems for transferring data between web applications. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method for transferring data for a web application, the method performed by a client program comprising: 
     sending, to a web service program, a first request to establish a user session for a web interface program, wherein the first request comprising an input document of the client program and a return address, wherein a user of the client program interacts with the web interface program during the user session, wherein the data is stored in a data store accessed by the web service program and the web interface program; 
     in response to the first request, receiving, from the web service program, a first response comprising a session identifier and an interface address, wherein the session identifier corresponds to the user session, wherein the interface address indicates a Uniform Resource Locator (URL) of the web interface program; 
     operating the user session by channeling interactions by the user of the client program to the web interface program indicated by the interface address for the user session; 
     upon termination of the user session by the user of the client program, sending, to the web service program, a second request to retrieve the data resulting from the user session; and 
     in response to the second request, acquiring the data from the web service program. 
     The present invention provides a computer program product, comprising a computer usable medium having a computer readable program code embodied therein, said computer readable program code containing instructions that when executed by a processor of a computer system implement a method for transferring data for a web application, the method performed by a client program comprising: 
     sending, to a web service program, a first request to establish a user session for a web interface program, wherein the first request comprising an input document of the client program and a return address, wherein a user of the client program interacts with the web interface program during the user session, wherein the data is stored in a data store accessed by the web service program and the web interface program; 
     in response to the first request, receiving, from the web service program, a first response comprising a session identifier and an interface address, wherein the session identifier corresponds to the user session, wherein the interface address indicates a Uniform Resource Locator (URL) of the web interface program; 
     operating the user session by channeling interactions by the user of the client program to the web interface program indicated by the interface address for the user session; 
     upon termination of the user session by the user of the client program, sending, to the web service program, a second request to retrieve the data resulting from the user session; and 
     in response to the second request, acquiring the data from the web service program. 
     The present invention provides a computer system comprising a processor and a computer readable memory unit coupled to the processor, said memory unit containing instructions that when executed by the processor implement a method for transferring data for a web application, the method performed by a client program comprising: 
     sending, to a web service program, a first request to establish a user session for a web interface program, wherein the first request comprising an input document of the client program and a return address, wherein a user of the client program interacts with the web interface program during the user session, wherein the data is stored in a data store accessed by the web service program and the web interface program; 
     in response to the first request, receiving, from the web service program, a first response comprising a session identifier and an interface address, wherein the session identifier corresponds to the user session, wherein the interface address indicates a Uniform Resource Locator (URL) of the web interface program; 
     operating the user session by channeling interactions by the user of the client program to the web interface program indicated by the interface address for the user session; 
     upon termination of the user session by the user of the client program, sending, to the web service program, a second request to retrieve the data resulting from the user session; and 
     in response to the second request, acquiring the data from the web service program. 
     The present invention provides a process for supporting computer infrastructure, said process comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable code in a computing system, wherein the code in combination with the computing system is capable of performing a method for transferring data for a web application, the method performed by a client program comprising: 
     sending, to a web service program, a first request to establish a user session for a web interface program, wherein the first request comprising an input document of the client program and a return address, wherein a user of the client program interacts with the web interface program during the user session, wherein the data is stored in a data store accessed by the web service program and the web interface program; 
     in response to the first request, receiving, from the web service program, a first response comprising a session identifier and an interface address, wherein the session identifier corresponds to the user session, wherein the interface address indicates a Uniform Resource Locator (URL) of the web interface program; 
     operating the user session by channeling interactions by the user of the client program to the web interface program indicated by the interface address for the user session; 
     upon termination of the user session by the user of the client program, sending, to the web service program, a second request to retrieve the data resulting from the user session; and 
     in response to the second request, acquiring the data from the web service program. 
     The present invention provides a method and system that overcomes at least one of the current disadvantages of conventional method and system for transferring large amount of data between web applications. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a system for transferring large amount of data in a web service transaction, in accordance with embodiments of the present invention. 
         FIG. 2  is a control flow chart describing how the client program, the Common Accounting Module (CAM) web interface program, and the CAM web service program interoperate with one another to transfer large amount of data in web service transactions, in accordance with the embodiments of the present invention. 
         FIG. 2A  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the client program, in accordance with the embodiments of the present invention. 
         FIG. 2B  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the CAM web interface program, in accordance with the embodiments of the present invention. 
         FIG. 2C  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the CAM web service, in accordance with the embodiments of the present invention. 
         FIG. 3  is an example of the CAM user session data structure TCAM_User_Session, in accordance with the embodiments of the present invention. 
         FIG. 4  illustrates a computer system used for transferring large amount of data in web service transactions, in accordance with embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates a system  10  for transferring large amount of data in a web service transaction, in accordance with embodiments of the present invention. 
     The system comprises a client program  20 , a CAM web interface program  30 , a CAM web service program  40 , and a CAM data store  50 . 
     The client program  20  is a web application program that employs services provided by the CAM web service program  40 . The client program  20  executes a RequestSession web service call that requests the CAM web service program to establish a CAM user session  35  and that transmits information necessary for the CAM user session  35  to the CAM web service program  40 . During the CAM user session  35 , a user of the client program  20  interactively creates and stores data in the CAM data store  50 . Upon concluding the CAM user session  35 , the client program  20  acquires accounting data from the CAM web service program  40  in response to executing a GetSessionResult web service call. See description of  FIG. 2 , infra, for details of the web service calls. 
     The CAM web interface program  30  guides the user interactively through creation of a set of complete, valid accounting data. The CAM web interface program  30  operates independently from the CAM web service program  40  in storing accounting data in the CAM data store  50 . 
     The CAM web service program  40  establishes the CAM user session  35  in response to the RequestSession web service call. The CAM web service program  40  also compiles results of the CAM user session  35  and returns to the caller application  20  in response to the GetSessionResults web service call. 
     The CAM data store  50  comprises accounting data necessary to perform services of the CAM web service program  40  and the CAM web interface program  30 . In one embodiment of the system  10 , the CAM data store  50  comprises a purchase document received from the client program  20  and accounting data that are modified by the CAM web interface program  30  pursuant to requests from the user of the client program  20  during the CAM user session  35 . 
       FIG. 2  is a control flow chart describing how the client program, the CAM web interface program, and the CAM web service program interoperate with one another to transfer large amount of data in web service transactions, in accordance with the embodiments of the present invention. 
     The web service calls of the present invention comprise a RequestSession web service call and a GetSessionResult web service call. The client program executes the RequestSession web service call to establish a CAM user session on the CAM web interface program for the client program. After the CAM user session is established, the CAM web interface program takes control over from the client program. The CAM user session is terminated upon a request by a user interacting with the CAM web interface program. The client program takes control back from the CAM web interface program and executes the GetSessionResult web service call to obtain accounting data modified during the CAM user session from the CAM data store. See  FIG. 2A , infra, for details of steps  210 ,  220 ,  230 ,  250 ,  260 , and  270 , performed by the client program. See  FIG. 2B , infra, for details of steps  330 ,  340 ,  345 , and  350 , performed by the CAM web interface program. See  FIG. 2C , infra, for details of steps  410 ,  420 ,  460 , and  470 , performed by the CAM web service. 
     The CAM web service program of  FIG. 2C , infra, and the CAM web interface program of  FIG. 2B , infra, are independent of one another in terms of respective functionalities. The CAM web application handles only user interface, while the CAM web service program initializes the CAM user session, and the purchasing document through operations upon the CAM data store. 
       FIG. 2A  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the client program, in accordance with the embodiments of the present invention. 
     The client program is a web application that a user interacts with to use the services provided by the CAM web service. The client program uses a pair of web service calls to establish a CAM user session and to retrieve a result of the CAM user session. 
     In step  210 , the client program sends a request for a CAM user session to the CAM web service program by executing a RequestSession web service call. In this specification, the term CAM user session and the term a CAM session are used interchangeably. The RequestSession web service call passes, from the client program to the CAM web service, a purchasing document comprising data items to be serviced by the CAM web service, and a ReturnToURL representing a Uniform Resource Locator (URL) of the client program that a thread of execution must return after the CAM user session is terminated. In this specification, a thread of execution and a control are used interchangeably. 
     In step  220 , the client program receives a response of the RequestSession web service call from the CAM web service program that performs step  420  of  FIG. 2C , infra. The response to the RequestSession web service call comprises a URL of the CAM web interface program that has a parameter with a value of a session identifier sent by the CAM web service program performing step  420  of  FIG. 2C , infra. 
     In step  230 , the client program passes the control to the CAM web interface program as located by the URL of the CAM web interface program of step  220 . 
     In step  250 , the client program regains control from the CAM web interface program after the user of the client program terminates the CAM user session. 
     In step  260 , the client program sends a request for results of services performed during the CAM user session by executing a GetSessionResult web service call. The GetSessionResult web service call requests information on which action the user have taken to terminate the CAM user session and the purchasing document with accounting data provided during the CAM user session if the user session was terminated with a “save” action to keep the data provided during the user session. 
     In step  270 , the client program receives a response to the request of step  260  from the CAM web service program that performs step  450  of  FIG. 2C , infra. The response comprises accounting information that is modified during the CAM user session. 
       FIG. 2B  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the CAM web interface program, in accordance with the embodiments of the present invention. 
     In step  330 , the CAM web interface program acquires control from the client program that performs step  230  of  FIG. 2A , supra. The CAM web interface program operates for the CAM user session established through steps  210 ,  410 ,  420 , and  220  as shown in  FIG. 2 , supra. 
     During the CAM session, the CAM web interface program presents, to the user of the caller application, a series of user interface screens for CAM accounting operations and receives inputs from the user. The user provides information applicable to the purchasing document that has been stored in the CAM data store by the CAM web service program performing step  410  of  FIG. 2C , infra. 
     In steps  340  and  345 , the CAM web interface program receives an input from a user of the client program until the CAM web interface program is terminated by the user. 
     In step  350 , the CAM web interface program passes the control back to the client program pursuant to a value of the ReturnToURL as stored in InstAppl_Id attribute of the TCAM_User_Session row. See  FIG. 3 , infra, for details of the TCAM_User_Session row. 
       FIG. 2C  is a flowchart depicting a method for transferring large amount of data in web service transactions performed by the CAM web service, in accordance with the embodiments of the present invention. 
     In step  410 , the CAM web service program receives a request to set up a CAM user session from the client program performing step  210  of  FIG. 2A , supra. The request comprises a ReturnToURL data that is a URL of the client program. The ReturnToURL is used for the CAM web service program to redirect a control to the client program after the CAM user session is completed. The CAM web service program also receives a purchasing document from the client program performing step  210 . The CAM web service program stores the ReturnToURL and the purchasing document in the CAM data store to service the CAM user session. 
     In step  420 , the CAM web service program generates and sends a response to the RequestSession web service call. 
     Upon receiving the request, the CAM web service program generates a session identifier of a new CAM user session and inserts a record of the CAM user session in a session data table with the session identifier. The response to the client program comprises the generated session identifier and a URL of the CAM web interface program. The client program subsequently redirects the user&#39;s browser to the URL of the CAM web interface program, passing the session identifier as a parameter. 
     In one embodiment of the present invention, the CAM user session of the user of the client program is represented as the TCAM_User_Session row. 
     In step  460 , the CAM web service program receives a request to provide a result of the CAM user session from the client program that performs step  260  of  FIG. 2A , supra. 
     In step  470 , the CAM web service program sends the result of the CAM user session to the client program in response to the request received in step  460 . The CAM web service program cleans up the CAM data store by removing the CAM user session data and the purchasing document. 
       FIG. 3  is an example of the CAM user session data structure TCAM_User_Session, in accordance with the embodiments of the present invention. 
     TCAM_User_Session is a table comprising a respective row for each active session. There can be multiple concurrent sessions at any point in time. Each active session comprises attributes shown in lines E 01 , E 11  to E 18  of  FIG. 3 . 
     In line E 01 , CAMUS Id represents an identifier generated at the point the client program, such as IBM® Buy On Demand program, calls the Common Accounting Module (CAM) at this time a user session (CAMUS) is established. (IBM is a registered trademark of International Business Machines Corporation in the United States and other countries.) The CAMUS Id identifier provides a linkage between an end-user, the client program and the document (or business transaction) for which accounting data elements are being collected. 
     In line E 11 , CAMUS_Web_Id represents an identifier used to log onto the web to ensure that a user is authentic. The CAMUS_Web_Id uniquely identifies a user of the system. 
     In line E 12 , CAMUS_Locale_Cd represents a geopolitical area contained within and defined by one and only one Country and describes cultural convention. A Country may define many Locales. Cultural conventions may include, inter alia, date and time formats, monetary and non-monetary numeric formatting, collating preferences, and official or tolerated language. The locale is defined in the client program and utilized in the CAM user session. The CAM is configured such that the CAM can support the aggregated list of locales defined in all client programs that call the CAM and present information in the language and format desired by a user. 
     In line E 13 , CAMUS_Lang_Cd represents an expected language translation that a user is presented. The CAMUS_Lang_Cd is defined by the client program. The CAM is configured such that the CAM can support the aggregated list of translations defined in all client programs that call CAM. 
     In line E 14 , AcctPurp_Cd represents a business scenario or condition that affects how a user may interact with the Common Accounting Module (CAM). Various purposes for the CAM is invoked for may be, inter alia, “Create” in which an initiator wishes to provide accounting information for items that has been created, “Create” in which an initiator wishes to edit accounting he previously entered, “Alter” in which an initiator wishes to edit accounting for an item he is altering and resubmitting, and “PFA/FIN Approval” in which a Financial approver wishes to view and potentially edit/correct accounting that was submitted, etc. 
     In line E 15 , InstAppl_Id represents the application, i.e., the client program, which called the Common Accounting Module (CAM). In order to appear in this session data, the application must be configured for CAM usage. 
     In line E 16 , Doc_Key represents an aggregate attribute composed of one or more pieces of data that uniquely identify the document or transaction within a specific instance of an application system. This information ensures that the provided Doc_Key document key is unique across multiple systems which submit documents to CAM for accounting. 
     In line E 17 , CAMUS_Status_Cd represents a system level perspective on the User Session. For example, the CAM system may recognize a status of the User Session as “Active,” “Complete,” or “Aborted.” “Complete” represents a status resulting from an action of a user, and “Aborted” is a status when a time-out event has occurred. 
     In line E 18 , CAMUS_CompAct_Cd represents a “completion action” that a user took to complete the accounting session. The completion actions may be, inter alia, “Cancel” that the user terminated the session without saving the session, “Save/Incomplete” that the user saves an incomplete accounting session followed by returning control and accounting information to the client program, “Save/Complete” that the user has finished providing all needed accounting information which has been validated and is complete, followed by returning control and accounting information to the client program. 
       FIG. 4  illustrates a computer system  90  used for transferring large amount of data in web service transactions, in accordance with embodiments of the present invention. 
     The computer system  90  comprises a processor  91 , an input device  92  coupled to the processor  91 , an output device  93  coupled to the processor  91 , and memory devices  94  and  95  each coupled to the processor  91 . The input device  92  may be, inter alia, a keyboard, a mouse, a keypad, a touchscreen, a voice recognition device, a sensor, a network interface card (NIC), a Voice/video over Internet Protocol (VOIP) adapter, a wireless adapter, a telephone adapter, a dedicated circuit adapter, etc. The output device  93  may be, inter alia, a printer, a plotter, a computer screen, a magnetic tape, a removable hard disk, a floppy disk, a NIC, a VOIP adapter, a wireless adapter, a telephone adapter, a dedicated circuit adapter, an audio and/or visual signal generator, a light emitting diode (LED), etc. The memory devices  94  and  95  may be, inter alia, a cache, a dynamic random access memory (DRAM), a read-only memory (ROM), a hard disk, a floppy disk, a magnetic tape, an optical storage such as a compact disc (CD) or a digital video disc (DVD), etc. The memory device  95  includes a computer code  97  which is a computer program that comprises computer-executable instructions. The computer code  97  includes, inter alia, an algorithm used for transferring large amount of data in web service transactions according to the present invention. The processor  91  executes the computer code  97 . The memory device  94  includes input data  96 . The input data  96  includes input required by the computer code  97 . The output device  93  displays output from the computer code  97 . Either or both memory devices  94  and  95  (or one or more additional memory devices not shown in  FIG. 4 ) may be used as a computer usable medium (or a computer readable medium or a program storage device) having a computer readable program embodied therein and/or having other data stored therein, wherein the computer readable program comprises the computer code  97 . Generally, a computer program product (or, alternatively, an article of manufacture) of the computer system  90  may comprise said computer usable medium (or said program storage device). 
     Any of the components of the present invention can be deployed, managed, serviced, etc. by a service provider that offers to deploy or integrate computing infrastructure with respect to a process for transferring large amount of data in web service transactions of the present invention. Thus, the present invention discloses a process for supporting computer infrastructure, comprising integrating, hosting, maintaining and deploying computer-readable code into a computing system (e.g., computing system  90 ), wherein the code in combination with the computing system is capable of performing a method for transferring large amount of data in web service transactions. 
     In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising and/or fee basis. That is, a service provider, such as a Solution Integrator, can offer to create, maintain, support, etc. a process for transferring large amount of data in web service transactions of the present invention. In this case, the service provider can create, maintain, support, etc. a computer infrastructure that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement, and/or the service provider can receive payment from the sale of advertising content to one or more third parties. 
     While  FIG. 4  shows the computer system  90  as a particular configuration of hardware and software, any configuration of hardware and software, as would be known to a person of ordinary skill in the art, may be utilized for the purposes stated supra in conjunction with the particular computer system  90  of  FIG. 4 . For example, the memory devices  94  and  95  may be portions of a single memory device rather than separate memory devices. 
     While particular embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.