INTERNET-DRAFT Evgeny Efimchick, Andrey Lyamin Intended Status: Proposed Standard (NRU ITMO, Saint-Petersburg, Russia) Expires: July 18, 2013 March 18, 2013 Remote Laboratory Control Protocol draft-efimchick-remotelaboratorycontrolprotocol-00 Status of this Memo 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/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Efimchick, Evgeny Expires July 18, 2013 [Page 1] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 Copyright and License Notice Copyright (c) 2013 IETF Trust, Evgeny Efimchick, Andrey Lyamin. All rights reserved. Abstract This protocol is intended to provide the interaction between servers of virtual or remote laboratories and educational information systems that use virtual or remote laboratories in educational process. Table of Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 RLCP-compatible VL . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 RLCP-VL Structure . . . . . . . . . . . . . . . . . . . . . 3 2.2 RLCP-VL workflow . . . . . . . . . . . . . . . . . . . . . . 4 3 RLCP description . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1 RLCP request header . . . . . . . . . . . . . . . . . . . . 6 3.2 RLCP response header . . . . . . . . . . . . . . . . . . . . 7 3.3 RLCP request body . . . . . . . . . . . . . . . . . . . . . 8 3.4 RLCP response body . . . . . . . . . . . . . . . . . . . . . 10 3.5 RLCP url . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.6 RLCP request/response header fields . . . . . . . . . . . . 11 4 Security Considerations . . . . . . . . . . . . . . . . . . . . 11 5 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 12 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 Efimchick, Evgeny Expires July 18, 2013 [Page 2] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 1 Introduction This protocol is intended to provide the interaction between servers of virtual or remote laboratories and educational information systems that use virtual or remote laboratories in educational process. The Virtual Laboratory (VL) is an electronic environment that allows to create and investigate models of real phenomena. VL can be a useful tool in the distance learning technologies. It is difficult to develop VLs, but they provide numerous opportunities for education, especially in technical and natural science. Remote laboratories provides interaction with real laboratory plant but VL is actually kind of remote laboratories where real laboratory plant is replaced by its virtual model. Remote Laboratory Control Protocol describes rules of interaction of both remote and virtual laboratories. The Remote Laboratory Control Protocol (RLCP) was proposed in Saint- Petersburg National Research University of Information Technologies, Mechanics and Optics (NRU ITMO) to simplify the development and use of VLs. RLCP, its implementation and examples of RLCP-compatible VLs are described in scientific journals. [1], [2], [3] 2 RLCP-compatible VL 2.1 RLCP-VL Structure The RLCP-compatible VLs (RLCP-VL) have a strictly defined structure as shown in Fig. 1. _______________ _______________ _______________ | | | | | | | HTML-page | | | | | | |-----| RLCP client |-----| Data base | | of task frame | | | | | |_______ _______| |_______ _______| |_______________| | | | | | | _______|_______ _______|_______ | | | | | Virtual | | | | laboratory | | RLCP server | | plant | | | |_______________| |_______________| Figure 1 RLCP-VL structure Efimchick, Evgeny Expires July 18, 2013 [Page 3] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 2.2 RLCP-VL workflow An assessment process with RLCP-VL may vary depending on RLCP client, but its general principles can be described. RLCP-VL workflow is presented on Fig. 2. When a user starts an assessment using VL, RLCP client sends to the user a page that contains task description and interactive element - an applet that represents the VL plant. This page is called task frame. The task frame can be selected from a task bank by RLCP client or constructed by using RLCP server. In the latter case, the client creates an RLCP request to RLCP server of VL, which specifies instructions for the formation of tasks. RLCP server sends back data required to construct the task frame. While solving problem a user can send one or more requests for the intermediate calculations if such behavior is allowed by concrete VL. In this case after each inspection the task frame will be modified in accordance with inspection results. In general, user's answer is treated as a description of a system with sets of inputs and outputs. This system is constructed in accordance with the task by means of the VL plant. Knowledge of the correct answer can be represented as pairs of test sets of input and output data. It is necessary to get reaction of the described system on the given set of input data and to compare it with the corresponding set of output data in order to assess the answer. The correct answer is indicated when system reaction meets expected set of output data. A user sends the response with control elements of the task frame to RLCP client. RLCP client prepares the RLCP request that consists of user's response, validation data sets and other parameters for checking, and sends it to RLCP server. RLCP server checks user's response using given parameters, and returns the result to RLCP client. After receiving the response RLCP client can save assessment's result and make it available to the user. When user starts assignment using VL, RLCP client sends the user to a page that contains the job description and an interactive element - an applet that represents a virtual plant. This page is called a task frame. The task frame can be selected from a task bank by RLCP client or constructed using RLCP server. In the latter case, the client creates RLCP request to RLCP server of VL, which specifies instructions for the formation of task. RLCP server sends back data required to construct task. Efimchick, Evgeny Expires July 18, 2013 [Page 4] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 User RLCP client RLCP-VL server | | | | | | _ _ _ | | | | | | | | Request for | | | | | | laboratory task | | | | | |------------------->| | Request for variant| | | | | | (RLCP request) | | | | | |------------------->| | | | | | | | | | | | Variant data | | | | | | (RLCP response) | | | | Task frame | |<-------------------| | | |<-------------------| | | | | | | | | | _______|_|____________________|_|____________________|_|______ | || | | | | | | | loop || | Request for | | | | | |_____/ | | intermediate | | | | | | | | inspection | | Request for | | | | | |------------------->| | intermediate | | | | | | | | inspection | | | | | | | | (RLCP request) | | | | | | | |------------------->| | | | | | | | | | | | | | | | Result of | | | | | | | | intermediate | | | | | | | | inspection | | | | | | | | (RLCP response) | | | | | | Modified task frame| |<-------------------| | | | | |<-------------------| | | | | |_______|_|____________________|_|____________________|_|______| | | | | | | | | Solution | | Request for | | | |------------------->| | solution checking | | | | | | (RLCP request) | | | | | |------------------->| | | | | | | | | | | | Result of | | | | | | solution checking | | | | | | (RLCP response) | | | | | |<-------------------| | | | | | | | |_| |_| |_| | | | Figure 2 RLCP-VL workflow Efimchick, Evgeny Expires July 18, 2013 [Page 5] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 In general, the user answer is treated as description of system with a set of inputs and outputs. This system is constructed in accordance with the task of the objects and relations of the domain by means of virtual plant . Knowledge of the correct answer can be represented as pairs of test sets of input and output data. We need to get a reaction of described system in a given set of input data and compare it with the corresponding set of output data due to assess the correctness of the answer . The coincidence of the system reaction with an expected set of output data will indicate the correct answer. User sends a response with the controls of task frame to RLCP client. RLCP client prepares RLCP request consists of the user's response, the validation data sets and other parameters for checking, and sends it to RLCP server. RLCP server checks the user's response, based on the given parameters, and returns the result to RLCP client. After receiving a response RLCP client can save the check results and make them available to the user. 3 RLCP description RLCP provides a connection between RLCP server and RLCP client. RLCP client can request data to construct the task frame, checking results of user's answer or results of the intermediate calculations from RLCP server. For each type of the request and its corresponding response a format of RLCP requests and responses exists. This format is called RLCP method. RLCP has the following methods: - Generate, intended to transmit data for the construction of the task frame; - Calculate, which is designed to transfer results of the intermediate calculations; - Check, designed to transmit results of the checking based on the test sets of input and output data. RLCP is based on TCP. Stages of RLCP interaction between RLCP client and RLCP-VL server are given below: - RLCP Client establishes TCP connection with RLCP-VL server, - RLCP Client sends RLCP request to RLCP-VL server through this connection, - RLCP Client receives response from RLCP-VL server, - RLCP Client closes connection. All requests and responses contain a header and body. Header and body is divided by empty line. 3.1 RLCP request header The request header contains the name of a request method in capital Efimchick, Evgeny Expires July 18, 2013 [Page 6] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 letters and a set of service fields. There are two required service fields that are listed in table 1. Optional service fields might be added to the request due to particular VL needs. Table 1. Required header service fields __________ ____________________________________________________ | | | | | Name | Description | Example | |__________|___________________________|________________________| | | | | | url | Contains an URL of | url:rlcp://test:test@ | | | RLCP-VL server | 127.0.0.1:3000 | |__________|___________________________|________________________| | | | | | content- | Contains a size of | content-length:12345 | | length | RLCP request in bytes | | |__________|___________________________|________________________| Example of RLCP request is given below: CHECK url:rlcp://test:test@127.0.0.1:3000 content-length:12345 3.2 RLCP response header RLCP response header consists of a response status and a set of service fields. Response status is a numeric code. Response codes are listed in table 2. There is only required service field in response header: content- length. It contains size of RLCP response in bytes. In addition, one optional service field is defined. It is called 'url' and contains url of the RLCP server when response code is 300. Optional service fields might be added to the response due to particular VL needs. Example of RLCP response header is given below: 200 content-length:12345 Efimchick, Evgeny Expires July 18, 2013 [Page 7] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 Table 2. Response codes __________ ___________________________________________________ | | | | Code | Description | |__________|___________________________________________________| | | | | 100 | The request is still processing | |__________|___________________________________________________| | | | | 200 | The request is successfully processed | | | and response contains results | |__________|___________________________________________________| | | | | 300 | The requested resource is temporary moved | |__________|___________________________________________________| | | | | 400 | Incorrect request | |__________|___________________________________________________| | | | | 401 | Incorrect input data sets | |__________|___________________________________________________| | | | | 402 | Authentication error | |__________|___________________________________________________| | | | | 403 | Unsupported method | |__________|___________________________________________________| | | | | 404 | Required service field was not found | |__________|___________________________________________________| | | | | 405 | Required service field value was not found | |__________|___________________________________________________| | | | | 500 | The requested resource is temporary unavailable | |__________|___________________________________________________| | | | | 501 | Request method is supported by protocol | | | but it is not supported by this particular server | |__________|___________________________________________________| 3.3 RLCP request body The body of RLCP request is presented as an XML-document and its structure depends on RLCP method. Common to all methods DTD- description of the request body is given below: Efimchick, Evgeny Expires July 18, 2013 [Page 8] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 Description of RLCP request elements. Request The root element of the message. Request/Conditions The element that contains conditions for processing the request. It may contain one or more elements, depending on the request method. Request/Conditions/ConditionForCalculating The element that contains conditions to perform the intermediate calculations. The element is allowed in the request of the Calculate method. The condition itself enclosed in the nested comment of the child element called Input. Request/Conditions/ConditionForGenerating The element that contains conditions for the generating data to construct the task frame online. The element is allowed in the request of the Generate method. The condition itself lies in the nested comment of the child element called Input. Request/Conditions/ConditionForChecking The element that contains conditions to validate user's solution in the form of a pair of input and output data. There may be several such elements. The element is allowed in the request of the Check method, contains a set of input data in the nested comment of the child element Input, a corresponding set of output data in the nested comment of child element Output and an identifier and a time limit (in milliseconds) to perform checks in the id and Time attributes respectively. Efimchick, Evgeny Expires July 18, 2013 [Page 9] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 Request/Instructions The user's answer that is received from the VL plant. The element is allowed in the requests of the Check and Calculate methods. Request/PreGenerated Data for the construction of the task frame that is previously obtained by using the request of the Generate method. The element contains data to display to a user in the nested comment of the child element called Text, data intended to substitute as the applet parameter of the VL plant in the nested comment of the child element called Code, additional instructions for checking that are intended only for RLCP server in the nested comment of the child element called Instructions. The element is allowed in the requests of the Check and Calculate methods. 3.4 RLCP response body The body of RLCP response is presented as an XML-document and its structure depends on RLCP method. Common to all the methods DTD of the response body and its description is given below: Description of RLCP response elements. Response The root element of the message. Response/CheckingResult The container element for the checking result of the single checking condition that contains the pair of the test sets of validation input and output data. The element contains the literal output data in the nested comment, checking result (a number in the interval (0, 1)) in the attribute called Result, identifier of the pair of input and output data in the attribute called id, elapsed time (in milliseconds) in the attribute called Time. The Efimchick, Evgeny Expires July 18, 2013 [Page 10] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 element is allowed in the response of the Check method. Response/CalculatingResult The container element for the results of the intermediate calculations. It contains the data intended to display to a user in the nested comment of the child element called Text, data intended to substitute as the applet parameter of the VL plant in the nested comment of the child element called Code. The element is allowed in the response of the Calculate method. Response/GeneratingResult The container element for data to construct the task frame. It contains the data that is should be displayed to a user in the nested comment of the child element called Text, data that should be substituted as an parameter of the applet of the VL plant in the nested comment of the child element called Code, additional checking instructions for RLCP server in the nested comment of the child element called Instructions. The element is allowed in the response of the Generate method. 3.5 RLCP url RLCP url format is: rlcp://[login:password@](Server_IP-address|Server_domain_name):Port Elements in square brackets are optional. Elements in round brackets separated by vertical bar are mutually exclusive. Login and password must contain only characters from A-z and 0-9 ranges. RLCP url length is limited to 255 characters. 3.6 RLCP request/response header fields Header fields format is: field_name:field_value Each field occupies one line. Header fields may be listed in any order, but must be used no more than once. Field names are not case sensitive. 4 Security Considerations Security is not generally a problem in normal operation, however, only authenticated requests should be processed by RLCP-VL server, if particular server does not support anonymous connections. Malformed requests should not be processed, instead response with 4xx status code should be returned. If content-type field value and actual Efimchick, Evgeny Expires July 18, 2013 [Page 11] INTERNET DRAFT Remote Laboratory Control Protocol March 18, 2013 message size does not match the lesser amount of bytes should read. No encryption considerations is represented in this memo. 5 IANA Considerations No assignments by the IANA are required. 6 References [1] Lyamin A.V., Vashenkov O.E. VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR // 23rd ICDE World Conference on Open Learning and Distance Education including the 2009 EADTU Annual Conference. - Maastricht,The Netherlands, on 7-10 June 2009. - URL: http://www.ou.nl/icde2009. [2] Lyamin A.V., Vashenkov O.E. Virtual environment and instruments for student olympiad on cybernetics // Proceedings of 8th IFAC Symposium on Advances in Control Education. - Kumamoto, JAPAN, 2009. [3] Efimchik E.A., Lyamin A.V. RLCP-Compatible Vitual Laboratories // The International Conference on E-Learning and E-Technologies in Education (ICEEE 2012) Technical University of Lodz, Poland Sept. 24- 26, 2012 Proceedings. - Lodz, Poland, 2012. Authors' Addresses Evgeny Efimchick, Andrey Lyamin 197101, Russia, Saint Petersburg, Kronverkskiy pr., 49, National Research University of Information Technologies, Mechanics and Optics, Distance Learning Center EMail: efimchick@cde.ifmo.ru Efimchick, Evgeny Expires July 18, 2013 [Page 12]