Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA. Серверные приложения
.pdf
Часть 1. Электронная коммерция 31
Поставка информационных ресурсов без ограничения. Теперь не надо идти сдавать 20 кг макулатуры, чтобы получить какой-то источник
информации. Клиент получает поддержку в том объеме, который ему
требуется без каких-либо ограничений. Он получает любую доступную
информацию из информационного узла в удобном для него виде, текста,
видео-, графического изображения или еще в чем. Теперь заказчик не
ждет специалиста для чтения документации, заказчик сам использует
полученную документацию.
В сети очень популярное решение предоставления информации именуется сайтом. А специфика указания адреса упрощает поиск необходимого ресурса. Две улицы «строителей» здесь не существуют. Webсайт является прекрасным местом, оформляющимся без юридических
проволочек, за него не надо платить налог на землю, он может быть таким большим, каким захочется, и самое главное, он может содержать
только один ресурс, фотографию владельца. Сайт — универсальное
средство, предоставляющее и место для размещения рекламы, и организации встреч, и даже представлении адреса. А современные технологии, часть из которых описана в данной книге, вдохнут в Web-сайт неповторимость и живость.
Сеть — электронная сфера, а где, как не в электронной сфере, создаются презентации и моделируются бизнес-процессы. Web дает шанс
e-commerсe использовать все доступные ресурсы единовременно. Нужен только художник, а желательно начальник с художественным вкусом, и презентация будет готова в течение нескольких минут.
Наконец, при отсутствии какой-либо необходимой заказчику информации на одном информационном узле его запрос можно перенаправить
на другой узел в течение нескольких секунд, что значительно облегчает
жизнь самого заказчика, не говоря о жизни других участников бизнеспроцесса.
Все это связано с малой затратной стоимостью и малыми инвестиционным рисками. Ничто не мешает создавать сайты один за другим, без
каких-либо больших финансовых вложений. А заявить во всеуслышание о новой услуге или новом товаре можно так быстро, как быстро об
этом принято решение.
При всей пестроте используемых машин и операционных систем в
Web существует всего два стандарта предоставления информации клиенту. Это значит, что для различных клиентов создание информационного предоставления данных будет стандартным. А все вместе вышесказанное говорит о том, что использовать Web-технологии в e-commerсe приложениях достаточно выгодно.
Ну а если так все замечательно, тогда почему разговор о e-commerсe
не вынесен в отдельную главу или даже часть в данной книге? Потому
что книга в большей степени описывает создание серверных программ
для Web-приложений, часть из которых является e-commerсe приложениями. В книге описывается именно практическая часть создания
приложений одного, точнее, среднего звена Web-архитектуры.
В отличие от простых взаимодействий обычных приложений, e-commerсe приложения описывают отношения между тремя основными участниками деловой жизни: покупателем, партнером и поставщиком. Ра-

32 Часть 1. Электронная коммерция
ньше эти участники вели физические контакты, с рождением e-commerсe практически все контакты стали виртуальными. Использование
Web расширило экономические горизонты деловых отношений участников бизнес-процесса. Вся прелесть перехода от физических контактов к
виртуальным начинает проявляться при участии в бизнес-процессе
нескольких участников. Независимость от типа предприятия, суммы
капиталовложений и используемых программных средств позволяет
e-commerсe объединить различных участников в одном временном и
пространственном отрезке для улучшения координации совместных
усилий по обогащению. Кроме того, электронное использование ресурсов предприятия сотрудниками и партнерами сокращает расходы на
документооборот. Сегодня Web используется не только для рекламных
целей. Большое количество компаний доверяют e-commerсe практически все консультационные услуги, банки предоставляют возможность
клиентам работать со счетами, не отходя от компьютера, страховые
компании выписывают полисы и ведут учет страховых взносов, уже существуют Web-магазины и Web-каталоги. Использование e-commerсe позволяет управлять распространением и поддержкой продукции.
E-commerсe на сегодняшний день значительно больше, чем интерактивные транзакции между покупателями и продавцами. Это единственный
способ конкурировать в сегодняшней изменяющейся среде бизнеса.
E-commerсe представляет возможности дополнить существующие
каналы сбыта и развить новые маркетинговые и коммерческие каналы,
сократить деловой цикл времени, уменьшить бумажный документооборот, упорядочить административные взаимоотношения.
Практически все e-commerсe приложения можно разделить на составные части и технику взаимодействия между этими частями. Ключевыми элементами каждого создаваемого e-commerсe приложения в
большей степени являются обычные Web-элементы, такие, как серверы
приложений и баз данных, сетевая инфраструктура, средства разработки и непосредственно специфические сервисы или службы, используемые только в e-commerсe приложении. Структура общераспространенного e-commerсe решения состоит из нескольких различных по своей
природе частей.
•
Топология приложений иллюстрирует различные пути конфигурирования взаимодействий между пользователем, приложением и
данными.
•
Топология исполнения приложения описывает различные, функциональные узлы e-commerсe приложения и способы решения
бизнес-проблем, возникающих в момент исполнения e-commerсe
приложения.
•
Отражение сервисов, которыми пользуется клиент в e-commerсe
приложении. Под сервисами подразумеваются различного рода
внутренние службы, обеспечивающие полную функциональность
приложения.
•
Основные принципы взаимодействия всех компонентов e-commerсe
приложения. О том, как и почему отдельные компоненты системы
взаимодействуют между собой, описывается основными принципами взаимодействия.

Часть 1. Электронная коммерция 33
Последовательное использование вышеуказанных этапов проектирования и правильное понимание используемых топологий облегчит
жизнь не только создателям систем, но и ее будущим пользователям.
Как и в повседневной жизни, где существует множество способов
приобретения товаров и услуг, а значит, и множество различного рода
взаимоотношений клиента и покупателя, так и в электронной сфере
присутствует данное многообразие.
Отношения участников электронного бизнес-процесса описываются
несколькими основными сценариями e-commerсe приложения.
USER-TO-BUSINESS
В данном сценарии пользователь, внешний или внутренний, взаимодействует с данными или другими сервисами Web-приложения. Клиент
осуществляет деловые отношения с предприятием, пользуясь корпоративными данными.
USER-TO-ONLINE BUYING
Является исключением из общего сценария User-to-Business.
В данном сценарии клиент явно становится покупателем, а предприятие выступает в роли продавца. В современных периодических изданиях имеет специальную аббревиатуру (B2C).
BUSINESS-TO-BUSINESS
Сценарий, описывающий взаимоотношения минимум двух различных предприятий. Отношения могут формироваться непосредственно
между компаниями (B2B) без каких-либо посредников.
В другом случае во взаимоотношениях могут участвовать несколько
предприятий, организованных в так называемый eMarketPlace (B2M2B).
Как и в большинстве бизнес-сценариев, в eMarketPlace сценарии участвуют продающие и покупающие стороны, только теперь между участниками процесса описывается промежуточная структура. eMarketPlace
является аналогом обычной биржи, не хочется говорить о продуктовом
рынке. Данный сценарий очень напоминает электронные доски объявлений, только, в отличие от обычных сценариев, количество участников
бизнес-процесса по данному сценарию не ограниченно.
USER-TO-USER
Сценарий сотрудничества между пользователями для совместного
использования ресурсов e-mail, документы и т. д.
USER-TO-DATA
Клиент использует доступ к большим объемам данных, таким, как
тексты, изображения, видеоинформация и т. д.
APPLICATION INTEGRATION
Единственный сценарий, в котором отсутствует клиент как физический объект, описывает взаимодействие между приложениями, такими,
как Enterprise Resource Planning (ERP) системы, и обычные приложения.

34 Часть 1. Электронная коммерция
В настоящее время в современных e-commerсe приложениях используются данные, которые должны быть расположены и отсортированы в
определенном порядке, данные должны быть доступными и легко находимыми. Именно для этой цели существует система управления реляционными базами данных.
Основным звеном любого e-commerсe приложения является база
данных. Наличие мощной базы данных, способной справляться не только с большим количеством запросов, но и обработкой мультимедийных
объектов, позволяет предприятиям вести серьезный бизнес в электронной сфере. Большинство информации требуется незамедлительно, в момент обращения, а это значит, что хранилище данных должно иметь
определенные качества. Качества, способные быстро и верно указать
месторасположение необходимого ресурса. Вся деловая информация теперь хранится в базе данных. OLAP (online analytical processing — оперативная аналитическая обработка) системы также основываются на
данных, хранящихся с СУБД. Теперь можно использовать в аналитических запросах новые функции для скользящих итогов.
Проблемой большинства проектировщиков остается полное незнание
используемых программных продуктов. Бывает, что прекрасно работавшее приложение на одой платформе вдруг начинает вести себя очень
странно на другой прекрасно, даже подобной. Создавать независимое
приложение или строго ориентированное на одну платформу — это решение остается за проектировщиком. Тем более разговор можно вести
только о подобных системах. Сравнивать Windows-системы с UNIXклонами бесполезно, для каждой используются свои собственные решения. Вот здесь-то и можно упомянуть о Java, но разговор идет о выборе
готовых программных пакетов, обеспечивающих целостность и работоспособность e-commerсe приложения.
Первоначальным выбором осуществляется подготовка платформы,
на которой будет работать e-commerсe приложение. Выбор платформы
основывается на следующих критериях:
доступность как самой платформы, так и специалистов по обслуживанию этой платформы;
могут существовать специальные требования заказчика по использованию платформы;
Web-клиенты должны получить доступ к ресурсам-размещенным на
данной платформе.
Выбор операционной системы и базы данных хоть главная, но не
основная задача. Для прекрасной работы e-commerсe приложения требуется прекрасная работа всех компонентов системы. Говоря о выборе
программного обеспечения, нельзя не упомянуть о выборе виртуальной
машины Java. Например, для платформ Windows версия JVM 1.1.7
фирмы IBM оказалась значительно быстрее родной машины компании
SUN версии 1.2. А на платформах самой IBM говорить о сравнении просто бесполезно. Также не бесполезно будет узнать, каким JIT-компилятором оснащен Web-сервер, реализующий созданное приложение. Другим важным компонентом является EJB-контейнер, если в приложении
предполагается использовать EJB. Java является потоковым языком, и
большинство серверных компонентов многопоточные, использование

Часть 1. Электронная коммерция 35
многопроцессорных систем значительно ускоряет работу JVM. Некоторые операционные системы предоставляют свои потоки для использования JVM.
Глава 3. Использование языка программирования Java при
создании e-commerce приложений, основанных на Web
Java родилась как сетевой язык, не считая темных времен становления языка для бытовой техники. Современная Java представляет собой
достаточно мощное решение по создания Web-приложений и готова решать практически все возможные задачи, стоящие перед проектировщиками e-commerсe приложений, начиная с апплетов, улучшающих
внешний вид HTML-страницы, и заканчивая servlet, обеспечивающими
работу сервера. Фирма SUN, чьим детищем является Java, создала не
только высококлассный язык программирования, но и прекрасную технологию с тем же названием. Теперь создание приложения не только
опирается на хороший алгоритм, но и на возможности использования
библиотек классов, а также манипулированием встроенными компонентами, контейнерами, серверами, да и самой виртуальной машиной JVM.
И если раньше Java считалась языком апплетов, то с развитием e-commerсe фирмы SUN, IBM и другие производители стали развивать Javaтехнологию уже для использования в приложениях электронной коммерции.
Использование технологии Java фирмы SUN позволяет расширить
способности сетей. На сегодняшний момент Интернет и World Wide Web
являются фундаментом для построения сетевых приложений для всех
видов предприятий.
Java по своей природе является платформонезависимым, поддерживающим многопоточность, объектно-ориентированным языком программирования.
Создание Java-приложений на настоящий момент является почти
механической работой, в большей степени выполняемой машиной. IDE и
Case средства позволяют написать готовый программный продукт практически без рукописного введения текста.
В этом блеск и мощь Java. Фирма SUN продвигает добротный продукт, готовый строительный материал для коммерческих программных
продуктов. И единственное, что остается программисту, — это использовать широко доступные ресурсы Java.
И вот здесь начинается самое страшное. Масштабность рекламной
кампании по данному языку программирования привела к колоссальному объему появившихся на свет библиотек классов, технологии, основанных на этих классах. Порой самому программисту легче написать
несколько строк кода, чем найти необходимый класс и разобраться с его
методами. Технологии, реализованные на базе Java для рынка e-commerсe, достаточно обширны, и в настоящий момент практически каждое
из них превратилось в самостоятельное направление. Единственное, что

36 Часть 1. Электронная коммерция
объединяет весь этот «букет» технологии, — это язык, на котором пишутся компоненты, т. е. Java.
Applets, Beans и Enterprise bean далеко не полный перечень, возглавляющий список Internet/Intranet-технологии, разработанных для
использования Java-программистами в Web-приложениях.
Об апплетах (applets) — маленьких программках, встраиваемых в
Web-страницы, — говорилось практически с момента анонсирования
языка программирования Java фирмой SUN как сетевого языка программирования для бытовой техники. Первыми компонентами, реализованными на Java были апплеты. Развитие Java как сетевого языка программирования для бытовой техники звучит угрожающе. Но так было в
самом начале. Теперь Java нормальный язык программирования, которому посвящено громадное количество литературы. Уже существует
достаточное количество монографий, вышедших на русском языке и в
полной мере описывающих как синтаксис, так и применение апплетов в
Web-приложениях.
Еще одним Web-компонентом, создаваемым на языке Java, является
JavaBean. Стандартный JavaBean — новый способ создания и распространения компонентов, содержащих графические элементы. JavaBean — это визуальный компонент, компонент, который может быть кнопкой, списком, графиком или еще каким-либо графическим элементом.
Кроме представления данных в пользовательском интерфейсе, JavaBean
могут взаимодействовать с другими компонентами, использовать сообщения о событиях, получаемых от клиента для генерации каких-либо действий, и реализовывать часть логики приложения. JavaBean является компонентом с присущими ему интерфейсами и свойствами, JavaBean можно
использовать как самостоятельную единицу или совместно с другими JavaBean. Описание создания и установки JavaBean также можно найти на
книжных полках, посвященных программированию на языке Java.
Одна задача — создать хорошее приложение, другая — сделать приложение доступным широкой общественности.
С давних пор для распространения программного обеспечения используются архивы. Архивы — программы, основная задача которых заключается в упорядоченном хранении данных. Архивы работают как тиски,
«сжимая" хранимую в них информацию. Программные архивы предназначены именно для сжатия и хранения информации. Существует несколько типов архивов, различающихся по алгоритму сжатия. Самыми
популярными в среде Интернета являются zip-, tar- и rar-архиваторы.
Для облегчения распространения создаваемых компонентов фирма
SUN разработала специальный архив. Архив представляет собой файл,
содержащий сжатые данные Jar (Java Archiv)-архивы подобны обычным широко распространенным архивам, они содержат не только пакеты классов, но и многие другие ресурсы: графические файлы, файлы
свойств и непосредственно исполняемые Java-классы. Перед использованием jar-архивы не надо распаковывать, как обычные архивы. Чтобы
обеспечить доступ к классам, находящимся в архиве, существует три
стандартных способа. Либо имя jar-архива указывается в системной переменной Classpath, при этом нельзя забывать об ограничении в некоторых операционных системах на длину системных переменных, либо

Часть 1. Электронная коммерция 37
устанавливаются в системном окружении IDE, что предпочтительнее,
поскольку не зависит от длины системной переменной. Либо программист указывает вручную в момент загрузки приложения самый неудачный вариант, поскольку нет ничего интересного писать одно и то же в
командной строке.
Фирма SUN решила продолжить традицию и распространять Javaприложения и инструменты в архивах. Первая коллекция классов
JDK 1.0 содержалась в zip-архиве — classes.zip. Но затем появился новый стандарт, полностью реализованный на Java-Jar. И все последующие коллекции Java-классов стали распространяться в виде jar-архивов. Уже следующая версия стандартного набора JDK хранила классы в
архиве rt.jar. А впоследствии, с рождением новой версии Java2, появились архивы, переназначенные для хранения нескольких различных
типов приложений: для хранения приложений уровня предприятия используется EAR — Enterprise ARchive, и для хранения Web-приложений используется WAR — Web ARchive. Однако для распространения
Java-компонентов пока самым распространенным остается jar-архив.
Применение языка Java в Web-приложениях основывается не столько на создании новых частей кода, сколько на повсеместном использовании API. Различные наборы API, помогают избавиться от многотрудных повседневных программистских задач. Практически уже для всех
уровней Web-приложений существуют свои наборы API. Клиентский
уровень, сетевой, транспортный, а также уровни системного управления уже описаны не только в стандартном решении SDK компании
SUN, но в большой массе иных API распространяемых прочими производителями Java-систем.
Основная часть стандартных классов распространяется с префиксом
java практически все современные пакеты основного JDK, за редким
исключением, распространяются с данным префиксом. Бoльшая часть
API, применяемых в Web-технологии, поставляется в специальной
группе пакетов (обычно расположенных в jar-архиве) Extension Framework, позволяющей программе использовать пакеты расширения javax.
В отличие от стандартных пакетов, начинающихся со слов java, пакеты
расширения javax располагаются в отдельных архивах и не являются
частью стандартной платформы Java. Доля основных сервисов любого
Web-приложения, самая большая, приведена в табл. 1, там же содержится описание основных Web-сервисов и Java API, с чьей помощью
организуется доступ к сервисам Web-приложения.
Основные Web-компоненты и Java API
Web-компонент Используемый стандарт Java API
Web-сервер HTTP, HTML, XML Servlets, JAXP
Web-клиент HTTP, HTML, XML Applets, JAXP
Модель приложения CORBA IIOP JavaBeans
Бизнес-логика CORBA IIOP EJB, RMI
Web-скрипт ECMAScript JSP
Таблица 1

38 Часть 1. Электронная коммерция
Компания SUN — разработчик языка программирования Java —
предложила свое решение по созданию единой модели Web-приложений — J2EE-J2 Enterprise Edition платформа, основанная на новой версии Java, версии два, и дополненная специальными возможностями для
разработки приложений уровня предприятия. Почему основана на второй версии, а не на первой? Итак, Java 2 — улучшенный и значительно
обогащенный вариант первой версии 1995 г. начиная версии Java 2 разработчики получили в свои руки прекрасные средства управления приложениями. JVM, поставляемая в новой версии, работает стабильнее и
быстрее. Java 2 поставляется с улучшенным набором пакетов — Java Foundation Classes (JFC), включающим улучшенный интерфейс пользователя, получивший название swing компонентов. Теперь с Java могут работать даже люди, имеющие ограниченные способности. Java 2 стала
поддерживать технологию передачи данных между программами, ставшую уже стандартом Drag-and-Drop (DnD). В Java 2 добавлена поддержка звука. Повышена производительность Java-приложений за счет улучшения работы «мусоросборщика». И если раньше все было впервой и
вновь, то вторая версия залатала дыры и улучшила лучшее. Сравнению
различных версий Java можно посвятить отдельную книгу, что не входит
в планы автора. Кроме улучшения языка Java, само время, бурное развитие электронных взаимоотношений поставило задачу создания приложений, доступных в любое время, в любом месте, с помощью различных
устройств. Существование различных типов клиентов породило проблему создания приложения, способного общаться с любым клиентом и любой формой документа. Клиент работает с сервером, так было всегда.
Именно для сервера важна проблема унифицированного клиента.
Для различных типов клиентов определены различные используемые API, рекомендуемые компанией SUN при создании Web-приложений, основанных на языке Java.
Таблица 2 содержит описание основных типов Web-клиентов и необходимые наборы API, используемые при создании Web-компонентов.
Таблица 2
Набор API для различных типов Web-клиентов, реализованных на Java
Используемый API Апплет-приложения
JNDI 1.2 Не требует Использует Использует
Servlet 2.2 Не требует Не требует Не требует
JSP1.1 Не требует Не требует Не требует
RMI-IIOP 1.0 Не требует Использует Использует
EJB 1.1 Не требует Использует Использует
JMS 1.0 Не требует Использует Использует
JavaMail 1.1 Не требует Не требует Использует
JAF 1.0 Не требует Не требует Использует
JTA 1.0 Не требует Не требует Использует
JDBC 2.0 Не требует Использует Использует
Стандартные
приложения
EJB-приложения

Часть 1. Электронная коммерция 39
Как можно видеть из данной таблицы при создания различных типов
клиентов самым неприхотливым является уже ставший достаточно созревшим продуктом апплет. В отличие от него, EJB и стандартные приложения требуют для своей работы использование определенных наборов API. Данная таблица помогает разобраться с различными типами
клиентов и определить именно тот тип, который наиболее соответствует
решению поставленных задач.
Практически любому из представленных выше наборов API можно
посвятить отдельную книгу, но даже этого может не хватить для полного освоения всех тонкостей программирования Web-компонентов, использующих Java-технологию. Большинство из указанных наборов API
факультативно входят в новую Java-платформу — J2EE. Другие будут
либо добавлены в будущие версии этой платформы, либо заменены на
более усовершенствованные.
Платформа J2EE предназначена для создания серверных приложений, работающих на втором и последующих уровнях Web-архитектуры.
Использование J2EE позволяет в единой инфраструктуре организовать
единое выполнение приложения. Основным элементом J2EE-платформы
является контейнер. Контейнер представляет некоторое системное
окружение, представляющее свои услуги выполняемому компоненту.
Чаще всего именно контейнер управляет размещением и созданием экземпляра компонента. Впервые контейнеры стали использоваться в среде браузеров. Апплеты работают в среде браузера, но со своим системным окружением. Для всякого браузера существовала своя версия JVM,
Just-in-time (JIT)-компилятора и набора API, предназначенного для работы апплета. Теперь контейнеры работают на сервере, представляя
свои услуги для серверных объектов. Для работы компонента в контейнере и описания поведения в момент исполнения создается специальный дескриптор, текстовой файл, основанный на XML-тегах. Дескриптор содержит описание системных параметров и инициализационных
данных, предлагающих контейнеру правильную версию создания компонента. Платформа J2EE оставляет на производителей установку
свойств самих контейнеров. Любая компания может спокойно создавать
свои контейнеры с собственными свойствами, в то время как роль контейнера стандартизирована.
Существующая на момент написания книги версия J2EE работает
только со стандартными наборами JDK версии 1.2, 1.2.2, 1.2.2-001 и т. д.
Любителей усовершенствовать системы хочу предостеречь от одного
неверного шага. Для J2EE можно использовать только вышеописанные
версии, работать с версиями JDK 1.0 и 1.1 не представляется никакой
возможности. Также могут возникнуть трудности при использовании
JVM сторонних производителей. Все вышесказанное касается только
Windows-систем, для других операционных систем могут предъявляться другие требования. На момент написания книги основной номер описываемой версии J2EE был 1.2 или декабрьский релиз 1999 г. Платформа J2EE является готовым инструментом для создания многоуровневого
приложения. В поставку набора разработчика (Software Development
Kit (SDK) J2EE включена база данных CLOUDSCAPE одноименной
компании, сервер приложений J2EE и средства размещения на указан-

40 Часть 1. Электронная коммерция
ном сервере созданных классов различных компонентов. Непосредственно для создания Java-приложений уровня предприятия можно воспользоваться любым интегрированным средством разработки (IDE), таким, как VisualAge for Java компании IBM или FORTE for Java
компании SUN. Последний полностью создан самим создателем языка
Java, на языке Java, двойная удача. Еще одним плюсом можно считать
свободное распространение J2EE со всеми входящими в него утилитами
и программами. Ну а если идти дальше, можно воспользоваться и Java
Web-сервером опять же компании SUN, также полностью написанном
на Java. И такой прекрасный тандем, да еще на новой версии JVM, именуемой в народе HOTSpot, да к тому же и бесплатно, т. е. слов нет. Кроме всего этого наплыва счастья на рынке, то ли на «горбушке», то ли
мировом, представлены и другие производители программного обеспечения, предлагающие свои решения создания Web-приложений на языке Java.
Сам J2EE-сервер имеет встроенную возможность управлять виртуальной машиной (JVM), на которой работает, что дает возможность
разработчику работать с заранее определенным количеством потоков,
часть из которых можно направить на обработку http-запросов, а
Рис. 1.3. Графический интерфейс утилиты размещения компонентов
на J2EE-сервере
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
