Sybase PowerBuilder як засіб розробки розподілених програм

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

У другій половині 90-х років XX століття поряд із домінуючою дворівневою архітектурою з'явилася нова архітектура побудови додатків – трирівнева. Її основна відмінність від традиційної архітектури "клієнт-сервер" полягає в тому, що ділова логіка системи виноситься на окремий середній рівень (сервер додатків) і відокремлюється від інтерфейсу користувача і рівня зберігання даних. Актуальність трирівневої архітектури обумовлена ​​такими причинами:

Підтримка розподілених архітектур та Інтернет

Створення Інтернет-систем неможливе без винесення ділової логіки на середній рівень. Поняття “тонкого клієнта” передбачає використання серверів додатків, оскільки сервер БД не призначений обробки http-звернень, а HTML-клієнт з броузером неспроможна обраховувати дані. На відміну від клієнт-серверної, трирівнева модель дозволяє забезпечити доступ до даних клієнтів різних типів – Windows-клієнт через ЛОМ, HTML-клієнт через Інтернет, наладонний комп'ютер (PDA) через бездротовий доступ.

Відділення обробки даних від інтерфейсу дозволяє змінювати ділову логіку, не торкаючись клієнтську частину - все, щоНеобхідно, змінюється лише одному місці, на сервері додатків. За рахунок цього вдається зменшити як фінансові, так і тимчасові витрати на обслуговування систем.

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

Технології, що лежать в основі сервера додатків, дозволяють будувати стійкі до відмови системи, здатні працювати навіть у разі виходу з ладу одного або декількох комп'ютерів. У цьому використовується кластеризація – об'єднання у єдину логічну групу кількох серверів додатків. Для клієнтів така група виглядає як єдиний сервер, і в разі виходу з ладу якогось із серверів кластера навантаження динамічно перерозподіляється між серверами, що залишилися.

Інструменти розробки трирівневих систем – підхід Sybase

Використовуючи багаторічний досвід у галузі випуску інструментів побудови корпоративних програм, корпорація Sybase пропонує закінчене рішення для реалізації систем у трирівневих архітектурах. Як сервер додатків пропонується Enterprise Application Server (EAServer) – високопродуктивне середовище для виконання компонентів, що реалізують ділову логіку інформаційної системи. Відмінною рисою EAServer є відкритість – він підтримує широкий перелік різних типів компонентів, таких як Java, C/C++, COM/ActiveX, PowerBuilder Non-Visual User Object (PB NVUO). Вражає набір операційних систем, які підтримує EAServer – це як усі варіанти32-розрядних ОС сімейства Windows, і найбільш відомі UNIX-платформи (Sun Solaris, Hewlett Packard HP-UX, IBM AIX, і навіть LINUX). Докладнішу інформацію про можливості EAServer можна знайти у статті [1].

Засобом розробки додатків для трирівневої архітектури пропонується PowerBuilder – інструмент, який без перебільшення можна назвати класикою систем, призначених для роботи з SQL СУБД. Починаючи з перших версій, PowerBuilder був засобом розробки клієнт-серверних додатків, і досить успішним. Основою його успіху стала вдала технологія роботи з даними через механізм DataWindow, а також відкритість та масштабованість. Мало який інший інструмент дозволяє працювати з таким широким спектром джерел даних - від файлів DBF до корпоративних БД масштабу Sybase SQL Server або Oracle.

Перші можливості розробки трирівневих програм з'явилися в PowerBuilder в середині 90-х років. З часом ця функціональність розвивалася і нарощувалася, і поточна версія продукту PowerBuilder 8.0 пропонує широкі можливості для розробки багаторівневих інформаційних систем. Одна і та ж ділова логіка, реалізована засобами PowerBuilder і функціонує у вигляді компонентів на EAServer, доступна для використання в будь-яких типах архітектур - як клієнт-серверних, так і розподілених, а також Інтернет. Такі технології, як DataWindow і PowerScript, можуть використовуватися при розробці звичайних Windows-програм, так і при створенні бізнес-компонентів, призначених для роботи в середовищі EAServer. Більше того, пропонуються спеціальні методики перенесення дворівневих додатків, написаних у попередні роки на PowerBuilder, у трирівневу архітектуру. Ділова логіка таких програм виноситься з клієнтськихпрограм та реалізується у вигляді компонентів для EAServer. Ці компоненти розгортаються на сервері додатків і клієнтські програми налаштовуються для виклику їх методів. За рахунок того, що в EAServer реалізована повна функціональність PBVM (PowerBuilder Virtual Machine), досягається можливість виконання написаного на PowerBuilder коду на сервері додатків без жодних обмежень. Жоден з інших представлених на ринку серверів програм не пропонує розробникам на PowerBuilder такої можливості. Необхідно відзначити, що зв'язка PowerBuilder + EAServer є повнофункціональним і добре налагодженим рішенням, пропонованим компанією Sybase для реалізації багаторівневих інформаційних систем.

Створення розподілених програм на PowerBuilder

Основні поняття, що використовуються при розробці трирівневих програм у середовищі PowerBuilder:

Сервер програм (application server) – середовище виконання бізнес-компонентів, що реалізують ділову логіку програм. Компоненти можуть викликатися не лише клієнтськими програмами, можливий виклик методів одного компонента іншим компонентом, розташованому на тому самому або іншому сервері додатків.

Клієнтська програма (client application) – програмний модуль, що викликає методи віддалених компонентів. При роботі з сервером додатків клієнтська програма може також викликати методи віддалених компонентів, ніби ці компоненти були розташовані локально.

Компоненти (components) – невізуальні об'єкти користувача PowerBuilder (Non-Visual User Objects, NVOU's). У цих об'єктах у вигляді функцій користувача (User Object Functions) пишуться методи, що реалізують бізнес-логіку системи мовою PowerScript. У таких методах доступна будь-яка програмнафункціональність PowerBuilder, у тому числі й робота з DataWindow (точніше з його невізуальним варіантом DataStore, спеціально призначеним для використання у розподілених архітектурах).

Проксі-об'єкт (proxy object) - Опис сигнатур методів компонента, розташованого на сервері додатків. Proxy генерується за таким компонентом і поміщається в бібліотеку PBL тієї клієнтської програми, яка викликатиме методи цього віддаленого об'єкта. Під терміном "сигнатури методів" розуміються назви функцій користувача, типи даних, що повертаються ними, а також типи і назви аргументів, які повинні передаватися цим функціям при їх викликах.

Розглянемо докладніше компонентну модель трирівневої програми, що створюється засобами PowerBuilder. При розробці такого розподіленого додатка необхідно всю його ділову логіку реалізувати у вигляді методів (User Object Functions) невізуальних об'єктів користувача (PB NVUO's). Така модель представлення ділової логіки є основною ідеєю створення трирівневих програм засобами Powerbuilder і EAServer. Реалізований у цій моделі бізнес-компонент (він же PB NVUO) розміщується на сервері додатків EAServer і для такого компонента генерується проксі-об'єкт, який розміщується в клієнтській програмі. Після цього клієнт з використанням даного проксі може викликати методи віддаленого компонента, що працює на сервері додатків.

У цій статті ми не будемо зупинятися на подробицях створення NVUO, і обмежимося описом принципів створення трирівневої програми засобами Powerbuilder та EAServer.

розподілених

засіб

powerbuilder

Створення реалізує ділову логіку компонента здійснюється в User Object Painter - створюється невізуальний об'єкт користувача (Non-VisualUser Object), і його методах (User Object Functions) мовою Powerscript реалізується необхідна ділова логіка (рисунок 1).

Для розгортання створеного компонента на EAServer з середовища PowerBuilder використовується EAServer Component Wizard (рисунок 2).

З його допомогою створюється проект (Project), в якому вказується, який компонент і на якому EAServer розгортати, який пакет (Package) його поміщати, які установки і як використовувати (рисунок 3).

При натисканні кнопки Deploy відбувається процес розгортання (тобто перенесення) компонента на EAServer :

sybase

Далі необхідно створити об'єкт Connection, який дозволить клієнтському додатку встановити зв'язок із EAServer.

розробки

розподілених

Наступний крок – генерація проксі-об'єкта, який дозволить клієнтському додатку звертатися до методів розміщеного на EAServer компонента. Робиться це через EAServer Proxy Wizard. Як місце для розміщення проксі-об'єкта вказується PBL-бібліотека тієї клієнтської програми, яка буде звертатися до методів зазначеного компонента.

Далі в клієнтській програмі пишеться код, який здійснює приєднання до EAServer:

Наступний крок – ініціалізація проксі-об'єкта, необхідного для виклику методів компонента, що функціонує на EAServer:

Якщо попередній крок пройшов успішно, можна здійснювати виклики методів компонентів:

Після використання методів віддаленого компонента необхідно видалити з пам'яті клієнтської програми екземпляр проксі-об'єкта та від'єднатися від сервера додатків:

PowerBuilder 9.0

підтримка XML у Datawindow – експорт/імпорт даних з Datawindow або Datastore у XML-формат. Експорт можливий як через використання функції SaveAs:dw_1.SaveAs(“C:\TEMP\Temp.xml”, XML!, True) і через застосування об'єктного синтаксису: ls_xmlstring = dw_1.Object.Datawindow.Data.XML. Імпорт здійснюється через функції ImportFile та ImportString або через DataWindow Painter;

PowerBuilder Native Interface (PBNI) – програмний інтерфейс, що дозволяє викликати методи реалізованих на PowerBuilder невізуальних об'єктів користувача (NVUO) з C++;

PowerBuilder Document Object Model (DOM) – підтримка можливості роботи з XML-документами з коду Powerscript;

Розробка JSP-сторінок – можливість використання PowerBuilder як RAD-інструмент для створення JSP-додатків;

Клієнтська підтримка EJB – дозволяє здійснювати виклики компонентів EJB серверів додатків третіх фірм;

Експорт DataWindow у PDF-формат - можливість збереження підготовлених на PowerBuilder звітів у Portable Document Format (PDF).

Докладніше про нову версію PowerBuilder ми розповімо в наступному номері журналу.

Висновок

Література