throbber
as) United States
`a2) Patent Application Publication co Pub. No.: US 2004/0143645 Al
`
` Cheenath (43) Pub. Date: Jul. 22, 2004
`
`
`US 20040143645A1
`
`(54) ASYNCHRONOUS WEB SERVICE
`INVOCATION MODEL
`
`(52) US. C1). ieeessessss crs seesessnesecessenessneees 709/218
`
`(76)
`
`Inventor: Manoj Cheenath, Alameda, CA (US)
`Correspondence Address:
`Sheldan R. Mever. Es ,
`FLIESLER DUBE MEYER & LOVEJOY LLP
`Fourth Floor
`Four Embarcadero Center
`San Francisco, CA 94111-4156 (US)
`’
`.
`.
`=
`(21) Appl. No.:
`10/348,515
`(22) Filed:
`Jan.21, 2003

`Publication Classification
`
`(SL) Tite CU? ieceecccecccsssseceeteeccesssesssssstneseeseeeee GO6F 15/16
`
`ABSTRACT
`(57)
`Asystem and method for asynchronously invoking a remote
`web service on a server by application code residing on a
`client. The web service invoke request received from appli-
`cation code residing on the client, passes an invoke request
`to a web service residing on a server, receives a result from
`the web service, the result relating to the invoke request
`passcd by the clicnt, and transmits the result to the appli-
`calion code. Once the invoke request is passed to the web
`service by the client, the application codeis freed to perform
`other tasks. The result may be transmitted to the application
`code from the client as part of a call back object passed to
`the client by the application code, as a result of application
`code polling of the client, or by the application code ending
`the task generated bythe client.
`
`a
`Cstart) 305
`_
`iy
`Application Code
`Invokes Web
`
`Service, Passes
`Call Back
`
`
`
`
`
`
`
`|
`dn a i)
`
`KaRoio
`
`330
`
`qaconio
`
`Ko(op)io
`
`Client Passes|
`Request to Web
`
`Service
`
`'
`Web Service
`Recieves and
`Processes
`
`Request
`
`WebService
`Transmits Results
`to Client
`
`
`
`Client Receives
`Result, Calls Back
`
`Application Code
`
`
`
`
`
`Application Code
`Receives Call
`Back, Obtains
`Result
`
`Cond) 905
`
`Booking, Exh. 1042, Page 1
`
`Booking, Exh. 1042, Page 1
`
`

`

`Patent Application Publication
`
`Jul. 22,2004 Sheet 1 of 5
`
`US 2004/0143645 Al
`
`
`
`Processor
`
`|
`
`121
`
`Application |
`
`
`
`
`
`
`
`
`
`Client Web
`Service
`Application
`
`
`
`-
`
`on
`
`— RO [o?)
`
`
`
`Booking, Exh. 1042, Page 2
`
`Booking, Exh. 1042, Page 2
`
`

`

`Patent Application Publication Jul. 22,2004 Sheet 2 of 5
`
`US 2004/0143645 Al
`
`
`
`NONO So
`
`NO
`
`io
`
`
` NO — So
`Application Code
`Requests Web
`
`
`Service
`
`Client Invokes
`
`
`Web Service on
`
`Server
`
`
`Web Service
`Receives and
`
`
`
`
`Processes
`
`
`Request
`
`
`
`Web Service
`
`
`Transmits Results
`
`to Client
`
`240No Client Receives
`
`
` NOo>io
`
`
`
`
`
`
`
`NO
`
`Co
`
`Results
`
`|
`
`Client Provides
`
`Results to
`
`Application Code
`
`
`
`FIG. 2. Prior Art
`
`Booking, Exh. 1042, Page 3
`
`Booking, Exh. 1042, Page 3
`
`

`

`Patent Application Publication Jul. 22,2004 Sheet 3 of 5
`
`US 2004/0143645 Al
`
`GoOo On|
` w = co|
`
`
`
`Application Code
`Invokes Web
`
`Service, Passes
`
`
`Call Back
`
`
`
`Client Passes
`Service
`Request to Web|3209
`
`
`
`
`Web Service
`
`Recieves and
`
`Processes
`
`Request
`
`
`Web Sernice
`
`Transmits Results
`
`
`to Client
`
`
`
`
`
`
`
`
`
`Client Receives
`
`Result, Calls Back
`_Application Code
`
`
`
`
`
`
`
`
`Application Code
`Receives Call
`Back, Obtains
`Result
`
`Kn>io
`
`Booking, Exh. 1042, Page 4
`
`Booking, Exh. 1042, Page 4
`
`

`

`Patent Application Publication Jul. 22,2004 Sheet 4 of 5
`
`US 2004/0143645 Al
`
`
`
`start_) 405
`
`Application Code
`Invokes Web
`Service
`
`> — joo}
`
`& iO
`
`
`
`
`Client Passes
`
`
`Request to Web
`
`
`Service, Frees
`Application Code
`Request
`
`
`
`Web Service
`
`
`Receives and
`Processes
`
`Request
`
`
`
`
`Web Service
`Transmits Results
`
`to Client
`
`
`
`
`
`Application Codé
`Polls Client-
`
`esult Received?
`
`Application Code
`Obtains Result
`
`Booking, Exh. 1042, Page 5
`
`Booking, Exh. 1042, Page 5
`
`

`

`Patent Application Publication Jul. 22,2004 Sheet 5 of 5
`
`US 2004/0143645 Al
`
`
`
`
`
`Application Code
`Invokes Web
`
`
`Service
`
`
`
`
`
`Client Passes
`Request to Web
`
`Service
`
` Web Service
`Receives and
`Processes
`Request
`
`
`
`Web Service
`
`Transmits Results
`to Client
`
`Client Receives
`Results
`
` Application Code
`
`
`Performs Other
`
`
`
`Tasks
`
`
`
`
`
`
`|
`an oes io
`
`cnRO iO
`
`|
`awooO
`
`540
`
`Application Code
`calls End
`
`Application Code
`
`
`
`
`
`
`Obtains Result
`
`
`
`Booking, Exh. 1042, Page 6
`
`Booking, Exh. 1042, Page 6
`
`

`

`US 2004/0143645 Al
`
`Jul. 22, 2004
`
`ASYNCHRONOUS WEB SERVICE INVOCATION
`MODEL
`
`COPYRIGHT NOTICE
`
`[0001] A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyoneof the patent documentorthe patent
`disclosure, as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`
`FIELD OF THE INVENTION
`
`‘The current invention relates generally to remote
`[0002]
`web services, and more particularly to asynchronously
`invoking a remote web service.
`
`BACKGROUND OF THE INVENTION
`
`Java standards for web services are constantly
`[0003]
`being developed. Concurrently, businesses are building
`important applications on top of web services infrastruc-
`tures, such as that available in WebLogic Server from BEA
`Systems of San Jose, Calif. As these applications evolve,
`they become more complex with more operations to per-
`form.
`
`[0004] A-system illustrating a client-server system is illus-
`trated in FIG. 1. A typical web service 135 residing on a
`server 130 maybe accessed by a client 120. The client may
`be implemented as a stand alone machine that communicates
`with the server over a physical connection or a logically
`implemented client that resides on the same machine as the
`server. If implemented on a stand alone machine, the clicnt
`includes a processor 121, RAM 122, input means 123 and
`output means 124. In either embodiment,
`the client
`is
`configured to include vendor-addedapplication code 125 as
`well as standard JAVA objects such as client web service
`applications 126 such as client web service Runtime. The
`server 130 includes a web service 135. A user may invoke
`the web service 135 through the client 120.
`
`[0005] FIG.2 illustrates a method 200 for invoking a web
`service in accordance with one embodimentof the present
`invention. Operation of method 200 begins with start step
`205. Application code requests a web service at step 210. In
`one embodiment, application code residing within the client
`initiates a call to the client’s runtime routine to request a web
`service residing on a server. This may be initiated by a user
`or other code within the client. Next, the client invokes the
`webservice on the server in step 220. The invocation request
`initiates the generation of an application thread by runtime
`in which the request is carried out. The server receives the
`request and processes the request at step 230. Next,
`the
`server returns a result to the client at step 240. The client
`receives the result in step 250 and provides the application
`code with the result at step 260. The thread is then complete
`and operation of method 200 then endsal step 265. Through-
`out steps 220-260, the synchronized operation initiated by
`the application code is performed within a single thread.
`Thus, the synchronized operation involves the application
`code waiting for a response from the client before perform-
`ing other tasks. Thus, the thread is blocked until the web
`service invoke is complete. An Enterprise Java Bean (EJB)
`does not allow application code to create new threads. As a
`
`result, the method currently used by client server systems to
`process user requests is slow and inefficient.
`
`[0006] Whatis needed is a web service invocation model
`that allows a user to perform other tasks while a requestis
`being processed.
`
`SUMMARYOF THE INVENTION
`
`invention provides asynchronous
`[0007] The present
`remote web service invocation. Asystem in accordance with
`one embodiment of the present invention includes a client
`and a remote server. Invocation of a web service on the
`server bythe client is initiated from an application thread.
`This application thread is then freed by the client web
`service runtime to allow the application to process other
`tasks while the web service is invoked. In one embodiment,
`asynchronous webservice invocation for a system in Java is
`implemented by freeing the thread used by the application to
`invoke the webservice. (ok to remove?) Oncethefirst thread
`is free, the application code may perform other tasks while
`the second thread carries out the web service invocation.
`Results from the invoked remote webservice are transmitted
`to the client.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0008] FIG. 1 is an illustration of a system for providing
`access to a remote web service bya user in accordance with
`one embodiment of the present invention.
`
`[0009] FIG.2 is anillustration of a prior art method for
`providing synchronousinvocation of a remote web service.
`
`(0010] FIG.3 is an illustration of a method for providing
`asynchronous invocation of a remote web service using, a
`callback technique in accordance with one embodiment of
`the present invention.
`
`(0011] FIG.4 is an illustration of a method for providing
`asynchronous invocation of a remote web service using a
`polling technique in accordance with onc embodimentof the
`present invention.
`
`[0012] FIG. 5 is an illustration of a method for providing
`asynchronous invocation of a remote web service using a
`delayed end call technique in accordance with one embodi-
`ment of the present invention.
`
`DETAILED DESCRIPTION
`
`invention provides asynchronous
`[0013] The present
`remote web service invocation. A system in accordance with
`one embodiment of the present invention includes a client
`and a remote server. Invocation of a web service on the
`server by the client
`initiates an application thread. The
`application initiated thread is used to access the web service.
`The user generated thread is then freed to allow the appli-
`cation to process other tasks while the web service is
`invoked. In onc cmbodiment, asynchronous web scrvicc
`invocation for a system in Java is implemented by freeing
`the thread initiated by the application to invoke the web
`service. In one embodiment, the client web service run time
`frees the first thread and uses a secondthread to carry out the
`web service invocation. Once the first thread is free, the
`application code may perform other tasks while the second
`thread carries out the web service invocation. Results from
`the invoked remote web service are transmitted to the client.
`
`Booking, Exh. 1042, Page 7
`
`Booking, Exh. 1042, Page 7
`
`

`

`US 2004/0143645 Al
`
`Jul. 22, 2004
`
`[0014] A method 300 for providing asynchronous invoca-
`tion of a remote web service using a call back technique in
`accordance with one embodimentof the present invention is
`illustrated in FIG. 3. Operation of method 300 begins with
`start step 305. Application code invokes a web service and
`passesa call back parameterto the client in step 310. During
`the invocation of the web service by the application code,
`the client web service Runtime Routine generates a first
`thread to carry out the invocation. The application code may
`be located on a stand alone client machine or implemented
`logically as discussed above in reference to FIG. 1. In one
`embodiment, the application code creates an async context
`and passes a call back object to the client as part of asynch
`context creation. The asyne context may contain informa-
`tion. A start method call made subsequently by the client
`mayinclude the asynchronous context (AC) and arguments.
`
`In step 320, the client passes a request to the web
`[0015]
`service. In one embodiment, passing a request to the web-
`service includes invoking an operation to access the remote
`web service by generating a second thread while the first
`application thread is freed. Freeing the first application
`thread allows the user to process other tasks instead of
`waiting to receive the result from the web service invoca-
`tion. In one embodiment, a call is made to the asynInvoke
`method on the client stub. The operation then sends a
`message to a clicnt dispatcher located on the client. The
`client dispatcher then creates a FutureResult object,
`the
`object
`to be sent back to the user, creates a task, and
`schedules this task to the thread pool. The created task
`includes sending a request to the web service and receiving
`a result from the web service. Scheduling a task to the thread
`pool allows a second thread to handle execution of the task.
`The task is then executed by calling a method of the web
`service. The second thread processes the call that invokes
`the task. The task uses a protocol binding to transmit the task
`request data over a network to a web service for processing.
`
`[0016] The Web service located on the server receives and
`processes the request at step 330. Processing the request
`includes invoking the requested web service and obtaining a
`result. The server will use the parameters passed by the
`chent, if any, to obtain a result from the web service. Once
`the remote method of the web service has been invoked and
`a result is generated, the result is transmitted by the web
`service backto the client at step 340. In one embodiment, the
`result is received by the protocol binding. The task then sets
`the future result value to the value of the result received from
`the web service.
`
`[0017] The client receives the result and invokes a call
`back to the application code at step 350. In one embodiment,
`the call back indicates the result is available at the client for
`
`the application code to access. In one embodiment, this
`includes the web service client runtimeinitiating the context
`to notify anylistening entities.
`
`[0018] The application code receives the call back and
`obtains the result
`from the client at step 360.
`In one
`embodiment, the application code accesses the web service
`client runtime andretrieves stored F'utureResult value.In yet
`another embodiment, the client invokes the client stub. The
`client stub then retrieves the future result from the client and
`
`provides the application code with the result. Operation of
`method 300 then ends at step 355.
`
`[0019] An example of application code that may be used
`to implement the method of FIG. 3 along with client code
`(not shown) is shown below.
`
`public class Main{
`public void test () throws Exception{
`SimpleTest echoService = new SimpleTest_Impl ( );
`SimpleTestSoap echoPort = echoService.getSimpleTestSoap ();
`{/ /eallback style
`WSContext wsContext = new WSContext();
`wsContext.setResultListener( new ResultListener () {
`public void onCompletion ( InvokeCompletedEvent event ) {
`SimpleTesiSoap source = (SimpleTestSoap)
`event.getSource (
`
`%
`
`try
`
`String result = source.endEchoString(
`event. getFutureResult ( ) );
`weblogic.utils.Debug.say ( Acallback result: @ +
`
`result );
`
`gotCallback = true;
`}eatch ( RemoteException e ) {
`e.printStackTrace ( System.out);
`
`}
`
`echoPort.startEchoString ( A94501”, wsContext );
`
`In another embodimentof the present invention, a
`[0020]
`polling technique may be used to asynchronously invoke a
`remote web service. A method 400 for providing asynchro-
`nous invocation of a remote web service using a polling
`technique in accordance with one embodimentof the present
`invention is illustrated in FIG. 4. Operation of method 400
`begins with start step 405. Application code invokes a web
`service in step 410. In one embodiment, application code
`invokesa call to remote method of a remote webservice in
`step 410. In contrast to the call back technique of method
`300 in FIG.3, no call back is passed with the remote method
`call. As in method 300,
`the web service client runtime
`generates a thread upon the invocation request by the
`application code. The web service invocation maybe initi-
`ated by a user action at a console, on a graphical user
`interface, or by application code. The application code may
`be located on a remote or logically implemented client. In
`one embodiment,
`the application code creates an async
`context and calls a start method. The start method call may
`include the asynchronous context (AC) and arguments.
`
`[0021] Next, the client calls a remote method of the web
`service and passes the request to the web service in step 420.
`In this embodiment, the client invokes an operation using a
`second thread while freeing the first thread associated with
`the application code. Freeing thefirst thread allows the user
`to process other tasks instead of waiting to receive the result
`from the web service invocation. In one embodiment, calling
`a remote method includes calling an asynInvoke operation
`on the clicnt stub. The operation then scnds a message to a
`client dispatcher located on the client. The client dispatcher
`then creates a FutureResult object, the value to be sent back
`to the user, creates a task, and schedules this task to the
`thread pool. The created task includes sending a request to
`the web service and receiving the result of the remote
`method from the web service. Scheduling a task to the thread
`pool allows a second thread to handle execution ofthe task.
`The task is then executed using an execute call. The second
`
`Booking, Exh. 1042, Page 8
`
`Booking, Exh. 1042, Page 8
`
`

`

`US 2004/0143645 Al
`
`Jul. 22, 2004
`
`thread processes the execute commandthat invokesthe task.
`The task uses a protocol binding to send the result back to
`the client. The binding issued to transmit the task over a
`network to a web service for processing.
`
`[0022] The server receives and processes the request to
`obtain a result at step 430. After the server obtains a result,
`the server sendsthe result to the client, as shown in step 440.
`In onc cmbodiment,
`the result is reccived by the clicnt
`binding. The task then sets a future result object with the
`value received from the web service. The application code
`then polls the client Runtime to determine if the client has
`received a result from the server in step 450. If the client
`indicates it has not received a result from the server, opera-
`tion loops back to step 450 where the application code
`continues to poll the client. In one embodiment, the user will
`poll the client at some intervalof time after the previouspoll.
`If the client indicates it has received a result from the server,
`operation continues to step 460. In step 460, the user obtains
`the result from the clicnt runtime Opcration of mcthod 400
`then ends at step 465. In another embodiment, the poll of
`step 460 occurs at some other point during operation of
`method 400 than after step 450. For example, the polling
`step may occur immediately after the client passes the
`request to the web service.
`
`an operation to access the remote web service in step 520.
`In this embodiment, the client invokes an operation using a
`second thread and passes arguments needed to invoke the
`webservice.he arguments may have been generated from
`the application code or the clicnt itself. Invoking an opera-
`tion may include the client stub calling an asynInvoke
`operation. The operation then sends a message to a client
`dispatcher located on the client. The client dispatcher then
`creates a FutureResult value, the value to be sent back to the
`application code, creates a task, and schedules the task to the
`thread pool. The created task includes sending a request to
`the web service and receiving a result from the web service.
`Scheduling a task to the thread pool allows a second thread
`to handle execution of the task. The task is then executed
`
`using an execute command. ‘he second thread processesthe
`execute commandthat invokesthe task. The task is then sent
`to the client binding. The binding sends the task over a
`network to a web service for processing.
`
`to the web
`[0026] After the client passes the request
`service in step 520, the application code may perform other
`tasks at step 530. These other tasks will
`include tasks
`performedbythe application code that do not requirea result
`from the invoked web service. Thoughlisted as step 530 in
`method 500 of FIG. 5, the other tasks may be performed at
`any time after the start call is made in step 510 and the end
`call is made in step 570.
`
`[0023] An example of application code that may be used
`to implement the method of FIG. 4 is shown below.
`[0027] After the application code has madeastart call, the
`webservice located on the server receives and processes the
`request in step 540. Processing the request includes gener-
`ating a result from the web service. The web service then
`transmits the result to the client in step 550. he client
`receivesthe result in step 560. In one embodiment, the result
`is received by the binding. The task created earlier then sets
`FutureResult to the value of the result received from the web
`service.
`
`public class Main{
`public void lest () throws Exception{
`SimplcTest cchoScrvice = new SimplcTest_Impl();
`SimpleTestSoap echoPort = echoService.getSimpleTestSoap ( );
`{ / /async poll style
`FutureResult futureResult = echoPort.startEchoString( A94501”,
`null );
`while ( !futureResult.isCompleted () ) {
`weblogic.utils.Debug.say ( Aasynepolling ...@ );
`// other tasks performed by the application code here. .
`
`String result = echoPort.endEchoString ( futureResult );
`weblogic.utils.Debug.say ( Apoll result: @ + result ),
`
`w
`
`In another embodimentof the present invention, a
`[0024]
`delayed end call technique may be used to asynchronously
`invoke a remote web service. In this embodiment, an end
`method may be called to obtain the result from an asyn-
`chronous invocation. A method 500 for providing asynchro-
`nous invocation of a remote web service using a static end
`technique in accordance with one embodimentof the present
`invention is illustrated in FIG. 5. Operation of method 500
`begins with start step 505. Application code invokes a
`remote web service in stcp 510. As in methods 300 and 400,
`the invocation request by the application code requires the
`generation ofa first thread to process the request. The web
`service invocation may be initiated by a user action at a
`console, on a graphical user interface, or by application
`code. The application code may be located on the client
`computer or on some other system or machine.
`In one
`embodiment, the application code creates an async context
`and calls a start method. The start method call may include
`the asynchronous context (AC) and arguments.
`
`to the web
`the client passes the request
`[0025] Next,
`service in step 520. In one embodiment, the client invokes
`
`[0028] Atsomepoint before the application code requires
`the result, the application code will invoke endXXX(_) to
`endthe first thread, as shown in step 570. The end call serves
`to end the first thread. In step 580, the application code
`obtains the FutureResult
`from the client. Operation of
`method 500 then endsat step 585. An example of user code
`that may be used to implement the mcthod of FIG. 5 is
`shown below.
`
`public void test () throws Exception{
`SimpleTest echoService = new SimpleTest_Impl( );
`SimpleTestSoap echoPort = echoService.getSimpleTestSoap ();
`{/ / syne invoke using asyncstyle
`FutureResult futureResult = echoPort.startEchoString ( A94501”,
`null )=
`// other tasks performed by the application code here.
`String resull = echoPorl.endEchoString ( fulureResull );
`woblogic.utils.Debug.say ( Asyne result:@ + result );
`
`.
`
`.
`
`In one embodimentof the invention, the systems
`[0029]
`illustrated in FIGS. 3, 4 and 5 may be a request-response
`service. In a request-response service,
`the client sends a
`request to a server and receives a response from the server
`over the same socket connection. In another embodimentof
`
`the present invention, a server may send the result back to
`the client on a second socket connectionthat differs from the
`
`Booking, Exh. 1042, Page 9
`
`Booking, Exh. 1042, Page 9
`
`

`

`US 2004/0143645 Al
`
`Jul. 22, 2004
`
`line the request was received on by the server. In this
`embodiment, the thread driving the request is free when the
`client sends the request to the server. Once the request is
`processed and a result is obtained by the server, the server
`uses a new thread to drive the transmittal of the result back
`to the client. Since the first thread is freed whenthe client
`sends the request, the user is free to process other tasks. The
`user is not restricted from doing other tasks while waiting to
`receive the result from the web service. The systemsillus-
`trated in FIGS. 3, 4 and 5 maybe used to implement a
`system with a server having two one-way transmissions.
`
`In one embodimentof the present invention, asyn-
`[0030]
`chronous web service invocation is enabled when an
`
`attribute generateAsyncMethods in clientgen task is set to
`true. This will generate a client stub with asynchronous web
`invocation methods that start and stop the asynchronized
`invocation.
`
`invention provides asynchronous
`[0031] The present
`remote web service invocation. Asystem in accordance with
`one embodiment of the present invention includes a client
`and a remote server. Invocation of a web service on the
`server by the client
`initiates an application thread. The
`application initiated thread to access the web service. The
`user generated thread is then freed to allow the application
`to process other tasks while the web service is invoked. In
`one embodiment, asynchronous web service invocation for
`a system in Java is implemented by freeing the thread
`initiated by the application to invoke the web service. In one
`embodiment, the client web service run time frees the first
`thread and uses a second thread to carry out the web service
`invocation. Oncethe first thread is free, the application code
`may perform other tasks while the second thread carries out
`the web service invocation. Results fromthe invoked remote
`webservice are transmitted to the client.
`
`[0032] Other features, aspects and objects of the invention
`can be obtained from a reviewofthe figures and the claims.
`It is to be understood that other embodiments of the inven-
`
`tion can be developed and fall within the spirit and scope of
`the invention and claims.
`
`[0033] The foregoing description of preferred embodi-
`ments of the present invention has been provided for the
`purposesofillustration and description. It is not intended to
`be exhaustive or to limit the invention to the precise forms
`disclosed. Obviously, many modifications and variations
`will be apparent to the practitioner skilled in the art. The
`embodiments were chosen and described in order to best
`
`explain the principles of the invention and its practical
`application,
`thereby enabling others skilled in the art
`to
`understand the invention for various embodiments and with
`various modifications that are suited to the particular use
`contemplated. It is intended that the scope of the invention
`be defined by the following claims and their equivalence.
`
`In addition to an embodiment consisting of spe-
`[0034]
`cifically designed integrated circuits or other electronics, the
`present invention may be conveniently implemented using a
`conventional general purpose or a specialized digital com-
`puter or microprocessor programmedaccordingto the teach-
`ings of the present disclosurc, as will be apparent to those
`skilled in the computerart.
`
`[0035] Appropriate software coding can readily be pre-
`pared by skilled programmers based onthe teachings ofthe
`
`present disclosure, as will be apparent to those skilled in the
`software art. The invention may also be implemented by the
`preparation of application specific integrated circuits or by
`interconnecting an appropriate network of conventional
`component circuits, as will be readily apparent to those
`skilled in the art.
`
`[0036] The present invention includes a computer pro-
`gram product which is a storage medium (media) having
`instructions stored thereon/in which can be used to program
`a computer to perform any of the processes of the present
`invention. [he storage medium can include, but
`is not
`limited to, any type of disk including floppy disks, optical
`discs, DVD, CD-ROMs, microdrive, and magneto-optical
`disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs,
`VRAMs,flash memory devices, magnetic or optical cards,
`nanosystems(including molecular memory ICs), or any type
`of media or device suitable for storing instructions and/or
`data.
`
`readable
`[0037] Stored on any one of the computer
`medium (media), the present invention includes software for
`controlling both the hardware of the general purpose/spe-
`cialized computer or microprocessor, and for enabling the
`computer or microprocessorto interact with a humanuser or
`other mechanism utilizing the results of the present inven-
`tion. Such software mayinclude, butis notlimited to, device
`drivers, operating systems, and user applications. Ulti-
`mately, such computer readable media further includes soft-
`ware for performing at least one of additive model repre-
`sentation and reconstruction.
`
`Included in the programming (software) of the
`[0038]
`general/specialized computer or microprocessor are soft-
`ware modules for implementing the teachings of the present
`invention, including,but not limited to, separating planes of
`a source image, averaging at least one of foreground and
`background colors, replacing colors, and compensating, for
`error introduced by color replacement
`in one plane by
`feeding crror into a sccond planc, storage, communication of
`results, and reconstructing an image according to the pro-
`cesses of the present invention.
`
`In the claims:
`
`1. A method for asynchronously invoking a remote web
`service on a server by a client, the method comprising:
`
`receiving a web service invoke request by a client, the
`webservice invoke request received from application
`code residing on the client;
`
`passing an invoke request by the client to a web service
`residing on a server;
`
`receiving a result by the client from the web service, the
`result relating to the invoke request passed by the
`client;
`
`notifying the application code that the result is available;
`
`receiving a result request from the application code by the
`client; and
`
`transmitting the result to the application code.
`2. The method of claim 1 wherein said receiving a web
`service invoke request includes:
`
`Booking, Exh. 1042, Page 10
`
`Booking, Exh. 1042, Page 10
`
`

`

`US 2004/0143645 Al
`
`Jul. 22, 2004
`
`receiving a call back object by the client from the appli-
`cation code, wherein notifying the application code
`includes returning the call back object to the applica-
`tion code from the client.
`
`3. The method of claim 2 wherein the call back object is
`contained in an asynchronouscontext.
`4. The method of claim 3 wherein passing an invoke
`request by the client to a web service residing on a server
`includes:
`
`passing the asynch context to the web service from the
`chient.
`
`5. The method of claim 1 wherein said passing an invoke
`request by the client to a web service residing on a server
`includes:
`
`generating a secondthread to process a task generated by
`the client, the task configured to handle invoking the
`webservice, wherein a first thread generated from the
`web service invoke request received by the client is
`freed upon the generation of the second thread.
`6. A method for asynchronously invoking a remote web
`service on a server by a client, the method comprising:
`
`receiving a web service invoke request by a client, the
`webservice invoke request received from application
`code residing on the client;
`
`passing an invoke request by the client to a web service
`residing on a server;
`
`freeing the web service invoke request by the client;
`
`receiving a result by the client from the web service, the
`result relating to the invoke request passed by the
`client;
`
`receiving a poll from the application code;
`
`notifying the application code that the result is available;
`
`receiving a result request trom the application code by the
`clicnt; and
`
`transmitting the result to the application code.
`7. The method of claim 4 wherein said passing an invoke
`request by the client to the web service residing on a server
`includes:
`
`the result provided by the web service in
`service,
`response to the web service invocation; and
`
`obtaining the result from the client by the application
`code.
`
`9. The method of claim 6 further comprising:
`
`receiving a result ready signal from the client by the
`application code, the result ready signal received in
`response to the application code polling and indicating
`the result is ready.
`10. A method for asynchronously invoking a remote web
`service on a server by a client, the method comprising:
`
`receiving a web service invoke request by a client, the
`web service invoke request received from application
`code residing on the client;
`
`passing an invoke request by the client to a web service
`residing on a server; freeing the web service invoke
`request by the client, wherein the application code is
`configured to perform additional tasks once the web
`service invoke request is freed;
`
`receiving a result by the client from the web service, the
`result relating to the invoke request passe

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


Or .

Accessing this document will incur an additional charge of $.

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

Accept $ Charge
throbber

Still Working On It

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

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

throbber

A few More Minutes ... Still Working

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

Thank you for your continued patience.

This document could not be displayed.

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

Your account does not support viewing this document.

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

Your account does not support viewing this document.

Set your membership status to view this document.

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

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

Become a Member

One Moment Please

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

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

Your document is on its way!

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

Sealed Document

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

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


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket