Не тешьте себя надеждой, что вам без труда удастся создать хорошее приложение для Сети. Остерегайтесь пустых обещаний
Вы считаете, что создать приложение для Web - пара пустяков? Так думал и Боб Селлерс, администратор сети в фирме Conference America (Монтгомери, шт. Алабама), предоставляющей услуги по организации конференций. Но приступив к разработке интерактивной системы резервирования для Web-узла, он столкнулся со множеством непредвиденных трудностей. “Мы потратили массу времени впустую”, - сожалеет он.
Селлерс - и не он один - стал жертвой распространенного поверья, будто работа над Web-приложениями очень проста. Не только новички, но и маститые создатели клиент-серверных средств попадаются на удочку производителей: в Web, дескать, можно обойтись без программирования, не нужно даже никакой специальной подготовки. А тут еще легендарный успех первопроходцев (которые, впрочем, обладали знаниями и умениями, помогавшими с лихвой компенсировать отсутствие нужного инструментария). Все это заставило и Селлерса, и подобных ему фанатов сети поверить, будто для достижения цели достаточно прочесть руководство и провести у компьютера несколько бессонных ночей.
Хотите совет? Задумывая разработку приложения для общедоступного Web-узла или для внутрикорпоративной сети, остерегайтесь стать жертвой распространенных заблуждений.
Программирование не требуется
Простота создания авторских страниц на языке HTML помогла превратить Web в доступную и привлекательную платформу. Но она же породила иллюзию, будто никаких трудностей не представляет и разработка Web-приложений.
“Люди ищут легких путей. Но в реальной жизни создание программных средств для Web требует огромных затрат времени и сил”, - утверждает Дейв Линтикум, менеджер технологий фирмы AT&T Solutions (Виенна, шт. Виргиния), консультативного органа корпорации AT&T. В круг его обязанностей входит и проведение занятий по разработке приложений для внутрикорпоративных сетей предприятий, в ходе которых он заметил, что слушателей часто шокируют трудности, с которыми они встречаются при написании программ на языка Java, составлении сценариев для интерфейса CGI (Common Gateway Interface - общий интерфейс шлюза) и проведении некоторых других работ, легко выполняемых с помощью инструментов автоматизации разработки программ для систем клиент-сервер (например, разработка бизнес-правил).
Селлерс, о котором говорится в начале нашего рассказа, в действительности оказался захваченным врасплох, ведь его опыт программирования ограничивался написанием командных файлов. Однако фирме понадобилось приложение, позволяющее клиентам организовывать конференции в Web. Имея в виду то, что он слышал на эту тему, он решил, что разработка ему по плечу.
“Я исходил из того, что все используют Perl, который казался очень простым”, - вспоминает Селлерс. Он купил учебник Perl и попытался быстренько написать на этом языке программу. Однако из этого ничего не вышло. Селлерс понял, что без солидного опыта программирования ничего сделать не удастся. После нескольких безуспешных попыток он решил поискать менее сложный инструментарий и через несколько недель открыл для себя HTML2SQL фирмы NuTech Solutions (Тайгард, шт. Орегон). Этот пакет позволил по-настоящему взяться за дело.
Можно найти любой инструментарий
С каждым днем появляются все новые и новые средства разработки Web-приложений, и уже упоминавшийся Линтикум сравнивает выбор подходящей технологии со стрельбой по движущейся мишени: в обоих случаях взять правильный прицел непросто. Главная задача для разработчиков, которых не удовлетворяет создание Web-приложений вручную, - найти достаточно стабильный инструментарий, на который можно было бы полностью положиться.
По мнению Линтикума, одна из причин недостаточной совместимости имеющихся средств кроется в отсутствии стандартов. Он сам столкнулся с проблемой выбора, когда пришлось решать, какую среду должен поддерживать инструментарий - CGI или Perl, Java или ActiveX. Многие эксперты придерживаются мнения, что в ожидании универсального средства, которое бы обеспечивало работу со всеми этими технологиями, гораздо безопаснее вручную создавать приложения для “Всемирной паутины”.
Именно так поступают программисты фирмы Receptive Marketing (Хэмптон, шт. Нью-Гэмпшир), создающей Web-узлы по заказам маркетинговых компаний. “Мы стремимся найти инструментарий, который бы отвечал всем нашим потребностям”, - говорит ее президент Трэйси Эмерик.
Лучшая производительность
Если вам хоть раз довелось иметь дело с Web-страницей, загрузка которой занимает считанные секунды, то вы, конечно, заметили, насколько медлительной бывает Web в других случаях. Не составляют исключения и Web-приложения. Так, Селлерс из Conference America обнаружил, что характер разработанного им исходного текста и сложность информации, циркулирующей между браузером и сервером, сильно влияют на скорость работы приложения. Даже при прямом подключении к Internet по линии Т-1 на загрузку страницы уходило 12 - 13 секунд.
Решить проблему удалось с помощью средств NuTech, которые позволили сократить это время до 3 - 4 секунд. “Web-приложения напоминают ущербные клиент-серверные продукты, но на них накладывается еще больше ограничений”, - считает Джон Герцер, системный аналитик исследовательского центра Sandia National Laboratories (Альбукерке, шт. Нью-Мексико), который с группой коллег создает приложения для управления документооборотом, базирующиеся на Web.
Дополнительная подготовка не нужна
Имея дело с Web, этого не скажешь. Жак Риз, работающая по контракту с коммунальной фирмой Cinergy (Плейнфилд, шт. Иллинойс), вспоминает, что при разработке первого Web-приложения наибольшую трудность для нее представляло согласование различных Web-технологий между собой.
Тогда Риз с коллегами занялась разработкой программных средств контроля за газоснабжением Cinergy, которые должны были учитывать, какой объем газа, кому и по какому трубопроводу поставлен. Для решения поставленной задачи группа воспользовалась пакетом WebCenter фирмы Texas Instruments (Остин, шт. Техас). Приступая к проекту, на выполнение которого отводилось три месяца, разработчики активно занялись изучением Java и CGI, проведением экспериментов с различными исходными текстами, обратились за помощью к консультантам фирмы Gartner Group. Подготовительный этап занял около полутора месяцев, но за это время члены группы смогли полностью разобраться в модели Web.
“Чтобы разобраться в браузерных технологиях, программист должен пройти переподготовку”, - уверен и Эмерик, глава Receptive Marketing. Он взял на работу в свою фирму опытных специалистов по языку Си++, однако и их пришлось, по его выражению, “знакомить с основами” новой области. Пользователи работают с самыми разными браузерами, и Web-приложения должны быть совместимы с любым из них. Ограничиваться новейшей версией Navigator корпорации Netscape Communications здесь недопустимо.
Такого же мнения придерживается и Линтикум из AT&T, который считает, что в конце концов специалистов приходится переучивать в гораздо большей степени, чем кажется необходимым вначале. Когда на смену мэйнфреймам пришли клиент-серверные приложения, программисты были вынуждены изменить свой образ мышления. Сейчас они опять не могут обойтись без проникновения в суть таких концептуальных понятий, как кадры, гиперсвязи, страницы. По этой причине некоторые руководители считают достоинством программиста отсутствие у него опыта работы в клиент-серверной среде. Вот как высказался по этому поводу Барри Уэлш, директор подразделения средств подготовки решений и систем Университета штата Индиана (Блумингтон): “Они не успели набраться вредных навыков”.
В 1995 г. он привлек двух студентов университета к разработке компонента поддержки принятия решений на базе “Всемирной паутины”, который должен войти составной частью в крупномасштабное административное приложение. В основу нового продукта положено ПО Uniface корпорации Compuware (Фармингтон-Хиллз, шт. Мичиган). Впоследствии Уэлш надеется встроить в свою систему WebEnabler, клиент этого же производителя, пригодный для использования в Web.
Новое приложение будет долговечным
Многие разработчики уверены, что созданный ими продукт для Web и полгода спустя будет вполне жизнеспособным. Однако быстрое развитие Web-технологий дает основание предположить, что эти надежды продиктованы скорее чувствами, чем разумом. Если при разработке Web-приложения вы не задумываетесь о грядущих переменах, значит, и вами овладели подобные иллюзии.
Один из способов избежать быстрого устаревания продукта - тщательное перспективное планирование. Это хорошо понял Герцер из центра Sandia, приступая к созданию системы управления документооборотом на базе механизма фирмы Action Technologies. Использование Web в этих целях - область новая, таящая много неожиданностей, поэтому было принято решение сделать эту систему как можно более открытой, изолировав ее ядро с помощью специальных CGI-”оболочек”. В результате Герцер и его коллеги всегда смогут при необходимости без особых усилий сменить основной компонент системы и не перестраивая своих приложений.
Конечно, зачастую бывает крайне сложно предугадать, какие элементы Web-приложений придется в скором времени модернизировать или менять полностью. Если вы попали в такое положение, лучше сразу смириться с мыслью, что приложение, созданное сегодня, неизбежно придется переделывать завтра.
Именно такого подхода придерживается Уэлш из Университета штата Индиана. “Меня совершенно не беспокоит, что через год продукт нужно будет модернизировать, - утверждает он. - К тому времени появится более совершенный Web-инструментарий. Но пока его нет, я не собираюсь сидеть сложа руки”.
Эрин Коллуэй
БИТВА API
Сражение между интерфейсами прикладного программирования корпораций Microsoft и Netscape заставляет разработчиков сделать выбор и поддержать один из них.
ДОЛГАЯ ЖИЗНЬ
Полагая, что разработанные приложения будут столь же жизнеспособны и полгода спустя, их создатели руководствуются скорее чувствами, нежели разумом.