Содержание
- 2. Технология .NET Remoting Для описания взаимодействия двух сущностей применяется модель «клиент-сервер», в которой одна из сторон
- 3. Технология .NET Remoting Существуют разные сетевые модели коммуникаций и описания сетевых протоколов, см. рисунок. Из ниже
- 4. Технология .NET Remoting Стек протоколов HTTP, TCP, IP. HTTP TCP IP Ethernet HTTP TCP IP Ethernet
- 5. Технология .NET Remoting Технология .NET Remoting разработана для создания распределенных приложений. С её помощью можно обращаться
- 6. Технология .NET Remoting Типичная архитектура приложений .NET Remoting такова, что компоненты интерфейса пользователя, логика приложения (бизнес-логика)
- 7. Технология .NET Remoting Удаленный вызов процедур Идея удаленного вызова процедур (Remote Procedure Call, RPC) появилась в
- 8. Технология .NET Remoting Использование удаленных объектов При необходимости доступа к удаленным объектам клиент указывает протоколы доступа
- 9. Технология .NET Remoting Маршалинг и сериализация Маршалинг (marshaling) есть процесс упаковки данных и формирования пакета сообщений
- 10. Технология .NET Remoting Представители (proxy) В .NET Remoting proxy представляет собой объект-заменитель, который создаётся внутри клиентского
- 11. Координация потоков Синхронизация в C#. Инструменты .NET Framework
- 12. Координация потоков Средства синхронизации потоков в C# C# поддерживает параллельное выполнение кода через многопоточность. Поток –
- 14. Скачать презентацию
Слайд 2Технология .NET Remoting
Для описания взаимодействия двух сущностей применяется модель «клиент-сервер», в которой
Технология .NET Remoting
Для описания взаимодействия двух сущностей применяется модель «клиент-сервер», в которой
Взаимодействие является синхронным, если клиент ожидает завершения обработки своего запроса сервером, и асинхронным, если клиент посылает серверу запрос и продолжает свою работу без ожидания ответа сервера. В зависимости от того, как распределены логические компоненты приложения между клиентами и серверами, различают четыре основные модели архитектуры «клиент-сервер»:
- модель «файл-сервер»;
- модель «сервер базы данных»;
- модель «сервер транзакций»;
- модель «сервер приложений».
Слайд 3Технология .NET Remoting
Существуют разные сетевые модели коммуникаций и описания сетевых протоколов, см.
Технология .NET Remoting
Существуют разные сетевые модели коммуникаций и описания сетевых протоколов, см.
Слайд 4Технология .NET Remoting
Стек протоколов HTTP, TCP, IP.
HTTP
TCP
IP
Ethernet
HTTP
TCP
IP
Ethernet
физическая передача данных
быстрый протокол для ЛВС
универсальный
Технология .NET Remoting
Стек протоколов HTTP, TCP, IP.
HTTP
TCP
IP
Ethernet
HTTP
TCP
IP
Ethernet
физическая передача данных
быстрый протокол для ЛВС
универсальный
Слайд 5Технология .NET Remoting
Технология .NET Remoting разработана для создания распределенных приложений. С её
Технология .NET Remoting
Технология .NET Remoting разработана для создания распределенных приложений. С её
При запуске .NET Remoting настраивается для использования конкретного вида транспортного протокола (channel) и протокола доступа (formatter). Затем регистрируются все классы, к которым будет обеспечен удаленный доступ.
Первый вариант настройки: транспортный протокол (channel) есть TCP. В качестве протокола доступа (formatter) применяется собственный бинарный формат, который при желании можно изменить на другой.
Второй вариант настройки: транспортный протокол (channel) есть HTTP. В качестве протокола доступа применяется SOAP.
Вариант настройки HTTP / SOAP следует применять в случае, если:
необходим прокси-сервер, который нельзя настроить на определенный порт;
возможны клиенты, созданные без использования .Net Remoting;
необходимо контролировать содержимое сетевого обмена.
Слайд 6Технология .NET Remoting
Типичная архитектура приложений .NET Remoting такова, что компоненты интерфейса пользователя,
Технология .NET Remoting
Типичная архитектура приложений .NET Remoting такова, что компоненты интерфейса пользователя,
Трехзвенная архитектура модели взаимодействия «клиент-сервер»
Слайд 7Технология .NET Remoting
Удаленный вызов процедур
Идея удаленного вызова процедур (Remote Procedure Call, RPC)
Технология .NET Remoting
Удаленный вызов процедур
Идея удаленного вызова процедур (Remote Procedure Call, RPC)
После вызова клиентом процедуры-заглушки промежуточная среда преобразует переданные ей аргументы в вид, пригодный для передачи по транспортному протоколу, и передает их на сервер вместе с вызываемой функцией.
На сервере аргументы функции извлекаются промежуточной средой из сообщения транспортного уровня и передаются непосредственно вызываемой функции. Аналогичным образом на клиентскую машину передается результат выполнения вызванной функции.
Слайд 8Технология .NET Remoting
Использование удаленных объектов
При необходимости доступа к удаленным объектам клиент указывает
Технология .NET Remoting
Использование удаленных объектов
При необходимости доступа к удаленным объектам клиент указывает
В .NET Remoting объекты могут передаваться по значению (by value) и по ссылке (by ref).
Создавая классы, экземпляры которых предполагается передавать (возвращать) по значению, необходимо их пометить атрибутом [Serializable].
При передаче объектов по ссылке передается только идентификатор (спец. объект ObjRef). Клиент создает у себя proxy-класс, который перенаправляет вызовы методов удаленного объекта на сервер и получает возвращаемые значения. Объект, передаваемый по ссылке, должен наследоваться от класса MarshalByRefObject.
У клиента создается впечатление, что удаленный объект находится в его адресном пространстве, но на самом деле вызовы методов сериализуются и передаются по каналам связи на сервер.
Слайд 9Технология .NET Remoting
Маршалинг и сериализация
Маршалинг (marshaling) есть процесс упаковки данных и формирования
Технология .NET Remoting
Маршалинг и сериализация
Маршалинг (marshaling) есть процесс упаковки данных и формирования
Сериализация (serialization) есть процесс преобразования данных в последовательную форму (в поток байтов) для передачи данных по телекоммуникационному каналу.
Маршалинг и сериализация примитивных типов не представляет проблем, поскольку такие объекты имеют простую линейную структуру.
В общем же случае объекты имеют сложную внутреннюю структуру и, кроме того, могут ссылаться друг на друга, образуя направленный граф объектов (object graph).
Внутренняя структура и граф объектов должны быть сохранены в потоке байтов и восстановлены после передачи данных по каналу связи. В этом состоит главная задача, которая решается в ходе сериализации.
Слайд 10Технология .NET Remoting
Представители (proxy)
В .NET Remoting proxy представляет собой объект-заменитель, который создаётся
Технология .NET Remoting
Представители (proxy)
В .NET Remoting proxy представляет собой объект-заменитель, который создаётся
Имеются два вида прокси – «прозрачные» (transparent proxy) и «реальные» (real proxy).
Прозрачные proxy создаются «на лету» во время выполнения кода и предназначены для перехвата клиентских вызовов удаленного объекта. Получив управление, transparent proxy упаковывает клиентский вызов в пакет сообщений IMessage в соответствии с транспортным протоколом (channel) и передаёт её далее в real proxy.
Real proxy сериализует пакет сообщений IMessage и передает его в канал связи. На серверной стороне полученный вызов десериализуется, распаковывается и достигает собственно удаленного объекта.
Передача данных от удаленных объектов обратно в клиентскую часть осуществляется по этой же цепочке.
Слайд 11Координация потоков
Синхронизация в C#. Инструменты .NET Framework
Координация потоков
Синхронизация в C#. Инструменты .NET Framework
Слайд 12Координация потоков
Средства синхронизации потоков в C#
C# поддерживает параллельное выполнение кода через многопоточность.
Координация потоков
Средства синхронизации потоков в C#
C# поддерживает параллельное выполнение кода через многопоточность.
Управление многопоточностью осуществляет планировщик потоков, эту функцию CLR обычно делегирует операционной системе. На однопроцессорных компьютерах планировщик потоков осуществляет квантование времени. На многопроцессорных компьютерах многопоточность реализована как смесь квантования времени и подлинного параллелизма, когда разные потоки выполняют код на разных CPU.
Потоки и процессы ОС отчасти схожи. Например, время разделяется между процессами, исполняющимися на одном компьютере, так же, как между потоками одного приложения. Но процессы ОС полностью изолированы друг от друга. Потоки же разделяют динамическую память (кучу) с другими потоками этого же приложения.
Основные средства синхронизации потоков в C# см. в таблицах и в рекомендованной литературе.