ня користувачів, ведеться протокол роботи сервера додатків).
Процедура ModifyUserInfo (UserName, HostName, PID: string) змінює інформацію про підключення клієнтських додатків до сервера додатків.
Процедура DisconnectUserInfo (DBServerName, UserName, HostName, PID: string) записує зміни при відключенні користувача від сервера додатків.
Процедура MemoryLoad ініціалізує структури даних знаходяться в пам'яті сервера додатків, перевіряє готовність до роботи і можливість підключення до бази даних.
Процедура GetParamsFromCommandText (var SqlCmd: string; out ParametersArray: DynArrayOfVariant) є базовою функцією синтаксичного аналізу сервера додатків. На вхід даного методу надходить запит користувача у вигляді рядка SqlCmd. Отримана рядок передається у функцію Trim (s: string): string, яка видаляє зайві пробіли з рядка. У розробленому сервері додатків було вирішено продемонструвати основну функціональність на запиті по вибірці даних (Select {* [ім'я стовпця]} From {ім'я таблиці | ім'я процедури (параметри ...)}). Як уже згадувалося вище, замість імені таблиці можна задавати ім'я процедури для виклику з модуля бізнес-логіки.
Розібравши отриману рядок запиту від користувача, формується вихідний масив параметрів типу Variant. Тип даних Variant забезпечує гнучкий універсальний тип даних. Він корисний в дуже певних обставинах, де типи даних та їх зміст визначаються під час виконання, а не в часі компіляції.
2.3.4 Розробка адміністрування серверу додатків
Для адміністрування сервера додатків було розроблено графічне додаток, що дозволяє ініціалізувати підключення до сервера бази даних, контролювати кількість підключень користувачів і вести протокол роботи сервера додатків.
При запуску сервера додатків автоматично запускається засіб адміністрування сервера додатків - монітор, який представлений на малюнку 2.8.
Малюнок 2.8 - Інтерфейс монітора сервера додатків
Головна форма монітора сервера додатків містить 2 вкладки: «Користувачі» і «Протокол».
На вкладці «Користувачі» представлена ??таблиця, яка відображає наступну інформацію (по стовпцях):
1) «PID» - ідентифікатор користувача;
2) «Користувач» - ім'я користувача, воно вводиться в клієнтській частині при підключенні до сервера додатків;
) «Комп'ютер» - ім'я комп'ютера в мережі, з якого підключився користувач;
) «Час підключення» - відображає системний час комп'ютера сервера програми в момент підключення користувача;
) «Кількість запитів» - кількість sql-запитів, що надійшли на сервер додатків від даного користувача;
) «Час останнього запиту» - відображає системний час комп'ютера сервера програми в момент отримання від даного користувача останнього sql-запиту;
) «Час відключення» - відображає системний час комп'ютера сервера програми в момент завершення роботи клієнтського додатка користувача.
Рядок стану (TStatusBar) відображає стан сервера додатків:
«Неактивен» означає, що сервер додатків не підключений до бази даних;
«Активний» означає, що сервер додатків підключений до бази даних і готовий приймати і обробляти sql-запити від користувачів.
При натисканні на кнопку «Ініціалізація» з'являється модальне вікно для авторизації підключення до бази даних (малюнок 2.9).
Малюнок 2.9 - Вікно авторизації
У даному вікні адміністратор вибирає сервер бази даних. Передбачено вибір із декількох серверів баз динних для підвищення відмовостійкості системи. База даних обраної СУБД і буде джерелом даних для всіх клієнтських додатків мережі, що використовують даний сервер додатків. У двох наступних полях вказується ім'я та пароль користувача, тим самим при підключенні визначаються права на доступ до бази даних, до якої ведеться підключення.
На вкладці «Протокол» головної форми монітора сервера додатків (малюнок 2.10) відображається протокол роботи сервера додатків. Даний протокол починає заповнюватися після ініціалізації сервера додатків (підключенні до сервера бази даних). Спочатку в протоколі фіксується хід підключення до сервера бази даних, а потім виводиться інформація про отримання та обробці запитів користувачів.
Малюнок 2.10 - Приклад заповнення протоколу
Розроблене засіб адміністрування дозволяє аналізувати роботу сервера додатків, знаходити і оптимізувати вузькі місця в його функціональності.