йно доступних ООСУБД. Система була розроблена компанією Servio -Logic спільно з OGI. У вихідному варіанті системи розробники GemStone спиралися на мову Smalltalk. Хоча в перших випусках системи її основна мова називався Opal, відразу було видно, що насправді цього всього лише Smalltalk з підтримкою стабільного зберігання об'єктів, і незабаром назва мови було замінено на GemStone Smalltalk. Згодом у GemStone була забезпечена підтримка мов C і C + +, але в усі часи базовою мовою залишався Smalltalk , А всі інші інтерфейси будувалися поверх базового. І серверна, і клієнтська частини системи можуть працювати під управлінням всіх основних гілок ОС UNIX і всіх розвинених варіантів Windows. В даний час продукт підтримується, розвивається і розповсюджується компанією GemStone Systems Inc. p> Система заснована на триланкової архітектурі клієнт-сервер, в якій прикладна обробка даних проводиться на середньому рівні між процесом взаємодії з користувачем і процесом, підтримуючим сховище даних. Важливість цього підходу полягає в тому, що, якщо у додатку використовується багато даних, то код додатку доцільно розташувати на стороні сховища даних, а якщо в додатку виробляється багато змін над невеликим обсягом даних, то має сенс розмістити код додатку на стороні користувача. Тим самим, архітектура дозволяє зменшити обсяг мережевого трафіку без перевантаження сервера, що підвищує швидкість обробки даних.
Для управління мультидоступу використовується механізм транзакцій. Механізм заснований на так званому оптимістичному підході, при якому кожна сесія працює з власної локальної копією сховища об'єктів, і злиття вироблених в сесіях змін сховища відбувається при завершенні транзакції. Якщо при завершенні транзакції виявляється, що вироблені в ній зміни конфліктують із змінами інших раніше зафіксованих транзакцій, то фіксація транзакції не проводиться, транзакція не закінчується, і вирішення проблеми покладається на користувача. Автоматична блокування об'єктів не проводиться, але користувач може явно запросити блокування, що підвищує шанси на успішну фіксацію транзакції.
Для забезпечення безпеки даних підтримується механізм авторизації доступу на рівні власника об'єкта та його групи користувачів, так що може бути обмежено доступ до деяких об'єктів або деяким методам об'єктів. До кожного об'єкту приписується авторизаційний об'єкт, що містить дані про те, які користувачі і в якому режимі (читання або зміни) мають доступ до об'єкта.
Для відновлення бази даних після збоїв апаратури використовуються механізми реплікації, резервного копіювання та журналізації. Будь авторизований користувач може запросити виконання повного або часткового копіювання. Відновлення бази даних після збою системи або дискових пристроїв починається з використання останньої за часом резервної копії. Після цього за допомогою даних, збережених в журнальних файлах, сховище об'єктів наводиться до стану, відповідному останнь...