Полезные адреса
Компания АМР: так много продуктов и так мало времени
GE Medical Systems: прямой путь ведет не туда
Cisco Systems: управляя многообразием

Не спрашивайте, что служба World Wide Web может сделать для вас, - спросите, чем она может быть полезна вашим заказчикам, сотрудникам и деловым партнерам. А полезна она может быть очень многим, поскольку узлы, которые раньше почти целиком заполнялись файлами HTML и изображениями GIF, начинают все больше использоваться для доставки приложений.

Некоторые из этих приложений, например вездесущие счетчики обращений (все они, по-видимому, начинают считать с 50 тысяч), появились просто как дополнения к основной процедуре путешествия по сети. Другие, однако, призваны помочь в таких важных делах, как электронная коммерция и самообслуживание пользователей. Если к тому же принять во внимание сокращение сроков создания таких приложений и расходов на них, аргументы в их пользу окажутся достаточно вескими.

Еще два года назад возможности разработчиков продуктов для Web были ограниченными. Web-приложением был сценарий, написанный на Common Gateway Interface, который при просмотре генерировал содержание HTML. Пользователь иногда посылал информацию, например по запросам POST или GET, получаемым с помощью формы HTML. Сейчас, хотя интерфейс CGI и остается в Web рабочей лошадкой, Web-мастера могут выбирать способ вызова сценария (через интерфейсы прикладного программирования Netscape API, Internet Server API или FastCGI компании Open Market), место его выполнения (на стороне клиента или на сервере), способы идентификации браузера и защиты данных при передаче.

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

Списки рассылки почты, которые часто недооценивают, используются, чтобы доставлять пользователям объявления о выпуске новых продуктов или представлять сотрудникам новую информацию, например о льготах. Для этих списков требуется простой CGI-сценарий на языке Perl или другом выбранном вами языке сценариев. Они обеспечивают реальный сервис пользователям, которые не следят специально за вашим узлом. Ориентируйте эту службу именно на объявления о новом содержании, предусмотрите в ней механизм удаления имен из списка рассылки и - нужно ли напоминать об этом? - не засоряйте список не относящейся к делу информацией.

Имеется несколько условно-бесплатных средств написания CGI-сценариев, которые устанавливают связи форм HTML с такими утилитами почтового списка, как majordomo, procmail или hypermail. Их дополнительным достоинством является то, что читатели могут удалять свои имена из вашего списка через Web или электронную почту. Однако будьте внимательны, поскольку эти три средства ориентированы в первую очередь на ОС Unix, что затрудняет их адаптацию к серверу Internet Information Server корпорации Microsoft.

Значение возможностей поиска возрастает по мере увеличения размера узла и объема вносимых в него изменений. Конечно, вы можете самостоятельно написать сценарий поиска, но дешевле загрузить из Internet готовый пакет, например Glimpse, или купить коммерческий продукт, такой как Topic компании Verity или механизм поиска Excite компании Excite. Даже прадедушка средств выборки информации из Internet - система WAIS (Wide Area Information Server) - остается жизнеспособным, хотя протокол WAIS поддерживается лишь немногими браузерами. Большинство коммерческих систем может индексировать документы разных форматов (а не только текст) и имеет более изощренные процедуры установки, чем tar (архивная утилита Unix). Иногда их поставщики даже отвечают на телефонные звонки.

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

Одна из причин продолжающегося доминирования CGI заключается в наличии языка Perl - бесплатного средства программирования, имеющего богатые возможности манипулирования текстом и созданного как бы специально для CGI. С помощью языка Perl вы сможете прорваться через этап ввода форм HTML и быстро сгенерировать HTML-код. Этот язык пользуется большой любовью у своих почитателей, которые даже посвятили ему группы новостей в Usenet и создали организации пользователей. Пролистайте издания по CGI, которые стоят на полках книжных магазинов, и в большинстве из них вы найдете ссылки на Perl как на средство, рекомендуемое для программирования.

Много общих задач программирования для CGI автоматизируется за счет использования библиотек Perl различной сложности. Хотя большую часть этих программ - включая CGI.pm и cgi-lib.pl. - можно бесплатно получить из Internet, они не обеспечиваются технической поддержкой, а их качество может существенно различаться. Для эффективной эксплуатации этих библиотек вам потребуется программист, бегло пишущий программы на Perl, однако это вполне оправданно, поскольку во многих случаях позволяет сэкономить время и деньги. Разумеется, вы не получите таких же упаковки и отделки, как у коммерческих продуктов, но при должной квалификации сотрудников и небольшом везении это вам и не понадобится.

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

Хотя бесплатные библиотеки Perl позволяют решить многие сравнительно простые проблемы CGI, они мало чем могут помочь, когда вы беретесь за создание средств доступа к базам данных, которые являются одним из самых неприятных - но, увы, часто встречающихся на практике - видов приложений Web. Для решения этой задачи существует много продуктов, таких как пакеты для реализации доступа к базе данных на языках программирования (например, Data Access Objects компании Microsoft, расширение sybtcl к языку Tool Command Language и др.) и основанные на интерфейсе GUI средства, требующие различных объемов программирования (например, Sapphire/Web компании Bluestone). Кроме того, "Большая тройка" поставщиков баз данных - компании Oracle, Sybase и Informix Software - также работает над интеграцией своих продуктов с Web.

Важно помнить, что для разработки приложений все равно требуется программирование - даже когда они создаются для Web. Уже имеются некоторые хорошие среды визуального программирования, и поставщики торопятся, стараясь обеспечить принятие своих технологий для Internet и интрасетей. Например, компания ParcPlace-Digitalk, давний лидер в области объектно-ориентированной технологии, адаптировала к Web свою среду разработки. Компания Next Software также приспосабливает свой продукт Objective-C к интегрированной системе WebObjects. Эти продукты, по существу, превращают Web-сервер в диспетчер методов, автоматизирующий установление связи между тем, что находится на экране пользователя, и кодом, который вызывает его появление. Для экстенсивных приложений это может оказаться очень полезным.

В течение первых двух лет разработки продуктов для Web не было необходимости выбирать, где должны работать приложения. Однако с появлением языка Java и технологии ActiveX компании Microsoft серверная сторона перестала быть единственным вариантом. Часто клиентская машина превосходит сервер по частоте запросов, быстроте реагирования и скорости доступа к локальным данным. К сожалению, создание клиентской части приложения требует от разработчика более тщательного обдумывания, поскольку он может ограничиться меньшим числом вариантов выбора среды исполнения.

Всего лишь несколько месяцев назад наилучшей средой разработки на Java был знаменитый редактор Unix - emacs. Теперь основные поставщики интерактивных сред разработки адаптировали под Java свои среды С++ для ПК, из которых стоит отметить Cafe корпорации Symantec, CodeWarrior компании Metrowerks, Java WorkShop компании Sun Microsystems и J++ корпорации Microsoft. Компания Sun, конечно, продолжает удерживать лидерство в области разработки спецификаций и маркетинга языка Java (так же как и в его рекламе).

Альтернативой языка Java является технология ActiveX, которая, в сущности, представляет собой технологию OLE компании Microsoft, расширенную за счет включения в нее таких функций, как защита, шифрование и загрузка "на лету" библиотек динамических связей. Несмотря на то что Microsoft характеризует ActiveX как технологию, полностью отличную от Java, огромные деньги, стоящие за этим ПО, маркетинговые усилия и широкие программы поддержки разработчиков делают ActiveX грозным соперником других клиентских средств.

Резюмируя все вышесказанное, следует отметить, что Web может предложить варианты для бумажника любой толщины. Подключение к созданию настраиваемых приложений или увязыванию унаследованных систем программиста, хорошо знающего Unix и хакерские приемы работы в редакторе emacs с использованием языка Perl, все еще может оказаться прекрасным решением. Поскольку все больше и больше поставщиков обращаются в эту веру, некоторые широкие категории приложений - в частности, доступ к базам данных и обработка транзакций - автоматизируются. И наконец, интегрированные среды программирования также приходят в Web. По мере все большего совершенствования этих средств будут все больше сглаживаться различия между приложениями Web и "локальными" приложениями.


Майк Карифио (Mike Carifio) - технический руководитель отделения Commerce Products компании Open Market, специализирующейся на электронной коммерции в Internet. С ним можно связаться по адресу carifio@OpenMarket.com.

Полезные адреса

AMP
http://www.amp.com
AMP Connect
http://www.connect.amp.com
Bluestone
http://www.bluestone.com
Адресная страница cgi-lib.pl
http://www.bio.cam.ac.uk/cgi-lib
Cisco Systems
http://www.cisco.com
Excite
http://www.excite.com
GE Medical Systems
http://www.ge.com/medical
Informix Software
http://www.informix.com
Metrowerks
http://www.metrowerks.com
Microsoft
http://www.microsoft.com
Netscape Communications
http://www.netscape.com
Next Sofrware
http://www.next.com
Open Market
http://www.openmarket.com
Oracle
http://www.oracle.com
ParcPlace-Digitalk
http://www.parcplace.com
Perl newsgroup
http://comp.lang.perl
Perl Institute
http://www.perl.org
Saqqara Systems
http://www.saqqara.com
Sun Microsystems
http://www.sun.com
Sybase
http://www.sybase.com
Symantec
http://www.symantec.com
Verity
http://www.verity.com
Wallop Software
http://www.wallop.com


Компания АМР: так много продуктов и так мало времени

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

С данной проблемой столкнулась компания AMP - поставщик электрических и электронных компонентов и коммутационных систем. Первым желанием AMP было пойти по пути использования дисков CD-ROM, однако это решение оказалось недостаточно динамичным для компании, в которой ежедневно меняется около 200 наименований продуктов. Тогда в октябре 1995 г. директора АМР по глобальной электронной торговле Джима Кесслера попросили оценить этот проект. Он сделал это и рекомендовал перенести его в Web.

Главная забота Кесслера состояла в том, чтобы заказчики могли легко находить нужный продукт. "Если вы обратитесь к компаниям, входящим в список Fortune 1000, и спросите их, какую информацию о продукте они имеют в своих базах данных, то обнаружите в главной записи о продукте поле описаний длиной 40-60 байт, - объясняет Кесслер. - Этого недостаточно, чтобы заказчик смог выбрать продукт. Самое существенное при выборе - параметры, поэтому мы перевели наш бумажный каталог в базу данных, обеспечив возможность поиска по параметрам".

Теперь заказчики могут проводить поиск в соответствии со своими требованиями, а также по конкретным номерам компонентов и названиям продуктов. Например, если клиенту нужен разъем для интегральной микросхемы, он может начать поиск с пункта "разъемы для интегральных микросхем", затем уточнить, что это должен быть разъем типа PLCC (plastic leaded chip carrier) и указать на необходимость версии для поверхностного монтажа с 68 контактами. Таким образом, клиент интерактивно составляет SQL-запрос к корпоративной базе данных Oracle7. АМР в сотрудничестве с компанией Saqqara Systems разработала также приложение, которое создает параллельные сопоставления до пяти аналогичных продуктов. Эта технология, получившая название Step Search, является основой AMPemerce - новой консалтинговой службы AMP для компаний, разрабатывающих бизнес-приложения для Internet.

Одна из трудностей, с которой столкнулась АМР при разработке своего узла AMP Connect, была связана с возникновением заметной внешней нагрузки при обработке каждого нового запроса к базе данных. (База данных соединяется с сервером Netscape через интерфейс CGI, написанный с помощью Netscape Server API.) "Мы проанализировали все компоненты, от входа до выхода, пытаясь понять, каким может быть вклад каждого компонента и в чем заключается "узкое место", - объясняет Кесслер. - Мы обнаружили, что им является повторяющаяся часть инициализации соединения с базой данных Oracle при открытии и закрытии связи". Решение заключалось в том, чтобы перенести часть этой программы обработки на сервер и оставить ее функционировать постоянно. "Сейчас мы обслуживаем около 42 тыс. обращений к каталогу в день примерно от 6 тыс. заказчиков и не испытываем никаких проблем с производительностью", - утверждает Кесслер.

Самым сложным для Кесслера был период, когда компания АМР готовилась перевести свою информацию о продуктах (уже заложенную в базу данных на английском языке) на пять других языков для выхода на глобальный рынок. (Сейчас каталог представлен на восьми языках, в том числе на китайском и корейском. Эта служба настраивается так, что пользователь, говорящий на немецком языке и желающий получить продукт, выпускаемый в Испании, может просмотреть страницы с описанием испанских продуктов на немецком языке.) AMP объявила по этому проекту конкурс, в котором приняли участие пять претендентов. Однако полученные предложения оценивались в суммы, превышающие весь бюджет Кесслера. "Я просидел взаперти пару дней, пытаясь решить, то ли мне рвать на себе волосы, то ли заново писать свое резюме", - признается Кесслер.

К счастью, оказалось, что непомерные запросы были результатом недоразумения: претенденты не поняли, что структура базы данных позволит им перевести слово один раз и затем его многократно использовать. В результате окончательная стоимость проекта составила 1/15 часть стоимости первоначальных предложений.

Его реализация, в которой были заняты менеджер, два штатных программиста и несколько сторонних консультантов, заняла девять месяцев. Кроме того, при компоновке базы данных группа Кесслера прибегала к помощи отдела по управлению данными компании, а также консультировалась с группой, занимающейся коммуникациями, по проблемам производительности. "Это происходило весной 1995 г.; тогда мы были вынуждены делать все самостоятельно, - вспоминает Кесслер. - Теперь, когда появились коммерческие продукты, ситуация стала намного более простой, и если бы нам пришлось делать все снова, я уверен, что мы бы присмотрели что-нибудь готовое".


GE Medical Systems: прямой путь ведет не туда

В последнее время качество, которое ранее было самым важным фактором в хит-параде средств управления, стало играть менее заметную роль. Однако эта роль по-прежнему значима в компании GE Medical Systems, которая вместе с другими фирмами, входящими в группу General Electric, включилась в многолетнюю, многомиллионную кампанию за снижение уровня дефектов - до трех на миллион устройств. GE Medical Systems надеется, что в этом ей поможет система сбора данных на базе Windows.

Идея состоит в создании хранилища записей по каждому дефекту, причины которого эксперты по качеству смогут проанализировать "до самых корней". Допустим, сотрудник обнаруживает, что какие-то магниты, используемые в сканерах MRI компании, разъюстировались. Используя ПК, находящийся на заводе и работающий с браузером Netscape Navigator, он мог бы получить информацию о дефектных частях: номер партии, название поставщика, природа дефекта и его распространенность. Потом этот сотрудник ввел бы дополнительную информацию о том, как была разрешена проблема и сколько времени и средств было на это затрачено. Такие данные анализировались бы вместе с аналогичной информацией, полученной на 20-30 заводах во всем мире.

Традиционно используя мэйнфреймы, компания GE Medical Systems больше уделяла внимание системам клиент-сервер, чем Web. Однако приложение для управления качеством должно было быть развернуто в нескольких странах, в том числе во Франции и Японии. При этом осенью 1995 г., когда проект был задуман, рассматриваемое для его осуществления средство разработки PowerBuilder компании Sybase не поддерживало разных языков. А продукт корпорации Netscape Communications поддерживал.

Кроме языкового соответствия, к приложению предъявлялись и другие требования: оно должно было работать на серверах Sparc Server компании Sun Microsystems под управлением операционной системы Solaris и ПО компании Oracle, а также настраиваться под условия конкретного завода. "Мы имеем общее описание всех характерных признаков дефекта, однако на каждом конкретном заводе некоторые из них могут не иметь отношения к данному дефекту, - объясняет аналитик по технологии Ларри Уолкер. - Если, например, завод использует закупленный компонент, то информация о его производителе внутри завода не нужна. Так что наличие или отсутствие в описании определенных полей необходимо контролировать на основе межзаводского подхода".

Группа Global Information Development компании GE Medical начала с оценки нескольких общедоступных средств, включая OraPerl, с помощью которых пользователи могут осуществлять запросы на языке Perl к базе данных Oracle. Однако Уолкер был озабочен тем обстоятельством, что при возникновении проблем они не смогут получить поддержку от поставщика базы данных. Поэтому группа перешла к ревизии коммерческих продуктов, а затем остановилась на средстве Sapphire/Web компании Bluestone.

Это средство заполняет данными HTML-шаблоны, созданные разработчиком, и потом автоматически генерирует код С, связывая его с базой данных. "Вы можете создавать шаблоны, предъявлять их конечным пользователям и получать их одобрение; при этом вы не должны писать целую кучу небольших библиотечных вызовов", - объясняет Уолкер. Средство Sapphire/Web дает также возможность в процессе разработки включать в любое место страницы пользовательские части программы. Используя эту возможность, коллектив разработчиков создал шаблоны, в которых не только текстовые поля, но и их ярлыки действуют как точки пересылки данных. Это помогает решить языковую проблему, позволяя, например, заводу в Токио создавать такие описания, как номер компонента на основе письменности кандзи - разновидности японского написания, основанной на китайских символах. Хотя заводские индивидуальные поля описаний и будут казаться различными, "все они укладываются в одну общую схему базы данных, так что средство анализа воспринимает данные так, как если бы они были согласованными по всему земному шару", - поясняет Уолкер.

Большим достоинством организации информационных систем компании GE Medical является то, что сразу после разработки вида базовых экранов заводы могут настраивать свои собственные системы. "Допустим, производственный менеджер хочет, чтобы его завод пользовался этой системой. Тогда мы дадим ему адрес ресурсов, и он будет сидеть у экрана, просматривая поле за полем и решая, какие из них подходят для его завода и в каком виде должна появляться местная информация. Вы можете использовать это средство и для создания другого средства, которое будет настраивать третье", - говорит Уолкер.

Для осуществления этого проекта (он был запущен в качестве пилотного в сентябре, а его завершение было намечено на конец года) потребовалось семь месяцев работы двух специально нанятых программистов. "Я был бы рад заявить, что над ним почти не пришлось работать, однако для разработки настраиваемых экранов потребовалось в два-три раза больше человеко-часов, чем для использования средства таким образом, как это первоначально предполагалось, - утверждает Уолкер. - Однако, с другой стороны, до этого у нас никогда не было удовлетворительного способа создания многоязыковых приложений. Конечно, пришлось поработать больше, но это единственный известный нам способ что-либо сделать".


Cisco Systems: управляя многообразием

Около 80% сети Internet построено на маршрутизаторах компании Cisco Systems, поэтому вас не удивит, что эта компания активно занимается разработкой приложений для Web. Приложения для информационных служб, системы онлайновых заказов и технической поддержки - все это создала Cisco. В сущности, добрая половина новых разработок компании ориентирована на Web, в том числе гибкая система регистрации, составления отчетов о расходах и организационных диаграмм. "Так много всего делается в каждой области, что совершенно невозможно выделить одну-две разработки", - утверждает Питер Солвик, исполнительный директор и вице-президент по информационным системам компании Cisco.

Главная проблема Cisco, ведущей так много параллельных разработок, состояла в подборе кадров и координации усилий всех сотрудников. Отдел информационных систем, через который проходит примерно 75% проектов (главным образом - по заказам внутренних клиентских организаций), набрал новых служащих и сотрудников, прошедших переподготовку, и теперь над задачами, связанными с Web, работают 50-100 человек. "Мы наняли примерно половину сотрудников со стороны, прямо из колледжей или, с опытом работы в Web, из других компаний, и мы организуем для них обучение HTML, CGI, Perl и Java, - говорит Солвик. - Однако когда они всем этим овладевают, большой проблемой становится удержать их здесь, чтобы они не ушли и не начали работать по независимым контрактам. Поэтому мы вынуждены предлагать работу на современном уровне, чтобы проекты вызывали энтузиазм, а оплата была не хуже, чем у конкурентов".

Общая стратегия компании предусматривает создание нескольких коллективов разработчиков, включающих в себя от 1 до 10 человек, которые за один-два месяца реализовали бы первую фазу каждого проекта (по утвреждению Солвика, для завершения начальной фазы проекта очень редко требуется больше шести месяцев). В компании Cisco находят, что трудно управлять не только большим коллективом, но и большим количеством компонентов, включенных в каждое приложение: сценариями HTML, Java и Perl, изображениями GIF и т.п. В результате отдельные части работы дублируются разными сотрудниками и образуется большое количество лишнего кода. "Все эти люди работают над своими отдельными частями, и становится трудно осуществлять контроль за исходными кодами и версиями, - объясняет Солвик. - Мы ищем более удобный способ делать это, чем просто сохранять их в каталогах и рассылать по электронной почте".

В настоящее время компания проводит бета-тестирование средства Build-IT компании Wallop Software, которое поддерживает коллективную разработку. Компания Wallop предоставляет хранилище, которым могут совместно пользоваться несколько коллективов, так что если одна группа уже изобрела колесо, другой не придется заниматься тем же. Это средство имеет также функцию входной и выходной проверки, которая не допустит повторения каким-либо разработчиком уже сделанной другими работы.

Бета-тестирование продукта компании Wallop демонстрирует стремление Cisco расширять сферу применения новых средств. Технология коллективной разработки развивается так быстро, что Солвик посвятил целый рабочий день составлению отчета об анализе новейших в разных категориях продуктов. До сих пор большая часть того ПО, которое компания использует как для внутренних, так и для внешних приложений (включая библиотеку программ для связи серверов Netscape с базами данных Oracle), представляет собой собственные разработки. "Мы ищем имеющиеся в продаже инструментальные средства, однако пока не нашли такого, которое могло бы конкурировать с нашими", - утверждает Солвик.

Тем временем коллективы разработчиков используют языки Java и JavaScript для создания систем составления отчетов по поступившим заказам, подготовки информации для руководителей и отчетов по командировкам. "Насколько это возможно, мы пытаемся использовать и HTML, и формы, и сценарии, потому что они представляют собой достаточно высокопроизводительную среду. Java - это язык очень низкого уровня, так что мы должны быть уверены, что степень повторного использования кода высока и мы получим наибольшую отдачу на каждый вложенный доллар", - объясняет Солвик.