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 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 TDMS Run-Time Support 8.5.1 Specifying CPs for Local TDMS Run-Time Support 8.5.2 Defining the Logical Name 8.5.2.1 DCL-Command Method 8.5.2.2 ADU-Clause Method 8.6 Using Request I/O and Stream I/O for Nonstandard Devices 8.6.1 Using Request I/O and the Request Interface 8.6.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