Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

JAVA. Серверные приложения

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
Часть 1. Электронная коммерция 71
5.2. Проектирование топологии приложений
После окончательного выбора сценария e-commerсe необходимо определить взаимоотношения между компонентами системы, клиента­ми, приложениями и данными. Выбор топологии взаимодействия влечет за собой выбор управления системой. Топология приложения описывает уровни приложения, фокусируется на логике и данных самого прило­жения. Взаимодействие между клиентом, данными и приложениями проектируются в топологии приложений. Нельзя смешивать топологию приложения e-commerсe с архитектурой Web-приложения. Топология приложения описывается с помощью логических узлов, представляю­щих различные компоненты системы. Топология приложений показыва­ет принципиальные уровни приложения, логику приложения и исполь­зуемые данные. Здесь не отражается физическое разбиение компонен­тов по файлам, структуре базы данных и т. д. Топология приложения работает с тремя уровнями представления информации:
обработчики деловой логики, логические представления контрол-
леров; ключевые особенности топологии, описывает основные компоненты
приложения: дополнительная информация, необходимая при проектировании e-
commerсe приложения.
Для e-commerсe приложений фирма IBM предложила несколько различных типов топологий.
Топология 1.
Это самая распространенная топология Web-приложений.
Обычная система, в которой бизнес-логика размешена в базе дан­ных в двухуровневой архитектуре Web-приложения. Такое реше­ние имеет свои преимущества. Очень легко обслуживать данную систему. Практически вся информация представлена клиенту в ви­де HTML-страниц. Бизнес-логика и данные работают в одном фи­зическом пространстве. Использование единого физического про­странства имеет свои недостатки в одних приложениях и достоин­ства в других приложениях. В будущем планируется интеграция Web-приложений с системами управления предприятия. Благода­ря первой топологии переход к другим типам топологий, уже испо­льзующих ERP-системы, такие, как Sun Francisco компании IBM, будет достаточно прост без больших трудозатрат и капиталовло­жений.
Топология 2.
Очень похожа на начальную топологию, с разницей в том, что биз­нес-логика находится на третьем уровне, а доступ к ней осуществляет­ся через компоненты, находящиеся на втором уровне Web-приложения. Это позволяет более гибко организовать доступ к бизнес-логике за счет использования дублирующих элементов второго и третьего уровней. В топологии 2 на третьем и на последующих уровнях, кроме базы дан­ных могут располагаться ERP-системы или другие источники данных. Организация доступа к различным источникам осуществляется на раз­личных уровнях Web-приложения.
72 Часть 1. Электронная коммерция
Топология 3.
Предназначена для работы с «тонкими» клиентами, клиентами с ми­нимальным набором программного обеспечения, такими, как 3270/5250/ASCII эмуляторами.
Топология 4.
Представляет специальных «тонких» клиентов, использующих сис­темные ресурсы серверов.
Топология 5.
Предназначена для работы внутренних систем серверов. Описывает взаимодействие разных серверов предприятия (многоуровневая Web­архитектура) в ответ на запросы клиента.
Топология 6.
Похожа на вышеуказанную с одним отличием — приложение не ис­пользует механизм отслеживания запроса. Бизнес-запрос с одного уровня разбивается на несколько частей, и каждая из вновь созданной части посылается на обработку в другие уровни.
Топология 7.
Представляет дополнительную способность сервера сформировать предварительный ответ на основе частичной информации из клиентско­го запроса, пока на основной запрос формируется ответ.
Топология 8.
Подобна седьмой топология, различие состоит в том, что клиентский запрос посылается от различных машин.
5.3. Установка архитектуры выполнения
Как только была выбрана топология приложения, наступает черед выбора топологии выполнения приложения. Здесь уже определяются физические узлы, на которых основывается е-приложение. С помощью узлов определяются все уровни Web-приложения.
Первый узел — интегрированный сервер, содержит данные, опи­сывающие логику приложения, имеет монитор транзакций. Как минимум интегрированный сервер используется на третьем уровне Web-архитектуры как отправная точка для описания инфраструк­туры приложения.
Следующий узел топологии — сервер приложений, включает в се­бя http-сервер по обработке http-запросов от клиентов. Web appli­cation server указывает, на каком Application Server сервере про­исходит обработка приложения.
Третий узел просто информационный, определяет специальное имя Domain Name Service (DNS) — имя ресурса для использова­ния в Интернете. Обычно этот узел локализует используемые ре­сурсы под одним именем. Очень важный узел, поскольку позволяет не забыть об указании адресов расположения для распределенных ресурсов.
Узел User предназначен для определения пользователя, имеющего доступ к ресурсам сервера приложений по указанному DNS.
Часть 1. Электронная коммерция 73
Рис. 1.9. Основные логические узлы Web-приложения
За обеспечение безопасности отвечает еще один узел — безопас-
ности. Каждое приложение, особенно e-commerсe, должно обеспе­чиваться нормальным уровнем безопасности, узел безопасности упоминается для организации доступа к ресурсам приложения. Источником данных определяется узел сервер данных — описыва-
ет, какая и как база данных используется в создаваемом e-com­merсe приложении. Данные, описанные в этом узле, являются в бо­льшей степени бизнес-данными, и их лучше не смешивать при проектировании с системными данными. Протокол внешней защиты описывается в узле firewall, предназ-
начен для описания протоколов, используемых для обеспечения функции внешней защиты.
Дополнительные узлы обеспечивают более гибкое проектирование e-commerсe приложения или в некоторых случаях являются тре­бованием заказчика.
Узел диспетчеризации предназначен для кластерных и многоуров­невых систем, обеспечивает равноценное распределение ресурсов по обработке клиентских запросов. Совместно используемые ре­сурсы описываются с помощью узла Shared file system — совмест­но используемые файловые системы.
Последний узел самого приложения предназначен для указания специфических свойств приложения, например, однопоточность в одном из основных узлов.
На рис. 1.9 отражена вся физическая структура Web-приложения.
5.4. Выбор используемых программных продуктов
Для осуществления задуманного проекта выбираются конкретные программные продукты и производители различных платформ. Колос­сальное количество стандартов и технологий, с одной стороны, облегча­ет выбор компонентов, с другой — громадные проблемы ждут проекти­ровщиков при совмещении существующих компонентов, создаваемых приложений и будущих стандартов. Выбор программного обеспечения, предназначен не только для выбора платформы выполнения e-commer­сe приложения. Бизнес-аналитики частенько проектируют приложение
74 Часть 1. Электронная коммерция
независимо от используемых в дальнейшем программных продуктов. Эта независимость от программных основ усложняет проект в несколь­ко раз. Проектировщику кроме описания бизнес-правил приложения приходится описывать дополнительные системные функции по управ­лению ресурсами, пользовательскими данными, обеспечению безопас­ности и т. д.
В большинстве случаев часть готовых решений уже поставляется в программном обеспечении, используемом в e-commerсe приложении. Кэширование данных, управление пользовательской сессией и обеспе­чение безопасности — практически все это уже имеется в Application Server разных фирм. Поэтому выбор используемых программных про­дуктов выделен в отдельный этап проектирования. Важно не просто выбрать операционную систему, Application Server и базу данных, важно знать имеющиеся способности каждого используемого продукта, а не опираться только на нужные в данный момент компоненты. Здесь рождается ценовой вопрос, что дешевле: нанять специалиста по кон­кретному продукту или несколько программистов, способных «улуч­шить» систему. В любом Web-приложении существуют как минимум два уровня безопасности. Первый обеспечивается самой операционной системой и обычно не используется проектировщиками Web-приложе­ний. Другой способ обеспечения безопасности, и не самый худший, обеспечивается используемой базой данных, чаще всего опускается при проектировании e-commerсe приложения. Хотя на настоящий мо­мент любая операционная система и практически все базы данных имеют достаточное количество модулей, обеспечивающих хороший уровень безопасности. Но аналитики до сих пор предпочитают исполь­зовать для работы с данными несколько SQL-операторов (язык DML), вкладывая всю информацию в BLOB, и развивать у программистов любовь к массивам, хэш-таблицам, прочим множествам. Управление всем созданным хозяйством ложится на плечи Application Server или программистов, хотя в большинстве управление системным ресурсами является основным механизмом любого сервера, с чем он прекрасно и справляется.
Затем по оптимальному выбору для выбранного программного обес­печения компонуется «железное» обеспечение.
5.5. Обучение использованию приложений
Одним из основных этапов выделено обучение пользователей работе с e-commerсe приложением. Вот здесь и вступает в силу описание поль­зовательского интерфейса и логики в одном лице. Стремление сделать сайт красивым и «загруженным» различными добавочными компонен­тами сильно усложняет понимание пользователем работы приложения. Во-первых, красота отвлекает, во-вторых, графический интерфейс здо­рово усложняет не только разработку, но и поддержку приложения. В­третьих, при создании приложения могут быть задействованы различ­ные команды специалистов. При этом нет уверенности, что обе команды понимают друг друга, а это значит, что каждая видит мир по-своему,
Часть 1. Электронная коммерция 75
кроме того, обе команды должны использовать одни инструменты или по крайней мере одни стандарты, иначе неизбежны лишние нервы, лишние строки кода, лишние затраты. Среди тысяч пользователей уже отсутствует такое понятие, как BIOS. Конечные пользователи знают, для того чтобы начать работать, надо просто опуститься в левый ниж­ний угол экрана. Хотя еще существуют приверженцы командной стро­ки, лучше все-таки обучать на повседневных примерах, чем на редких представлениях. Обучение проводится быстрее, если пользователь уже имеет какой-нибудь навык в данной области. Использование комбина­ции «быстрых клавиш» упрощает работу пользователя с приложением, а в дальнейшем работа с приложением может принести даже удовлет­ворение. Во-вторых, не все бизнес-правила должны знать конечные по­льзователи, но, с другой стороны, пользователю необходимо правильно выполнять именно свою пользовательскую роль. Опять же все это ре­шается с помощью обучения. Совершенно неважно, как организовано обучение — в виде всплывающей help-страницы или отдельной конфе­ренции на Гавайских островах. Важно иметь в виду данный этап проек­тирования e-commerсe приложения, ни одно приложение, тем более с участием человеческого фактора, нельзя использовать без предварите­льного обучения. К сожалению, большинство крупных компаний часте­нько при выпуске новой версии программы забывают о привычках по­льзователей, которые сами и привили в первых версиях. Речь идет не столько о затратах на обучение, сколько о создании интуитивно понят­ного интерфейса. Если пользователь привык выполнять операции Ctrl+C и Ctrl+V, то незачем предоставлять ему другую комбинацию.
Так же говорить о пользовательском интерфейсе можно в зеркале исполняемого кода. Приложение должно быть спроектировано так, что­бы у пользователя было минимальное количество выполняемых дейст­вий и только необходимая информация.
E-commerce приложение логически делится на две части: бизнес-ло­гику и системные данные, необходимые для выполнения работы систе­мы в целом. Существует несколько стилей реализации бизнес-логики, это могут быть Enterprice JavaBean, приложения, использующие API JDBC, организующие доступ к базе данных, файлы, находящиеся в сер­вере. Каждый из этих стилей имеет собственные модели обработки биз­нес-логики.
5.6. Бизнес логика
Бизнес-логика, в широком смысле, является набором руководящих принципов выполнения деловых правил, принятых на определенном предприятии. Описание бизнес-логики, используемой на предприятии, позволяет бизнес-аналитику сконцентрироваться непосредственно на ключевых этапах проектирования будущего приложения. Анализируя бизнес-логику, разработчик разбивает весь бизнес-процесс на несколь­ко элементарных цепочек взаимодействия. Бизнес-объекты или элемен­ты описывают весь бизнес-процесс как единую систему тесных взаимо­отношений. Бизнес-аналитик решает деловые задачи, связанные тем,
76 Часть 1. Электронная коммерция
как бизнес-объекты взаимодействуют между собой. Указание специфи­ческих бизнес-правил описывает поведение и связи бизнес-объектов. Вся структура, описывающая бизнес-процесс, бизнес-объекты и бизнес­связи, в общем случае называется бизнес-логикой.
Структуру и поведение бизнес-объекта можно определить из требо­ваний, предъявляемых для решения бизнес-задачи.
В конечном счете бизнес-логика предназначена для удовлетворения клиентского запроса.
В реальности вопрос целостности данных часто бывает связан с внутренними порядками в той или иной фирме. К примеру, в компани­ях, занимающихся розничной продажей, часто встречаются следующие деловые правила:
Каждый клиент имеет только один финансовый идентификатор,
счет. Каждый финансовый счет предприятия имеет собственные иден-
тификаторы, описывающие владельца счета., например телефон или адрес. Клиенты должны иметь возможность создавать финансовые счета.
Клиенты должны иметь возможность изменять информацию о
себе. Клиенты должны обновлять и заменять только информацию о са-
мих себе. Информация о клиенте обязательно должна храниться, а не гене-
рироваться.
Для организации можно описать другие правила. Например, ко­личество счетов, обрабатываемых по одному товару единовре­менно.
Ценовая ответственность при различных продажах определяет конкретное лицо, ответственное за сумму, превышающую лимит. Распределение обработки заказов и т. д.
Клиент имеет несколько ограничений. Во-первых, клиент не может разместить заказ на сумму, превышающую лимит кредита или по данному продукту, или по данному клиенту. Во-вторых, о сумме, превышающую кредит, должно быть извещено ответственное лицо. Ели клиент является постоянным, то используются дополнитель­ные поощрения крупных заказов и т. д. и т. д.
Из вышесказанного можно сделать несколько очень важных выводов. Минимум создается три бизнес-объекта: клиент, счет, ответственное лицо за обработку клиентских счетов. Поведение каждого представлен­ного бизнес-объекта описывается с помощью бизнес-методов. У каждого бизнес-объекта описываются свойства. Взаимоотношения между пред­ставленными бизнес-объектами описываются конкретно для каждого предприятия отдельно.
Бизнес-логика обеспечивает процесс создания бизнес-данных в поль­зовательской форме. HTML-страницы, представленные пользователю с генерированным сервером, есть результат работы бизнес-логики. Биз­нес-логика в Java-приложениях описывается через соответствующие компоненты:
Java Servlets
Часть 1. Электронная коммерция 77
JavaBeans
Enterprise JavaBeans (EJB)
JDBC
CORBA
LDAP
К сожалению, в большинстве случаев обработкой деловой логики за­нимается бизнес-приложение, что влечет за собой определенные труд­ности реализации.
В приложениях труднее, чем, в СУБД, контролировать действие
нескольких запросов к одному ресурсу, одной таблице. Соблюдение бизнес-правил значительно усложняется при количестве одновре­менных запросов. Во-вторых, нестандартное решение, пусть и лучшее, допускаемое
некоторыми создателями приложений, может исказить данные по собственному усмотрению. SQL стандартизирован, и проблем кон­струирования запросов не возникает. В-третьих, при изменении бизнес-правил, необходимо отследить
все приложения, влияющие на изменение бизнес логики, в то вре­мя как SQL-запрос всегда найти и изменить значительно легче. В больших компаниях бизнес правила спокойно пересекают грани­цу в сотню правил. Приложения, контролирующие все бизнес-пра­вила, будут слишком громоздким и чрезвычайно сложным. В результате деловая логика должна адресовать широкий диапа-
зон потенциальных требований, которые включают обеспечение транзакционную целостность прикладных компонентов, поддержа­ние и быстроту вызовов к прикладным данным, поддержку коор­динации бизнес-процессов и объединение новых прикладных ком­понентов с существующими компонентами.
Очень важно при создании Web-компонентов распределение ролей, отводимых каждому компоненту. То, с чем лучше всего справляется ба­за данных, должно выполняться в базе данных, серверные компоненты должны нести только данные, необходимые клиенту, а вся системная информация записывается в системные журналы.
5.7. Представление данных
Логика представления данных полностью зависит от бизнес-процес­са. Взаимодействие между бизнес-логикой и представлением данных осуществляется через контроллер (Model-View -Controller). В Applicati­on Server, использующих Java, роль контроллера могут выполнять ser­vlet или JavaBean или связь через обращение JSP к servlet. Для пред­ставления (View) данных больше всего подходят JSP-страницы с их уникальными возможностями.
По большей части представлением данных занимаются Web-дизай­неры, инструмент которых ограничен двумя языками HTML и javasc­ript или vbscript. И обычно проектировщик просто полагается на креа­тивность дизайнера и на данные, нуждающиеся в отображении, после чего рождаются прекрасные сайты, лишенные какой-либо логики. Со-
78 Часть 1. Электронная коммерция
здание хорошего дизайна, как создание картины, требует творчества, проблема в одном — настоящие художники работают только по вдохно­вению. Девочка, бегущая к прекрасному дому, может добежать до руин (литературное отступление).
ПРИМЕР СОЗДАНИЯ E-COMMERСE ПРИЛОЖЕНИЯ ПО НАИБОЛЕЕ
РАСПРОСТРАНЕННОМУ СЦЕНАРИЮ В2С
Осуществление перевода части деятельности предприятий, в особен­ности обработка и хранение информации, создание интерактивного взаимодействия с клиентами, партнерами, служащими представляется возможным при использовании новых методов и технологии взаимодей­ствия сетевых технологий. На рис. 1.10 представлено обычное Web-при­ложение.
Прежде чем e-commerсe приложение будет создано, необходимо определить взаимодействие различных компонентов. Используя па­радигму MVC, создание приложения выглядит следующим образом. Модель представляет основные данные. Чаще всего под основными данными подразумевается бизнес-логика приложения. Презентация данных осуществляется через страницы JSP или HTML. Клиент обра­щается к JSP-странице и получает ответ в виде HTML-страницы, сге­нерированной JSP. Если предполагается использовать немного инфор­мации, для предоставления данных предпочтительнее использовать servlet.
JSP перенаправляет клиентский запрос в контроллер — Servlet, яв­ляющийся обработчиком http-запросов. Роль контроллера предназначе­на для организации взаимодействия между бизнес-логикой и отобража­емыми данными. Проектирование бизнес-логики приложения — одна из сложнейших задач. Узнать, что действительно важно, а чем надо прене­бречь, является для разработчика первоочередной задачей. И если дело касается только Web-магазина, описанного не более десятью бизнес­правилами, то и бизнес-аналитик, и проектировщик могут быть одним лицом. Если же количество бизнес-правил увеличивается, то вступает в действие разделение труда между различными участниками создания
Рис. 1.10. Web-приложение в действии
Часть 1. Электронная коммерция 79
e-commerсe приложения. JavaBean-компоненты бывают видимыми и невидимыми, т. е. несущими элементы пользовательского интерфейса или без оных — EJB. В большинстве Web-приложений бобам отводится роль модели.
Создание любого приложения B2C, независимо от среды выполнения, начинается с проектирования взаимодействия между приложением и клиентом. Первичная информация, чаще всего получаемая из системно­го уровня клиента, такая, как тип баузера, URL, номер порта и т. д., ис­пользуется для идентификации клиента на первом этапе. Для того что­бы написать уже написанное, проектировщику неплохо было бы ознако­миться с существующими решениями, предлагаемыми различным производителями программного обеспечения. Что касается использова­ния Java, то существующее количество API, распространяемых как фирмой SUN, так и другими производителями, таких, как IBM, в прин­ципе может решить все проблемы получения первичной информации о пользователе. Необъятное количество пакетов заставляет проектиров­щика идти на неправильные шаги, предполагая, что его программисты быстрее справятся с созданием необходимых классов, чем проектиров­щик найдет нужный класс. Стандартные расширения к Java, называе­мые Java Enterprise Extension, описаны достаточно тщательно, тем бо­лее бесплатно распространяются. Поэтому лучше поинтересоваться чу­жими решениями на данный счет, а потом придумывать свои. Просто слишком часто вместо описания бизнес-правил проектировщик описы­вает получение системных данных, затягивая в рутину не только себя, но и подвластных ему программистов.
Самым распространенным сценарием e-commerсe приложения на территории империи на настоящий момент является взаимодействие с конечным покупателем, чаще всего частным лицом.
Далее будет рассмотрено более детальное создание приложения по бизнес-сценарию B2C, точнее, одному из его подтипов User-to-Online Buying. Использование этого сценария оправдано при создании нового e-commerсe приложения, когда отсутствует необходимость обеспечи­вать доступ к корпоративным данным управления предприятием или большим хранилищам информации, предназначенным для служебного пользования. Все требуемые данные обрабатываются непосредственно e-commerсe приложением, при этом не используются взаимодействия с другими e-commerсe приложениями. Создаваемое приложение реализу­ет все функции обработки данных. Обычно для этого сценария выберет­ся трехуровневая структура Web-приложения и первая из топологии приложений.
Топология 1 используется предприятиями или Интернет-компаниями, которые уже имеют или только хотят открыть доступ к свои ресурсам. При этом наблюдается тенденция минимального вложения в описание бизнес-правил, практически они минимальны, и уделяется больше вни­мания наглядности предлагаемых ресурсов. Наибольшее количество вре­мени отводится под проектирование пользовательского интерфейса. Свод бизнес-правил в основном ограничивается описанием товара, подтверж­дением финансовой операции, подтверждением заказа выбранного това­ра, формированием дополнительных условий поддержки покупки. Топо-
80 Часть 1. Электронная коммерция
логия 1 имеет один скрытый от большинства разработчиков «подводный камень», часто ограничивающий способности созданного приложения при дальнейшем расширении функциональности. Очень многие постав­щики решений для e-commerсe, используя топологию 1, смешивают в од­ном логическом компоненте бизнес-логику и логику презентации прило­жения. Смесь, образуемая в результате, прекрасно может работать и в дальнейшем, но только для приложений, использующих топологию 1.
Первичные причины для использования топологии 1 — скорость продвижения на рынок и стоимость. Цель состоит в том, чтобы полу­чить торговое представительство с минимальными переделками сервер­ных компонентов. Поскольку Web-технологии уже достаточно широко распространены и стандартизированы, минимальные изменения, вноси­мые на готовый сайт, делают из обычного представительства в сети торговое представительство.
Ключевые особенности данной топологии заключаются в доступности и готовности, малой потребности ресурсов и очень большом распростра­нении уже существующих корпоративных сайтов. Не предъявляется больших требований к используемым программным продуктам, доста­точная дешевизна используемых ресурсов.
Интерфейс e-commerce (online-buying) приложения полностью отве­чает потребностям минимальных обращений к бизнес-правилам. Поско­льку часть из них описывается совместно с логикой пользовательского интерфейса, разрабатывая приложение с данной топологией, проекти­ровщик описывает только точечные решения приложения. Использует­ся парадигма «если что» — реакция на действия пользователя и «что будет, если», т. е., обработка неправильной информации.
Сценарий B2C используется для организации продаж напрямую ко­нечному потребителю, минуя все возможных посредников. Полагаясь на эмпирические методики, для конечного потребителя создается интер­фейс с колоссальным количеством компонентов, практически не исполь­зуемых в дальнейшем системой. При всем огромном росте продаж через Интернет, большая часть которых осуществляется между предприяти­ями, по другому сценарию, конечный потребитель любит ходить в мага­зины. Поэтому создание дополнительных, тяжеловесных компонентов не всегда оправданно в использовании B2C сценария.
Разработчикам следует учитывать взаимодействие с уже существу­ющими компонентами. Опять же при использовании трехуровневой Web-архитектуры обязательно учитывать физическое расположение и уровень доступа к данным. E-commerсe приложение создается с раз­личными уровнями взаимодействия, а это накладывает свой отпечаток на скорость выполнения приложения. Тем более что часть работ в при­ложении должна выполняться синхронно, другая асинхронно.
Приложение уровня предприятия, использующего сценарий B2C, предполагает наличие нескольких различных уровней взаимодействия:
Уровень клиента — именно на данном уровне создается клиентский запрос для обработки и получается ответ на данный запрос.
Уровень сервера — Web и/или сервер приложений, — обрабатываю­щий клиентский запрос и формирующий в удобной для клиента форме ответ. Именно на данном уровне выполняется основная работа.