Синхронізація у розподілених інформаційних системах



Стаття | Article    

Download

У статті здійснено аналіз особливостей синхронізації даних у розподілених інформаційних системах. Розглянуто розподілені інформаційні системи та окреслено їхні сутнісні характеристики. Автором здійснено дослідження прикладів синхронізації.

Ключові слова: синхронізація, синхронізація даних, розподілені інформаційні системи

Synchronization in distributed information systems

The article presents the analysis of features of data synchronization in distributed information systems. Considered distributed information systems and determines their essential characteristics. The author conducts a study of examples of synchronization.

Keywords: synchronization, data synchronization, distributed information systems

Yurchyna Oleksii

Bugai Alexander

students of NTUU KPI, Ukraine, Kyiv

Вступ

Задачі та виклики, що постають перед людьми у сучасному інформаційному суспільстві, характеризуються значною складністю, елементами невизначеності, великими потребами у матеріальних та інтелектуальних ресурсах. Для їх розв’язання необхідно об’єднати зусилля багатьох людей та залучати потужні засоби обчислювальної техніки. Така кооперація може призвести до виникнення неконтрольованих або хаотичних режимів роботи системи, критично пов’язаних із людським чинником. У зв’язку з цим актуальним є дослідження та реалізація алгоритмів та методів синхронізації файлової інформації.

Ні для кого не секрет, що створення програмного забезпечення – це складний процес, який, з одного боку, має багато загального з творчістю, а з іншого, – хоча і високоприбутковий, але й високозатратний бізнес. Жорстка конкуренція на ринку змушує розробників до пошуку більш ефективних методів роботи, шляхів створення програмних систем у більш короткі строки, з меншими витратами і кращою якістю. Складність програм постійно збільшується.

На сьогоднішній день практично всі провідні компанії - розробники технологій і програмних продуктів (IBM, Oracle, Borland) мають розвинені технології створення ПЗ, які створювалися як власними силами, так і за рахунок придбання продуктів і технологій, створених невеликими спеціалізованими компаніями.

В даний час одним з найбільш популярних носіїв інформації є флеш-диск. Його зручність підключення до комп'ютера, компактні розміри і, в той же час, досить велика ємність, дозволяють зберігати на ньому усю необхідну в повсякденному користуванні інформацію. Але, не дивлячись на всі плюси даного носія, повністю покладатися на нього не можна: компактні розміри несуть загрозу втрати диска, а технологія зберігання інформації (електронні затвори) не дозволяє зберігати інформацію протягом тривалого періоду часу. Тому, найкращим рішенням буде використання флеш-диска з регулярним створенням резервних копій даних. Це досить монотонне заняття, яке можна доручити програмі.

У зв’язку з цим актуальним є дослідження синхронізації у розподілених інформаційних системах.

Виклад основного матеріалу

Розподілена система - сукупність незалежних комп'ютерів, яка представляється користувачеві єдиним комп'ютером. Приклади: мережа робочих станцій (вибір процесора для виконання програми, єдина файлова система), роботизований завод (роботи пов'язані з різними комп'ютерами, але діють як зовнішні пристрої єдиного комп'ютера, банк з безліччю філій, система резервування авіаквитків.

Чому створюються розподілені системи? У чому їх переваги перед централізованими ЕОМ?

1-а причина - економічна. Закон Гроша (Herb Grosh, 25 років тому) - швидкодія процесора пропорційна квадрату його вартості. З появою мікропроцесорів закон перестав діяти - за подвійну ціну можна отримати той же процесор з дещо більшою частотою.

2-а причина - можна досягти такої високої продуктивності шляхом об'єднання мікропроцесорів, яка недосяжна в централізованому комп'ютері.

3-я причина - природна розгалуженість (банк, підтримка спільної роботи групи користувачів ).

4-а причина - надійність (вихід з ладу декількох вузлів незначно знизить продуктивність).

5-я причина - нарощуваність продуктивності. В майбутньому головною причиною буде наявність величезної кількості персональних комп'ютерів і необхідність спільної роботи без відчуття незручності від географічного і фізичного розподілу людей, даних і машин [2, c.7].

Чому потрібно об'єднувати PC в мережі?

$·$ Необхідність розділяти дані.

$·$ Перевага розділення дорогих периферійних пристроїв, унікальних інформаційних і програмних ресурсів.

$·$ Досягнення розвинених комунікацій між людьми. Електронна пошта в багатьох випадках зручніше листів, телефонів і факсів.

$·$ Гнучкість використання різних ЕОМ, розподіл навантаження.

$·$ Спрощення поступової модернізації допомогою заміни комп'ютерів [1, c. 44].

Недоліки розподілених систем:

$·$ Проблеми (програми, мови, ОС).

$·$ Проблеми комунікаційної мережі (втрати інформації, перевантаження, розвиток і заміна).

$·$ Секретність.

Зазвичай децентралізовані алгоритми мають наступні властивості:

$·$ Інформація, що відноситься до справи, розподілена серед ЕОМ.

$·$ Процеси приймають рішення на основі тільки локальної інформації.

$·$ Не повинно бути єдиної критичної точки, вихід з ладу якої призводив би до краху алгоритму.

$·$ Не існує загальних годин або іншого джерела точного глобального часу [5, c. 33].

Перші три пункти всі говорять про неприпустимість збору всієї інформації для прийняття рішення в одне місце. Забезпечення синхронізації без централізації вимагає підходів, відмінних від використовуваних в традиційних ОС. Останній пункт дуже важливий - в розподілених системах досягти згоди щодо часу зовсім непросто. Важливість наявності єдиного часу можна оцінити на прикладі програми make в ОС UNIX. Головні теоретичні проблеми - відсутність глобальних годин і неможливість зафіксувати глобальний стан (для аналізу ситуації - виявлення недлоків, для організації проміжного запам'ятовування).

Явища синхронізації систем поширені у природі, техніці та суспільстві [3]. За певних умов вони можуть зумовлюватись простими фізичними чи хімічними законами або колективною взаємодієюактивних об’єктів (агентів) зі складною динамікою поведінки. Тут під активними розуміємо автономні об’єкти, здатні контролювати стани зовнішнього середовища, виробляти і реалізовувати керуючі сигнали.

Прикладами синхронізації у природі є ритмічне світіння рою комах-світлячків, сюрчання цвіркунів, рух косяків риб, політ зграї птахів тощо. Узгодження біологічних ритмів живих організмів із зовнішніми природними чинниками, формування серцевих ритмів та електричних ритмів мозку є проявами синхронізації у біології та медицині. Сихронізація є центральним механізмом обробки інформації нейронами у різних ділянках мозку та передавання інформації між цими областями.

Синхронізація потоків коду та даних необхідна для забезпечення роботи сучасних розподілених програмних засобів і сховищ даних з мережевою реалізацією, прикладом яких є мультиагентні системи [3].

У мультиагентних системах синхронізація необхідна для забезпечення узгодженої роботи їх складових частин, передавання повідомлень між агентами, забезпечення умов самоорганізації, коли розподілена система поводиться як цілісний, штучносформований організм. Під самоорганізацією розуміють цілеспрямований процес створення, відтворення, впорядкування або вдосконалення організації (структурита функцій) складної динамічної системи за рахунок внутрішніх факторів, без відповідного зовнішнього впливу [4, c.25].

Процеси синхронізації в системах різної природи мають багато спільного, їх можна вивчити з використанням загальних математичних та обчислювальних інструментів. Електротехнічними моделями синхронізації системи розподілених об’єктів, як правило, слугують мережі синхронізації осциляторів [5]. Для вивчення синхронізації використовують методи теорії керування, коливань, фазової динаміки, відображень, нелінійних середовищ та мереж, хаосу, фракталів, клітинних автоматів тощо.

У теорії синхронізації виділяють дві основні частини:

$1)$ класичну теорію синхронізації, що вивчає явища у зв'язаних періодичних авто коливних системах;

$2)$ теорію хаотичної синхронізації, яка вивчає кооперативну поведінку хаотичних систем.

Серед систем хаотичної синхронізації виділяють три головних типи:

$1)$ повна (або ідентична) синхронізація – стани зв'язаних об’єктів повністю збігаються;

$2)$ узагальнена синхронізація – виходи об’єктів пов'язані через деяку функцію;

$3)$ фазова синхронізація – встановлення деяких співвідношень між фазами об’єктів, що взаємодіють, результатом чого є збіг їхніх характерних частот або характерних часових масштабів.

Розрізняють такі види синхронізації об’єктів:

$1)$ примусова синхронізація об’єктів за допомогою зовнішнього джерела сигналів, наприклад, генератора тактової частоти;

$2)$ вільна просторово розподілена синхронізація об’єктів між собою.

Розглянемо основні принципи алгоритму проведення синхронізації даних клієнта по кроках:

$1.$ В певний момент часу роботи системи клієнта до підсистеми синхронізації надходить запитна початок проведення сеансу синхронізації даних. Якщо пристрій користувача в цей момент має підключений доступ до мережі інтернет та є можливість зв’язатись з центральним сервером синхронізації то продовжуємо цей процес, якщо ні – повертається помилка про неможливість проведення синхронізації в даний момент.

$2.$ Генеруємо новий ідентифікатор версії стану локальних даних клієнта.

$3.$ Далі на клієнті відбувається формування пакету змінених даних. Якщо з моменту проведення останнього сеансу синхронізації жодні зміни не були внесені – список змінених рядків буде порожнім.

$4.$ Після того яксписок змінених даних сформований він відправляється на центральний сервер разом з ідентифікатором версії даних останньої синхронізації та ідентифікатором поточної версії, який щойно згенеровано. Якщо синхронізація ще жодного разу не проводилась то версія останньої синхронізації буде порожньою.

$5.$ Отримавши пакет сервіс синхронізації перевіряє чи є в ньому змінені рядки: якщо немає то клієнт не вносив змін в локальну БД, тому переходимо до кроку 10, якщо є – виконуємо процес далі.

$6.$ Якщо версія останньої синхронізації виявилась актуальною (останньою версією на сервері) – отже клієнт працював з поточним станом даних серверу і його зміни точно не конфліктують зі змінами на сервері (Розв’язання конфліктів не потребується тому переходимо до кроку 8).

$7.$ У тому разія кщо на попередньому кроці виявилось, що з моменту коли клієнт синхронізувався востаннє були внесені зміни до центрального сховища то перед збереженням його змін потрібно виконати дослідження на наявність конфліктів та розв’язати їх.

Висновки

Отже, явища синхронізації систем поширені у природі, техніці та суспільстві. За певних умов вони можуть зумовлюватись простими фізичними чи хімічними законами або колективною взаємодією активних об’єктів (агентів) зі складною динамікою поведінки. Тут під активними розуміємо автономні об’єкти, здатні контролювати стани зовнішнього середовища, виробляти і реалізовувати керуючі сигнали. Результати роботи доцільно використати для узгодження роботи складових частин мультиагентних систем різного призначення, передавання повідомлень між агентами, побудови протоколів комунікації, забезпечення умов самоорганізації мультиагентних систем.

Перелік посилань

$1.$ Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. / Дейт К. Дж. – К.: Издательский дом "Вильямс", 2000. – 848 с.

$2.$ Третяк В.Ф. Проблеми розвитку програмного забезпечення середовища розподілених обчислень GRID / В.Ф. Третяк, Д.Ю. Голубничий, І.О. Золотарьова // Матеріали третьої наукової конференції Харківського університету Повітряних Сил мені Івана Кожедуба. – Х.: ХУПС, 2007. – С. 7.

$3.$ Синхронизация [Електронний ресурс]. Режим доступу: http://ru.wikipedia.org/wiki/Синхронизация\_%28информатика%29.

$4.$ Weiss G. Multiagent Systems. A Modern Approach to Distributed Artificial Intelligence / G. Weiss, editor. – Springer Verlag, Berlin, 1996. – 643 pp.

$5.$ Wooldridge M. An Introduction to Multiagent Systems / M. Wooldridge. – John Wiley & Sons, 2002.– 366 p. 3

May 20, 2017