1、INTERNATIONAL STANDARD ISOIIEC 15851 First edition 1999-03-01 Information technology - Communication protocol - Open MUMPS Interconnect Technologies de /information - Protocole de communication - lnterconnexion de syst the additional text is for information only: - environment: 7.1.2.4 identifies a
2、specific set of all possible names - a name space. A particular name may appear only once in an environment. Typical implementations place an environment in a directory or a user class, and - with a network - on a node as well. - gv 7.1.2.4 Global variables are persistent data records organized into
3、 trees. CJJJ is the name of a global variable, for example: “INV(5321 ,“Denver”,“qu”) A global variable may optionally have a value, and it may optionally have descendants. A tree of global variables is informally called a “global.” - naked reference: 7.1.2.4 a shorthand form of gv referring to the
4、last-used gv. - nref: 8.2.12 The objects of database lock operations are organized into trees. Their names are similar to qvns, but they relate to gvs only by an applications convention. nrefs have no values. - $Data: 7.1.5.3 Function of a gv indicates whether the variable it names has a value and w
5、hether it has descendants. - $Get: 7.1.5.7 Function of a gv returns the value of the variable it names, or the empty string if the variable is not defined. - $Job: 7.1.4.10 An unsigned decimal integer uniquely identifies a process on a particular computer. 2 0 ISO/IEC ISOAEC 15851:1999(E) - Kill: 8.
6、2.11 deletes a global variable and its descendants. - Lock+: 8.2.12 claims exclusive use of an nref or a list of nrefs. If the claim succeeds, other concurrent processes claims on those nrefs will not succeed. - Lock-: 8.2.12 releases a claim on an nref or a list of nrefs. - Merge: 8.2.13 assigns th
7、e value of one variable to another and then assigns the values of all the first variables descendants to corresponding descendants of the second variable. - $Order: 7.1511 Function of a gvt returns the final subscript of the next qvn in a defined tree-walking order. - $Query: 7.1.5.15 Function of a
8、gv returns the next gv in a defined tree-walking order. - Set: 8.2.18 creates a global variable and assigns it a value. - Set $Extracf: 8.2.18 creates a global variable and modifies its value by assigning a range of its character positions. - Set $Piece: 8.2.18 creates a global variable and modifies
9、 its value by assigning one or more of its pieces. B.6 (of this International Standard, not Xl 1 .l) suggests how implementations may combine these basic operations to achieve more complex MUMPS operations. 4.2 OMI and the OSI network model OMI provides the services described by levels 5 and 6 of th
10、e Open Systems Interconnect model. Level 5, the session layer, involves creating and terminating communication sessions between cooperating systems, while Level 6, the presentation layer, deals with data formats. These OMI services make the network transparent to applications (OSI level 7) for their
11、 remote database operations. In turn, OMI relies on the virtual circuits of an existing OSI level 4 service to provide reliable sequential transmission of messages. Successful communication with OMI depends on hardware and software to establish compatible protocols at level 4 and below, which are be
12、yond the scope of this International Standard. 4.3 Client-server protocol OMI is a connection-oriented protocol based on the client-server model. An OMI node may offer client functions, server functions, or both, as its applications require and its implementer chooses. 4.3.1 Sessions OMI uses one ci
13、rcuit to establish a session between exactly two OMI nodes. However, implementers may supply servers that support many sessions, to give several client nodes access to the server nodes database. Implementers may also permit more than one session on a client node, so that different client processes m
14、ay refer to data on several server nodes. However, a particular client shall connect to a particular server through only one session at a time, because duplicate paths between a client and a server could cause transactions to be processed out of sequence. Initiation and termination of sessions shall
15、 be invisible to application programs. The implementation shall establish and terminate sessions as necessary to perform OMI operations. A session is not symmetric. Requests from one client node are satisfied at the other server node. Another session is needed to handle requests in the opposite dire
16、ction. 4.3.2 The role of the agent OMI allows, but does not require, an agent process that multiplexes requests from any number of clients on one node in a single session. Thus several clients may share one connection to a server, and all OMI servers shall accept multiplexed requests. NOTE - Althoug
17、h agents are an important conceptual part of this International Standard, their existence does not affect the form, content, or sequence of messages. A simple implementation could provide one client per session, and you may read “client” wherever “agent” appears. This International Standard describe
18、s the agent as a separate process, but an implementation may provide its functions by any method. lSO/lEC 15851:1999(E) o ISO/IEC The agent is synchronous. A session supports only one transaction at a time. The agent shall send one request and then no more until the servers response arrives or the c
19、ircuit fails. 4.3.3 Transactions An agent shall originate each transaction with exactly one request message. The server shall attempt the requested operation and shall reply with exactly one response message, which may indicate failure to perform the operation. NOTE - In anticipation of future versi
20、ons of the protocol, which may permit many requests and responses in a transaction, messages include sequence numbers and request identifiers. Only the agent shall initiate a transaction. If the server has something to tell the agent, for example “shutting down,” the server shall indicate in its nex
21、t response message that the agent should request the servers status. Transactions are isolated. The server need not retain information about completed transactions. Nonetheless, both server and agent shall retain the parameters of the session including, for example, agents and servers names, and neg
22、otiated maximum lengths of gvs, values, and messages. All OMI transactions shall have the same priority or the same class. That is, there are no out-of-band messages. Protocol management transactions such as capability negotiation, status updates, or startup and shutdown shall be handled in the same
23、 manner as database transactions. 4.3.4 Complex locks A client may lock a list of nrefs that lie on different OMI nodes. The lock operation is atomic - it shall succeed only if all nrefs in the list are successfully claimed. This property, combined with the isolated transactions between the agent an
24、d its servers, requires the agent to assemble a complex lock from OMI lock requests to the respective servers. The agent shall claim all nrefs of a complex lock. If all the claims succeed, then the entire lock succeeds. Otherwise, the agent shall release its successful claims and repeat the procedur
25、e until the lock succeeds or times out. NOTE -To facilitate this procedure, the protocol defines a request to unlock all nrefs held by a client on one server. 4.4 National character sets ANSVMDC Xl 1 .l, Annex A, requires ASCII symbols for codes 0 - 127. Many English language terminals and all other
26、 language terminals require different encodings, some of which use codes 128 - 255 as well. Most information systems have addressed the question of printing a symbol on a printer that uses a different code from the keyboard that originated the symbol. Networked systems should also address the transl
27、ation of codes between agents and servers that use different character sets. All OMI messages shall use the IS0 8859-l Latin alphabet No. 1, which equals ASCII for codes 0 - 127, and which specifies common European symbols for codes 128 - 255. Both agents and servers shall send the standard characte
28、r set on output and shall accept it as input, except for the following special case: OMI provides an exemption from this requirement for an agent and a server that share a single non-standard character set internally. When establishing their session they may select untranslated messages, thus avoidi
29、ng the burden of two reciprocal translations. 4.5 Security Security of computer networks has many facets. This International Standard addresses some of them and leaves some to other layers of the protocol stack. The general principle is to afford the networked system as much security as typical single-computer commercial systems furnish. 4.5.1 Privacy OMI offers no privacy protection. System managers who wish to thwart eavesdropping should specify lower-level protocols that provide encryption. 4