НОУ ІНТУІТ, Лекція, Багаторівнева архітектура

лекція

У першому полі "CoClass Name" нам необхідно ввести ім'я створюваного модуля, назвемо його MyRDM. Наступні два поля вимагають детальнішого вивчення.

ПолеInstancingвимагає вибору способу створення екземплярів сервера, коли клієнт намагається отримати доступ до даних. Зауважимо, що Windows автоматично завантажує сервер програм, коли починає працювати клієнт. Можливі такі способи завантаження сервера:

  • Internal- за такої моделі сервер COM не зможе створюватися із зовнішніх додатків. Використовується рідко, переважно, коли потрібно керувати доступом за допомогою проміжного рівня проксі.
  • Single Instance- при виборі цієї моделі для кожного клієнтського з'єднання буде створено свій екземпляр сервера.
  • Multiple Instance- у цій моделі всі клієнтські з'єднання використовують єдиний екземпляр сервера.

У цьому полі залишаємо метод за промовчаннямMultiple Instance.

ПолеThreading Modelпропонує вибрати модель потоків, що дозволяє розподіляти з'єднання окремих потоків без необхідності застосування додаткового коду. Допустимі такі моделі:

  • Single(Одиночна) - для клієнтів виділяється один потік, всі клієнти працюють послідовно. Вибір такої моделі може виявитися невдалим у розрахованому на багато користувачів середовищі, і використовується рідко.
  • Apartment(Роздільна) - для кожного клієнта створюється власний потік. У поєднанні зMultiple Instanceцей спосіб дає найвищі результати і найчастіше застосовується.
  • Free(Вільна) - один екземпляр модуля даних може одночасно відповідати на кілька запитів клієнтів, використовуючи різні потоки.
  • Both(Обидва) - поєднує моделі Free і Apartment.
  • Neutral(Нейтральний) - різні клієнти можуть одночасно викликати віддалений модуль даних із кількох потоків, при цьому модель COM стежить, щоб не було конфлікту викликів. Однак може виникнути конфлікт потоків, який відстежується лише у версії COM+. За відсутності цієї версії потрібно використовувати модель Apartment.

У цьому полі залишаємо модель за замовчуваннямApartment.