- •107 Оглавление
- •Лекция №1-2 Информационные системы и их функции
- •Понятиеинформационной системы
- •Применение информационных систем
- •Определение понятия «информационная система»
- •Отсутствие общепринятого определения
- •Следствия общности определения
- •Граница между системой базы данных и приложением
- •Ресурсы информационных систем
- •Пользователи информационной системы
- •Специализированные информационные системы
- •Библиографический список
- •Лекция №3-4 Функции информационных систем
- •Сбор и регистрация информационных ресурсов
- •Хранение информационных ресурсов
- •Актуализация информационных ресурсов
- •Обработка информационных ресурсов
- •Предоставление информационных ресурсов пользователям
- •Другие функции
- •Библиографический список
- •Лекция №5-6 Классификация информационных систем
- •Классификации ис
- •Функциональное назначение модулей корпоративной ис.
- •Классификация рынка информационных систем
- •Проектирование ис
- •Библиографический список
- •Лекция №7-10 Модель клиент-сервер
- •Клиенты и серверы
- •Примеры клиента и сервера
- •Листинг 1.3.Файлheader.Pas, используемый клиентом и сервером
- •Листинг 1.4.Пример сервера
- •Листинг 1.5.Клиент, использующий сервер из листинга 1.4 для копирования файла
- •Разделение приложений по уровням
- •Уровень пользовательского интерфейса
- •Уровень обработки
- •Уровень данных
- •Варианты архитектуры клиент-сервер
- •Многозвенные архитектуры
- •Современные варианты архитектуры
- •Библиографический список
- •Лекция №11-12 Связь Уровни протоколов
- •Удаленный вызов процедур
- •Обращение к удаленным объектам
- •Распределенные объекты
- •Объекты времени компиляции против объектов времени выполнения
- •Сохранные и нерезидентные объекты
- •Статическое и динамическое удаленное обращение к методам
- •Библиографический список
- •Лекция №13-14 Связь посредством сообщений
- •Сохранность и синхронность во взаимодействиях
- •Связь на основе потоков данных
- •Поддержка непрерывных сред
- •Поток данных
- •Библиографический список
- •Лекция №15-16 Оценка технических параметров ис и ее компонент Общая постановка задачи
- •Стандарты управления качеством промышленной продукции
- •Библиографический список
- •Лекция №17-18 Отказоустойчивость
- •Основные концепции
- •Модели отказов
- •Различные типы отказов
- •Маскирование ошибок при помощи избыточности
- •Библиографический список
- •Лекция №19-20 Жизненный цикл информационных систем
- •Каскадная и спиральная модели
- •Стандарты cals
- •Эксплуатация информационных систем
- •Эффективность реализации cals
- •Лекция №21-22 Общая стоимость владения информационной инфраструктурой
- •Методика Gartner Group
- •Оценка общей стоимости владения
- •Лекция №23-24 Защита информации Угрозы, правила и механизмы
- •Архитектура защиты Globus
- •Библиографический список
- •Лекция №25-26 Вопросы разработки
- •Фокус управления
- •Многоуровневая организация механизмов защиты
- •Распределение механизмов защиты
- •Простота
- •Библиографический список
- •Лекция №27-28 Криптография
- •Нотация, используемая в этой главе
- •Симметричные криптосистемы — des
- •Криптосистемы с открытым ключом — rsa
- •Хэш-функции — md5
- •Библиографический список
Статическое и динамическое удаленное обращение к методам
После того как клиент свяжется с объектом, он может через заместителя обратиться к методам объекта. Подобное удаленное обращение к методам (Remote Method Invocation, RMI) в части маршалинга и передачи параметров очень напоминаетRPC. Основное различие междуRMIиRPCсостоит в том, чтоRMI, как говорилось ранее, в основном поддерживает внутрисистемные ссылки на объекты. Кроме того, отпадает необходимость в клиентских и серверных заглушках общего назначения. Вместо них мы можем использовать значительно более удобные в работе и специфические для объектов заглушки, которые мы также обсуждали.
Стандартный способ поддержки RMI— описать интерфейсы объектов на языке определения интерфейсов, так же как вRPC. Однако с тем же успехом мы можем использовать объектный язык, напримерJava, который обеспечивает автоматическую генерацию заглушек. Такой подход к применению предопределенных определений интерфейсов часто называютстатическим обращением (static invocation). Статическое обращение требует, чтобы интерфейсы объекта при разработке клиентского приложения были известны. Также оно предполагает, что при изменении интерфейса клиентское приложение перед использованием новых интерфейсов будет перекомпилировано.
В качестве альтернативы обращение к методам может осуществляться более динамичным образом. В частности, иногда удобнее собрать параметры обращения к методу во время исполнения. Этот процесс известен под названием динамического обращения (dynamic invocation). Основное его отличие от статического обращения состоит в том, что во время выполнения приложение выбирает, какой метод удаленного объекта будет вызван. Динамическое обращение обычно выглядит следующим образом:
invoke(object, method, input_parameters, output_parameters);
Здесь objectидентифицирует распределенный объект;method— параметр, точно задающий вызываемый метод;input_parameters— структура данных, в которой содержатся значения входных параметров метода;output_parameters— структура данных, в которой хранятся возвращаемые значения.
В качестве примера рассмотрим добавление целого числа intк объектуfobjectфайла. Для этого действия объект предоставляет методappend. В этом случае статическое обращение будет иметь вид:
fobject.append(int);
Динамическое обращение будет выглядеть так:
invoke(fobject, id(append), int);
Здесь операция id(append) возвращает идентификатор методаappend. Для иллюстрации динамического обращения рассмотрим браузер объектов, используемый для просмотра наборов объектов. Предположим, что этот браузер поддерживает удаленное обращение к объектам. Это будет означать, что браузер в состоянии выполнить привязку к распределенному объекту и предоставить пользователю интерфейс с объектом. Пользователю после этого может быть предложено выбрать метод и ввести значения его параметров, после чего браузер сможет произвести действительное обращение. Обычно подобные браузеры объектов разрабатываются так, чтобы они поддерживали любые возможные интерфейсы. Такой подход требует исследования интерфейсов во время выполнения и динамического создания обращений к методам.
Другая область применения динамических обращений — службы пакетной обработки, для которых запросы на обращение могут обрабатываться в течение всего того времени, пока обращение ожидает выполнения. Служба может быть реализована в виде очереди запросов на обращение, упорядоченных по времени поступления. Основной цикл службы просто ожидает назначения очередного запроса, удаляет его из очереди и, как это было показано ранее, вызывает процедуру invoke.