Microsoft SQL Server 2008: нові можливості для автоматизації документообігу, Книги та статті, Різне, статті


Автор: Володимир Андреєв, Михайло Петров, компанія DocsVision


Нововведення у версії Microsoft SQL Server 2008 усунули цілий ряд труднощів, з якими стикалися розробники при використанні цієї СУБД в системах автоматизації документообігу.


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


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


Ще одна досить трудноразрешимая проблема при створенні системи документообігу – організація системи розмежування прав доступу. На практиці вона виявляється досить химерною, і її вкрай проблематично було б застосовувати, не маючи потужних обчислювальних можливостей сучасного SQL-сервера.


Всі ці фактори ставлять розробника системи документообігу перед необхідністю використовувати як підсистеми управління даними надійний масштабований промисловий SQL-сервер. При розробці нашої системи DocsVision в якості такого був обраний пакет Microsoft SQL Server, що цілком природно, так як платформа DocsVision досить тісно інтегрована з технологіями компанії Microsoft.


Однак, вибравши SQL Server, при розробці системи автоматизації документообігу ми зіткнулися з цілим рядом труднощів, що зажадало розробки власних сервісів, щоб компенсувати недоліки платформи або замість тих, які були відсутні з причини високої складності їх реалізації. Перш за все це стосувалося роботи з великими масивами файлової інформації: в SQL файлові дані зберігаються в таблиці БД у вигляді бінарних масивів, що при великому обсязі зберігання істотно ускладнює процедури резервного зберігання даних.


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


Випущена в середині минулого року версія Microsoft SQL Server 2008 усунула цілий ряд труднощів, з якими нам доводилося стикатися в попередніх версіях системи. Нижче ми наведемо короткий перелік нових можливостей цієї СУБД, які істотно полегшили реалізацію деяких функцій сіcтеми DocsVision.


Нові типи даних


Як вже було зазначено, в об’єктах системи документообігу буває необхідно по-різному обробляти дату і час. При моделюванні бізнес-об’єктів системи документообігу часто виникають завдання, що вимагають зберігати окремо тільки дату або лише час. Наприклад, етапи проекту зручно розмежовувати датами, тимчасова частина в даному випадку не має сенсу. Розпорядок дня прийнято вказувати в годинах, тут без типа “Час” не обійтися. З появою нових типів даних Date – тільки дата і Time – тільки час як зберігання, так і різні маніпуляції з цими даними (наприклад, обчислення тривалості в днях або в годинах) стали істотно зручніше і простіше.


Автоматизація великих підприємств, транспортних компаній і т. д. вимагає враховувати час в єдиному форматі, при цьому користувачі звикли працювати з локальним часом. Новий тип даних Datetimeoffset – дата-час до часового поясу вельми зручний при побудові розподілених рішень, які стають все більш затребуваними. Обчислення відносних часів при схемі з декількома серверами, що знаходяться в різних часових поясах, представляло раніше істотну проблему. Ще один корисний тип даних – Datetime2, дата-час зі збільшеною точністю (100 наносекунд) і розширеним діапазоном значень, дозволяє фіксувати в журналі події в системі з високою точністю, що часто буває корисно при аналізі системного журналу.


Крім цього в SQL Server 2008 з’явився новий CLR-тип для зберігання та обробки ієрархічних даних Hierarchyid, з його допомогою можна набагато зручніше і, що важливо, ефективніше моделювати різні ієрархічні конструкції, про які ми говорили вище.


Технологія витіснення файлів


Ця технологія виключно зручна при організації великих файлових архівів в рамках системи автоматизації документообігу. Суть її полягає в тому, що файли та інші бінарні дані зберігаються не в таблицях бази даних, як раніше, а у файловій системі NTFS. Крім збільшення швидкості читання / запису для BLOB розміром більше 1 Мбайт, в ній також відсутня обмеження на максимальний розмір в 2 Гбайт, як це було раніше для типів varbinary (max). Тепер максимальний розмір файлу обмежується тільки можливостями дискової підсистеми. При цьому для користувача і, головне, для розробника робота з “витісненими” файлами залишається абсолютно прозорою. Для файлів зберігаються механізми повнотекстового індексування і пошуку, управління резервними копіями і т. п. При цьому з даними FileStream можна працювати як з T-SQL, так і з Win32 API для читання / запису даних.


Недопрацювання даної технології полягає в тому, що файли поки що можуть зберігатися тільки на локальному диску сервера БД, хоча у початковій специфікації заявлялася можливість зберігання даних на мережевих пристроях (Ця технологія носить назву Remote BLOB). Microsoft обіцяє реалізувати цю можливість в одній з наступних версій платформи, при цьому крім сумісності з різними фізичними пристроями зберігання буде підтримуватися і можливість незалежного резервування для файлів, що зберігаються на даних пристроях, що істотно скоротить накладні витрати на організацію резервного зберігання великих файлових архівів.


Стиснення даних


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


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


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


BACKUP Compression – стиснення резервної копії дозволяє заощадити дисковий простір і час при роботі з великими базами даних.


Прозоре шифрування даних


У попередніх версіях системи при спробі збереження в ній зашифрованих даних виникали певні проблеми. По-перше, це вимагало відповідних програмних механізмів, по-друге, зашифровані таким чином дані випадали з системи пошуку. Тепер же система забезпечує можливість шифрування файлу даних, лог-файлів, резервної копії. При цьому дані на диску зберігаються зашифрованими, розшифровуються вони тільки при завантаженні в оперативну пам’ять; шифрування відбувається прозоро для клієнтських додатків – ніяких змін в них не потрібно, режим шифрування налаштовується адміністратором системи. Завдяки цього провайдери Інтернет-сервісів зберігання даних зможуть надати клієнтам гарантії неможливості несанкціонованого доступу до інформації, що зберігається в базі. Для компанії DocsVision це досить актуальне завдання, пов’язана з організацією хостингу системи документообігу на сервісі live.docvision.com.


Управління ключами безпеки


У новій версії SQL Server істотно спростилося управління ключами безпеки. Тепер для цієї мети служить Microsoft Cryptographic API; з’явилася також можливість використовувати зовнішні Hardware Security Modules (HSM) від сторонніх виробників. Можна настроювати політику шифрування (наприклад, розділити ключ на п’ять частин, причому будь-які три з них дозволяють працювати з даними, і т. д.) Ця особливість забезпечує додатковий захист інформації, наприклад, від несанкціонованого доступу до неї адміністратора системи.


Аудит баз даних


У Microsoft SQL Server 2008 з’явилися кошти відстеження змін в базі даних. Можна відстежувати не тільки зміни в таблицях, а й операції створення / зміни об’єктів. Інформація асинхронно скидається у файл, який можна використовувати для аналізу виконаних операцій. Це дозволяє побудувати систему аудиту змін критичних для бізнесу даних.


Розширення служб звітності


Тепер система Reporting Services не залежить від Internet Information Services і споживає менше оперативної пам’яті. Доопрацьовано кеш звітів, з’явилася можливість створювати образи ресурсномістких звітів, можна налаштовувати генерацію звітів за розкладом і т. д. З’явилася можливість підписки на звіт – він буде доставлений групі користувачів в зазначений час по електронній пошті, причому параметри звіту можуть визначатися динамічно для кожного користувача в групі.


Тепер звіти можна впроваджувати в інші додатки, користувачі можуть переглядати їх прямо з Microsoft Word або з Web-порталу. Поліпшилася продуктивність створення звітів. Популярні звіти з однаковими параметрами кешуються, в результаті користувачі отримують результат швидше. З появою образів звітів (snapshots) можна оптимізувати генерацію ресурсномістких вибірок – звіти будуть генеруватися за розкладом, а користувачі отримують доступ до готових вибірках.


Команда MERGE


Ця команда дозволяє ефективно переносити великі масиви даних з однієї таблиці в іншу. Така можливість виявилася корисною при створенні резервних серверів для зберігання історичних даних і при завантаженні даних з системи автоматизації документообігу в OLAP, коли обробляється дуже велике число рядків. Одна команда MERGE замінює кілька колишніх, у результаті чого на виконання операцій витрачається менше часу.


Засоби синхронізації


Останнім часом зросла роль мобільних і віддалених користувачів, і завдання створення offline-клієнта (який міг би продовжувати роботу з системою за межами офісу) для системи документообігу стає все більш нагальною. Сьогодні, щоб отримати доступ до системи, віддаленому користувачеві потрібно з’єднатися з корпоративною мережею, наприклад, через VPN. Microsoft Sync Framework дозволяє реалізувати альтернативну схему роботи для подібних клієнтів. Мобільний користувач працює з offline-копією даних, яка періодично вивантажується в основну базу в той момент, коли доступно з’єднання. Тим самим усувається необхідність відкривати VPN-з’єднання, користувач не залежить від пропускної здатності мережі, поліпшується масштабованість (більше користувачів можуть працювати одночасно) і відмовостійкість програми (У разі збою на сервері користувачі працюють з локальною копією).


Microsoft Synchronization Framework також корисний як альтернатива peer-to-peer реплікації, так як допускає синхронізацію з гетерогенними базами даних, дозволяє застосовувати різні сервіси доступу до даними, наприклад WCF. Цю можливість ми припускаємо підтримувати в новому компоненті системи DocsVision – мобільному клієнта, який розробляється в даний момент.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*