This video belongs to the openHPI course Mainframe - Crucial Role in Modern Enterprise Computing. Do you want to see more?
An error occurred while loading the video player, or it takes a long time to initialize. You can try clearing your browser cache. Please try again later and contact the helpdesk if the problem persists.
Scroll to current position
- 00:00Welcome to this MOOC session. My name is Evelyn Lorz and I
- 00:04am responsible for the openUTM transaction monitor at fujitsu.
- 00:10This session will give you a brief overview on this platform's
- 00:15concepts and functions.
- 00:19Have you ever wondered about the purpose
- 00:23of a transaction monitor like openUTM?
- 00:28The common view is that the main task of a transaction monitor is to
- 00:34assure data consistency and integrity for online transaction processing applications,
- 00:40even in the case of problems like a system crash.
- 00:45That of course is true but there are many more features.
- 00:50Online transaction processing applications are required in banking or
- 00:54for travel booking systems.
- 00:59A transaction monitor will provide a robust run-time environment
- 01:04for such kinds of application.
- 01:07The application programmer will be able to focus on the business logic.
- 01:12Meanwhile the transaction monitor provides
- 01:16the core elements of transaction management and acts like a
- 01:20high level operating system.
- 01:24The transaction monitor optimizes system resources like cpu or memory. It
- 01:31establishes network connection and a great deal more.
- 01:36You may compare this functionality to that of a modern java based application server,
- 01:41but in a classic cobol environment.
- 01:46A very important feature of openUTM is that, it allows multiplex operations,
- 01:54which means the parallel access for up to five hundred thousand users
- 01:59in a transactional mode.
- 02:01Of course openUTM takes care for the access control and the authorization
- 02:07of all these users. OpenUTM coordinates heterogeneous resource managers,
- 02:14like different databases.
- 02:17It provides transaction security by using the 2 phase-commit protocol
- 02:23and providing recovery and restart
- 02:26functions in case of a failure.
- 02:32Why do we call it openUTM?
- 02:35On this slide you'll see the reference model that was defined
- 02:40for distributed transaction processing model by the open group originally X/Open.
- 02:47And it shows how openUTM supports this reference model.
- 02:53X/Open was founded by a group of several european unix manufacturers
- 03:00in order to provide open standards for information technology.
- 03:05Later it merged with the open software foundation to form the open group.
- 03:11The reference model defines basically four kinds of systems
- 03:17and which is more important, a certain set of
- 03:21protocols, standardized protocols to be used for the communication between
- 03:27those systems.
- 03:29There are application programs, resource managers, transaction managers and communication resource
- 03:36managers.
- 03:38A resource manager manages a certain part of a system's shared resources.
- 03:45A typical resource manager is a database management system.
- 03:48OpenUTM provides several internal resource managers, for example
- 03:54for the management of local storage areas
- 03:57that may be used for application specific data.
- 04:01A transaction manager
- 04:04obviously controls transactions.
- 04:09The open group defined the standardized 'XA' interface for the
- 04:14communication between a transaction manager and an external resource manager,
- 04:19like a database system- like oracle.
- 04:23A communication resource manager
- 04:27controls the communication between an application program and
- 04:31its clients or between two application programs.
- 04:36The open group defined the RFC1006 protocol
- 04:40as a standard for client communication.
- 04:44openUTM provides the UPIC protocol which is based on
- 04:48the RFC1006.
- 04:52Another important protocol is the
- 04:56LU6.1. This protocol is used for integrating into
- 05:00IBM environments. OpenUTM is able to interact with the CICS
- 05:07transaction monitor of OpenUTM of
- 05:10IBM using the LU6.1 protocol.
- 05:16Additionally openUTM supports the OSI transaction protocol.
- 05:23On this slide you'll see how openUTMco-ordinates transactions
- 05:29with several databases by using the two-phase commit protocol.
- 05:35Data records stored to a database system are subject to the synchronization and
- 05:40locking mechanisms of the database system and not to that of the transaction monitor.
- 05:46Therefore to ensure global data consistency openUTM has to synchronize
- 05:53the openUTM transaction with the transaction of the respective database
- 05:58systems. You can see the openUTM transactions and the database
- 06:04transactions as sub transactions of one global transaction.
- 06:09The global transaction end can only be reached
- 06:14if each sub transaction has reached the preliminary end of transaction
- 06:21status. In other words in this example where we have two databases,
- 06:26the database a and the database c. The openUTM transaction spends
- 06:32the transactions of both databases.
- 06:37The openUTM transaction can only be closed when both sub
- 06:42transactions have been successfully completed.
- 06:47If only one of this sub transactions will fail, openUTM
- 06:52will have to reset both transactions.
- 06:56This coordination efforts
- 06:59of the transactions do not result in any additional efforts for the application
- 07:05programmer.
- 07:10The application programmer implements the business
- 07:13logic into so called program units.
- 07:19Each program unit provides a certain service to the business process.
- 07:25A program may be implemented in C or C++.
- 07:30Today many of the existing application programs are still implemented in COBOL.
- 07:38On the BS2000, platform we additionally
- 07:42provide a BS2000 assembler for Fortran, Pascal and PL/1.
- 07:50A program unit runs under the control of the openUTM
- 07:54transaction monitor. It communicates with the transaction monitor using
- 07:59a certain set of standardized interfaces.
- 08:03A program unit can directly access a database using SQL statements.
- 08:09The openUTM coordinates the database
- 08:14transactions either using the x/open standardized
- 08:19interface or a BS2000 specific interface- the IUTMDB.
- 08:23This is used for BS2000 databases like
- 08:30Sesam/SQL, UDS or LEASY. The openUTM transaction monitor
- 08:36is available on the fujitsu business server with the operating
- 08:40system BS2000.
- 08:42Unonventional
- 08:45linux distributions on various unix systems first, of all solaris
- 08:50but as well HP-UX or AIX and of course on windows platforms.
- 09:01Let's look at a typical dialogue program unit implemented for openUTM.
- 09:07In the left hand column you'll see the example code of such a program unit.
- 09:13The application programmer will basically use four different types of calls
- 09:18to open OpenUTM. That's the INIT call, the MPUT and the PEND call.
- 09:25When the application program starts, openUTM will perform
- 09:29the XA_open call towards the database.
- 09:36The XA_Open call opens a connection towards the database.
- 09:43For each program unit run the program unit has to register
- 09:48at openUTM using the INIT call. This INIT call will
- 09:55cause openUTM to call the XA_start
- 10:00towards the database,
- 10:02which opens a transaction between the program unit and the database.
- 10:08The MGET call will cause OpenUTM to read a client message and
- 10:13provide it to the program unit.
- 10:17The program unit then starts processing this message. Let's assume its implemented
- 10:24in cobol and works with an oracle database. It will retrieve
- 10:29data from that oracle database, change that data and store them back using ESQL
- 10:36statements. With the MPUT message the program unit defines the message
- 10:43that is to be sent back to the client. OpenUTM will receive that message
- 10:49but put it to a buffer only
- 10:53because there might be other open transactions.
- 10:57With a PEND call the program unit signals to openUTM that
- 11:01the processing is finalized. OpenUTM will then call the XA-end,
- 11:09which disassociates the program unit from the transaction.
- 11:14Then it will call XA-prepare to set the preliminary end of transaction status
- 11:20and with an XA_commit close the complete transaction, but only if
- 11:27the sub transactions have been successful.
- 11:32If the sub transactions failed openUTM will
- 11:38reset all database transactions
- 11:42and perform a rollback of the database
- 11:46and dismiss the original message to the client. Instead it will send
- 11:51a message of failure.
- 11:53If everything was successful, openUTM will send the buffered
- 11:57message to the client.
- 12:01In the short time available here, I could only give you a very
- 12:05brief look on the openUTM features.
- 12:10I think however that this is sufficient to show that openUTM
- 12:15is a powerful tool for online transaction processing.
- 12:19Please remember openUTM is available on BS2000
- 12:24on linux, on unix and on windows. And it allows the implementation of fault-tolerant
- 12:30applications. Thank you.
To enable the transcript, please select a language in the video player settings menu.