Borland Delphi як засіб розробки масштабованих додатків | Системи управління базами даних | Видавництво «Відкриті системи»

  1. Borland Delphi як засіб розробки масштабованих додатків
  2. 1. Проблема масштабованості додатків.
  3. 2. Підхід Delphi до розробки Windows-додатків
  4. 3. Borland Database Engine - інструмент доступу до даних
  5. 4. Архітектура database - компонент Delphi
  6. 5. Додаткові інструментальні засоби, що входять до Delphi
  7. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  8. Borland Delphi як засіб розробки масштабованих додатків
  9. 1. Проблема масштабованості додатків.
  10. 2. Підхід Delphi до розробки Windows-додатків
  11. 3. Borland Database Engine - інструмент доступу до даних
  12. 4. Архітектура database - компонент Delphi
  13. 5. Додаткові інструментальні засоби, що входять до Delphi
  14. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  15. Borland Delphi як засіб розробки масштабованих додатків
  16. 1. Проблема масштабованості додатків.
  17. 2. Підхід Delphi до розробки Windows-додатків
  18. 3. Borland Database Engine - інструмент доступу до даних
  19. 4. Архітектура database - компонент Delphi
  20. 5. Додаткові інструментальні засоби, що входять до Delphi
  21. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  22. Borland Delphi як засіб розробки масштабованих додатків
  23. 1. Проблема масштабованості додатків.
  24. 2. Підхід Delphi до розробки Windows-додатків
  25. 3. Borland Database Engine - інструмент доступу до даних
  26. 4. Архітектура database - компонент Delphi
  27. 5. Додаткові інструментальні засоби, що входять до Delphi
  28. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  29. Borland Delphi як засіб розробки масштабованих додатків
  30. 1. Проблема масштабованості додатків.
  31. 2. Підхід Delphi до розробки Windows-додатків
  32. 3. Borland Database Engine - інструмент доступу до даних
  33. 4. Архітектура database - компонент Delphi
  34. 5. Додаткові інструментальні засоби, що входять до Delphi
  35. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  36. Borland Delphi як засіб розробки масштабованих додатків
  37. 1. Проблема масштабованості додатків.
  38. 2. Підхід Delphi до розробки Windows-додатків
  39. 3. Borland Database Engine - інструмент доступу до даних
  40. 4. Архітектура database - компонент Delphi
  41. 5. Додаткові інструментальні засоби, що входять до Delphi
  42. 6. Delphi: від настільних систем - до архітектури клієнт-сервер
  43. Borland Delphi, як засіб розробки масштабованих додатків
  44. 1. Проблема масштабованості додатків.
  45. 2. Підхід Delphi до розробки Windows-додатків
  46. 3. Borland Database Engine - інструмент доступу до даних
  47. 4. Архітектура database - компонент Delphi
  48. 5. Додаткові інструментальні засоби, що входять до Delphi
  49. 6. Delphi: від настільних систем - до архітектури клієнт-сервер

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

6) У даного випадка розглядається Delphi в варіанті Client / Server. Інструменти, що не входять в desktop-версію Delphi for Windows, позначені (*).

7) У даному контексті під "масштабуванням" понімаестя як-такої процессс перенесення додатків, що працюють з локальними даними, в архітектуру клієнт-сервер.

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

Borland Delphi як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронного видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

В основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. В основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному і тому ж додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Достатньо лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

У BDE підтримує дві розмовні мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтована на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даних:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", який взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, включає в себе і інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. ін. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначений для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета додатки, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм і зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

Borland Delphi, як засіб розробки масштабованих додатків

С.В. Орлик

Група користувачів Delphi, редактор російськомовного електронної видання Delphi Interactive Journal. FidoNet 2: 5020 / 87.46

Проблема масштабованості додатків. Підхід Delphi до розробки Windows-додатків Borland Database Engine - інструмент доступу до даних Архітектура database - компонент Delphi Додаткові інструментальні засоби, що входять до Delphi Delphi: від настільних систем - до архітектури клієнт-сервер

1. Проблема масштабованості додатків.

Однією з найбільш "гарячих" тем останніх років в області комп'ютерної обробки інформації та баз даних (БД) стала проблема масштабованості 1) додатків, що працюють з БД.

"Масштабованість" - здатність системи адаптуватися до розширення висунутих до неї вимог і зростанню обсягів вирішуваних нею завдань. У застосуванні до додатків, що працюють з БД, поняття масштабованості має на увазі можливість переходу на якісно більш потужні СУБД з мінімумом змін в самих додатках. У переважній більшості випадків це перенесення desktop-додатків в архітектуру клієнт-сервер (Upsizing). В силу відмінності традиційних концепцій desktop-БД і серверних-БД цей процес викликає безліч суперечок і питань. У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?

У той час як desktop-БД мають на увазі відносини між "записами" і "полями", основою серверної концепції є "безліч" даних (set-oriented databases). Відсутність єдиного структурованого мови побудови запитів в одному випадку, і навігаційних методів доступу, в іншому, сильно ускладнюють upsizing. А якщо згадати про те, що desktop-БД не мають коштів підтримки цілісності даних (в дещо меншій мірі це відноситься до Paradox), а тим більше можливостей гнучких засобів управління повноваженнями користувачів (security access level), стає зрозумілим, що ідеологія desktop-додатків докорінно відрізняється від ідеології клієнт-серверних додатків.

Поняття масштабованості тісно пов'язане і з властивістю інтероперабельності. Що ж це таке в застосуванні до додатків БД? Інтероперабельність таких систем передбачає роботу з гетерогенними даними, тобто з даними, що зберігаються в різних форматах або на різних SQL-серверах. Причому дані необов'язково повинні зберігатися в традиційних БД (прикладом може служити оболонка Lotus Notes або спеціалізовані геоінформаційні системи).

Стає очевидним, що масштабування (в широкому сенсі слова) більшості існуючих desktop-систем представляє аж ніяк не тривіальну завдання.

Вирішенню цих проблем присвячена технологія, пропонована фірмою Borland. Нижче ми розглянемо засіб створення Windows-додатків - Borland Delphi.

Перш ніж говорити про створення frontend-додатків 2) в Delphi, коротко познайомимося з загальними можливостями цього продукту без прив'язки до баз даних.

2. Підхід Delphi до розробки Windows-додатків

Borland Delphi відноситься до класу RAD-систем (Rapid Application Development - середовище швидкої розробки додатків) .В основі цього продукту лежить компілятор з мови третього покоління Object Pascal (сімейство мов програмування Turbo Pascal). Візуальні засоби програмування "two-way tools" 3) дозволяють, в свою чергу, створити працюючий багатофункціональний додаток, практично не написавши жодного рядка коду.

Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) - об'єктно-орієнтована бібліотека компонентів (їх в стандартному постачанні більш 75), призначена для створення призначеного для користувача інтерфейсу і доступу до системних ресурсів як операційної системи (DOS), так і графічної оболонки (Windows ), а також для роботи з БД.

Розглянемо особливості процесу розробки програми в Delphi.

"Компонентна" архітектура додатків Delphi надає інтуїтивно зрозумілий підхід до програмування в Windows. Цей підхід, в першу чергу, полягає в візуальному конструюванні GUI-форм 4) додатки за допомогою приміщення в форми тих чи інших системних і інтерфейсних об'єктів (з так званої "палітри компонент") та встановлення їх властивостей і поведінки. Ті читачі, які хоча б раз запускали Borland dBase for Windows або Paradox for Windows, побачать в Delphi знайоме засіб - Object Inspector. Цей інструмент дозволяє декількома натисканнями кнопки миші встановити або змінити основні властивості компонент, а також прив'язати до подій, на які може реагувати вибраний об'єкт, код, що виконує ті чи інші дії. Компонентна архітектура, яка грунтується на об'єктно-орієнтованому підході, є одним з рішень проблеми повторного використання коду.

Будь-яку форму або все додаток можна зберегти як шаблон (template) і повторно використовувати в нових проектах. Для цього Ви зможете скористатися так званою "галереєю" Delphi (див. Рис. 1)


Малюнок 1.

Економії часу при розробці програми можна досягти використанням так званих "експертів". "Експерт" являє собою вбудований в середу Delphi програмний блок (наприклад, реалізований у вигляді DLL - бібліотеки динамічного компонування Windows), який, після діалогу з розробником, генерує вихідний код і форми вже з розвиненими функціональними можливостями. Для створення нових "експертів" Delphi надає ряд модулів VCL (, див. Рис. 2)


Малюнок 2.

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

Для перегляду ієрархії класів, отримання інформації про модулях, а також оголошеннях типів, констант, змінних і функцій призначене засіб візуального середовища розробки Delphi - Object Browser (див. Рис. 3).


Малюнок 3.

Безумовно варто згадати і про підтримку з боку Delphi таких засобів групової розробки як, наприклад, Intersolv PVCS (версії 5.1).

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

Так як мова йде про Delphi як про професійний інструмент, слід зазначити кілька важливих особливостей мови Object Pascal.

У цій мові реалізований ряд розширень основних об'єктно-орієнтованих ознак - інкапсуляції і поліморфізму. З введенням поняття властивості (property) стала стиратися грань між даними об'єкта і методами доступу до цих даних. Поля процедурного типу використовуються для динамічного зміни поведінки примірників об'єктів на етапі виконання програми. Механізм RTTI (RunTime Type Information) і функції класів дозволяють програмісту більш гнучко визначати параметри об'єктів.

Можливості створення нових візуальних компонент за рахунок розширення стандартної ієрархії класів, поряд із засобами настройки палітри компонент, істотно підвищують продуктивність роботи в Delphi (у варіанті Delphi Client / Server більшість модулів VCL представлено в початкових текстах).

Об'єктно-орієнтовані засоби обробки виняткових ситуацій (exception) вкрай важливі для тих додатків, які особливо "критичні" до збоїв. До таких систем як раз і відносяться програми для роботи з БД.

3. Borland Database Engine - інструмент доступу до даних

У основі взаємодії Delphi з БД лежить Borland Database Engine. Цей інструмент являє собою набір функцій для роботи з БД різних форматів - IDAPI, драйвери найбільш поширених форматів БД і утиліту настройки драйверів і псевдонімів. Зупинимося на цих складових частинах BDE більш докладно. (Див. Рис. 4)


Малюнок 4.

IDAPI (Integrated Database Application Program Interface) налічує понад 150 функцій для доступу до БД. Механізм, що лежить в основі цього API, дозволяє одноманітно працювати як з локальними, так і з віддаленими (SQL) даними. У основі цього механізму лежить поняття "курсора". Курсори дозволяють, з одного боку, працювати з віддаленими даними, використовуючи навігаційні методи, з іншого - звертатися до локальних даних через SQL. За рахунок такої ідеології стираються принципові відмінності в побудові desktop-додатків і клієнтських додатків. Як наслідок, розробники, що використовують IDAPI для доступу до даних, можуть дозволити собі в одному й тому самому додатку звертатися до різних форматів даних, формуючи "гетерогенні" запити (heterogeneous joins).

Приклад.

Наступне SQL-вираз показує як зв'язати три таблиці різних форматів (Paradox, Interbase і Sybase) між собою:

select distinct c.cust_no, c.state, o.order_no, i.price from ": Local_alias: customer.db" c,: IB_alias: order o,: SYB_alias: lineitem i where o.cust_no = c.cust_no and o. oder_no = i.order_no


IDAPI не обмежений мінімальним набором функцій. Загальна для різних БД функціональне підмножина розширено відповідно до можливостей і особливостями кожного з доступних форматів, як локальних, так і віддалених.

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


Малюнок 5. Логіка побудови фільтра IDAPI

Для реалізації однаковості доступу до даних, незалежно від їх формату, BDE працює з усіма даними через так звані "драйвери". Розробнику додатків не потрібно знання механізму взаємодії динамічних бібліотек IDAPI з драйверами. Досить лише вміти їх настроювати за допомогою утиліти налаштування BDE.

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


Малюнок 6.

Важливою складовою частиною BDE є технологія Idapter, розроблена Borland спільно з компанією Q + E Software. Вона полягає в трансляції IDAPI-викликів в виклики стандартних методів інтерфейсу ODBC. Це дозволяє істотно розширити ряд доступних СУБД.

В BDE підтримуються дві мови запитів - SQL і QBE, знову-таки для всіх форматів БД, включаючи ODBC-драйвери. Крім того, IDAPI містить функції для реструктуризації даних.

Варто згадати, що BDE як основа взаємодії з даними, крім Delphi, використовується в Borland Paradox for Windows і dBase for Windows.

4. Архітектура database - компонент Delphi

Доступ до баз даних з інструментів розробки Borland не обмежується набором API-функцій. Навпаки, саме об'єктно-орієнтована надбудова над IDAPI є основою взаємодії клієнтських додатків з базами даних. У Delphi такий надбудовою є Visual Data Objects (VDO) - частина VCL, орієнтований на роботу з БД.

Відповідно до логіки Visual Component Library компоненти VDO (їх понад 25) розділені на дві основні групи: Data Access components і Data Control components. Як випливає з назв цих груп, перша з них є "системною", тобто компоненти, що входять до неї відповідають за організацію доступу до БД, друга група відповідає за введення і відображення даних.

Перш ніж говорити про принципи використання VDO, перерахуємо основні компоненти VDO.

Компоненти доступу до даним:

  • TDatabase - "база даних";
  • TTable - таблиця БД;
  • TQuery - SQL-запит;
  • TStoredProc - процедура, що зберігається;
  • TDataSource - джерело даних;
  • TReport - "звіт", взаємодіє з run-time ReportSmith (див. Нижче) через механізм DDE.

Візуальні компоненти:

  • TDBNavigator - компонента надає можливості навігації по "безлічі даних";
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage і ін. - спадкоємці стандартних і розширених інтерфейсних елементів Windows (в ієрархії VCL), які орієнтовані на роботу з БД.

Компоненти TTable і TQuery не відображаються під час виконання програми, але вони забезпечують зв'язок з БД через BDE, будучи, по ідеології VDO, робочим "безліччю даних" (dataset). В ієрархії класів VDO ці компоненти, разом з TStoredProc, мають спільного предка - TDBDataSet - "безліч даних".

Відображені компоненти (Data Control) посилально (через властивості примірників) пов'язані з TTable і TQuery і так званим "джерелом даних" - TDataSource. Така інфраструктура стирає відмінності між роботою користувача з таблицею БД і результатами запиту, не вимагаючи додаткового програмування передачі даних між інтерфейсними елементами і БД.

Цікавою особливістю середовища візуальної розробки Delphi є можливість роботи з "живими" даними (live-data). Така можливість має на увазі відображення реальних даних в Data Controls ще на етапі конструювання форм (design-time). Така властивість середовища Delphi полегшує роботу з розміщення видимих ​​компонентів на формі, в залежності від формату відображення даних, так як програміст, що не компілюючи і не запускаючи додаток, може побачити остаточний результат.

В іншому ідеологія роботи з VDO-компонентами ні чим не відрізняється від звичайних компонентів VCL Delphi.

5. Додаткові інструментальні засоби, що входять до Delphi

Як будь-який розвинене засіб розробки додатків, Delphi, крім середи розробника, містить у собі й інші інструменти. Зупинимося на тих з них, які пов'язані з базами даних 6) .

SQL Links (*) - набір IDAPI-драйверів для зв'язку додатків з віддаленими SQL-серверами БД, наприклад Oracle, Sybase, InterBase і Informix.

Генератор звітів ReportSmith, в залежності від варіанту (Delphi for Windows або Delphi Client / Server) надає відповідні можливості доступу до даних і забезпечує інтерфейс для створення звітів з використанням "live-data conception" (перегляд реальної інформації з БД на етапі конструювання звіту). Запити, перехресні таблиці, графіки, шаблони і багато інших. др. - все це без обмежень обсягу одержуваного звіту.

ReportSmith Run-Time - середовище для доступу до звітів з додатків, написаних на Delphi, реалізована у вигляді Windows MDI-додатки. Взаємодія з додатками здійснюється через DDE-обмін з додатком (див. Вище TReport - Data Access Component).

Local InterBase Server являє з себе однокористувальницький, що працює в середовищі MS Windows, "desktop" -SQL-сервер, для побудови і тестування Delphi- додатків з подальшим масштабуванням їх на промислові БД, наприклад Oracle, Sybase, Informix або Interbase. Володіє практично всіма можливостями реального InterBase Workgroup Server 4.0, включаючи перенесення створених БД на промисловий варіант сервера (див. Статтю П. Красюка "Borland InterBase ..." , СУБД N 2/1995 ).

Windows ISQL (WinISQL) -інтерактівний SQL. Засіб, що дозволяє будувати і виконувати з клієнтських, Windows-робочих місць SQL-запити до локального і віддаленого InterBase-сервера. За допомогою WinISQL ви можете, без написання спеціальних SQL-скриптів, отримати повну інформацію по метаданих БД, наприклад триггерам, доменів, збереженим процедурам і т.п.

Interbase Server Manager - клієнтське Windows-додаток, призначене для адміністрування баз даних Interbase 4.0, як локальних, так і серверних.

Database Expert - "експерт" Delphi, який полегшує побудова скелета застосування, що працює з БД.

Visual Query Builder (*) - засіб середовища Delphi, що дозволяє без знання SQL візуально будувати складні запити до БД, з подальшою генерацією тексту запиту на SQL.

Database Desktop (DBD), будучи "мінімальним" ядром Borland Paradox for Windows, надає можливості по створенню, зміні структури, побудови запитів до віддалених і локальних даних.

6. Delphi: від настільних систем - до архітектури клієнт-сервер

У більшості випадків Delphi-додатки, створені для роботи з локальними даними, можуть отримати доступ до даних на віддаленому сервері, з мінімумом змін самого додатка. Якщо конгруентний (можна порівняти за структурою таблиць) джерело даних (data source) налаштований на SQL-сервер, ви можете "перенаправити" додаток, що мало раніше доступ до локальних даних, всього лише змінивши властивість DatabaseName компонент TTable або TQuery. А якщо, розробляючи desktop-додаток, ви планували в перспективі перехід на більш високий рівень технології (upsizing), витрати на перенесення системи в архітектуру клієнт-сервер можуть полягати тільки в налаштуванні псевдонімів з'єднань BDE.

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

1) Так як російськомовна термінолошія в цій обдасть комп'ютерних технологій ще не склалася остаточно в статті будуть використовуватися також англомовні терміни.

2) "Frontend" (на відміну від desktop-додатків) - клієнтські програми, що працюють з даними в архітектурі клієнт-сервер

3) "two-way tools" - візуальні засоби програмування, що дозволяють синхронізувати процес конструювання інтерфейсних форм й зміна вихідних текстів програми, що розробляється.

4) GUI - Graphic User Interface, стандарт польовательского інтерфейсу в віконних графічних середовищах.

5) Тріади - поняття теорії синтаксичного аналізу. Під тріадою мається на увазі конструкція: два параметра і їх відношення. У конструкції "CustomerNo"> 2000 "параметрами є" CustomerNo "і константа" 2000 ", а ставленням - операція порівняння"> "

6) У даного випадка розглядається Delphi в варіанті Client / Server. Інструменти, що не входять в desktop-версію Delphi for Windows, позначені (*).

7) У даному контексті під "масштабуванням" понімаестя як-такої процессс перенесення додатків, що працюють з локальними даними, в архітектуру клієнт-сервер.

У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?
Що ж це таке в застосуванні до додатків БД?
У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?
Що ж це таке в застосуванні до додатків БД?
У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?
Що ж це таке в застосуванні до додатків БД?
У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?
Що ж це таке в застосуванні до додатків БД?
У чому ж полягають основні проблеми перенесення додатків в архітектуру клієнт-сервер?
Що ж це таке в застосуванні до додатків БД?