Программный продукт Delphi 6 корпорации Borland Software - это первый прием борьбы за умы и кошельки разработчиков в войне Web-сервисов. Борьба идет за то, чтобы доказать: Web-сервисы - это не пустая расхожая фраза, они находят воплощение в реальном коде и работающих приложениях.

Сведения о программном продукте

Delphi 6

Производитель: Borland Software Corp., http://www.borland.com

Требования к оборудованию: Microsoft Windows 98/Me, Windows NT 4.0 с Service Pack 5 или более поздним, Windows 2000; Pentium 166 МГц, 64 Мбайт оперативной памяти, 350 Мбайт свободного пространства на жестком диске (на компакт-диске - 115 Мбайт), дисковод CD-ROM, графическая карта VGA.

Цена:версия Enterprise - 2999 долл., Professional - 999 долл., Personal - 99 долл..

Delphi - наиболее зрелая из выпущенных Borland сред разработки приложений; продукт, в котором впервые появлялось большинство из основных технологических новшеств компании, включая «двунаправленные» (two-way) инструментальные средства и сверхбыстрый компилятор машинного кода. В соответствии с этой традицией в Delphi 6 представлены новые технологии и инструментальные средства, которые позволяют успешно интегрировать Web-сервисы в общую среду разработки приложений.

Хотя Borland, конечно, гораздо меньше таких гигантов, как Microsoft, Oracle, IBM и Sun Microsystems, с которыми ей приходится конкурировать, компании удалось не потерять себя за все эти годы. У Delphi есть своя армия разработчиков, сохранявшая преданность компании и в хорошие, и в плохие времена. В своих лучших проявлениях Borland - несомненный лидер в технологии программирования, а Delphi 6 представляет лучшее из технологий компании на сегодняшний день.

Основной вопрос звучит прямо и откровенно: стоит ли обновлять программное обеспечение до Delphi 6 и стоит ли сегодняшним пользователям Delphi переходить на нее? Несомненно. Другой вопрос интересен всем и исключительно важен для Borland: может ли Delphi 6 предложить что-то такое, что расширит ряды ее приверженцев? Конкуренция разыгралась не на шутку, на рынке масса сред разработки приложений - основанных на Java (даже у Borland есть своя), на C++, на C# (новом языке Microsoft) и Visual Basic, - а арена борьбы существенно расширилась за счет Интернета. Об этом мы и поговорим в данном обзоре.

Язык и библиотека компонентов

Delphi - это среда разработки приложений, созданная на базе языка программирования, который называется ObjectPascal и представляет собой гибрид Pascal и объектно-ориентированного подхода к программированию (ООП). ObjectPascal несложно изучить, особенно если вы уже знаете какой-то другой объектно-ориентированный язык. Реализация объектно-ориентированного подхода в продуктах Borland улучшалась с каждым годом и теперь представляет собой полнофункциональную и устойчивую объектную модель. В этой модели, основанной на библиотеке компонентов VCL (Visual Component Library), имеется грамотно спроектированная и законченная иерархия классов, с которой, в общем, просто и удобно работать.

Компоненты библиотеки написаны на ObjectPascal; их исходный код поставляется в версиях Professional Edition и Enterprise Edition. Каждая из версий содержит более 300 компонентов с поддержкой как высокоуровневых, так и низкоуровневых функций: в частности, обеспечивается поддержка API для Win32, SOAP (Simple Object Access Protocol) и Winsock. Пусть программистам может никогда не понадобиться исходный текст VCL, для них очень важно иметь представление о библиотеке, и не только на уровне свойств компонентов.

Оригинальная версия VCL представляла собой набор компонентов только для Windows. Теперь в Delphi 6 есть альтернативная библиотека компонентов, которая называется Component Library for Cross Platform. Она открывает путь к использованию Borland Kylix - «мостика» к Linux (Kylix - это Delphi-подобная среда разработки для Linux). Borland долго колебалась между совместимостью с продуктами Microsoft и развитием по собственному пути (за последнее десятилетие эти колебания часто не лучшим образом сказывались на качестве продуктов компании). Delphi 6 также создана в рамках этого подхода - среди прочего в ней поддерживаются стандарты XML, SOAP и WSDL (Web Services Description Language - «язык описания Web-сервисов») в соответствии с официальной позицией Microsoft, а иногда и несколько опережая ее.

RAD IDE

Основная идея методики быстрой разработки приложений (Rapid Application Development, RAD) заключается в том, чтобы предоставить разработчикам инструментальные средства, позволяющие программировать на более высоком уровне - обычно на уровне компонентов, чтобы можно было максимально быстро, «на скорую руку» собирать готовые приложения. Delphi давно относят к RAD-средам; более того, она способствовала выработке соответствующих стандартов.

Основные элементы интегрированной среды разработки (integrated development environment, IDE) - поверхности визуальных форм, редактор исходного текста, диспетчер проектов, отладчик и средство просмотра классов - сделаны на высоком уровне. Система позволяет программисту быстро добавлять компоненты в визуальные формы, редактировать свойства, дописывать связующий код, а затем компилировать и сразу видеть результаты. Borland категорически утверждает, что у нее самый быстрый в мире компилятор для Windows и процессоров Intel. И я верю этому утверждению. Если учесть, что процесс программирования в основном состоит из циклов «компиляция - запуск - отладка», то быстродействие компилятора действительно может быть предметом гордости. Компилятор генерирует машинный код для Intel-систем, создавая EXE- и DLL-файлы приложений, которые выполняются так же быстро, как и написанные на C++.

Я был рад обнаружить, что давно знакомая и удобная среда Delphi IDE в Delphi 6 еще улучшилась. В переработанном интерфейсе программирования есть то, что понравится многим опытным программистам, - в равной мере поддерживается как невизуальное (например, манипуляции с методами или данными), так и визуальное программирование (формы). Во многих системах разработки все броские возможности сконцентрированы на программировании интерфейса пользователя, а ведь львиная доля программирования мало или никак не связана с элементами пользовательского интерфейса. В Delphi 6 мастера и средства редактирования настроены для невизуального программирования; например, Data Module состоит из разнообразных форм, специально приспособленных для работы с невизуальным кодом.

В IDE есть еще много других новых возможностей, часть из которых описаны ниже.

  • Новая панель средства просмотра объектов Object Tree View в IDE позволяет перемещаться по активным объектам в форме (рисунок).
  • В окне Diagram, которое предназначено для графического проектирования взаимосвязей в базах данных для Data Modules, используется метод «двунаправленного» программирования. В этом окне можно непосредственно редактировать код или использовать компоненты. Компилятор учтет изменения, не переписывая исходный код.
  • Теперь формы могут быть наследуемыми объектами. Например, вы можете создать форму утилиты и затем повторно использовать ее, создавая экземпляры, обладающие всеми свойствами и методами «родительского» объекта.
  • Существенно расширены возможности ActionManager - теперь этот элемент выполняет функции центрального узла, который отвечает за обработку стандартных действий в интерфейсе пользователя, таких как открытие (Open) и сохранение (Save As) файлов, настройка печати (Print Setup) и запуск программ (Run). Теперь стало удобнее организовывать и настраивать эти часто используемые функции.
  • XML Tree применяется для разбора и проверки корректности XML-документов в редакторе исходного текста Code Editor. Эти и другие инструментальные средства, такие как XML Mapper XML и низкоуровневый компилятор, обеспечивают в Delphi хорошую поддержку языка XML.

Подход Delphi состоит в том, чтобы как можно быстрее дать программисту оболочку или каркас приложения. Далее к этому каркасу присоединяются нужные компоненты, настраиваются свойства и добавляется код - в результате получается работоспособная программа. Delphi - исключительно гибкая система, в которой разработчик чувствует себя одинаково комфортно, создает ли он DLL-библиотеку, распределенный объект, форму приложения или Web-сервис.

Таким образом мы подошли к обсуждению новинок Delphi 6, главные из которых - модули разработки Web-сервисов: WebSnap, BizSnap и DataSnap. Слово «snap» означает просто возможность быстро собрать что-то вместе; однако в Delphi эти названия придают «программистские» черты концепции Web-сервисов. Я потратил довольно много времени на изучение и исследование новых возможностей; не могу сказать, что в результате я стал ярым приверженцем Web-сервисов, но все же инструментальные средства Delphi заметно способствуют осознанию того, как следует их создавать и использовать.

Snap-модули

Модуль DataSnap применяется там, где нужна «посредническая» функциональность, - на промежуточном уровне между серверами баз данных и клиентскими приложениями. Его основная задача - обеспечить подключение «без состояний» для данных из различных источников при помощи различных протоколов, таких как DCOM и CORBA. Поддерживаются несколько видов подключений: непосредственно через драйверы, Microsoft ADO или Borland Database Engine. Данные подключений сохраняются в локальном (на сервере или клиенте) наборе данных (DataSet). В промежутке между подключением и набором данных разработчику предоставлены широкие возможности контролировать корректность данных и применение бизнес-правил. Поддержка Web-сервисов в этом модуле обеспечивается за счет использования XML в качестве посреднического формата и протокола SOAP в качестве транспорта. Часть DataSnap, относящаяся к управлению базами данных, покажется большинству разработчиков знакомой, однако работа с ней в контексте SOAP станет интересной возможностью освоить новые технологии.

Модуль WebSnap - это своего рода платформа разработки приложений для Web-сервисов и приложений, взаимодействующих с Web-серверами (ISAPI, NSAPI, Apache и большинство серверов с поддержкой CGI). В сущности, он выполняет по отношению к HTML- и DHTML-страницам те же функции, что и DataSnap по отношению к базам данных, т. е. это своего рода промежуточный уровень, обеспечивающий «связку» различных сценариев (например, JavaScript и VBScript) и HTML в одном приложении Delphi. Эта задача решается благодаря использованию специальной формы WebModule, в которой размещаются компоненты и методы WebActions для поддержки общих методов в Web. В Delphi предусмотрен усовершенствованный мастер WebSnap Wizard, позволяющий создавать серверные программы для всех основных Web-серверов. Это огромный шаг вперед по сравнению с существовавшим ранее «мозаичным» процессом разработки таких приложений, а откомпилированные такой системой программы работают исключительно быстро.

На уровне компонентов используется BizSnap - платформа разработки Web-сервисов для бизнеса, в первую очередь приложений B2B и B2C. В этом модуле язык XML применяется в качестве среды-преобразователя между локальными данными и данными бизнес-партнеров. Для поддержки этих операций BizSnap предоставляет несколько превосходных средств анализа и сопоставления. Для управления взаимодействием между приложениями в BizSnap используется SOAP. Использование SOAP-объектов существенно упрощает процесс разработки Web-сервисов для многих видов бизнес-операций. В определенных областях BizSnap заменяет приложения COM и CORBA, хотя Borland стремится к сосуществованию с этими более старыми протоколами - равно как и с новыми структурами, такими как Microsoft .NET, Oracle.NOW и Sun ONE.

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

Delphi не заменит Java или C++ в программировании приложений уровня предприятия. Но она четко соответствует классу систем для разработки повсеместно нужных приложений обработки данных, утилит и небольших программ, жизненно важных для бизнеса. Теперь в единую систему разработки программ добавилась поддержка Web-приложений и сервисов. В этой сфере Delphi уверенно конкурирует с Microsoft Visual Basic. С точки зрения разработчиков ПО и корпоративных ИТ-подразделений, Delphi - это современная система, не связанная ни с Microsoft, ни с Java. Вы можете возразить, что она не относится к господствующим системам, однако ее положение «на перекрестке» различных технологий имеет много преимуществ - особенно в сфере быстро развивающихся Web-стандартов. Выпустив Delphi 6, Borland доказала, что не только может догонять, но и в состоянии повести отрасль за собой.

Нельсон Кинг (Nelson King) написал девять книг по программированию приложений баз данных и большую часть своего времени посвящает практической разработке корпоративного ПО. С ним можно связаться по e-mail: nelsonking@earthlink.net.

Комментарий представительства Borland в России, странах СНГ и государствах Балтии

В последнее время мы все чаще смотрим на свои продукты не как на отдельные продуктовые «островки», а как на единую платформу разработки. Иными словами, мы хотим обеспечить максимальную интеграцию продуктов и «сквозную» доступность технологий. Конечно, каждый из них обладает богатой функциональностью и качественно повышает продуктивность разработки. Поддерживая открытые стандарты, продукты Borland позволяют создавать решения, ориентированные на различные технологии, в том числе и на конкурирующие (например, COM/.NET и J2EE/CORBA). Однако при совместном использовании в качестве платформы разработки и развертывания решения Borland позволяют в первую очередь мыслить в терминах архитектур, стандартов и технологий, а не в контексте привязанности к конкретному программному продукту. Такой подход позволяет пользователям уйти от извечной проблемы “vendor lock-in”, которая слишком часто накладывает ограничения на развитие прикладных систем и слишком часто требует при планировании учитывать фактор “запланированного устаревания”.

Выпуск Delphi 6 не только стал крупной вехой в развитии этого продукта, но и во многом указал пользователям направление, в котором будут развиваться все наши технологические решения. Уже сейчас, через полгода после выхода этой версии, многие технологические новшества, появившиеся в «шестерке», доступны и в других продуктах Borland, например, в Kylix 2.

Чему хотелось бы уделить особое внимание, так это возможностям Delphi 6, которые обеспечивают интероперабельность, т. е. возможность прозрачного взаимодействия с другими платформами - такими как Linux или Java 2 Enterprise Edition)/CORBA.

Kylix 2, уже вышедший к моменту подготовки этой статьи, предоставил разработчикам, использующим Delphi 6, уникальную возможность портирования приложений нового поколения - на базе технологий XML и Web-служб - на платформу Linux. Отставание возможностей инструментальных средств для Linux во многом тормозило развитие этой платформы с точки зрения ее использования для развертывания прикладных сервисов и систем. Теперь, с “сихронизацией” функциональности Delphi 6 и Kylix 2, разработчики могут создавать решения, готовые для развертывания на обеих платформах, за исключением ситуаций, когда задействована специфика конкретной операционной среды.

Особого внимания заслуживает поддержка платформы J2EE 1.3, тесно интегрированной с CORBA и на сегодня наиболее динамично внедряемой в корпоративных решениях. Delphi 6 и Kylix 2 предоставляют развитые средства интеграции с J2EE/CORBA. Enterprise-версии этих продуктов включают VisiBroker - самую распространенную реализацию CORBA в мире. Это позволяет через механизмы CORBA, естественные и для Java/J2EE, получать доступ к корпоративной логике, представленной в виде компонентов EJB - Enterprise JavaBeans. Особенность новой (и единственной на момент подготовки этого материала) реализации платформы J2EE 1.3/CORBA 2.4 - Borland Enterprise Server, состоит в том, что работая из Delphi/Kylix/C++Builder с EJB, разработчик пишет код таким образом, как если бы серверные объекты - носители бизнес-логики были созданы не с помощью JBuilder, а на Object Pascal или С++, и находились бы там же, где и соответствующие вызовы.

Не будучи связана специфическими предпочтениями в области операционных систем или аппаратуры (что типично для большинства крупных игроков на рынке ПО), Borland имеет возможность наиболее широко поддерживать стандарты индустрии, участвовать в их разработке (как член Object Management Group и Java Community Process) и создавать открытые технологические решения.

Сергей Орлик, менеджер представительства Borland по продуктам