top - download
⟦99ae0dc37⟧ Wang Wps File
Length: 53266 (0xd012)
Types: Wang Wps File
Notes: CPS/SDS/003 Message Man.
Names: »1091A «
Derivation
└─⟦b3a67856d⟧ Bits:30006040 8" Wang WCS floppy, CR 0065A
└─ ⟦this⟧ »1091A «
WangText
+…00……00……00……00…(…0a……00……00…(…0b……19…
…18……0c……18… …17……0d……17……07……16……0c……16…
…16……06……15……0b……15……02……15……05……15……06……15……07……14……0d……14……01……14……06……14……07……13……0d……86…1 …02… …02… …02…
…02…CPS/SDS/003
…02…OKH/810801…02……02…
MESSAGE MANAGEMENT SYSTEM
…02……02…CAMPS
T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 GENERAL .......................................
10
1.1 PURPOSE AND SCOPE .........................
10
1.2 APPLICABLE DOCUMENTS AND PROJECT REFERENCES
10
1.2.1 Applicable Documents ..................
10
1.3 TERMS AND ABBREVIATIONS ...................
11
1.3.1 Terms .................................
11
1.3.2 Abbreviations .........................
11
2 SUMMARY OF REQUIREMENTS .......................
12
2.1 PACKAGE DESCRIPTION .......................
12
2.1.1 Package Interrelations ................
12
2.1.1.1 Application Packages ..............
12
2.1.1.2 Checkpoint Transmission ...........
13
2.1.1.3 DMA Data Transfer .................
13
2.2 PACKAGE FUNCTIONS .........................
16
2.2.1 Main Functions ........................
16
2.2.1.1 Storage Structure .................
16
2.2.1.2 CIF Directories ...................
20
2.2.1.3 CIF and View Structure ............
20
2.2.1.3.1 CIFs, Fields, and Views .......
20
2.2.1.3.1.1 Field .....................
20
2.2.1.3.1.2 Field Group ...............
20
2.2.1.3.1.3 CIF .......................
21
2.2.1.3.1.4 View ......................
23
2.2.1.3.2 Creation and Deletion .........
26
2.2.1.3.2.1 CIF Creation and Deletion .
26
2.2.1.3.2.2 View Creation and
Deletion ..................
26
2.2.1.3.2.3 Field Creation and Deletion
27
2.2.1.3.3 Field Access ..................
28
2.2.1.3.4 Disk Space Allocation .........
29
2.2.1.4 CIF Attributes ....................
32
2.2.1.4.1 Permanent CIF .................
32
2.2.1.4.2 Recoverable CIF ...............
32
2.2.1.4.3 Security Profile ..............
34
2.2.1.4.4 Application Control Information
34
2.2.1.4.5 CIF Versions ..................
34
2.2.1.5 CIF Storage and Retrieval .........
35
2.2.1.5.1 Storage .......................
35
2.2.1.5.2 Retrieval .....................
36
2.2.1.6 CIF and View Referencing ..........
39
2.2.1.7 Commands ..........................
39
2.2.2 Functional Responsibilities ...........
41
2.2.2.1 Initialization, Close Down, and
Restart ...........................
41
2.2.2.2 Checkpointing and Recovery ........
42
2.2.2.2.1 Checkpoints ...................
42
2.2.2.2.1.1 SAVE Command ..............
43
2.2.2.2.1.2 Checkpoint Array ..........
44
2.2.2.2.1.3 Recovery Level ............
44
2.2.2.2.2 Recovery Actions ..............
44
2.2.2.3 Error Detection and Error Handling
47
2.2.2.4 Integrity of Operation ............
47
2.2.2.5 Data Collection ...................
47
2.2.2.6 Security ..........................
48
2.2.2.6.1 Security Profile ..............
48
2.2.2.6.2 Purge of Disk and Memory ......
48
2.2.2.6.3 Storage Control ...............
48
2.3 CHARACTERISTICS ...........................
49
2.3.1 Timing ................................
49
2.3.1.1 CPU Usage .........................
49
2.3.2 Throughput ............................
50
2.3.2.1 Storage Capacity ..................
50
2.3.3 Flexibility ...........................
51
2.3.3.1 MMS Design Constraints ............
51
2.3.4 Accuracy ..............................
52
2.3.5 Memory Consumption ....................
52
3 ENVIRONMENT ...................................
53
3.1 EQUIPMENT .................................
53
3.2 SOFTWARE ..................................
53
3.2.1 System Software .......................
53
3.2.2 Development Support Software ..........
53
3.3 INTERFACES ................................
53
3.3.1 External Interfaces ...................
53
3.3.2 Package Interfaces ....................
53
3.4 FUNCTIONS MAINTAINED BY OTHER PACKAGES ....
54
3.4.1 KERNEL ................................
54
3.4.2 FMS ...................................
54
3.4.3 CSF ...................................
54
3.4.4 SSC ...................................
54
4 PACKAGE DESIGN ................................
55
4.1 PACKAGE OVERVIEW...........................
55
4.1.1 Functional Specification ..............
55
4.1.1.1 CIF Handling Functions ............
55
4.1.1.1.1 Short Term Storage Management .
55
4.1.1.1.2 Security Control ..............
55
4.1.1.1.3 CIF Handling Commands .........
56
4.1.1.1.4 CIF I/O Commands ..............
56
4.1.1.1.5 Initialization Functions ......
56
4.1.1.2 Storage and Retrieval Functions ...
56
4.1.1.2.1 Storage Management ............
57
4.1.1.2.2 Directory Management ..........
57
4.1.1.2.3 Command Execution .............
57
4.1.1.2.4 Storage Accounting and
Monitoring ....................
57
4.1.1.3 Checkpoint and Recovery ...........
57
4.1.2 Software Structure ....................
59
4.1.3 Data Flow and Control Logic ...........
61
4.1.3.1 Update Lockout ....................
61
4.1.4 Package Data ..........................
63
4.1.4.1 Command Operations ................
63
4.1.4.2 CIF Control Blocks ................
63
4.1.4.3 View Control Blocks ...............
63
4.1.5 Common Data ...........................
63
4.1.5.1 Command Parameter Record Formats ..
64
4.1.5.1.1 View Attributes Parameter
Record ........................
64
4.1.5.1.2 Field Information Element .....
65
4.1.5.1.3 Field Information .............
66
4.1.5.1.4 Field List Element ............
66
4.1.5.1.5 Field List ....................
67
4.1.5.1.6 CIF ID List Element ...........
67
4.1.5.1.7 CIF ID List ...................
68
4.1.6 Interfaces ............................
68
4.1.6.1 External Interfaces ...............
68
4.1.6.2 Message Management System Package
Interface .........................
68
4.1.6.2.1 CIF Handling Commands .........
72
4.1.6.2.1.1 Create CIF ................
72
4.1.6.2.1.2 Create New CIF Version ....
73
4.1.6.2.1.3 Create View ...............
73
4.1.6.2.1.4 Create Fields .............
74
4.1.6.2.1.5 Get View Attributes .......
75
4.1.6.2.1.6 Change Attributes .........
75
4.1.6.2.1.7 Remove View ...............
76
4.1.6.2.2 CIF I/O Commands ..............
76
4.1.6.2.2.1 Read View .................
76
4.1.6.2.2.2 Write View ................
78
4.1.6.2.3 Storage and Retrieval Commands
79
4.1.6.2.3.1 Store .....................
79
4.1.6.2.3.2 Retrieve ..................
79
4.1.6.2.3.3 Init. Dump ................
80
4.1.6.2.3.4 Dump CIF Sequence .........
80
4.1.6.2.3.5 Terminate Dump ............
81
4.1.6.2.3.6 Clear .....................
81
4.1.6.2.4 Checkpoint and Recovery Command
81
4.1.6.2.4.1 Save ......................
81
4.1.6.2.4.2 Restore ...................
82
4.1.6.2.5 Storage Accounting and
Monitoring Commands ...........
82
4.1.6.2.5.1 Set Thresholds Values .....
82
4.1.6.2.5.2 Get Thresholds Values .....
82
4.1.6.2.5.3 Get Storage Occupancy .....
83
4.2.1 CIF Handling Subpackage ...............
84
4.2.1.1 Functional Specification ..........
84
4.2.1.1.1 Short Term Storage Management .
84
4.2.1.1.1.1 Short Term Storage
Allocation ................
84
4.2.1.1.1.2 CIF Storage Allocation ....
88
4.2.1.1.1.3 Disk Block Purge ..........
88
4.2.1.1.1.4 Storage Accounting and
Monitoring ................
90
4.2.1.1.2 Security Control ..............
90
4.2.1.1.2.1 Security Profiles .........
91
4.2.1.1.2.2 Purge Control .............
92
4.2.1.1.2.3 I/O Security Control ......
93
4.2.1.1.3 CIF Handling Commands .........
93
4.2.1.1.3.1 Create CIF ................
93
4.2.1.1.3.2 Create New CIF Version ....
94
4.2.1.1.3.3 Create View ...............
94
4.2.1.1.3.4 Create Fields .............
95
4.2.1.1.3.5 Get View Attributes .......
95
4.2.1.1.3.7 Remove View ...............
96
4.2.1.1.4 CIF I/O Commands ..............
96
4.2.1.1.4.1 Read View .................
96
4.2.1.1.4.2 Write View ................
97
4.2.1.2 Software Structure ................
98
4.2.1.3 Data Flow and Control Logic .......
98
4.2.1.4 Subpackage Data ...................
98
4.2.1.4.1 CIF Control Block .............
99
4.2.1.4.2 Field Descriptor ..............
100
4.2.1.4.3 Field Group List Elements .....
100
4.2.1.4.4 CIF Block List Element ........
101
4.2.1.4.5 Field Sector Map Element ......
101
4.2.1.4.6 View Control Block ............
102
4.2.1.4.7 Control Block Relations .......
103
4.2.2 CIF Storage and Retrieval Subpackage ..
104
4.2.2.1 Functional Specification ..........
104
4.2.2.1.1 Storage Management ............
112
4.2.2.1.1.1 Packed CIF Representation .
112
4.2.2.1.1.2 Intermediate Storage
Organization ..............
113
4.2.2.1.1.3 Long Term Storage
Organization ..............
114
4.2.2.1.1.4 Pack CIF ..................
121
4.2.2.1.1.5 Unpack CIF ................
121
4.2.2.1.1.6 Remove CIF ................
121
4.2.2.1.1.7 Reorganization ............
121
4.2.2.1.1.8 Initialization and Recovery
122
4.2.2.1.2 Directory Management ..........
122
4.2.2.1.2.1 Online CIF Directory ......
123
4.2.2.1.2.2 Long Term Storage CIF
Directories ................
126
4.2.2.1.2.3 Create Entry ..............
128
4.2.2.1.2.4 Search Entry ..............
128
4.2.2.1.2.5 Update Entry ..............
128
4.2.2.1.2.6 Reorganize Directory ......
128
4.2.2.1.2.7 Initialize OCD ............
128
4.2.2.1.3 Command Execution .............
129
4.2.2.1.3.1 Store .....................
129
4.2.2.1.3.2 Retrieve...................
129
4.2.2.1.3.3 Dump ......................
130
4.2.2.1.3.4 Clear .....................
131
4.2.2.1.3.5 Initialize SAR Functions ..
132
4.2.2.1.3.6 Unload CIF ................
132
4.2.2.1.4 Storage Accounting and
Monitoring ....................
132
4.2.2.1.4.1 Threshold Commands ........
132
4.2.2.1.4.2 Accounting Commands .......
133
4.2.2.2 Software Structure ................
133
4.2.2.3 Data Flow and Control Logic .......
133
4.2.2.4 Subpackage Data ...................
133
4.2.3 Checkpoint and Recovery Subpackage .....
134
4.2.3.1 Functional Specification ..........
134
4.2.3.1.1 Checkpoint Functions ..........
134
4.2.3.1.1.1 Checkpoint ................
134
4.2.3.1.1.2 Checkpoint Array ..........
135
4.2.3.1.1.3 Recovery Level ............
135
4.2.3.1.1.4 Checkpoint Sequence Update
136
4.2.3.1.1.5 Checkpoint Record
Allocation ................
137
4.2.3.1.1.6 Save Command ..............
137
4.2.3.1.2 Recovery Functions ............
138
4.2.3.1.2.1 Restore Command ...........
139
4.2.3.2 Software Structure ................
140
4.2.3.3 Data Flow and Control Logic .......
140
4.2.3.4 Subpackage Data ...................
140
4.3 MEMORY LAYOUT .............................
144
1̲ ̲ ̲G̲E̲N̲E̲R̲A̲L̲
1.1 P̲U̲R̲P̲O̲S̲E̲ ̲A̲N̲D̲ ̲S̲C̲O̲P̲E̲
The package specification for Message Management System
is written to fulfill the following objectives:
a) To provide detailed definition of the package function
and architecture.
b) To provide users with detailed parameter information
for all commands to MMS.
1.2 A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲ ̲A̲N̲D̲ ̲P̲R̲O̲J̲E̲C̲T̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲
1.2.1 A̲p̲p̲l̲i̲c̲a̲b̲l̲e̲ ̲D̲o̲c̲u̲m̲e̲n̲t̲s̲
a) CPS/210/SYS/001
CAMPS System Requirement Specificaction
b) CPS/SDS/001
CAMPS System Design Specification
c) CPS/SDS/002
CAMPS System Functions
1.3 T̲E̲R̲M̲S̲ ̲A̲N̲D̲ ̲A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲
1.3.1 T̲e̲r̲m̲s̲
Retire: A process suspends its own activity by
calling the KERNEL function RETIRE.
Trusted: A KERNEL term.
A trusted process is allowed to decrease
the security level of stored information.
1.3.2 A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲
CBM Checkpoint Array Bit Map
CIF CAMPS Information File
CIF ID CIF Identification
CIFCB CIF Control Block
CSF CAMPS System Functions
DAMOS CR80D Advanced Multiprocessor Operating
System
DCA Disk Checkpoint Array
DCM Disk Cache Manager
DMA Direct Memory Access
FBM Free Block Map
FD Field Descriptor
FGD Field Group Descriptor
FMS File Management System
ID Identification
IOS I/O System
IS Intermediate Storage
LCD Long Term Storage CIF Directory
LTS Long Term Storage
MMON Message Monitor
MMS Message Management System
OCD On-line CIF Directory
PBM Purge Block Map
SCA Standby Checkpoint Array
SCD Short Term Storage CIF Directory
SEL Synchronization Element
STS Short Term Storage
VCB View Control Block
XFER KERNEL Data Transfer Module
2̲ ̲ ̲S̲U̲M̲M̲A̲R̲Y̲ ̲O̲F̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲
2.1 P̲A̲C̲K̲A̲G̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
M̲essage M̲anagement S̲ystem contains facilities for storage
of messages and similar items on disk and manipulation
of these messages and items.
Each item is stored in an entity called CAMPS Information
File. The main difference between a CIF and an ordinary
file is that CIFs are relatively small, and that they
are subject to very intense activity during a relatively
short period after their creation. After that period
they will be stored permanently, and will be subject
to very low activity. MMS will optimize storage of
and access to items according to the activity level.
2.1.1 P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲r̲e̲l̲a̲t̲i̲o̲n̲s̲
2.1.1.1 A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲s̲
MMS executes in a process separate from the application
processes requesting its service. The application processes
shall access MMS via Message Monitor in CSF, cf. reference
3. The process communication is done via s̲ynchronization
e̲l̲ements. On the appplication side the SEL communication
is performed by Message Monitor. On the MMS side the
commands from IOS and MMON are received in the same
SEL by the File Management Process Command Handler.
FMS commands from IOS are then sent to FMS while MMS
commands from MMON are sent to MMS. See figure 2.1.1-1.
CIFs reside on disk volumes which normally contain
a number of files too. The necessary volume handling
is done by commands to FMS. Volume handling and other
System functions are performed by operating system
using the same interface as application packages.
2.1.1.2 C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲ ̲T̲r̲a̲n̲s̲m̲i̲s̲i̲s̲o̲n̲
Checkpoint records to standby PU are transmitted via
a checkpoint transmission process in SSC package. See
figure 2.1.1-1.
2.1.1.3 D̲M̲A̲ ̲D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲f̲e̲r̲
Data transfers between MMS, application processes and
Disk Controller Memory are done by DMA using the KERNEL
XFER module.
Checkpoint data are moved directly to Checkpoint Buffers
which are shared between MMS and Checkpoint Transmission
Process.
See figure 2.1.1-2.
Figure 2.1.1-1
Figure 2.1.1-2
2.2 P̲A̲C̲K̲A̲G̲E̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲
2.2.1 M̲a̲i̲n̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲
2.2.1.1 S̲t̲o̲r̲a̲g̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
MMS will recognize three different types of storage:
a) S̲h̲o̲r̲t̲ ̲T̲e̲r̲m̲ ̲S̲t̲o̲r̲a̲g̲e̲
A "fast access" storage area where a CIF can be
kept during the first part of its lifetime.
CIFs in Short Term Storage may be read, updated
or deleted.
CIFs in Short Term Storage will be organized in
a way facilitating fast access and update to individual
fields. This is done by letting each field start
at a sector boundary. In this way fields may be
expanded and updated without implied reading or
copying of other fields. Cf. Section 2.2.1.3.
When a field is extended, storage space will be
allocated in blocks of several sectors in order
to minimize the number of disk operations required
to read and write the entire field or CIF. Block
size is defined during formatting of MMS areas.
b) L̲o̲n̲g̲ ̲T̲e̲r̲m̲ ̲S̲t̲o̲r̲a̲g̲e̲
CIFs which have completed the initial processing
cycle will be put in Long Term Storage.
CIFs in Long Term Storage may be read or deleted.
Deletion can only take place by deleting a complete
volume.
As the CIFs in long term storage will not be updated,
they will be stored in a packed form taking up
as little space as possible.
Long Term Storage will reside on a number of removable
disk volumes.
c) I̲n̲t̲e̲r̲m̲e̲d̲i̲a̲t̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲
Intermediate Storage is always on-line and serves
as a sort of a spooling area between Short Term
and Long Term Storage.
Short Term Storage and Intermediate Storage will
together be called Online Storage.
A CIF is called p̲e̲r̲m̲a̲n̲e̲n̲t̲ if it is subject to storage
in Long Term Storage. CIFs which are not permanent
will be called t̲e̲m̲p̲o̲r̲a̲r̲y̲.
The possible transfers between storage types are shown
on figure 2.2.1.1-2. The transfer functions have the
following meaning:
d) D̲u̲m̲p̲
Makes a copy of a CIF in a Dump File in Long Term
Storage.
e) R̲e̲t̲r̲i̲e̲v̲e̲
Makes a copy of part of a CIF in Short Term Storage.
f) U̲n̲l̲o̲a̲d̲
Makes a copy of a CIF in Intermediate Storage and
deletes the copy held in Short Term Storage.
STORAGE
TYPE SHORT TERM INTERMEDIATE LONG
TERM
CHARAC-
TERISTICS
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
PERMITTED ACCESS CREATE, DELETE RETRIEVE RETRIEVE
READ, WRITE
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
PERMITTED CIF TEMPORARY PERMANENT PERMANENT
KINDS PERMANENT
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
RESIDENCE PERIOD HOURS DAYS MONTHS
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
ACCESSABILITY ONLINE ONLINE OFFLINE, MOUNTED
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
OVERHEAD OF ACCESS NO EXTRA DISK EXTRA DISK MOUNTING
OF
VO-
ACCESSES RE- ACCESSES MAY LUME PLUS EXTRA
QUIRED BE REQUIRED DISK ACCESSES MAY BE
REQUIRED
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
APPROXIMATE 5 M BYTES 30 M BYTES EACH VOLUME
STORAGE SIZE 45 M BYTES
IN CAMPS
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
FIGURE 2.2.1.1-1…01…STORAGE TYPE CHARACTERISTICS
figure 2.2.1.1-2
2.2.1.2 C̲I̲F̲ ̲D̲i̲r̲e̲c̲t̲o̲r̲i̲e̲s̲
On-line Storage and Long Term Storage will contain
directorie used to retrieve the stored CIFs.
A directory is a table with an entry for each retrievable
CIF in a certain part of the storage. The directory
entry is referenced by CIF ID, cf. section 2.2.1.5,
and contains a reference to stored CIF, enabling MMS
to retrieve the CIF by CIF ID. Only permanent CIFs
can be retrieved, and a CIF can only be retrieved when
MMS has received at least one STORE command for the
CIF, cf. section 2.2.1.5.
2.2.1.3 C̲I̲F̲ ̲a̲n̲d̲ ̲V̲i̲e̲w̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
2.2.1.3.1 C̲I̲F̲s̲,̲ ̲F̲i̲e̲l̲d̲s̲ ̲a̲n̲d̲ ̲V̲i̲e̲w̲s̲
2.2.1.3.1.1 F̲i̲e̲l̲d̲
A f̲i̲e̲l̲d̲ is an unstructured, variable length byte string.
A field must be member of exactly one f̲i̲e̲l̲d̲ g̲r̲o̲u̲p̲.
2.2.1.3.1.2 F̲i̲e̲l̲d̲ ̲G̲r̲o̲u̲p̲
A field group is a set of fields which are considered
to be different incarnations of the same logical field.
The fields within a field group need not have any other
relationship other than being members of the same group.
The number of fields in a group may be dynamically
changed by creation of new fields or deletion of existing
ones.
The fields within a field group are identified by sequential
numbers. The field number is allocated when the field
is created.
A field group must be member of exactly one CIF.
2.2.1.3.1.3 C̲I̲F̲
A CIF is a set of field groups. The number of field
groups is fixed, and defined at CIF creation time.
The field groups within a CIF are identified by sequential
numbers. Fields are identified by the pair of field
group number and field number within the group.
A field group within a CIF is considered existing even
if it is empty.
FIGURE 2.2.1.3-1
2.2.1.3.1.4 V̲i̲e̲w̲
A view is a subset of the fields within a CIF. A view
consists of at most one field from each field group
of the CIF. A view is represented by a list of field
identifications.
A view is said to r̲e̲f̲e̲r̲e̲n̲c̲e̲ a field if the field is
contained in the view. The same field may be referenced
by several views.
A view is said to reference a field group if it references
a field from the group. A view may then reference all
field groups of the CIF or it may reference a subset
of the field groups.
The views associated with one CIF form a tree structure
by a "successor" relation. A successor of a view is
created by the CREATE VIEW function, which must have
an existing view as parameter. This view will be called
the "predecessor" of the created view.
The first view associated with a CIF is automatically
created together with the CIF. It references all the
field groups of the CIF.
A view can only reference a subset of the f̲i̲e̲l̲d̲ ̲g̲r̲o̲u̲p̲s̲
referenced by its predecessor.
One of the aims of the design presented in the following
is that the successor tree of a CIF should as close
as possible show the processing flow of the CIF through
CAMPS.
Figure 2.2.1.3-2 shows the CIF in figure 2.2.1.3-1
with 2 views. View 2 is succession of view 1.
Figure 2.2.1.3-3 shows a successor tree of views for
the CIF in figure 2.2.1.3-1. The views e and i are
views 1 and 2 respectively on figure 2.2.1.3-2. An
x in a field id indicates that the corresponding field
group is not referenced by the view.
FIGURE 2.2.1.3-2
Figure 2.2.1.3-3
2.2.1.3.2 C̲r̲e̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲
The commands referred to in this section are further
described in section 2.2.1.7.
2.2.1.3.2.1 C̲I̲F̲ ̲C̲r̲e̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲
CREATE CIF command creates a new, initially empty,
CIF. Parameters specify attributes, such as security,
permanency and number of field groups. A CIF ID is
returned for permanent CIFs.
Each field group will be created with one field of
initial length zero. A view will be created too. It
consists of the first field in each field group. This
view will be the root of the successor tree for the
CIF.
There is no direct way of deleting a CIF. It ceases
to exist when all its fields have been deleted.
2.2.1.3.2.2 V̲i̲e̲w̲ ̲C̲r̲e̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲
The following description uses fig. 2.2.1.3-3 as example.
The first view of a CIF is automatically created together
with the CIF. It references field no. 1 of each field
group (cf. fig. 2.2.1.3-3, a) and constitutes the root
of the successor tree.
Except from the root view, new views of a CIF are created
by the CREATE VIEW command with the following parameters:
Input: Predecessor
Field Information
The predecessor parameter specifies an existing view,
and "field information" specifies those field groups
which shall be referenced by the new view. The set
of field groups must be a subset of those referenced
by the predecessor view.
For each of the referenced field groups there are two
choices regarding the field to be referenced. It can
either be the corresponding field of the predecessor
view, or it can be a completely new field. In the latter
case the field group is extended with a new field.
Note that the view can only reference existing fields
from its predecessor view. So there is for example
no possibility to create a mixture of two views. Such
a mixture can, however, be obtained by c̲o̲p̲y̲i̲n̲g̲ of fields,
as field contents is not controlled.
The fields of the new view can be defined in "field
information" or can be defined sucessively by calling
the CREATE FIELDS function. It specifies fields of
the predecessor view to be included and field groups
which shall be extended with new fields. For each field
group it can only be defined once if the field shall
be included or created.
As there may be several active branches in the successor
tree, there is not direct connection between the field
number referenced by the predecessor and the number
allocated by CREATE FIELDS. Figure 2.2.1.3-3 shows
how several branches can intermix creation of new fields.
The letters attached to the views indicate the sequence
in which the views are created.
A view is removed by the REMOVE VIEW command. This
command is generated by MMON and cannot be called directly
by an application. The criteria for calling are defined
by MMON.
2.2.1.3.2.3 F̲i̲e̲l̲d̲ ̲C̲r̲e̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲
A field is created as a result of one of the following
commands:
- CREATE CIF creates the first field of each field
group
- CREATE VIEW and CREATE FIELDS can extend one or
more field groups with a new field.
The created fields are initially empty, and it is the
responsibility of the application processes to build
the contents of each field.
A field cannot be directly deleted. It will exist as
long as there is at least one view referencing it.
When the last referencing view is deleted, however,
the field is deleted. In figures 2.2.1.3-1, 2, and
3 the fields 3.2, 4.1, and 4.2 have once existed, but
they have been deleted together with the referencing
views. One must thus imagine that in figure 2.2.1.3-2
some more views have been in existence. They might
for example have been used as intermediate drafts for
the CIF in question.
2.2.1.3.3 F̲i̲e̲l̲d̲ ̲A̲c̲c̲e̲s̲s̲
Fields are manipulated and accessed by application
processes. A field can only be accessed via one of
the views referencing the field.
Similar to FMS, MMS will impose two types of controls
to field access:
- Security Control consists of comparing the security
profiles of the CIF and the requesting process.
- Access Control consists of checking if the requested
process has been granted permission to perform
the requested access.
While FMS uses the User Group concept for Access Control,
MMS relies on MMON for Access Control, except for control
of field access rights associated with views, as described
in the following.
There are two different types of access rights to a
field:
- Read access only allows to read the contents of
the field.
- Update access allows to update the contents of
the field either by changing the current contents
or by appending information to the field.
Each view referencing a field has an attached set of
access rights to the field. It can either have read
access only or it can have both read and update access.
When a field is created the associated view will automatically
get both read and update access to the field. When
a field is included in a view the "field information"
parameter must for each field group specify the access
rights of the view to the field. The access rights
specified must be a subset of the access rights possessed
by the predecessor. Refer to figure 2.2.1.3-4.
When an application process requests an operation to
be performed on a field, e.g. "read field" or "write
field", it must do so via a view referencing the field.
It is then checked that the view references the field
and has the proper access right to it.
Figure 2.2.1.3-4 shows creation of a successor view,
continued from figure 2.2.1.3-2. Field group 2 is excluded
in CREATE VIEW. Field 3.3 is included with specified
access rights AR3'. Field groups 1 and 4 are extended
with fields F1.4 and F 1.4 respectively. Access rights
are automatically set to read a̲n̲d̲ update.
2.2.1.3.4 D̲i̲s̲k̲ ̲S̲p̲a̲c̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲
This section describes the allocation for CIFs in STS.
STS consists of a number of fixed length blocks, each
of which consists of a number of sectors. Disk space
is allocated to a CIF in whole blocks. The sectors
within a block are allocated to the fields of the CIF.
A field has two length variables associated with it.
a) Used Length specifies the number of bytes which
have been written into the field. It may be increased
when new information is added to the field.
b) Allocated Length specifies the number of sectors
allocated to the field.
When performing a Write operation on a field, MMS will
automatically adjust Used Length. This may result in
a need for more disk space, and MMS will then automatically
allocate one or more sectors to the field and adjust
Allocated Length.
In addition to the automatic allocation, it is possible
to preallocate disk space to a field when it is created.
This may increase the probability that the sectors
of the field are placed consecutively on disk and can
thereby be read in a single disk access.
Figure 2.2.1.3-4
2.2.1.4 C̲I̲F̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲
2.2.1.4.1 P̲e̲r̲m̲a̲n̲e̲n̲t̲ ̲C̲I̲F̲
A permanent CIF can be stored in Long Term Storage.
A unique CIF Identification is generated and returned
by CREATE CIF, and an entry is allocated in the On-line
Storage Directory.
A CIF is called temporary if it is not permanent.
For a permanent CIF each field group has an attribute
specifying whether fields in that field group shall
be stored. So a permanent CIF may contain "temporary"
fields.
A permanent CIF will not automatically be transferred
to LTS. Two conditions shall be fulfilled:
a) One or more STORE commands shall be issued for
the CIF
b) A DUMP command shall be issued to transfer the
CIF to a Dump File in LTS.
Cf. section 2.2.1.5.
2.2.1.4.2 R̲e̲c̲o̲v̲e̲r̲a̲b̲l̲e̲ ̲C̲I̲F̲
A recoverable CIF can be checkpointed and recovered,
cf. section 2.2.2. This attribute is independent of
the permanency attribute. See figure 2.2.1.4-1. For
a recoverable CIF, CREATE CIF will allocate an entry
in the checkpoint array.
Figure 2.2.1.4-1
2.2.1.4.3 S̲e̲c̲u̲r̲i̲t̲y̲ ̲P̲r̲o̲f̲i̲l̲e̲
Each CIF has a KERNEL security profile, which is maintained
by MMON.
The use of security profile is described in section
2.2.2.6.
2.2.1.4.4 A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲I̲n̲f̲o̲r̲m̲a̲t̲i̲o̲n̲
This is the Qprofile attached to a CIF. It is not used
by MMS, but delivered to MMON when appropriate.
2.2.1.4.5 C̲I̲F̲ ̲V̲e̲r̲s̲i̲o̲n̲s̲
It is expected that the normal way to handle different
versions of the same CIF will be to have a number of
different views with separate incarnations of some
or all field groups.
In a few cases it would, however, be appropriate to
define a completely new CIF as the new version, namely
if separate versions will be stored as completely independent
entities and at different points in time.
For this purpose the CIF ID will contain a version
indicator. CREATE CIF will generate version number
1. A command CREATE NEW CIF VERSION will create the
next version of a given CIF. The parameters are:
Input: View (of current version)
Output: View (of new version)
Attributes for the new version
The version delivered as input parameter must be the
latest version. The attributes will be inherited from
the old to the new version.
A CIF ID will thus consist of:
a) A 32 bits CIF REFERENCE NUMBER
b) An 8 bits VERSION INDICATOR
2.2.1.5 C̲I̲F̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲
As seen from the applications, views are the entities
which are subject to storage and retrieval.
To s̲t̲o̲r̲e̲ a view means to retain it in the system in
such a way that it can later on be made available.
Stored views are eventually dumped to Long Term Storage.
All the stored views of the same CIF are kept together.
To r̲e̲t̲r̲i̲e̲v̲e̲ a view means to generate a t̲e̲m̲p̲o̲r̲a̲r̲y̲ CIF
containing a copy of the view. The generated CIF will
reside in Short Term Storage.
To d̲u̲m̲p̲ a view means to transfer it to some dump file
in Long Term Storage.
Refer to figure 2.2.1.1-2 for the transfer involved.
2.2.1.5.1 S̲t̲o̲r̲a̲g̲e̲
By definition a view is stored when it is copied from
Short Term Storage to Intermediate Storage.
For the purpose of storage, the field groups of the
view are divided into permanent field groups and temporary
field groups. For a temporary CIF, all field groups
are temporary.
Fields belonging to a temporary field group cannot
be stored. A field belonging to a permanent field can
be stored, but only if a STORE request is issued for
a view referencing the field.
Storage of a view may be requested by call of the STORE
command with the following parameters.
Input: View
Output: CIF Identification
View identification
Each view of a CIF has a unique identification which
is returned by STORE. It may later on be used as input
to RETRIEVE. STORE will be refused if the CIF is temporary.
STORE will not cause an immediate transfer to Long
Term Storage. The view is, however, marked as candidate
for storage, and the so marked views of a CIF will
eventually be u̲n̲l̲o̲a̲d̲e̲d̲ to Intermediate Storage. Unload
will take place when all views of the CIF have been
removed, although some may be retained for storage
or checkpoint purposes.
Unload of a CIF consists of the following steps:
- Collect those views for which one or more STORE
requests have been issued.
- Collect the permanent fields of the collected views.
- Copy the collected views and fields to Intermediate
Storage. Access rights of views are not stored.
- Update the On-line CIF Directory entry allocated
for the CIF.
2.2.1.5.2 R̲e̲t̲r̲i̲e̲v̲a̲l̲
By retrieval is meant the activity of locating a view,
referenced by CIF ID, View ID and making the view accessible
in Short Term Storage.
Retrieval is done by the RETRIEVE command with the
following parameters:
Input: Context Specifications
CIF ID
View ID
Output: View Ref.
The Context Specification defines to MMS the directory
which shall be searched for CIF ID. It can be the On-line
Directory or some Long Term Storage Directory.
The view id must have been obtained from a previous
STORE request.
The retrieved view will automatically be furnished
with read and write access right to all its fields,
and the retrieved CIF will automatically be temporary.
figure 2.2.1.5-1
FIGURE 2.2.1.5-2
Figure 2.2.1.5-3
2.2.1.6 C̲I̲F̲ ̲a̲n̲d̲ ̲V̲i̲e̲w̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲i̲n̲g̲
Except for Storage and Retrieval functions, a CIF can
only be accessed when it resides in Short Term Storage.
A CIF in Short Term Storage can only be referenced
via one of its views.
A view is referenced by a View Reference, which is
an integer. The View Reference is different from the
View ID used for storage and retrieval purposes.
The CIF ID used for storage and retrieval consists
of a 32 bit CIF REFERENCE NUMBER and an 8 bits VERSION
INDICATOR. A new CIF REF NUMBER is generated each time
a new CIF is created by the CREATE CIF command.
2.2.1.7 C̲o̲m̲m̲a̲n̲d̲s̲
C̲R̲E̲A̲T̲E̲ ̲C̲I̲F̲
Creates a new CIF with specified attributes, cf. section
2.2.1.4. If the CIF is permanent, a new CIF REFERENCE
NUMBER is generated and VERSION INDICATOR is set to
one.
C̲R̲E̲A̲T̲E̲ ̲N̲E̲W̲ ̲C̲I̲F̲ ̲V̲E̲R̲S̲I̲O̲N̲
Creates a new CIF with attributes equal to those of
current version, except for VERSION INDICATOR which
is incremented.
C̲R̲E̲A̲T̲E̲ ̲V̲I̲E̲W̲
Creates a new view of the referenced CIF. Can also
specify some or all of the fields, thus marking call
of CREATE FIELDS superflous.
C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲S̲
Specifies the fields for a previously created view.
Can also specify preallocation of disk space.
G̲E̲T̲ ̲V̲I̲E̲W̲ ̲A̲T̲T̲R̲I̲B̲U̲T̲E̲S̲
Returns to caller the attributes of the view. They
are the CIF attributes together with information about
the fields referenced by the view.
C̲H̲A̲N̲G̲E̲ ̲V̲I̲E̲W̲ ̲A̲T̲T̲R̲I̲B̲U̲T̲E̲S̲
Changes attributes of referenced view and CIF.
R̲E̲M̲O̲V̲E̲ ̲V̲I̲E̲W̲
Deletes a view. If the view shall be stored it is,
however, only logically deleted.
If the view shall be checkpointed, the request is rejected
as recoverable views must be removed with the SAVE
command.
Physical deletion of a view may cause deletion of referenced
fields.
R̲E̲A̲D̲ ̲V̲I̲E̲W̲
Reads specified parts of the fields referenced by the
view and transfers the data to a buffer in calling
application.
W̲R̲I̲T̲E̲ ̲V̲I̲E̲W̲
Writes data from a buffer in calling application into
specified parts of the fields referenced by the specified
view.
S̲T̲O̲R̲E̲
Requests that the permanent fields of specified view
are stored.
R̲E̲T̲R̲I̲E̲V̲E̲
Requests a previously stored view to be retrieved and
copied into Short Term Storage.
D̲U̲M̲P̲
A set of commands requesting a number of CIFs specified
by CIF ID to be copied from On-line Storage to Long
Term Storage. The CIFs are still retained in On-line
Storage.
C̲L̲E̲A̲R̲
Requests a specified set of CIFs to be removed from
Intermediate Storage. The CIFs are specified by Store
Time, which is the time of the latest Store command
for the CIF.
S̲E̲T̲ ̲T̲H̲R̲E̲S̲H̲O̲L̲D̲ ̲V̲A̲L̲U̲E̲S̲
Specifies threshold values for Short Term Storage and
Intermediate Storage.
G̲E̲T̲ ̲W̲A̲R̲N̲I̲N̲G̲
Requests that the response is returned when a threshold
value is exceeded.
G̲E̲T̲ ̲S̲T̲O̲R̲A̲G̲E̲ ̲O̲C̲C̲U̲P̲A̲N̲C̲Y̲
Returns the amount of free disk space in On-line Storage.
C̲H̲E̲C̲K̲P̲O̲I̲N̲T̲-̲R̲E̲C̲O̲V̲E̲R̲Y̲
See Section 2.2.2.2.
2.2.2 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲R̲e̲s̲p̲o̲n̲s̲i̲b̲i̲l̲i̲t̲i̲e̲s̲
2.2.2.1 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲,̲ ̲C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲,̲ ̲a̲n̲d̲ ̲R̲e̲s̲t̲a̲r̲t̲
a) D̲e̲a̲d̲ ̲o̲r̲ ̲C̲o̲l̲d̲ ̲S̲t̲a̲r̲t̲
MMS shall initialize Short Term Storage and Intermediate
Storage to the empty state, based on system generation
parameters. Short Term Storage shall be purged.
b) W̲a̲r̲m̲ ̲S̲t̲a̲r̲t̲
MMS shall restore the state of On-line CIF Directory
and Intermediate Storage previous to the stop.
If any activity was in progress in MMS, which temporarily
made the storage inconsistent, this activity shall
be terminated in a way that restores a consistent
state.
CIFs in Short Term Storage shall be recovered as
described in section 2.2.2.2.
2.2.2.2 C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲i̲n̲g̲ ̲a̲n̲d̲ ̲R̲e̲c̲o̲v̲e̲r̲y̲
2.2.2.2.1 C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲s̲
Checkpoints are generated for individual CIFs. There
is no relation between checkpoints for two different
CIFs. Only CIFs in Short Term Storage are checkpointed.
A checkpoint for a CIF is a collection of information
fulfilling the following objectives:
a) It shall make it possible to restore all information
about the CIF, its fields and views, which is not
disk resident. This includes disk addressing information
for the CIF fields.
b) It shall contain an "application process data"
section where Message Monitor data about queues
etc. shall be kept.
A checkpoint will not contain data of the CIF, as all
data reside in fields on disk.
The recovery model for MMS is based on the following
assumptions:
1) The processing flow for a CIF consists of a well
defined set of successive steps, where output from
one step serves as input for one or more succeeding
steps.
2) It is possible to record in a checkpoint the CIF
state resulting from a step in such a way that
the CIF may after a system failure be "rolled back"
to the beginning of latest step initiated before
the failure.
A sufficient but not necessary condition for this to
be true is:
3) A processing step will only modify a CIF by appending
to one or more of its fields. In that case the
state prior to the beginning of the step may be
restored by simply resetting field lengths to their
values at the beginning of the step.
A relaxed condition is that updates of any field does
not overwrite any information which is used as input
to a processing step after the checkpoint which the
CIF can be rolled back to.
It is the responsibility of application module designers
to identify processing steps and to request MMS checkpointing
of appropriate CIFs at appropriate points in processing
flow.
A checkpoint is requested by a Message Monitor call.
2.2.2.2.1.1 S̲A̲V̲E̲ ̲C̲o̲m̲m̲a̲n̲d̲
Generation of a checkpoint is requested by a SAVE command
from MMON to MMS with the following parameters:
a) A list of views of the same CIF. Those views shall
be included in the checkpoint. The list may be
empty.
b) An application process data block which shall be
included in the checkpoint.
c) A list of views which shall be removed after generation
of the checkpoint. The list may be empty.
d) Recovery level, explained in 2.2.2.2.1.3.
2.2.2.2.1.2 C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲ ̲A̲r̲r̲a̲y̲
Checkpoints are recorded as elements of a checkpoint
array.
When a recoverable CIF is created, an entry is allocated
in this array. Subsequent checkpoints for the CIF are
recorded in the entry, each overwriting the previous
one.
The entry in checkpoint array is deallocated when a
SAVE command is issued with an empty list of views.
2.2.2.2.1.3 R̲e̲c̲o̲v̲e̲r̲y̲ ̲L̲e̲v̲e̲l̲
There are two recovery levels, and a checkpoint array
at each level.
Level zero has a checkpoint array on disk.
Level one has a checkpoint array in standby PU.
The recovery level in the SAVE command specifies where
the checkpoint shall be recorded. If level is zero,
the checkpoint is recorded in both arrays. If level
is one, the checkpoint is recorded only in standby
array.
2.2.2.2.2 R̲e̲c̲o̲v̲e̲r̲y̲ ̲A̲c̲t̲i̲o̲n̲s̲
Recovery action consists of restoring all checkpointed
CIFs in Short Term Storage to the state of the latest
checkpoint, and to delete all other information from
Short Term Storage.
Recovery is performed after MMS initialization when
Message Monitor issues a sequence of RESTORE commands,
having first specified the recovery level.
Each RESTORE command gives rise to the following actions:
a) Read next used entry in appropriate Checkpoint
Array.
b) Restore the attribute and addressing information
for the CIF.
c) Reserve the disk blocks in Short Term Storage occupied
by the CIF.
d) Return the application process data block to Message
Monitor.
When the complete checkpoint array has been restored,
the Short Term Storage disk blocks which have not been
reserved in c) above shall be purged.
The checkpoint arrays for level zero and one are not
affected by the recovery actions.
Figures 2.2.2.2-1 and 2 illustrate the recovery actions.
Figure 2.2.2.2-1 and 2
2.2.2.3 E̲r̲r̲o̲r̲ ̲D̲e̲t̲e̲c̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
Parameters which are supplied by application processes
shall be checked by both MMS and MMON. Parameters which
shall be checked especially by MMS are:
- Field information
- View Access Rights to fields
Errors are signalled by a completion code in response
returned to MMON. The completion code consists of:
- Error classification
- Error code
Error classification has two possible values:
- Serious parameter error
- Nonserious error
Error code defines the error. Serious errors are expected
to result in a retire of the application process by
MMON.
2.2.2.4 I̲n̲t̲e̲g̲r̲i̲t̲y̲ ̲o̲f̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
Data in On-Line Storage, On-Line CIF Directories and
Level zero Checkpoint Array shall be recorded on dualized
disk equipment.
2.2.2.5 D̲a̲t̲a̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲
No special responsibilities.
2.2.2.6 S̲e̲c̲u̲r̲i̲t̲y̲
2.2.2.6.1 S̲e̲c̲u̲r̲i̲t̲y̲ ̲P̲r̲o̲f̲i̲l̲e̲
MMS shall for each CIF maintain a security profile
with 3 compartments:
- Security Classification
- ATOMAL Designator
- ENCRYPTED Designator
For compability with FMS a security check shall be
performed on each read and write operation to a CIF.
This shall ensure that the normal DAMOS security policy
is followed.
The security profile can be changed by the CHANGE ATTRIBUTES
command.
Only a trusted process can reduce the profile.
2.2.2.6.2 P̲u̲r̲g̲e̲ ̲o̲f̲ ̲D̲i̲s̲k̲ ̲a̲n̲d̲ ̲M̲e̲m̲o̲r̲y̲
A Purge Profile defined at system generation is used
to control purge of memory buffers and disk blocks.
Deallocated memory buffers and disk blocks shall be
purged if they have been used for certain types of
information.
2.2.2.6.3 S̲t̲o̲r̲a̲g̲e̲ ̲C̲o̲n̲t̲r̲o̲l̲
A Store Profile is defined at System Generation Time.
STORE requests will only be accepted for CIFs having
a security profile lower than or equal to the Store
Profile.
2.3 C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲
The timing and throughput requirements are based on
the assumption that 95 per cent of all CIFs can be
stored in Short Term Storage with all addressing information
kept in memory.
2.3.1 T̲i̲m̲i̲n̲g̲
The total time used to perform a function is composed
of two parts:
- The CPU time used by MMS, FMS and Disk Handler.
- The time used by the disk system to perform the
physical transfer.
The CPU time includes time for process communication,
DMA transfers and interrupt handling.
Section 2.3.1.1 shows the CPU time used by the major
MMS functions. The total time used to perform a request
can then be calculated by adding the disk transfer
time and the time used by MMON.
2.3.1.1 C̲P̲U̲ ̲U̲s̲a̲g̲e̲
CREATE CIF 6 msec
CREATE VIEW 6 -
READ VIEW 10 -
WRITE VIEW 10 -
SAVE 10 -
STORE 3 - (10 msec for
first storage
of a CIF).
2.3.2 T̲h̲r̲o̲u̲g̲h̲p̲u̲t̲
MMS can perform 25 READ VIEW, WRITE VIEW, or RESTORE
commands in a busy second.
2.3.2.1 S̲t̲o̲r̲a̲g̲e̲ ̲C̲a̲p̲a̲c̲i̲t̲y̲
The storage capacity of Short Term Storage is limited
by the need to keep addressing information in memory.
For the purpose of the following calculations a number
of assumptions are stated:
a) An active CIF is a CIF which is in use at the moment,
either by residing in a queue or by being subject
to read and write operations. Examples are incoming
messages and messages which are at the moment subject
to editing.
An inactive CIF is a CIF which is kept in Short
Term Storage in its initial phase, and can be edited
some time in the future.
It is assumed that addressing information for active
CIFs is kept in memory, and for inactive CIFs it is
kept on disk. When a CIF becomes active, its addressing
information is transferred to memory.
The criteria for CIF state transitions between active
and inactive are a detailed design issue.
The average resource requirements for CIFs are assumed
to be:
ACTIVE CIF INACTIVE CIF
Views 3 1
Field Groups 8 5
Fields 12 5
The MMS Short Term Storage Allocation is then:
Active CIFs: 100
Inactive CIFs: 600
The number of active CIFs corresponds to two minutes
of busy traffic plus 40 items which are under editing.
The disk space needed for storage is shown on figure
2.2.1.1-1.
2.3.3 F̲l̲e̲x̲i̲b̲i̲l̲i̲t̲y̲
The storage allocation defined in 2.3.2 can be increased
to:
Active CIFs: 150
Inactive CIFs: 1000
2.3.3.1 M̲M̲S̲ ̲D̲e̲s̲i̲g̲n̲ ̲C̲o̲n̲s̲t̲r̲a̲i̲n̲t̲s̲
The flexibility of MMS is limited by the following
design constraints:
a) Maximum size of a Disk block: 4096 bytes
b) Maximum number of Disk blocks in a CIF: 255
c) Maximum number of Disk Blocks in
Short Term Storage 64 K
d) Maximum length of one field: 32 K
bytes
e) Maximum number of field groups
in a CIF: 16
f) Maximum number of fields in a field
group 63
g) Maximum number of views referencing
a CIF 128
2.3.4 A̲c̲c̲u̲r̲a̲c̲y̲
Not applicable.
2.3.5 M̲e̲m̲o̲r̲y̲ ̲C̲o̲n̲s̲u̲m̲p̲t̲i̲o̲n̲
The memory requirements for control structures are
estimated as follows:
One CIFCB per CIF 14 words
One VCB per View 12 words
One FGD per Field Group 2 words
One FD per Field 6 words
Using the estimates of section 2.3.2.1, the following
consumption figures are calculated:
a) Fixed Amount
Working variables 1500 words
Checkpoint buffer 1000 words
b) Variable Amount
100 CIFCBs 1400 words
300 VCBs 3600 words
800 FGDs 1600 words
1200 FDs 7200 words
c) Total Memory Consumption
Program 5000 words
Data 16300 words
3̲ ̲ ̲E̲N̲V̲I̲R̲O̲N̲M̲E̲N̲T̲
3.1 E̲Q̲U̲I̲P̲M̲E̲N̲T̲
MMS executes in one PU with at least one CPU.
MMS cannot utilize more than one CPU concurrently.
Short Term and Intermediate storage are residing on
the same disk, which shall be dualized due to integrity
of operation.
Long Term Storage resides on a number of removable
disks.
3.2 S̲O̲F̲T̲W̲A̲R̲E̲
3.2.1 S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
MMS uses the KERNEL and the FMS software packages.
3.2.2 D̲e̲v̲e̲l̲o̲p̲m̲e̲n̲t̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
The software used for development of this package is
contained in Support Software Package.
3.3 I̲N̲T̲E̲R̲F̲A̲C̲E̲S̲
3.3.1 E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Not applicable.
3.3.2 P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Not applicable.
3.4 F̲U̲N̲C̲T̲I̲O̲N̲S̲ ̲M̲A̲I̲N̲T̲A̲I̲N̲E̲D̲ ̲B̲Y̲ ̲O̲T̲H̲E̲R̲ ̲P̲A̲C̲K̲A̲G̲E̲S̲
3.4.1 K̲E̲R̲N̲E̲L̲
MMS relies on the protection and process communication
facilities supplied by KERNEL.
3.4.2 F̲M̲S̲
MMS uses FMS facilities for interface to application
processes and disk.
3.4.3 C̲S̲F̲
Message Monitor performs the following tasks connected
to CIF handling:
- Security and Access Control
- Address Parameter Check
- Checkpoint Information Collection
- Recovery Assistance
3.4.4 S̲S̲C̲
SSC transmits chekcpoint records to standby PU.