News Column

Patent Issued for Sub-Dispatching Application Server

June 25, 2014



By a News Reporter-Staff News Editor at Journal of Engineering -- From Alexandria, Virginia, VerticalNews journalists report that a patent by the inventor Mitchell, Ian J. (Hants, GB), filed on August 3, 2012, was published online on June 10, 2014.

The patent's assignee for patent number 8752052 is International Business Machines Corporation (Armonk, NY).

News editors obtained the following quote from the background information supplied by the inventors: "The present subject matter relates to the field of sub-dispatching application servers. In particular, the present subject matter relates to operation of transaction servers as sub-dispatching application servers that carry out their own task dispatching on operating system threads.

"A transaction server is a component that is used in implementing transactions. A transaction involves multiple steps which must be completed atomically. For example, when paying someone from a bank, the system must guarantee that the money is taken from one account and paid into another person's account. Both actions must occur in order for the transaction to have taken place.

"In the case of a transaction failing, it may then be 'backed out' (or 'rolled back'), which will mean that the system reverses all the actions that happened during the partial completion of the transaction.

"A transaction server consists of a system providing the safety described above, and an environment where programs may be written to make use of these features. It will also have various connection protocols to allow it to connect to the databases involved, and to the front end software."

As a supplement to the background information on this patent, VerticalNews correspondents also obtained the inventor's summary information for this patent: "In order to optimize performance, transaction servers often operate as sub-dispatching application servers. That is, they implement their own dispatcher that runs on an operating system thread.

"One form of transaction server is the customer information control system (CICS.RTM.) of IBM.RTM. (CICS and IBM are trade marks of International Business Machines Corporation). Within the z/OS.RTM. operating system a thread is known as a Task Control Block (TCB) (z/OS is abrade mark of International Business Machines Corporation).

"In CICS, a region has one primary thread known as a quasi-reentrant TCB or QR TCB on which most transactions run. Multiple tasks are managed on a QR TCB. The operating system thread is dispatched to one of the actual processors available by the z/OS dispatcher. If multiple OS threads (e.g., TCBs) are used in a process (e.g., address space), then the code running on those TCBs needs to recognize and account for potentially concurrent execution of other code on other TCBs when referencing memory. This is typically referred to as being 'threadsafe.' That is, safe to execute on a thread in its own right in the presence of other threads.

"Transaction servers often use a single thread and sub-dispatch application code on that single thread since this may result in more efficient processing. Therefore, the application code does not have to be concerned with any other thread referencing memory concurrently. This is a programming model known as quasi-reentrant programming, but limits the capacity of each server to a single processor.

"Resources represented by control blocks in the address space that are managed by non-threadsafe code must be accessed serially. That is, by one thread (e.g., in the CICS case, a CICS task) at a time. This serialization may be achieved with the use of explicit locks or implicitly by realizing that only one task is dispatched at a time on the QR TCB.

"In order to support greater workloads by using more processors, a distributed programming model has been created so that an application may be deployed onto multiple transaction server instances. Each user request would be routed to one of potentially many independent server instances, and the application may make calls to services that the system may route on to other server instances. Thus, many more processors, each running an instance of a sub-dispatching application server in its own address space may be utilized.

"The distributed programming model was made to hide most of the semantic impacts of a service being remote from the invoking application (such as distributed program link (DPL), function shipping or transaction routing). Since the sub-dispatching application server instances were in different address spaces, the data passed to and from a service would have to be packaged up and sent over a communications link from one address space to another. This overhead (in terms of processing required to ship requests, and in operations to manage multiple server instances) is the price paid by a simple quasi-reentrant programming model to exploit multiple processors.

"The distributed programming model does not make all the resources available in one address space available to the services running remotely in another. For example, whilst transaction routing makes the commands controlling a terminal directly attached to a terminal owning region available in an application owning region, distributed program link (a form of function shipping) does not pass on any such capability.

"Deploying additional servers to exploit more processors is more management overhead (both in processor resource and human terms) than being able to add a processor to a server that handles true concurrency (and expects its applications to do likewise).

"Transaction servers have more recently provided an option to run threadsafe applications using multiple threads in a single server. This is the CICS 'Open Transaction Environment' (OTE), but this requires that application programs must be made threadsafe.

"According to a first aspect of the present invention there is provided a system including a transaction server configured to: provide multiple sub-dispatched application server threads in a single local process, where each sub-dispatched application server thread is managed by a sub-dispatching component; and link the multiple sub-dispatched application server threads in the single local process using a distributed programming model; and a local memory manager that is scope-aware for managing access by the multiple sub-dispatched application server threads to shared memory content; and a router component for determining if an application request is eligible to execute at a local sub-dispatched application server thread.

"According to a second aspect of the present invention there is provided a method for operating a transaction server with sub-dispatched application server threads comprising: providing multiple sub-dispatched application server threads in a single local process, where the multiple sub-dispatched application server threads carry out their own task dispatching; linking the multiple sub-dispatched application server threads in the single local process using a distributed programming model; managing scope-aware access by the multiple sub-dispatched application server threads to shared memory content; and determining if an application request is eligible to execute at a local sub-dispatched application server thread.

"According to a third aspect of the present invention there is provided a computer program product stored on a computer readable storage medium for operating a transaction server with sub-dispatched application server threads, comprising computer readable program code configured to: provide multiple sub-dispatched application server threads in a single local process, where the multiple sub-dispatched application server threads carry out their own task dispatching; link the multiple sub-dispatched application server threads in the single local process using a distributed programming model; manage scope-aware access by the multiple sub-dispatched application server threads to shared memory content; and determine if an application request is eligible to execute at a local sub-dispatched application server thread."

For additional information on this patent, see: Mitchell, Ian J.. Sub-Dispatching Application Server. U.S. Patent Number 8752052, filed August 3, 2012, and published online on June 10, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8752052.PN.&OS=PN/8752052RS=PN/8752052

Keywords for this news article include: International Business Machines Corporation.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Journal of Engineering


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters