Продолжается подписка на наши издания! Вы не забыли подписаться?

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:

Рассмотрим подробнее компонентную модель трехуровневого приложения, создаваемого средствами PowerBuilder. При разработке такого распределенного приложения необходимо всю его деловую логику реализовать в виде методов (User Object Functions) невизуальных пользовательских объектов (PB NVUO’s). Такая модель представления деловой логики является основной идеей создания трехуровневых приложений средствами Powerbuilder и EAServer. Реализованный в этой модели бизнес-компонент (он же PB NVUO) размещается на сервере приложений EAServer и для такого компонента генерируется прокси-объект, помещаемый в клиентское приложение. После этого клиент с использованием данного прокси может вызывать методы работающего на сервере приложений удаленного компонента.

В этой статье мы не будем останавливаться на подробностях создания NVUO, и ограничимся описанием принципов создания трехуровневого приложения средствами Powerbuilder и EAServer.

Рисунок 1.

Рисунок 2.

Рисунок 3

Создание реализующего деловую логику компонента осуществляется в User Object Painter – создается невизуальный пользовательский объект (Non-Visual User Object), и в его методах (User Object Functions) на языке Powerscript реализуется необходимая деловая логика (рисунок 1).

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

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

При нажатии кнопки Deploy происходит собственно процесс развертывания (то есть переноса) компонента на EAServer :

Рисунок 4.

Далее необходимо создать объект Connection, который позволит клиентскому приложению установить связь с EAServer.

Рисунок 5.

В свойствах данного объекта указывается информация о том EAServer, с которым необходимо работать – адрес и порт сервера, имя пользователя и пароль.

Рисунок 6.

Следующий шаг – генерация прокси-объекта, который позволит клиентскому приложению обращаться к методам размещенного на EAServer компонента. Делается это через EAServer Proxy Wizard. В качестве места для размещения прокси-объекта указывается PBL-библиотека того клиентского приложения, которое будет обращаться к методам указанного компонента.

Далее в клиентском приложении пишется код, осуществляющий присоединение к EAServer:

n_jaguar_connect      gn_connect
long ll_rc


gn_connect = CREATE n_jaguar_connect


ll_rc = gn_connect.ConnectToServer()


IF ll_rc <> 0 THEN
  MessageBox("Connection Error", "Return Code: " + string(ll_rc))
ELSE
  Open(w_loan)
END IF

Следующий шаг – инициализация прокси-объекта, необходимого для вызова методов компонента, функционирующего на EAServer:

n_loan in_loan
long ll_rc

ll_rc = gn_connect.CreateInstance (in_loan, "finance/n_loan")

IF ll_rc <> 0 THEN
  MessageBox("Error creating proxy instance", "Return Code: " + string (ll_rc)) 
END IF

Если предыдущий шаг прошел успешно, то можно осуществлять вызовы методов компонентов:

double   ld_amount, ld_payment
int      li_months

ld_amount = 1500
li_months = 6

ld_payment = in_loan.calculate(ld_amount, li_months)

После окончания использования методов удаленного компонента необходимо удалить из памяти клиентского приложения экземпляр прокси-объекта и отсоединиться от сервера приложений:

Destroy(in_loan)
gn_connect.DisconnectServer()

PowerBuilder 9.0

В конце марта 2003 года выходит в свет новая, девятая версия PowerBuilder. Среди ее новых возможностей необходимо отметить следующие:

Более подробно о новой версии PowerBuilder мы расскажем в следующем номере журнала.

Заключение

На современном этапе использования информационных технологий распределенные вычисления являются одним из наиболее перспективных направлений их развития. Рассмотренное средство разработки PowerBuilder является полнофункциональным инструментом для быстрого и эффективного создания распределенных трехуровневых приложений. Если вас заинтересовали описанные в данной статье программные средства, демонстрационные версии PowerBuilder и EAServer вы можете скачать из Интернет по адресам http://www.sybase.com/pb8_eval или http://www.sybase.ru/download/prodreview/powerbuilder.htm

Литература
  1. Дмитриев В. Sybase Enterprise Application Server: новый подход к построению корпоративных информационных систем. http://www.sybase.ru/Syb/products/appservers/eas_article.htm
  2. Sybase PowerBuilder 9.0 Available http://www.sybase.com/detail?id=1023857
  3. Описание PowerBuilder 8.0 http://www.sybase.ru/Syb/products/apptools/pw-b80.htm
  4. Описание EAServer 4.0 http://www.sybase.ru/Syb/products/appservers/eas40datasheet.htm
  5. Документация по PowerBuilder http://manuals.sybase.com/onlinebooks/group-pb/pbg0800e
  6. Документация по EAServer http://manuals.sybase.com/onlinebooks/group-eag/eag0420e
связаться с автором можно по адресу
Roman.Kabanov@sybase.ru

Copyright © 1994-2016 ООО "К-Пресс"