представлены новые концептуальные решения по созданию приложений с учетом современных технологических тенденций в области информационных технологий, таких как разработка распределенных приложений и приложений для Internet, компонентного программирования, поддержки стандартов CORBA, OLE/COM и т.д.

Классической архитектурой, доминирующей сегодня на рынке приложений клиент-сервер, является та, где на клиентской стороне исполняется бизнес-логика приложения и поддерживается интерфейс с пользователем, а на серверной части запускается сервер базы данных, обеспечивающий обработку, оптимизацию и выполнение запросов к базам данных. Такая архитектура известна под названием двухуровневой. Возможности языков 4GL, позволяющие быстро и эффективно создавать приложения, в сочетании с возможностями сервера базы данных (поддержка распределенных и многотомных баз, протокол двухфазной фиксации, триггеры баз данных, хранимые процедуры и др.) являются определяющими для двухуровневой архитектуры клиент-сервер. Основным препятствием для повышения производительности приложения в данном случае служит то, что приложение преимущественно исполняется на самой клиентской машине, имеющей ограниченные вычислительные ресурсы.

Согласно исследованиям Gartner Group, занимающейся стратегическим анализом и прогнознированием рынка информационных систем, приблизительно половина приложений, реализуемых в архитектуре клиент-сервер, к началу 2000-го года будет относиться к классической двухуровневой схеме. Вариант классической архитектуры относительно просто реализуется и идеально подходит для небольших или средних компаний, эксплуатирующих приложения умеренной сложности. Логически это первый шаг, который делает пользователь, при переходе от терминальных систем к более гибкой архитектуре клиент-сервер. Но, по информации того же источника, оставшаяся половина приложений будет реализовываться посредством архитектуры трехуровневых или N-уровневых приложений, и, почему это произойдет, объяснить нетрудно.

Подобная архитектура вводит новые понятия множественных логических уровней или слоев, позволяющих отделить бизнес-логику от интерфейсной на клиентской стороне и перенести ее исполнение на другие узлы вычислительной среды. Очевидным результатом использования подобной архитектуры будет резкое увеличение производительности приложения и его масштабируемости. Для реализации этой архитектуры Progress предложил новую версию компонентного языка 4GL для создания распределенных "интеллектуальных объектов" SmartObjects, которые, в свою очередь, могут быть запущены на компонентных серверах приложений в гетерогенной вычислительной среде.

Компонентный язык 4GL для разработки приложений

Наряду с такими известными возможностями языка разработки 4GL Progress, как событийные триггеры базы данных и интерфейса, поддержка множественных графических символьных и графических интерфейсов в одном приложении, "интеллектуальные объекты" SmartObjects, поддержка стандарта ANSI SQL 89 Level 2 и т.д., разработчикам предоставляется открытая среда разработки компонентных приложений, обеспечивающая поддержку основных промышленных стандартов для объектов OLE.

Самое пристальное внимание было уделено поддержке средств разработки приложений для N-уровневой архитектуры клиент-сервер - компонентному серверу и компонентным объектам SmartObjects.

Компонентный сервер приложений

Удаленные процедуры. Важный шаг, предпринятый Progress Software в направлении создания распределенных приложений, - введение в язык понятия удаленных процедур (remote procedures), разрабатываемых на языке 4GL и используемых для разделения приложения на компоненты. Каждая из этих компонент будет запускаться на своем сервере приложений (компонентном сервере), в непосредственной близости от данных, с которыми она работает. Таким образом произойдет выделение сегмента бизнес-логики из приложения - по сути инкапсуляция его функции в различных компонентах, каждая из которых может быть запущена на неограниченном количестве серверов в гетерогенной программно-аппаратной среде.

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

Компонентные серверы могут быть запущены на всех поддерживаемых Progress программно-аппаратных платформах - Windows 3.11, Windows 95, Windows NT, IBM AIX, HP-UX, Solaris и платформах, применяющих TCP/IP в качестве сетевого протокола. Распределенные объекты SmartObjects

Новые расширения объектов SmartObjects позволяют использовать их в роли распределенных объектов, запускаемых на компонентных серверах. Теперь "интеллектуальный запрос" SmartQuery или новый объект SmartReportBuilder могут быть запущены в непосредственной близости от данных, с которыми они работают, для обеспечения максимальной производительности и уменьшения сложности разработки приложения.

Создание новых типов SmartObjects

Важной особенностью компонентного языка 4GL Progress является возможность создания определяемых пользователем типов объектов. Сложные промышленные компоненты собираются из стандартных объектов языка 4GL Progress, OLE-объектов или "интеллектуальных объектов" третьих фирм. Для каждого из них определяются свойства, методы работы и события на уровне бизнес-логики. Это дает пользователю возможность вводить в свои приложения сложные абстрактные объекты, которые, в свою очередь, могут модифицироваться или использоваться для создания новых типов объектов. Любой объект, созданный подобным образом, будет обладать всеми свойствами, присущие объектам SmartObjects. Это касается распределенности, использования их другими приложениями и поддержки Internet.

Поддержка Internet

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

OCX-объекты и VBX-приложения

Progress обеспечивает поддержку OCX-объектов как для 16-разрядных, так и для 32-разрядных платформ. В то же время обеспечивается поддержка существующего, но постепенно устаревающего стандарта VBX, что делает возможным использование огромного количества созданных ранее объектов.


OLE-серверные компоненты

Язык 4GL Progress обеспечит создание компонент, которые могут выступать в качестве OLE-сервера. Это дает возможность разработчику производить OLE-серверы как "интеллектуальные объекты" SmartObjects и включать их в приложения, написанные на продуктах третьих фирм, таких как Visual Basic, Delphi и т.д.

По мнению фирмы-производителя, ряд новых возможностей позволит компонентному языку 4GL Progress претендовать на место лидера в области разработки компонентно-ориентированных приложений.