Подходит ли Java корпоративным пользователям?


Маджу Сиддалингайя
Майк Сакс

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

На начальном этапе первые инструменты разработки на Java (Abstract Windowing Toolkit) подвергались суровой критике за чрезмерную сложность и слабые функциональные возможности. С появлением библиотеки Java Foundation Classes (JFC) ситуация кардинально изменилась. JFC включала в себя широкий набор компонентов пользовательского интерфейса, который вполне мог соперничать с гораздо более зрелыми и популярными настольными рабочими средами, такими как Windows и Macintosh.

Пакет разработчика Java Development Kit (JDK) 1.1 стал одной из лучших технологий создания корпоративных систем. В нем появились интерфейс Java Database Connectivity, предназначенный для организации доступа к практически любой базе данных, независимо от используемой платформы; библиотека Remote Method Invocation, позволяющая создавать программы для сетевых компьютеров, взаимодействующих с другими приложениями Java, а также набор компонентов JavaBeans, ускоряющий разработку приложений за счет встраивания в них уже готовых элементов.

Однако главным козырем, превратившим Java в действительно корпоративную платформу, стала технология Java Web Server и сервлеты. Под сервлетами понимаются компоненты Java, которые запускаются на сервере и используются при проектировании динамических Web-страниц. Ранее динамические Web-страницы разрабатывались при помощи общих шлюзовых интерфейсов CGI (Common Gateway Interfaces), написанных на Perl или других языках сценариев. Интерфейсы CGI были очень просты в использовании, но отличались низкой производительностью. Высокого быстродействия сервера удавалось достичь только при применении разделяемых объектов, написанных на C и связанных с Web-сервером. Однако за повышение производительности приходилось расплачиваться недостаточной устойчивостью. Всего один неверный указатель в разделяемом объекте, связанном с сервером, приводил к зависанию всего сервера.

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

Низкая производительность всегда считалась слабым местом Java. Это было связано с тем, что первые виртуальные машины Java (JVM) - среда, в которой выполнялись приложения Java, - отличались высоким уровнем накладных расходов. Современное поколение JVM со встроенными компиляторами just-in-time позволяет достигать быстродействия, сравнимого с быстродействием программ на C++.

При обсуждении достоинств и недостатков Java, разумеется, нельзя обойти стороной средства разработки. Всего два года назад единственным подобным средством был пакет JDK. С его помощью можно было создавать приложения, но этот пакет не отличался яркими и интуитивно понятными возможностями, характерными для интегрированных сред разработки C++ или Visual Basic. Однако в прошлом году компании Symantec, Borland International и IBM, лидирующие в области производства программного обеспечения, выпустили среды разработки, которые можно поставить в один ряд с соответствующими продуктами для C++.

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

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


Маджу Сиддалингайя - консультант и вице-президент некоммерческой организации Java Lobby, занимающейся популяризацией Java. Электронную почту ему можно отправлять по адресу madhu@madhu.com

Выбор корпоративной платформы является, наверное, одним из самых серьезных решений, которые вам когда-либо приходилось принимать. Можно ли остановиться на Java или все же следует отдать предпочтение среде Windows? Прежде чем дать окончательный ответ, постарайтесь сформулировать требования, предъявляемые к корпоративным платформам, и сравните возможности Java с возможностями распределенной сетевой архитектуры (Distributed Networking Architecture, DNA) Windows. Безусловно, все приложения должны быть масштабируемыми. Архитектура Windows DNA представляет собой очень мощную, масштабируемую платформу, которая позволяет выполнять приложения как на маленьком портативном компьютере, так и сразу на нескольких многопроцессорных серверах с поддержкой транзакций и сбалансированной загрузки. Сегодня сделать приложения Java масштабируемыми можно только на большом сервере. При этом технология Java не имеет стандартов для обработки транзакций и обеспечения сбалансированности загрузки. Быстрота создания приложения определяется выбранными средствами разработки. Для архитектуры Windows DNA создано уже очень много разнообразных средств (среди них такие известные инструменты, как Visual Basic, Visual C++, PowerBuilder и Delphi). Что касается сред разработки на Java, они только начинают приближаться к тому уровню производительности, который уже давно обеспечивают их конкуренты для платформы Windows.

В любом деловом приложении должны быть заложены возможности доступа к корпоративным данным и средства взаимодействия с уже существующим программным обеспечением. Компании без труда интегрируют новые системы, работающие под управлением Windows, с унаследованными приложениями и базами данных, которые создавались в течение многих лет. К сожалению, этого нельзя сказать о технологии Java, которой присущи очень серьезные ограничения в данной области. Если не считать нескольких драйверов, реализующих интерфейс Java Database Connectivity, приложения Java полностью изолированы от других корпоративных приложений и данных. Сегодня не стоит даже пытаться интегрировать программное обеспечение, написанное на Java, с уже имеющимися настольными приложениями, такими как текстовые процессоры или электронные таблицы.

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

И в заключение хотелось бы поговорить о межплатформенных решениях. Архитектура Windows DNA для разработки клиентских приложений, функционирующих в среде Windows, Macintosh и Unix, позволяет использовать языки Dynamic HTML, VBScript или JavaScript. Поддержка межплатформенных решений - одно из основных преимуществ Java. Однако особо рассчитывать на нее не приходится, ведь реализовать на практике хорошую идею совсем не так просто. В результате после нескольких бесплодных попыток по ночам вас начинают преследовать кошмары. В одних только многочисленных версиях пакета Java Development Kit, регулярно выпускаемых корпорацией Sun, очень легко запутаться. Каждый производитель браузера норовит обогатить JVM своими собственными расширениями. В итоге приложения Java, прекрасно функционирующие в среде одного браузера, в незнакомом окружении работать отказываются. Чтобы гарантировать работоспособность приложения, приходится тестировать и отлаживать его в среде всех существующих на сегодняшний день браузеров.

Компании, делающие сегодня ставку на Java, жестоко ошибаются. Корпорация Corel, попытавшаяся реализовать очередную версию своего офисного пакета на базе технологии Java, вынуждена была отказаться от проекта, поскольку прикладные программы работали слишком медленно, а поддержка многочисленных виртуальных машин Java вылилась в совершенно непосильную задачу. Netscape прекратила разработку как собственной JVM, так и версии Navigator на основе Java. Даже самые фанатичные приверженцы Java вынуждены признать, что развитие событий не оправдало их надежд. Интересно, есть ли у вас желание плыть против течения и тратить время на то, чтобы занять пост капитана тонущего корабля?


Майк Сакс - президент компании Sax Software, занимающейся производством ПО для платформы Windows. Электронную почту ему можно направлять по адресу mike@saxsoft.com