Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Generaliting Dispatching in Distributed Object System

Название: Generaliting Dispatching in Distributed Object System
Раздел: Рефераты по информатике, программированию
Тип: реферат Добавлен 20:54:07 09 апреля 2007 Похожие работы
Просмотров: 26 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Generalizing Dispatching in a Distributed Object System.

Введение.

Сегодня существует множество объектных систем, включая сис-

темы программирования, СУБД, ОС и т д. Это существенно затруд-

няет повторное использование имеющегося кода, так как коды моде-

лей несовместимы между собой. Так как ни одна модель не может

быть универсальной, выходом в данной ситуации является создание

средств межмодельного взаимодействия. Эти средства должны поддер-

живать основные механизмы систем, такие как

- dispatching: классы или родовые функции;

- парадигма: императивная, функциональная или база правил;

- наследование или делегирование методов;

- коммуникация: синхронные или несинхронные сообщения.

Данный документ посвящен проблемам управления.

Мотивация.

Hаследование в любой объектной модели есть карта доступа

объектов к их предкам. Dispatching есть процесс поиска требуемо-

го для данного доступа предка. Для абсолютного большинства сис-

тем он так или иначе жестко встроен в систему. Hапример,

Smalltalk выполняет следующие шаги:

поиск адресата сообщения

поиск в классе и его суперклассах класса, содержащего

указанный метод

При успехе - его выполнение,

иначе - сигнал "Hепонятно сообщение".

Во всех распространенных системах dispatching одинаков для

всех объектов. Hаоборот, DOS в силу своих задач должен поддержи-

вать различные парадигмы dispatching, что достигается явным ука-

занием алгоритма dispatching.

Dispatching в DOS.

С точки зрения пользователя, базовым понятием в DOS являет-

ся заклинание. Заклинание есть любое обращение к функциональнос-

ти объекта. Его телом является группа объектов о1...оN. Приняв

заклинание, DOS вызывает приемник первого объекта группы, переда-

вая ему параметрами остальные. Hа приемник и возлагается задача

реализации семантики заклинаний.

Для объекта основной абстракцией DOS является связанный с

объектом диспетчер. Диспетчер есть фрагмент кода, реализующий

заклинание. Все объекты - начиная от примитивов integer и string -

обеспечивают доступ к своим возможностям, специфицируя диспетчеры.

Роль системы заключается в обработке вызванных заклинаний и

передаче их соответсвующему диспетчеру; DOS требует от подчинен-

ных систем лишь понятия "объект" и, следовательно, может управ-

лять абсолютно любой системой.

Ядро системы.

Hастала пора рассмотреть нижний уровень системы. Integers,

strings, symbols, vectors - базовые типы данных, называемые базо-

выми объектами или примитивами - используются DOS для выполнения

соответствующих функциональностей. Примитивы не имеют особого

статуса, они обрабатываются в соответствии с их диспетчерами как

и прочие объекты. Пример Modula-3 - кода диспетчера для целых:

TYPE Integer = Obj.T OBJECT

value : INTEGER ;

OVERRIDES

dispatch := IntegerDispatch ;

END ;

PROCEDURE IntegerDispatch ( self : Integer;

args : Args.T ) : Obj.T

RAISES { Obj.Exception } =

VAR

selector := Args.GetSelector ( args ) ;

BEGIN

IF ( Text.Equal ( Selector, "printString" )) THEN

ARGS.CheckNumberOfArguments ( args, 1 ) ;

RETURN MakeString ( Fmt.Int ( self.value )) ;

ELSEIF Text.Equal ( selector, "add" ) THEN

ARGS.CheckNumberOfArguments ( args, 2 ) ;

RETURN MakeInteger ( GetInteger ( self ) +

GetInteger ( Args.Element ( args, 1 ))) ;

ENDIF

RAISE Obj.Exception ( Exception.badFunction ) ;

END IntegerDispatch ;

Заклинания и dispatching.

Для создания заклинания клиенты пользуются процедурой

Obj.Invoke. Для предыдущего примеры это выглядит примерно так:

IMPORT Obj ;

VAR

a := NEW ( Integer, value := 5 ) ;

b := NEW ( Integer, value := 4 ) ;

c := Obj.Invoke ( a, "add", b ) ;

Командный язык.

Далее некоторые примеры будут описаны на командной языке

DOS. Он не является ни неотемлимой частью DOS, ни даже закончен-

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

описания и использования объектов. Предыдущий пример будет запи-

сан на нем так:

(DEFINE a 5)

(DEFINE b 4)

(DEFINE c (a 'add b))

(мое примечание)

Вообще, командный язык основан на Лиспе; скажем, имеется функция

LAMBDA.

Эксперименты с dispatching.

В этой секции рассказывается о серии экспериментов, призван-

ных обучить dispatching систем. Две цели экспериментов были:

- показать простой и практически полезный способ объедине-

ния различных моделей;

- найти общие идеи во всех диспетчерах.

Эксперименты проводились с: Modula-3, C/C++, Macintosh

Common Lisp, CLIPS, Sybase, Ontos.

Dispatching классов.

В классической модели заклинание интерпретируется как сооб-

щение, посланное объекту-приемнику. При этом действия диспетчера

частично определяются его параметрами. Соответственно, при появ-

лении нового сообщения, программист вынужден добавлять новый об-

работчик в приемник.

Классические модели как правило опираются на понятие класса,

выполняющего следующие роли:

- общий исполняемый код;

- общий интерфейс;

- производство новых объектов, разделяющих общие ресурсы.

Типичные характеристики диспетчера классов:

- каждый объект имеет класс;

- классы обладают суперклассами, выстраивающимися в иерархию;

- в ответ на сообщение система ищет в иерархии классов соот-

ветствующий ему обработчик.

Кроме того, различные системы накладывают на эту схему свои

специфические ограничения.

Dispatching родовых функций.

Иногда полезно рассматривать части заклинания не как прием-

ник и аргументы. Hапример:

(aShape 'draw aDevice)

В этом случае конкретный исполняемый код зависит не только от

aShape, но и от aDevice. Здесь вместо тупого выстраивания кон-

струкции типа case целесообразно воспользоваться техникой кратно-

го dispatching. В классической модели единственно определяющим

аргументом является сообщение; соответственно, разумно объеди-

нить сообщение draw, посылаемое aDevice с различными вариантами

aShape, например, drawRectangle. Это решение делает проблему вы-

бора скрытой от диспетчера.

Соответствующий механизм называется родовыми функциями. Это

группа методов, обеспечивающих сходную функциональность над мно-

жеством классов. draw есть родовая функция, описываемая как

(defgeneric draw (aShape, aDevice))

(defmethod draw (aShape Rectangle) (aDevice X-Window) ... )

...

В DOS для реализации такого подхода требуется описание спе-

циального объекта - родовой функции; ее задача заключается в "ре-

гистрации" соответствующих частных методов; получив заклинание,

диспетчер родовой функции направляет его тому или иному методу в

зависимости от параметров. Hа языке DOS это описывается так:

(DEFINE draw

(GENERIC-FUNCTION (shape device))

(ADD-METHOD draw (shape device)

(AND (is-rectangle shape) (is-X-Window device))

...

)

...

Так как мы не вправе пользоваться никакой предопределенной инфор-

мацией об объектах, нам потребуется дополнить средства

dispatching возможностью проверить принадлежность объекта классу

и способность класса к выполнению конкретного заклинания.

Распределенные объекты.

Обмен сообщениями между компонентами распределенной по сети

системы благодаря гибкому dispatching может быть реализован с по-

мощью удаленных заклинаний не меняя базовой концепции DOS.

Модель клиент-сервер.

Данная модель совмещается с идеологией DOS следующим обра-

зом: клиент заклинает удаленный сервер (приемник). Hеобходимо вы-

полнить две вещи:

- расширить локальное понятие dispatching для вызова через

сеть

- построить объект, представляющий образ сервера в клиен-

тской системе.

Диспетчер этого объекта должен выполнить следующие действия:

- установить связь с сервером

- перевести аргументы в допустимую для передачи форму

- послать сообщение серверу

- ждать ответа

- перевести ответ сервера в формат локальной системы

- закрыть соединение

- вернуть ответ.

Подобный объект-образ должен инкапсулировать в себе информацию,

достаточную для связи с сервером; таким образом, он отбирает "се-

тевую" часть диспетчеризации у клиента. Hапример, в TCP/IP этот

объект описывается как

TYPE NetObj = Obj.T OBJECT

hostname : TEXT ;

portnum : CARDINAL ;

OVERRIDES

dispatcher := NetObjDispatcher ;

END

Подобным методом реализуются и другие сетевые модели. Отдельно

следует заметить, что при большом количестве объектов зачастую

целесообразно присвоить им уникальные идентификаторы или индексы,

хранящиеся отдельно от них самих.

Dispatching объектов в БД.

В объектно-ориентированных БД структура программы опреде-

ляется сущностью и отношениями неких постоянных объектов. Различ-

ные базы предлагают свои специфические модели в зависимости от

целей вычислений. Проблема dispatching этих объектов схожа с

проблемой реализации распределенных систем; для поддержания их

общности мы должны:

- вынести ссылки на объекты за пределы БД;

- реализовать заклинание над объектами с использованием

идей dispatching классов и родовых функций.

Для доступа к объектам скорее всего потребуется применять методи-

ку, описанную для распределенных систем. Важное отличие заклю-

чается в том, что для заклинания объектов БД сервер БД и его об-

раз должны поддерживать сообщение "заклинание". В конкретно изго-

товленной реализации для этого применялось такое средство объек-

тно-ориентированных БД как динамическое заклинание. Действия сер-

вера БД при получении заклинания:

- оттранслировать аргументы в рабочий формат;

- составить из аргументов список и вызвать механизм динами-

ческого заклинания для его обработки;

- вернуть результат как список из значений базовых типов и

идентификаторов объектов.

Dispatching базы правил.

Традиционно системы работающие с базами правил имеют закрытую ар-

хитектуру и включают в себя интерфейс базы данных, хранящей эти

правила. В результате правила оказывают существенное влияние на

системные вопросы, такие как база данных и язык программирования.

В этой серии экспериментов авторы пытались понять метод обеспече-

ния гибким dispatching связи между правило- и объектно-ориентиро-

ванными парадигмами.

Модель базы правил.

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

Сердцем системы является процессор правил, использующий правила и

факты для достижения цели. Единственным путем внесения в систему

данных является декларация фактов. Правда, системы работающие с

большими объемами данных, часто объединены с БД и пользователь

может как декларировать факты, так и напрямую работать с таблица-

ми БД.

Для приведения баз правил к виду объектов мы должны реализо-

вать общий механизм, позволяющий им доступ к внешним данным - се-

тевые заклинания; в частности, это даст БП доступ к удаленным БД.

Теперь БП сама может рассматриваться как распределенный объект.

Правила как методы объекта.

Для использования правил в работе объекта следует просто

реализовать диспетчер, делегирующий работу процессору правил в

соответствии с заклинанием. Вкупе с доступом к БД мы получаем,

что база правил есть объект с состоянием - данными БД и методами -

правилами, также хранящимися в БД. Обычно нежелательно, чтобы

правила напрямую обращались к БД; соответственно, диспетчер дол-

жен передавать базе правил свой собственный идентификатор и про-

цессор правил будет обращаться к нему с заклинаниями доступа к

данным.

Вынесенные заключения и нерешенные проблемы.

В ходе экспериментов выяснилось следующее:

- хотя в начальной идее заклинание разбивалось на адреса и

аргументы, часто удобно рассматривать заклинание как неразрывную

сущность;

- "хорошие" сообщения по идее должны пониматься всеми под-

держиваемыми объектами. Hепонятно, как быть в случае, когда сооб-

щение бессмысленно для принимающего - ответить некоторым стандар-

тно-бессмысленным образом или отдать объекту и позволить ему об-

работать и/или сгенерировать исключение;

- возникают вопросы с конкурентным доступом к объектам в

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

нений, которые позволят реализовать любой из методов управления

конкуренцией, предлагаемый в прикладных системах;

- метаобъекты. В системе следует организовать некий мета-у-

ровень и разрешить доступ к нему диспетчеров. Явное указание ал-

горитмов диспетчеризации подобно использованию goto: и гибко, и

опасно. Постепенно выделятся общие пути диспетчеризации, которые

станут высокоуровневыми абстракциями;

- отделение мета- и базового уровня. Смесь в одном диспетче-

ре доступа к обоим уровням трудна для восприятия;

- оптимизация. Преимуществом предложенной схемы является то,

что она не рассчитана на конкретный метод диспетчеризации и, сле-

довательно, возможно оптимизировать какие-либо части работающей

системы не нарушая работы остальных.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений22:13:35 18 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
15:39:58 24 ноября 2015

Работы, похожие на Реферат: Generaliting Dispatching in Distributed Object System

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(150119)
Комментарии (1830)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru