Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

СТАТЬЯ
18.12.02


Инструменты Borland - разработка приложений для платформ Linux и Windows

Переведено БНТП по заказу Interface Ltd.

Введение

При создании приложений очень важен выбор операционной системы, под управлением которой будут работать серверы и рабочие станции. Наиболее часто встречаются платформы Microsoft Windows и Linux.

Под управлением операционной системы Windows обычно работают настольные компьютеры. А на серверах чаще используется платформа Linux, потому что она обладает такими достоинствами, как низкая совокупная стоимость владения, высокая надёжность и великолепная защита.

Традиционно разработчики создают и сопровождают отдельные программы для платформ Windows и Linux. Но теперь инструментарий разработки корпорации Borland позволяет создать приложение, которое может работать как на платформе Windows, так и на платформе Linux. Среды разработки на основе компонентов компилируют быстродействующий собственный код платформы, поэтому программы могут работать на любой из двух указанных платформ. Не тратя времени на изучение нового инструмента, разработчики приложений для Windows теперь без труда могут создавать приложения для Linux, и наоборот - разработчики, которые раньше создавали приложения для Linux, теперь могут делать это же и для Windows.

Продукты корпорации Borland дают предприятиям свободу выбора наиболее подходящей платформы.

Решения Borland: Delphi, C++Builder и Kylix

Корпорация Borland предлагает разработчикам широкий выбор средств разработки приложений. Имея за плечами почти 20-летний опыт работы в области языков программирования, корпорация Borland выпускает семейство инструментов для создания приложений, которые по праву считаются быстрыми, производительными и надежными. Корпорация Borland хорошо понимает, что такое разработка приложений, потому постоянно создаёт новые решения, которые дают разработчикам возможность создавать системы быстрее и лучше.

Получившие признание решения Borland Delphi и Borland C++Builder для Windows повышают производительность разработчиков. Преимущества этих технологий корпорация Borland использовала и в Borland Kylix  - инструменте быстрой разработки приложений для Linux, который позволяет программировать на двух мощных объектно-ориентированных языках: ANSI/ISO C++ и Delphi.

Для высокой производительности разработчика очень важна хорошо продуманная библиотека компонентов. У инструментов Delphi, C++Builder и Kylix общая библиотека компонентов для обеих платформ (CLX, от слов Component Library for Cross-Platform), которая упрощает разработку.

Библиотека CLX позволяет разрабатывать не только кросс-платформенный интерфейс пользователя (для обеих платформ), но и серверные приложения для Интернета, связующего ПО и веб-служб. Библиотека CLX содержит следующие составляющие библиотеки:

DataCLX - служит для масштабируемого доступа к данным. Обеспечивает единую непротиворечивую модель программирования для доступа к реляционным базам данных.

DataSnap - для создания многозвенных приложений. Компоненты библиотеки DataSnap поддерживают транзакции, выполнение множества потоков, переключение ресурсов при сбое одного из серверов, а также другие функции, существенные для разработки корпоративных серверов.

WebSnap - для создания серверных веб-приложений. Они могут работать с источниками данных в архитектуре DataSnap, создавая многозвенные системы с интерфейсами веб-браузера тонкого клиента.

BizSnap - для создания и использования веб-служб с помощью WSDL и SOAP. Веб-службы уже стали стандартным способом обмена данными между различными приложениями на различных платформах, даже между корпорациями и их партнёрскими организациями.

Эти компоненты работают совместно. Например, компоненты BizSnap могут сочетаться с компонентами DataSnap для создания многоуровнего приложения, которое открывает доступ к данным через интерфейсы веб-служб. Подход к разработке един для всех компонентов, что сокращает время на их освоение.

Разработчик и другие компании могут расширять библиотеку CLX, получая новые возможности. Прилагается исходный код библиотеки, благодаря чему опытные разработчики могут лучше понять используемые методы программирования. Имеется возможность создать репозитарий новых компонентов, которые основаны на стандартной библиотеке, но содержат дополнительные расширения для конкретных разработок.

Эти части библиотеки CLX одинаковы для разработки приложений как для Windows, так и для Linux, поэтому разработчикам достаточно всего лишь создать и сопровождать один общий набор программных кодов. Например, программу можно скомпилировать так, чтобы она могла работать с веб-сервером Apache либо на платформе Linux, либо на платформе Windows. Таким образом, разработчики могут выбирать платформу развёртывания, наряду с этим обеспечивая высокую производительность своего труда.

Для создания интерфейса пользователя предназначены две следующие библиотеки:

VisualCLX - элементы управления для Linux, которые включают стандартные оконные объекты Qt.

VCL - содержит элементы управления для Windows, которые включают стандартные элементы управления Windows.

Рис. 1. В инструментарий Kylix включено полностью интегрированное средство отладки, даже для множества процессов на отдельных компьютерах.

Эти две библиотеки совместимы друг с другом, насколько это возможно: у них одинаковые имена и свойства. Во внешнем виде и поведении есть некоторые различия, чтобы приложения имели вид, соответствующий их платформам.

Разработка для платформы Windows

Как Borland Delphi, так и Borland C++Builder имеют все необходимые возможности разработки приложений для платформы Windows.

Создание приложений с помощью Delphi или C++Builder вполне понятно. В палитре выбираются компоненты, устанавливаются их свойства. Затем пишется бизнес-логика на языке Delphi (на основе ObjectPascal) или C++. С целью оптимизации быстродействии готовая система компилируется собственными средствами.

Это значительно повышает производительность разработки. Компоненты спроектированы так, что в большинстве случаев они обрабатывают действия приложения без дополнительного кода. Код, который пишет разработчик, это, как правило, бизнес-логика, в соответствии с которой конкретная система отвечает на события.

Такие функции, как расширение кода и шаблоны кода, ещё более ускоряют процесс программирования. Компиляция длится всего несколько секунд, что даёт возможность итеративно разрабатывать даже сложные приложения.

Разработка для платформы Linux

Borland Kylix - это интегрированная среда разработки, похожая на Delphi и C++Builder, но для платформы Linux, а не Windows. В этой среде имеются аналогичные инструменты для графического построения приложений, написания кода, компилирования и отладки. Kylix 3 поддерживает оба языка: C++ и Delphi.

Kylix имеет такие же инструменты разработки, которые применяются для создания приложений для Windows, но не только. Kylix содержит дополнительные возможности, специально предназначенные для Linux, такие как доступ к библиотекам нижнего уровня.

Рис. 2. Kylix позволяет тонко настраивать параметры построения проекта.

Разработка приложений для различных платформ

Программы пишутся одинаково с помощью каждого из упомянутых инструментов разработки, поэтому те разработчики, которые уже освоились с одной системой, смогут легко перейти к другой.

Приложения, написанные с использованием библиотеки CLX для Delphi, можно загрузить прямо в Kylix, поскольку большая часть CLX одинакова для Kylix, Delphi и C++Builder. Различия между двумя платформами не всегда очевидны разработчику, поскольку они скрыты на нижних уровнях библиотеки CLX.

Некоторые предназначенные для Windows возможности Delphi и C++Builder отсутствуют в Kylix. Компоненты библиотеки VCL (Visual Component Library, библиотека визуальных компонентов), которые предназначены для серверов баз данных ADO, интерфейсов в стиле Windows 3.1 и вызовы Windows API не годятся для Linux.

Вместо них Kylix содержит компоненты баз данных CLX и доступ к Qt, libc и другим системным библиотекам. Кросс-платформенные возможности библиотеки CLX позволяют перенести приложение с одной платформы на другую, перекомпилировать его и создать приложение, специально предназначенное для нужной платформы. При этом обычно необходимо сделать лишь незначительные изменения.

Компоненты и элементы управления CLX

Библиотека CLX состоит из компонентов, которые представлены на палитре компонентов значками. Все эти компоненты можно помещать на форму - поверхность визуального проектирования в приложении CLX. При этом автоматически создаётся код, дающий доступ к экземпляру компонента в приложении.

Некоторые компоненты обеспечивают визуальный интерфейс пользователя при выполнении приложения. Эти элементы управления используются для общепринятых надписей, кнопок, областей редактирования текста, изображений и других известных элементов отображения. Другие компоненты не имеют интерфейса пользователя, например, компоненты для таймеров, запросов к базам данных, для обработки данных страниц веб-сервера. Они представлены на форме значками.

Экземпляр компонента на форме можно выбрать в дизайнере (конструкторе), а Object Inspector служит для задания начальных свойств экземпляра. Многие компоненты взаимосвязаны через свойства, например, информационный элемент управления сеткой имеет свойство DataSource, которое может ссылаться на экземпляр компонента TDataSource.

Все компоненты отвечают на события, которые отражаются внешние такие изменения как нажатие на кнопку, изменение элемента данных, открытие формы, истечение промежутка времени. Для указания отклика на такие события пишется программный код. Среда разработки автоматически вставляет небольшие фрагменты необходимого для этого служебного кода.

Создание графических клиентских и серверных приложений с помощью DataCLX

Архитектура DataCLX обеспечивает мощный механизм для создания клиентских и серверных приложений, которые могут работать на различных платформах и не привязаны к какому-либо поставщику баз данных.

Для интерфейса пользователя есть версии многих элементов управления CLX, которые способны извлекать информацию из базы данных. После компиляции приложения эти элементы управления выглядят так же, как другие элементы управления на данной платформе, например, кнопки в приложении для Windows ничем не отличаются от остальных кнопок в этой системе; так же обстоит дело с элементами управления для Linux.

А поскольку приложение выглядит и действует очень похоже как на платформе Linux, так и Windows, то пользователям будет довольно просто перейти на другую платформу.

Рис. 3. DataCLX разделяет интерфейс пользователя и базу данных.

User interface Интерфейс пользователя
Data Module Модуль данных
Data source Источник данных
Data set Набор данных
Connection to data Подключение к данным
Database server Сервер баз данных

Рис. 4. Delphi и C++Builder позволяют быстро строить красивые интерфейсы пользователя Windows.

Рис. 5. Kylix позволяет строить примерно такие же красивые интерфейсы для Linux

Каждый из инструментов содержит специальную поверхность, которая называется DataModule (модуль данных). На таких специальных формах собираются компоненты для доступа к данным. Эта централизация компонентов и их кода упрощает разработчикам применение таких подходов, как модель-вид-управление (model-view-controller), когда доступ к данным отделён от представления данных и управления приложением.

В компонентах DataCLX есть и другие уровни абстракции. Разработчики приложений должны обеспечить простой переход от одной базы данных к другой, поэтому компоненты DataCLX сделаны так, чтобы облегчить создание приложений, которые можно переносить с одной базы данных на другую, а также с одной платформы на другую.

Рис. 6. С помощью DataModule можно централизовать доступ к данным в одном месте приложения.

Рис. 7. DataSnap служит для создания многоуровневых приложений для баз данных

User interface Интерфейс пользователя
Client application Клиентское приложение
Data source Источник данных
Local data set Локальный набор данных
Connection to data Подключение к данным
Server application Серверное приложение
Provider Поставщик данных
Data set Набор данных
SQL data connection Подключение к данным с помощью SQL
Database server Сервер баз данных

Рис. 8. WebSnap создаёт многозвенные приложения, которые в качестве клиентов используют веб-браузеры

Internet browser Интернет-браузер
Web server Веб-сервер
Page Module Модуль страниц
Content producers Поставщики содержимого
Data source Источник данных
Local data set Локальный набор данных
Connection to data Подключение к данным
Database server Сервер баз данных
DataSnap server Сервер DataSnap

Разработка многоуровневых приложений с помощью DataSnap

Многие приложения должны иметь бизнес-логику связующего звена, а работа с базами данных должна вестись централизовано, а не на каждом персональном компьютере по отдельности. Централизация обработки данных на серверах во многих случаях может повысить производительность.

Delphi, C++Builder и Kylix поддерживают такие многоуровневые приложения с помощью компонентов библиотеки CLX. Обработка данных при этом ведется не в модуле DataModule на ПК пользователей, а централизованно серверным приложением.

Операционные системы Windows и Linux могут взаимодействовать благодаря кросс-платформенности библиотеки CLX. Например, клиенты Windows могут взаимодействовать с серверами на платформе Linux. Затем тот же программный код можно перекомпилировать для поддержки клиентов Linux или серверов Windows.

Компоненты DataSnap библиотеки CLX автоматически поддерживают такие корпоративные функции, как высокая доступность, благодаря переключению ресурсов при сбое, а высокая производительность обеспечивается благодаря многопотоковости.

Веб-приложения

Для пользователей настольных компьютеров работа со многими корпоративными приложениями наиболее удобна через веб-браузер. Это может значительно сократить затраты на развёртывание приложений, повысить уровень защиты и упростить администрирование.

Такие приложения выполняются на веб-сервере, их можно построить с использованием компонентов WebSnap библиотеки CLX. Эти компоненты можно сгруппировать в модуле PageModule, чтобы приложение создавало веб-страницы централизованно.

Рис. 9. Kylix (а также Delphi и C++Builder) содержит конструктор веб-страниц, который упрощает разработку приложений WebSnap

Компоненты автоматически справляются с такими сложными вопросами, как сохранение текущего состояния, и содержат готовые модули для проверки подлинности.

Оба инструментария - для Linux и Windows - поддерживают ряд веб-серверов через интерфейс CGI (Common Gateway Interface, общий шлюзовый интерфейс). Они также поддерживают прямые связи с популярным веб-сервером Apache.

Технология WebSnap предназначена для представления пользователем данных через веб-сервер. Для построения Интернет-приложений с высокой масштабируемостью, компоненты DataSnap могут использовать многозвенную технологию, чтобы гарантировать высокую производительность и доступность данных. Система WebSnap может использовать совместно с интерфейсом пользователя того же поставщика данных DataSnap, что и приложения.

Благодаря кросс-платформенности библиотеки CLX, разработчики имеют возможность выбирать наиболее подходящую архитектуру серверов. Обычно используется веб-сервер Apache на платформе Linux, поскольку этот вариант имеет хорошую защиту, надежность и быстродействие. Приложение, созданное с помощью Kylix и использованием компонентов WebSnap, может выполняться на таком сервере и взаимодействовать, например, с системой Windows.

Интеграция через веб-службы

Обычно приложения на предприятии работают не изолированно друг от друга. Как правило, им требуются данные из других систем - предприятия, его партнёров или клиентов. С целью упрощения такой интеграции и обеспечения надежной связи между системами созданы стандарты веб-служб.

Веб-службы можно использовать для построения составных приложения. Например, веб-службы компании, занимающейся экспедированием грузов, можно совместить с приложением для поддержки пользователей, чтобы автоматически отправлять и отслеживать запчасти.

Рис. 10. Веб-службы можно создавать с использованием BizSnap

Технология BizSnap в библиотеке CLX позволяет использовать веб-службы в приложениях и публиковать их, чтобы сделать данные доступными другим системам.

Разработка приложений, использующий веб-службы, упрощается благодаря тому, что BizSnap сопоставляет данные, получаемые через стандартный интерфейс WSDL, с объектом, который может быть использован в программном коде. Программист работает с этим объектом как обычно, а BizSnap с помощью SOAP и XML обрабатывает обмен данными с хостом веб-служб.

Предусмотрен набор инструментов и мастеров для создания веб-служб, доступных через веб-сервер. Определив веб-службу, можно написать программный код, чтобы соединить её с другими частями приложения. Технология WebSnap позволяет веб-службам работать с данными прямо через серверы DataCLX или DataSnap, возможно на разных платформах.

Опыт применения: компания Colliers International

Компании Colliers, которая торгует недвижимостью и имеет более 300 отделений в различных странах, требуется система для извлечения и форматирования данных из уже имеющихся у неё систем и баз данных.

Вначале приложение было написано с помощью Borland Delphi 6 для сервера на платформе Windows. Таким образом, данные через веб-службу стали доступны брокерам компании Colliers во множестве различных форматов.

Версия на основе Windows продолжает использоваться внутри компании Colliers, а для доступа к данным через Интернет Colliers и её партнёры создали другую версию этого приложения. Оно использует серверы на платформе Linux, а создано с помощью Borland Kylix.

Перенос базового приложения с Delphi 6 занял менее двух часов.

Поскольку новая версия системы, доработанная с помощью Kylix, использует технологии CLX, WebSnap и BizSnap, она поддерживает множество различных форматов, в том числе беспроводные устройства. В результате получилась быстродействующая, эффективная система, которой любой брокер может воспользоваться даже в том случае, когда сидит в автомобиле со своим клиентом.

Дополнительную информацию о Colliers International и других компаниях, которые применяют для разработки своих приложений Kylix, см. на веб-сайте корпорации Borland: http://www.borland.com/kylix

Альтернативные подходы

Ни один из основных поставщиков программного обеспечения не выпустил интегрированную среду разработки приложений, которые можно компилировать для различных платформ. Наиболее близкая альтернатива - использование языка программирования с кросс-платформенной библиотекой, такой как Qt или GTK.

Но хотя GTK и ей подобные библиотеки довольно богаты и обеспечивают хорошее управление на низком уровне, они не позволяют вести такую интегрированную разработку на основе компонентов, как инструменты компании Borland. Создавать многократно используемые объекты с помощью упомянутых библиотек труднее, поэтому такого рода инструменты не обеспечивают высокой производительности труда. Любой из инструментов корпорации Borland обеспечивает столь же хорошее управление на низком уровне с применением языка Delphi или C++.

Система Qt расширяет язык C++ для поддержки свойств путём включения препроцессора и компилятора мета-объектов Meta Object Compiler. Qt содержит классы, которые обеспечивают связи с базами данных, но не содержит такую полную библиотеку классов, как CLX.

Другая альтернатива- использовать Java и подобные решения. Это эффективный способ заставить приложения работать на различных платформах, но при этом приложение не достигает такого же высокого быстродействия и доступа к операционной системе на низком уровне, как приложение, которое скомпилировано специально для конкретной системы.

Рис. 12. В отличие от Java-приложений, CLX-приложения выполняются прямо на платформе Windows или Linux, что повышает их быстродействие

CLX components Компоненты CLX
Java Application Java-приложение
Delphi or Kylix Application Приложение, созданное с помощью Delphi или Kylix
Java Virtual Machine Виртуальная машина Java
Direct access to operating system Прямой доступ к операционной системе
Access to OS is through JVM Доступ к ОС через виртуальную машину Java
Operating system (Linux or Windows) Операционная система (Linux or Windows)

Сравнение Kylix с другими кросс-платформенными инструментами и библиотеками

Между разработкой с помощью такого полностью интегрированного инструмента как Kylix и разработкой с помощью автономных редакторов и компиляторов есть существенная разница.

Рассмотрим, к примеру, простое приложение, которое выводит на экран кнопку с надписью "!". С помощью Kylix или C++Builder это можно сделать с использованием IDE (интегрированная среда разработки), вообще не создавая кода.

Создание такой кнопки столь же просто, как выбор соответствующего события в Object Inspector и ввод кода.

А использовать для этого графическую библиотеку вроде GTK сложнее. Вот примерный код на языке C для создания подобной программы:

#include <gtk/gtk.h>

/* Callback function. */

void hello( GtkWidget *widget,

gpointer data )

{

g_print ("");

}

gint delete_event( GtkWidget *widget,

GdkEvent *event,

gpointer data )

{

g_print ("delete event occurred\n");

return TRUE;

}

/* Another callback */

void destroy( GtkWidget *widget,

gpointer data )

{

gtk_main_quit ();

}

int main( int argc,

char *argv[] )

{

GtkWidget *window;

GtkWidget *button;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

g_signal_connect (G_OBJECT (window), "delete_event",

g_signal_connect (G_OBJECT (window), "destroy",

G_CALLBACK (destroy), NULL);

gtk_container_set_border_width (GTK_CONTAINER

(window), 10);

button = gtk_button_new_with_label ("Hello World");

g_signal_connect (G_OBJECT (button), "clicked",

G_CALLBACK (hello), NULL);

g_signal_connect_swapped (G_OBJECT (button), "clicked",

G_CALLBACK

(gtk_widget_destroy), window);

gtk_container_add (GTK_CONTAINER (window), button);

gtk_widget_show (button);

gtk_widget_show (window);

gtk_main ();

return 0;

}

Как видно, почти весь этот код состоит из служебных действий по созданию окон и обработке событий. Использование такого инструментария как GTK означает, что разработчику придётся писать дополнительный код. А если используется инструментарий Borland, то код для окон создаётся библиотекой CLX. Программисту по-прежнему доступны события на случай, если их придётся переопределить.

Сообщество Borland

Кроме технологии, другим ключевым преимуществом инструментария Borland является сильное сообщество разработчиков. Сеть Borland Developer Network содержит тысячи компонентов, сотни приложений, десятки информационных бюллетеней, посвященных разработке приложений с использованием Delphi, C++Builder и Kylix. Каждый год сообщество Borland проводит конференцию для обмена опытом и обсуждения новых разработок.

Заключение

Инструментарий Borland широко известен благодаря своей высокой производительности и удобству. После выпуска Kylix все лучшие качества Delphi и C++Builder стали доступны для платформы Linux.

Разработчикам приложений для Windows этот инструментарий даёт возможность перейти на другую, значительно более защищённую и надёжную платформу, а разработчикам приложений для Linux - возможность создавать версии приложений для Windows.

Для всех разработчиков это означает, что при разработке, развёртывании и сопровождении приложений операционная система больше не является ограничением.

Дополнительную информацию о продуктах Borland для разработчиков см. на сайте: http://www.borland.com.


Дополнительная информация