Wrap-up reads for logless persistent components
Architecture that facilitates exactly-once application execution via a wrap-up procedure. A logless component (LLcom) processes a last-read activity (or wrap-up read) against external state when processing a method of a middle-tier environment. A client logging component logs results of the method to a client log. The wrap-up procedure of the LLcom is initiated to read external state. External state is read after all GIR requests have been processed but just before the method returns to the client. The LLcom method returns to the client at a point in the caller method that immediately issues the return for the method call. Subsequent client requests become replayable due to the logged results. With client logging, both idempotence of requests and guiding execution back to its original execution path is accomplished. Alternatively, logging can occur via a middle-tier decision service. In either event, the logging enables the middle tier to choose at which back end service it will next send a request will supporting exactly once execution.
1 . A computer-implemented system that facilitates exactly-once application execution, comprising:
a logless component for processing a last-read activity as part of a method; and
a logging component of a client for logging results of the method to a log.
2 . The system of claim 1 , wherein the method results are logged by the client before the client initiates a subsequent non-read-only call.
3 . The system of claim 1 , wherein the logless component is part of a middle-tier application.
4 . The system of claim 1 , wherein the method is at least one of a read-only method and a non-read-only method.
5 . The system of claim 1 , wherein when executing the method containing the last-read activity during a replay/recovery process, the results are different.
6 . The system of claim 1 , wherein the logged results include a first result of a first execution of the method such that when the method is re-executed, the returned result is replaced with the first result.
7 . The system of claim 1 , wherein the client forces the log prior to revealing state.
8 . The system of claim 1 , wherein the method performs an update.
9 . The system of claim 8 , wherein the update is performed via a GIR (general idempotent request).
10 . The system of claim 1 , wherein the logless component executes a last read activity within a wrap-up procedure to read external state.
11 . The system of claim 1 , wherein the logless component method further comprises a wrap-up procedure that freely updates its local variables.
12 . The system of claim 1 , wherein the logless component method further comprises a wrap-up procedure that returns to a part of the method that issues a return for a call of the method.
13 . The system of claim 1 , further comprising a decision service that logs a decision as to which backend server to visit next at a location other than the client log.
14 . A computer-implemented method of providing exactly-one application execution, comprising:
calling an LLcom method of a logless middle-tier component with an LLcom method call;
initiating an internal procedure associated with the LLcom method to read external state;
reading the external state as a last activity prior to the LLcom method returning to the client of the LLcom method call; and
logging results of the LLcom method in a client log for replay.
15 . The method of claim 14 , wherein the act of logging the result of an examination of external state occurs at a decision procedure which enables program logic to determine which e-proc to execute next.
16 . The method of claim 14 , wherein the act of reading in an LLcom method is performed after all GIR requests are processed.
17 . The method of claim 14 , further comprising an act of using the logged results of an original invocation during a replay process to replace results returned by re-execution of the LLcom method.
18 . The method of claim 14 , further comprising an act of returning from the internal procedure to a part of the LLcom method that immediately issues a return for the LLcom method call.
19 . The method of claim 14 , further comprising an act of returning results of the internal procedure only to a client component and not exploiting the results to change LLcom state.
20 . A computer-executable system, comprising:
computer-implemented means for calling a method of a logless middle-tier component with a call from a client component;
computer-implemented means for initiating an internal procedure to read external state;
computer-implemented means for reading the external state after all GIR requests are processed before returning to the client component;
computer-implemented means for returning the internal procedure to a part of the method that immediately issues a return for the method call; and
computer-implemented means for logging results of the method in a client log of the client component.