Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA. Серверные приложения
.pdf
Часть 1. Электронная коммерция 21
так и в смысле различных операционных систем. Протокол RMI
поддерживается всеми версиями Java, начиная с версии 1.1.
Приложения, использующие RMI, не требуют Web-сервера как такового. Каждое приложение в момент взаимодействия принимает на себя роль клиента или сервера, в зависимости от выполняемых задач.
Идеально использование RMI подходит при создании приложения сервера, использующего многопотоковый доступ к внешним источникам.
Internet Inter-ORB Protocol (IIOP) стандартный протокол, основан-
•
ный на новой технологии CORBA. Основным компонентом протокола является так называемый посредник (Component Broker), посредник между приложениями, написанными на различных языках.
IIOP более сложный протокол, чем обычный HTTP или новый RMI, и
используется при взаимодействии компонентов реализованных на различных платформах и с помощью различных языков программирования. В протоколе IIOP используются различные сервисы, такие, как
сервис транзакций (transaction services) и сервис сообщений (messaging
services). IIOP используется для непосредственного обмена информацией между клиентом и сервером и передачи конкретных запросов.
Еще одним способом передачи можно назвать работу через сокеты
•
(Direct sockets). Сокеты предназначены для надежного двунаправленного постоянного соединения между Web-приложениями.
Обычно использование сокетов связано с отказом от использования
какого-либо распространенного протокола передачи. При всей
сложности использования сокетов иногда без них просто не обойтись, например, при создании собственного протокола передачи
или, если необходимо, расширить свойства стандартных протоколов. Большинство систем имеют встроенный набор API для доступа к сокетам.
Протокол IIOP является достойной альтернативой, когда необходимо
передавать клиенту большое количество данных, иметь высокоинтерактивную программу или если вы хотите воспользоваться возможностями
обратного вызова клиента. Хотя протокол IIOP имеет свои слабые места, что касается защищенности данных, но над этим в настоящее время
работают, поэтому рекомендуется использовать данный протокол внутри Intranet, привлекая и HTTP для обеспечения защиты данных приложений Интернета.
Но обеспечение связи и обработка запроса это полдела; необходимо
предоставить клиенту те данные, ради которых он и сформировал свой
запрос, и отправил его Web-сервер при посредничестве транспортных
протоколов. Для хранения данных предусмотренны специальные хранилища.
1.4. Хранилища данных
В силу специфики задачи и множества внешних факторов часть информации должна храниться во внешних, относительно приложения,
источниках. Такими источниками могут быть различные базы данных,

22 Часть 1. Электронная коммерция
файловые системы и внешние носители информации, не содержащие
программные элементы.
Структурированный подход к хранению данных обеспечивает минимальный временной интервал на поиск конкретного ресурса и максимальному упрощению обновления данных.
• Базы данных — самый распространенный способ хранения инфор-
мации. Базы данных СУБД могут располагаться на любой машине. Существуют версии СУБД как для переносных органайзеров, так и для
больших корпоративных майнфреймов. На рынке предлагается достаточное количество различных баз данных, например DB2, ORACLE,
MSSQL и т. д., различных по своим внутренним свойствам и способам
обработки данных, уже поставляемых с множеством инструментов,
предназначенных для работы в Web.
• Другой способ хранить информацию более простой и более ста-
рый — файловые системы. Практически для каждой из существующих
операционных систем разработаны свои системы управления файлами:
HPFS для OS/2, NTFS для операционных систем семейства Windows
NT, NFS используется Unix в подобных системах. Файловые системы
хранят данные в виде цифровой информации на носителе.
• Еще одним способом хранения информации является совмещенный
способ хранения нереляционных базах данных, типа IMS, или системах
OLTP, типа CICS. Используя такие языки, как COBOL, программисты
самостоятельно индексировали данные в плоских файлах.
• Остальные элементы, такие, как бумажные документы, видео- и
аудионосители, в представлении не нуждаются.
Использование определенного типа хранилища данных диктуется
структурой приложения, и в зависимости от типов хранимых данных и
связи между ними разработчик изыскивает лучшее решение для будущего приложения.
1.5. Визуальные элементы
Для отражения полученной информации в годной для клиента форме, в данном контексте пользователя предусмотрены различные визуальные элементы, облегчающие понимание переданной информации. Выбор между отражениями данных зависит от Web-клиента. Это может
быть обычная текстовая строка, если клиентом является консоль, или
сложный swing-интерфейс для Java-приложения. Чаще это HTML-элементы, видимые в Web-браузере: кнопки, таблицы, изображения и т. д.
Чтобы не путаться под визуальными элементами, подразумевается не
только графический интерфейс клиентской части, но и административная консоль управления приложением на сервере. В отличие от клиентского графического интерфейса, административный графический интерфейс может быть полностью реализован в виде приложения, без каких бы то ни было дополнительных способов реализации UI.
UI (user interface) — пользовательский интерфейс, неотъемлемая
часть любого e-commerсe приложения. Разработка UI логики так же
важна, как и описание бизнес-логики приложения. Во многих случаях

Часть 1. Электронная коммерция 23
компоненты пользовательского интерфейса взаимодействуют между собой. В большинстве приложений взаимодействия компонентов пользовательского интерфейса вызывают различные методы бизнес-логики. Используемые данные превращений представляют собой тот набор информации, в котором заинтересован пользователь. В отличие от бизнеслогики, логика UI — местоположение компонента и ряд его взаимодействий с другим компонентами, как элементов, так и элементов пользовательского интерфейса.
Если говорить о UI логике в сфере Web-приложений, то пользовательский интерфейс является ответственным за производство HTMLстраницы, которая будет возвращена клиенту. С тех пор как язык программирования Java стал широко использоваться в Web-приложениях,
описание пользовательского интерфейса приобрело другие масштабы.
Теперь кроме статических Web-страниц, с зафиксированными намертво
компонентами, стали использоваться динамические JSP-страницы. Используя Java, пользовательский интерфейс Web-приложения приобрел
более приглядный вид, а возможность в одной странице совмещать методы бизнес-логики и логики UI делают Java действительно незаменимой при создании e-commerсe приложений. В большинстве компаний
созданием пользовательского интерфейса заведуют или бизнес-аналитики, или бывшие программисты, ставшие таковыми. Все-таки созданием UI должны заниматься люди способные отличить грунтованный картон от не грунтованного. Автор знает одного такого прекрасного специалиста.
Количество графических элементов используемых в Web, достаточно
велико и для некоторых сред уже практически стандартизировано. Хотя оно и уступает элементам управления, принятым в операционных
системах, его вполне достаточно для отображения полученной информации. Использование стандартных компонентов в пользовательском
интерфейсе облегчает не только создание, но и понимание части приложения. В крайнем случае программист всегда имеет возможность создать собственные элементы и импортировать их в исполняемую
HTML-страницу в виде дополнительных надстроек.
Глава 2. Основная архитектура Web-приложений
Все описанные выше компоненты являются в своем роде «кирпичиками», из которых и возводится здание любого Web-приложения. После
конкретного рассмотрения всех возможных разновидностей различных
строительных блоков для Web-приложения необходимо описать, что вообще из себя представляет Web-приложение.
Итак, Web-приложение. Во-первых, это практически все основные
компоненты, перечисленные в предыдущей главе. Во-вторых, все эти
компоненты располагаются или доступны в мировой сети Интернет. Втретьих, одна часть основных элементов располагается в распределенных системах, другая часть обеспечивает доступ к другим основным
элементам Web-приложения.

24 Часть 1. Электронная коммерция
Рис. 1.1. Распределенная система
Отход от давно устаревшей системы распределения ресурсов по
двум основным элементам, клиенту и серверу, обусловлен повышением
требований к получению доступа к различным источникам. Клиент,
сервер, транспортные протоколы — вот основополагающие компоненты
любой распределенной системы. Манипулирование настоящими компонентами позволяет создать архитектуру приложения. Новым здесь является только термин «распределенные». Практически все современные
Web-приложения являются распределенными системами. Распределенные системы — это системы, расположенные на различных физических
узлах, будь то персональные компьютеры, большие ЭВМ или какие-либо другие устройства. Именно свойство распределенности данных стало
одной из важнейших причин большой популярности Интернета. Распределенные системы используются для организации доступа клиента
к различным, даже разнесенным географически, источникам информации. Web же позволяет, кроме стандартизации и независимости от
платформы как клиента, так и источника информации, передавать данные в едином формате. В распределенной системе граница между клиентом и сервером становится размытой, и в один момент времени клиент может выступать в нескольких ролях — быть или сервером, или
клиентом или тем и другим.
Элементарное представление распределенной системы показано на
рис. 1.1.
Распределенные системы выросли из таких ставpших уже тривиальными систем, как клиент-сервер, и гетерогенных систем. В общем, распределенные системы представляют собой смесь клиент-серверных взаимоотношений, омраченных различными свойствами гетерогенных систем.
Обычно под распределенными приложениями подразумевается выполнение программного модуля на различных операционных системах.
Кроме того, что выполнение распределенного приложения осуществляется на нескольких различных компьютерах, некоторые части распределенного приложения могут выполняться в других операционных и
программных средах.
Основным этапом перехода к распределенным системам стало широкое распространение мини- и персональных вычислительных машин.

Часть 1. Электронная коммерция 25
Данное явление позволило предприятиям перенести большие объемы
данных с головных машин в распределенные среды мини- и персональных ЭВМ. Расположение информации в различных источниках подвигло производителей программного обеспечения на решение задач, связанных с получением данных из различных источников. Так состоялся
переход от централизованного хранения данных к распределенным системам.
На настоящий момент распределенные данные представляют не
только различные СУБД, но и в большинстве случаев совсем разные
типы данных, хранящиеся в совершенно разном формате. Представление данных в едином формате предполагает наличие на всех приложениях дополнительных программных средств, обеспечивающих правильную трансформацию и представление данных. Использование единых
стандартов снимает ограничение на использование в различных средах
данных из разных источников.
Уже ставший стандартом язык гипертекстовой разметки HTML и его
улучшенная версия XML представляют данные, работающие в среде
Web. Среду Web никак нельзя назвать однородной и не распределенной. Но с помощью технологий, используемых в Web, проблема «единого документа» может быть решена.
Итак, связь между Web и распределенной системой выявлена, используются одни и те же составные компоненты. Основным принципом
распределенных, а значит, и Web-систем является принцип идентичности. Для пользователя распределенная система выглядит так же, как и
нераспределенная. В прошлом клиент-серверная архитектура считалась чуть ли не единственным решением всех проблем. Но ограниченность любой клиент-серверной системы в том, что она работает по
принципу «точка в точку». Предполагалось, что сервер может выполнить все действия по обработке клиентского запроса.
После появления дополнительных требований к данным и способам
доступа к ним пришлось разрабатывать другие системы, способные
справиться с поставленными задачами. На смену клиент-серверным системам пришли распределенные системы. Сама система клиент-сервер
не умерла, она просто растворилась в пришедших на замену Web-системах. Очень четко наследие клиент-серверных систем прослеживается
на одном из основных уровней современных Web-приложений. Поняв,
что такое распределенная система и уже зная основные компоненты, из
которых состоит Web-приложение, можно начать проектировать «архитектурное» сооружение в данном случае Web-приложение.
Если к вам приходит представитель N фирмы и с важным видом заявляет о своих возможностях создать полностью распределенное приложение, при этом активно используя непонятные слова и невербальные формы передачи информации, можно навести пару наводящих вопросов и узнать, насколько предлагаемая им услуга действительно
соответствует вашим требованиям. Чаще всего под созданием распределенного приложения многие компании предлагают создание Интернетсайта с множеством различных дополнительных возможностей представления информации. Но вряд ли кто будет действительно предлагать
создание гетерогенного, распределенного приложения, доступного для

26 Часть 1. Электронная коммерция
практически всех типов клиентов, присутствующих в структуре предприятия.
Первым делом у этого активного молодого человека можно поинтересоваться, как он собирается организовать доступ машин секретариата
компании, по сию пору сидящих на 386 машинах и Dos 6.22. Не забудьте
намекнуть об отсутствии на данных машинах Web-браузеров. И если
представитель будет продолжать увлекательно рассказывать о перспективах Windows-технологии и убеждать вас поменять весь парк устаревших машин, можно наносить еще один удар. Пожалуйтесь ему на
ваше отвратительное прошлое и бабушку программиста, поставившего
в вашей компании какую-то очень модную в давние времена программку управления предприятием, что-то вроде SAP R\3, но так как денег
у вас ну очень мало, переходить на другие системы вы, может, и хотели
бы, но не можете. Очень интересная мимика и жестикуляции появляются у нового гостя.
Когда женщина говорит: «Ты у меня лучше всех» с милой улыбкой
на лице, время не радоваться, а задумываться. Так же и при проектировании Web-систем необходимо задумываться до начала эксплуатации
приложения. Лучше это начать в момент проектирования архитектуры
будущего приложения.
Четыре основные архитектуры Web-приложений делят между собой
пальму первенства по использованию и созданию e-commerсe приложений:
• одноуровневая архитектура;
•
двухуровневая архитектура;
•
трехуровневая архитектура;
•
многоуровневая архитектура.
Web-приложение обычно использует сетевые технологии, включающие Web-браузеры, Web-серверы и Интернет-протоколы. Web-приложения обычно взаимодействуют с серверами данных или приложений.
Любое e-commerce приложение по большей части основано на Webтехнологии, а значит, и использует практически весь арсенал Web.
Структура Web-приложений делится на две части: клиентская и
серверная. Клиент выполняет запрос и получает ответ, сформированный серверной частью. Серверная часть включает в себя: обработку запроса, формирование ответа и посылку ответа клиенту. Для клиента
приложения формируется соответствующая графическая форма, содержащая элементы пользовательского интерфейса. Для клиента, использующего Web-браузер, существует несколько форм ответов. Самым
распространенным из них является HTML-страница — страница текста, содержащая специальные символы, называемые тегами. Благодаря
этим тегам браузер формирует страницу с различными формами, с которыми может работать браузер. Также в последние время очень активно стал внедряться Dynamic HTML, динамический HTML, способный «украшать» статические HTML-страницы. Другой способ «оживления» HTML-страниц заключается â использовании программ,
исполняемых в среде браузера, написанных с использованием языка
программирования Java. Последним решением в данной области, безусловно, является использование XML улучшенной версии стандартного

Часть 1. Электронная коммерция 27
HTML. XML, так же как и HTML, использует систему тегов для разметки текста документа, что значительно облегчает переход от статических Web-страниц к динамическим. Существуют и другие технологии
создания динамических страниц, например MacroMedia Flush, Active
Server Page-технология расширения возможностей HTML-страниц посредством языка Visual Basic или Java Server Page — HTML-страница
с частями кода, написанного на языке Java.
С развитием Интернета, все больше акцент смещается в сторону использования глобальной сети не только как информационного носителя,
но и как активного инструмента для всех бизнес-областей, где требуется быстрый доступ к информационным ресурсам. Именно широкое распространение Интернета и его доступность позволяют предприятиям
решать сразу несколько проблем. С одной стороны — консолидировать
данные, с другой стороны — организовать доступ к этим данным практически из любой точки. Данная особенность привлекла громадное количество компаний, не только разработчиков программного обеспечения, но и производителей телекоммуникационного оборудования, финансовые институты, медиа-конгломераты. Ê использованию в
расширяющихся способностях всемирной сети, для решения своих задач. Таких, как организация доступа к корпоративным данным удаленных пользователей. Выбор архитектуры приложений зависит от цели ecommerce приложения.
Одноуровневая топология является самой простой и самой распро-
•
страненной среди создателей e-commerсe. Ведь именно на одноуровневой системе проходит создание, тестирование и проектирование e-commerce приложения. В данной системе отсутствуют сетевые сервисы, а внешние источники и хранилища находятся
практически всегда на одной машине или в одном сегменте сети.
•
На более высоком уровне находится обычная двухуровневая топология, в которой имеется Web-сервер и удаленный сервер базы
данных. Типичная топология маленьких коммерческих сайтов.
Очень проста в обслуживании и не требует больших ресурсов, на
одной машине располагается Web и applicaton сервера, база данных на другом компьютере.
Различие между одноуровневой и двухуровневой топологиями, в наличие промежуточного звена взаимодействиям между Web-сервером и
удаленной базой данных, в промежуточном звене можно разместить добавочные сервисы и приложения.
Так рождается трехуровневая топология Web-приложений, изображенного на рис. 1.2.
•
Топология больших коммерческих приложений. Очень требовательна к ресурсам. Настройка топологии и ее проектирование предназначены для отдельных специалистов. Основные звенья могут
быть разбросаны на громадные расстояния. Содержит все основные компоненты, реализованные в первых двух топологиях, также
может иметь дублирующие элементы, элементы копирования и настройки. Большинство Web-приложений базируется на трехуровневой архитектуре. Физически данные распределены на три основных звена. Для каждого уровня приложения — пользовательский

28 Часть 1. Электронная коммерция
Рис. 1.2. Архитектура Web-приложения
интерфейс, бизнес-логика и бизнес-данные, соответствует свой
уровень выполнения. Первый уровень-клиент, содержащий логику
представления данных и формирующий запросы для сервера, используя Java-аплеты, браузер или другие средства передачи. Следующий уровень Web/Application Server содержит бизнес-логику
и процессы управления данными. Каждая серьезная программа
для e-commerсe использует базу данных, надежность этой базы
данных и связанных с ней компонентов определяет успех работы
предприятия.
•
Многоуровневая топология e-commerсe приложения расширяет
трехуровневую практически до уровня самой глобальной сети. Распределенные системы и данные находятся не только на разных машинах, но и в разных сетях (см. рис. 1). Количество серверов, так
же как и количество хранилищ данных, объединенных по определенному признаку, практически не ограничено. Взаимодействие
осуществляется не только по принципу «точка-точка», но, по принципу множественных связей. Главное в многоуровневой архитектуре — использование одного общего начала.
Именно с последней топологией связаны наибольшие ожидания
крупных игроков в электронном бизнесе. Выбор архитектуры приложения влечет за собой выбор Web-технологии. В отличие от трехуровневой системы, распределенное приложение может совмещать в себе все
уровни: и пользовательский интерфейс, и бизнес-логику и бизнес-данные, с другой стороны, доступ к распределенному приложению осуществляется из любой точки и любого приложения, написанного на отличном от приложения языке программирования.
Количество Web-технологий и решения на их базе ставят в тупик
порой не только новичков в электронном бизнесе, но и уже бывалых игроков на данном поприще. Именно выбор основной технологии является
первостепенной задачей, и порой системный архитектор принимает решение на базе знакомых ему с «детства» программных продуктов, не

Часть 1. Электронная коммерция 29
интересуясь новшествами, предлагаемыми на рынке. Зная технологии,
базирующиеся на платформе Windows, системный архитектор скорее
предпочтет использование языков программирования Visual Basic или
Visual С++, чем Jаva. Привязка проекта к определенным языкам обязывает проектировщика и к выбору сопутствующих программных продуктов, обеспечивающих работу приложения, что не всегда является
хорошим решением. Опять же незнание современных решений ведет к
увеличению бюджета создаваемого продукта и набору персонала, порой
неспособного выполнить поставленную перед ним задачу в силу незнания используемого инструмента.
На настоящий момент существуют только две широко поддерживаемые платформы для Web-приложений — это комплексное решение
фирмы Microsoft и конечно же Java компании SUN. Говорить о достоинствах или недостатках каждого отдельно взятого решения не имеет
смысла. Слишком много приверженцев Microsoft’а в России, а значит, и
много аргументов в пользу использования именно продуктов этой компании. Но также много любителей Java за границей великой державы.
Бесполезно сравнивать Active Server Page (ASP) и JSP, хотя оба предназначены для решения одной задачи. Среды, в которых они выполняются, до такой степени разные, что найти общую точку отсчета практически невозможно. По этой же причине нельзя сравнивать COM-объекты и Java Bean, этот перечень можно расширять еще очень долго. По
мнению автора, лучшее решение у компании SUN и иже с ними. Вопервых, язык Java создавался как сетевой язык и вполне себя оправдал
в данной роли. Во-вторых, кроме платформы Solaris, Java поддерживается другими платформами, например Windows фирмы Microsoft или
MacOS от компании Apple. Компания IBM расширила этот список еще
на дюжину пунктов для своих платформ.
На настоящий момент именно многозвенная архитектура приложений позволяет достичь оптимального распределения информационных
ресурсов, организовать доступ в удобной для пользователя форме. Как
и другие архитектуры, многозвенная имеет свои достоинства и свои недостатки, одним из которых является сложность обслуживания всей системы, увеличивая не только стоимость разработки, но и стоимость поддержки приложения. С другой стороны, многозвенная архитектура значительно облегчает обработку множества различных запросов,
поступавших от различных источников.
Дабы не рассматривать все возможные варианты, на это не хватит
ни сил, ни времени, можно ограничиться рассмотрением только определенных частей Web-архитектуры. В данной книге будет рассматриваться непосредственно второй (средний) уровень, присутствующий во всех
из указанных архитектур, и использование на данном уровне технологии, основанной на языке Java, таких, как servlet и Java Server Pages.
Дополнительно будут рассмотрены уровни второго-третьего звеньев
Web-архитектуры. На промежуточном уровне использование EJB, технологии, также основанной на языке Java, и описывающая бизнес-логику приложения. И средства доступа к базам данных при помощи языка
Java и SQL-конструкций — SQLJ. В принципе EJB является серверной
технологией, но выполняет на дополнительном уровне, так называемом

30 Часть 1. Электронная коммерция
EJB-сервере. Данный сервер может располагаться на любом уровне
Web-архитектуры, но чаще всего он встроен в сервер приложений и поэтому будет рассмотрен как часть среднего звена Web-приложения.
При создании e-commerсe приложений разные специалисты объединяют свои усилия. В такой команде предусмотрено несколько основных
ролей. Такие, как дизайнеры, Web-дизайнеры, Web-программисты, бизнес-аналитики, программисты, использующие в своей работе какой-либо язык: Java, C++, Perl и т. д. Разделение по ролям позволяет распределить ресурсы и добиться максимального контроля за ходом выполнения решения проблемы. Хотя еще очень часто можно встретить
коллективы, в которых совмещенные обязанности может нести на себе
один человек. Большей частью не важно, сколько человек работает над
данным проектом, важнее сложность проекта и профессионализм исполнителей.
2.1. E-commerce â Web
Само слово e-commerсe определяет основную задачу, описываемую в
Web-приложениях, используемых при деловых отношениях различных
участников бизнес-процесса. Коммерция, точнее, электронная коммерция — так можно определить новое слово, распространившееся в Web.
Именно коммерческие, финансовые отношения описываются в e-commerсe приложениях. Основной причиной перенесения бизнеса в Интернет, стала возможность обращения к любому ресурсу, доступному сети,
будь то текстовой документ или большая компания.
Почему именно Web стал основой распространения e-commerсe? Для
этого существует несколько важных причин.
Одной из основных причин конечно же является распространенность
сети. Там, где раньше не ступала нога человека, имеется устройство,
подключенное к информационной сети. Ведь уже не представляет никакого труда получить снимки Луны, хотя, был ли там человек, вопрос
остался без ответа.
Совсем необязательно быть на Луне, чтобы заключить контракт на
размещение рекламы в лунных новостях. Web открывает новые каналы
продвижения товара, теперь маркетинг в прямом смысле становится
целевым. Там, где присутствует клиент, там теперь находится реклама.
В данном случае совсем необязательно, чтобы реклама была видима.
Посещая сайт или получая электронную почту, клиент может автоматически стать участником бизнес-процесса.
В отличие от других электрических устройств, сеть работает всегда,
без перерывов на обед и «приемки товара». Как раньше основополагающим принципом было пятилетку в три дня, то теперь приоритеты поменялись на 24×7. Теперь кто угодно может пользоваться услугами электронного рынка 24 часа в сутки, семь дней в неделю, в не зависимости от
времени суток, времени года и опять т.д. Предоставляя доступ к своим
продуктам и творениям 24 часа, можно избавиться от постоянного планирования рабочего времени заказчиков, оставляя на их выбор способ
получения информации.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
