ексти шаблонів, використовувані ERwin при створенні таблиць і тригерів в цільової БД, а саме замінити подвійні лапки на одинарні в текстах використовуваних шаблонів. Після того, як файли шаблонів і сама схема БД готові, необхідно скористатися методом «Forward Engineer Schema Generation» - саме цей метод і здійснює генерацію схеми даних у фізичну існуючу базу даних.
2.5 Розробка програми
Як бути, якщо необхідно створити додаток, який може з однаковим успіхом працювати як у локальній мережі, так і на віддаленому комп'ютері.
Очевидно, що в цьому випадку модель доступу до даних повинна бути розширена, тому наявність великої кількості віддалених клієнтів робить традиційні схеми створення додатків БД малоефективними.
У цьому розділі буде розглянута модель розподіленого додатку БД, яка називається багатоланкової (multitiered), і, зокрема, її найбільш простий варіант - трехзвенное розподілене додаток. Трьома частинами такого додатка є [2]:
- власне сервер бази даних;
- сервер додатків (серверна частина додатки);
- клієнтська частина програми.
Всі вони об'єднані в єдине ціле єдиним механізмом взаємодії (транспортний рівень) і обробки даних (рівень бізнес-логіки).
Компоненти й об'єкти Delphi, що забезпечують розробку багатоланкових додатків, об'єднані загальною назвою DataSnap.
Багатоланкова архітектура додатків баз даних викликана до життя необхідністю обробляти на стороні сервера запити від великого числа клієнтів. Здавалося б, з цим завданням цілком можуть впоратися і додатки «клієнт-сервер». Однак у цьому випадку при великому числі клієнтів вся обчислювальна навантаження лягає на сервер БД, який володіє досить мізерним набором засобів для реалізації складної бізнес-логіки (збережені процедури, тригери, перегляди і т.д.). І розробники змушені істотно ускладнювати програмний код клієнтського ПЗ, а це вкрай небажано при наявності великої кількості клієнтських комп'ютерів. Адже з ускладненням клієнтського програмного забезпечення зростає ймовірність помилок і ускладнюється його обслуговування.
Багатоланкова архітектура додатків БД покликана виправити перераховані недоліки.
Тепер розглянемо складові частини триланкового розподіленого додатку в Delphi. Частини триланкових додатків розробляються з використанням компонентів DataSnap, а також деяких інших спеціалізованих компонентів, в основному забезпечують функціонування клієнта.
Для передачі даних між сервером додатків і клієнтами використовується інтерфейс AppServer, надаваний віддаленим модулем даних сервера додатків. Цей інтерфейс використовують компоненти-провайдери TDataSetProvider на стороні сервера і компоненти TClientDataSet на стороні клієнта.
Клієнтський додаток в триланкової моделі повинно володіти лише мінімально необхідним набором функцій, делегуючи більшість операцій з обробки даних серверу додатків.
У першу чергу віддалене клієнтське додаток повинен забезпечити з'єднання з сервером додатків. Для цього використовуються компоненти з'єднань DataSnap - TSocketconnection, що використовує сокети Windows;
Компонент TSocketConnection забезпечує з'єднання клієнта з сервером додатків за рахунок використання сокетів TCP/IP. Для успішного відкриття з'єднання на стороні сервера повинен працювати сокет-сервер.
Компоненти з'єднання DataSnap надають інтерфейс IAppServer, використовуваний компонентами-провайдерами на стороні сервера і компонентами TClientDataSet на стороні клієнта для передачі пакетів даних. Для роботи з наборами даних використовуються компоненти TClientDataSet, що працюють в режимі кешування даних.
Компонент-провайдер TDataSetProvider являє собою міст між набором даних сервера додатків і клієнтським набором даних. Він забезпечує формування та передачу пакетів даних клієнтського додатку і прийом від нього зроблених змін. Всі необхідні операції компонент виконує автоматично. Розробнику необхідно лише розмістити компонент TDataSetProvider і пов'язати його з набором даних сервера додатків.
Перейдемо до розгляду програмного інтерфейсу клієнта і сервера.
На формі сервера (рисунок 7) розташоване текстове поле, в якому відображається число підключених зараз користувачів, ip-адресу та час підключення кожного з них.
З погляду насиченості компонентами, форма клієнтського додатка набагато перевершує форму сервера. Детально опрацьовані був інтерфейс і функції, виконувані користувачем з обліковим записом «Офіціант». При запуску програми з'являється форма аутентифікації, в якій необхідно вибра...