Я.В. Ахромов
СИСТЕМЫ ЭЛЕКТРОННОЙ КОММЕРЦИИ ПРАКТИЧЕСКОЕ РУКОВОДСТВО Учебное пособие Допущено Учебно-методическим объеди...
29 downloads
167 Views
9MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Я.В. Ахромов
СИСТЕМЫ ЭЛЕКТРОННОЙ КОММЕРЦИИ ПРАКТИЧЕСКОЕ РУКОВОДСТВО Учебное пособие Допущено Учебно-методическим объединением по образованию в области прикладной информатики в качестве учебного пособия для студентов высших учебных заведений
Москва. ОНИКС. 2007
Y)J:K 681.3
BBK 32.973
A95
PeqeH,3eH,mbl: 3aBe,n;YIO~HH KacPe,n;poH .HHH(eHepHM H MamHH-Hag rpacPHKa. MOCKOBCKoro
rocy,n;apCTBeHHoro HHcTHTyra 3J1eKTpoHBKH H MaTeMaTHKH (TeXHHqeCKOrO yHHBepcHTeTa) ,n;OKTOp TeXHUqecKHX H&YK. npocl)eccop AB.
Bepxo8c1Cuu;
KaHp;Hp;aT TeXHHqeCKHX HaYK,. .u;On;eHT KacPe.u;phI .MaTeMaTWleCKoe B nporpaMMHoe 06eCneQeHHe CBCTeM.06p~~~~ ~ H U ynpaBJIeHHg. MOCKOBCKOro rocy.u;apcTBeBlloro HHCTQYTlfSJlettTjJijiHKH H lIaTeMaTHKH (TeXHUQeCKoro yHHBepcwMa)'B. A 4IoMulle8.
ISBN 978-5-488-00970-7
©AxpOMOB H.B., 2007 ©OOO .M3~aTeJlbC1'BO OHHKC., 2007
~
.,
ОГЛАВЛЕНИЕ Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Глава 1. Оранизация систем элетронной оммерции. . . . . . . . . . . . . . Что та ое веб-сайт?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Катеории эле тронной оммерции. . . . . . . . . . . . . . . . . . . . . . . . Что та ое интернет-маазин? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Схема работы интернет-маазина . . . . . . . . . . . . . . . . . . . . . . . . . . Интерфейс интернет-маазина . . . . . . . . . . . . . . . . . . . . . . . . . . . . Справочная система . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Схема создания интелле т!альной справочной системы . . . . . . Интернет-маазин на Flash-технолоии? . . . . . . . . . . . . . . . . . . . .
9 13 19 23 25 30 44 46 53
Глава 2. Технолоия Macromedia Flash API . . . . . . . . . . . . . . . . . . . . . . Что та ое Macromedia Flash? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flash Drawing API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод lineStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод lineTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод curveTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод beginFill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод endFill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод beginGradientFill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод createEmptyMovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Метод createTextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67 67 71 72 73 74 74 75 76 76 78 79
Глава 3. Схема построения интернет-маазина. . . . . . . . . . . . . . . . . . . . Схема построения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . База данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Система навиации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Интелле т!альные лавиши . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Поис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Настрой и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Обработ а за азов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82 83 83 85 86 88 88 89
4
Системы элетронной оммерции Совместимость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89 89
Глава 4. Реализация интернет-маазина . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль базы данных (base.as) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Вычисление товара . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . С анирование базы данных (database_scan.as) . . . . . . . . . . . . . . . Построение интерфейса (button_instance.as) . . . . . . . . . . . . . . . . . Создание джойсти а навиации интерфейса (control_menu.as) . Создание меню типа « ар!сель» (rotation_menu.as) . . . . . . . . . . . Создание лавноо информационноо о на (main_info.as) . . . . . Создание таблицы вывода рез!льтатов (show_table.as) . . . . . . . . Создание орзины по !пателя и ее !правления (basket.as) . . . . . Создание системы поис а товара (search.as) . . . . . . . . . . . . . . . . . Создание системы реистрации пользователя и отправ и данных на сервер (registration.as). . . . . . . . . . . . . . . . . . . . . . . . . . . Создание системы обработ и онтентной информации (content_manager.as) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Создание системы обработ и зар!з и !рса !словной единицы (course_info.as) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Создание бло а отрисов и элементов навиации по маазин! (draw_nav_methods.as). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Создание бло а объединения элементов интернет-маазина (construction.as) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Создание бло а !правления интернет-маазином (control.as) . .
90 90 92 96 102 118 126 132 135 153 166
Глава 5. Обоснование дизайна интернет-маазина . . . . . . . . . . . . . . . . . Стиль в веб-дизайне . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!льные сет и в веб-дизайне . . . . . . . . . . . . . . . . . . . . . . . . . . . Дизайн интернет-маазина . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Разработ а пи торамм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Оцен а э ономичес ой эффе тивности . . . . . . . . . . . . . . . . . . . .
202 202 204 206 210 212
Глава 6. Создание 3D-интерфейсов на основе API. . . . . . . . . . . . . . . . . Трехмерная рафи а средствами API . . . . . . . . . . . . . . . . . . . . . . . Необходимость третьей оординаты . . . . . . . . . . . . . . . . . . . . . . . Создание трехмерноо олеса средствами API . . . . . . . . . . . . . . . Поворот объе та относительно оси Y на !ол alpha . . . . . . . . . . . Поворот объе та относительно оси X на !ол alpha . . . . . . . . . . . Поворот объе та относительно оси Z на !ол alpha . . . . . . . . . . . Поворот объе та относительно произвольной оси, проходящей через начало оординат, на !ол alpha . . . . . . . . . . . Масштабирование объе та . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Смещение объе та . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Зер алирование объе та относительно плос ости YOZ . . . . . . . Зер алирование объе та относительно плос ости XOY . . . . . . . Зер алирование объе та относительно плос ости ZOX . . . . . . .
215 217 218 222 238 240 241
179 188 192 195 197 201
243 245 246 249 251 253
Олавление
5
Анимация объе та. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3D API в приложении эле тронной оммерции. Система трехмерноо поис а информации. . . . . . . . . . . . . . . . . . . . . . . . . .
253
За лючение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
277
Приложение 1. Прораммный од всех мод'лей интернет-маазина . . Пример реализации базы данных (base.as) . . . . . . . . . . . . . . . . . . Мод!ль database_scan.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль button_instance.as. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль control_menu.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль rotation_menu.as. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль main_info.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль show_table.as. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль basket.as. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль search.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль registration.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль content_manager.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль course_info.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль draw_nav_methods.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль construction.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Мод!ль control.as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Стартовая страница интернет-маазина (index.html) . . . . . . . . . . С рипт отправ и за аза на сервер (senddata.php) . . . . . . . . . . . . . Те стовый файл !рса !словной единицы (course.txt) . . . . . . . . . Те стовый файл информационноо онтента интернет-маазина (content.txt). . . . . . . . . . . . . . . . . . . . . . . . . . . . Ф!н циональная схема работы интернет-маазина . . . . . . . . . . .
279 279 281 284 292 296 305 308 322 336 346 355 359 361 363 366 369 372 373
Приложение 2. Прораммный од построения трехмерных объетов . . Пример реализации трехмерноо олеса . . . . . . . . . . . . . . . . . . . . Пример реализации трехмерноо объе та поис а . . . . . . . . . . . .
377 377 388
Приложение 3. Реализация трехмерных моделей с использованием технолоии API на основе среды разработи м'льтимедийных технолоий Adobe (Macromedia) Flash . . . . . . . . . . . . . . . . . . . . . . . . . . Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Трехмерная рафи а в сети Интернет . . . . . . . . . . . . . . . . . . . . . . Обзор трехмерных технолоий, использ!емых в сети Интернет Язы и создания вирт!альной реальности. . . . . . . . . . . . . . . . Вирт!альные панорамы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Трехмерная ве торная рафи а . . . . . . . . . . . . . . . . . . . . . . . . Решение: при ладной прораммный пользовательс ий интерфейс. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Прое т трехмерноо дома (3D House) . . . . . . . . . . . . . . . . . . . . . . Вывод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
258
373 374
397 397 398 398 398 401 403 405 407 410
Введение Мноие часто задают мне вопрос — почем, бдчи профессиональным разработчиом Flash-приложений на онрентном рыне, я занимаюсь написанием ни, оторые расрывают сереты профессиональноо спеха. Дело в том, что, бдчи действющим онсльтантом различных интернет-проетов, а таже роводителем направления «Графичесий веб-дизайн» Мосовсоо инститта элетронии и математии, я столнлся с проблемой нехвати необходимой информации о возможностях интеративной среды Macromedia Flash в области элетронной оммерции, и не тольо. Сейчас сществет оромное оличество пблиаций по теме: что таое Flash? Принципы работы во Flash. Интеративные Flash-презентации и т.д. Однао все это базирется на первоначальном знаомстве читателя с прораммой Flash и попыте начить ео создавать различные Flashсайты или Flash-презентации. Обилие таоо оличества литератры по Flash не может не радовать, для сравнения вспоминаются времена Flash 4, ода на полах маазинов можно было найти всео одн-две нии. Тем не менее сейчас встает дрой вопрос: да, я знаю Flash, но мо ли я ео применить для создания серьезных проетов в области элетронной оммерции, сажем, построить интернет-маазин? Я сам задавал подобный вопрос различным людям, работающим в сфере элетронной оммерции, и слышал в ответ самые разные мнения, начиная с тоо, что Flash-маазин в любом слчае не подходит для возможноо использования в сети Интернет, по причине своео неоправданно большоо размера, либо подходит, но таих проетов поа еще до-
Введение
7
статочно мало. Кода я читал рс леций по построению интернет-маазина на основе API-архитетры, мноие на лазах меняли свои представления о Flash а о прорамме, созданной ислючительно для рисования и анимации, и мифах о том, что если на сайте есть Flash, то таой сайт ниода не зарзить. Продолжая исследования Flash API, теперь же в области трехмерной рафии, оазалось возможным строить интеративные трехмерные объеты и вполне споойно внедрять их в приложения под Интернет. Резльтат — сайт с использованием трехмерной рафии размером всео несольо десятов илобайт. В предлааемой вашем вниманию ние рассматриваются принципы построения интернет-приложений на основе одной из самых передовых технолоий Macromedia Flash API (Application Programming Interface), создание интернетмаазина «под люч», вопросы поиса, построения базы данных, оцена usability-интерфейса, рассматриваются вопросы оптимизации проетов элетронной оммерции. Таже затронт раздел проетирования трехмерных приложений на основе исследования свойств матриц в свете прораммирования на язые ActionScript 2.0. Подробно рассматривается обоснование дизайна торовых систем элетронной оммерции атеории B2C. Первая лава содержит необходимые теоретичесие знания об элетронной оммерции, начиная с определений вебсайта, портала, вортала, интернет-маазина и заанчивая лассифиацией различных атеорий элетронной оммерции. Таже здесь рассматриваются все необходимые модли для проетирования торовой системы в сети Интернет и введение в проетирование интеллетальных систем. Вторая лава содержит полное описание всех фнций технолоии Macromedia Flash API, на оторых в последющих лавах создаются проеты элетронной оммерции. В третьей лаве представлена подробная схема построения интернет-маазина с ратим описанием всех модлей предлааемой архитетры. Четвертая лава содержит масимально подробное описание аждоо модля, ео прораммной реализации с тща-
8
Системы элетронной оммерции
тельным объяснением прораммноо ода на язые ActionScript 2.0, а таже взаимодействия всех модлей вместе. В пятой лаве рассматриваются вопросы дизайна проетиремоо интернет-маазина, объясняются стили веб-дизайна и ео специфиа. Разбираются вопросы usability-интерфейса и оцена эономичесой эффетивности веб-сайта. Шестая лава содержит подробное роводство для проетирования трехмерной рафии средствами Macromedia Flash API. Детально разбираются примеры построения трехмерных объетов, а таже совершен небольшой эсрс в раздел высшей математии в области представления матриц. Конечно, я не берсь тверждать, что эта ниа является исчерпывающим пособием по API-технолоии, однао здесь мы не тольо рассматриваем, а оворится, «вершины айсбера» данной технолоии, но поржаемся в достаточно тоние аспеты ее применения. В данной пблиации я делаю попыт представить всю мощь API-технолоии на примере ее использования в области элетронной оммерции. Насольо эта попыта далась — сдить вам. Данное чебное пособие реомендется для стдентов специальности 052400 «Дизайн», специализации «Графичесий веб-дизайн»; специальности 051318 «Математичесое моделирование, численные методы и омплесы прорамм», а таже всем, то занимается разработой интеративных приложений в области элетронной оммерции. Более подробню информацию об использовании Macromedia Flash, статьи, примеры вы можете найти в сети Интернет на сайте автора: http://www.djyarus.info а таже посетив сайт поисовой системы ориинальных идей и решений в области дизайна и элетронной оммерции по адрес: http://www.b-gear.ru
Глава 1 ОРГАНИЗАЦИЯ СИСТЕМ ЭЛЕКТРОННОЙ КОММЕРЦИИ Ка поазывают исследования мониторина продаж в сети Интернет, одним из лавных фаторов, сдерживающих рост элетронной оммерции, является слабая оранизация механизма работы интернет-маазинов, т.е. недобство пользования, инода — отстствие нопи поиса товара, длительная зарза маазина и т.п. Предлааемые в настоящее время системы элетронной оммерции атеории B2C реализованы на основе взаимодействия базы данных (а правило, MySQL) и прораммы – механизма работы системы (например, ASP, PHP). Подобном подход присщи, по райней мере, два весомых недостата, с точи зрения а попателя, та и администратора. Попателю необходимо иметь достаточно быстрю и надежню связь с интернетмаазином, т.. сть работы последнео — это постоянное взаимодействие с сервером на основе механизма «запрос — ответ». Плохое соединение или перерза сервера ведт нестабильной работе всео интернет-маазина и, следовательно, меньшению спроса в самом маазине. Администратор интернет-маазина должен находиться в определенном онтате с разработчиами системы, т.., чтобы производить лобальные изменения в маазине (смена дизайна, цветовые решения, полное изменение разделов), необходимо знать оранизацию всео механизма работы системы. На сеодняшний день построение интерфейса в интернет-маазинах основано на двх основных составляющих:
10
Системы элетронной оммерции
использование рафии форматов gif, jpeg, png; обработа тестовой информации для вывода названий разделов (лавиш) из базы данных. При этом инода тестовое наполнение лавиш привязано рафие, что делает невозможным оперативное изменение их названий без подлючения рафичесоо редатора. Главный недостато таой системы – это невозможность оперативноо внесения изменений в общий дизайн интерфейса интернет-маазина со стороны администратора без обращения разработчиам системы. Эт проблем может решить использование прораммной отрисови интерфейса, де нет привязи растровой рафие а таовой и делается пор на веторню рафи. Униальность API-архитетры в создании интерфейсов интернет-маазинам залючается в том, что система на основе анализа информации из базы данных, а таже настрое администратора маазина производит динамичесю енерацию всей системы меню и навиации интерфейса. В ходе анализа сществющих систем элетронной оммерции атеории B2C был сделан вывод, что пратичеси все системы являются статичными, т.е. не использют анимацию в построении интерфейсов, и обладают слабодозированной подачей информации. Это ведет том, что попатели в таих маазинах вынждены тратить больше времени на адаптацию в сложных иерархиях систем интерфейсов маазинов и на изчение аталоов предлааемых товаров. Возможность анимации интерфейса и, более тоо, онтроль таой анимации позволяют создавать ниальные интерфейсы новоо пооления, т.. анимация стандартной растровой рафии возможна тольо при подлючении Java/ VBScript и DHTML-технолоий. При этом встает вопрос совместимости, т.е. межбразерности и росс-платформенности, таих приложений. Резльтаты исследований построения системы с динамичесой енерацией интерфейса в APIархитетре поазал, что можно построить систем объемом 20—30 илобайт с возможностью рафичесой отрисови системы меню, навиации по разделам системы меню, ее анимации, а таже правления данной системой со стороны ад-
Оранизация систем элетронной оммерции
11
министратора. С точи зрения usability далео не аждый интернет-маазин обладает интеллетальностью навиации, т.е. наблюдается отстствие подсазо, сольо товаров бдет отображено при выборе определенных пнтов меню, а таже отстствие онтроля отображения лавиш, действительно необходимых в определенный момент времени. Таим образом, можно сделать вывод, что современный интернет-маазин — прораммная (ASP/PHP) оболоча, привязанная сервер, правляемая базой данных (SQL), а таже набор растровой рафии разных форматов. Недостатами таоо подхода можно считать необходимость стабильной и надежной сорости соединения с маазином, отстствие возможности анимации интерфейса маазина в целях повышения usability, ораниченное правление маазином со стороны администратора, большой объем зарзи информации пользователем, постоянный онтроль пропсной способности работы сервера. Исходя из данноо анализа можно видеть, что сществет ряд определенных проблем работы интернет-маазинов, оторые ведт сдерживанию темпов роста элетронной оммерции. Однао вместе с тем можно наметить четие пти их решения. Одним из возможных птей является принципиальное изменение архитетры интернет-маазина методами API. Резльтат — интернет-маазин, не требющий постоянной привязи сервер, использющий анимацию а возможность оранизовать более «налядню» и добню систем пользовательсоо интерфейса, поддерживающий фнциональный поис товара, динамичеси енерирющий рафичесий и тестовый онтент в зависимости от настрое администратора и базы данных и имеющий сравнительно небольшой объем. В настоящее время в сети Интернет наблюдается ативный рост спроса на системы элетронной оммерции атеории B2C (business-to-customer), обеспечивающие повышение ровня продаж товаров в сети. В предлааемом чебном пособии рассматривается совершенно новая архитетра разработи таой системы, основанная на технолоии Macromedia
12
Системы элетронной оммерции
Flash API (application programmable interface), позволяющая динамичеси прораммно создавать рафичесий и тестовый онтент подобной системы. База данных в предлааемой архитетре имеет свою собственню оранизацию, оторая позволяет на этапе выполнения прораммы енерировать интерфейс системы, поисовю машин, орзин попателя, навиацию. API-архитетра отрывает новые оризонты в разработе торовых интернет-систем, т.. позволяет создавать модльню систем (15 модлей) достаточно емоо объема, в оторой пратичеси отпадает необходимость использования растровой рафии (форматов gif, jpeg, png), внедряется анимация, способная решить проблемы држественности (friendly-interfaces) и оранизации добноо GUI (graphics user interface) интерфейса системы элетронной оммерции. Цели предлааемоо пособия — разработа системы объемом 70—80 Кб, способной полностью построить рафичесий интерфейс системы (с возможностью ео анимации в целях повышения usability); создание полноценной витрины предлааемых товаров (с возможностью их выбора); отлада работы орзины попателя (с возможностью редатирования ее содержимоо); оранизация поиса товаров (с четом релевантности резльтатов поиса); создание системы персонализации попателя и дальнейшей отправи зааза менеджер маазина. Управление работой таой системы осществляется администратором маазина посредством редатирования базы данных и файла настрое системы в тестовом формате. Сорость взаимодействия попателя с предлааемой системой оазывается значительно выше по сравнению с сществющими подобными проетами, т.. здесь не тратится время на постоянню связь с сервером методом «запрос — ответ» (request — answer). Попатель в предлааемой системе может отлючиться от сети Интернет и далее работать с маазином в режиме off-line, влючая работ с поисовой машиной. Необходимость в сети появляется тольо на этапе оформления зааза и ео отправи менеджер маазина.
Оранизация систем элетронной оммерции
13
Что та ое веб-сайт? Потребность в создании своео интернет-представительства (веб-сайта) рано или поздно возниает пратичеси любой омпании или любоо физичесоо лица, желающих расширить свои интересы птем использования интеративноо инстрмента Всемирной патины (WWW). По данным на 2006 од, «население» Рнета, т.е. оличество российсих пользователей сети Интернет, составляет 22,6 млн челове, т.е. примерно 15 процентов от общей численности населения страны. По сравнению с 2001 одом, ода Рнетом пользовались 10 процентов россиян, очевидно, что прирост «населения» Рнета составляет один процент в од. То есть с аждым одом атальность использования инстрмента Всемирной патины тольо возрастает, и в более выирышной ситации оажтся те, то первыми осознали всю важность поорения виртальных оризонтов сети Интернет. Для тоо чтобы определить само понятие «интернет-маазин», необходимо рассмотреть лассифиацию всех вебсайтов в сети Интернет и на основе таой лассифиации выделить рпп веб-сайтов, оторые по тем или иным признаам можно отнести интернет-маазинам. Перед тем а рассмотреть лассифиацию веб-сайтов в сети Интернет, бдет полезным дать определение веб-сайта. Веб-сайт — это совопность веб-страниц, объединенных общей идеей донести до пользователя аю-то информацию. На техничесом ровне элементом, связывающим веб-страницы в веб-сайт, являются ссыли. Все страницы веб-сайта должны быть достпны птем переходов по ссылам с оловной страницы сайта без выхода за пределы сайта (т.е. ссыла на страниц еще не влючает ее в состав сайта, но аждая страница сайта обязательно должна быть достпна с дрих страниц этоо сайта). На адресном ровне вебсайт должен иметь собственное доменное имя, т.е. оловная страница сайта должна совпадать с орневой диреторией 'http://имя_сервера/' Однао инода персональные вебсайты имеют вид: 'http://имя_сервера/~имя_пользователя/' Часто веб-сайт может быть оранично влючен
14
Системы элетронной оммерции
в состав дроо сайта – обычно та делают в слчае, ода подразделение аой-либо оранизации имеет собственный веб-сайт; тода этот веб-сайт полчает собственню диреторию внтри диретории «вышестоящео» сайта. Ита, нас есть три ритерия: общая идея, связанность ссылами и собственная диретория. К сожалению, не вседа дается чето определить, является ли данная совопность веб-страниц веб-сайтом или нет, однао в этом поможет разобраться лассифиация веб-сайтов. Классифиация веб-сайтов может быть определена на основе основных принципов взаимодействия пользователя с Всемирной патиной (WWW). Вообще все сайты в первом приближении можно разделить на две основные рппы на основании сщности их фнций: • навиационные веб-сайты; • онечные веб-сайты. Фатичеси подобное деление основано на общей идее навиации пользователей в сети Интернет. Цель навиационных веб-сайтов – обеспечить пользователя набором ссыло на дрие ресрсы для полчения исомой информации. Классичесим примером навиационноо веб-сайта является поисовая система (например, Яндес, Апорт или Рамблер). Пользователь сначала ищет запрашиваемый ресрс через навиационные веб-сайты, а затем может им воспользоваться. Задача онечноо сайта – обеспечить пользователя необходимой информацией. С точи зрения владельца веб-сайта, для эффетивной работы необходимо решить две задачи. Во-первых, требется привлечь посетителей на вебсайт, для этоо, собственно, и необходима помощь навиационных веб-сайтов. Во-вторых, требется обеспечить масимальное оличество повторных посещений веб-сайта, с тем чтобы повысить ео рейтин посещаемости. Ита, лавная цель навиационных веб-сайтов залючается в переадресации пользователей онечным веб-сайтам. Помимо поисовых систем, этой рппе таже относятся аталои и справочные системы. Главная цель онечных веб-сайтов — предоставить пользователю по возможности исчерпывающю информацию, с тем чтобы привлечь ео внимание он-
Оранизация систем элетронной оммерции
15
ретном ресрс и заинтересовать в релярном посещении данноо веб-сайта. Однао навиационные и онечные вебсайты имеют свою, более тоню, лассифиацию. Веб-сайты в сети Интернет
Навигационные сайты
Конечные сайты
Поисковые системы
Информационные сайты
Тематические серверы
Торговые системы
Системы каталогов
Корпоративные сайты
Инициирующие сайты Порталы/ворталы
Навиационные веб-сайты, в свою очередь, можно разделить на поисовые системы, тематичесие серверы и аталои. Задачей поисовых систем лавным образом является обеспечение пользователя определенным набором ссыло в соответствии с азанным запросом (набором лючевых слов либо тестом на естественном язые). Задача интернетаталоа таже залючается в предоставлении ссыло, однао здесь пользователь производит поис на основании предложенной ем порядоченной, иерархичеси оранизованной, древовидной тематичесой стртры аталоов (например, Yahoo, Stars.Ru, List.Ru и т.д.). Задача тематичесоо сервера залючается в предоставлении информации о ресрсах определенной темы. К пример, если поисовая система может найти целый набор ссыло на веб-сайты по заданным лючевым словам по всей сети Интернет, то тематичесий сервер предоставит информацию тольо в онретном сеторе сети. Главной целью поисовых систем и аталоов
16
Системы элетронной оммерции
является поис информации и последющее перенаправление (Redirect) найденным ресрсам в соответствии с запросом пользователя. Однао рппа инициирющих веб-сайтов, помимо самоо процесса поиса и перенаправления пользователей, предполаает обеспечение пользователя достаточно проработанным онтентным информационным наполнением самоо сайта. Задача таой оранизации инициирющих сайтов — масимально дольше держать пользователя именно на самом сайте и тольо в слчае невозможности предоставления запрашиваемой информации перенаправить ео на дрие ресрсы. Полчается, что инициирющие веб-сайты можно параллельно лассифицировать а навиационные и онечные. Исходя из тоо что представленные в этой рппе инициирющие веб-сайты мот быть разными по объем предоставляемой информации, принято разделять инициирющие веб-сайты на порталы и ворталы. Порталом называется веб-сайт, предназначенный для определенной, специфичесой адитории, влючающий определенный набор интеративных сл и сервисов: систематизацию и объединение информационноо онтентноо наполнения и предоставление пользователю запрашиваемой информации; интеративню работ рппы пользователей, а таже поддерж оллетивных сл и сервисов; оранизацию системы персонифиации пользователей для обеспечения достпа слам и сервисам, предназначенным для зареистрированных (принятых системой) пользователей. Помимо порталов, сществют таже ворталы (вертиальные порталы). Вортал — это портал для определенноо сетора рына. Ворталы предназначены лавным образом для обеспечения информацией зоспециализированных интернет-сообществ. Сеодня с достаточной степенью веренности можно тверждать, что аждое интернет-сообщество имеет свой собственный вертиальный портал. Для более налядноо представления оранизации взаимоотношений межд порталами и ворталами было предложено изображение меалитов — льтовых сооржений 3—2-о тысячелетий до н. э. из оромных необработанных аменных лыб.
Оранизация систем элетронной оммерции
Рис. 1
Рис. 2
17
18
Системы элетронной оммерции
Ка можно видеть из схемы построения ромлеха (рис. 1) — одноо из примеров омпозиции меалитов, и Стонхенджа (Велиобритания) (рис. 2), ряды вертиальных аменных лыб являются основаниями для оризонтальных, а все вместе они образют ольцо. При оранизации рпных порталов в сети Интернет происходит таой же процесс, что и при построении меалитов в древности. Ввид тоо что задача портала — предоставить пользователю масимм широой, разносторонней информации, портал должен содержать в себе ссыли или цитирование информации на более зие порталы, или ворталы. Таим образом, ворталы являются основаниями для возниновения порталов. Портал имеет оризонтальное направление, т.е. широий охват адитории, в то время а вортал имеет вертиальное направление, т.е. более зий охват адитории. Кольцо ромлеха в таом слчае может считаться совопностью порталов в сети Интернет, т.е. меапорталом. Среди российсих меапорталов можно выделить «Россия-Он-Лайн» и «РБК». Следющая рппа рассматриваемой лассифиации вебсайтов — онечные веб-сайты. Главная цель онечных вебсайтов — обеспечить пользователя той онретной информацией, в поисах оторой он зашел на данный сайт. Стоит таже отметить, что здесь интерес пользователя может быть обсловлен не тольо информацией определенноо рода, но и, например, желанием совершить онлайновю сдел в рамах элетронной оммерции, т.е. приобрести товары и сли. Конечные веб-сайты имеют свою, более тоню, лассифиацию. Информационные веб-сайты — это серверы, предоставляющие т или иню информацию пользователям сети Интернет. При оранизации любоо информационноо веб-сайта достаточно остро встает вопрос предоставления ниальной информации на онретном веб-сайте. Часто информация дблирется с дрих интернет-источниов и перестает быть ниальной по своей сти. Создание орпоративных веб-сайтов подразмевает создание в сети Интернет виртальноо представительства той или иной омпании. Торовые системы мот быть представлены веб-сайтами для ведения ин-
Оранизация систем элетронной оммерции
19
тернет-бизнеса, начиная от оранизации интернет-маазинов и заанчивая строительством интернет-бирж. Именно таие сайты обеспечивают основ для элетронной оммерции в сети Интернет. Таим образом, при оранизации спешной работы современноо интернет-представительства, бдь это онечный веб-сайт или тематичесий портал, необходимо честь процессы, имеющие место в двх направлениях работы сети Интернет. Первое — это процесс реистрации веб-сайта на навиационных сайтах с целью обеспечения правильной и быстрой переадресации пользователей на нжный ресрс. Второе — это процесс держания пользователей на онретном ресрсе, т.е. обеспечение их атальным информационным онтентом. Стоит таже отметить, что инициирющие веб-сайты мот быть одновременно а навиационными, та и онечными, например веб-сайт РосБизнесКонсалтин (www.rbc.ru). Данный веб-сайт предоставляет широю информацию по финансовой сфере и одновременно с этим содержит атало ссыло на дрие порталы сходной тематии. Исходя из общей лассифиации веб-сайтов, системы элетронной оммерции можно лассифицировать а онечные веб-сайты для торовых систем. В общем слчае система элетронной оммерции может быть определена а интернет-маазин, т.е. веб-сайт, обеспечивающий продажи через Интернет с использованием элетронноо аталоа или дроо вида представления продции.
Катеории эле тронной оммерции Созданием и продвижением интернет-маазинов в сети Интернет занимается целая область эономии — элетронная оммерция. Исходя из определения элетронной оммерции, можно отметить, что она является важнейшим составным элементом элетронноо бизнеса, т.е. любой деловой ативности, использющей возможности лобальных информационных сетей для преобразования внтренних и внеш-
20
Системы элетронной оммерции
них связей с целью создания прибыли. Вообще, под элетронной оммерцией (e-commerce) понимается любой вид деловой сдели, де взаимодействие сторон осществляется элетронным способом вместо физичесоо онтата. В элетронной оммерции принято выделять следющие основные атеории: • B2B (business-to-business) бизнес — бизнес; • B2C (business-to-customer) бизнес — потребитель; • B2A (business-to-administrator) бизнес — администрация; • C2A (customer-to-administrator) потребитель — администрация; • С2С (customer-to-customer) потребитель — потребитель. Данная лассифиация основана на трех основных частниах рына: потребителе, омпании и администрации. Для тоо чтобы понять связи межд перечисленными атеориями элетронной оммерции, необходимо рассмотреть треольни оборота товаров и финансов. B2C (business-to-customer) C2C (customer-to-customer) Потребители C2A (customer-to-administrator)
B2B (business-to-business) Бизнес
B2A (business-to-administrator)
Администрация
Рассмотрим все атеории элетронной оммерции по поряд. B2B (бизнес — бизнес) определяется а атеория элетронной оммерции, при оторой частниами рына являются две омпании. Например, связи и отношения межд дилерами и поставщиами, оловными офисами омпаний и их реиональными представителями. B2C (бизнес — потребитель) реламентирет отношения межд омпаниями и потребителями, т.е. розничню элетронню торовлю
Оранизация систем элетронной оммерции
21
(интернет-маазины). B2A (бизнес — администрация) реламентирет отношения межд бизнесом и администрацией, вопросы лицензирования, разрешений на деловю ативность предприятия, постави обордования, таможня и т.п. C2A (потребитель — администрация) реламентирет отношения межд потребителями и осдарственными стртрами в различных областях и сферах эономии. C2C (потребитель — потребитель) реламентирет отношения межд двмя потребителями, например по обмен опытом совершения оммерчесих сдело. Классичесим примером оранизации виртальной системы элетронной оммерции атеории C2C является интернет-ацион. Однао здесь стоит отметить следющее: даже при том, что оммерчесие отношения возниают непосредственно межд частниами торов (продавец и попатель), все это может быть тольо при поддерже оранизатора самоо ациона (омпании), оторая вправе держивать за свои сли определенный процент с проводимой сдели межд частниами торов. Представленная схема поазывает отношения межд всеми пятью атеориями элетронной оммерции. Та, например, если потребитель желает совершить поп через сеть Интернет, он находит подходящий для этоо интернет-маазин, а в нем соответственно необходимый товар. Однао здесь бдет полезен обмен опытом с теми пользователями, оторые либо имеют подобный товар, либо прибеали слам данноо интернет-маазина. При этом работает атеория C2C, т.е. обмен опытом межд потребителями. Кода потребитель, полчивший советы от пользователей, решается приобрести товар онретноо интернет-маазина, он встпает в атеорию B2C, т.. с одной стороны выстпает омпания (юридичесое лицо), а с дрой — потребитель (физичесое лицо). Постпивший зааз от потребителя должен быть обработан интернет-маазином. Для этоо интернет-маазин может связаться с омпаниями, оторые поставляют ем товар; здесь работает атеория элетронной оммерции B2B, т.е. связь межд двмя и более омпаниями. Если при полчении товара потребитель остался недовлетворен ео содержанием,
22
Системы элетронной оммерции
он вправе обратиться в различноо рода инстанции по онтролю проведения товарно-денежных отношений (например, защита прав потребителей); таим образом, начинает работать атеория C2A. И наонец, администрация может влиять на работ интернет-маазина птем наложения различных санций, лицензирования, онтроля денежных потоов; в таом слчае работает атеория B2A. Полчается, что все пять атеорий элетронной оммерции работают а единый механизм товарно-денежных отношений в сети Интернет. Однао в таой лассифиации можно выделить, по райней мере, две основные атеории элетронной оммерции, оторые приносят наибольшю прибыль по сравнению с остальными: это атеории B2B и B2C. Было становлено, что, соласно статистие Jupiter Communications, сммарный оборот рына B2B в 2005 од составлял 8 трлн долларов, при этом в онце 2005 ода объем европейсоо сетора элетронноо рына B2B-предложений дости 1100 млрд евро. Таже известно, что, по данным министерства почты и телеоммниаций Японии (post and telecommunications ministry), в 2005 од оборот рына B2B вырос до 103,4 трлн иен (980 млрд долларов), в сравнении с 14,43 трлн иен в 1999 од. Стоит таже отметить, что период бездержноо роста систем элетронной оммерции атеории B2C же пройден, и сеодня лавным ритерием спешноо ведения бизнеса в сети Интернет является внедрение новых технолоий, призванных сделать торовлю эффетивнее и лчше, чем онрентов. Вообще, по данным аентства eMarketer, рост элетронной оммерции в сеторе B2C в мире с 1999 по 2003 од составил от 30 до 210 млрд долларов. Помимо основных пяти атеорий элетронной оммерции, сществют таже и дрие атеории, де вводится новый (возможно, наиболее значимый) частни рына — правительство (government). Полчается, что интернет-маазины, помимо тоо что они являются онечными веб-сайтами для торовых систем, относятся розничной форме ведения торовли — сетор B2C (business-to-customer).
Оранизация систем элетронной оммерции
23
Что та ое интернет-маазин? Интернет-маазин — это веб-сайт, обеспечивающий продажи товаров и сл посредством сети Интернет. Главными преимществами интернет-маазина, по сравнению с традиционной формой торовли, являются: хороший и чето стртрированный ассортимент предложений; обеспечение подробной информацией о товарах; оперативная работа администрации интернет-маазина по доставе товаров и поддерже попателей. Основной проблемой является доверие потребителей данном интернет-маазин (trust-системы). Доверие основывается на ачественной работе слжбы достави товаров, осществлении безопасноо денежноо платежа и т.д. Дело в том, что один интернет-маазин отстоит от дроо ровно на один ли мыши, и нередо все силия цивилизованноо интернет-маазина сводятся на нет, если потребитель же имел отрицательный опыт работы с дрим интернет-маазином. Все интернет-маазины принято разделять на основании ровня автоматизации их бизнес-процессов: • веб-витрина; • интернет-маазин; • торовая интернет-система. Веб-витрина, а самый простой в этом отношении способ реализации системы элетронной оммерции, подразмевает оранизацию системы представления товаров и сл, т.е. аталоа и базы данных, а таже системы оформления зааза. На этом фнциональная автоматизированная часть работы таой системы элетронной оммерции заанчивается, т.. дальше зааз постпает на обработ челове — оператор интернет-маазина. Таим образом, интернет-маазин можно определить а онечный веб-сайт для торовых систем атеории B2C, с реализацией на базе таоо сайта веб-витрины и торовой интернет-системы. Дрими словами, интернет-маазин можно охаратеризовать а систем элетронной оммерции атеории B2C.
24
Системы элетронной оммерции
Торовая система представляет собой более автоматизированный прораммный омплес по сравнению с веб-витриной. Здесь, помимо атрибтов веб-витрины, таих, а элетронный атало товаров, база данных, орзина попателя и реистрация, создаются таже система чета бхалтерии интернет-маазина (с автоматичесим выставлением попателю счета об оплате товара); система сладсоо чета, реламентирющая передвижение товаров на сладе; система лиентсой базы данных с четом наопительных сидо. Сазанное можно проиллюстрировать следющей схемой, де выделена ветвь лассифиации интернет-маазина:
Веб-сайты в сети Интернет
Навигационные сайты
Конечные сайты
Поисковые системы
Информационные сайты
Тематические серверы
Торговые системы
Системы каталогов
Корпоративные сайты
Инициирующие сайты Порталы/ворталы
B2A
B2B
B2C
C2A
C2C
Дальнейшее деление приведет выделению внтри интернет-маазина веб-витрины и торовой интернет-системы, однао таое деление достаточно словно, т.. термин «ин-
Оранизация систем элетронной оммерции
25
тернет-маазин» в этом делении весьма ниверсален. В неоторых слчаях интернет-маазин может быть представлен а веб-витрина, а инода — и а полностью автоматизированная торовая система (с системой чета товаров на сладе и оформления доментации). Поэтом в настоящей пблиации под интернет-маазином бдем понимать систем элетронной оммерции (онечный веб-сайт для торовой системы) атеории B2C — с возможностью выбора товара (интерфейс выбора товаров, база данных товаров, поис товаров), формирования товара (работа с орзиной попателя), оформления зааза (реистрация попателя) и отправи зааза администрации маазина.
Схема работы интернет-маазина С точи зрения взаимодействия попателя с виртальным маазином весь процесс совершения попи можно охаратеризовать следющим образом: • процесс зарзи интернет-маазина: попатель заходит на сам сайт — залавню страниц интернет-маазина. Здесь он знаомится с дизайном интернет-маазина, изчает предлааемый ем интерфейс; • процесс работы с аталоом товаров: данный этап может состоять из целоо ряда составляющих рабочих модлей, таих, а работа пользователя с интерфейсом маазина; поис товара пользователем через поисовю машин интернет-маазина; работа пользователя с орзиной попателя. Важность данноо этапа состоит в том, чтобы масимально быстро адаптировать попателя навиации интернет-маазина, системы меню, представления элетронноо аталоа товаров, работы с орзиной попателя, иначе если он, заптавшись, йдет в дрой интернет-маазин, работа остальных модлей схемы может быть бесполезной; • процесс оформления зааза: здесь попатель же определился с выбранным (отложенным в орзин) товаром
26
Системы элетронной оммерции
и проходит реистрацию в интернет-маазине, заполняя предложенные тестовые поля с азанием информации о пользователе, адресе достави и онтатной информации. • процесс отправи зааза на сервер: на этом этапе попатель нажимает лавиш «Отправить зааз», вызывающю запс модля отправи зааза на сервер администрации интернет-маазина; • процесс обработи зааза администрацией маазина: здесь происходит оперативная работа администрации интернет-маазина, оформление доментов на зааз и передача зааза в слжб достави товаров интернет-маазина; • процесс достави товаров: именно на этом этапе происходит (а правило) сам денежно-товарный расчет, при словии что достава товара оранизована рьерсой слжбой достави товаров интернет-маазина. Однао возможна и почтовая достава, при этом финансовый расчет производится посредством элетронных дене или почтовых переводов. Главными этапами взаимодействия пользователя с интернет-маазином являются: • зарза приложения (попатель заходит на веб-сайт); • попатель просматривает товары по атеориям или использет средства поиса, в резльтате неоторые товары влючаются в зааз; • завершив отбор товаров, попатель просматривает тещий состав зааза, меняет ео содержимое или вносит оличественные изменения; • ода зааз примет оончательный вид, пользователь подтверждает и оплачивает ео. Однао с точи зрения прораммной реализации интернет-маазина можно построить общю схем ео работы (см. с. 28—29). Представленная лассичесая схема прораммной (модльной) схемы построения интернет-маазина была предложена Джерри Бранденба в ние «JavaScript: сборни рецептов для профессионалов». Д. Бранденба выделяет пять основных омпонентов в лассичесой схеме построения интернет-маазина:
Оранизация систем элетронной оммерции
27
• зарза интернет-маазина: построение данных о товарах и зарза отображаемой страницы; • вывод информации о товарах: переход межд атеориями и межд отдельными товарами внтри атеории; • влючение товаров в зааз: отслеживание содержимоо зааза; • поис: обработа тестовых запросов по отношению товарам на сладе; • внесение изменений и оплата зааза. Из приведенной схемы видно, что на начальном этапе работы пользователя с интернет-маазином сраз предлаается выбор из двх возможных альтернатив: пользователь бдет работать с аталоом товаров либо через интерфейс маазина, либо через систем поиса. В первом слчае выбор происходит из атеорий товаров, во втором — посредством ввода исомоо теста, набора лючевых слов. В слчае выбора из атеории товаров пользователю выводится вся выбранная атеория, а в слчае системы поиса он может не знать точноо названия товара в базе данных, и поэтом резльтат поиса может быть отрицательным. Тода пользователю придется потратить время на повторный поис товара. В данной схеме эта ситация отражена в блое отображения резльтата поиса. Кода товар выбран, пользователь может либо влючить ео в орзин попателя, либо выбрать дрой товар. Здесь важно то, что на этапе формирования (просмотра) орзины попателя пользователя вседа есть возможность вернться в атало товаров и продолжить попи. Если пользователь определился с попами, он может пристпить оформлению зааза. При этом появляется возможность оперативно изменить данные о товарах в орзине попателя (например, изменить оличество определенноо товара либо далить товар из орзины вообще). Кода формирование товаров в орзине завершено, пользователю предлаается заполнить форм для оформления зааза; при этом идет процесс енерации формы зааза с информацией о товарах. Затем заполненная форма зааза отправляется на обработ администрации интернет-маазина.
Товар выбран
Выбрать из категории
Категории
Да
Просмотреть
Вывести (другой) товар или категорию
Просмотреть категории или произвести поиск?
Загрузить полноэкранный интерфейс
Результат найден?
Ввести искомый текст
Поиск
Нет
28 Системы элетронной оммерции
Ввести адрес, данные кредитной карты и т. д.
Сгенерировать форму заказа с информацией о товарах Да
Включить товар в заказ
Отправить заполненную форму заказа
Завершить выбор товаров?
Нет
Вывести окно оформления заказа
Сценарий создает файл с информацией о заказе
Изменить данные о товарах
Просмотреть товары или оформить заказы?
Оформить заказ Оранизация систем элетронной оммерции 29
30
Системы элетронной оммерции
Однао данню схем построения интернет-маазина можно лчшить, если добавить возможные расширения: • создание интеллетальных товаров; • лчшенные средства поиса; • поддержа cookie для постоянных попателей. Интеллетальные товары — это свойство базы данных, при отором аждом товар ставится в соответствие ссыла на дрой товар (товары), оторый администрация маазина может пореомендовать при попе данноо товара. Та осществляется перерестный маретин, онцепция отороо ативно внедрена в интернет-маазине Amazon.Com. Улчшение поиса маазина может быть основано на поисе по интервал цен (например: > $50). Однао поис может быть таже реализован а интеллетальная система, оторая на вход принимает запросы, сформированные пользователем на естественном язые. Если таой интеллетальной системе добавить еще и подсистем рассждений, то можно полчить систем поддержания простейшео диалоа с пользователем на предмет наличия товара на сладе. Поддержа cookie – это попыта идентифиации пользователя при ео появлении в интернет-маазине, при этом ем не придется аждый раз заново вводить все финансовые ревизиты при аждом оформлении зааза. Сществют и дрие способы лчшения работы интернет-маазина, однао все это бдет местно реализовать, ода же есть хотя бы минимальная онфирация всей системы. Для этоо необходимо рассмотреть архитетр бдщео интернет-маазина.
Интерфейс интернет-маазина При проетировании любоо интерфейса, модля взаимодействия человеа и машины (омпьютера), необходимо читывать определенные фаторы, влияющие на та называемое добство использования данноо интерфейса: • држественность (friendly-interfaces); • достаточная простота оранизации; • информативность.
Оранизация систем элетронной оммерции
31
Држественность интерфейса — это омплес мер по достижению наибольшей ибости работы человеа с омпьютером. При проетировании таоо интерфейса лавный пор делается на проетирование и продманность GUI (Graphic User Interface) — рафичесоо интерфейса пользователя. Здесь мот быть набор питорамм, расрывающих назначение аждой нопи или ссыли; четая последовательная подача таих нопо; стртрированная связь с элетронным аталоом, с оторым работает интерфейс, и т.д. В более сложных задачах создается анимированный «ерой» — персонаж, задача отороо – выстпать в роли посредниа (помощниа) межд пользователем и системой. От степени ео прорисови и адеватности поведения зависит весь процесс работы пользователя с системой в целом (например, «ерой» — срепа в прорамме Microsoft Word). Достаточная простота оранизации интерфейса необходима для масимальноо соращения времени адаптации пользователя системе. Попатель в интернет-маазине не должен тратить мноо времени на понимание всей стртры работы маазина, вместо этоо он должен быстро сориентироваться, а добраться до онретноо раздела с товарами, а положить товар в орзин, а оформить зааз. Информативность — ачество интерфейса, определяющее ео наполнение и расрывающее ео лавню задач — донести нжню информацию для пользователя. Здесь важно честь, что названия самих правляющих лавиш интерфейса должны быть четими, лаоничными и понятными для попателей. Перечисленные ритерии создания интерфейса определяют само понятие «дизайн интерфейса». Дело в том, что интерфейс должен быть составной частью всей системы вебсайта или интернет-маазина. Он не должен выделяться (с точи зрения дизайна) из общей онцепции оформления веб-страницы; наоборот, он должен оранично вписываться в эт онцепцию. Сейчас делаются попыти создавать 3D-интерфейсы, т.. считается, что посоль челове живет в трехмерном мире, то в целях лчшей адаптации пользователя мир сети Интернет тоже должен быть трехмерным. 3D-интерфейс требет значительных затрат с точи зрения реализации, однао мо-
32
Системы элетронной оммерции
жет быть более интитивен и наляден при работе с ним пользователя. Одна из лавных задач при проетировании пользовательсоо интерфейса — сохранение общей онцепции оранизации потоа информации в сети Интернет. Дело в том, что, вообще, сществют оммниационные модели достави информации потребителям. В этом отношении преимщество сети Интернет залючается в возможности интеративноо взаимодействия. В отличие от пассивной, а бы «нисходящей» потребителю модели маретина, в сети Интернет становится возможным осществить таое взаимодействие поставщиов и лиентов информации, при отором именно последние занимают ативню позицию. При этом они сами мот становиться поставщиами, в частности поставщиами информации о своих потребностях. С этой точи зрения традиционные средства массовой информации (телевидение, радио и т.д.) реализют push-модель достави информации потребителям (рис. 3), в оторой потребители занимают пассивню роль и имеют довольно ораниченные возможности выбора аналов информации. Предоставляемая информация обычно спонсирется фирмами, поэтом достп ней либо бесплатный (традиционное телевидение, радио), либо осществляется за незначительню плат (абельное телевидение, жрналы, азеты и т.д.). Таая модель создает взаимовыодню ситацию для всех ее
Рис. 3
Оранизация систем элетронной оммерции
33
частниов: СМИ полчают доход за предоставление информации (от фирм-реламодателей и потребителей); фирмы-реламодатели полчают достп потребителям, использющим СМИ; потребители полчают достп информации и развлечениям (новости, спорт, отдых и т.д.). В противоположность традиционным СМИ, реализющим push-модель достави информации, в основе сети Интернет лежит pull-модель (рис. 4), в оторой информация предоставляется по запрос (demand pull). Данная особенность среды сети Интернет связана с ативной ролью потребителей, обсловленной онтролем над поисом информации за счет различных механизмов поиса и навиации. Это ставит перед фирмами, использющими Интернет а сред оммерции, сложню задач, залючающюся в приложении масимма силий для привлечения пользователей, и требет от них более пристальноо внимания потребностям пользователей, новых подходов и современных технолоий. Исходя из вышесазанноо можно сделать достаточно простой вывод: не превращать Интернет из pull-модели достави информации в push-модель. Признаться честно, на данный момент достаточно трдно чето отнести Интернет pull- или push-модели, сорее всео, Интернет — взаимодействие двх этих моделей. Возможность выбора и полчения при этом ожидаемой информации — одна из лавных задач проетирования интерфейса.
Рис. 4
34
Системы элетронной оммерции
Сществет целый ряд особенностей, оторые по возможности следет читывать для создания наиболее «правильноо» интерфейса. Таой ряд особенностей был предложен союзом дизайнеров и проетировщиов омпании Apple Macintosh и изложен в ние Macintosh Human Interface Guidelines. В данной ние предлаается неий онтрольный списо вопросов, связанных с проетированием веб-интерфейса. Ка и в любом онтрольном списе (че-листе), в нем нет ни одноо вопроса, твердительный ответ на оторый является обязательным. Но все вместе они образют нею ритичесю масс, та что чем больше бдет оличество положительных ответов, тем лчше. Рассмотрим все эти вопросы более детально в свете проетирования интерфейса интернет-маазина. • Оазывает ли ваш веб-сайт возможность воспринять действия пользователя? В основном это асается ативных (изменяющих свой вид в зависимости от положения рсора) нопо. Фатичеси необходимо предсмотреть обработ события подвода рсора мыши на ноп. При этом нопа может изменить свой цвет, размер, форм и т.д. В любом слчае пользователь видит отовность (ативность) нопи дальнейшим действиям. Однао в интернет-маазине этоо оазывается мало, т.. инода, помимо визальноо отображения нопи, желательно наличие ативной тестовой подсази для нопи. Например, ода пользователь перемещается по таблице товаров вперед или назад, помимо самих нопо направления перемещения, желательно таже пристствие тестовоо поля-подсази: сольо товаров осталось поазать и сольо же было поазано. Таим образом, еще до нажатия, например, лавиши «Вперед» при подводе ней мыши пользователь сраз видит, сольо товаров предстоит посмотреть. Это может быть полезно для оцени пользователем масштаба работы интернет-маазина в целом. • Вседа ли вы предпреждаете пользователя о неприятных последствиях ео действий? В основном вопрос асается апплетов, но таже затраивает необходимость предпреждать пользователя о длительном ожидании
Оранизация систем элетронной оммерции
35
зарзи страницы (если она боата рафиой). В любом интернет-маазине есть возможность отрытия изображения товара в новом оне бразера, де данное изображение отображается в величенном виде. При этом, однао, неплохо честь процесс зарзи таоо изображения. Для этоо следет предпредить пользователя о процессе зарзи и необходимости дождаться ее оончания, иначе он может не понять, что вообще должно происходить в новом оне и для чео оно нжно. • Постоянно ли достпны пользователю все правляющие элементы сайта ( пример, постоянно ли достпна пользователю вся необходимая система навиации)? Этот вопрос атален вплоть до момента оформления попателем всео зааза, т.е. этапа заполнения реистрационной формы. Ведь пользователь может забыть приобрести аой-то товар на этапе формирования попи и вспомнить о нем тольо в самом онце. Поэтом необходимо держать систем навиации (интерфейс) маазина вседа видимой и достпной пользователю. • Корретно ли веб-сайт печатается? Очень важный вопрос для страниц объемом более 2 Kb (их чаще печатают). Надо проверить, а печатаются страницы на монохромных и цветных принтерах. Если вы «режете» большие тесты на множество отдельных страниц, то должны предоставить пользователю возможность отрыть и напечатать весь тест одной страницей (причем без расот эранноо дизайна). Возможно, пользователь решит отпечатать на принтере правила работы вашео интернет-маазина, чтобы ознаомиться с ними без омпьютера или в пти. Для этоо необходимо поставить специальню ссыл (можно даже с питораммой принтера): «Версия для печати». По таой же схеме необходимо предсмотреть печать всео прайс-листа интернетмаазина, чтобы пользователь мо ознаомиться с вашими ценами в офф-лайне или сравнить их с ценами в реальном маазине. • Если лбина вашео сайта больше пяти страниц, предоставляете ли вы возможность тестовоо поиса? При
36
Системы элетронной оммерции
проетировании интернет-маазина вопрос поиса должен быть решен в любом слчае, т.., естественно, списо товаров бдет занимать далео не одн страниц. • Отстствют ли страницы с дизайном, отличающимся от атальноо в настоящее время? Есть ли страницы с содержанием, стилистичеси отличающимся от обычноо? Речь идет об оставшихся от прежних версий сайта страницах, оторые не были переделаны в отношении дизайна либо стилистии теста. Естественно, что при изменении дизайна всео интернет-маазина необходимо предсмотреть это изменение на лобальном ровне, т.., если в аом-то разделе интернет-маазина бдет оставаться старый дизайн, это может бросить тень на добросовестность дизайнеров и администраторов этоо интернет-маазина. Сществет ласс интернет-маазинов с автоматичеси изменяющимся дизайном, при этом отпадает надобность провери внесенных изменений врчню. • Вседа ли орретно работает лавиша Back бразера? Неоторые страницы, переданные по шифрющем протоол, не мот быть взяты бразером из эша, и их требется заржать заново (в лчшем слчае пользователю нжно самом нажать лавиш Refresh, в хдшем — производить более сложные и неочевидные действия). При повторной зарзе таих страниц может таже слететь становленная в бразере одирова (и весь рссий тест бдет нечитабельным). Избеайте делать таие страницы. Если вас есть страницы с формами ввода, добейтесь тоо, чтобы вернвшийся на эт страниц пользователь (неважно, лавишей Back либо блаодаря иперссыле) нашел ее со всеми своими становами (это очень эономит время, если нжно вернться и что-нибдь поправить). Атальность данноо вопроса в свете проетирования интернет-маазина более чем высоа, т.. если база данных реализована серверными технолоиями (например, MySQL) и обращение ней ведется через цепоч «запрос — ответ», то естественно, что при неорретной обработе лавиши
Оранизация систем элетронной оммерции
37
Back бразера пользователь на аом-то этапе видит либо белый эран, либо фраз: «Ваша страница временно старела, попробйте нажать лавиш «Обновить эран» (Refresh)». И вам повезет, если Refresh поможет, а если нет? Таим образом, необходимо вседа помнить о орретной обработе лавиши Back. • Видимы ли все изменения в содержании и дизайне, произошедшие из-за действий пользователя? Например, если он становил аой-нибдь перелючатель, то на всех страницах, демонстрирющих резльтаты ео действий, должно быть поазано, что этот перелючатель становлен в соответствющее положение. Иначе оворя, любое действие пользователя должно быть отражено интерфейсом. • Если в интернет-маазине вы даете пользователю право изменять расположение и содержание неоторых элементов интерфейса по своем смотрению, то необходимо постоянно информировать ео о тещих настройах и о возможности этих настрое вернть все в исходное положение. В самом простом слчае это может вылядеть та: если пользователь изменил цветовю палитр вашео интернет-маазина с зеленой на олбю, следовательно, вы должны постоянно держать перед ним сообщение (питорамм), что в настоящий момент цвет интернет-маазина олбой и что есть возможность внести новые изменения. • Хорошо ли вылядит ваш веб-сайт на низоачественных мониторах? Хорошо ли он вылядит на монохромных мониторах, шестнадцатицветных или поазывающих тольо оттени сероо? Если вы использете аоелибо цветовое одирование информации, то имеются ли иные способы индиации (тест, рафичесое воплощение и т.д.)? Данные вопросы атальны, если задача вашео интернет-маазина — охватить а можно большю адиторию попателей (влючая отдаленные реионы). В таом слчае инода приходится предоставлять пользователю сраз несольо версий интернетмаазина, с разной производительностью и рафичесим
38
Системы элетронной оммерции
наполнением. Возможен таже вариант альтернативной ссыли на прайс-лист вашео интернет-маазина вместо реальной работы с интерфейсом и орзиной попателя. При этом есть веренность, что даже попатель с плохой техничесой базой сможет сделать зааз в вашем интернет-маазине. • Вседа ли вы использете изображения для иллюстрации (индиации) оманд, возможностей либо параметров вашео сайта (если это вообще возможно)? Может оазаться полезным рядом со строой поиса товара отобразить питорамм лпы, т.. лпа — пример ассоциации на оманд поиса информации. • Использет ли рафиа метафоры, известные пользователю из реальной жизни? Лишаете ли вы ее несщественных подробностей, без пользы сложняющих восприятие? Вообще оворя, нет ниаоо смысла а в абстратных питораммах, та и в питораммах, инспирированных омпьютером. Место хранения файлов можно обозначить изображением жестоо диса, но при этом от пользователя бдет требоваться знание тоо, а этот дис вылядит, что неправильно, т.. от пользователя вообще нельзя ничео требовать. Лчше нарисовать шаф или поли. В интернет-маазине это асается прежде всео питорамм «Положить в орзин», «Изменить оличество товара», «Удалить из орзины». Для начала лчше всео хорошеньо разобраться с изображением самой орзины, т.. она должна быть действительно орзиной, а не чем-либо еще. Классичесий пример таоо изображения — тележа из спермарета. • Если вы использете более или менее трехмерные изображения, то все ли они обладают одинаово направленной тенью? Это одна из самых распространенных дизайнерсих ошибо. Та а веб-сайт представляет собой единое пространство, множество разных источниов света сбивает с тол (и смешно вылядит). Вообще, одно из лавных назначений тени в веб-дизайне — это размельчить сам дизайн веб-сайта. Сществет мас-
Оранизация систем элетронной оммерции
39
са дрих примеров размельчения, например наличие дополнительных рамоче в тестовых и рафичесих блоах, применение радиента вместо сплошноо (чистоо) цвета и т.д. Тень может расить все восприятие интернет-маазина, однао необходимо следить за физиой света в этой тени. • Избеаете ли вы использовать цвет в значимых областях страницы, если этоо не требет необходимость выделять важню информацию? Этот вопрос не относится общем фон страницы. Большая проблема мноих интернет-маазинов — недозированная подача информации, а таже бездмная система выделения таой информации, т.е. мало тоо что информация подается с избытом, она еще и «хорошо» выделена. Из-за этоо тратится больше времени на привыание и адаптацию пользователя данном интернет-маазин, а если при этом помнить, что один интернет-маазин отстоит от дроо ровно на один ли мыши, то таая рябь в лазах просто недопстима. Из теории цвета (олористии) известно, что самый лчший цвет выделения заоловов теста – оранжевый, т.. он первый санирется сетчатой нашео лаза. Затем же расный и т.д., однао цвет, равно а и сам тест, должен подаваться с известной степенью дозированности и сдержанности. Особенно здесь следет принять во внимание оформление лавной (титльной) страницы интернетмаазина. • Использете ли вы ярие (насыщенные) цвета тольо в небольших областях и тольо при необходимости? Использете ли вы тольо нейтральные фоновые цвета? Если вы использете темный или черный фон, становлено ли жирное начертание теста по молчанию (на низоачественных мониторах, оторые и составляют большинство, тоний светлый тест на темном фоне проявляет несведение лчей и от этоо вылядит сильно размытым)? По сти, самая нейтральная (лассичесая) цветовая схема — белый фон, синий (олбой) цвет интерфейса, черный тест. Именно по этой
40
Системы элетронной оммерции
схеме работают мноие поисовые системы, таие, а Altavista, Aport и Rambler. • Уверены ли вы, что ваш веб-сайт приемлемо вылядит с любым размером системноо шрифта? Мноие пользователи станавливают ео размер на масимальный, отчео пратичеси любой дизайн разваливается (лишить их таой возможности можно с помощью стилевых листов). Роль подбора шрифта в построении интернетмаазина — одна из наиболее приоритетных. Прежде всео это асается таблицы отображения товара, де тест ирает определяющю роль: полчит ли пользователь информацию о товаре или нет (вернее, сможет ли он ее прочитать). С этой целью лчше всео брать обычные системные шрифты, таие, а Arial, Courier, Times New Roman. Классичесая схема (предложенная, стати, Microsoft Office) реомендет использовать в ачестве заоловов шрифт Arial, а в ачестве основноо теста Times New Roman. Однао возможны и дрие варианты. • Оранизована ли информация та, чтобы наиболее важные данные находились в начале страницы (тода их можно бдет прочитать в первю очередь)? Данный вопрос основан на одном из постлатов интернет-реламы — верхняя часть веб-сайта вседа оценивается дороже, чем нижняя. Именно поэтом размещение баннеров (реламных модлей) вверх веб-сайта стоит дороже, чем вниз. С точи зрения подачи информации в интернет-маазине действет тот же принцип: сначала (вверх) должна находиться наиболее важная для интернет-маазина информация (рс словной единицы расчета интернет-маазина, информация о орзине попателя, строа поиса товара, информация о правилах работы, топ-продажи (товары, пользющиеся повышенным спросом). • Использете ли вы тольо омандно-ориентированные фразы в тестовых сообщениях любой природы (либо фразы, ориентированные на прямые действия)? Например: «Нажмите ноп «Абв», чтобы знать резльтаты» вместо фраз: «При нажатии нопи «Абв» отроется
Оранизация систем элетронной оммерции
41
страница с резльтатами» или «Не нажимайте ноп «Абв», если не хотите знать резльтаты». Важность омандно-ориентированных фраз залючается в том, что они направляют (призывают) пользователя онретным действиям. • Сохраняется ли смысловая последовательность теста при ео версте (очень часто последовательность наршается при использовании таблиц). Правильная последовательность важна для индесирющих машин, причем ее значение бдет возрастать в бдщем (например, это важно для воспроизведения страниц синтезирющими речь системами). Правильная индесация (реистрация в поисовых системах) интернет-маазина — зало спешноо ео продвижения в сети Интернет, при этом важно сохранить последовательность подачи информации при реализации таоо проета. • Стараетесь ли вы использовать нопи с лаолами, нежели иными частями речи (например: «Поазать» вместо «Готово»)? Сажем, в строе поиса информации о товарах рядом со строой можно разместить лавиш начала поиса товара. Таю лавиш лчше назвать «Исать» или «Найти». • Установлен ли соответствющий альтернативный тест на все значимые рафичесие изображения? Отвечает ли этот тест на один из трех (или больше) вопросов: «Что это?», «Что это делает?» и «Что произойдет, если по этом щелнть?» С точи зрения техничесой реализации речь идет об атрибте Alt теа IMG в язые размети ипертеста HTML. Таие всплывающие подсази необходимы для решения двх задач одновременно: если пользователь подводит рсор мыши рафичесом объет (например, нопе) и адает, что слчится при нажатии мыши на этот объет, подсаза поможет сориентировать ео действиям; если пользователь отлючит воспроизведение рафии на своем бразере либо просматривает веб-сайт через системы, прощающие просмотр веб-страниц (например, мобильный интернет), то подсаза поможет сориентировать
42
Системы элетронной оммерции
ео в том, де аая рафиа пристствет на веб-сайте, вместо тоо чтобы обозревать пстые места незарзившейся рафии. • Обладает ли ваш веб-сайт своей справочной системой? В идеале аждый тип страницы должен обладать страницей со справочной информацией (вроде: «Нажмите на эт ноп, чтобы перейти следющем раздел»). Справочная информация необходима а минимм в двх слчаях: пользователя просто нет времени изчать ваш интерфейс и бродить по всем разделам вебсайта в поисах необходимой (срочной) информации; пользователь располаает достаточным временем, однао он потерялся в недрах веб-сайта и не может найти необходимю информацию. В этом слчае может помочь раздел «Карта сайта». Данный раздел может быть оранизован в следющих видах: табличная модель арты сайта (система, при оторой составляется сводная таблица всех разделов, представленных на веб-сайте. Здесь можно применять различные цвета в определенных ячейах таблицы для лчшео выделения степени важности различных разделов, при этом аждая ячейа таой таблицы — ссыла на онретный раздел вебсайта); списочная модель арты сайта (система, при оторой все разделы сайта представлены в виде стртрированноо древовидноо списа, аждый элемент отороо — ссыла на онретный раздел веб-сайта); арта сайта — апплиация (система, оторая наладывает на веб-сайт методом апплиации рисованню арт с тестовыми блоами, поясняющими назначения различных разделов веб-сайта); арта сайта — подсаза (система, основанная на выводе онтестной помощи — всплывающих тестовых подсазо — при подводе мыши различным объетам веб-сайта); олосовая арта сайта (система, основанная на наборе звовых файлов, воспроизведение оторых зависит от положения пользователя на веб-сайте). • Различаются ли цвета пройденных и не пройденных иперссыло? Одно из основополаающих правил ра-
Оранизация систем элетронной оммерции
43
боты (фнционирования) сети Интернет — это визальное различие посещенных и непосещенных ссыло. Исходя из работ одноо из самых известных сторонниов проблемы usability (использования) сети Интернет — Яоба Нильсена, можно залючить, что наршение правила отображения ссыло ведет дезориентации пользователей. Дело в том, что пользователь вседа должен чето знать, де он же был, а де ем еще предстоит побывать. Для этоо, собственно, и была придмана система цветовоо различия пройденных и непройденных ссыло. • Проверили ли вы раммати и орфорафию? Данный вопрос особенно важен при составлении базы данных интернет-маазина. Опечата или ошиба в артиле товара может повлечь птаниц со стороны попателей и привести отаз пользователя приобрести данный товар из-за таоо несоответствия. Однао это асается и любоо дроо теста в интернет-маазине (например, плохая рамматиа в разделах «Наши правила» или «Достава» может бросить тень на чистоплотность администратора интернет-маазина). • Убедились ли вы, что все страницы имеют орретный заолово (title)? Заолово интернет-маазина должен быть ниальным и при этом проходить на всех внтренних страницах веб-сайта, свозь весь интернет-маазин без изменений. За этим необходимо чето следить, т.. строа заолова – это первое, с чео начинается отображение веб-страницы; он должен быть четим, лаоничным и стилистичеси рамотным. • Отражают ли заолови страниц (title) пть пользователя этим страницам? Инода полезно в заоловах вебстраниц (разделов интернет-маазина) азывать пть пользователя определенном раздел интернет-маазина. Однао это можно реализовать и в специально отведенном для этоо месте — в та называемом информационном оне. Правильная оранизация интерфейса поможет пользователю более ибо и быстро работать с аталоом товаров.
44
Системы элетронной оммерции
Полнота размещенной в аталое информации, добная стртра и быстрый поис во мноом определяют спех интернет-маазина в целом. Ведь именно здесь располаается вся достпная потенциальном лиент информация о товаре, оторая должна полностью омпенсировать отстствие реальных образцов и продавца-онсльтанта. Значительню роль здесь мот сырать технолоии 3D, оторые дают возможность «взять в ри» прилянвшийся виртальный образец, осмотреть ео со всех сторон, отрыть рыш и т.п.
Справочная система Наличие на веб-сайте большоо оличества информации о продтах, в свою очередь, требет, чтобы лиенты маазина лео и быстро моли найти требющюся информацию, либо роводствясь стртрой аталоа, либо использя систем поиса. Вообще, создание справочной системы в настоящее время является задачей в области построения интеллетальных систем обработи тестовой информации. Дело в том, что сеодня онтестная справа в виде всплывающих оон с подсазами или отдельной страницы помощи — достаточно старевший подход. Наиболее атальными являются справочные системы, в оторых предсматривается общение на ровне человеа и машины, например системы интеллетальноо поиса информации, де система не имеет привязи отдельным лючевым словам, а работает с естественным языом, на отором общается сам пользователь. На сеодняшний день сществет не та мноо подходов созданию интеллетальных систем обработи тестовой информации. Главные направления в их разработе сводятся выявлению лючевых слов, пар, словосочетаний, отдельных выражений, что приводит попыте построения целостной смысловой стртры отдельноо предложения или всео теста. При этом в ачестве необходимоо словия выстпает создание специальноо словаря, ориентиро-
Оранизация систем элетронной оммерции
45
ванноо на распознавание и точнение отдельных лесем предложения. При создании интеллетальной системы обработи тестовой информации сщественню роль ирает привяза предметной области теста. В связи с этим можно либо создавать ниверсальный словарь, что является весьма длительным и трдоемим процессом, либо ораничивать работ системы рамами предложенной предметной области. Подобный подход созданию систем обработи тестовой информации не защищен от возможных ситаций непонимания (нераспознавания) информации, что может привести ошибочном вывод и даже сбою в работе системы. Та, например, при создании интеллетальной системы обработи поиса информации следет честь, что запрос поиса не вседа может быть выражен пользователем онретным словом или точным словосочетанием. Приведем варианты возможных запросов на поис «авиабилета на рейс Lufthansa из Мосвы в Мюнхен»: а) я ищ авиабилет на рейс авиаомпании Lufthansa из Мосвы в Мюнхен; б) мне необходим билет на самолет авиаомпании Lufthansa до Мюнхена; в) мне нжно добраться до Мюнхена самолетом, желательно авиаомпании Lufthansa; ) мне хотелось бы знать стоимость билета, предпочтительнее авиаомпании Lufthansa, до Германии, например до Мюнхена, и т.д. Ка видно из примера, аждый из приведенных запросов несет свою ниальню смысловю нарз, распознавать оторю приходится своим, частным образом. Например, неоторые интеллетальные системы поиса для однозначности распознавания информации использют ритерии мяости или жестости запроса. При таом подходе пользователь заведомо выбирает та называемый оэффициент оцени тоо или иноо ритерия. Та, при запросе на поис авиабилета пользователь может становить оэффициент «Срочно» на ритерий времени достави билета или оэффициент «Тольо Lufthansa» — на ритерий выбора авиаомпании.
46
Системы элетронной оммерции
Однао подобная система оэффициентов заставляет пользователя быть сильно привязанным и зависимым от них, не позволяя вводить собственные оэффициенты либо вносить точнения поиса. В этой связи тестовая информация, вводимая пользователем и масимально точно отражающая ео запрос, должна быть представлена на близом ем (пользователю) язые, отором он привы и на отором общается повседневно. В настоящее время ведется ативная разработа интеллетальных систем, способных обрабатывать запросы на естественном язые. Подобный подход обработе тестовой информации связан с появлением целоо ряда неоднозначностей и с неопределенностью, т.. пользователь свободен в своих рассждениях, не связан оценами оэффициентов или наборами лючевых слов. Для тоо чтобы интеллетальная система мола достаточно точно «понимать» пользователя, необходимо оранизовать точняющю подсистем, назначением оторой является точнение запроса пользователя, выявление латентных стртр, определение вербальных понятий. Одной из наиболее дачных форм реализации точняющей подсистемы может стать диало, т.. диало является повседневной формой общения человеа в обществе. Таим образом, работа всей интеллетальной системы в целом направлена не на ораничение пользователя набором рамо словий работы, а, напротив, на поржение пользователя в сред, естественню для нео самоо: естественный язы а язы общения с интеллетальной системой; диало – а форма общения с интеллетальной системой. В этом, стати, и залючается интеллет данной системы, т.е. способность поддерживать общение с пользователем на естественном язые и на основе набора лоичесих выводов предоставлять необходимю ем информацию.
Схема создания интелле т!альной справочной системы Задача современной интеллетальной системы – быть независимой от предметной области, т.е. строить лои рассждений пользователя и лои рассждений ответа
Оранизация систем элетронной оммерции
47
системы динамичеси, не основываясь на заранее сформированных информационных словарях. Таим образом можно решить проблем неоднозначности запросов и анализа их форм на естественном язые. В первом приближении стртра подобной интеллетальной системы может быть представлена в следющем виде:
Диалоговая система
ЕЯ Вход
Процессор
ЕЯ Выход
ЕЯ База знаний
В ачестве пояснения этой схеме можно отметить фнциональное назначение ее блоов: 1) ЕЯ вход (вход запроса со стороны пользователя на естественном язые) — это та информация, оторю пользователь непосредственно вводит на естественном язые в ачестве запроса системе; 2) процессор — алоритм (набор алоритмов), по отором осществляются обработа информации на естественном язые и формирование лоичесой модели рассждений; 3) ЕЯ база знаний (база знаний, представленная средствами естественноо языа) — информация, предоставленная инженером по знаниям либо взятая из словленных источниов на естественном язые в ачестве ядра, на оторое ориентирована вся система в целом (перечень сл, справочные статьи и т.п.); 4) диалоовая система — обеспечение общения системы с пользователем в форме диалоа в целях точнения запрашиваемой информации и точнения представляемой системой ответной информации на выходе;
48
Системы элетронной оммерции
5) ЕЯ выход (вывод резльтата поиса, представленный средствами естественноо языа) — информация, оторая выдается системой в ачестве ответной на естественном язые. Таим образом, предлааемая интеллетальная система способна, независимо от предметной области, вести обработ запросов пользователя на естественном язые, поддерживать с ним диало в целях точнения запрашиваемой информации и выдавать ответ, сформлированный средствами естественноо языа. В целях повышения резльтативности работы всей интеллетальной системы в целом предлаается ввести оэффициент понимания. Фнциональное назначение оэффициента понимания — это, с одной стороны, информация для пользователя, насольо правильно система смола «понять» ео запрос и насольо точно система смола дать на нео ответ, а с дрой — информация для инженера по знаниям, насольо точно система «понимает» предметню область. Коэффициент понимания, оторый может быть представлен либо в процентном соотношении, либо в виде визальной шалы, помоает пользователю следить за степенью адеватности работы системы. Иными словами, если система при ответе на запрос пользователя выдает 50% веренности, что данный ответ является правильным, пользователь может точнить запрос или задать наводящие вопросы. Таю систем можно определить а систем с тройной порешностью. Под порешностью имеется в вид исаженное «понимание» информации либо частичная ее потеря. Таая порешность впервые возниает в системе при ее взаимодействии с инженером по знаниям либо при разборе определенной справочной информации. Нельзя арантировать, что информация, представляемая в ачестве базы знаний, бдет распознана машиной абсолютно точно и правильно, т.е. с определением всех латентных стртр. Вторая порешность появляется при анализе запросов пользователя системе. Стоит отметить, что даже при наличии диалоовой подсистемы, назначением оторой а раз и слжит снятие всех неопределенностей, нельзя быть точно веренным, что система правильно «поймет» смысл запроса. Третья по-
Оранизация систем элетронной оммерции
49
решность возниает при выдаче системой онечноо ответа, т.. здесь омпьютер доверяется правильно и рамотно сформлировать свой ответ на язые, понятном челове. Нельзя ислючать тот фатор, что при таоо рода формализации система может исазить первоначальный смысл ответа. Тройная порешность читывается при выводе оэффициента понимания. Таим образом пользователь может онтролировать ход правильной работы системы и сводить ровень порешности до минимма, точняя и онретизиря запрашиваемю информацию. Ядром предлааемой интеллетальной системы является ее процессор. Назначение процессора — производить распознавание теста на естественном язые и строить лоичесю цепоч рассждений и понятий. Сществющие интеллетальные системы в основном основаны на одном из трех возможных птей решения оранизации лоичесой подсистемы: фреймовая система, продционная модель, семантичесая сеть. Посоль целью данноо чебноо пособия не является изчение интеллетальных систем, дадим тольо ратое объяснение, что означает аждый из трех птей решения оранизации лоичесой подсистемы. Термин «фрейм» (от анл. frame — арас, рама) предложен Марвином Минсим, одним из основателей теории интеллетальных систем и иссственноо интеллета. Фреймовая стртра — это абстратный образ для представления неоео стереотипа восприятия. Традиционно стртра фрейма может быть представлена а списо свойств объета. Продционная модель, или модель, основанная на правилах, позволяет представить знания в виде предложений типа: «Если (словие), то (действие)». Семантичесая сеть — это ориентированный раф, вершины отороо — понятия, а ди — отношения межд этими понятиями. В ачестве понятий обычно выстпают абстратные или онретные объеты, а отношения — это связи типа: «Это» («A-Kind-Of», «Is»), «Имеет частью» («Has-Part»), «Принадлежность» («Have») и т.д.
50
Системы элетронной оммерции
Исходя из тоо что предлааемая интеллетальная система должна находить и строить связи межд понятиями, определять отношения межд ними, наиболее добным является использование семантичесой сети. Однао в нашем слчае таая сеть бдет перестраиваться и обновляться динамичеси по ход работы всей системы. Возможно таже и наложение сетей, например в слчае сети, сформированной в резльтате обработи запроса пользователя, и сети, сформированной в резльтате обработи информации из базы знаний, близой запрос. Можно предположить и построение еще одной сети, предназначенной для формализации ответа. Рассмотрим пример построения семантичесой сети, оторю можно использовать а справочню систем аэропорта: допстим, что эсперт заносит в систем следющий фат (F1): Терминал 2 находится на втором этаже. Построим следющю семантичесю сеть:
X1
2
at
X2
Где: X1 — Терминал (не. Сщ.); 2 — номер; at — находится на (причинно-следственная связь); X2 — Этаж (не. Сщ.); Можно задать вопрос (Q1): Где находится терминал? Интерпретация вопроса на машинном язые: where? V1 X1 Где: where? — призна атеории вопроса (де — место нахождения); V1 – не. Глаол; X1 – знаомое системе сщ. (Терминал); Ответ на таой вопрос не бдет однозначным, т.. системе известны несольо терминалов (например, мы знаем точно, де находится терминал 2). Давайте пополним наши знания, введем еще один фат (F2): Терминал 3 расположен ооло выхода, рядом с терминалом 2.
Оранизация систем элетронной оммерции
51
Построение семантичесой сети: X1
2 3
at at
X2 X3
at
Где: X3 — выход (не. Сщ.); 3 — номер; Вопрос пользователя (Q2): Где находится выход? Интерпретация вопроса на машинном язые: where? V1 X3 Рассмотрим ритичесю ситацию (состояние онфлита): эсперт дает следющий фат (F3): Терминал 2 находится на третьем этаже. Построение семантичесой сети: X1
2 3
at at
X2 X3
at
Семантичесая сеть является динамичесой, т.. направления отношений изменяются при аждом пополнении базы знаний. Дадим пояснение приведенной выше модели работы интеллетальной системы на примере фнционирования справочной слжбы аэропорта. На первом этапе эсперт (работни аэропорта) вводит средствами естественноо языа информацию (расположение терминалов, рейсы и т.п.), из оторой впоследствии бдт извлечены данные и знания. На основании извлеченных знаний процессор строит семантичесю сеть. На этом этапе возниает первая порешность оцени адеватности распознавания теста, т.. не ислючается тот слчай, ода процессор не сможет «правильно» распознать информацию, введенню эспертом.
52
Системы элетронной оммерции
Кода семантичесая сеть построена и сформированы все понятия и отношения межд ними с четом азальных связей, начинается обработа запросов со стороны пользователя. На этом (втором) этапе таже идет обработа теста на естественном язые. Задача процессора — понять запрос пользователя и в слчае затрднений попытаться точнить запрос посредством диалоовой системы. В этом состоит причина второй порешности, т.. нет веренности в том, что запрос бдет распознан правильно. Кода запрос распознан и построена семантичесая сеть запроса, она «наладывается» на семантичесю сеть знаний и процессор на основании таоо наложения выстраивает ответ либо рпп ответов. В слчае рппы ответов процессор снова обращается диалоовой системе, оторая просит пользователя онретизировать запрос. Третий этап — этап вывода информации. Ответ системы пользователю таже должен быть сформирован средствами естественноо языа. И здесь снова приходится читывать порешность при выводе информации, т.. нет веренности в том, что процессор правильно соотнес две семантичесие сети и сенерировал тест на естественном язые с точным содержанием вывода. Полчается система с тройной порешностью, плюсом оторой является оцена оэффициента понимания (understanding), оторый читывается на всех этапах работы системы. Например, при вводе теста эспертом система отображает шал понимания (своения системой теста ЕЯ) таим образом, что эсперт понимает, стоит что-либо точнить (дописать) или, наоборот, информация избыточна. На этапе вывода пользователю поазывается степень веренности системы в правильности выданноо ответа, и он может либо повторить вопрос, либо соласиться с мнением системы. Универсальность всей системы залючается в том, что процессор не является адаптированным под определенню предметню область. Таим образом, система может быть внедрена пратичесий в любой сайт в Интернете либо в любю справочню систем. Стоит отметить, что при построении подобной системы в Интернете работа процессора раз-
Оранизация систем элетронной оммерции
53
бивается на работ двх аентов, оторым делеирются полномочия сбора информации эсперта и нахождения ответа на поставленный вопрос со стороны пользователя.
Интернет-маазин на Flash-технолоии? Ка можно бдет видеть далее на страницах данной пблиации, я предлааю реализацию достаточно мощноо современноо интернет-маазина на основе технолоии Macromedia Flash, вернее, даже Adobe Flash, читывая, что в онце 2005 ода омпания Adobe пила омпанию Macromedia. Почем я предлааю построить интернет-маазин именно на Flash?! Чтобы ответить на этот вопрос, давайте разберемся в самом принципе использования Flash в сети Интернет. Одним из наиболее ярых противниов распространения Flash-технолоий является Яоб Нильсен (Jakob Nielsen) – основатель и роводитель омпании Nielsen Norman Group. Слав «ритиа Flash» Яоб Нильсен принесла ео знаменитая статья, опблиованная 29 отября 2000 ода, оторая та и называлась: «Flash неприемлем на 99%». В то время мировое сообщество дизайнеров постепенно разделялось на два лаеря: на тех, то во Flash видели продолжение развития Интернета и пытались использовать ео масимально эффетивно, и на тех, то считали, что Flash, наоборот, способен тольо осложнить пребывание пользователя в Сети. Однао, прежде чем ознаомиться со столь интересной пблиацией Яоба Нильсена, давайте для начала полчим ратю справ о самом авторе. Ита, Яоб Нильсен… Имеет 31 патент, причем большая часть ео изобретений направлена на облечение работы пользователей в Интернете. Автор девяти ни по пользовательсим интерфейсам, Web-дизайн, стртре сайтов и прочим аспетам Web-usability. Кроме тоо, Яоб Нильсен ведет олон «Users First!» на «Ziff-Davis Network», рбрии «Alertbox» — на сайте www.useit.com и «Deconstructing» — в жрнале «Internet World», выстпает и а онсльтант. Собственная омпания Яоба Нильсена Nielsen Norman Group
54
Системы элетронной оммерции
основана им вместе с Дональдом Норманом, бывшим вицепрезидентом Apple Computer. До 1998 ода Яоб Нильсен работал ведщим инженером в Sun Microsystems, был специалистом по Web-usability. Себя он называет адвоатом пользователей и считает лавным и наиболее спешным своим делом борьб на стороне пользователей против «темной стороны Интернета». Стоит таже отметить, что пблиации Яоба Нильсена, а правило, порождают две принципиально противоположные точи зрения на отношение самом автор. Одни считают ео недачниом, дизайнером, не реализовавшим себя на этом поприще. Дрие востораются ео профессионализмом и жадно вчитываются в аждю ео статью. Мне бы не хотелось здесь отстаивать чью-либо точ зрения, хотя справедливости ради нельзя не отметить, что вообще сществет в жизни следющий принцип: если челове хорош в своей профессии (например, в дизайне), то он плохой теорети, т.е. не способен посвятить в свое ремесло чениа. Та же схема действет и в обратном направлении: если челове хороший теорети (преподаватель), то на пратие он оазывается посредственным специалистом. Однао, а мы с вами знаем, жизнь полна интересных людей, признанных профессионалов своео дела, и попыта соотносить их с первым или вторым принципом, по меньшей мере, просто неэтична. Яоб Нильсен — челове, оторый не тольо сделал арьер достаточно спешноо дизайнера и администратора, но и является дизайнером-мыслителем, способным поставить под сомнение любю новю технолоию в Интернете. Признаться честно, немноие решаются на подобные шаи, т.. ораздо проще просто пользоваться же предложенными технолоиями, не задаваясь вопросом о целесообразности всей технолоии в целом. Flash здесь не является ислючением. В то время а большинство дизайнеров не срывали своео востора перед теми возможностями, оторые теперь перед ними отрылись, Яоб Нильсен задмался об обратной стороне использования Flash. В резльтате и появилась ео статья «Flash неприемлем на 99%».
Оранизация систем элетронной оммерции
55
Считаю, что разбор статьи Яоба Нильсена на страницах данной пблиации приходится а нельзя стати по несольим причинам. Во-первых, при же отмеченных выше преимществах Macromedia Flash читателя может сложиться ощщение, что в ео рах находится просто идеальная технолоия, способная реализовать любые ео идеи; однао это не совсем та. Во-вторых, Яоб Нильсен — известный профессионал, и знаомство с ео статьей может дать целый ряд идей о том, а наиболее эффетивно работать с Flash. Наонец, в-третьих: подобных «разромных» статей по отношению Flash написано достаточно мало, и статья Яоба Нильсена в этом отношении является наиболее известной; поэтом нам с вами, а Flash-дизайнерам, бдет нелишним познаомиться и с ритиой в адрес среды разработи Macromedia Flash. Ита, начнем наш анализ. Статья начинается с неоео введения в принцип взаимодействия среды разработи Macromedia Flash и дизайнера-разработчиа. В частности, автор пишет: «Несмотря на то что мльтимедиа проладывает себе доро в Web, современная технолоия Flash хдшает добство пользования Web по трем причинам: она способствет появлению плохоо дизайна, встпает в противоречия с фндаментальными принципами взаимодействия пользователя с Web и полощает ресрсы, оторые моли бы быть использованы на лчшение содержания самоо сайта. Почти в 99% слчаев пристствие Flash затрдняет работ с Web-злом. Хотя и встречаются редие примеры хорошео Flash-дизайна (оторый даже лчшает зел), обычно Flash, наоборот, делает сайт недобным для работы. В большинстве слчаев сайт бы тольо выирывал, если бы на нем отстствовали мльтимедийные объеты. Flash хдшает Web-злы тремя птями: способствет появлению плохоо дизайна, встпает в противоречия с фндаментальными принципами взаимодействия пользователя с Web и полощает ресрсы, оторые моли бы быть использованы на лчшение содержания самоо сайта». Фатичеси с этим трдно не соласиться, т.. на заре использования технолоии Flash разработчии пытались вы-
56
Системы элетронной оммерции
жимать из нее масимм, стремясь перещеолять др дра в онцентрации применения всевозможных эффетов и ориинальных дизайнерсих решений. Резльтат таоо соперничества, а правило, выливался в оромный размер Flashсайтов. Заачивать меабайты информации по тем временам (а в принципе и по нынешним) было достаточной росошью. Более тоо, не аждый пользователь Сети бдет споойно сидеть перед эраном своео монитора и в течение часа наслаждаться надписью что-то вроде: «Подождите, идет зарза…» Все это напрямю относится полощению ресрсов, оторые моли бы быть использованы более рационально. Яоб Нильсен таже ацентирет внимание на неоторых «фндаментальных принципах» взаимодействия пользователя с Web и вопросе «плохоо дизайна». Однао, прежде чем браться за расшифров этих двх понятий, давайте продолжим чтение статьи. «Плохой дизайн. Страницы-застави были бичом Webсайтов на ранних этапах развития Web. К счастью, большинство профессиональных Web-злов отазалось от этоо барьера. Однао теперь мы становимся свидетелями засилья Flashзаставо, оторые страдают теми же рехами: они отдаляют пользователя от информации, за оторой он пришел на сайт. С дрой стороны, большинства Flash-заставо теперь пристствет нопа «Пропстить застав». Однао само пристствие застави хдшает дизайн в следющих отношениях. Во-первых, Flash прямо-таи навязывает использование анимации: та а нас есть возможность анимировать объеты, то почем бы не воспользоваться этой возможностью? У анимации, онечно, есть свое место в оммниации. Однао, а было сазано мной еще в 1995 од, это место весьма ораниченно. Во-вторых, одним из самых лавных преимществ Webзла является то, что он позволяет пользователю самом выбирать направление своео движения. Посетители сайта двиаются та, а им хочется, тода, ода им этоо хочется. Именно поэтом с Web та добно работать, несмотря на наличие дрих недостатов. К сожалению, мноие Flashдизайнеры ораничивают эт свобод пользователей и пре-
Оранизация систем элетронной оммерции
57
вращают сайты в презентации, напоминающие сорее телевизионню релам, чем интеративню прорамм. Web-злы, оторые предлаают посетителям сидеть и просто наслаждаться последовательностью сменяющихся артино, просто счны и томительны, несмотря на то, а рто они вылядят». В ачестве пояснения слов Яоба Нильсена хотелось бы добавить, что, вообще оворя, сществют оммниационные модели достави информации потребителям. В этом отношении преимщество Интернета залючается в возможности интеративноо взаимодействия. В отличие от пассивной, а бы «нисходящей» потребителю модели маретина, в Интернете становится возможным осществить таое взаимодействие поставщиов и лиентов информации, при отором именно последние занимают ативню позицию. При этом они сами мот становиться поставщиами, в частности поставщиами информации о своих потребностях. Однао известно, что Интернет принято относить pull- и pushмоделям одновременно, а мы об этом же оворили. С этой точи зрения традиционные средства массовой информации (телевидение, радио и т.д.) реализют push-модель достави информации потребителю, в оторой он выстпает в ачестве пассивноо полчателя сл. В pull-модели потребитель может делать выбор среди поставщиов информации и отбирать среди них наиболее приемлемый информационный анал. Интернет — взаимодействие двх этих моделей. Однао если ваш сайт преследет цель продолжительноо поаза рафии, по аналоии с реламными ролиами, оторые мы видим на телеэранах, то в этом слчае оворить об интеративном наполнении или реализации pull-модели же, сожалению, не приходится. Пользователям таоо сайта бдет отведена роль пассивноо зрителя. При этом стоит отметить и то, что если в слчае с телевизионной реламой телезрители ее видят «сраз» и мот оперативно менять аналы, то в слчае с Интернетом им придется а минимм ждать зарзи таоо ролиа перед собственно просмотром. Совет, оторый можно здесь дать дизайнерам: прежде чем создавать
58
Системы элетронной оммерции
Flash-проет (сайт, автономню интеративню презентацию), следет задматься, бдет ли это телевизионная релама или интеративная прорамма. И лчше, если вашим выбором станет последнее. С дрой стороны, Интернет сейчас переполнен push-модельным содержимым. Однао вернемся статье Яоба Нильсена: «Третье: мноие Flash-дизайнеры вводят в свои ролии нестандартные элементы правления. Сольо вариантов линейи прорти нам нжно? Вообще-то нам нжна новая линейа прорти для просмотра элетронных тестов. Та линейа, что мы сейчас имеем, создавалась для офисных прорамм, в оторых тест не просматривается, а пишется. Тем не менее создание новоо элемента прорти теста — это большая сложная мноофаторная задача. Те линейи, что мы сейчас видим в Macintosh и Windows, были созданы на основе несольих лет работы лчших дизайнеров после рассмотрения множества дрих вариантов и проведения множества тестов. Новая линейа прорти, созданная за несольо недель, наверняа бдет вылядеть хже. И даже в том слчае, если дизайн оазывается дачным, он не прибавит добства сайт, та а ео посетителю еще надо бдет привынть том, а работает новый элемент. Но пользователи точно знают, а работать со стандартным элементом. Кода вы использете стандартные элементы, посетители мот сосредоточиться на содержании сайта и на том, для чео они на нео зашли. Ша в сторон, и вы заптаете ео». Ка мы с вами знаем, технолоия Flash не предлаает нам стандартных элементов прорти теста или стандартных нопо, по аналоии, а это происходит в HTML. Это приводит том, что на плечи дизайнера возлаается ответственность не тольо за общий дизайн страницы, но и за дизайн элементов правления этой страницей. Примеров дачноо решения двх этих задач в Интернете не та мноо. Порой, наоборот, приходится тратить определенное время тольо на изчение тоо, «а это работает». Ни одна из перечисленных проблем не вызвана самим Flash’ем.
Оранизация систем элетронной оммерции
59
С ео помощью можно создавать и добные мльтимедийные объеты, оторые соответствют правилам и просты в использовании. Проблема в том, что Flash просто подталивает дизайнеров наршению этих заонов и правил. Работа с привычными элементами правления, таими, а «обычная» полоса прорти или нопи Windows, фосирет внимание пользователя непосредственно на информации. Дрой подход решению подобной задачи — это применение вместо названий нопо их питорамм. Незатейливые рисни вместо очертаний привычных нопо работают на подсознании человеа таим же образом, а если бы он работал в знаомой для нео среде приложений под Windows или MacOS. Например, вместо тоо, чтобы писать слова «Вернться назад», можно просто нарисовать изображение домиа или стрели. Данный прием, стати, часто применяемый в Сети, может стать достойным омпромиссом межд применением стандартных элементов интерфейса и абсолютно новых. Главная задача при таом подходе — это построение набора ассоциаций на названия элементов правления сайтом или интеративной презентацией. Однао и здесь можно перестараться и тольо больше заптать пользователя. Вариант «наверняа» — это предложение Яоба Нильсена использовать стандартный пользовательсий интерфейс (GUI — Graphic User Interface). Примеров недачноо пользовательсоо интерфейса, де «все здорово, но ничео не понятно», тоже достаточно мноо представлено в Сети. Далее Яоб Нильсен в своей статье возвращается проблеме наршения основ Web; в частности, он пишет: «Второй набор причин связан с самим использованием plug-in-модля вместо стандартных Web-технолоий. В бдщем мльтимедийные фнции, наверное, более тесно бдт интерированы в бразеры, и эта проблема бдет решена. А сейчас тот фат, что Flash — не стандартный HTML, порождает масс нерешенных проблем. • Кнопа «Back/Назад» не работает. Если вы перемещаетесь внтри Flash-ролиа, стандартные методы «отата» водят вас со страницы, де находится объет, а не на предыдщее состояние, а ожидается.
60
Системы элетронной оммерции
• Цвета ссыло неприменимы. В связи с этим вы не можете быстро определить, де вы же побывали, а де вам еще предстоит побывать. Это недостато приводит заптанности навиации. • Кнопа «Увеличить/Уменьшить тест» не работает. Посетителям приходится читать тест таоо размера, аим ео задал дизайнер. И этот шрифт вседа оазывается меньше, чем хотелось бы, та а дизайнеры вседа обладают прерасным зрением. • Flash затрдняет достп домент людям с физичесими недостатами. • Фнция «Поис на странице» не работает. Вообще с поисом Flash больше проблемы. • Усложняется интернационализация и лоализация сайта. К аждом сайт нжно прирепить Flash-дизайнера, оторый бдет переводить ео содержание. Таже движщийся тест трднее читать тем, оо проблемы с чтением». Ита, давайте проанализирем перечисленные Яобом Нильсеном проблемы работы технолоии Flash. Кнопа «Back/Назад» действительно не поддерживается средой разработи Macromedia Flash. Для пользователей сети Интернет это невосполнимая потеря, т.. действие данной нопи стало привычным со времен появления первых бразеров. Нажатие этой нопи при просмотре Flash-сайтов приводит возвращению на тот сайт, с отороо, собственно, и был осществлен переход на Flash. Именно по этой причине при создании интерфейса любоо Flash-сайта дизайнер обязан предсмотреть возможность возврата в предыдщее положение (на предыдщий раздел сайта); а правило, речь идет о создании дополнительной лавиши «Назад». Цвета ссыло неприменимы. Еще одной основой Web или, если хотите, фндаментальным принципом Сети является возможность ведомления пользователя о том, аие разделы сайта он же посещал, а аие нет. Это происходит за счет изменения цвета ссыли. Например, серым цветом можно отметить ссыли, оторые пользователь же посещал, а чер-
Оранизация систем элетронной оммерции
61
ный цвет ссыло — призна тоо, что они еще не были востребованы. Цвета посещенных и непосещенных ссыло станавливаются разработчиом на этапе формирования HTMLдомента. По молчанию ссыли отмечаются синим цветом. Важно отметить, что данная возможность берет свои истои со времен формирования Интернета и является же репившейся фнцией. Отстствие подобной фнции во Flash доставляет пользователю очевидные недобства. Выход из таоо рода ситации залючается в предсмотрительности Flash-разработчиа, оторый может позаботиться о цветовом (или аом-либо дром) выделении разделов на этапах их посещаемости. Однао на пратие этоо почти нито не делает. Кнопа «Увеличить/Уменьшить тест» не работает. Трдно не соласиться с тем, что одним из наиболее лавных элементов в Сети является собственно тест. При разработе сайтов дизайнер приходится решать лючевые для отображения тестовой информации задачи: вид шрифта, ернин, размер, одирова. Удобство работы с бразером при чтении теста в Сети залючается в выборе размера теста. Это становится особенно атальным при чтении информации с новостных или тематичесих порталов. Инода плохое отображение теста — вина монитора пользователя, однао бывают слчаи, ода пользователь обладает ослабленным зрением, но изменить (величить) размер теста не представляется возможным: Flash-сайт предсматривает отображение теста таоо размера, оторый задан разработчиом при ео создании. Стоит таже отметить, что Flash-player имеет ряд настрое просмотра Flash-содержимоо. Данное меню вызывается нажатием правой лавиши мыши. Фнция величения теста, предлааемая в этих настройах, приводит величению всей онстрции Flash-сайта, а не онретно теста внтри нео. Конечно, при таом эффете лпы тест, а и все остальные элементы сайта, становится рпнее, однао оворить об добстве таоо масштабирования приходится с большим трдом. Более тоо, бывают слчаи, ода разработчии сознательно блоирют возможность вызова подобноо меню. В этом слчае ео вид соращается до одной
62
Системы элетронной оммерции
тольо опции «About…». Кстати, сведению дизайнеров — блоирова меню настрое проирывателя Flash при просмотре Flash-сайтов осществляется следющим образом: необходимо последовательно выбрать пнты меню: File => Publish Settings, затем выбрать влад HTML. Снять «алоч» ооло пнта Display Menu. Альтернативный способ залючается в рчном форматировании HTML-домента. Для этоо необходимо отрыть HTML-файл Flash-проета, добавить параметр в те OBJECT: , а в те EMBED вписать: menu=false. Таим образом, в обоих типах бразеров — Internet Explorer и Netscape Navigator — выпадающее меню проетора Flash бдет отстствовать. Однао хорошо ли это для пользователей — решать вам. То же самое относится и проблеме работы с Flash людям, имеющим физичесие недостати. Известно таже, что Flash неорретно работает с поисом. Может, в этом роется причина, по оторой Flash редо использют для построения поисовых порталов. Прежде всео это связано с относительно слабой поддержой сетевых языов типа CGI или Perl. С дрой стороны, нам известно об интерации Flash и XML. Однао данная проблема до сих пор остается слабым местом среды разработи Macromedia Flash. Мысль о том, что аждом сайт нжно прирепить Flash-дизайнера, оторый бдет переводить, дополнять, поддерживать ео содержание, является одной из наиболее атальных. Действительно, для тоо чтобы хотя бы просто изменить фоновю артин во Flash-сайте, не оворя же о пополнении пнтов меню интерфейса сайта, необходимо а минимм поставить на омпьютер сред разработи Macromedia Flash и начинать разбираться в проете. В HTML этот процесс вылядит несольо проще, т.. редатирование HTML-доментов может выполняться в любом тестовом редаторе, начиная с обычноо «Блонота» Windows. Полчается, что за подобной слой лиент снова придется обращаться Flash-разработчи. В принципе дизайнерсие омпании пратиют таю вещь, а абонентсая плата за поддерж сайта, а в слчае с Flash таая поддержа просто
Оранизация систем элетронной оммерции
63
необходима. Можно относиться этом достаточно споойно, однао безсловно, что это создает определенные недобства для заазчиа. Справедливости ради нжно отметить и то, что Flash трдно назвать примитивной технолоией создания Web-страниц, трдно таже сравнивать Flash с языом размети ипертеста HTML. С этой точи зрения проетирование или редатирование Flash-сайтов, онечно, требет определенноо мения и соответствющих возможностей омпьютера. Залючительная часть статьи Яоба Нильсена посвящена вопросам ресрсов, оторые отвлеает на себя Flash; в частности, он пишет: «Пожалй, самая большая проблема Flash залючается в том, что он отвлеает на себя значительные ресрсы, оторые лчше было бы потратить на лчшение самоо сайта: • на более частое обновление содержания (Flash-ролии создаются раз и навседа); • на создание содержания, оторое отвечает запросам посетителей всех ровней (Flash-ролии создаются один на всех); • на лчшю поддерж лиентов, основанню на анализе их реальных проблем (Flash-ролии создаются обычно сторонними аентствами, оторые не вдаются в тоности онретноо бизнеса). Если бы Flash-презентации были дешевы в исполнении и создавать их было бы та же лео, а стандартные Webстраницы, тода мноие из этих проблем исчезли бы. Сейчас же они представляют серьезные препятствия. Поэтом я реомендю Web-дизайнерам, заинтересованным в повышении добства работы с сайтами, воздерживаться от Flash и использовать ео а можно реже». На таой пессимистичной фразе Яоб Нильсен заанчивает свою статью. Вывод здесь состоит в том, чтобы дизайнер мо наиболее полно оценить возможности и недостати Flash-технолоии. Солашаться с Яобом Нильсеном и не использовать Flash совсем было бы абсолютной лпостью. Но и оворить о том, что все, о чем пишет Яоб Нильсен, по меньшей мере неатально, тоже не приходится. Мы рас-
64
Системы элетронной оммерции
смотрели здесь наиболее очевидные промахи Flash в отношении распространения этой технолоии в сети Интернет. Однао вместе с тем в данной пблиации я постараюсь поазать, насольо Flash можно и нжно применять, для тоо чтобы достичь ориинальности и безпречности ваших Flashрешений. Но зарывать тем Яоба Нильсена тем не менее поа еще рано: время идет, и относительно недавно Яоб Нильсен подписал доовор с омпанией Macromedia о сотрдничестве в отношении создания новой версии, а точнее, о расширении Flash — версии Flash MX. Вероятно, разработчии Flash приняли сведению все преи Яоба Нильсена и решили подлючить ео процесс создания последней версии Flash. Уже после выхода Flash MX Яоб Нильсен пишет еще одн статью — а бы в продолжение предыдщей. Новая статья опблиована 3 июня 2002 ода и называется «Теперь Flash лчшился». В ней Яоб Нильсен, в частности, пишет: «Я ничео не меняю в своей прошлой статье, с одной стороны, для тоо, чтобы отразить историчесий фат, а с дрой — потом, что я придерживаюсь тоо, о чем оворил два ода назад: в 2000 од преобладающее большинство Flash-проетов в сети имели отрицательное влияние на пользователей. 3 июня 2002 ода мы объявили о стратеичесом партнерстве омпаний Macromedia и Nielsen Norman Group, направленном на лчшение использования технолоии Flash: мы собираемся разрабатывать «Роводство по разработе и использованию интернет-приложений, реализованных на Flash MX-технолоии». Версия Flash, представленная в 2002 од (Flash MX), решила мноие из тех техничесих проблем использования, оторые были в предыдщих версиях. Среди них, например, Flash MX поддерживает достп нопе «Назад» в бразере. Очень важным лчшением по работе с Flash теперь является и то, что Flash поставляется вместе со стандартным набором элементов правления интерфейсом: наонец-то больше не бдет произвольных полос прорти, создаваемых разными Flash-дизайнерами.
Оранизация систем элетронной оммерции
65
Мноие лчшения в основе технолоии Flash доазали, что Flash теперь направлен на то, чтобы распространять рамотное использование и применение данной технолоии и, более тоо, в неоторых слчаях на исправление проблем использования. Даже большая омпания по разработе прораммноо обеспечения старается прислшиваться выводам ведщих эспертов по вопросам рациональноо использования прораммных продтов. Все это является тем видом деятельности, с отороо Дональд Норман и я начинали создавать Nielsen Norman Group. Macromedia таже приняла стратеичеси важное решение, направленное на достижение оптимальноо использования Flash, для тоо чтобы создавать интернет-приложения, отличные от тех, оторые превалировали два ода назад, ода я написал рити, ацентиря внимание на недостати во Flash-дизайне. Macromedia сейчас преследет правильню стратеию. Они действительно лчшили технолоию Flash. Все это должно быть направлено на то, чтобы предложить сообществ Flash-разработчиов, принять эти принципы использования Flash в разработе и формировании тещих дизайнов интернет-приложений. Именно поэтом мы сейчас исследем использование интернет-приложений на основе Flashтехнолоии и затем планирем опблиовать роводство по изотовлению хороших пользовательсих Flash-интерфейсов. У меня йдет аое-то время на то, чтобы завершить данное исследование и подотовить таое роводство для миллионной адитории Flash-разработчиов. Я вовлечен в оромное множество высочайшео ачества анализов и изчений использования Flash для этоо важноо проета, что, по сти, может определить фнциональный пть развития всей сети Интернет. Роводство по разработе и использованию интернетприложений бдет представлено на Конференции разработчиов Macromedia в Disney World 27 отября 2002 ода и на Неделе Эффетивноо Использования в Бостоне, Нью-Йоре, Лондоне и Силионовой долине в ноябре-деабре 2002 ода».
66
Системы элетронной оммерции
Ка мы с вами можем видеть, теперь использование Flash-технолоии (на базе Flash MX) тольо приветствется. Велиий союз Яоба Нильсена и Macromedia а раз и призван направить применение Flash на достижение проетов наивысшей эффетивности и ачества. Теперь Flash MX предлаает разработчиам набор стандартных омпонентов, таих, а стандартная (офисная) линейа прорти, тестовая область, нопи и т.д. Однао что это — влияние Яоба Нильсена или собственная идея Macromedia, — сазать действительно трдно. Мне бы тольо хотелось дать вам повод задматься о возможностях эффетивноо создания ваших Flash-приложений. Ка видите, Яоб Нильсен еще в 2000 од дал достаточно «пищи» для размышлений об этом. В полной мере освоив весь инстрментарий Macromedia Flash и одновременно зная о возможных неативных решениях, оторые мот быть полчены с ео помощью, вы способны объетивно оценивать свою работ и в итое достиать впечатляющих резльтатов. «Flash неприемлем на 99%»… Наша с вами задача — изменить этот лозн на диаметрально противоположный, пример: «Flash приемлем на 101%». Способов и технолоий для этоо предостаточно, о мноих из них а раз и пойдет речь в данной пблиации.
Глава 2 ТЕХНОЛОГИЯ MACROMEDIA FLASH API Проетирование приложений под Интернет на основе веторной рафии стараниями омпании Macromedia спешно развивается же на протяжении 10 лет, однао относительно недавно появилась возможность создания и обработи веторной рафии на этапе проетирования, т.е. система API. В настоящее время ведется ативное изчение и внедрение Flash Drawing API-рафии при разработе приложений под Интернет. Главная особенность таих приложений — ибость прораммноо ода, а таже малый объем омпилиремоо файла (а правило, несольо илобайт). В данном проете делается попыта поставить Flash Drawing API на слжб элетронной оммерции, в частности разработать ниальню API-архитетр системы элетронной оммерции атеории B2C на основе технолоии Macromedia Flash. Динамичесая енерация интерфейса представляет собой процесс прораммной отрисови системы меню и навиации по ее разделам, средствами Flash Drawing API на основе информации из базы данных, представленной в тестовом формате. При этом читывается аспет разбора и форматирования информации из базы данных и построения системы интеллетальных лавиш навиации интерфейса.
Что та ое Macromedia Flash? Рассмотрим харатерные черты одной из самых передовых технолоий в построении приложений под Интернет —
68
Системы элетронной оммерции
Macromedia Flash. Данная интеративная среда разработи объединяет три лючевых аспета создания проетов: рафиа (анимация), зв, прораммирование. Графиа — веторная / растровая + различные виды анимации; Зв — форматы mp3 / wav + эффеты и выбор режима воспроизведения (потоовый / событийный); Прораммирование — язы ActionScript. Превосходство Flash: 1) Flash в равной степени приодна для представления интеративноо содержимоо а в Web, та и вне этой среды, (исполняемые exe-файлы, видеофайлы mov/avi, mov VR4). 2) Flash-анимация воспроизводится значительно быстрее, чем альтернативный вид Web-анимации файлов формата GIF [Graphics Interchange Format] (использование веторной рафии, математичесие формлы, описывающие еометричесие фиры и цветовые харатеристии, вместо растра — матрицы орашенных точе). 3) Быстрая анимация даже через соединение, имеющее сорость 14 Кбит/c. 4) Независимость от размера изображения (оманда, определяющая размер + автоматичесое изменение масштаба в соответствии с размером она бразера). 5) Качественные изображение и тест (веторная рафиа «сообщает» омпьютер, аим образом следет рисовать изображение => ачество изображения вседа соответствет масимальном ачеств отображения на данном омпьютере). 6) Простота использования. Пратичесое отстствие препятствий для применения подлючаемых модлей (распространение Flash через специальные plug-in’ы; совместимость Flash с Quick Time 4, Real Audio, Shockwave). Flash позволяет дизайнерам величить объем рафии и предоставляет средства для ее редатирования посредством передачи по сети Интернет веторных изображений. Веторные изображения позволяют меньшить размеры файлов, роме тоо, они имеют релиремое масштабирова-
Технолоия Macromedia Flash API
69
ние. Это значит, что мы можем выбирать способ просмотра файла: например, сохранять пропорции веб-страницы при изменении размеров она бразера. Кроме тоо, Flash позволяет осществлять передач данных в потое, что делает возможным сраз после зарзи отображать неоторые элементы на эране, в то время а драя информация тольо продолжает постпать. Анимация во Flash не ораничивается изображениями анимационных «ероев», анимационные рисни Flash таже слжат для передачи элементов правления, таих, а нопи и меню. Flash позволяет создавать анимацию не тольо для сети Интернет, мы можем таже записывать Flash-ролии на омпат-диси, а таже создавать целые проеционные фильмы и распространять их по элетронной почте или на дисах. Мы можем онвертировать формат Flash в дрие форматы, например Quick Time или AVI среды Windows. Но основной задачей Flash остается создание и оформление веб-сайтов. Предшественницей Flash была Future Splash Animator — небольшая прорамма для создания и анимации веторной рафии. В 1997 од омпания Macromedia выпила прорамм Future Splash, изменила ее название на Flash и представила последнюю а средство для создания рафии в сети Интернет. Прорамма Flash, являясь средством веб-дизайна, влючает все необходимые инстрменты для создания и анимации рафии, интеративных элементов и элементов интерфейса, а таже для работы с HTML-одировой и отображения рафии и элементов интерфейса веб-страницы в бразере. Стандартные прораммы для работы с риснами, например Macromedia FreeHand и Adobe Illustrator, создают веторные формы при помощи метода описания ривой. Кроме аналоичных инстрментов, Flash предлаает еще инстрменты для рисования, оторые позволяют работать с веторной рафиой более простым способом, без мареров или особых точе на линии. Инстрменты для рисования Flash обеспечивают реалистичность изображения, оторю та ценят хдожнии. Эти инстрменты мот приодиться и обычным пользователям, не меющим чертить прямю линию без помощи специальной прораммы.
70
Системы элетронной оммерции
Flash помоает начинающим рисовать простые анимационные артини, но любой челове, оторый хорошо знаом с анимацией, с помощью инстрментов Flash может полчить довольно сложные видеоролии. Язы ActionScript имеет несольо режимов, предназначенных для создания различных интеративных объетов. ActionScript — достаточно мощный язы прораммирования, т.. он позволяет разрабатывать сложные интерфейсы и элементы дизайна прорамм. Flash позволяет обрабатывать звовые и видеофайлы, что помоает нам оформить веб-сайты еще лчше, чем стандартные возможности языа HTML. С аждой последющей версией Flash омпания Macromedia добавляет новые фнции, расширяющие возможности прораммы по созданию анимации и интеративных элементов, сохраняя при этом простые в использовании инстрменты для рисования. Flash обладает потоовой передачей информации. Дело в том, что мноие пользователи сети Интернет не ждт завершения зарзи всео сайта, особенно если последний влючает большое оличество риснов или звовоо оформления. Flash отправляет информацию с сайта по сети Интернет в форме потоа. Передача данных в потое приводит том, что после зарзи части веторной рафии с сайта Flash сможет мновенно отобразить ее. При этом зарза дрих элементов еще бдет продолжаться. В то время а Flash поазывает первые адры нашео фильма, последющие адры продолжают заржаться на омпьютер пользователя и отображаются в соответствющем поряде. Если мы правильно спланирем фильм, постпающие адры не бдт наладываться на же отображаемые и пользователь видит тольо непрерывню последовательность изображений. Для создания иллюзии движения Flash использет стандартные технолоии анимации. Мы выполняем серию неподвижных риснов, аждый из оторых немноо отличается от соседних. Птем быстроо поаза изображений одноо за дрим возниает иллюзия непрерывноо движения. Инстрменты анимации Flash помоают создавать, оранизовы-
Технолоия Macromedia Flash API
71
вать и синхронизировать анимацию различных рафичесих элементов, звовых файлов и видеолипов. Особая фнция прораммы Flash создает необходимю HTML-одиров для отображения анимации в веб-бразере. Эта фнция таже позволяет выбрать альтернативный способ отображения видеоролиа — в виде анимационных риснов в формате GIF или в формате QuickTime — и затем создает соответствющие файлы. Flash представляет собой а сред для создания анимации, та и систем поаза изображения, оторю мы можем использовать для просмотра анимации на лоальном омпьютере или в веб-бразере. Создание анимации и интеративных элементов происходит в файлах формата Flash. В среде Windows таие файлы имеют расширение .fla. Чтобы полчить видеоролии для просмотра, мы можем онвертировать файлы в формат Flash-рlayer, — де они полчат расширение .swf.
Flash Drawing API В новых версиях Flash (MX, 8 Pro) был заметно модернизирован. Сеодня рыно информационных технолоий значительно вырос, и серьезный Flash-прораммист должен точно знать, что он делает и для чео. Flash позволяет пользователям создавать веб-решения и оболочи, оторые отличаются от стандартных подходов веб-дизайн. В более ранних версиях Flash создание рафии в режиме run-time (на этапе исполнения прораммы) было невозможно без предопределенных символов и манипляций ими с помощью ода. Размеется, мы моли взять рисно из библиотеи и делать с ним интересные вещи, но мы были сильно ораничены в возможности создавать полезные, динамичесие рисни, не нарисовав их перед этим врчню. Один из первых проетов, оторые создают все пользователи Flash, — это прорамма для рисования, однао быстро становится ясно, что на площади 100× 100 писелей с помощью тоной линии и дблиатов фильмов можно нарисовать не слишом мноо интересноо.
72
Системы элетронной оммерции
Теперь Macromedia Flash предоставляет возможность создания рафии в режиме run-time, и эта возможность ниальна, т.. ниде больше создание динамичесих риснов не осществляется именно та, а во Flash. С использованием рисования API (Application Programming Interface) и новых методов фильмов createEmptyMovieClip и createTextField пользователи Flash теперь мот прораммировать и создавать все что одно, начиная с нопо и форм и заанчивая приложениями для рисования и целыми интерфейсами, без рчноо предварительноо рисования. Рассмотрим работ механизма Flash Drawing API — новю возможность Flash, позволяющю создавать новое рафичесое содержимое «на лет». Мы начнем с описания следющих слчаев применения API-рисования: • рисование прямых и ривых линий; • залива области сплошным цветом или радиентом. Для рисования прямой линии с помощью API-рисования необходимо знать следющее: 1. У аждоо фильма есть тещая позиция рисования, оторая может быть становлена с помощью фнции moveTo. Каждый фильм инициализирется в позиции рисования по молчанию (0,0). 2. Каждый фильм имеет параметр lineStyle, оторый определяет внешний вид всех линий, имеющихся в фильме. Если не настраивать параметр lineStyle, ни одна нарисованная нами линия не бдет отображаться. Ита, рассмотрим все основные методы Drawing API более подробно.
Метод lineStyle Метод lineStyle (стиль линии) задает толщин, цвет и прозрачность штриха для черчения на этапе исполнения (runtime). В общем слчае данный метод имеет следющий вид: lineStyle(thickness, RGB, alpha) Рассмотрим арменты данноо метода: • thickness — целое число — толщина линии в точах в диапазоне от 0 до 255, причем 0 задает линию с толщиной
Технолоия Macromedia Flash API
73
hairline. Если армент не задан, линии не чертятся. Значения меньше 0 интерпретирются а 0, а больше 255 — а 255. • RGB — целое число, харатеризющее цвет линии, обычно в формате шестнадцатеричной тройи RGB — 0× RRGGBB, де RR, GG и BB — это двзначные шестнадцатеричные числа, представляющие расню, зеленю и синюю составляющие. Например, шестнадцатеричное число 0× FF0000 задает расный цвет. Если армент не задан, то по молчанию принимается черный цвет. • Alpha — целое число в диапазоне от 0 до 100, задающее степень непрозрачности (или, наоборот, прозрачности) фиры в процентах: 0 соответствет полной прозрачности, а 100 — полной непрозрачности. По молчанию принимается равным 100. Значения больше 100 интерпретирются а 100, а меньше 0 интерпретирются а 0. Метод lineStyle станавливает толщин, цвет и прозрачность штриха для всех последющих вычерчиваний в липе с помощью методов рисования Drawing API.
Метод lineTo Метод lineTo вычерчивает прямю линию на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: lineTo(x, y) Рассмотрим арменты данноо метода: • x — число с плавающей точой. Горизонтальная оордината онечной точи линии, оторю требется провести. Измеряется относительно точи реистрации липа. • y — число с плавающей точой. Вертиальная оордината онечной точи линии, оторю требется провести. Измеряется относительно точи реистрации липа.
74
Системы элетронной оммерции
Метод lineTo проводит прямю линию от тещео положения пера до точи (x,y). Харатеристии штриха линии (толщина, цвет и прозрачность) определяются последним обращением lineStyle.
Метод curveTo Метод curveTo вычерчивает ривю линию на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: curveTo(controlX, controlY, anchorX, anchorY) Рассмотрим арменты данноо метода: • controlX — число с плавающей точой — оризонтальная оордината онтрольной точи вадратичной ривой Безье. Измеряется относительно точи реистрации липа. • controlY — число с плавающей точой — вертиальная оордината онтрольной точи вадратичной ривой Безье. Измеряется относительно точи реистрации липа. • anchorX — число с плавающей точой — оризонтальная оордината онечной точи вычерчиваемой ривой. Измеряется относительно точи реистрации липа. • anchorY — число с плавающей точой — вертиальная оордината онечной точи вычерчиваемой ривой. Измеряется относительно точи реистрации липа. Метод curveTo вычерчивает вадратичню ривю Безье из тещей позиции пера в точ (anchorX, anchorY), основываясь на внешней онтрольной точе (controlX, controlY). Через эт онтрольню точ проходят асательные ривой в ее начальной и онечной точах. Можно сазать, что прямая, оторая соединила бы начальню позицию пера с онечной точой (anchorX, anchorY), оттяивается онтрольной точой (controlX, controlY), в резльтате чео образется ривая.
Метод clear Метод clear даляет из липа все содержимое, созданное с помощью Drawing API на этапе исполнения прораммы
Технолоия Macromedia Flash API
75
(run-time). В общем слчае данный метод имеет следющий вид: clear() Метод clear работает без дополнительных арментов, он даляет все линии (онтры) и фиры (залив), созданные в липе с помощью методов рисования Drawing API, не троая содержимое, созданное в среде разработи Flash. Он таже сбрасывает тещий стиль линии и возвращает перо в положение (0,0).
Метод beginFill Метод beginFill начинает вычерчивать фир со сплошной заливой на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: beginFill(RGB, alpha) Рассмотрим арменты данноо метода: • RGB — целое число, харатеризющее цвет линии, обычно в формате шестнадцатеричной тройи RGB — 0× RRGGBB, де RR, GG и BB — это двзначные шестнадцатеричные числа, представляющие расню, зеленю и синюю составляющие. Например, шестнадцатеричное число 0× FF0000 задает расный цвет. Если армент не задан, то по молчанию принимается черный цвет. • Alpha — целое число в диапазоне от 0 до 100, задающее степень непрозрачности (или, наоборот, прозрачности) фиры в процентах: 0 соответствет полной прозрачности, а 100 — полной непрозрачности. По молчанию принимается равным 100. Значения больше 100 интерпретирются а 100, а меньше 0 интерпретирются а 0. Входящий в состав Drawing API метод beginFill начинает вычерчивание внтри липа новой фиры со сплошной заливой RGB и прозрачностью alpha. Эта фира чертится поверх любоо содержимоо липа, созданноо Drawing API, но под всем остальным содержимым липа, размещенным на стадии разработи. Метод beginFill составляет лишь одн часть процедры вычерчивания фиры. Drawing API можно представить а старый перьевой рафопостроитель (вроде
76
Системы элетронной оммерции
тех, на оторых исполнялись архитетрные чертежи), оснащенный воображаемым пером, оторое можно поднимать, опсать и перемещать, чтобы вычерчивать прямые и ривые линии. Чтобы начертить зарашенню фир, beginFill следет применить в сочетании с дрими методами черчения, например: 1. Установить перо в нжное положение с помощью moveTo. 2. Начать черчение фиры, вызвав метод beginFill. 3. Очертить фир с помощью ряда вызовов lineTo и / или curveTo, последний из оторых должен заончиться в той точе, оторая была задана в начальном вызове moveTo. 4. Завершить вычерчивание фиры, вызвав endFill.
Метод endFill Метод endFill завершает залив, начатю beginFill (или beginGradientFill) на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: endFill() Метод endFill работает без дополнительных арментов, он завершает залив фиры, начатю предшествющим обращением beginFill или beginGradientFill, вызывая появление фиры на эране. Если тещее положение пера не совпадает с ео положением при вызове beginFill или beginGradientFill, Flash замыает фир прямой линией и применяет залив. Однао создание незамнтых фир может привести непредсаземым резльтатам, и прибеать нем не реомендется.
Метод beginGradientFill Метод beginGradientFill начинает черчение фиры с радиентной заливой на этапе исполнения прораммы (runtime). В общем слчае данный метод имеет следющий вид: beginGradientFill(fillType, colors, alphas, ratios, matrix)
Технолоия Macromedia Flash API
77
Рассмотрим арменты данноо метода: • fillType — строа, задающая тип радиента, «linear» или «radial». Если задать дрое значение, радиент не выводится. • colors — массив целых чисел, задающий цвета радиента. Обычно задается в виде шестнадцатеричной тройи RGB — 0× RRGGBB, де RR, GG и BB — это двзначные шестнадцатеричные цифры, представляющие расню, зеленю и синюю составляющие. Например, шестнадцатеричное число 0× FF0000 задает расный цвет. • alphas — массив целых чисел в диапазоне от 0 до 100, задающих степень непрозрачности (или, наоборот, прозрачности) фиры в процентах: 0 соответствет полной прозрачности, а 100 — полной непрозрачности. По молчанию принимается равным 100. Значения больше 100 интерпретирются а 100, а меньше 0 интерпретирются а 0. Если оличество элементов в массиве alphas не совпадает с оличеством элементов в массиве colors, радиент не выводится. • ratios — массив целых чисел, задающий пространственное распределение цветов в радиенте по шале от 0 до 255. Каждый элемент массива задает относительное положение, в отором соответствющий цвет из массива colors бдет поазан а чистый несмешанный цвет. Если оличество элементов в массиве ratios не совпадает с оличеством элементов в массиве colors, радиент не выводится. • matrix — объет, задающий положение, размер, поворот и налон радиента. Объет может быть одноо из двх видов: простая вадратная рама, в оторой положение, размер, поворот и налон радиента задаются с помощью интитивно понятных свойств, либо матрица преобразования размером 3× 3, отображающая единичный радиент с центром в точе (0,0) в оончательные положение, размер, поворот и налон. Ка и beginFill, метод beginGradientFill начинает черчение фиры, но зарашивает ее линейным или радиальным радиентом, а не сплошным цветом. Определением типа радиента,
78
Системы элетронной оммерции
положения, размера и ла поворота правляют параметры fillType, colors, alphas, ratios и matrix. Зарашенная фира чертится поверх любоо содержимоо липа, созданноо Drawing API, но под всем остальным содержимым липа, размещенным на стадии разработи. Та же, а и для beginFill, вычерчивание фиры с радиентной заливой начинается с вызова moveTo, задающео начальню точ онтра фиры. Затем мы вызываем beginGradientFill, чтобы начать черчение и определить атрибты радиента. После этоо чертим онтр с помощью вызовов lineTo и / или curveTo. Градиент и фира теоретичеси отделены др от дра, а если бы они размещались на двх разных ровнях, причем радиент находился бы под фирой. Фира выстпает в роли отверстия, через оторое виден радиент (то есть радиент «сеается» фирой). Например, если нарисовать вадрат размером 100× 100 в точе (25,0) и двхцветный линейный радиент размером 75× 300 в точе (0,0), то смешанная часть радиента зайдет в вадрат на 50 писелей, а остальная часть вадрата бдет зарашена цветом правоо фронта радиента.
Метод createEmptyMovieClip При разработе сложных интерфейсов использование средств рисования в режиме run-time оазывается недостаточным. Необходимы механизмы, способные динамичеси создавать онтейнеры (липы) для хранения определенных данных, а таже динамичесие тестовые поля для работы с тестом. Рассмотрим эти методы Drawing API. Метод createEmptyMovieClip создает пстой эземпляр липа на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: createEmptyMovieClip(instanceName, depth) Рассмотрим арменты данноо метода: • instanceName — строа с именем эземпляра для создаваемоо липа. Имя должно довлетворять правилам создания идентифиаторов языа ActionScript. Для тоо чтобы ативизировать подсазчи ода в среде раз-
Технолоия Macromedia Flash API
79
работи Flash, можно влючить в имя эземпляра сффис «_mc» — movie clip. • depth — целое число от –16384 до 1048575 влючительно, задающее ровень, на оторый должен быть помещен новый лип. Клипы с большей лбиной зарывают липы с меньшей лбиной, поэтом лип с лбиной 6 находится перед липом с лбиной 5, расположенным перед липом с лбиной 4, и т.д. Глбины, превосходящие по модлю –1, зарезервированы для динамичеси создаваемоо содержимоо, поэтом, а правило, в createEmptyMovieClip азывается значение лбины от 0 до 1048575. Однао для создания динамичесоо содержимоо, оторое должно оазаться в липе ниже любоо содержимоо среды разработи (например, для фона этапа исполнения), следет задавать лбин –16384. Глбины от –16383 до –1 влючительно зарезервированы для содержимоо, создаваемоо на этапе разработи, и не должны использоваться в createEmptyMovieClip. Метод createEmptyMovieClip создает новый, пстой эземпляр липа и прирепляет ео тещем лип на заданной лбине depth. Если тещий лип представляет собой лавный фильм, то новый эземпляр помещается в верхний левый ол сцены. Если же тещий лип — это эземпляр липа, то новый эземпляр помещается в точ реистрации тещео липа. Новый эземпляр располаается в стее содержимоо тещео липа на ровне, заданном depth, даляя прежнее ео содержимое, если оно там есть. Данный метод применяется для создания содержимоо на этапе исполнения без обращения аим-либо символам библиотеи.
Метод createTextField Метод createTextField создает новый объет по обработе теста на этапе исполнения прораммы (run-time). В общем слчае данный метод имеет следющий вид: createTextField(instanceName, depth, x, y, width, height)
80
Системы элетронной оммерции
Рассмотрим арменты данноо метода: • instanceName — строа с именем эземпляра для создаваемоо тестовоо поля. Имя должно довлетворять правилам создания идентифиаторов языа ActionScript. Для тоо чтобы ативизировать подсазчи ода в среде разработи Flash, можно влючить в имя тестовоо поля сффис «_txt» — text. • depth — целое число от –16384 до 1048575 влючительно, задающее ровень, на оторый должно быть помещено новое тестовое поле в тещем липе. Клипы с большей лбиной зарывают липы с меньшей лбиной, поэтом лип с лбиной 6 находится перед липом с лбиной 5, расположенным перед липом с лбиной 4, и т.д. Глбины, превосходящие по модлю –1, зарезервированы для динамичеси создаваемоо содержимоо, поэтом, а правило, в createTextField азывается значение лбины от 0 до 1048575. Однао для создания динамичесоо содержимоо, оторое должно оазаться в липе ниже любоо содержимоо среды разработи (например, для фона этапа исполнения), следет задавать лбин –16384. Глбины от –16383 до –1 влючительно зарезервированы для содержимоо, создаваемоо на этапе разработи, и не должны использоваться в createTextField. • x — число с плавающей точой, задающее (в писелях) оризонтальню позицию левоо рая создаваемоо тестовоо поля относительно пространства оординат тещео липа. • y — число с плавающей точой, задающее (в писелях) вертиальню позицию верхнео рая создаваемоо тестовоо поля относительно пространства оординат тещео липа. • width — число с плавающей точой, задающее (в писелях) ширин рами создаваемоо тестовоо поля. • height — число с плавающей точой, задающее (в писелях) высот рами создаваемоо тестовоо поля. Метод createTextField создает на эране объет — динамичесое тестовое поле (TextField) новоо тестовоо поля
Технолоия Macromedia Flash API
81
с именем instanceName, — правляемый посредством ActionScript. Это эвивалент этапа исполнения для создания тестовоо поля инстрментами Text в среде разработи Flash. Если тещий лип представляет собой лавный фильм, то новое тестовое поле помещается в точ (x,y) относительно левоо верхнео ла сцены. Если же тещий лип — это эземпляр липа, то новое тестовое поле помещается в точ (x,y) относительно точи реистрации тещео липа. Новое тестовое поле располаается в стее содержимоо тещео липа на ровне, заданном depth, даляя прежнее ео содержимое. По молчанию свойство type тестовоо поля полчает значение dynamic. Созданным тестовым полем можно правлять посредством методов и свойств ласса TextField.
Глава 3 СХЕМА ПОСТРОЕНИЯ ИНТЕРНЕТ-МАГАЗИНА Пристпая рассмотрению схемы построения интернетмаазина, обозначим основные разделы системы. Предлааемая API-архитетра состоит из следющих основных модлей: • база данных (файл TXT); • система санирования базы данных для полчения информации о построении интерфейса интернет-маазина; • система построения интерфейса методами Drawing API, влючая анимацию интерфейса с имитацией 3D-рафии (анимированное меню типа «арсель»); • система построения правления интерфейсом, создание интеллетальных лавиш и системы подсазо (система типа «джойсти»); • система поиса товара в маазине с четом релевантности резльтатов поиса; • система реализации орзины попателя с возможностью редатирования ее содержимоо; • система сбора информации о попателе, енерации зааза и отправи зааза менеджер маазина через e-mail; • система настрое интернет-маазина администратором через файл TXT; • система обработи рса словной единицы и расчета финансовой прибыли с аждоо зааза.
Схема построения интернет-маазина
83
Схема построения Схема построения подобной системы в первом приближении может быть представлена следющим образом: Блок пользовательских настроек (AS-файл)
База данных (например, TXT-файл)
API-обработчик
Система поиска товара
Пользовательский интерфейс интернет-магазина с системой навигации по его разделам
Обработка заказа через e-mail
Гибость таоо подхода основана на прораммном построении всех рафичесих элементов на основе настрое администратора маазина в сочетании с тестовым наполнением рафии из базы данных. Этим достиается возможность динамичесоо изменения цвета и размера лавиш системы меню, их формы, шрифтовых параметров теста на лавишах. Более тоо, при частичном изменении или полной замене базы данных происходит автоматичесая реенерация всео интерфейса интернет-маазина на основе новых значений оличества вложений системы меню, оранизации таблицы (дерева) разделов маазина, а таже обеспечения навиации на основе применения интеллетальных лавиш.
База данных База данных предлааемой системы имеет собственню стртр, отличню от использемых в настоящее время, и реализована в виде обычноо файла формата TXT. Идея построения таой базы данных была изложена еще в 2001 од Джерри Бранденба (Jerry Bradenbaugh O’REILLY 2001), она залючается в использовании разделителей (delimiters) для
84
Системы элетронной оммерции
отдельных ее полей. Однао в предлааемой системе эта идея значительно совершенствована, т.. в ней был применен свой собственный формальный язы размети. Например, если необходимо, чтобы в интернет-маазине фирма-производитель определенноо товара выводилась не а тест, а в ачестве иперссыли на ее веб-сайт, то для этоо достаточно в базе данных азать специальный префис вывода. Таже база данных содержит названия всех разделов интернет-маазина, всех вложений системы меню, т.. на этапе санирования базы данных происходит процесс енерации всео интерфейса интернет-маазина. Испытания поазали, что таая оранизация базы данных хорошо подходит для 1500 наименований товаров и больше. Здесь таже решается вопрос продолжения нормальной работы интернет-маазина при низих соростях работы сети, а таже работа в режиме off-line. Это достиается за счет тоо, что база данных опирется на пользовательсий омпьютер на этапе первой зарзи интернет-маазина (50—100 Кб). При этом читывается вопрос ценообразования, т.. цены в базе данных динамичеси пересчитываются системой с четом всех нацено и сидо, пользователь не может полчить реальный прайс-лист маазина. При частичном изменении или полной замене базы данных происходит автоматичесая реенерация всео интерфейса интернет-маазина на основе новых значений оличества вложений системы меню, оранизации таблицы (дерева) разделов маазина, а таже обеспечения навиации на основе применения интеллетальных лавиш. Более детально схема построения подобной системы может быть представлена следющим образом. Стртра базы данных, а можно видеть из схемы, основана на применении специальноо префиса ’#’ , реламентирющео раницы разделов интернет-маазина. Количество символов ’#’ реламентирет ровни вложений системы меню. Таим образом, база данных представляет собой селет всео бдщео интерфейса маазина. Фатичеси есть возможность создания неоео формальноо языа для использования внтри базы данных маазина, реламен-
Схема построения интернет-маазина
База данных (TXT-файл) Структура: ###Первый главный раздел ##Раздел 1 #Первый подраздел раздела 1 ... #Второй подраздел раздела 1 ... ##Раздел 2 #Первый подраздел раздела 2 ... #Второй подраздел раздела 2 ... ###Второй главный раздел ...
85
Настройки администратора (AS-файл): — форма клавиши — цвет клавиши — шрифт текста — количество — управление программой анимации интерфейса ...
API-обработчик Библиотека методов Flash Drawing Динамический генератор интерфейса Создание навигации по разделам системы меню
тирющео различные свойства работы системы. Полчается, что можно не тольо задавать разделы маазина, но и ссыли на веб-сайты производителей товаров или разделители межд названиями разделов ириллицей и латиницей. К пример, символ ’|’ может слжить разделителем межд названием раздела маазина и ссылой на веб-сайт производителя товара, представленноо в данном разделе. При этом соответствющая запись в базе данных может вылядеть следющим образом: ###ПРИНТЕРЫ HP|http://www.hp.com
Система навиации В предлааемой системе навиация реализована в виде прораммноо анимированноо меню типа «арсель», оторое динамичеси енерирется на этапе санирования базы данных. Таим образом, система аждый раз создает новое
86
Системы элетронной оммерции
меню на основе оличества вложений системы меню, оличества разделов и подразделов, их названий и параметров, полченных из базы данных. Анимация системы призвана обеспечить дозированню подач разделов интерфейса с целью соратить время на адаптацию пользователя системе разделов товаров и обеспечить более «налядню» работ с элетронным аталоом. Прораммное создание рафии начинается после чета всех настрое администратора интернет-маазина. Здесь таже стоит отметить, что API-технолоия позволяет создавать не тольо статичесие объеты, а, например, отрисова набора лавиш заданной формы, размера и цвета, выстроенных в столби, а таже дает возможность ативноо внедрения прораммной анимации API-рафии. Таим образом, можно реализовать анимацию (вращение) отдельных разделов меню при переходе от одноо раздела системы меню дром. Возможность анимации интерфейса и, более тоо, онтроль таой анимации позволяют создавать ниальные интерфейсы новоо пооления, т.. задача анимации стандартной растровой рафии возможна тольо при подлючении Java / VBScript и DHTML-технолоий. При этом встает вопрос совместимости меж-бразерности и росс-платформенности таих приложений. В нашей системе вопрос совместимости решается стандартом Flash, т.е. наличием пользователя прораммноо расширения Flash-player, оторый, а известно, входит в постав с основными известными бразерами, таими, а Internet Explorer, Netscape Navigator или Safari.
Интелле т!альные лавиши Концепция реализации интеллетальных лавиш была впервые изложена в пблиации Macintosh Human Interface Guidelines от омпании Apple Macintosh. Однао в предлааемом проете она была переработана в соответствии с APIархитетрой. Под интеллетальностью понимается отображение лавиш навиации по интерфейс тольо в слчае их реальной надобности, а таже реализация динамичесоо
Схема построения интернет-маазина
87
тестовоо поля, отображающео состояние работы лавиш в аждый момент времени. Главная задача интеллетальных лавиш залючается в повышении вопроса usability интернет-маазина. При проетировании интерфейсов возниает таже задача обеспечения по возможности масимально добной навиацией по разделам маазина. Одним из возможных способов повышения использования интерфейса (interface usability) является создание системы интеллетальных лавиш правления системой меню. Под словом «интеллетальность» здесь понимается зависимость визальноо восприятия лавиш навиации от степени их важности в тещий момент работы интернет-маазина, а таже наличие онтестноо информационноо она состояния о работе лавиш. В самом простом слчае это может быть ситация, при оторой пользователь видит на эране набор из 10 лавиш системы меню, и при этом он может выбрать поаз следющих 10 лавиш, если всео в данном интернет-маазине представлено более 10 разделов продции. Здесь нет надобности постоянно поазывать лавиш «вниз» или «след. разделы». Имеет смысл сделать динамичесю лавиш, оторая становится ативной тольо в слчае ее реальной надобности. Та, например, если в системе меню имеются дополнительные лавиши с разделами, то лавиша поаза следющих разделов ативна (визально и техничеси), если дальше ничео нет, то лавиша пассивна. При попыте создания неоей ниверсальной системы навиации в API-интерфейсе было предложено сделать систем джойстиа, т.е. набор лавиш перемещения по разделам (вперед, назад, вверх, вниз), с полным четом их интеллетальности. Предлааемая система джойстиа может быть представлена в следющем виде:
Окно состояния о разделах меню
88
Системы элетронной оммерции
Из предложенной схемы видно, что джойсти состоит из трех основных лавиш перехода в иерархии разделов маазина (назад, вверх, вниз), а таже информационноо она состояния о разделах системы меню. Следовательно, пользователь вседа может оценить свое местоположение в сложной иерархии подразделов интернет-маазина. Естественно, что таая система навиации не может сществовать сама по себе, т.. она является неотъемлемой частью всей системы динамичесой енерации интерфейса. Таим образом, можно создать полноценню систем навиации на основе использования интеллетальных лавиш методами Flash Drawing API.
Поис Система поиса товаров основана на механизме релярных выражений, оторый поддерживается Flash через подлючаемый модль, созданный Павилсом Юрьянсом (Pavils Jurjans). Однао данный механизм был расширен системой оцени релевантности резльтатов поиса. Таим образом, поисовый механизм может выделить из введенной строи лючевые слова, провести поис по всем разделам базы данных и вывести полченные резльтаты в поряде релевантности.
Настрой и Необходимые настройи работы всей системы определяются в отдельном файле формата TXT. Здесь возможно полное цветовое и позиционное изменение рафичесоо онтента проета, онтроль над всеми подсистемами маазина, влючая сорость анимации интерфейса, рс словной единицы, оличество стро таблицы отображения товаров, размер отрываемоо отдельноо она — поаза товара, расчет финансовой прибыли маазина, изменение всех питорамм, применяемых в маазине, и т.д.
Схема построения интернет-маазина
89
Обработ а за азов Систем обработи заазов предлаается реализовать а взаимодействие работы орзины попателя и идентифиацию самоо попателя. Таим образом, ода орзина сформирована и попатель заполнил все необходимые поля реистрационной информации, срабатывает PHP (Hypertext Preprocessor) модль, задача отороо полчить всю информацию от Flash и сформировать e-mail-письмо на адрес менеджера интернет-маазина.
Совместимость В предлааемой системе вопрос совместимости решается стандартом Flash, т.е. наличием пользователя прораммноо расширения Flash-player, оторый, а известно, входит в постав с основными известными бразерами, таими, а Internet Explorer, Netscape Navigator или Safari. Отрицательная сторона таоо подхода залючается в том, что таая система оазывается в прямой зависимости от онфирации системы омпьютера пользователя. В резльтате испытаний выяснилось, что система может свободно работать на омпьютерах не ниже Pentium II и оперативной памятью не ниже 64 Mb. Однао это ораничение частично снимается, если мы отазываемся от возможности прораммной анимации системы меню, т.е. останавливаемся на динамичесой енерации статичесоо интерфейса.
Тестирование В ходе проетирования предлааемой системы на основе API-архитетры было создано 15 прораммных модлей, реализющих все перечисленные выше подсистемы интернет-маазина. Тестирование предлааемой системы было реализовано на примере построения системы элетронной оммерции атеории B2C по продаже элитноо спиртноо в сети Интернет «Ма Вина», оторая работает в демонстрационном режиме (www.sommelier.ru/shop). Основа маазина — тестовая база данных из 1200 товаров.
Глава 4 РЕАЛИЗАЦИЯ ИНТЕРНЕТ-МАГАЗИНА Интернет-маазин состоит из 15 прораммных модлей, аждый из оторых отвечает за работ определенных фнций и является составляющей частью всей системы в целом. Архитетра системы строена таим образом, что она позволяет отлючение определенных модлей в слчае, если они необязательны при проетировании определенной системы. Та, например, если в интернет-маазине нет необходимости в поисе товара или в анимационной системе меню, то администратор интернет-маазина может отлючить определенные модли, ответственные за работ перечисленных фнциональных возможностей. Возможно таже дополнение интернет-маазина новыми модлями, например создание модля оранизации работы системы интеллетальных товаров, т.е. реализация системы перерестноо маретина.
Мод!ль базы данных (base.as) База данных в представляемой системе является «сердцем» всео интернет-маазина, т.. она позволяет не тольо оранизовать элетронный атало товаров, продаваемых в интернет-маазине, но и построить общий интерфейс работы интернет-маазина с определением набора свойств и параметров ео работы. База данных может быть оранизована либо в тестовом формате TXT, либо в тестовом сриптовом формате для Macromedia Flash — AS (ActionScript).
Реализация интернет-маазина
91
Стртра таоо тестовоо файла одинаовая для обоих форматов, однао пратиа поазывает, что подлючаемые файлы с расширением AS во Flash работают быстрее, чем подлючаемые файлы с расширением TXT. Однао реальная сорость обработи файлов зависит от их объема. Чем больше товаров бдет описано в таой базе данных, тем больше времени необходимо затратить прорамме на ее обработ. В ходе тестирования системы было отмечено, что обработа базы данных по райней мере с 1500 товарами не вызывает особых трдностей на омпьютерах Pentium II и выше. Создание базы данных может быть выполнено пратичеси в любом тестовом редаторе, например «Блонот» (Notepad for Windows). Описание базы данных начинается с объявления онтейнера, содержащео всю баз данных системы. Base = [] ; Данная онстрция на язые прораммирования ActionScript представляет собой объявление массива данных с именем base. Далее следют описания товаров и разделов интернет-маазина. Идея стртрирования разделов интернетмаазина залючается в описании ровней вложений меню. Это описание может быть выполнено за счет внедрения в баз данных формальноо языа описания стртры интернет-маазина. При этом сам формальный язы описания является достаточно ниверсальным, т.. на стадии проетирования системы он позволяет добавлять новые примитивы в целях реализации новых возможностей описания базы данных и работы всео интернет-маазина. Рассмотрим набор возможностей формальноо языа описания предлааемой базы данных. Список литералов формального языка описания меню интерфейса #
инициализация нового раздела интернет-магазина
*
перевод каретки на новую строку (аналог тега
в HTML), используется для написания названия раздела латинскими буквами на одной строке и кириллицей на другой
92
Системы элетронной оммерции (Окончание) |
разделитель между названием раздела и ссылкой на сайт производителя товара
?
инициализация исполняемого раздела, т.е. раздела, который ведет не на группу товаров, а на служебные разделы, такие, как «новости», «доставка», «правила работы» и т.д.
|
(в исполняемом разделе) — разделитель между ссылкой на графический файл, необходимый для графического наполнения исполняемого раздела, и ссылкой на текстовый файл, содержащий информационное наполнение раздела
Список литералов формального языка описания товаров |
разделитель между различными полями базы данных товаров
*
признак комментария товаров — товар имеется в базе данных, но не отображается в электронном каталоге
Вычисление товара Каждой записи в базе данных ставится в соответствие число, определяющее номер строи в базе данных, в оторой прописана данная запись. Таим образом, номер записи может однозначно определить место положения онретной записи в базе данных. Товар в базе данных, а правило, располаается на несольих строах и использет несольо записей, в зависимости от ассортимента продции, представленной в интернет-маазине. Под разделом товаров бдем понимать рпп товаров определенноо свойства или мари. Для описания определенноо раздела товара нет необходимости перечислять все номера всех стро в базе данных, на оторых располаается данный раздел. Для этоо достаточно азать номер строи базы данных, с оторой начинается описание данноо раздела и номер строи, де, соответственно, описание данноо раздела заанчивается. Определим пар чисел начальноо и онечноо описания раздела товаров а min_v и max_v соответственно. Таим об-
Реализация интернет-маазина
93
разом, идентифиация раздела товара определяется парой чисел min_v и max_v, определяющих минимальное и масимальное значение диапазона описания данноо раздела в базе данных. Полчается, что: • вычисление строи в базе данных = n (число, номер строи); • вычисление раздела (рппы товаров) = {min_v, max_v}. Длина всей базы данных может определить оличество всех товаров и разделов, описанных в базе данных. Однао, для тоо чтобы система мола «извлечь» товар из базы данных, оазывается недостаточным тольо азать диапазон расположения товара, т.., использя номера стро, система полчает достп лишь тестовым строам, содержащим полное описание товара, влючая название, артил, наличие на сладе, цен, ссыл на изображение. Здесь необходимо начить систем распознавать различные поля базы данных, т.е. лассифицировать различные признаи описания товара, например де цена товара, а де ео вес. Для этоо в базе данных использется специальный символ разделителя < | >, описанный еще Джерри Бранденба в ео ние по построению интернет-маазинов. Разделитель (delimiter) помоает становить раницы полей базы данных и тем самым разраничить все свойства описания товара. Теперь, обратившись нжном товар через диапазон значений раздела, в отором он находится, система может ориентироваться по разделителям, аие поля в базе данных задействованы в ео описании. Например: "Riesling Clos Rebberg AOC 'Aux Vignes' *Рислинг Кло Ребберг АОС 'О Винь'|Белое|2001| 0.750|*|32.40|IMAGES/SMALL/closduval.jpg"
Данная строа базы данных описывает определенный товар в интернет-маазине (вино мари Riesling Clo Rebberg AOC, белое, 2001 ода выпса, объемом 0.750, по цене 32.40 за бтыл, и ссыла на рафичесое изображение данноо товара). Задача системы — разобрать подобню тестовю стро, использя разделители, на составные части (подстрои), аждая из оторых определяет свою харатеристи-
94
Системы элетронной оммерции
товара. Полчается, что в общем слчае база данных может иметь вид: base = [ ”##категория 1”, ”#подкатегория 1”, ”товар1|артикул|описание|наличие|цена|ссылка на изображение”, ... ”#подкатегория 1.1”, ”товар1.1|артикул|описание|наличие|цена|ссылка на изображение”, ... ”##категория 2” ... ”##категория n” ... ];
В представленном шаблоне базы данных использется всео два вложения базы данных, однао на самом деле система может иметь неораниченное оличество вложений. В ходе испытаний работы системы было выставлено ооло 120 вложений системы, и при этом работа всей системы происходила в обычном поряде. Количество полей базы данных (разделителей в аждой строе) может быть таже неораниченно и, более тоо, изменяться в зависимости от потребностей описания товаров в разделах. В более общем слчае стртра базы данных может быть описана следющим образом: base = [ ”# * n (где n — количество вложений системы меню)”, ”# * (n-1)|ссылка на сайт производителя, если есть”, ”название товара|артикул|описание|наличие|цена| ссылка на изображение”, ... ”# * (n-1)|ссылка на сайт производителя, если есть”, ”название товара|артикул|описание|наличие|цена| ссылка на изображение”, ...
Реализация интернет-маазина
95
”# * n (где n — количество вложений системы меню)? название исполняемого раздела”, ”ссылка на текстовый файл|ссылка на изображение”, ... ];
Механизм обработи системой аждой строи базы данных и извлечение из стро, описывающих товары, подстро, описывающих определенные свойства товаров, бдем называть процессом перевода данных из базы данных в «рабочие» данные. Рабочие данные означают то, что с ними же можно производить различные операции и действия, таие, а перерасчет цены товара при изменении ео оличества, поис товара по различным ео свойствам и параметрам, зарза файла изображения товара по названию данноо файла. Все это становится возможным тольо после перевода стро из базы данных в рабочие данные, т.. эти данные больше не являются строами, описывающими все вместе, а являются элементами массива, содержащео все свойства товаров по отдельности. Данный процесс реализован в виде специальной фнции, оторая называется convert_data. На вход таой фнции подаются два значения — минимальное и масимальное значения диапазона раздела определенноо товара, а задача самой фнции — найти данный товар и перевести ео в рабочие данные, т.е. сформировать массив со всеми описаниями свойств данноо товара. Посоль база данных содержит не тольо описание названий разделов и товаров, в них содержащихся, она описывает таже названия тех разделов, в оторых не содержится описание товаров, а имеется слжебная информация в виде теста и рафии. Здесь речь идет о таих разделах, а «новости», «достава», «правила работы», «онтаты» и т.п. Для словности бдем называть таие разделы исполняемыми, т.е. разделы, для оторых не нжно предварительноо специальноо перевода в рабочие данные, вместо этоо содержимое этих разделов сраз «исполняется» и отображается на эране. Здесь важно для аждоо исполняемоо раздела в базе данных прописать ссыл на тестовый и рафичесий файлы ео онтентноо содержания.
96
Системы элетронной оммерции
Признаом исполняемоо раздела в базе данных является символ < ? >.
С анирование базы данных (database_scan.as) Предназначение данноо модля, а, собственно, с нео и начинается работа всей системы, залючается в первоначальном санировании базы данных и обеспечении навиации по разделам всео интернет-маазина. Процесс санирования базы данных залючается в определении оличества вложений системы меню, наличия исполняемых и неисполняемых разделов, а таже запса процесса форматирования полченной информации. Форматирование — это процесс разбора найденной в базе данных информации на предмет использованных в ней литералов формальноо языа описания базы данных. Та, например, форматирование определяет, пристствет ли ириллица и (или) латиница в описаниях названий разделов и стоит ли использовать перевод арети при их выводе на эран, пристствет ли ссыла на сайт производителя товара или нет, и т.п. Таим образом, система при санировании базы данных начинает же на первом этапе обрабатывать полченню строовю информацию в соответствии с формальным языом описания самой базы данных. Для этоо в данном модле была определена фнция get_item_names_and_numbers, на вход оторой подаются следющие параметры: • levels_n — оличество вложений системы меню; • n_min — минимальное значение диапазона раздела товара; • n_max — масимальное значение диапазона раздела товара. На выходе данной фнции формирется массив данных, названный local, оторый аждой записи ставит в соответствие пять параметров (имена пнтов меню и диапазоны их значений): • ссыла на сайт производителя (если есть); • имя раздела (латинсими бвами и ириллицей);
Реализация интернет-маазина
97
• имя раздела (ириллицей отдельно, если становлен префис); • минимальное значение диапазона раздела товара; • масимальное значение диапазона раздела товара. При отстствии аоо-либо значения из приведенных выше система возвращает значение –1. Первая часть данной фнции вылядит следющим образом: function get_item_names_and_numbers(levels_n, n_min, n_max) { // Создание префикса поиска — строки, состоящей из // последовательности символов '#', при этом // более высокому уровню соответствует большее количество // символов '#', более низкому — меньшее; // переменная query содержит строку префикса query=””; for (i=1; i, а более низом — меньшее. Можно было построить данню систем и наоборот, т.е. более низом — большее оличество решето, а более высоом — меньшее, однао при этом системе пришлось бы лишний раз санировать всю баз данных целиом для выяснения самоо большоо оличества вложений меню. Причем это необходимо было делать при аждой новой зарзе всео интернет-маазина. Учитывая, что база данных может быть достаточно вншительных размеров, данный процесс мо сильно затормозить работ всей системы. В нашем слчае из первой строи в базе данных же ясно, сольо вложений всео в интернет-маазине, т.е. оличество решето в названии первоо раздела. После формирования переменной query система ищет в базе данных все записи с одинаовым оличеством решето, равным оличеств решето в самой переменной query, и формирет массив result. Массив result заполняется следющим образом: • записывается название найденноо раздела; • минимальное значение диапазона товаров в найденном разделе; • масимальное значение диапазона товаров в найденном разделе. Таим образом, система же может начать формирование бдщео интерфейса интернет-маазина: сольо разделов отображать и да они должны азывать. Вторая часть данноо модля залючается в форматировании найденной информации по следющей схеме форматирования:
Реализация интернет-маазина
Да
Ищем символ |
STR — ссылка на сайт производителя
Да
Латиница кириллица с пробелом
99
Нет
STR — –1
Ищем символ *
Нет
Латиница кириллица без пробела –1
Запись минимального значения диапазона Запись максимального значения диапазона Заполнение массива local
Представленный процесс форматирования прораммно реализован в следющем виде: local = new Array(); // Счетчик итераций k = 0; //инициализация строк для работы с форматирова//нием
100
Системы элетронной оммерции
str=str_p1=str_2=str_p3=str_p4=””; for (j=0; j и < * >. Первый из них определяет, есть ли в названии раздела ссыла на сайт производителя товаров в данном разделе или нет. Второй определяет формат отображения названия раздела в нопе бдщео интерфейса (ириллица или латиница или все вместе). При этом, при отстствии аоо-либо литерала, фнция возвращает число –1 — призна отстствия определенноо параметра в описании базы данных. Таим образом, пользователь может не описывать вообще ниаих ссыло в базе данных, и при этом система верно обработает все разделы и товары. Резльтат работы фнции — формирование массива local, оторый аждом раздел ставит в соответствие пять параметров: • ссыла на сайт производителя (если есть); • имя раздела (латинсими бвами и ириллицей); • имя раздела (ириллицей отдельно, если становлен префис);
102
Системы элетронной оммерции
• минимальное значение диапазона раздела товара; • масимальное значение диапазона раздела товара. Полчается, что на этом этапе система же обладает информацией о том, аие разделы следет выводить в меню бдщео интерфейса и да данные разделы бдт азывать.
Построение интерфейса (button_instance.as) На этапе, ода система располаает информацией, аой интерфейс следет строить на эране пользователя, аие там бдт разделы, их названия, да они бдт азывать, возниает необходимость в рафичесой реализации самоо интерфейса. Графичесая реализация интерфейса интернетмаазина представляет собой ативное подлючение механизма обработи run-time-рафии средствами Drawing API. Начало данноо модля залючается в создании прототипа нопи — мастер-объета (master object) и последющем создании эземпляров данноо прототипа (instance object) в оличестве, необходимом для построения всео интерфейса. Приведем прораммный од начала рассматриваемоо модля: // инициализация переменной количества вложений системы меню (изменяемой) levels_n=how_many_items; // инициализация массива минимального и максимального значений диапазона // для работы клавиши НАЗАД на джойстике управления old_values = new Array(); //Создание экземпляра кнопки интерфейса методами Drawing API //при этом принято задавать в имени экземпляра клипа //суффикс _mc (Movie Clip) this.createEmptyMovieClip(“mybutton_mc”,0); with (this.mybutton_mc) { //настройка стиля линии (толщина, цвет, прозрачность)
Реализация интернет-маазина
103
lineStyle(1, button_line_color, 50); //положение точки начала рисования moveTo(button_pos,0); //настройка цвета заливки //отрисовка линий lineTo(button_width+button_pos,0); lineTo(button_width+button_pos,button_height); lineTo(button_pos,button_height); lineTo(button_pos,0); endFill(); moveTo(button_pos+2,2); beginFill(button_fill_color,75); lineTo(button_width+button_pos-2,2); lineTo(button_width+button_pos-2,button_height-2); lineTo(button_pos+2,button_height-2); lineTo(button_pos+2,2); } //скрыть экземпляр кнопки (мастер-объект), видимыми должны быть только дубликаты mybutton_mc._alpha = 0;
Ка можно видеть из ода, здесь для создания прототипа нопи бдщео интерфейса использется фнция создания пстоо липа — онтейнера для бдщей нопи createEmptyMovieClip. Затем станавливаются нжные толщина, цвет и прозрачность штриха для бдщей прораммной отрисови нопи. Стоит обратить внимание на то, что цвет азывается в виде переменной, вместо онретноо значения в шестнадцатеричном формате. Это связано с тем, что значение цвета нопо лчше предоставить бдщем администратор интернет-маазина в виде переменной (button_line_color), оторю он сможет настроить по своем смотрению в отдельном файле настрое интернет-маазина. То же самое асается и цвета заливи нопи — button_fill_color, а таже размера нопи, высоты и ширины (button_height и button_width) и места положения нопи в интерфейсе button_pos. Полчается, что мы не просто сделали прораммню енерацию мастер-объета нопи, а еще сделали ее масимально «ибой» для возможных изменений со стороны администратора интернет-маазина.
104
Системы элетронной оммерции
В этом а раз и залючается ниальность API-архитетры, т.. она позволяет создавать run-time-объеты с произвольными (изменяемыми) настройами. Та а видимыми должны быть тольо эземпляры (дблиаты) нашео прототипа нопи, мы срываем наш мастер-объет, делая ео прозрачным. Таим образом, мы рафичеси создали ниальный мастер-объет, отовый дальнейшем тиражированию и использованию. Однао поа таой мастер-объет еще не является нопой, т.е. не обладает набором реаций на действия мыши (положения рсора), а является лишь рафичесой оболочой бдщей нопи. Для тоо чтобы данный объет превратить в полноценню ноп бдщео интерфейса, необходимо определить а минимм три пользовательсих события мыши: onPress, onRollOver и onRollOut (нажатие мыши на ноп, подвод мыши на ноп и отвод мыши от нопи). Рассмотрим продолжение прораммноо ода, оторый, собственно, и реализет перечисленные выше события для нашео мастер-объета. //функция для обработки события подвода курсора //мыши на кнопку function roll_over(name) { name.onRollOver = function() { with (name) { //очистка экрана от предыдущего API-рисования //необходима для избежания перегрузки API-рисования clear(); //процесс отрисовки (перерисовки кнопки) //настройка стиля линии (толщина, цвет, прозрачность) lineStyle(1, button_line_color, 50); moveTo(button_pos,0); lineTo(button_width+button_pos,0); lineTo(button_width+button_pos,button_height); lineTo(button_pos,button_height); lineTo(button_pos,0); endFill(); moveTo(button_pos+2,2); beginFill(button_fill_color2,75); lineTo(button_width+button_pos-2,2);
Реализация интернет-маазина
105
lineTo(button_width+button_pos-2,button_height-2); lineTo(button_pos+2,button_height-2); lineTo(button_pos+2,2); } }} //функция для обработки события отвода курсора мыши от кнопки function roll_out(name) { name.onRollOut = function() { with (name) { //очистка экрана от предыдущего API-рисования //необходима для избежания перегрузки API-рисования clear(); //процесс отрисовки (перерисовки кнопки) //настройка стиля линии (толщина, цвет, прозрачность) lineStyle(1, button_line_color, 50); //положение точки начала рисования moveTo(button_pos,0); lineTo(button_width+button_pos,0); lineTo(button_width+button_pos,button_height); lineTo(button_pos,button_height); lineTo(button_pos,0); endFill(); moveTo(button_pos+2,2); beginFill(button_fill_color,75); lineTo(button_width+button_pos-2,2); lineTo(button_width+button_pos-2,button_height2); lineTo(button_pos+2,button_height-2); lineTo(button_pos+2,2); } }} switch_action=0;
Данный прораммный од определяет два события мыши: onRollOver и onRollOut, т.е. фнции подвода и отвода рсора мыши на ноп. Для этоо были реализованы две фнции: roll_over и roll_out. Параметром для обеих фн-
106
Системы элетронной оммерции
ций слжит переменная name — имя тещей нопи, для оторой необходимо обработать онретное событие. Механизм работы данных фнций залючается в рафичесой перерисове нопо методами Drawing API при обработе событий мыши. Причем данные фнции являются ниальными для всех бдщих лавиш интерфейса, независимо от их оличества. Это объясняется тем, что мы в ачестве параметра для этих фнций передаем названия нопо, оторые в бдщем бдт сенерированы автоматичеси для произвольноо оличества самих нопо. Таим образом, API-архитетра позволяет один раз определить все необходимые нам события нопо, а дальше заниматься их мнооратным использованием. Стоит таже обратить внимание и на то, что сама рафичесая Drawing API-отрисова реализована достаточно «ибо», т.е. с применением набора переменных онтроля высоты, ширины, положения, цвета онтра и цвета заливи нопи. Наибольшю трдность представляет реализация события нажатия на ноп — onPress. Дело в том, что здесь нам необходимо один раз прописать неий ниверсальный од, оторый должен орретно работать при различном оличестве самих нопо. Естественно, что вариант, при отором мы должны создавать для 50 нопо 50 фнций обработи события нажатия на аждю лавиш, нам не подходит. API-архитетра может решить вопрос создания ниверсальноо события onPress следющим образом: function on_press(name,min_v,max_v,link_n,item_n1,item_n2) { name.onPress = function() { //удаление поля ввода количества товара, если оно было вызвано clear(); _root[“submit_quantity”].clear(); _root.submit_input.removeTextField(); _root.quantity_input.removeTextField(); _root.basket_message.removeTextField(); //удаление формы оформления заказа, если она была
Реализация интернет-маазина
107
removeMovieClip(«myregistration»); //установка слушателя обработки события нажатия клавиши ENTER (для поиска) Key.addListener(_root[“search_quantity”]); //инициализация переменной, указывающей сектор магазина, который будет показан //0 — выбор товара | 1 — корзина sector_change=0; //обработка вызова исполняемого раздела if (max_v eq “?”) { //удаление клавиш УДАЛИТЬ ИЗ КОРЗИНЫ и ИЗМЕНИТЬ КОЛИЧЕСТВО //если до вызова исполняемого раздела мы находились в разделе “корзина” for (j=old_value; jnumber_of_buttons) { quant=number_of_buttons; } for (i=1; i. Однао при достпе объетам, таим, а динамичесие тестовые поля и run-time-объеты Drawing API, вместо точи использется оператор вадратные соби < […] >. Та, например, при присвоении нопе ее названия использется следющая онстрция: _root[“newbutton_mc”+i][“submit”+i].text= local[j+s]+newline+local[j+1+s];
Таим образом, мы можем присвоить любом оличеств нопо их тестовые названия. Процесс дблирования мастер-объета, т.е. создания ряда эземпляров нопи ориинала, осществляется методом duplicateMovieClip, оторый имеет следющие параметры: • имя липа ориинала (мастер-объета); • имя липа опии (аждой опии свое ниальное имя); • номер слоя, на отором бдет располааться полченная опия (аждая опия должна иметь свой собственный слой). В нашем слчае необходимо таже сделать все дблиаты видимыми, т.. наш родительсий объет (мастер-объет) мы специально сделали невидимым. При этом на эране бразера можно бдет наблюдать рафичесю отрисов заданноо в переменной quant оличества нопо (рис. 5). Важно таже отметить, что форматирование самих динамичесих тестовых полей на нопах, оторые а раз и определяют нжные надписи, в API-архитетре определяется через объет TextFormat. В нашем прораммном оде
116
Системы элетронной оммерции
Рис. 5
Реализация интернет-маазина
117
бло форматирования теста на нопах, т.е. становление нжноо шрифта, размера бв, центрирования, цвета теста определяется следющим образом: format = new TextFormat(); format.align=”center”; format.bold=true; format.size=button_text_size; format.font=button_text_font; format.color=button_text_color; //присвоение всех настроек текстового поля надписи _root[“newbutton_mc”+i][“submit”+i].setTextFormat( format);
Здесь переменная format определяет онстртор создания объета форматирования динамичесоо тестовоо поля TextFormat. Стоит обратить внимание на то, что размер теста, использемый шрифт и цвет определяются в виде переменных button_text_size, button_text_font и button_text_color соответственно. Все эти переменные определяются пристрастиями администратора интернет-маазина. Таим образом, стоит еще раз подчернть ибость подхода обработе теста в API-архитетре. Присвоение всех настрое тестовоо поля онретной надписи на нопе реализовано во Flash встроенной фнцией setTextFormat. Последнее, что делает рассматриваемый прораммный модль, — это присвоение всех объявленных и описанных фнций всем нопам интерфейса. Roll_over(_root[“newbutton_mc”+i]); roll_out(_root[“newbutton_mc”+i]); on_press(_root[“newbutton_mc”+i],local[j+2+s], local[j+3+s],local[j-1+s],local[j+s],local[j+1+s]);
Реализация таоо присвоения основывается на вызове соответствющих фнций в циле прораммы с азанием динамичеси сенерированных имен, т.е. аждой i-й нопе присваивается вызов всех трех ниверсальных фнций. Таим образом, мы построили интерфейс из произвольноо оличества нопо, обеспечивающий переход по разделам внтри интерфейса, а таже вызов определенных разделов товаров из базы данных.
118
Системы элетронной оммерции
Создание джойсти а навиации интерфейса (control_menu.as) Назначение джойстиа навиации залючается в том, чтобы обеспечить возможность перемещения попателя по разделам меню интерфейса. Джойсти состоит из следющих омпонентов: • лавиша НАЗАД — для перемещения назад в иерархии вложений меню; • лавиша ВВЕРХ — для перемещения вверх в иерархии вложений меню; • лавиша ВНИЗ — для перемещения вниз в иерархии вложений меню; • информационное табло — для подсазо направления действия лавиш. Джойсти навиации неотъемлемо связан с интерфейсом системы, т.. обеспечивает ее правильню и орретню работ. Ео вид в предлааемой системе представлен на рис. 6. С точи зрения прораммной реализации джойстиа правления сначала создаются три правляющие лавиши НАЗАД, ВНИЗ и ВВЕРХ соответственно. Рассмотрим создание этих лавиш подробнее. Реализация лавиши назад: //создание клавиши НАЗАД drawArrow(«back»,401,0,0,0); //событие клавиши НАЗАД back.onPress = function() { //инициализация сектора отображения магазина — сектор просмотра товаров sector_change=0; if (levels_n+1 > how_many_items) {} else { move_left(); //изменение текущего названия раздела на предыдущее //в главном информационном окне //при этом происходит проверка — был ли выбор минимального подраздела магазина
Реализация интернет-маазина
Рис. 6
119
120
Системы элетронной оммерции
//если да (name_swt=1), то необходимо удалить из массива названий разделов 2 элемента: //название минимального подраздела + название самого раздела //пр. ПРОДУКТЫ => СЫР | КОЛБАСА => ОСТАНКИНСКАЯ | ДОКТОРСКАЯ (кликаем) ДОКТОРСКАЯ //при этом вернуться мы должны на ПРОДУКТЫ if (name_swt==1) {where_i_am(-1,””,””,0); where_i_am(-1,””,””,0);} else { where_i_am(-1,””,””,0); } //удаление старых кнопок в случае, если происходит переход //в другой раздел магазина; переменная oldquant — хранит //количество старых кнопок for (i=1; i how_many_items) { } else { show_nav(“НАЗАД”); } } back.onRollOut = function() { show_nav(“НАВИГАЦИЯ”); }
Сначала идет отрисова самой лавиши НАЗАД методами Drawing API. Это реализовано методом drawArrow, назначение отороо — вывести на эран питорамм стрелочи (равностороннео треольниа). Данный метод (описанный в отдельном модле) имеет следющие параметры: • name — имя тещео липа со стрелочой; • i — номер слоя, на отором располаается тещий лип со стрелочой;
Реализация интернет-маазина
121
• x — оризонтальная оордината тещео липа; • y — вертиальная оордината тещео липа; • rotate — ол поворота липа в радианах (направление стрелочи). Таим образом, на эране строится питорамма стрелочи бдщей лавиши НАЗАД. Затем данной питорамме присваивается обработа события нажатия на ноп onPress. Данная фнция начинается с инициализации сетора отображения маазина sector_change = 0, это означает, что пользователь находится в разделе выбора товаров через интерфейс в элетронном аталое. Затем происходит провера на оличество разделов, т.е. система определяет, имеются ли разделы, оторым нжно вернться при перемещении НАЗАД, или пользователь и та находится в самом начале. Если есть да возвращаться, система запсает анимацию меню типа «арсель» влево (назад) move_left() и производит соответствющие изменения в лавном информационном оне, де меняются названия разделов, отда и да перемещается (возвращается) пользователь. При этом читывается следющая возможная ситация: был ли выбор минимальноо подраздела маазина, если да (name_swt=1), то необходимо далить из массива названий разделов два элемента: название минимальноо подраздела + название самоо раздела, например ПРОДУКТЫ => СЫР | КОЛБАСА => ОСТАНКИНСКАЯ | ДОКТОРСКАЯ (лиаем) ДОКТОРСКАЯ, при этом вернться мы должны на ПРОДУКТЫ. Удаление названий разделов происходит методом where_i_am, оторый вызывается следющими параметрами: • link — ссыла на сайт производителя (если азана в базе данных); • name1 — название раздела ириллицей; • name2 — название раздела латиницей; • l — направление поаза (1 — поазываем название следющео раздела, т.е. идем вниз по дерев разделов; 0 — поазываем название предыдщео раздела, т.е. идем вверх по дерев разделов). Таим образом, для даления названий разделов мы использем вызов фнции а where_i_am(-1, »», »», 0). Пос-
122
Системы элетронной оммерции
ле этоо система производит инремент (величение) ровня вложений системы меню levels_n, т.. мы переходим на более высоий ровень иерархии разделов интерфейса. Затем мы обращаемся фнции get_item_names_and_numbers, оторая начнет процесс построения новоо интерфейса. После определения события onPress на нопе НАЗАД следет таже определить события onRollOver и onRollOut, назначение оторых — выводить подсази о действиях лавиши. Аналоично построена лавиша ВНИЗ. //создание клавиши ВНИЗ drawArrow(«down»,403,300,88,30); //событие клавиши ВНИЗ down.onPress = function() { //удаление старых кнопок for (i=1; ishows+1) { //инкремент количества показов (1 показ = количество кнопок отображения) shows++; //вызов проверки необходимости показа всех клавиш джойстика validate_navigation(); //подсчет измененного количества показов n2=shows*number_of_buttons; //создать следующие кнопки _root.create_menu(local.length/5-n2); //отображение правильной подсказки в информационном табло if ((local.length/5(shows+1)*number_of_buttons). Прораммная реализация данной фнции вылядит следющим образом: function convert_data (k_local_min, k_local_max) { //инициализация массива хранения «рабочих» данных localarray = new Array(); k2=0; for (k=k_local_min; k, т.. это разделитель, использемый в базе данных для приндительноо перехода на новю стро (анало теа BR в HTML). Однао здесь возниает проблема идентифиации таоо разделителя, т.. в нашей базе данных таой же символ еще использется и для префиса наличия товара на сладе. Именно поэтом в начале поиса разделителя стоит провера на то, чтобы он не являлся префисом. If (localarray[k3].length 1) { if (localarray[k3].indexOf(“*”) -1) {…
Ка можно видеть из прораммноо ода, проверяется, не равна ли вся строа одном символ (а в слчае префиса а раз равна), а таже есть ли там вообще этот символ (может быть ситация, ода длина строи равна одном символ, но этот символ не разделитель, а, например, цена товара, состоящая из одной цифры). Если найден разделитель и он не является префисом наличия на сладе, прорамма вставляет приндительный переход на новю строч: localarray[k3] = str+newline+str2;
Реализация интернет-маазина
139
Затем происходит поис самоо префиса наличия на сладе. Особенность данноо префиса состоит в том, что этот префис сам по себе не выводится в таблице товаров, он необходим для принятия решения — выводить этот товар или нет. Этот бло прораммы начинается с поиса префиса (в аой переменной? В аом поле?). Использование префиса наличия на сладе < * > основано на принципе: если префис стоит, следовательно, товар нжно выводить в таблице товаров перед попателем; если в базе данных ео нет, следовательно, товар временно резервирется системой и не выводится визально. Каое поле в базе данных использовать под префис — решать администратор маазина. Задача прораммы — обнаржить префис и обработать ео. Однао чтобы простить задач, администратор маазина должен сам азать (в файле настрое), аое именно поле он отдает под префис. Это делается лючевым словом prefix в одной из переменных онтроля ширины полей. Таим образом, система «понимает», что ширина данноо поля равняется символ префиса < * >. If (_root[“column_”+i+”_width”] eq “prefix”) { prefix_n=i; }}
Стоит таже честь, что, ода найдено поле, по отором следет определить, выводить этот товар или нет, следет переопределить все переменные параметров таблицы с четом сдвиа на 1. Сдви необходим, т.. сам префис и соответственно ео поле не отображается на эране. Таим образом, число полей в базе данных становится на одно меньше, чем число полей, рафичеси выводимых перед пользователем на эране. На этом этап форматирования данных заанчивается, и начинается обращение фнции подотови данных для вывода в таблице prepare_data. Это — фнция подотови данных, полченных при выборе определенноо пнта (атеории товаров) из системы меню. Данные постпают в отформатированном виде, т.. они же прошли через фнцию convert_data. Параметром данной фнции является qstars — оличество записей для вывода
140
Системы элетронной оммерции
в таблице. На выходе происходит определение значений следющих переменных: • start_show — начало поаза данных в таблице; • end_show — онец поаза данных в таблице. Задача данной фнции залючается в том, чтобы сопоставить оличество товаров, выводимых в таблице, с оличеством товаров, оторое способна вывести таблица за один раз. Фнция формирет значения start_show и end_show таими, чтобы таблица мола быть правильно отрисована, а данные из базы данных орретно обработаны. Например, при провере, если оличество стро для поаза из базы данных больше, чем способна поазать таблица за один раз, начальное значение поаза (start_show) — это: 1 + (оличество поазов)*(оличество стро), при этом, если оличество поазов = 0, поаз начнется с первой записи. После тоо а переменные онтроля отображения товаров определены, начинается процесс рафичесоо построения таблицы товаров. Этим занимается фнция create_table. Параметрами данной фнции являются а раз переменные start_show и end_show. Первое действие, оторое выполняет рассматриваемая фнция, — это даление тех ячее и стро таблицы, оторые были отрисованы в прошлый (последний) вызов данной фнции. Процесс даления необходим для перерисови таблицы. //удаление всех клипов — ячеек таблицы, созданных в прошлый вызов данной функции //названия этих клипов — уникальны, т.к. к ним приписывается счетчик j //начальное значение этого счетчика постоянно сохраняется в переменной old_level for (j=old_level; j. Вторая переменная (new_picture_link) содержит в себе ссыл на величенное изображение товара. Теперь, ода переменные переданы из Flash в JavaScript, необходимо написать обработчи на JavaScript, способный разобрать переменню sendinfo на основании использованноо знаа разделителя < $ >, для тоо чтобы восстановить все 3 значения переменных. Приведем ео од (написанный на JavaScript в файле index.html): function project_DoFSCommand(command,args) { var new_window; var variables = new Array(); var str=command; for (i=0; i’+ variables[2]+’ПОЖАЛУЙСТА, ПОДОЖДИТЕ, ПОКА ЗАГРУЗИТСЯ ИЗОБРАЖЕНИЕ ТОВАРА…
ИНТЕРНЕТ-МАГАЗИН ЭЛИТНОГО СПИРТНОГО © 2005<script language=”vbscript”>Sub window_onload\n download.style.display=”none”\n thumbnails.style.display=””\n End Sub’); new_window.document.close();
Фнция open отрывает оно, использя переданные из Flash переменные, а таже формиря параметры отрываемоо новоо она. Само содержание создаваемой (енериремой) HTML-страницы новоо она реализовано методом document.writeln. Здесь сначала идет создание заолова страницы — название товара, для отороо отрывается новое оно, переданное таже из Flash. Затем обрабатывается событие зарзи изображения данных в оно и вывод сообщения о зарзе изображения. При этом динамичеси подставляются значения (арменты) теа IMG, переданные из Flash: ширина изображения, высота изображения, ссыла на изображение. Для тоо чтобы данный срипт работал в обоих типах бразеров Internet Explorer и Netscape Navigator, была таже реализована фнция project_FSCommand средствами языа VBScript, задача оторой — запстить фнцию
152
Системы элетронной оммерции
project_DoFSCommand, реализованню на JavaScript. Однао вернемся назад во Flash в построение таблицы товаров. Там остается рассмотреть еще несольо фнций. Фнция create_table_buttons — создание лавиш правления таблицей ВПЕРЕД / НАЗАД. Задача данной фнции залючается в обеспечении перемещения пользователя по таблице товаров. Фнция сначала отрисовывает данные две лавиши рафичеси, а таже создает динамичесое тестовое поле подсазо действий данных лавиш. Создание информационноо табло таблицы для подсазо направления действий лавиш ВПЕРЕД / НАЗАД реализовано в фнции table_show_nav. Параметром данной фнции является переменная table_nav_text — динамичесий тест для вывода на этом табло. Затем данные лавиши наделяются свойством интеллетальности. Интеллетальность лавиш означает их проявление тольо в слчае их реальной надобности; если лавиша не нжна при аом-либо переходе, ее цвет прилшается. Это реализовано в фнции validate_table_navigation. Именно здесь осществляется разбор слчаев, ода лавиши следет отображать целиом, а ода прилшенно: if (quantity/number_of_rows