Проектування триланкової розподіленої інформаційної системи для роботи з БД із використанням технології DataSnap (MIDAS)

Проектування розподіленої інформаційної системи із використанням технології MIDAS. Методика створення сервера прикладень за технологією MIDAS. Віддалений модуль даних - основна частина сервера прикладень. Методика створення клієнтського прикладення.

Проектування триланкової розподіленої інформаційної системи для роботи з БД із використанням технології DataSnap (MIDAS)

- Мета : отримання практичних навичок проектування розподіленої інформаційної системи із використанням технології MIDAS .

- Завдання :

Створити оригінальну (!) розподілену триланкову інформаційну системуна основі технології MIDAS . Сервер прикладень повинен інкапсулювати та експортувати деякий набір даних з абиякої таблиці БД. Прикладення-клієнт повинен підключатися до сервера прикладень та відображувати отримані від сервера дані у вигляді мережі.

Методика створення сервера прикладень за технологією MIDAS

Сервер прикладень інкапсулює велику частину бізнес-логіки розподіленого прикладення і забезпечує доступ клієнтів до БД. MIDAS-сервери прикладень повинні підтримувати деякий набір SQL-запитів для змін в БД і надсилати їх серверу БД за командою клієнтського прикладення.

Проектуємий тут сервер прикладень використовується для генерації запитів до БД через механізм BDE .

Спочатку створимо головну форму прикладення, основне призначення якої - служити індикатором запущеного сервера (мал. 2.1 ).

Малюнок 2.1

Форму можна розташувати де-небудь у кутку екрану, а її властивість FormStyle встановити рівною fsStayOnTop , щоб не втратити її вікно серед інших відкритих вікон.

Основною частиною сервера прикладень є віддалений модуль даних . Він є платформою для розташування невізуальних компонентів доступу до даних і компонентів-провайдерів. Розташовані на ньому компоненти з'єднань, транзакцій і компоненти, що інкапсулюють набори даних, забезпечують триланкове прикладення зв'язком із сервером БД . Це можуть бути набори компонентів для технологій BDE , ADO , InterBase Express , dbExpress та ін. Віддалений модуль даних реалізує основні функції сервера прикладень на основі надання клієнтам інтерфейсу IAppServer (або нащадка цього інтерфейсу). Для цього віддалений модуль даних повинен містити компонент-провайдер DataSetProvider , який передає пакети даних клієнтському прикладенню, а точніше компонентам ClientDataSet , а також забезпечує доступ до методів інтерфейсу IAppServer .

Для створення віддаленого модуля даних треба виконати команду File | New | Other і зі сторінки Multitier репозитарія об'єктів обрати піктограму Remote DataModule (мал. 2.2 ) .

Малюнок 2.2

У діалозі, що з'явився, слід задати ім'я компонентного класу сервера (SampleMIDASServer ) і, при необхідності, встановити прапорець Generate Events support code (мал. 2.3 ).

Малюнок 2.3

На одержаній порожній формі розташуйте компоненти (мал. 2.4 ):

· Session – для забезпечення сеансів зв'язку з БД;

· Table (тут TableCustomer ), встановивши необхідні значення властивостей: DatabaseName (тут BCDEMOS ), Session (тут Session1_1 ) і TableName (тут customer.db ). Властивість Active також слід встановити рівною true (або встановити її значення динамічно при створенні модуля даних). Інакше компонент не міститиме ніяких даних, і не зможе надавати їх клієнтському прикладенню;

· DataSetProvider і зв'яжіть його властивість DataSet з TableCustomer . Якщо цього не зробити, клієнтське прикладення не матиме доступу до джерела даних.

Малюнок 2.4


Після цього треба побудувати сервер прикладень і виконати команду Run | Install COM+ Objects. для реєстрації сервера механізмом DCOM (мал. 2.5 ).

Малюнок 2.5

Зареєстрований таким чином сервер повинен з'явитися у дереві Службы компонентов , яке можна оглянути командою Пуск | Панель управления | Администрирование | Службы компонентов (мал. 2.6 ).

Малюнок 2 .6

І, нарешті, MIDAS-сервер треба запустити на виконання. Тепер MIDAS-сервер зареєстрований у реєстрі Windows як ActiveX-сервер (т.н. об'єкт Автоматизації ).

За допомогою його контекстного меню командою Свойства можна дізнатися ім'я і код прикладення для подальшого використання у прикладенні-клієнті (мал. 2.7 ).

Малюнок 2.7

Методика створення клієнтського прикладення

Віддалене клієнтське прикладення повинне забезпечити з'єднання з сервером прикладень. Для цього можна використовувати компоненти з'єднань DataSnap : DCOMConnection (використовує DCOM ), SocketСonnection (використовує «кубла » Windows ), WebConnection (використовує http ). Компоненти з'єднання DataSnap надають інтерфейс IAppServer , використовуваний компонентами-провайдерами на боці сервера і компонентами ClientDataSet на боці клієнта для передачі пакетів даних. Для роботи з наборами даних використовується компонент ClientDataSet , що працює у режимі кешування даних . Для представлення даних і створення призначеного для користувача інтерфейсу в клієнтському програмному забезпеченні застосовуються стандартні компоненти зі сторінки Data Controls палітри компонентів.

Створення клієнтського прикладення починається зі створення звичайного прикладення, на якому слід розташувати компоненти (мал. 2 . 8 ):

Малюнок 2 . 8

· кнопки Установить/разорвать связь с сервером, Загрузить, Применить, Сохранить ;

· компонент DCOMConnection для встановлення зв'язку з віддаленим сервером, властивості якого слід встановити так:

·ServerGUID : {314929B6-CFC8-493D-874F-FC1CBBE6B802 }чи ж ServerName (при заповненні одного з цих двох параметрів інший параметр зчитується з реєстру Windows і заповнюється автоматично); перевірити правильність DCOM-з’єднання можна встановленням властивості Connectеd в значення true . При цьому повинен автоматично запуститися MIDAS-сервер .

· джерело даних ClientDataSet , властивості якого слід встановити так:

·RemoteServer у значення DCOMConnection1 ;

·ProviderName у значення DataSetProvider1 (обрати зі списку);

· компонент DataSource і пов'язати його з джерелом даних ClientDataSet1 ;

· компонент DbGrid і зв'язати його з компонентом DataSource для відображення даних таблиці БД, одержаних від сервера.

Тепер тільки залишилося написати реакції на події від кнопок форми:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "ClientMainForm.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ConnectClick(TObject *Sender)

{

if (ClientDataSet1->Active) // close and disconnect

{

ClientDataSet1->Close();

DCOMConnection1->Close();

}

else // open (will automatically connect)

{

//DCOMConnection1->Open();

ClientDataSet1->Open();

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ApplyClick(TObject *Sender)

{

ClientDataSet1->ApplyUpdates(0);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SaveClick(TObject *Sender)

{

ClientDataSet1->SaveToFile("customer.cds", dfBinary);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::LoadClick(TObject *Sender)

{

ClientDataSet1->LoadFromFile("customer.cds");

}

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

?Контрольні запитання:

1. Опишіть процес спілкування сервера прикладення з клієнтом за технологією MIDAS .

2. З якою метою у прикладенні використані компоненти DCOMConnection , ClientDataSet ?

3. Яку роль виконує Remote Data Module ?.

4. Дайте вичерпні пояснення до розробленого вами прикладення.

ОТКРЫТЬ САМ ДОКУМЕНТ В НОВОМ ОКНЕ