Среда программирования ide. Интегрированная среда разработки. Выбор подходящей IDE

  • Дата: 27.12.2022

Удобство и скорость разработки.

Александр Макарчук , qb
Повышение скорости и удобства разработки.

Александр Смирнов , Greensight
Ускорение разработки, уменьшение ошибок, просто удобство.

2. Важно ли обучать разработчиков использованию IDE? Почему?

Алексей Федоров , Одноклассники
Это интересная идея. Наверняка есть компании, которые готовы в это вложиться.

, ADV
Если разработчик не будет знать базовых вещей IDE, то разработка будет занимать больше времени. В современном мире это уже требование к профессии.

Александр Макарчук , qb
Нет, не нужно. Обучать - это навязывать свое. Каждый разработчик работает на том, что ему удобно. При этом всегда можно показывать преимущества своего IDE.

Александр Смирнов , Greensight
Это скорее вопрос к каждому разработчику отдельно - что ему удобнее. Но на ранних этапах умное автодополнение и подсветка ошибок практически незаменимы.

3. Большинство качественных IDE платные. Стоит ли тратиться на лицензии?

Алексей Федоров , Одноклассники
Стоит. Текущая ситуация на рынке такова, что платные IDE, как правило, сильно лучше бесплатных.

Алексей Персианов, Михаил Парфенюк , ADV
Если хотите качественную IDE, то стоит потратиться. Если не поддерживать разработчиков качественных IDE «рублем», то они не будут делать качественные IDE

Александр Макарчук , qb
Если целесообразно, то, конечно, нужно. Время - деньги.

Александр Смирнов , Greensight
В зависимости от потребностей и средств. Кому-то хватает Sublime, кто-то хочет использовать продукты Jetbrains, кому-то неизбежно приходится покупать Xcode.

4. Чего не хватает современным IDE? Может ли на этом рынке появиться гигант, подобный JetBrains?

Алексей Федоров , Одноклассники
Может. Но конкурировать с ними будет трудно: разработка IDE - это сотни человеко-лет работы и десятки миллионов долларов.

Алексей Персианов, Михаил Парфенюк , ADV
В данный момент JetBrains захватила данный рынок, и в ближайшее время вряд ли появится что-то лучше.

Александр Макарчук , qb
Всегда будет появляться что-то новое, и IDE не исключение. Преимущество новых проектов всегда в том, что они учитывают недостатки старых.

Александр Смирнов , Greensight
Если появится что-то лучше, то почему бы и нет.

5. Какие еще существуют или могут появиться инструменты, ускоряющие разработку и облегчающие жизнь разработчикам?

Алексей Федоров , Одноклассники
Сборщики проектов, баг-трекеры, системы контроля версий, системы непрерывной сборки и интеграции и многие-многие другие.

Алексей Персианов, Михаил Парфенюк , ADV
Например, CI системы.

Александр Смирнов , Greensight
Сложно сказать. Все больше сторонних инструментов интегрируется в IDE, нежели существуют отдельно.

6. Какие тренды в развитии функционала IDE вы бы могли отметить в последние годы?

Алексей Федоров , Одноклассники
Интеграция с другими системами, такими как баг-трекеры, сервера VCS или CI. И конечно, скорость - тормозят современные IDE сильно меньше, чем 10 лет назад.

Алексей Персианов, Михаил Парфенюк , ADV
Переход всех платных IDE к распространению по подписке.

Александр Макарчук , qb
Подписки. Всегда проще заплатить меньшую сумму, особенно если есть сомнения в выборе или еще не привык к инструменту.

Александр Смирнов , Greensight
Развитие плагинов, интеграций со сторонними утилитами и софтом, улучшение автодополнения.

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

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

Для удобства все инструменты разбиты на три группы:

  • редакторы кода – относительно простые программы, основная функция которых состоит непосредственно в создании и изменении файлов с программным кодом;
  • многофункциональные интегрированные среды (IDE) – мощные инструменты, объединяющие десятки прикладных функций;
  • облачные IDE – функциональность десктопных сред для веб-разработки в виде интернет-сервиса.

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

Редакторы кода

Komodo Edit

Мини-версия полноценной среды разработки Komodo IDE по умолчанию предоставляет базовые функции редактора, а подключаемые расширения добавляют поддержку синтаксиса разных языков и полезные опции, например, компиляцию .

Возможности Vim:

  • огромное количество дополнений;
  • многоязычность;
  • поддержка множества файловых форматов;
  • мощные поисковые инструменты;
  • возможность бесконечно отменять внесенные изменения;
  • интеграция с большим количеством сторонних приложений.

GNU Emacs

Еще один базовый редактор кода Linux-систем GNU Emacs сложнее, чем тот же Vi, но при этом мощнее и имеет большую функциональность:

  • несколько режимов редактирования, синтаксическое выделение кода для разных языков;
  • подробная документация и руководство для начинающих пользователей;
  • поддержка кодировки Unicode;
  • использование визуального интерфейса или диалекта Emacs Lisp для тонкой настройки рабочей среды;
  • хороший отладчик;
  • дополнительные удобства, например, почтовый клиент, планировщик;
  • менеджер расширений.

Adobe Brackets

Относительно молодой кодовый редактор Brackets сделал основной упор на визуализацию и упрощение работы с CSS-препроцессорами. Проектирование веб-страницы прямо в браузере становится очень быстрым и легким делом. Brackets – отличное решение для программистов и дизайнеров, имеющих дело с пользовательскими интерфейсами и фронтендом в целом.

Основные функции:

  • визуализация HTML-кода и стилей, возможность просмотра изменений в режиме реального времени и мгновенного редактирования;
  • работа с PSD-файлами, возможность импорта изображений без использования Adobe Photoshop;
  • удобная компиляция CSS-препроцессоров.

Visual Studio Code

Многофункциональный, но компактный кодовый редактор VSC изначально был предназначен для обработки JavaScript и его расширений, но плагины позволяют добавить другие популярные языки, например, PHP и C#. Программа отлично поддерживает платформу .

Технология IntelliSense обеспечивает умное автодополнение кода: редактор может дописывать названия уже объявленных функций, а подсказки содержат ссылки на нужные главы документации.

В редактор встроен отладчик кода.

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

Ifs Kit help или DDK help: Driver Writers Guide\Driver Development Environment

[Л. 1] Chapter 18. Buildind and debugging drivers

[Л. 2] Chapter 8. Device Driver Structure; Chapter 9. Debugging a Device Driver

В этом разделе мы рассмотрим следующие вопросы:

    Необходимое ПО

    Установка и настройка

Необходимое ПО:

    Операционная система, Service Pack и отладочная информация

    Компилятор

    Средства отладки и вспомогательные средства

Операционная система имеет 2 варианта поставки:

    Checked build (Debug build)

    Free build (Retail build)

Free build – обычная поставка. Включена полная оптимизация и отсутствует специализированные отладочные возможности.

Checked build – специально разработана для использования разработчиками драйверов. Оптимизации почти нет, что способствует лучшему пониманию кода при работе под отладчиком. Специализированный отладочный код встроен во многие функции для проверки правильности параметров и перехвата ошибочных ситуаций. Поставляется только в составе подписки MSDN.

В комплекте с ОС нам понадобится отладочная информация (файлы с расширением.dbgи.pdb). Она содержит сопоставление адресов внутри конкретного исполняемого файла с символическими именами функций и переменных и может быть использована отладчиками.

Необходимо подчеркнуть, что символьная информация различна для checkedи freeверсий системы.

После установки ОС необходимо установить последнюю версию SP. Надо помнить, что SP заменяет почти все системные файлы, и поэтому для них необходима новая символьная информация.

Для checkedи freeверсий системы необходимы отдельные версии SP. Кроме того, ОС и SP могут различаться по поддержке криптоалгоритмов (40-128 бит), что может влиять на возможность установки SP.

Компилятор . Хотя принципиально могут использоваться компиляторы различных производителей, структура заголовочных файлов и переменных окружения, поставляемых Microsoft для создания драйверов оптимизирована для использования компилятораMicrosoft Visual C. Версия компилятора должна быть не ниже 4.1, однако реально необходимая версия будет зависеть от двух других компонентов – SDKи DDK.

MSDN Library . При установке Developer Studio запрашивается установка MSDN Library –продукт, предоставляющий информацию о разработке ПО на всех поддерживаемых платформах Microsoft.

SDK . В ранних версиях комплект назывался Win32 SDK , сейчас – Platform SDK . Это необязятельный, но желательный для разработки драйверов компонент. Содержит заголовочные файлы, lib-файлы, документацию и примеры программирования на пользовательском уровне с использованием подсистемы Win32.

DDK . Существуют DDKдля Windows 95, Windows 98, Windows NT 4.0и Windows 2000. DDKдолжен соответствовать платформе, для которой предполагается создание драйвера, но не обязательно – на которой производится создание. Мы будем пользоваться DDKдля Windows NT 4.0. DDKсодержит заголовочные файлы, документацию и примеры написания драйверов, за исключением драйверов файловой системы.

IFS Kit . Пакет для создания драйверов файловой системы. Поставляется как отдельный от подписки MSDNпродукт. Существуют версии для Windows 98, Windows NT 4.0и Windows 2000. Последние версии включают в себя DDK, но с другим набором примеров. Более ранние версии требовали предварительной установки DDK.

Между перечисленным набором компонентов существует взаимосвязь:

Первым ставится компилятор. Как уже говорилось, хотя существует возможность использования компиляторов других фирм, SDKи DDK предполагают наличие именно Visual C, причем в зависимости от времени выхода SDKи DDK предполагаются различные версии компилятора (при линковке будут указаны библиотеки от различных версий – этим грешит SDK, либо будут некорректно запускаться командные файлы инициализации переменных окружения – этим грешит DDK). Кроме того, ранние версии DDK требовали обязательного наличия установленного SDK. Из возможных проблем еще стоит указать то, что при использовании ОС Windows NT Workstation могут не устанавливаться системные переменные окружения.

Расположение командных файлов для установки переменных окружения:

    VC98\bin\vcvars32.bat

    Mstools\setenv.bat

    Ddk\bin\setenv.bat

При наличии версии DDK, требующей наличия SDK, из файла Ddk\bin\setenv.bat должны быть исключены строки проверки наличия SDK и запуска его файла setenv.bat, и прописан вызов vcvars32.bat, как это сделано на рабочих местах, где будут проходить л/р.

Средства отладки и вспомогательные средства.

Выбор средства отладки – важный момент, который может влиять на набор необходимых аппаратных средств.

Вместе с продуктами Microsoft поставляются 4 отладчика:

KD ,консольная программа для отладки драйверов режима ядра, находится в директории bin пакета DDK для NT4и Win2000. (i386kd.exe, ia64kd.exe, alphakd.exe, mipskd.exe)

NTSD ,консольная программа для отладки программ и драйверов пользовательского режима,находится в директории system32 ОСWindows 2000.

CDB ,вариант NTSD,содержится в директории bin пакетаDDK для Windows 2000.

WinDbg ,графический отладчик для отладки кода как пользовательского режима, так и режима ядра, содержится в директории bin пакетаDDK для Win2000 и Platform SDK.

Из всех перечисленных вариантов упоминания достоин только отладчик WinDbg. Он предоставляет удобный пользовательский интерфейс, однако очень неустойчив в работе, плохо документирован и не имеет поддержки от Microsoft. Для использования этого продукта для отладки драйверов необходимы 2 компьютера – Development Рlatformи Test Platform. Отладчик доступен для всех поддерживаемых платформ, при этом возможна кроссплатформенная отладка. Поддерживается работа на мультипроцессорных системах.

Лучшим отладчиком для отладки ОС и драйверов многие разработчики с полным основанием считают SoftICEфирмы NuMega. Стабильный в работе, хорошо документированный, поддержка от фирмы. Отладка осуществляется на том же компьютере, на котором проводилась разработка, однако возможна и удаленная отладка посредством dos-программы serial.exe. Недостатком можно считать пользовательский интерфейс, однако это дело привычки. Более серьезными недостатками является ограничение поддержки процессоров только платформой intel, а также отсутствие поддержки мультипроцессорных систем (однако система все еще активно развивается).

На рабочих местах для выполнения л/р установлен SoftIce в составе пакета NuMega Driver Studio v 2.0. Имеется полная документация в формате pdf.

На рабочих местах имеется также ряд вспомогательных средств для удобства в исследовании ОС и поведения драйверов. Часть этих средств снабжена исходными текстами, и все они могут являться хорошим наглядным пособием для написания драйверов. Перечислим эти средства:

    Monitor – просмотр трассировочной информации, выводимой драйверами и прикладными программами.

    Winobj – просмотр пространства имен диспетчера объектов

    Handleex – информация о запущенных процессах, всех открытых ими описателях и подгруженных модулях dll.

    Filemon – просмотр активности файловых систем, в том числе mailslotи npfs

    Regmon – отслеживание обращений к реестру, в том числе на этапе загрузки системы

    Portmon – отслеживание обращений к последовательным и параллельным портам

    Tdimon – отслеживание запросов TDI.

    Tokenmon – отслеживание работы системы, касающихся srm.

Сервисы сообщений

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

Платформа для создания и выполнения Web-сервисов, предлагаемая фирмой BEA, называется BEA WebLogic E-Business Platform и содержит следующие ключевые компоненты:

  • BEA WebLogic Server - сервер приложений, входящий в лидирующую тройку продуктов на рынке. Представляет собой основу платформы BEA WebLogic E-Business Platform и обеспечивает доступ и внедрение простых Web-сервисов. В настоящее время предусмотрена поддержка таких стандартов, как XML, SOAP, UDDI и WSDL;
  • BEA WebLogic Integration - открытый и расширяемый продукт, позволяющий интегрировать партнеров через Web и создавать комплексные Web-сервисы с поддержкой транзакций и защиты информации, работающие на основе стандартов ebXML и BTP;
  • BEA WebLogic Personalization Server - обеспечивает настройку Web-сервисов под конкретных клиентов в зависимости от пользовательских настроек, бизнес-правил или других критериев;
  • BEA WebLogic Workshop - средство разработки Web-сервисов на платформе BEA WebLogic E-Business Platform.

Создание Web-сервисов с помощью интегрированной среды WebLogic Workshop облегчается тем, что данная среда предоставляет обширный набор визуальных средств для разработки дизайна сервисов. Использование специальных компонентов обеспечивает доступ к таким ресурсам, как базы данных, компоненты EJB, а также к другим Web-сервисам и существующим приложениям. В состав продукта входят следующие компоненты: ServiceControl, TimerControl, EJBControl и JMSControl. Логика работы сервиса сохраняется в JWS-файле, содержимое которого графически отображается в режиме дизайна (рис. 2).

Приложения, создаваемые с помощью WebLogic Workshop, полностью соответствуют спецификации J2EE и не требуют внедрения на сервер приложений BEA WebLogic Server - достаточно любого сервера приложений, поддерживающего стандарт JWS. В состав WebLogic Workshop входит версия BEA WebLogic Server, поэтому Web-сервисы безо всяких проблем внедряются как файлы Enterprise Archive (EAR).

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

Дополнительную информацию по продуктам фирмы BEA можно получить по адресу: http://www.beasys.com/products/index.shtml .

Borland

ирму Borland можно смело назвать пионером в области разработки средств создания Web-сервисов для различных платформ. Так, Delphi 6 позволяет создавать и использовать SOAP и WSDL на платформе Windows, Borland Kylix - на платформе Linux, а JBuilder - на платформе Java.

Продукты компании Borland можно разделить на три категории: разработка, развертывание и управление. К первой категории относятся:

  • Borland Enterprise Studio - это полная платформа для моделирования, разработки и внедрения решений для бизнеса и электронной коммерции. Продукт выпускается в двух вариантах: Borland Enterprise Studio for Java (включает JBuilder) и Borland Enterprise Studio for Windows (включает Delphi);
  • C++Builder - популярное средство для разработки Windows-приложений на языке C++; в версии 6 позволяет разрабатывать Web-сервисы и приложения на их основе. C++Builder 6 обеспечивает поддержку клиентов Web-сервисов, использующих как SOAP encoding, так и Document Literal style. Последний входит в состав Microsoft .NET Web Services. Предоставляя набор высокоуровневых компонентов и визардов, в том числе автоматическую публикацию WSDL-документов для Web-сервисов в режиме исполнения и генерацию кода на основе WSDL (WSDL Importer), C++Builder 6 позволяет разработчикам легко адаптировать существующие приложения для работы в режиме Web-сервисов и доступа к ним как во внутрикорпоративной сети, так и через Web;
  • Delphi 6 - обеспечивает быструю разработку приложений с использованием технологий CORBA и Web Services для платформы Windows. Необычайная легкость создания Web-сервисов позволяет быстро трансформировать существующие приложения в Web-систему. Интегрированная поддержка Apache дает возможность быстро создавать динамические Web-приложения с доступом к базам данных. Совместимость с Borland Kylix 2 обеспечивает кросс-платформенную разработку (в том числе многозвенных систем на основе CORBA IIOP и SOAP) без ущерба функциональности. Возможность доступа к компонентам Enterprise JavaBeans, развернутым на Borland AppServer, и наличие высокоуровневых средств работы с XML позволяют создавать решения корпоративного уровня;
  • JBuilder - включает наиболее полный набор средств визуальной разработки для создания приложений на платформе Java 2/J2EE 1.3. JBuilder 6 удовлетворяет практически всем возможным требованиям разработчиков конечных решений, позволяя интегрировать Web- и корпоративные приложения и обеспечивая группы разработчиков удобной и масштабируемой средой разработки. Визуальные инструменты и мастера упрощают и ускоряют разработку приложений. JBuilder 6 позволяет вести разработку на нескольких платформах, включая Windows, Linux, Solaris и Mac OS X. В настоящее время JBuilder занимает более 60% рынка коммерческих средств разработки на платформе Java;
  • Kylix - обеспечивает быструю разработку приложений с применением технологий CORBA и Web Services для платформы Linux. Уникальная легкость создания Web-сервисов дает возможность оперативно трансформировать существующие приложения в Web-систему. Интегрированная поддержка Apache позволяет быстро создавать динамические Web-приложения с доступом к базам данных. Совместимость с Borland Delphi 6 обеспечивает кросс-платформенную разработку без ущерба функциональности, включая разработку многозвенных систем на основе CORBA IIOP и SOAP. Возможность доступа к компонентам Enterprise JavaBeans, развернутым на Borland AppServer, и наличие высокоуровневых средств работы с XML позволяют создавать решения корпоративного уровня.

Для развертывания приложений Borland предлагает Borland e-business platform - основу для создания полноценной информационной инфраструктуры современного предприятия. Ориентированность на стандарты, уникальная гибкость и масштабируемость - залог успеха проектов, построенных на базе данных технологий. К этой категории относятся следующие продукты:

  • Borland Enterprise Server - первый интегрированный комплекс средств на основе новейших промышленных стандартов CORBA 2.4 и J2EE 1.3. Borland Enterprise Server, развивающий функциональность AppServer и VisiBroker, занимает ведущие позиции в области инфраструктурного программного обеспечения для телекоммуникационного и банковско-финансового секторов, в которых масштабируемость, высокая скорость обработки транзакций и доступность в режиме 24Ѕ7 являются критически важными требованиями;
  • Borland Enterprise Server AppServer Edition позволяет разработчикам сконцентрировать свои усилия на создании прикладной логики в виде компонентов EJB (Enterprise JavaBeans). Лежащее в основе AppServer инфраструктурное ядро VisiBroker добавляет к богатству функциональности J2EE мощь коммуникативных средств CORBA IIOP (Internet Inter-ORB Protocol), удовлетворяющих требованиям таких новых и актуальных стандартов, как CORBA Portable Object Adapter (POA), Object-by-value (OBV - передача объектов по значению) и RMI-over-IIOP;
  • Borland Enterprise Server Web Edition включает Web-сервер Apache и Web-контейнер Tomcat, которые были усовершенствованы Borland (в Apache встроен IIOP plug-in, конвертирующий HTTP-запросы в IIOP). Также в поставку BES Web Edition включена база данных JDataStore, которая не только удовлетворяет стандартные потребности разработчиков в области СУБД, но и позволяет осуществлять кэширование сессий. Borland Web Engine, интегрирующий Borland Web Server и Borland Web Container, построен на базе ядра VisiBroker, при помощи которого происходит управление балансом загрузки, а также обеспечивается отказоустойчивость среды развертывания сервлетов/JSP, Web-приложений и Web-сервисов, созданных с использованием Delphi;
  • Borland InterBase 6 - SQL-сервер баз данных, объединяет простоту использования, низкие затраты на сопровождение и мощность систем корпоративного уровня. Компания Borland гарантирует, что InterBase 6 совмещает силу мощной, апробированной архитектуры с развитыми технологиями, необходимыми для успеха прикладных систем.

И наконец, для управления и мониторинга прикладной инфраструктуры предприятия Borland предлагает AppCenter - уникальное средство управления и мониторинга объектных распределенных систем. Borland AppCenter 4.1 включает развитые инструменты управления объектами CORBA и компонентами Enterprise Java Beans (EJB), что делает его незаменимым средством для обеспечения жизненного цикла современных информационных систем. Интеграция AppCenter 4 с VisiBroker 4.x и Borland AppServer 4.x (включая версию 4.5.1) обеспечивает создание единой высоконадежной информационной среды предприятия.

Разработка Web-сервисов средствами Delphi 6, C++ Builder и Kylix базируется на трех основных компонентах:

  • BizSnap - для создания Web-сервисов на основе XML и SOAP. BizSnap упрощает обмен, трансформацию и манипуляцию XML-документами, обеспечивая гибкость и расширяемость бизнес-приложений, приводя их в готовность к использованию в электронном бизнесе новой волны;
  • WebSnap - для создания и отладки Web-приложений. Инструменты, входящие в состав WebSnap, например отладочный Web-сервер, упрощают отладку и тестирование приложений. Возможность плотной интеграции приложений WebSnap в корпоративные Web-сайты и порталы, разработанные с использованием таких известных средств, как DreamWeaver и FrontPage, а также поддержка серверных сценариев на JavaScript, VBScript и других языках позволяют вам задействовать существующие наработки в области Web-приложений;
  • DataSnap - для создания соединений с базами данных для приложений и сервисов через XML, DCOM или CORBA. DataSnap оптимизирует число соединений и потоки данных между клиентами и серверами баз данных за счет централизации доступа к данным и их обновления во всех процессах и приложениях электронного бизнеса, а также позволяет масштабировать приложения в зависимости от изменения объемов обрабатываемых данных.

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

Hewlett-Packard

ewlett-Packard была первой компанией, которая стала заниматься исследованиями в области Web-сервисов еще в 1995 году. В 1999 году компания объявила о платформе E-speak, ставшей прообразом современной линейки продуктов фирмы, но до марта 2001 года никакой видимой активности в этом направлении не проявляла. В настоящее время объявлено о большом наборе программных продуктов под общим названием NetAction. Этот набор можно разделить на следующие основные компоненты:

  • HP Netaction Internet Operating Environment (IOE) - интегрированная платформа для построения и внедрения решений, позволяющая сконцентрироваться на бизнес-проблемах, а не на разработке программ;
  • HP Opencall - платформа для разработки сервисов, связанных с доставкой данных, голосовой информации и т.п.;
  • HP Chai - полная платформа для доставки Web-сервисов на различные устройства. Представляет собой настраиваемую Java-среду для доступа к Web, а также модульные блоки Embedded Linux.

Взаимодействие этих компонентов, а также ряда других продуктов фирмы показано на диаграмме (рис. 3).

Рассмотрим основные компоненты HP Netaction IOE более подробно:

  • HP Application Server - сервер приложений «нового поколения» с сервис-ориентированной архитектурой и поддержкой подключаемых сервисов;
  • HP Application Server Resilient Edition - версия сервера приложения для поддержки непрерывной работы, сообщений, транзакций и других технологий для обеспечения работоспособности Web-сервисов;
  • HP Process Manager - средство управления процессами, позволяющее графически определять бизнес-процессы и автоматизировать их выполнение;
  • HP Process Manager, Interactive Edition - средство быстрой (посредством графических средств моделирования) разработки композитных приложений для основанных на базе Web или мобильных сервисов;
  • HP Total-e-Transactions - средство управления транзакциями для J2EE-приложений;
  • HP Message Service - средство поддержки J2EE Java Message Service;
  • HP Web Services Registry - позволяет потребителям создавать и управлять корпоративными реестрами и доступом к Web-сервисам. Включает HP Registry Composer - графическое средство для регистрации и поиска сервисов как в Web-, так и в корпоративных реестрах;
  • HP Total-e-Syndication - средство автоматизации доставки наполнения Web-сервисов, интегрирующееся с другими продуктами фирмы;
  • HP Mobile Portal Solution - средство для доставки сервисов и наполнения на мобильные устройства;
  • HP Web Services Transactions - средство для управления транзакциями, состоящее из трех компонентов: координатора транзакций, сервера транзакций и клиентских библиотек, используемых для инициализации транзакций;
  • HP Web Services Platform - основанная на стандартах открытая архитектура для разработки, внедрения, регистрации, поиска и потребления Web-сервисов, в том числе программных средств и утилит для реализации Java-объектов в виде Web-сервисов. Архитектура HP Web Services Platform показана на рис. 4 .

Для разработки сервисов предлагается использование средства HP Service Composer, которое предоставляет графический интерфейс для создания WSDL-интерфейсов для Java-объектов и поддерживает автоматическое внедрение Web-сервисов на сервер приложений HP Application Server.

Hewlett-Packard занимает собственную нишу на рынке средств создания Web-сервисов, сравнимую, может быть, с нишами, занимаемыми IBM и Sun, - компания обладает и аппаратными платформами для выполнения Web-сервисов, и программными платформами для внедрения и управления сервисами, а при успешном слиянии с Compaq у Hewlett-Packard появятся и консалтинговые сервисы.

Дополнительную информацию о поддержке Web-сервисов можно получить по адресам: http://www.hp.com/go/webservices/ , http://www.hp.com/go/webservicestools/ и http://www.hp.com/go/middleware/ .

IBM

отя IBM и не была в числе первых компаний, сформулировавших свое видение Web-сервисов, она фактически является лидером (как и с Microsoft) по продвижению стандартов и технологий, связанных с Web-сервисами. В настоящее время компания IBM не только предлагает широкий спектр продуктов для создания и внедрения Web-сервисов (от WebSphere Suite до средств хостинга Web-сервисов, поддержки Web-сервисов на уровне СУБД DB2 - в семействе продуктов Tivoli и Lotus), но и имеет определенную политику в отношении развития самой концепции Web-сервисов и активно участвует в ее продвижении, сотрудничая с другим лидером - Microsoft.

Говоря о предлагаемых IBM продуктах для создания и внедрения Web-сервисов, следует в первую очередь отметить такие средства, как WebSphere Studio для создания сервисов на языке Java, сервер приложений WebSphere Application Server, MQ Series для управления сообщениями для объединения систем, включая поддержку SOAP и Web-сервисов на уровне СУБД DB2.

Основные продукты

Из обширного семейства продуктов фирмы IBM можно выделить две линейки, представляющие прежде всего интерес для тех, кто собирается создавать Web-сервисы: семейство продуктов WebSphere Studio и семейство продуктов WebSphere Application Server:

  • WebSphere Studio - это набор средств для создания Web-сервисов. Существенно то, что данный продукт рассчитан не только на разработчиков, но и на Web-дизайнеров, художников и Web-мастеров, которые могут принимать участие в создании сервисов. WebSphere Studio включает такие средства, как Applet Designer - визуальное средство для создания Java-аплетов, WebArt Designer - для создания графических элементов и Animated Gif Designer - для создания анимированных GIF-изображений. Помимо этого отметим наиболее важные компоненты, входящие в состав WebSphere Studio: WebSphere Studio Site Developer - средство для создания и публикации Web-сервисов с поддержкой основных Web-стандартов, WebSphere Studio Application Developer - полный набор средств, включенных в WebSphere Studio Site Developer, а также средства мониторинга и тестирования сервисов;
  • WebSphere Application Server - этот серверный продукт обеспечивает поддержку всех основных стандартов Web-сервисов, интегрируется с WebSphere Studio, облегчая таким образом создание и внедрение Web-сервисов. Кроме того, в состав WebSphere Application Server включены средства интеграции с другими продуктами фирмы IBM - например Lotus Domino и WebSphere Commerce Suite. WebSphere Application Server - один из первых серверов приложений, совместимый со спецификацией J2EE 1.3.

По данным Giga Information Group, платформа WebSphere является наиболее важной для создания Web-сервисов - ее указали 33% опрошенных. Второй по значимости оказалась Microsoft .NET, а третьей - J2EE с дополнительными технологиями поддержки Web-сервисов (рис. 5).

Другие продукты

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

  • VisualAge for Java - визуальное средство разработки на языке Java, интегрируемое с семейством продуктов WebSphere Studio;
  • DB2 - реляционная база данных, поддерживающая основные стандарты Web-сервисов, в том числе XML, UDDI и SOAP. DB2 при использовании совместно с DB2 XML Extender позволяет извлекать и хранить данные через Web-сервисы;
  • Web Services Hosting Technology - семейство продуктов для управления Web-сервисами, позволяющее анализировать использование сервисов и использовать различные модели оплаты;
  • Web Services Gateway - набор различных функций защиты доступа, включая поддержку аутентификации пользователей;
  • Web Services Toolkit - набор средств для разработки Web-сервисов.

Web Services Toolkit, бесплатно распространяемый IBM набор средств для разработки Web-сервисов, представляет собой реализацию архитектуры Web-сервисов, описанную в документе «Web Services Architecture Overview», доступном на Web-сайте фирмы IBM. Этот набор содержит следующие компоненты:

  • клиентская часть:
    • UDDI4J API для управления UDDI-реестрами (как корпоративными, так и расположенными в Internet) через функции Save, Delete, Find и Get;
    • Services Registry API для управления UDDI-реестрами через функции Publish, Unpublish и Find;
  • спецификации WSDL 1.1, Web Services Flow Language (WSFL), WS-Inspection и HTTPR (Reliable HTTP);
  • набор средств для разработки Web-сервисов:
    • утилиты на базе AXIS, включая утилиту Java2WSDL для генерации WSDL-документов на основе Java-кода и утилиту WSDL2Java для генерации Java-прокси-кода на основе WSDL-документа;
    • Web Services Toolkit Configuration Tool для настройки и конфигурации Web Services Toolkit;
    • Utility Web Services Portal Tool для управления пользователями Web-сервисов, включенными в состав Utility Web Services;
  • набор Web-сервисов (Utility Web Services), предоставляющих набор функций, которые можно использовать при создании бизнес-приложений:
    • Notification;
    • Common Data;
    • User Identity;
    • Metering;
    • Accounting;
    • Contract.
  • примеры использования Utility Web Services;
  • набор программных средств для развертывания Web-сервисов, включая WebSphere Application Server Micro Edition и UDDI-реестр;
  • утилита WSDLdoc для автоматической генерации документации на основе WSDL-файлов;
  • набор Java-классов для программного управления WSDL-документами (WSDL4J);
  • SOAPConnect for LotusScript - средство, позволяющее приложениям Lotus Domino и Lotus Notes использовать Web-сервисы;
  • UDDI4J для управления UDDI-реестрами из Java-приложений.

Архитектура Web Services Toolkit представлена на рис. 6 . Здесь показаны основные компоненты Web Services Toolkit. Средства создания Web-сервисов, расположенные в нижней части справа, включают утилиты для обнаружения и публикации сервисов, а также для создания сервисов на основе существующих Java-приложений. Компоненты времени исполнения разделяются на серверные и клиентские компоненты. К серверным компонентам относятся UDDI-реестр для создаваемых Web-сервисов, набор Utility Web Services и примеры использования сервисов. Клиентские компоненты расположены в приложениях, которые обращаются к серверным компонентам, и поддерживают Java-интерфейсы, позволяющие приложениям осуществлять следующие операции:

  • публиковать и находить Web-сервисы, непосредственно обращаясь к UDDI (UDDI4J);
  • публиковать и находить Web-сервисы через WSDL-документы (WSDL-прокси);
  • обращаться к Web-сервисам через SOAP.

Отметим, что Web Services Toolkit не является коммерческим и его задача заключается в предоставлении набора технологий для широкого использования разработчиками. Ряд этих технологий впоследствии может войти в новые версии коммерческих продуктов типа WebSphere Studio Application Developer, WebSphere Application Server или в другие продукты IBM, Tivoli или Lotus (см. http://www.lotus.com/developer/).

В будущих версиях Web Services Toolkit планируется реализовать следующие компоненты: дополнительная поддержка защиты, расширения для управления сервисами, поддержка WorkFlow, поддержка новых версий Apache AXIS, предоставление среды для создания, публикации и поиска сервисов, улучшение интеграции с UDDI-реестрами.

Дополнительная информация о Web Services Toolkit доступна на Web-сайте по адресу: http://www.alphaworks.ibm.com/tech/webservicestoolkit/ .

Microsoft

icrosoft играет активную роль на рынке средств создания и потребления Web-сервисов и совместно с IBM участвует практически во всех связанных с этой технологиях новациях. Практически нет ни одного стандарта (начиная со стандарта языка XML), в принятии которого не была бы заметна роль Microsoft. Примером заинтересованности Microsoft в лидерстве на рынке Web-сервисов может служить факт создания совместно с IBM в феврале 2002 года ассоциации Web Services Interoperability Organization (WS-I, http://www.ws-i.org/), которая к настоящему времени насчитывает более 100 членов.

В качестве платформы для Web-сервисов Microsoft предлагает.NET Framework и набор корпоративных серверных приложений (семейство.NET Enterprise Servers). На сегодняшний день.NET представляет собой наиболее полную реализацию технологий Web-сервисов. Для разработки и потребления Web-сервисов Microsoft предлагает Visual Studio .NET - визуальную среду, поддерживающую все языки программирования и интегрирующуюся с существующими серверами компании.

Полнота реализации фирмой Microsoft технологий Web-сервисов подтверждается данными исследований, проведенных компанией Gartner, Inc. (см. «Web Services Major Vendors», D. Smith, August 2001 - рис. 7).

Продукты Microsoft для создания Web-сервисов подразделяются на пять основных категорий - .NET Experiences, клиенты, XML Web-сервисы, утилиты и серверы:

  • XML Web-сервисы - представляют собой строительные блоки компонентов, основанные на стандартах Web-сервисов: SOAP, WSDL, UDDI и XML. Первой, но неудачной попыткой создания подобных блоков стал набор сервисов, известных как.NET My Services, для хранения различной персональной информации. К этой категории также относятся такие сервисы, как.NET Passport и.NET Alerts;
  • .NET Experiences - Microsoft описывает.NET Experiences как набор Web-сервисов, которые позволяют «обращаться к информации через Internet или из обычных приложений». Пока различия между XML Web-сервисами и.NET Experiences определены недостаточно четко, но первыми продуктами в категории.NET Experiences стали: MSN - пользовательский Web-узел, поддерживаемый Microsoft, bCentral - Web-узел для малого бизнеса и Microsoft Visual Studio .NET - средство разработки приложений для.NET;
  • клиенты - к этой категории относятся как аппаратные, так и программные компоненты. Аппаратным компонентом может быть любое устройство, способное обращаться к Web-сервисам и поддерживающее TCP/IP-коммуникации, в том числе персональные компьютеры, телефоны, «ручные» компьютеры, игровые консоли и т.п. С точки зрения Microsoft, тип аппаратного компонента не имеет значения - главное, чтобы он базировался на каком-либо варианте платформы Windows; будь то Windows XP или Windows CE;
  • серверы - к данной категории относятся продукты семейства.NET Enterprise Servers, в том числе Microsoft Windows 2000 и др.;
  • утилиты - Microsoft предлагает большой набор программных средств для создания.NET Web-cервисов, в том числе Microsoft Visual Studio .NET и.NET Framework.

Архитектура платформы Microsoft .NET показана на рис. 8 .

Семейство продуктов Microsoft

Семейство продуктов Microsoft .NET пополняется практически каждый месяц, но для нашего обзора достаточно уже существующих серверных продуктов, средств разработки, операционных систем и Web-сервисов:

  • серверные продукты базируются на серверной операционной системе Windows 2000, на смену которой в скором времени придет ОС Windows .NET Server. Среди различных серверных продуктов следует выделить: Windows 2000 Server - серверную операционную систему, включающую поддержку каталогов, Web, приложений, коммуникаций, файловые сервисы и сервисы печати, Application Center для управления группами серверов; Mobile Information Server - сервер, позволяющий доставлять информацию и.NET-сервисы на мобильные устройства; BizTalk Server - сервер для поддержки обмена XML-информацией и документами между приложениями и бизнесами; Commerce Server - сервер для создания приложений электронной коммерции; Content Management Server - сервер для управления наполнением Web-сайтов и доставки этого наполнения различным клиентам;
  • средства разработки. Основным продуктом здесь является Microsoft Visual Studio .NET - средство для создания.NET-сервисов, поддерживающее такие языки программирования, как Visual Basic, C# и J#. Последний, однако, формально поддерживая синтаксис языка Java, не позволяет создавать стандартные Java-приложения - написанный код будет работать только под управлением Microsoft .NET;
  • операционные системы и прикладное ПО. Операционные системы являются ядром стратегии Microsoft .NET. Сюда входят все версии Windows, включая Windows CE для PDA, Windows Embedded и версии Windows, работающие на консоли Microsoft Xbox. Из прикладного программного обеспечения фирмы Microsoft отметим пакет Microsoft Office, для последней версии которого существует поддержка.NET;
  • Web-сервисы. Сервисы - это XML-компоненты и строительные блоки, которые могут использоваться Microsoft и другими компаниями для построения Web-сервисов.

Некоторые вопросы использования Microsoft Visual Studio .NET для создания Web-сервисов рассматривались в статье «Web нового поколения - Web-сервисы», опубликованной в КомпьютерПресс № 6’2001.

Дополнительную информацию о поддержке Web-сервисов можно найти на Web-сайте фирмы по адресу: http://www.microsoft.com/webservices/ .

Oracle

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

Oracle имеет два подхода к созданию и использованию Web-сервисов: во-первых, фирма предлагает программную инфраструктуру, которую разработчики могут использовать для создания Web-сервисов, а во-вторых, разрабатывает и продает программные продукты как Web-сервисы.

Более того, Oracle использует Web-сервисы для того, чтобы расширить сферу влияния за пределы рынка баз данных. Началом этому послужило появление E-Business Suite - набора корпоративных продуктов, которые могут работать через Internet.

Для разработки Web-сервисов Oracle предлагает J2EE-совместимую среду Oracle 9i JDeveloper (этот продукт доступен в виде бесплатной версии). Для выполнения Web-сервисов применяется сервер приложений Oracle 9i Application Server, а для создания приложений, использующих данные, СУБД Oracle 9i Database.

Кроме того, Oracle предлагает E-Business Suite - серверное программное обеспечение, работающее через Internet и включающее такие компоненты, как CRM, B2B, управление финансами, проектами, ресурсами, а также компоненты Business Intelligence. Набор Oracle Small Business Suite также работает через Internet и содержит модули для ведения счетов, создания отчетов, управления заказчиками и ряд других.

Sun Microsystems

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

Sun объявила инициативу Sun ONE (Open Net Environment) в октябре 2001 года (рис. 10). Необходимость появления этой платформы была обусловлена следующим обстоятельством: несмотря на то что J2EE обеспечивает надежную, масштабируемую, переносимую платформу для создания корпоративных решений, она до недавнего времени не имела стандартизованной поддержки Web-сервисов.

Sun ONE - это и архитектура, и платформа, и набор средств для создания и внедрения основанных на открытых стандартах (XML, UDDI, WSDL, SOAP) Web-сервисов, называемых в терминах Sun сервисами по запросу - Services on Demand (рис. 11).

Платформа Sun ONE базируется на следующих основных компонентах: на операционной системе Solaris, платформе Java 2 Platform, наборе серверов семейства iPlanet и средствах разработки Forte Development Tools. Ниже мы рассмотрим эти компоненты более подробно и перечислим их основные характеристики и назначение.

Solaris

Solaris - это операционная система на базе UNIX, функционирующая на системах на основе SPARC и на основе Intel. Она разработана с учетом мультипроцессорной поддержки и 64-битной архитектуры. Вместе с операционной системой поставляются Forte for Java, Forte Developer 6 Tools, iPlanet Web Server, iPlanet Directory Server, набор офисных продуктов StarOffice и СУБД Oracle8i Enterprise Edition.

В семейство Solaris входят следующие продукты:

  • Solaris Operating Environment - основа систем фирмы Sun. Это вычислительная среда для серверов любого уровня - от серверов отделов до массивных, объединенных в кластеры серверов, насчитывающих более 100 процессоров, - разработанная для мультипроцессорных 64-битных систем;
  • Trusted Solaris Operating Environment - расширяет возможности Solaris Operating Environment, защищая вычислительную среду от внутренних и внешних проникновений;
  • Solaris WBEM Services - используется для создания и модификации информации, хранимой в стандартном CIM-формате, облегчает администрирование Solaris Operating Environment и обеспечивает взаимодействие управляющих сервисов;
  • Solaris Bandwidth Manager - управляет сетевым трафиком;
  • Solaris Resource Manager - управляет системными ресурсами, обеспечивая их доступность и лучшее использование;
  • Solaris Easy Access Server - используется для включения систем на базе Solaris в сети на базе Windows NT;
  • Solaris PC NetLink - переносит сетевые сервисы типа Windows NT, файловые сервисы, сервисы печати, управление каталогами и аутентификацией с PC-серверов в среду Solaris Operating Environment;
  • Solaris Data Encryption - обеспечивает поддержку технологий шифрования для Solaris Operating Environment;
  • Solaris PDASync - синхронизует настольные приложения Solaris с устройствами на базе Palm OS и приложениями, выполняющимися на персональных компьютерах;
  • Sun Cluster - позволяет использовать базовые сервисы Solaris в рамках кластеров, обеспечивая полную совместимость с существующими приложениями для Solaris Operating Environment;
  • Sun Management Center - обеспечивает функции управления для Solaris Operating Environment, включая сервисы для управления аппаратными и программными конфигурациями. В дополнение к Sun Management Center предлагается Service Availability Manager, который увеличивает доступность сетевых серверов, выполняющихся локально или удаленно на системах Sun, осуществляет мониторинг и подтверждает доступность сетевых сервисов - Web-серверов, FTP-, Mail-, Calendar-сервисов и т.п. Дополнительным продуктом для Sun Management Center также является System Reliability Manager, который увеличивает надежность платформы и содержит ряд модулей для внедрения обновлений, слежения за файловой системой, запуска скриптовых программ и анализа протоколов сбоев операционной системы.

Более подробную информацию об операционной системе Solaris можно получить по адресу: http://wwws.sun.com/software/solaris/ .

Java 2 Platform

Java является ключевой технологией фирмы Sun, на которой базируется большинство предлагаемых ею продуктов и сервисов. С момента появления технологии Java базовая философия фирмы не изменилась: вы один раз пишете приложение на языке Java и оно способно работать на любой платформе, независимо от операционной системы. Для этого необходимо использование соответствующей виртуальной машины Java - Java VM. Самая новая версия платформы для разработки на языке Java - Java 2 Platform, Enterprise Edition (J2EE). С точки зрения фирмы Sun, приложения, которые будут выполнять функции Web-сервисов, должны быть написаны на языке Java. Java-приложения могут работать на любом устройстве, содержащем Java VM, включая персональные компьютеры, мобильные компьютеры, сотовые телефоны и беспроводные устройства.

Более подробную информацию о Java можно получить по адресу: http://wwws.sun.com/software/java/index.html .

В задачи данного обзора не входит рассмотрение всех интерфейсов и технологий, основанных на платформе J2EE. Здесь мы остановимся лишь на интерфейсах, обеспечивающих работу с XML-документами и создание и потребление Web-сервисов, - Java XML Pack и Java Web Services Developer Pack.

Java XML Pack

Пакет Java XML Pack - это набор интерфейсов и средств для разработки, публикации, обнаружения и потребления XML Web-сервисов для платформы Java 2 Platform. Входящие в состав Java XML Pack технологии можно разделить на две большие категории - средства для работы с XML-документами и средства для использования XML-технологий. К первой категории относятся:

  • Java API for XML Processing (JAXP) - набор интерфейсов для обработки XML-документов с использованием JAXP-совместимого парсера. Обеспечивается поддержка как событийной модели (SAX), так и древовидной модели (DOM) обработки XML-документов;
  • Java Architecture for XML Binding (JAXB) - средства для отображения между XML-документами и Java-классами, позволяющие использовать XML-документы как обычные Java-объекты.
  • К средствам использования XML-технологий, входящим в состав Java XML Pack, относятся:
  • Java API for XML Messaging (JAXM) - поддержка передачи XML-сообщений с использованием языка Java. JAXM базируется на спецификациях SOAP 1.1 и SOAP with Attachments, но при необходимости возможно расширение функциональности для поддержки высокоуровневых протоколов типа ebXML или bizTalk;
  • Java API for XML Registries (JAXR) - унифицированный механизм доступа к реестрам из языка Java. JAXR не связан с конкретной реализацией реестров и может использоваться как с XML-реестрами на базе стандарта ebXML Registry and Repository, так и с реестрами на основе спецификации Universal Description, Discovery and Integration (UDDI)
  • Java API for XML-based RPC (JAX-RPC) - средства поддержки вызова удаленных методов на базе языка XML через Internet.

Загрузить Java XML Pack можно по адресу: http://java.sun.com/xml/javaxmlpack.html .

Java Web Services Developer Pack

Недавно фирма Sun выпустила пакет Java Web Services Developer Pack (Java WSDP), в состав которого входит и Java XML Pack. Java Web Services Developer Pack - это набор средств, облегчающих создание Web-сервисов на платформе Java 2. Этот набор включает, помимо Java XML Pack, следующие компоненты:

  • JavaServer Pages Standard Tag Library (JSTL) 1.0 Beta 1;
  • Ant Build Tool 1.4.1;
  • Java WSDP Registry Server 1.0 EA2;
  • Web Application Deployment Tool;
  • Apache Tomcat 4.1-dev Container.

Java WSDP поддерживается на следующих платформах: Solaris 2.8, Windows 2000, Professional Edition, Windows XP, Professional Edition, RedHat Linux 7.2.

В состав Java Web Services Developer Pack входит более чем 600-страничное методическое пособие «The Java Web Services Tutorial», в котором рассматриваются все аспекты создания Web-сервисов с использованием перечисленных выше интерфейсов, библиотек и технологий.

Java WSDP можно найти по адресу: http://java.sun.com/webservices/webservicespack.html .

iPlanet

iPlanet - это семейство серверных продуктов фирмы Sun. В его состав входят Web-сервер, сервер каталогов, а также другие серверы, которые мы кратко рассмотрим ниже. Следует отметить, что появление в составе iPlanet средств обмена сообщениями является прямым ответом на Microsoft .NET Alerts. Однако в отличие от Microsoft .NET Alerts средства обмена сообщениями и нотификациями фирмы Sun базируются не на Microsoft Passport, а на альтернативном решении, известном как Liberty Alliance.

В семейство iPlanet входят следующие продукты:

  • iPlanet Directory Server - предназначен для хранения и управления профилями, привилегиями доступа, приложениями и сетевыми ресурсами. Кроме того, существуют версии iPlanet Directory Server Access Management Edition и iPlanet Directory Server Integration Edition;
  • iPlanet LDAP Proxy Server - обеспечивает сервисы безопасности для iPlanet Directory Server;
  • iPlanet Certificate Management System - обеспечивает корпоративные сервисы аутентификации сотрудников, клиентов и партнеров, управляет сертификатами на базе X.509;
  • iPlanet Web Proxy Server - служит в роли управляющего трафиком, собирая данные из сети, определяя механизмы перенаправления и выполняя соответствующие сервисы;
  • iPlanet Portal Server - используется для внедрения коммерческих порталов и включает сервисы управления членством, персонализации, интеграции и поиска информации;
  • iPlanet Web Server Enterprise Edition - Web-сервер с поддержкой Java Servlets и Java Server Pages;
  • iPlanet Biller Xpert - облегчает подготовку и публикацию счетов, оплату через Internet;
  • iPlanet Market Maker - управляет каталогами, ценовыми моделями, онлайновыми переговорами, аукционами и т.п.;
  • iPlanet BuyerXpert - используется для контроля закупок с Web-интерфейсом;
  • iPlanet SellerXpert - используется для автоматизации работы каналов продажи;
  • iPlanet Trustbase Transaction Manager - обеспечивает защищенные коммуникации между организациями и клиентами;
  • iPlanet Messaging Server - обеспечивает сервисы для обмена информацией, отсылки и приема сообщений с поддержкой Web-интерфейса;
  • iPlanet Calendar Server - управляет календарями, разделением ресурсов, расписанием событий и групповой работой;
  • iPlanet Application Server - используется для разработки, внедрения и управления основанными на Java 2 Platform Enterprise Edition (J2EE) приложениями на различных серверах, клиентах и устройствах. Также существуют версии iPlanet Application Server EAI Edition и iPlanet Application Server B2B Edition;
  • iPlanet Message Queue for Java - используется для интеграции унаследованных систем и данных с новыми приложениями и ERP-решениями;
  • iPlanet Unified Development Server - служит для быстрого создания, внедрения и управления сетевыми приложениями.

Более подробную информацию о семействе продуктов iPlanet можно получить по адресу: http://wwws.sun.com/software/iplanet/products/ http://wwws.sun.com/software/Developer-products/ffj/index.html .

Помимо всего прочего фирма Sun занимается разработкой набора Web-сервисов, включающего Sun ONE WebTop - набор офисных продуктов (текстовый процессор, электронная таблица, графический пакет и т.п), доступных как Web-сервисы, а также набора Web-сервисов для поддержки посылки/получения сообщений и управления расписаниями событий. Кроме того, в документе, озаглавленном «Sun ONE Architecture Guide», можно найти раздел, посвященный базовым Web-сервисам, в котором упоминаются такие сервисы, как Location Web Service, Presence Web Service, Notification Web Service, Usage Web Service, Search Web Service, File Web Service, а также набор Web-сервисов, делающих доступной функциональность продуктов семейства iPlanet.

Одним из примеров Web-сервисов является myServices.ONE, который реализует корзину покупателя, используемую в нескольких магазинах. Созданный с помощью iNsight for Forte for Java, этот Web-сервис позволяет покупателям просматривать и обновлять свои покупки в одной корзине. В сервис myServices.ONE входят: myIdentity (поддержка идентификации между Web-узлами), myBasket (поддержка централизованной корзинки покупателя для нескольких магазинов), myJeeves (централизованная автоматизация оплаты).

Как мы уже отмечали, фирма Sun не сразу четко сформулировала свою позицию по отношению к Web-сервисам. Из-за этого было потеряно время, позволившее другим компаниям - в первую очередь IBM и Microsoft - выйти в лидеры. Тем не менее Sun обладает всем необходимым - от языка Java до средств разработки, от операционной системы до серверных продуктов, - чтобы выйти в первую пятерку лидеров, предлагающих средства для создания Web-сервисов. К положительным моментам также следует отнести большое число Java-разработчиков, лояльных к продуктам и технологиям фирмы, а также наличие широкого спектра аппаратных решений.

Sybase

Феврале нынешнего года компания Sybase объявила о стратегической инициативе, направленной на то, чтобы помочь клиентам перенести существующие инфраструктуры на Web-сервисы. Sybase планирует активно участвовать в поддержке стандартов, участвует в работе таких организаций, как Web Services Interoperability Organization (WS-I) и Organization for Structured Information Standards (OASIS).

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

Разработка

EAServer Web Service Toolkit - набор средств для создания, тестирования, автоматизации и внедрения приложений с использованием Web-сервисов и соединения таких приложений с существующими бизнес-процессами. Эти средства также позволяют публиковать Web-сервисы через UDDI-реестры.

PowerDesigner 9.0 объединяет различные подходы к моделированию и позволяет пользователям полностью разобраться в элементах, составляющих Web-сервис. С помощью PowerDesigner 9.0 дизайнеры могут легко генерировать код и объекты баз данных, необходимые для разработки и выполнения Web-сервисов. Используя генерацию кода на основе шаблонов, PowerDesigner 9.0 автоматизирует создание кода для выбранного языка программирования, а также WSDL-документов, необходимых для внедрения Web-сервисов.

PowerBuilder будет поддерживать все стандарты, связанные с Web-сервисами, включая SOAP, XML, WSDL, UDDI и XSL, а также стандарты, которые появятся в будущем. Разработчики смогут публиковать и редактировать данные, а также обмениваться XML-информацией через протоколы, связанные с Web-сервисами на платформах J2EE и Microsoft .NET. Web-сервисы будут доступны клиентам PowerBuilder и другим клиентам, поддерживающим стандарты Web-сервисов. В настоящее время партнерская стратегия Sybase в области PowerBuilder дает разработчикам доступ к Web-сервисам через невизуальные объекты (Non-Visual Objects, NVO). PowerBuilder и Web Services Toolkit, поставляемый в составе Sybase EAServer, облегчают разработчикам на PowerBuilder создание и внедрение NVO как Web-сервисов прямо на сервер приложений EAServer.

Внедрение

EAServer 4.1 - сервер приложений с поддержкой открытых стандартов и технологий, необходимых для разработки, потребления и внедрения приложений на основе Web-сервисов, включая поддержку UDDI, SOAP, J2EE, WSDL и возможности управления UDDI-реестрами.

Business Process Integrator позволяет бизнесам интегрировать и управлять «потоком» Web-сервисов и приложений; таким образом компании могут управлять внешними и внутренними бизнес-процессами. Этот продукт позволяет доставлять SOAP-сообщения от одного приложения на основе Web-сервисов к другому, а кроме того, поддерживает приложения в стандартах ebXML и RosettaNet.

СУБД Sybase, в том числе Adaptive Server Enterprise, Sybase Adaptive Server IQ и SQL Anywhere, дают возможность приложениям на основе Web-сервисов обращаться к данным, хранимым в СУБД Sybase, а также в СУБД от IBM, Microsoft и Oracle, посредством хранимых процедур.

Доступ

В Sybase Enterprise Portal расширены возможности Portlet Framework для поддержки компонентов порталов (Portlets) с использованием Web-сервисов. Расширение существующей структуры позволяет разработчикам реализовать бизнес-логику в виде Web-сервисов и разделять такие сервисы между компонентами порталов (Portlets) и приложениями. Подобный подход позволяет существенно снизить время, необходимое для разработки и тестирования. Помимо этого такие Web-сервисы становятся доступными другим порталам и приложениям.

iAnywhere Solutions m-Business Platform поддерживает Web-сервисы для расширения доступа к корпоративной информации через мобильные и беспроводные устройства. Встроенная поддержка мобильных коммуникаций, включая возможность посылки сообщений на различные устройства с помощью различных сетевых протоколов, может быть использована как Web-сервис другими корпоративными приложениями. Компания также планирует создание набора средств для разработчиков, который позволит создавать дополнительные Web-сервисы.

Управление

BizTracker следит за производительностью среды, в которой выполняются Web-сервисы.

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

Дополнительная информация о продуктах фирмы Sybase может быть получена по адресу: http://www.sybase.com/

КомпьютерПресс 6"2002

Хотелось бы в очередной раз поднять эту довольно спорную тему.

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

В статье я постараюсь исправить это упущение и расставить ещё немного точек над «ё».

Приглашаю всех поучавствовать в поисках идеального инструмента.

О моём опыте

Программировать я начинал ещё в ДОС. на Turbo Pascal-е. Причём, почему-то, IDE мы тогда использовали только для отладки, и то достаточно редко. Для писания кода предпочитали использовать некий безымянный edit.exe без всякой подсветки синтаксиса в связке с Volkov Commander. И этого хватало. Этим же способом я позже занимался ассемблером и, частично, C++.

Продолжая изучать C++ я перешел на Windows и, соответственно, Visual Studio - куда же без него. Застал версии, если не ошибаюсь, с 5 до 7. После простенького редактора это было нечто - кодогенерация и автодополнение вызывали восторг. Правда, во всём этом сгенерированном добре разобраться было практически невозможно, но это казалось неважным.

Через некоторое время я пересел на Linux и занялся веб-разработкой на php. Здесь параллельно изучал vim и для разработки использовал ZendStudio. В какой-то момент начал использовать только Vim для всего - превратил его, в соответствии с многочисленными руководствами в маленькую ide. В нём же написал свою первую велосипедную CMS на php.

Замечу, что до этого программирование не было основным видом моей деятельности. Да, я и для работы писал различные мелкие утилитки, делал темы для для WordPress, но основным родом деятельности было администрирование.

Как только я занялся разработкой профессионально - возможностей vim мне перестало хватать. Был сначала eclipse, потом netbeans, сейчас - phpstorm.

Последние пол-года героически пытаюсь освоить emacs, в т.ч. в качестве основной рабочей среды.

Так что у меня есть с чем сравнивать и, надеюсь, моё мнение будет достаточно обоснованным и агрументированным.

IDE? IDE...

Я долго думал, в какой форме привести сравнение преимуществ и недостаков сторон. Список для этого не очень подходит, т.к. простое перечисление не вполне отражает суть вопроса. Редактор и IDE не противоположности, а инструменты, чья область применения перекрывается в некоторой области. Преимущества редактора далеко не всегда является недостатками среды и наоборот. По этой причине дальше идут более-менее структурированные рассуждения на тему.

Начну, пожалуй, с одного из бесспорных преимуществ редактора - его богатых возможностей по работе с текстом и возможности всё делать не отрывая рук от клавиатуры. Cреды в большинстве своём так не умеют. Только вот нужны ли такие возможности при написании кода? При написании статьи или письма, думаю, удобно одним нажатием клавиши поменять местами 2 слова или передвинуть абзац вверх страницы. Но в тексте программы это, в большинстве случаев бессмысленно и требует рефакторинга. А платить за это приходится либо пальцедробительными сочетаниями клавиш emacs, либо не менее мозгодробительными командами в vim. А ведь это всё нужно поминать! То, что просто решается одним движением мыши, вроде перемещения окна или изменения их размеров, превращается в целый квест. Да даже выделить текст проще мышкой - точнее, быстрее, и на надо считать сколько там слов до нужнго места в тексте. Нет, программисту тоже могут быть полезны эти функции, но дело в том, что его временные затраты на собственно редактирование кода ничтожны, так что выгоды во времени не будет практически никакой. А вот значительное усложнение инструмента - налицо.

Программист 80% своего времени тратит на понимание написанного кода и перемещению по нему. Причём перемещению именно по коду, а не по тексту! И здесь ему редактор не может помочь абсолютно ничем. Список параметров метода во всплывающей подсказке не покажет, перейти к определению метода не позволит, синтаксис не проконтролирует. А IDE, даже самые простые, с этим справляются просто и элегантно. Я недавно потратил минут 10 на поиск определения одного метода в проекте при помощи silversearcher из emacs. Оказалось, класс был определён в другом модуле и т.п. 10 минут, вместо одного клика мышкой! Я в emacs, конечно, недостаточно опытен, поэтому пусть будет 5 минут, даже минута. Но всё равно соотношение впечатляет.

И вот здесь IDE показывает свой, пожалуй, единственный, но очень жирный плюс - это наличие синтаксического анализатор языка программирования. Среда «понимает» что она редактирует код. Редактор - нет. А это и автодополнение, и навигация, и подсветка синтаксических, а, иногда, и семантических ошибок. Кажется, излишество, приятная мелочь, баловство. Но оно, превращается в необходимость после того, как размер проекта привысит некоторый предел. А с учётом объемных современных фреймворков - этот предел наступает практически сразу.

Да, на проекте из десятка файлов и пары тысяч строк, этот плюс не проявляет себя во всей красе. Редактор тоже может выполнять то же самое автодополнение, но он никогда не отсеет бессмысленные, варианты. И если размер проекта приближается к 100 тыс строк и состоит из тысяч файлов не считая библиотек, то становится проблемно выбирать нужное название из мешанины из названий переменных, методов других классов, да и просто слов из комментариев (было такое в vim-е у меня, не знаю, может, исправили). Интеллектуальные подсказки избавляют от необходимости помнить названия нужных функций и их параметры. Часто это просто физически невозможно.

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

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

Кто-то может возразить, что в современных редакторах многие из этих функций уже реализованы и ничем не уступают самым навороченным IDE. Не соглашусь. Во-первых, полноценных реализаций нет. Не работают они, как должны. Во-вторых, установка всего этого уже достаточно сложная задача. Да даже конфигурация внутренних функций редактора уже нетривиальна. Попробуйте, скажем, включить нумерацию строк в том же emacs! Плюс ко всему, часто нужный функционал реализуется десятком плагинов непонятно как между собой взаимодействующих. А часто ещё и имеющих десяток версий и веток, не всегда совместимых, странно настраиваюхся и т.п. Можно, конечно, потратить месяц, всё настроить и установить (что тоже удел энтузиастов), но это всего лишь приблизит редактор к уровню IDE. К примеру, вернёмся к тем же проектам - я пробовал и Project под vim и projectile под emacs и ещё некоторые плагины. Если Project ещё более-менее отвечает моим требованиям (хотя в последней версии мне вообще не удалось создать проект из-за багов), то projectile оставил исключительно негативные впечатления.

И тем не менее, у редакторов есть несколько областей применения, где они, как минимум, составляют достойную конкуренцию средам разработки.

Во-первых, они себя лучше показывают на мелких проектах. Нет смысла загружать IDE-комбайн для работы с проектом в 10-20 файлов. Проще в редакторе подправить 3-4 строки.

Во-вторых, в некоторых специфических областях все преимущества IDE нивелируются. Например, низкоуровневая разработка для linux. Я этим не занимался, но, судя по структуре кода и предпочтениям разрабочиков (около 70% - emacs и клоны, 25% - vim, 5% - какая-то экзотика вроде jed), IDE там делать нечего. Весь нужный код, с которым происходит работа, собран, как правило в одном-двух файлах, и не нужно прыгать в пределах всего проекта. Да и не сильно поможет автодополнение при выборе из десятка-двух функций с почти одинаковыми названиями.

В-третьих, редакторы могут работать не только с кодом. Всю их мощь можно задействовать при работе с csv или xml файлами. Либо чего-то другого, в чём иногда возникает необходимость, вроде статьи или письма. И не нужно переучиваться, искать удобную программу или запоминать горячие клавиши - всё под рукой, всё одинаковое.

В-четвёртых, возможность работы с языками, для которых нет вменяемой IDE. Скажем, с тем же ruby мне среда не сильно помогла. SublimeText-а оказалось достаточно. Хотя с большим ruby проектом я не работал, возможно, там бы IDE себя показала.

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

Итого

Я не очень люблю IDE, хотя так могло показаться по предыдущему тексту. Считаю их довольно монструозными, с кучей ненужных функций, медленными и требовательными к ресурсам. Да и лучшие из них довольно дорогие. Кроме того, я считаю, использование IDE расслабляет, и привязывает к себе. У редакторов, соответственно, всё наоборот. Плюс доступность и возможности тонкой доводки под себя. По крайней мере vim и emacs. В конце концов, они мне просто нравятся. Эту статью, например, я пишу в Emacs.

Но индустрия (и начальство) диктует свои требования. Если не использовать IDE, производительность значительно упадёт. Но никто не даст вам пол-часа на поиск пропущенной запятой в 10 тыс строках кода. Это всё должно выполняться автоматически и автоматически же исправляться. Мне тоже иногда нравится покопаться в коде без всяких инструментов - но на работе это непозволительная трата времени.

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