Создание системы электронной коммерции

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание системы электронной коммерции

 

1 Корпоративные компоненты

 

На рисунке 1 показана общая схема взаимодействия компонентов. В этой работе будет подробно рассмотрен каждый тип компонентов, а в конце главы будет рассмотрен процесс построения, размещения и запуска приложения.

 

Рисунок 1 - Приложение Duke's Bank

 

На рисунке 2 более детально изображены связи между клиентами, корпоративными компонентами и таблицами базы данных. Вы видите, что конечные пользователи (Web-клиенты и клиенты J2EE-приложения) обращаются только к сессионным компонентам. На уровне корпоративных компонентов сессионные компоненты являются клиентами компонентов управления данными. На уровне сервера компоненты управления данными обращаются к таблицам базы данных, в которой сохраняются их состояния.

 

Рисунок 2 - Корпоративные компоненты приложения Duke's Bank

 

2 Сессионные компоненты

 

Приложение Duke's Bank имеет три сессионных компонента: AccountControllerEJB, CustomerControllerEJB и TxControllerEJB. (Tx обозначает бизнес-транзакцию, например перевод денег.) Эти сессионные компоненты обеспечивают клиентский взгляд на бизнес-логику приложения. Скрытыми от клиента являются процедуры на стороне сервера, реализующие бизнес-логику, доступ к базе данных, управление отношениями и выполнение проверки ошибок.

 

2.1 AccountControllerEJB

 

Бизнес-методы сессионного компонента AccountControllerEJB выполняют задачи, попадающие в следующие категории: создание и удаление компонентов управления данными, управление связями счет-пользователь и получение информации о счете.

Следующие методы создают и удаляют компоненты управления данными:

-createAccount;

-removeAccount.

Эти методы сессионного компонента AccountControllerEJB вызывают методы create и remove компонента управления данными AccountEJB. Методы createAccount и removeAccount генерируют исключительную ситуацию для указания неправильных аргументов метода. Метод createAccount генерирует IllegalAccountTypeException, если тип аргумента не Checking, Saving, Credit или Money Market. Метод createAccount также проверяет, что указанный пользователь существует, при помощи вызова метода findByPrimaryKey компонента управления данными CustomerEJB. Если результат этой проверки равен false, метод createAccount генерирует CustomerNotFoundException.

Следующие методы управляют отношениями счет-пользователь:

-addCustomerToAccount;

-removeCustomerFromAccount.

Компоненты управления данными AccountEJB и CustomerEJB используют отношения многие ко многим. Банковский счет может совместно использоваться более чем одним пользователем, а пользователь может иметь несколько счетов. Поскольку компоненты управления данными используют управляемую компонентом персистенцию, существует несколько методов управления этими отношениями. Дополнительная информация находится в разделе Отображение таблицы отношений для управляемой компонентом персистенции.

В приложении Duke's Bank методы addCustomerToAccount и removeCustomerFromAccount сессионного компонента AccountControllerEJB управляют отношением счет-пользователь. Метод addCustomerToAccount, например, начинает работу с проверки существования пользователя. Для создания отношения метод addCustomerToAccount вставляет строку в таблицу customer_account_xref базы данных. В этой таблице перекрестных ссылок каждая строка содержит customerId и accountId связанных сущностей. Для удаления отношения метод removeCustomerFromAccount удаляет строку из таблицы customer_account_xref базы данных. Если клиент вызывает метод removeAccount, удаляются все строки с указанным accountId из таблицы customer_account_xref.

Следущие методы получают информацию о счете:

-getAccountsOfCustomer;

-getDetails.

Сессионный компонент AccountControllerEJB имеет два метода get. Метод getAccountsOfCustomer возвращает все счета указанного пользователя при помощи вызова метода findByCustomer компонента управления данными AccountEJB. Вместо реализации метода get для каждой переменной экземпляра, AccountControllerEJB имеет метод getDetails, возвращающий объект (AccountDetails), который объединяет в себе полное состояние компонента AccountEJB. Поскольку он может вызвать один метод для извлечения полного состояния, клиент избегает издержек, связанных с несколькими удаленными вызовами.

 

.2 CustomerControllerEJB

 

Поскольку существует компонент AccountControllerEJB, управляющий отношением пользователь-счет, из этих двух сессионных компонентов CustomerControllerEJB является более простым. Клиент создает компонент управления данными CustomerEJB, вызывая метод createCustomer сессионного компонента CustomerControllerEJB. Для удаления пользователя клиент вызывает метод removeCustomer, который не только вызывает метод remove компонента CustomerEJB, но также удаляет из таблицы customer_account_xref все строки, идентифицирующие пользователя.

Сессионный компонент CustomerControllerEJB имеет два метода, возвращающих несколько пользователей: getCustomersOfAccount и getCustomersOfLastName. Эти методы вызывают соответствующие методы поиска - findByAccountId и findByLastName - компонента CustomerEJB.

 

2.3 TxControllerEJB

 

Сессионный компонент TxControllerEJB обрабатывает банковские транзакции. В дополнение к своим методам get (getTxsOfAccount и getDetails) компонент TxControllerEJB имеет несколько методов, которые изменяют балансы банковских счетов:

-withdraw;

-deposit;

makeCharge;

makePayment;

transferFunds.

Эти методы обращаются к компоненту управления данными AccountEJB для проверки типа счета и установки нового баланса. Методы withdraw и deposit предназначены для не кредитных счетов, в то время как методы makeCharge и makePayment предназначены для кредитных счетов. Если аргумент type метода не соотв?/p>