Благодарности
Введение
Кому предназначена эта книга.
Структура книги
Системные требования
Файлы примеров
ГЛАВА 1 ОСНОВЫ РАСПРЕДЕЛЕННЫХ
ПРИЛОЖЕНИЙ
Исторический экскурс
Распределенные архитектуры
Модульное программирование
Клиент-серверные архитектуры
Многоуровневые архитектуры
Одноранговые архитектуры
Распределенные технологии
Сокеты
Удаленные вызовы процедур
Распределенные объекты - удобная абстракция
Преимущества распределенных приложений
Отказоустойчивость
Масштабируемость
Администрирование
Проблемы распределенных приложений
Производительность
Защита
Открытость и сетевые форматы данных
Интернети брандмауэры
Конфигурирование
Независимость от расположения
Управление временем жизни объекта
Решение проблем распределенных приложений
в .NE Remoing
Производительность
Расширение и настройка удаленного взаимодействия
Конфигурирование
Преимущества CLR и CS
Открытость
Защита
Аутентификация
Защита данных
Защита без IIS
Управление временем жизни
Сервисы масштаба предприятия
Заключение
ГЛАВА 2 АРХИТЕКТУРА .NE REMOING
Границы .NE Remoing
Домены приложений
Контексты
Пересечение границ
Недистанцируемые типы
Дистанцируемые типы
Активизация объекта
Серверная активизация
Режим Singleon
Режим SingleCall
Клиентская активизация
Лицензия объекта
Лицензия
Диспетчер лицензий
Спонсоры
Пересечение границ приложений
Маршалинг ссылок на удаленные объекты
посредством ObjRef
URI
Метаданные
Информация о канале
Использование прокси для взаимодействия с удаленными
объектами
Прозрачный прокси
Реальный прокси
Сообщения - основа удаленного взаимодействия
Транспортировка сообщений каналами
CP
HP
Обработка сообщений цепочками канальных приемников. Сериализация сообщений форматирующими
приемниками
Реализация сетевого интерфейса с помощью
транспортных приемников
Заключение
ГЛАВА 3 РАСПРЕДЕЛЕННЫЕ ПРИЛОЖЕНИЯ
НА ОСНОВЕ .NE REMOING
Проектирование приложения
Реализация приложения JobServer
Логика приложения
Структура Joblnfo
Интерфейс IJobServer
Класс JobEvenArgs
Класс JobServerlmpI
Добавление средств .NE Remoing
Реализация дистанцируемого типа
Выбор серверного домена приложения
Выбор модели активизации
Выбор канала и порта
Выбор способа получения клиентами метаданных
сервера
Настройка параметров .NE Remoing для сервера
Реализация приложения JobClien
Выбор клиентского домена приложения
Получение метаданных сервера
Настройка .NE Remoing для приложения JobClien
Программная настройка
Конфигурационный файл
Реализация класса JobServerlmpI в виде Web-сервиса
Необходимые изменения
Удаление обратных вызовов клиентов
Выбор метода активизации
Настройка виртуального каталога
Настройка файла Web.config
Развертывание
Использование SOAPSuds
Сборка с реализацией
Сборка с метаданными
XML-схема (WSDL)
Компилируемый класс
Защита Web-сервиса
Изменения настроек виртуального каталога
Изменения в файле Web.config
Изменения в приложении JobClien
Использование защиты на основе ролей с .NE Remoing....
Использование объектов с клиентской активизацией
Класс JobNoes
Изменения в приложении JobClien
Настройка клиента для работы с объектами с клиентской
активизацией
Программная настройка
Конфигурационный файл
Настройка сервера при использовании объектов
с клиентской активизацией
Программная настройка
Конфигурационный файл
Спонсор лицензии
Инициализация лицензии
Реализация интерфейса ISponsor
Регистрация спонсора
Проблемы зависимости от метаданных
Устранение зависимости JobServer от метаданных
JobClien
Разработка класса-дублера публикуемого вместо
метаданных JobServerlmpI
Удаленный доступ к интерфейсу IJobServer
Заключение
ГЛАВА 4 SOAP И ОБМЕН СООБЩЕНИЯМИ1
Протокол SOAP
Нужно ли знать SOAP?
RPC на основе HP
Элементы сообщения SOAP
Конверт SOAP
Заголовок SOAP
Тело SOAP
Ошибки в SOAP
Документ-литеральный SOAP
Обмен сообщениями
Сообщение-запрос addJobEven
Сообщение-ответ addJobEven
Сообщение-запрос Gejobs
Сообщение-ответ Gejobs
Сообщение-запрос Creaejob
Сообщение-ответ Creaejob
Сообщение-запрос UpdaeJobSae
Сообщение-ответ UpdaeJobSae
Сообщение-запрос на активизацию JobNoes . Сообщение-ответ на активизацию JobNoes ...
Сообщение-запрос removeJobEven
Сообщение-ответ removeJobEven
Заключение
ГЛАВА 5 СООБЩЕНИЯ И ПРОКСИ .
Сообщения
Сообщения вызовов конструкторов
Сообщения вызовов методов
Типы сообщений
Прокси
VransparenProxy
RealProxy
5Расширение RealProxy
iСпециализированные прокси на практике .
Пример с активизацией
Пример со сменой канала
Пример с распределением нагрузки ..
Использование контекста вызова
Контекст вызова в потоке сообщений
iЗаключение
ГААВА6 ПРИЕМНИКИ СООБЩЕНИИ
КОНТЕКСТЫ
Приемники сообщений
HIMessageSink
fСинхронная обработка сообщения
Асинхронная обработка сообщения
Контексты
Установление контекста
ГчАтрибуты и свойства контекста
Контексты и удаленное взаимодействие
Динамические контекстные приемники
Создание динамического приемника
Клиентская контекстная цепочка
Создание приемника для клиентской контекстной
цепочки
Серверная контекстная цепочка приемников
Создание приемника для серверной контекстной
цепочки
Пример: контексте регистрацией исключений
Серверная объектная цепочка приемников
Создание серверного объектного приемника
Пример: трассировка всех вызовов методов
объекта
Цепочка агентских приемников
Создание агентского приемника
Пример: проверка параметров метода
Заключение
ГЛАВА 7 КАНААЫ И КАНАЛЬНЫЕ
ПРИЕМНИКИ
Построение каналов
Терминология каналов
HpChannel
HpServerChannel
HpServerransporSink
HpClienChannel
HpClienransporSinkProvider
HpClienransporSink
Создание нестандартных каналов
Этапы создания нестандартного канала .NE Remoing .
Создание нестандартного канала FileChannel
Реализация класса FileClienChannel
Реализация класса FileClienChannelSinkProvider
Реализация класса FileClienChannelSink
Реализация класса FileServerChannel
Реализация класса FileServerChannelSink
Реализация класса FileChannel
Реализация класса FileChannelHelper
Создание класса транспорта FileChannel
Нестандартные канальные приемники
Создание приемника контроля времени доступа
Реализация класса AccessimeServerChannelSink
Реализация класса
AccessimeServerChannelSinkProvider
Добавление AccessimeServerChannelSink
в конфигурационный файл
Заключение
ГААВА8 ФОРМАТИРОВЩИКИ
СЕРИААИЗАЦИИ
Сериализация объектов
Атрибут Serializable
Расширение механизма сериализации объекта
Сериализация графов объектов
Десериализация графа объектов
Уведомление о завершении десериализации
Суррогаты сериализации и селекторы суррогатов
Суррогаты
Селекторы суррогатов
Суррогат imeSamper
RemoingSurrogaeSelecor
Форматировщики сериализации
Получение сериализуемых членов типа
Обход графа объектов
Идентификация объектов с использованием класса
ObjeclDGeneraor
Каталогизация объектов для сериализации
Использование класса ObjecManager
Использование класса Formaer
jРеализация собственного форматировщика
ff"Определение формата сериализации
Реализация интерфейса IFormaer
Реализация метода IFormaer.Serialize
Реализация метода IFormaer.Deserialize
Создание приемника форматировщика
Клиентский приемник форматировщика
ClienFormaerSinkProvider
Серверный приемник форматировщика
f:iServerFormaerSinkProvider
Предметный указатель
Об авторах
Заключение