Internet-Draft Alexander Bogdanov draft-bogdanov-comments-umsp-00.txt NKO "ORS" Expires: April 2001 October 2000 Comments to the Unified Memory Space Protocol Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [1]. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This memo contains the description of the several systems models, for which the Unified Memory Space Protocol (UMSP) is intended. The purpose of this memo is the review of problems, which were defined during the protocol specification development. 1 Introduction This memo is the addition to the document "Unified Memory Space Protocol Specification" [2]. UMSP is the network protocol, which gives a capability of immediate access to memory of the remote nodes. It is based on the model of the 128-bit distributed address space of memory. The models, submitted in the memo, were used at the problem definition for the development of the UMSP and its have influenced a choice of the engineering solutions. There are no detailed projects for the described systems. In addition, for them is not given the strict substantiation of a possibility of realization. The following models are described in the document: O the control of simple devices O the universal high-level protocol O the distributed application, created in single process of compilation O the distributed virtual memory. Bogdanov Expires: April 2001 [Page 1] Internet-Draft Comments to the UMSP October 2000 2 The Models Description 2.1 Control of Simple Devices The architecture, considered in the given section, is focused on the remote control of simple devices. The logic of the minimal UMSP profile is relatively simple and can be realized in such devices. The base architecture is given in the following figure: +----------------+ | Internet Host | | | | +-----------+ | | | Control | | +----------------+ | | Program | | +------| Slave Device 1 | | +-----------+ | | +----------------+ +-----|----------+ | | +------------+ +----------------+ | | |-----| Slave Device 2 | Internet ----/ | Control | +----------------+ / | | . /--------| Computer |--+ . | | | . +------------+ | . | +----------------+ +--| Slave Device N | +----------------+ The control computer (CC) can carry out the following functions: O to realize the protection from the unauthorized access functions, O to carry out the gateway functions, if the communications between CC and slave devices (SD) are distinct from TCP/IP, O to contain the program, which carrying out part of the SD logic. The slave devices (SD) can have simple logic and interact with CC under the not-network communications. UMSP provides the immediate interaction between the control program (CP) and SD. The possibility of realization of the given architecture is provided with the following functions of the protocol: O The establishment of session connection is not obligatory. Prior to the beginning of exchange, CP can receive the information about SD (for example about a type of the device or VM) immediately reading out data from the definite addresses of device memory. Bogdanov Expires: April 2001 [Page 2] Internet-Draft Comments to the UMSP October 2000 O The interaction between CP and SD can be realized through three simple instructions with fixed length of data: reading/write in memory and synchronization (for tracking of asynchronous events). These instructions can even be executed by devices with no having micro code. All other instructions can be ignored on SD. O From the UMSP logic point of view, SD can be: 1) The addressable node to which is nominated the VM of the definite type. Such VM has no its own instructions system and directly executes the UMSP instructions. 2) The separate VM connected to the CC node. 3) The programmed object in the CC addresses space. In this case, the device logic is completely defined by the CC functionalities. In general case, SD can have the large computing resources and realize TCP/IP stack. Thus, the various variants of architecture are possible, which have been not considered in the document. 2.2 Universal High-level Protocol UMSP can be last in stack and only one high-level network protocol. All other functions can be realized as Application Program Interface (API) of standard virtual machines (VM). It is possible to quote the following arguments for the benefit of told: O It is easier to standardize VM, than the network protocol. Thus, it is possible to realize compound API even on VM with the elementary instructions set. O The API standardization is more simple task, than standardization of the network protocol with the same functions. Moreover, API can considerably be complicated and multifunctional in comparison with possibilities of the network protocols. O UMSP directly converts the logic of the application programs instructions, working with data in memory, in the logic of network exchange. The consumption of computing resources can be reduced due to this, as disappears the necessity of presentation layer functions. O It is easier to use API, than to use the protocol, for the programs development. It allows to lower considerably the work content of creation of the distributed applications and to realize inaccessible at using of the network protocols functions. O The unification of the high-level protocol allows to carry out 100% verification of the user traffic on gateways and to provide effective protection of local networks from external attacks. Probably, even the functions of network control, routing, DNS and other can be realized as API. Bogdanov Expires: April 2001 [Page 3] Internet-Draft Comments to the UMSP October 2000 2.3 Distributed Application Created in Single Process of Compilation The basic convenience to the developer consists in essential simplification of the distributed applications creation. The programs examples, with nonexistent for today extensions of languages, are given in this section to show it. These examples are only illustration. The examples contain a minimally necessary code. A possibility to address memory on the remote system opens many opportunities before the VM developers for realization of the various distributed services and API. The decision of these questions does not concern to sphere of the network protocol. 1) The following example is written in BASIC language by using of the procedural approach: ' It is supposed to execute this function by the remote machine. ' Probably, the distributed function code has some restrictions, ' in comparison with usual function. So as the compiler to check ' them, the qualifier 'Relocatable' is used in definition. ' Besides, variables of access type in such function should be ' processed by the special method by the compiler. Relocatable Function dFunc(parm1 As Integer) As String ' It is possible to write here a usual code, using local and ' global variable, or calling the user-defined functions or API ' functions, given by the VM. DFunc = "OK" End Function ' Example of execution of the function on other machine with using ' of preliminary establishment of connection Sub RunD() On Error GoTo Next ' The variable identifying a remote host Dim OtherVM As RelocatableVM Dim ForRet As String ' To set connection with the remote node. First parameter is ' constant of the address type (the decimal IP address in this ' case). Set OtherVM = ConnectVM(vbTpIP, "10.15.127.15") If Err Then MsgBox "Error of connection establishment" Exit Sub End If Bogdanov Expires: April 2001 [Page 4] Internet-Draft Comments to the UMSP October 2000 ' To call function ForRet = OtherVM.Call dFunc(10) If Err Then MsgBox "Error of function execution" Exit Sub End If End Sub 2) The second example is written in JAVA language with the object approach using: /** * The instances of this class can be created on the remote node. */ relocatable class dClass { // There can be variable-members of the classes /** * This constructor will be called on the remote node after the * memory allocation. */ dClass() { // Initialization code is located here } /** * Function-member of the class */ String dMetod(int Parm1) { // The code located here, can execute usual calculations, // call API functions, can create instances of standard or // special classes, instances of classes definite in this // program and having the 'relocatable' qualifier return "OK"; } } /** * Example of creation of the class instance on the remote node */ class dExamp { dFunc(int Parm1) { Bogdanov Expires: April 2001 [Page 5] Internet-Draft Comments to the UMSP October 2000 try { // Create class on the remote IP node dClass dc = new ("10.15.5.120", dClass); // Call function. This function is executed on the remote // node. String sRet = dc.dMetod(15); // Delete the instance dc = null; } catch (Exception e) { // Exception handling } } } It is visible from the given examples that the obligatory processing of errors is the basic complication in comparison with the not distributed application for programs developer. It is explained to that the exception condition can be caused by any operator. 2.4 Distributed Virtual Memory The creation of virtual memory distributed between Internet nodes is complex task with the ambiguous decision. Traditional page swapping is probably inexpedient, as will result in the large traffic of unnecessary data. Besides, the algorithms of pages blocking in the network environment are not obvious. UMSP will not provide these functions in an obvious kind for these reasons. The single requirement to the protocol, which was generated on basis of the analysis of similar systems, is the 128-bit address of memory of fixed length. Probably, such address is optimum from the point of view of hardware realization and is simultaneously convenient at program realization. In addition, such length of the address can ensure the decision of any task on any platforms now and in the predictable future. 3 Used Abbreviations API Application Programming Interface. CC Control Computer CP Control Program SD Slave Device Bogdanov Expires: April 2001 [Page 6] Internet-Draft Comments to the UMSP October 2000 UMSP Unified Memory Space Protocol VM Virtual Machine 4 References [1] S. Bradner, "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] A. Bogdanov, "Unified Memory Space Protocol Specification", Work in Progress. 5 Author Address Alexander Bogdanov 23-126, Generala Kuznetsova St. Moscow, Russia 109153 RU Phone: +7 901 732 9760 Email: a_bogdanov@iname.ru Full Copyright Statement Copyright (C) the Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Bogdanov Expires: April 2001 [Page 7] Bogdanov Expires: April 2001 [Page 8]