Introducing Oracle Tuxedo ATMI

     Previous  Next    Open TOC in new window  Open Index in new window  View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Oracle Tuxedo System Fundamentals

The following sections provide an overview of the Oracle Tuxedo programming environment:


What Is the Oracle Tuxedo System?

The Oracle Tuxedo system is a middleware product that distributes applications across multiple platforms, databases, and operating systems using message-based communications and, if desired, distributed transaction processing.

Middleware is used with client/server applications to distribute processing among multiple servers, manage distributed transactions, and integrate multiple database platforms. Middleware systems are sometimes known as online transaction processing (OLTP) systems.

The Oracle Tuxedo system is a mature product based on over 20 years of development from a diverse group of technology companies including AT&T, UNIX System Laboratories (USL), Novell, BEA Systems and Oracle. It is both a development platform and an execution platform. The Oracle Tuxedo system serves as an extension to the operating system.

The Oracle Tuxedo system provides the following:

Architectural Features

The Oracle Tuxedo system offers many features to accommodate the architectural aspects of an ATMI application:

Administrative Features

The Oracle Tuxedo system offers many features to accommodate the administrative aspects of an ATMI application:

Programming Features

The Oracle Tuxedo system offers many features to accommodate the programming aspects of an ATMI application:


Anatomy of the Client/Server Model

In client/server architecture, clients—programs that represent users who need services—and servers—programs that provide services—are separate logical objects that communicate over a network to perform tasks together. A client makes a request for a service and receives a reply to that request. A server receives and processes a request, and sends back the required response.

Characteristics of Client/Server Architecture

The client/server architecture has the following characteristics:

Differences Between 2-Tier and 3-Tier Client/Server Architectures

Every client/server application contains three functional units:

These functional units can be part of the client program or part of the one or more server programs in your application. Which of the many possible variations you choose depends on how you split the application and which middleware you use to communicate between the tiers, as illustrated in the following figure.

Figure 1-1 2-Tier and 3-Tier Client/Server Models

2-Tier and 3-Tier Client/Server Models

In 2-tier client/server applications, the business logic is buried inside the user interface on the client or within the database on the server in the form of stored procedures. Alternatively, the business logic can be divided between the client and server. File servers and database servers with stored procedures are examples of 2-tier architecture.

In 3-tier client/server applications, the business logic resides in the middle tier, separate from the data and user interface. In this way, processes can be managed and deployed separately from the user interface and the database. Also, 3-tier systems can integrate data from multiple sources.

Client/Server Variations to Suit Your Needs

Client/server architecture can accommodate the needs of each of the following situations:


How the Oracle Tuxedo System Fits into the Client/Server Model

The Oracle Tuxedo system fits into the middle of the client/server model. In a Oracle Tuxedo application, clients log in and request services offered by an application. The Oracle Tuxedo system offers these services through a transparent bulletin board. The bulletin board provides a global directory advertising service.

For example, in the following sample banking application, the bulletin board advertises deposit, withdrawal, and inquiry services. The Oracle Tuxedo system then finds a server at the appropriate branch or district office that can provide the requested services.

Figure 1-2 Clients and Servers in a Sample Banking Application

Clients and Servers in a Sample Banking Application

The sample banking application shows the primary building blocks of a Oracle Tuxedo application:

In the sample Oracle Tuxedo banking application, clients (cash machines and tellers) make requests, and servers (at branch and district offices) provide services and responses. For example, a customer may use a cash machine to find out how much money is available in his personal checking account. The cash machine (a client) calls the server to get the balance. The server receives the request, retrieves the balance, and sends the information to the cash machine.


What Is a Oracle Tuxedo Client?

A client is a program that collects a request from a user and passes that request to a server capable of fulfilling it. It can reside on a PC or workstation as part of the front end of an application. It can also be embedded in software that reads a communication device such as an ATM machine from which data is collected and formatted before being processed by Oracle Tuxedo servers.

To be a client, a program must be able to invoke the Oracle Tuxedo libraries of functions and procedures known collectively as the Application-to-Transaction-Monitor Interface, or ATMI. The ATMI is supported in several language bindings.

A client joins a Tuxedo application by calling the ATMI client initialization routine. Once it has joined an application, a client can define transaction boundaries and call ATMI functions that enable it to communicate with other programs in the application. The client leaves the application by issuing an ATMI termination function. By joining an application only when necessary and leaving it once the appropriate task is complete, a client frees Oracle Tuxedo system resources for use by other clients and servers.

When building a distributed application, you must determine how information is gathered and presented to your business for processing. You have complete control over where and when to call ATMI functions, depending upon your business logic and rules. Your program can join one Oracle Tuxedo application, perform some tasks and leave, and then join a different Oracle Tuxedo application to perform another task. If you are using a multicontexted application, your client can perform tasks in more than one application without leaving any of them.


What Is a Oracle Tuxedo Server?

A Oracle Tuxedo server is a process that oversees a set of services, dispatching them automatically for clients that request them. A service, in turn, is a function within a server program that performs a particular task needed by a business. A bank, for example, might have one service that accepts deposits and another that reports account balances. A server at this bank might receive requests from clients for both services. The server is responsible for dispatching each request to the appropriate service.

Service functions implement business logic through calls to database interfaces such as SQL and, possibly, calls to the ATMI to access additional services, queues, and other resources. The servers on which these services reside then reply to the clients or send the client requests to a new service.


Application Processing Services Provided by the Oracle Tuxedo System

The Oracle Tuxedo system provides services that enable application developers to implement the following functionality in their applications:

For descriptions of the Tuxedo application processing services, see Oracle Tuxedo ATMI Architecture.


Administrative Services Provided by the Oracle Tuxedo System

The Oracle Tuxedo system provides services that enable application administrators to perform the following administrative tasks:

For descriptions of the Tuxedo system administration processes that provide the administrative services, see Oracle Tuxedo System Administration and Server Processes and Oracle Tuxedo Management Tools. For detailed instructions on using the administrative services, see Setting Up an Oracle Tuxedo Applicationand Administering an Oracle Tuxedo Application at Run Time.

  Back to Top       Previous  Next