Розподілене об’єктно-орієнтоване програмування - Паралельне та розподілене

Розподілене об'єктно-орієнтоване програмування

Отже, основна відмінність між людиною та андроїдом полягає в тому, що людина приходить зі своїм власним «я», чого не можна сказати про роботу.

- Кері де Бессонет, Towards А Sentential 'Reality' for the Android

Необхідність створення розподілених додатків обумовлена ​​різними причинами.

• Необхідні ресурси (наприклад, бази даних, спеціалізовані процесори, модеми, принтери тощо) розташовані на комп'ютерах. Клієнтські об'єкти (об'єкти, що формують запит на обслуговування) взаємодіють із серверними об'єктами (об'єктами, які реагують на запит обслуговування) для отримання доступу до цих ресурсів.

• Для виконання певної важливої ​​роботи або вирішення насущної проблеми необхідно поєднати об'єкти, що відрізняються часом розробки, розробниками та місцезнаходженням.

• Об'єкти реалізовані в SPMD- або МРМП-архітектурі, розрахованій на використання паралельного програмування, причому ці об'єкти розташовані в різних процесах та на різних комп'ютерах.

В об'єктно-орієнтованому додатку виконувана програмою робота ділиться між кількома об'єктами. Ці об'єкти є моделі певної реальної особистості, реального місця, предмета чи ідеї. Виконання об'єктно-орієнтованої програми змушує її об'єкти взаємодіяти між собою відповідно до правил, закладених у цій моделі. У розподіленому об'єктно-орієнтованому додатку деякі об'єкти, що взаємодіють, будуть створюватися різними програмами, які, можливо, виконуються на різних комп'ютерах. У розділі 3 згадувалося про те, що кожна виконувана програма включає один або кілька процесів. Коженпроцес має власні ресурси. Наприклад, будь-який процес має власну пам'ять, дескриптори файлів, стіковий простір, ідентифікатор тощо. Завдання, що виконуються в одному процесі, не мають прямого доступу до ресурсів, що належать до іншого процесу. Якщо завданням, що виконуються в одному процесі, необхідна інформація, що зберігається в пам'яті іншого процесу, то ці два процеси повинні явно обмінятися інформацією за допомогою файлів, каналів, пам'яті, змінних середовища або сокетів. Об'єкти, що належать різним процесам і потребують взаємодії між собою, також повинні використовувати один із перерахованих вище способів явного обміну інформацією. Як правило, С++-розробник при розробці розподіленого об'єктно-орієнтованого додатка стикається з необхідністю вирішення таких проблем.

• Деко позиція задачі та її розв'язання на безліч об'єктів, причому деякі з них будуть належати раалічним процесам і розміщуватися на різних комп'ютерах.

• Синхронізація взаємодії між локальними та віддаленими об'єктами.

• Обробка помилок та винятків у розподіленому середовищі.