4. System.Net
• WebClient - надає загальні методи обміну даними з ресурсом, заданим через URI
• WebRequest і WebResponse - утворюють основу так званих підключаючих протоколів, які є
реалізацією мережевих служб, що дозволяють розробляти програми, що використовують
ресурси Інтернету, не піклуючись про конкретні особливості окремих протоколів.
• Cookie - надає набір властивостей і методів, які використовуються для управління куками.
• Dns - надає прості функціональні можливості розпізнавання доменних імен.
• EndPoint – ідентифікує мережеву адресу
5. Serialization
• Серіалізація може бути визначена як процес збереження стану екземпляра об'єкта на носії.
• В ході цього процесу, публічні та приватні поля об'єкта і ім'я класу, включаючи збірку, яка
містить клас, перетворюється в потік байтів, який потім записується в потік даних.
• Коли об'єкт десеріалізовується, створюється точний клон вихідного об'єкта.
• У бінарної серіалізації, всі члени, навіть ті, які тільки для читання, серіалізуються, а
продуктивність покращується.
• XML серіалізація забезпечує більшу читабельність коду, а також велику гнучкість спільного
використання об'єктів і використовується в цілях сумісності.
• XML серіалізацІя також може бути використаний для серіалізації об'єктів в XML-потоки, які
відповідають стандарту SOAP.
8. Named pipe
• Іменований канал - один з методів міжпроцесорної взаємодії,
• Розширення поняття конвейєра в Unix подібних ОС
• Іменований канал дозволяє різним процесам обмінюватися даними, навіть якщо
програми, що виконуються в цих процесах, з самого початку не були написані для
взаємодії з іншими програмами.
• Введений з .Net Framework 3.5
10. Sockets (Сокети)
• Сокет - назва програмного інтерфейсу для забезпечення обміну даними між
процесами.
• Процеси при такому обміні можуть виконуватися як на одній машині, так і на
різних ЕОМ, пов'язаних між собою мережею.
• Сокет - абстрактний об'єкт, який представляє кінцеву точку з'єднання.
• Слід розрізняти клієнтські і серверні сокети.
11. Sockets (Сокети)
• Кожен процес може створити слухаючий сокет (серверний сокет) і прив'язати
його до якогось порту операційної системи.
• Процес, що слухає, зазвичай знаходиться в циклі очікування, тобто прокидається
при появі нового з'єднання.
• При цьому зберігається можливість перевірити наявність з'єднань у цей час,
встановити тайм-аут для операції тощо.
• Кожен сокет має свою адресу.
12. Типи сокетів
• Stream socket (Потоковий сокет) - сокет з встановленим з'єднанням, що
складається з потоку байтів, який може бути двонаправленим, тобто через цю
кінцеву точку додаток може і передавати, і отримувати дані (TCP).
• Datagram socket (Датаграмний сокет) – сокети без організації зєднань,
одностороння відправка (UDP).
• Raw socket (Сирий сокет) – повідомлення відправляється напряму додатку, який
має реалізувати власний аналізатор пакетів
• Sequenced Packet Sockets (Сокет послідовних пакетів) – схожий на потоковий,
тільки зберігаються межі записів
13. System.Net.Sockets
• MulticastOption - клас MulticastOption встановлює значення IP-адреси для приєднання до IP-
групи або для виходу з неї.
• NetworkStream - реалізує базовий клас потоку, з якого дані відправляються і в якому вони
отримуються. Це абстракція високого рівня, що представляє з'єднання з каналом зв'язку TCP
/ IP.
• TcpClient - будується на класі Socket, щоб забезпечити TCP-обслуговування на більш
високому рівні. TcpClient надає кілька методів для відправки та отримання даних через
мережу.
• TcpListener - побудований на низкорівневому класі Socket. Його основне призначення -
серверні додатки. Він очікує вхідні запити на з'єднання від клієнтів і повідомляє додаток про
будь-які з'єднання.
14. System.Net.Sockets
• UdpClient UDP - це протокол, що не організовує з'єднання, отже, для реалізації
UDP-обслуговування в .NET потрібна інша функціональність.
• SocketException - вийнято, який породжується, коли в сокеті виникає помилка.
• Socket - сам клас Socket. Він забезпечує базову функціональність програми
сокета.
15. Socket
• Accept () - Створює новий сокет для обробки вхідного запиту на з'єднання.
• Bind () - Пов'язує сокет з локальною кінцевою точкою для очікування вхідних запитів на
з'єднання.
• Close () - Змушує сокет закритися.
• Connect () - Встановлює з'єднання з віддаленим хостом.
• GetSocketOption () - Повертає значення SocketOption.
• IOControl () - Встановлює для сокета низькорівневі режими роботи. Цей метод забезпечує
низькорівневий доступ до лежачого в основі класу Socket.
• Listen () - Поміщає сокет в режим прослуховування (очікування). Цей метод призначений
тільки для серверних додатків.
• Receive () - Отримує дані від зєднаного сокета.
16. Socket
• Poll () - Визначає статус сокета.
• Select () - Перевіряє статус одного або декількох сокетов.
• Send () – Відправляє дані з'єднаному сокету.
• SetSocketOption () - Встановлює опцію сокета.
• Shutdown () - Забороняє операції відправки та отримання даних на сокеті.
19. RPC (Remote procedure call )
RPC - протокол, що дозволяє програмі, запущеній на одному комп'ютері бути
викликаною на іншому комп'ютері без написання безпосередньо коду для цієї
операції.
• Асиметричність - одна із сторін є ініціатором
• Синхронність - виконання процедури, що викликає віддалену процедуру,
призупиняється з моменту видачі запиту і відновлюється тільки після повернення з
викликаної процедури.
20. RPC
• Sun RPC (бінарний протокол на базі TCP та UDP)
• Net Remoting (бінарний протокол на базі TCP, UDP, HTTP)
• XML-RPC (текстовий протокол на базі HTTP)
• SOAP – Simple Object Access Protocol (текстовий протокол на базі HTTP)
• Java RMI – Java Remote Method Invocation
• JSON-RPC J – javaScript Object Remote Procedure Calls (текстовий, на базі HTTP)
21. IDL (Interface Definition Language)
Мова специфікацій для опису інтерфейсів
• XML-RPC, попередник SOAP
• Web Services Description Language (WSDL)
• OMG IDL - стандартизованийObject Management Group і реалізований в CORBA для DCE/RPC
сервісів
• Microsoft Interface Definition Language (MIDL) – розширення OMG IDL щоб додати підтримку
Component Object Model (COM) і Distributed Component Object Model (DCOM)
• Open Service Interface Definitions
• Platform-Independent Component Modeling Language
23. .NET Remoting
• Прикладний програмний інтерфейс (API) від Microsoft для взаємодії між процесами.
• Дозволяє програмі робити об'єкт (об'єкт ремоутінгу) доступним через границі ремоутінгу, такі
як різні програмні домени (application domains), процеси чи навіть різні комп'ютери, з'єднані у
мережу.
• У клієнтській програмі всі запити до об'єкта ремоутінгу проксуються в .NET Remoting
середовищі за допомогою Channel об'єктів, таким чином інкапсулюється спосіб
транспортування (TCP потоки, HTTP потоки та іменовані канали(англ. named pipes)).
25. Remote Objects
• Будь-який об'єкт за межами домену (application domain) додатка, що викликає, слід
вважати віддаленим, де об'єкт буде реконструйований. Локальні об'єкти, які не
можуть бути серіалізовані не можуть бути передані в інший домен програми, і тому
не віддалені.
• Обєкт може стати віддаленим, якщо наслідується від MarshalByRefObject абоякщо
він серіалізований через атрибут [Serializable] чи через імплементацію Iserializable.
26. Типи .NET Remotable Objects
• Single Call – обслуговують один вхідний запит. Корисні в ситуаціях, коли об'єкти необхідні, щоб
зробити кінцевий обсяг роботи. Не можуть містити інформацію про стан між викликами методів.
• Singleton Objects - об'єкти, які обслуговують безліч клієнтів, і, отже, обмін даними за рахунок
збереження інформації про стан між клієнтським запусками. Вони корисні в тих випадках, коли
данв повинні бути розділені між клієнтами в явному вигляді, а також в яких накладні витрати
створення і підтримки об'єктів є істотними.
• Client-Activated Objects - об'єкти на стороні сервера, які активуються за запитом клієнта. Коли
клієнт відправляє запит на об'єкт сервера за допомогою оператора “new”, повідомлення із
запитом на активацію відправляється на віддалений додаток. Потім сервер створює екземпляр
запитуваного класу, і повертає ObjRef назад в клієнтську програму, що його викликала.
27. Channels
• Інфраструктура .NET Remoting забезпечує механізм, за допомогою якого потік байтів
посилається від однієї точки до іншої (клієнта до сервера і т.д.).
• Це досягається за допомогою каналу. Строго кажучи, це клас, який реалізує інтерфейс
IChannel.
• Є два зумовлених .NET Remoting канали в System.Runtime.Remoting.Channels -TcpChannel і
HttpChannel.
• Щоб використовувати TcpChannel, сервер повинен створити екземпляр і зареєструвати клас
TcpServerChannel, а клієнт, клас TcpClientChannel.
28. Channels
• Інфраструктура .NET Remoting забезпечує механізм, за допомогою якого потік байтів
посилається від однієї точки до іншої (клієнта до сервера і т.д.).
• Це досягається за допомогою каналу. Строго кажучи, це клас, який реалізує інтерфейс
IChannel.
• Є два зумовлених .NET Remoting канали в System.Runtime.Remoting.Channels -TcpChannel і
HttpChannel.
• Щоб використовувати TcpChannel, сервер повинен створити екземпляр і зареєструвати клас
TcpServerChannel, а клієнт, клас TcpClientChannel.