Общение


Компоненты необходимые для Remote Scripting


Для использования RS необходимы следующие файлы в дополнении к вашим клиентским (*.htm) и серверным (*.asp) файлам:

  • RS.htm - Содержит методы которые вызываются из клиентского скрипта для инициализации RS, исполнения удаленных процедур, проверки состояние вызова и получение результатов работы.
  • RS.asp - Содержит методы инициализации RS на сервере и вызова необходимых функций.
  • Rsproxy.class - Содержит Java класс для апплета, который обеспечивает взаимодействие клиентской и серверной страницы.

    Эти файлы работают как библиотеки, вы просто включаете необходимые файлы (Rs.htm или Rs.asp) в вашу клиентскую или серверную страницу, и вызываете необходимые серверные методы.

    Все необходимые файлы должны быть доступны на сервере, по умолчанию предполагается, что эти файлы находятся в папке _ScriptLibrary.

    RS и безопасность

    RS обеспечивает такой же уровень безопасности как Java апплеты и IFrames. По требованиям безопасности, серверные методы не могут принимать в качестве параметров структурированные данные (объекты или массивы). К тому же, удаленные процедуры должны выполняться на том же сервере, откуда была загружена страница.

    Обеспечение RS с клиентской стороны

    Для обеспечения RS с клиентской стороны необходимо:

  • включать файла Rs.htm в вашу клиентскую страницу;
  • вызвать метод, который запускает Rsproxy апплет.

    Необходимо создать пустой JavaScript блок, который ссылается на файл Rs.htm, как показано ниже:

    <script language = "JavaScript" src = "../_ScriptLibrary/RS.htm">

    В клиентской странице этот блок может располагаться в любом месте, но до первого удаленного вызова.

    Также из клиентской страницы необходимо выполнить вызов метода RSEnableRemoteScripting(). По умолчанию этот метод предполагает, что апплет Rsproxy.class находится в папке _ScriptLibrary, если это не так необходимо указать правильный путь в качестве параметра. Этот скрипт-блок должен располагаться в пределах тела документа, но после скрипт-блока ссылающегося на Rs.htm.

    <body> <script language = "JavaScript"> RSEnableRemoteScripting("../_ScriptLibrary"); </script>


    После создания функций и процедур необходимо объявить их серверными методами. Для этого создается объект public_description содержащий описание нужных функций и процедур. В следующем примере в качестве конструктора объекта public_description вызывается функция MyServerMethod():

    <script languge = "JavaScript"> var public_description = new MyServerMethods();

    В конструкторе сопоставляются имена вызываемых функций и имена серверных методов.

    function constructor() { //for JavaScript methods this.methodName = functionName; //for VBScript methods this.methodName = Function('p1','p2','return functionName(p1,p2)') }

    Где:

  • functionName - имя вызываемой процедуры или функции;
  • methodName - внешнее имя серверного метода, непосредственно использующееся при вызове;



    Note: Механизм объявления интерфейса посредством объекта public_description реализован только в JavaScript.

    Следующий пример демонстрирует ASP страницу, в которой объявляется два серверных метода square и add:

    <% RSDispatch %> <!--#INCLUDE FILE="../_ScriptLibrary/RS.ASP"--> <script runat = server language = "JavaScript"> var public_description = new MyServerMethods();

    function MyServerMethods() { this.square = squareNumber; this.add = Function( 'n1','n2','return addNumbers(n1,n2)' ); }

    function squareNumber(numberToSquare){ return numberToSquare * numberToSquare; } </script> < script runat = server language ="VBScript"> Function addNumbers(num1, num2) addNumbers = CInt(num1) + CInt(num2) End Function </script>


    Содержание раздела