CONTENTS Title Page Copyright Page Information Map Information Table Preface 1 TP and ACMS Concepts 1.1 Transaction Processing Concepts 1.1.1 ACID Transactions 1.1.2 Logical View of a Transaction Processing System 1.1.3 Application Development Life Cycle 1.2 ACMS Application Development Concepts 1.2.1 Writing ACMS Definitions 1.2.2 Composition of ACMS Definitions 1.2.3 ACMS Workspaces 1.3 ACMS Integration with DECforms 1.3.1 DECforms Concepts 1.3.2 ACMS Interaction with DECforms 1.3.3 Distributed Forms Processing 1.4 ACMS Integration with Resource Managers 1.4.1 Rdb/VMS Database Management Concepts 1.4.2 ACMS Interaction with a Resource Manager 1.4.3 Distributed Resource Managers 1.5 ACMS Distributed Transactions 1.5.1 Coordination of Multiple Resource Managers 1.5.2 Coordination of ACMS Task Queues 1.6 Interactive Transaction Handling 1.7 Recovery 1.8 ACMS Run-Time System 1.8.1 Command Process (CP) 1.8.2 Application Execution Controller (EXC) 1.8.3 Procedure Server Process (SP) 2 ACMS Application Design 2.1 Understanding the ACMS Application Development Cycle 2.2 Relating Application Design and Database Design 2.3 Using Software in the Design of ACMS Applications 2.4 Identifying the Steps in the ACMS Application Design Process 3 Creating a Requirements Specification 3.1 Defining the Business Problem 3.2 Analyzing the Work Requirements 3.2.1 Business Areas 3.2.2 Business Functions 3.2.3 Analyzing Business Activities 3.3 Defining Additional Requirements for Business Functions 3.3.1 Defining Run-time Requirements 3.3.2 Defining Implementation Requirements 3.4 Analyzing Data Entities 3.5 Completing the Requirements Analysis 4 Creating a Functional Specification 4.1 Identifying TP Functionality 4.2 Mapping Business Functions to Transactions 4.2.1 Determining the Need for Distributed or Nondistributed Transactions 4.2.2 Determining the Processing Immediacy for Each Business Function 4.2.3 Defining Transactions to Avoid Lock Contention 4.2.4 Identifying Transactions Within Each Business Function 4.2.5 Identifying Transactions in the AVERTZ Application 4.3 Using Distributed Forms Processing 5 Mapping Business Functions and Transactions to ACMS Tasks 5.1 Deciding on the Relationship Between Business Functions and Tasks 5.2 Planning Tasks for an Application 5.2.1 Considering User-Supplied Information When Designing Tasks 5.2.2 Considering Transactions When Designing Tasks 5.2.3 Considering Flow Control When Designing Tasks 5.2.4 Considering Task-Level Work and Procedure-Level Work When Designing Tasks 5.3 ACMS Tasks for the AVERTZ Application 5.3.1 The Reservation Task 5.3.2 The Checkout Task 5.3.3 The Checkin Task 5.3.4 Get Reservation Task 5.3.5 The Complete Checkout Task 6 Designing ACMS Tasks 6.1 Choosing Single-Step or Multiple-Step Tasks 6.2 Controlling Task Flow 6.2.1 Step Sequencing 6.2.2 Conditional Processing 6.2.3 Task-Call-Task Feature 6.2.3.1 Allowing the User to Call a Task 6.2.3.2 Customizing Menus 6.2.3.3 Enhancing Security Checking 6.2.3.4 Creating Common Library Tasks 6.3 Designing Procedure Servers for Step Procedures 6.3.1 Designing Procedure Servers 6.3.1.1 Designing Step Procedures 6.3.1.2 Grouping Step Procedures in a Procedure Server 6.3.1.3 Setting the Number of Server Processes for a Procedure Server 6.3.2 Retaining and Releasing Server Context 6.3.3 Working in a Task or a Step Procedure 6.4 Designing and Using Workspaces 6.4.1 Workspace Size 6.4.2 Workspace Structure 6.4.3 Using Task, Group, or User Workspaces 6.4.4 Declaring and Referring to Workspaces 6.4.5 Specifying Access for Workspaces 6.5 Using Task Queuing 6.6 Designing Distributed Transactions 6.6.1 Locating Transaction Control 6.6.2 Choosing an Access Method to Remote Data 6.6.3 Distributed Transactions in the AVERTZ Application 6.7 Handling Exceptions 7 Designing Server Procedures 7.1 Writing Server Procedures 7.2 Returning Status to the Task Definition 7.3 Returning Messages to Users 7.4 Handling Errors 7.4.1 Avoiding Cancel Procedures 7.5 Performance Considerations 7.6 Performing Terminal I/O from a Procedure Server 8 Designing User Interfaces 8.1 Designing a User Interface 8.2 Choosing a User Interface for ACMS 8.3 Using DECforms 8.3.1 DECforms Structure and Design 8.3.2 Using DECforms with ACMS 8.3.2.1 Design Issues for DECforms and ACMS 8.3.2.2 Deciding the Number of DECforms Forms 8.4 Using TDMS 8.5 Using Request I/O and Stream I/O for Nonstandard Devices 8.5.1 Using Request I/O and the Request Interface 8.5.2 Using Stream I/O 9 Designing Task Group and Application Definitions 9.1 Designing Task Groups 9.1.1 Grouping Common Elements in a Task Group 9.1.2 Determining the Number of Task Groups in an Application 9.1.3 Improving Performance with the Task Group Definition 9.2 Designing Applications 9.2.1 Determining the Number of Applications 9.2.2 Improving Performance with the Application Definition A Requirements Specification Template A.1 Overview A.2 Business Objectives A.2.1 Business Needs A.2.2 Business Goals and Measurements A.3 Solution Requirements A.3.1 Current Business System A.3.2 Proposed Business System A.4 Scope A.4.1 Environment A.4.2 Proposed Implementation A.4.3 Forecast Benefits A.4.4 Quality Requirement A.4.5 General Solution Requirements A.4.6 Project Limitation A.5 Alternative Solutions Rejected B Functional Specification Template B.1 Overview B.2 Solution Detail B.2.1 External Interfaces B.2.2 Transaction Analysis B.2.3 Inputs/Outputs B.3 Environmental Requirements B.4 Quality Requirements B.5 General Requirements B.6 Solution Limitations B.7 Documentation B.8 Training B.9 Definitions B.10 Glossary C Programming Specification Template C.1 Application Development Environment C.2 System Design C.3 Task Design C.4 Server Procedure Design C.5 User Interface Design C.6 Design Review FIGURES 1-1 Restoring a Database After a Failure 1-2 Logical View of a TP System 1-3 Application Development Life Cycle 1-4 Execution Flow of an ACMS Task Definition 1-5 ACMS Application Components 1-6 Panels and Viewports 1-7 DECforms Interaction with ACMS 1-8 Off-Loading Forms Processing to a Submitter Node 1-9 The Relational Database Model 1-10 A Resource Manager Interacting with ACMS 1-11 Coordinating Multiple Resource Managers 1-12 Coordinating Task Queues with Database Updates 1-13 Three Processes of the Run-Time System 4-1 A Single-Site Business with a Single Database 4-2 A Single-Site Business with Multiple Databases 4-3 A Multiple-Site Business with Multiple Central Databases 4-4 A Multiple-Site Business with Multiple-Site Databases 4-5 Determining Data Flow for Business Functions 4-6 Record Locking 5-1 Mapping One Business Function to One Task 5-2 Mapping Multiple Business Functions to One Task 5-3 Mapping Multiple Business Functions to Multiple Tasks 5-4 The Structure of the VR_RESERVE_TASK 5-5 The Structure of the VR_CHECKOUT_TASK 5-6 The Structure of the VR_CHECKIN_TASK 5-7 The Structure of the VR_GETRESEV_TASK 5-8 The Structure of the VR_COMPLETE_CHECKOUT_TASK 6-1 Structure of a Procedure Server 6-2 Effects of Retaining and Releasing Server Context 6-3 Declaring Group Workspaces in the Task Definition 6-4 Declaring Group Workspaces in the Task Group Definition 6-5 Declaring User Workspaces in the Task Definition 6-6 Declaring User Workspaces in the Task Group Definition 6-7 Including a Called Task Within a Procedure in a Distributed Transaction 6-8 Remote Update Using Called Task from Procedure 6-9 Using Rdb/VMS Remote Access for a Distributed Transaction 6-10 Remote Update Using Rdb/VMS Remote Server 8-1 Interfaces to ACMS TABLES 2-1 Steps for Designing an ACMS Application 2-2 Design Documentation for an ACMS Application 3-1 Business Areas in AVERTZ 3-2 Business Areas and Business Functions in AVERTZ 3-3 Business Functions and Activities in AVERTZ Reservation Processing Area 4-1 Business Functions and Sequence of Transactions in the AVERTZ Reservation Processing Area 4-2 Business Functions and their Shared Transactions in AVERTZ Reservation Processing Area 5-1 The Five Tasks of the AVERTZ Application 5-2 Step Procedures Used in AVERTZ Application 6-1 Processing Requirements and Servers 6-2 Workspace Types