Схема работы системы - Система автоматизированного разделения кода прикладных программ

Система представляет из себя 2 модифицированные копии одной первоначально программы, расположенные на разных серверах. Вызовы методов, перенесенных на другой сервер будут заменены на вызов класса-посредника на клиенте. Данный класс передает необходимые параметры и вызывает класс-посредник на сервере, который в свою очередь выполняет заданный метод на заданном объекте и возвращает результат.

Введение удаленного вызова методов (в данном случае посредством Java RMI) требует создания 3 основных объектов:

    - Интерфейс, содержащий в себе объявление всех методов, которые будут вызываться удаленно. Данный интерфейс является общим звеном для клиента и сервера. Обращение к серверу выглядит как вызов метода у объекта, реализующего этот интерфейс. Сервер в свою очередь должен иметь класс, реализующий этот интерфейс и транслировать объект этого класса. - Клиент, направляющий запросы к серверу. В случае данной системы - клиент имеет только статические методы, таким образом не нужно будет создавать лишних объектов в каждый момент вызова удаленной процедуры, соответственно этот объект не нужно будет передавать в методы. - Сервер, являющийся реализацией интерфейса. Экземпляр класса будет доступен удаленно, результат выполнения методов этого экземпляра будет передаваться клиенту. 2 класса-посредника нужны для обеспечения соединения, также они позволяют не загромождать первоначальный код программы (например добавлением Try{..}catch (RemoteException) Вокруг каждого удаленного вызова), также методы в них отличаются по количеству параметров и типу возвращаемого значения от выбранных на перенос методов. К параметрам добавлен объект-источник если таковой есть.

Тип возвращаемого значения представляет собой пару (объект с 2 полями) объект-источник и результат выполнения метода. Так как после выполнения метода значения некоторых полей могут измениться, объекты-источники необходимо приводить в соответствие.

Соответственно, по сигнатуре метода и классу, в котором он содержится необходимо сгенерировать класс для представления результата работы удаленного метода. В качестве имени берется "Res" и к нему приписывается название метода. Типом поля source становится класса, содержащий метод, типом поля result становится результат выполнения метода. Названия полей являются одинаковыми у всех классов-результатов, отличается только название самого класса и тип полей. Также, в данный класс необходимо импортировать класс-источник с указанием пакета, в котором он содержится.

Похожие статьи




Схема работы системы - Система автоматизированного разделения кода прикладных программ

Предыдущая | Следующая