Реферат: Версия 01 История версий


Компания EleWise

Версия: 1.0

Экспертиза отдела разработки ПО на базе Java

Дата: 39345.88









Компания EleWise

Экспертиза отдела разработки ПО на базе Java


Версия 1.01


История версий

Дата

Версия

Описание

Автор

31 октября 2007 г.

1.0

Первая версия

Лютиков Дмитрий

13 ноября 2007 г.

1.1

Добавлена информация по плагинам для Atlassian JIRA

Овчинников Артём


























Содержание

1. Экспертиза: детальное описание. 3

1.1 Квалификация, опыт работы 3

1.2 Используемые платформы и технологии Java 3

1.3 Инструменты разработки 4

1.4 Реализованные проекты 4

1.4.1 Разработка Web-приложения для он-лайн Интернет-игры «Виртуальная Россия» 4

1.4.2 Разработка приложения для управления хранилищем электронной проектно-технической документации 7

1.4.3 Разработка портала для оформления заказов 11

1.4.4 Разработка плагинов для Atlassian JIRA 15

1.4.5 Разработка Web-приложения для мониторинга и документирования содержания федеральных или местных ТВ программ, распределяемых в регионах страны 17

1.4.6 Разработка Web-приложения для электронного документооборота 21

1.4.7 Разработка Web-приложения для управления оперативной поставкой материально-технических ресурсов (МТР) 26

27

28

29

29

30

Обучение 31

Экспертиза отдела разработки ПО на базе Java
^ 1.Экспертиза: детальное описание. 1.1Квалификация, опыт работы
Разработчики команды имеют практический опыт проведения следующих работ:

Установка и конфигурирование J2SDK на различных платформах (Microsoft Windows, Linux)

Установка и конфигурирование Jakarta Tomcat, версий 4.1, 5.0, 5.5, 6.0, включая настройку для работы с SSL протоколом, а также связывание с HTTP сервером Apache версий 1.3 и 2.0 при помощи mod_jk для улучшения производительности веб-систем.

Установка и конфигурирование других J2EE серверов, таких как JBoss AS версий 3.3 и 4.0, Oracle AS 10g, IBM Websphere.

Развертывание приложений на всех вышеперечисленных серверах и Servlet-контейнерах.

Разработка J2EE приложений для различных версий J2EE и J2SE (от 1.3 до 1.6)

Разработка J2EE приложений с использованием технологий:

Spring Framework, включая Sping AOP,

Struts, включая использование библиотеки Tiles и собственных TagLibs для создания элментов пользовательского интерфейса,

Ajax элементов и библиотек (DOJO, GWT), а также компонентов собственной разработки

Hibernate, включая работу с предустановленной схемой базы данных заказчика, композитными элементами и ключами, мапингом в XML-формате и аннотациях, а также подключение хранимых процедур для Oracle DB и PostrgeSQL,

Java Web Services, реализованные на базе J2EE-серверов, а также при помощи библиотек Axis и Xfire.

Разработка Standalone приложений с использованием GUI (Java Swing) и технологии Applet

Интеграция с различными системами по протоколам SOAP (Web Services) и HTTP, включая передачу больших файлов через HTTP и при помощи SOAP Streaming Attachments.

Использование JNI для работы с платформозависимыми библиотеками. Опыт разработки JNI-коннектора для библиотеки под операционную систему Linux.

Генерация и обработка форматов файлов SVG, PDF, XSLT-FO, XLS с использованием библиотек FOP, POI и других.

Разработка приложений, использующих функции протоколов LDAP, HTTP SSL.

Разработка приложений, использующих функции Java Activation Framework, Java Mail, Jakarta Commons HttpClient

Разработка плагинов для системы Atlassian JIRA и конфигурирование данной системы для постановки различных workflow-процессов.


^ 1.2Используемые платформы и технологии Java
J2SE, J2EE версий 1.3, 1.4, 1.5, 1.6 для Windows, Linux

Jakarta Tomcat, JBoss, Oracle AS (также OC4J Container), WebSphere

JSP, Velocity, Servlets, JDBC, JNDI, EJB, JSSE, JAXP, JNI


^ 1.3Инструменты разработки
IntelliJ IDEA

Oracle Jdeveloper

Apache Ant
1.4Реализованные проекты
В данном разделе описаны наиболее значимые проекты, реализованные или находящиеся в разработке отделом Java компании EleWise.


^ 1.4.1Разработка Web-приложения для он-лайн Интернет-игры «Виртуальная Россия»
Java-департамент компании Элевайз занимается разработкой и технической поддержкой web-приложения для игры «Виртуальная Россия». Заказчиком является ООО «РАСТРО». В настоящий момент игра успешно функционирует и значительно расширяется новым функционалом.

Игра представляет собой экономическую стратегию. В игре участвует несколько виртуальных городов – аналогов настоящих. Карты виртуальных городов наиболее реалистично отражают действительность.

Отделом было составлено детальное техническое задание на разработку данного приложения, также была разработана технология для создания карт городов и их использования в игре, включая навигацию по карте и всплывающие подсказки.

Архитектура приложения включает в себя следующий компоненты:

Платформа J2SE версии 1.5

Spring Framework 2.0 для конфигурирования системы и обеспечения декларативного способа управления транзакциями

Struts 1.3.8 наиболее популярный, простой и надежный Web Framework

Hibernate 3.2 для обеспечения автоматического связывания объектов и данных реляционной СУБД

В качестве СУБД для приложения игры была использована PostrgreSQL 8.2 как наиболее мощная среди свободно распространяемых СУБД.

Игра интегрирована с множеством платежных систем для взаимодействия по защищенному протоколу HTTPS. Были автоматизированы как процедуры ввод средств на личный счет, так и вывода со счета.

Для упрощения работы с некоторыми платежными системами была выполнена интеграция библиотеки ^ Curl при помощи native-интерфейса.

Для отображения карт городов была использована технология SVG, которая широко применяется в электронной картографии. Для удобства навигации по карте SVG документ был снабжен активным содержимым с использованием ECMAScript, а также для отображения карты была использована ActiveX-надстройка Adobe SVG Viewer. Для улучшения потребительских качеств Adobe SVG Viewer был разработан собственный компонент ActiveX, позволяющий разместить файлы карт в локальном кэше компьютера.



^ Рисунок 1. Карта города. Для навигации используются стрелки расположенные со всех сторон карты и мини-карта (общий план города). Все здания имеют свое назначение.




Рисунок 2. Используя карту, пользователь может перемещаться из одного здания в другое



Рисунок 3. Платежные системы. Игрок может перечислить на личный счет денежные средства из наиболее популярных российских и зарубежных платежных систем.


^ 1.4.2Разработка приложения для управления хранилищем электронной проектно-технической документации
Совместной командой отдела Java и отдела Oracle была проведена разработка системы хранения электронной проектно-технической документации. Проектная документация включала в себя 3D-модели авиалайнеров и их технические характеристики. Система позволяет создавать новые и хранить проекты технической документации для авиалайнеров в едином хранилище-репозитории. Проекты имеют сложную сетевую структуру данных и обладают свойством версионности.

В системе существует несколько ролей пользователей (набор ролей может изменяться). Каждая из ролей содержит набор привилегий, которые предоставляют доступ к различным функциям. Привилегии делятся на два типа: общие и проектные. Проектные привилегии ограничивают доступ к действиям над конкретными проектами, общие определяют доступ к функциям, не связанным с внесением изменений в определенный проект.

Система была разработана для ^ Oracle Application Server 10g. В качестве инструмента разраобтки использовался Oracle JDeveloper 10.1.3.

Основу приложения составляют базовый модуль для работы с проектами и несколько модулей для поддержки работы со специфичными типами проектов. Каждый модуль, как и все приложение, имеет два основных интерфейса:

Web-интерфейс (реализация Spring Web MVC Framework, JSP, JSTL, DOJO)

При помощи данного интерфейса пользователю предоставляются функции:

создание нового проекта в системе,

удаление проекта,

поиск проектов,

изменение атрибутов проекта,

просмотр списка версий проекта,

откат к версии,

фиксация версии проекта,

изменение статуса проекта,

просмотр журнала,

управление пользователями,

назначение ролей пользователей в проектах

Web Services (реализация Castor XML Framework, Oracle Web Services J2EE 1.4, Oracle Streaming Attachments)

Данный интерфейс разработан для программы-клиента (Authoring Tool), осуществляющей моделирование проекта. Authoring Tool позволяет изменять и просматривать 3D-модель, состоящую из множества VRML-документов. Также данное приложение позволяет составлять рецензию (Review) проекта и его частей. Взаимодействие с Authoring Tool осуществляется при помощи протокола SOAP и технологии Web Services. При этом приложение позволяет передавать и сохранять изменения больших массивов данных – для реализации такого функционала была использована технология SOAP Streaming Attachments. Для серилизации и десерилизации Java-объектов в XML и обратно использовался Castor XML Framework, как наиболее быстрый и простой фреймворк для работы со сложной иерархией объектов и XML.

Ядро приложения составляет ^ Spring Framework версии 2.0, который обеспечивает конфигурирование приложения, работу с транзакциями, работу web-интерфейса и модульность приложения.

Уровень данных был огранизован при помощи Hibernate 3.2, обеспечивающим получение объектов из базы данных Oracle DB 9i при помощи сложных запросов и хранимых процедур, написанных на языке PLSQL. В данном приложении был эффективно применен плагин для среды разработки Eclipse - Hibernate Tool, позволяющий генерировать модель классов сущностей системы по имеющейся схеме БД. Схема БД была предоставлена заказчиком и содержала множество комплексных ключей и сложные зависимости между таблицами.

Для автоматизации тестирования и приемки приложения был использован ^ JUnit framework. Была создана система тестов, позволяющих проверить не только внутренний функционал системы, но и интерфейсы Web-сервисов.

Система была успешно внедрена в эксплуатацию в мае 2007 года и ожидается дальнейшее расширение ее функционала. Архитектура системы позволяет значительно упростить процесс разработки и встраивания новых модулей для поддержки различных типов проектов.



^ Рисунок 4. Создание нового проекта. При создании проекта пользователь выбирает тип проекта, а затем вводит значения для набора атрибутов проекта.



Рисунок 5. Свойства проекта. Проект содержит множество свойств и атрибутов. Возможно присоединение документов различных типов к проекту, копирование и удаление проекта, откат версии, просмотр специфичных свойств для типа проекта (“View Variation Features” и “View Section Properties”)




Рисунок 6. Список проектов. Фильтр поиска сохраняется в БД, при каждом входе в систему пользователь может войти на страницу и получить список проектов, с которыми он работал. Фильтр формируется из атрибутов проекта, задаваемых в типе проекта (в данном примере – “FUSELAGE”).




Рисунок 7. Просмотр журнала системы. Используется Ajax-компонент из библиотеки DOJO для построения иерархических списков. Дерево записей создается динамически. Записи подсвечиваются различным цветом в зависимости от статуса сообщения.

^ 1.4.3Разработка портала для оформления заказов
Отделом Java компании Elewise был разработан и внедрен в эксплуатацию портал для оформления заказов для одной из крупных торговых сетей. Портал позволяет менеджерам компании обрабатывать заказы от клиентов компании. Заказы объединяются в группы и могут быть взаимосвязанными. Система имеет сложный иерархический каталог товаров и возможность управления прайс-листом.

Основной задачей при реализации данного проекта было разработать web-приложение максимально упрощающее работу пользователя, как в Standalone-приложениях, имеющих быстрый и понятный интерфейс. Для решения этой задачи в качестве пользовательского интерфейса был выбран Ajax framework – GWT (Google Web Toolkit). Стандартный HTML интерфейс был переработан в widget-ы, привязанные к Ajax-вызовам.

В качестве основного каркаса приложения был использован ^ Spring Framework 2.0. Spring имеет встроенную поддержку GWT как технологии отображения.

Система имеет два основных интерфейса:

Web-интерфейс (Spring Web MVC, GWT)

Данные интерфейс является основным, позволяет формировать и обрабатывать заказы. Интерфейс полностью построен на Ajax-запросах элементов управления GWT. Запросы управляются специальным диспетчером Spring Framework, который связывает действия пользователя с работой логики приложения.

Web Service (^ Spring, Castor, Xfire)

Интерфейс Web-сервисов используется для обновления каталога, прайс-листа и информации о пользователях и подразделениях. Для реализации интерфейса были использованы технологии:

^ Xfire – реализация спецификации Web Services. Наиболее полно поддерживает стандарты, используемые в Web Services, обладает высокой произоводительность и хорошо интегрируется с различными фреймворками (Spring, Castor). Для серилизации и десерилизации Java-объектов в XML использовался Castor XML Framework, который позволил получать на уровне сервисов готовые для работы с данными объекты языка Java.

Система была успешно внедрена в апреле 2007 года.



Рисунок 8. Вход в систему




Рисунок 9. Создание заказа. Товары разделены на подгруппы, могут иметь изображения.




Рисунок 10. Список подразделений




Рисунок 11. Редактирование данных пользователя

^ 1.4.4Разработка плагинов для Atlassian JIRA
Компания Элевайз активно использует систему управления изменениями проекта и отслеживания ошибок. Основной такой системой является Atlassian JIRA. Команда Java отдела разработала несколько встраиваемых модулей (plugins - плагинов) для данной системы, значительно упрощающих работу с проектами и расширяющих ее функционал.

Для разработки плагинов использовался ^ Atlassian Plugin Developer Kit и система сборки проектов Maven.

Были разработаны следующие плагины:

Time Tracking

Данный плагин предоставляет возможность вести отчётность о затраченном рабочем времени.

Для этого в системе JIRA заводятся 2 группы пользователей: разработчики и менеджеры проекта. Функции разработчика и менеджера реализованы в виде портлетов:

^ Time Tracking Developer's Portlet. Предназначен для занесения разработчиком отчетов о проделанной работе за день (TRs) и просмотра статистики по часам для своей учетной записи.

^ Time Tracking Manager's Portlet. Предназначен для управления отчетами о трудозатратах и формирования различных отчетов. Данный портлет позволяет сохранять консолидированные отчёты в xls-формате для просмотра в MS Excel, получать валовый отчеты по проекту, содержащие общую информацию о трудозатратах по проекту, а также отчет о сверхурочной работе, отображающие информацию о своевременности выполнения плана проекта.




^ Рисунок 3. Выбор и отображение отчетов о трудозатратах


Для реализации использовались:

OpenSymphony WebWork - framework для разработки web-приложений на JAVA, лежащий в основе Atlassian JIRA.

Apache Velocity - технология, позволяющая создавать различные шаблоны для отображения данных.


Компания EleWise

Данный плагин позволяет «на лету» и без выгрузки каких-либо промежуточных файлов осуществлять обмен данными между системами ^ Atlassian JIRA и Microsoft Project.

Процедуру работы плагина следующая: пользователь локально открывает проект в MS Project, а в браузере загружает JIRA, выбирает портлет интеграции Компания EleWise. На странице портлета отображается информация о запросах проекта в JIRA и задачах проекта в MS Project. Выбирая те или иные задачи или запросы можно осуществлять обмен данными между системами.



Рисунок 4. Добавление новых задач в MS Project на основании запросов JIRA


В основе плагина лежит Applet, использующий библиотеку JaCoB 1.11.1.

JaCoB (JAVA-COM Bridge) - технология, позволяющая вызывать COM-объекты из JAVA при помощи JNI.

При создании аплета использовались компоненты библиотеки Swing.

Функции реализуемые плагином:

Добавление новых запросов в JIRA на основании задач MS Project

Добавление новых задач в MS Project на основании запросов JIRA

Синхронизация запросов в JIRA и задач в MS Project

Настройка соответствия уровней запросов в JIRA и задач в MS Project (в том числе возможность сопоставить компонентам и версиям проекта в JIRA задач в MS Project)

Настройка соответствия статусов запросов в JIRA и процента завершения задач в MS Project.


Также командой отдела Java были разработаны плагины:

позволяющие расширить информацию о пользователях JIRA.

расширяющие функционал потока работ (Workflow) в JIRA.

расширяющие функционал JIRA SOAP-интерфейса.

расширяющие набор типов полей (Customfields) в JIRA.

реализующие различные сервисы JIRA (рассылка различных нотификаций, создание запросов и других действий при определенных событиях).



^ 1.4.5Разработка Web-приложения для мониторинга и документирования содержания федеральных или местных ТВ программ, распределяемых в регионах страны
Отделом Java компании Elewise была разработана система мониторинга и документирования содержания федеральных и местных каналов телевидения в регионах для Российской телевизионной и радиовещательной сети. Система осуществлять запись и трансляцию видеосигнала на серверах ЛКТ (локальная контрольная точка), расположенных в регионах Российской Федерации. Каждый сервер ЛКТ подключен к ТВ-тюнеру, настроенному на прием нескольких ТВ-каналов. Работу ЛКТ обеспечивает программное обеспечение для работы с видео на Unix-like системах (Mencoder, VideoLAN), а также специально разработанное отделом ПО для планирования записи.

Записи сделанные на ЛКТ могут быть загружены на центральный сервер для просмотра. Также была предусмотрена возможность он-лайн просмотра записи в реальном времени. Для этого была использована технология Video Streaming over HTTP, а также компонент (плагин) для браузеров Mozilla Firefox и Internet Explorer для просмотра видео-потока – VideoLAN client.

Схема сети представлена на рисунке 12.



Рисунок 12. Схема сети. Каждая ЛКТ содержит несколько серверов с большим дисковым пространством. Сервера дублируют друг друга, и в случае «зависания» одного из серверов выполняется его перезагрузка, задачи по записи переносятся на соседний сервер.


В состав приложения также вошли подсистема управления пользователями и доступом к ЛКТ, управления настройкой каналов на серверах ЛКТ и настройками ЦС (Центрального Сервера), а также система он-лайн помощи.

Технологии, использованные в приложении:

В качестве хранилища данных на центральном сервере и серверах ЛКТ используется файловая система и база данных MySQL (хранение настроек записи и прочих данных). Содержимое видео-файлов на серверах ЦС и ЛКТ хранится в специально структурированном виде.

Основное приложение центрального сервера было развернуто на ^ Apache Tomcat 5.5. Интерфейс для настройки и конфигурирования серверов ЛКТ обеспечивается веб-сервером Apache и технологией PHP.

Struts 1.2 – наиболее распространенный и надежный web-каркас, поддерживающий MVC парадигму.

^ Tiles – плагин для Struts, позволяющий в значительной степени упростить разработку компонентов пользовательского интерфейса. При помощи Tiles были созданы шаблоны отображения (Layout) и компоненты ПИ, такие как: постраничный просмотр, таблицы, меню, панели, закладки.

^ Hibernate 2 – ORM Framework для автоматического получения Java-объектов модели сущностей системы при обращении к базе данных. Hibernate является одним из наиболее продвинутых ORM для Java и поддерживает множество зависимостей между сущностями. К тому же Hibernate абстрагирует разработчиков от прямого использования реляционного представления, позволяя проводить операции с данными напрямую через объектную модель Java.

VideoLAN – кросс-платформенный медиа-проигрыватель и одновременно сервер потокового видео. Поддерживает работу на практически всех популярных операционных системах, а также множество форматов видео. Имеет специально разработанный компонент просмотра видео-потоков для браузеров Mozilla Firefox и Internet Explorer. Трансляция и показ видео-потока в системе организована полностью при помощи VideoLAN.

Mencoder – программный комплекс для перекодирования видео информации, входит в состав ^ MPlayer – The Movie Player – широко используемого ПО для просмотра видео на Unix-like системах. Mencoder поддерживает перекодирование в различные форматы, сжатие видео- и аудио-потока путем снижения битрейта и размера изображения на лету. В системе видеосигнал в формате DivX, снимаемый с тюнера, перекодируется в Xvid, затем сжимается до необходимых размеров, после чего посылается в Pipe-файл, из которого осуществляет чтение VideoLAN.

В ходе работы было доработано приложение ТВ-тюнера gorecord, использующее интерфейс Video4Linux для работы с ним. В него была добавлена функция записи в выходной поток (stdout) и функция синхронизации видео- и аудио-потока для возможности он-лайн вещания в реальном времени.

Система также использует множество команд и утилит оболочки bash.

Программный комплекс был успешно внедрен в 2006 году.



Рисунок 13. Вход в систему. Пользователь может выбрать сервер, с которым он будет работать.



Рисунок 14. Настройки сервера. Указывается IP-адрес сервера и разница во времени для региона, в котором он установлен .




Рисунок 15. Редактирование данных пользователя. Администратор может назначить уровень доступа пользователя к серверам




Рисунок 16. Создание новой записи. Пользователь может ввести параметры вручную или использовать одну из имеющихся предустановок.



Рисунок 17. Расписание записи каналов на ЛКТ.




Рисунок 18. Он-лайн видео просмотр. Пользователь может включить запись видео-программы в файл или остановить просмотр при помощи веб-интерфейса.
^ 1.4.6Разработка Web-приложения для электронного документооборота
Компанией Elewise было разработано приложение для обеспечения электронного документооборота юридического отдела компании ТНК-BP. Документооборот компании использует программы от компании Microsoft для создания и редактирования текстовых документов и электронных таблиц. Система должна была обеспечивать версионность документов и хранение их в единой базе данных, а также в ней должна были быть реализованы различные дополнительные функции для поддержки автоматизированных операции при работе с договорами. Важным также являлось требование к интернационализации приложения – оно должно было быть выполнено на русском и английском языках и поддерживать соответственно хранение английской и русской версии одного документа.

Также в состав системы входят управление пользователями и доступом к документам, мониторинг системы (доступ к документам, разделам, запись сделанных изменений), управление справочной информацией и система он-лайн помощи.

Для создания web-интерфейса был использован корпоративный стандарт Design Guide для оформления порталов компании.

Система использует единую сквозную авторизацию пользователей через соединение к ^ LDAP-каталогу при помощи классов и методов пакета javax.naming.

Основные технологии, использованные в приложении:

В качестве хранилища документов используется база данных Oracle DB 9i. Содержимое файлов документа также сохраняется в БД с использованием Oracle Blob Type.

Приложение было развернуто на Apache Tomcat 4.1. Так как веб-портал компании работает на веб-сервере ^ Microsoft IIS, servlet-контейнер был интегрирован с ним при помощи isapi_redirect.

Struts 1.2 – наиболее распространенный и надежный web-каркас, поддерживающий MVC парадигму.

^ Tiles – плагин для Struts, позволяющий в значительной степени упростить разработку компонентов пользовательского интерфейса. При помощи Tiles были созданы шаблоны отображения (Layout) и компоненты ПИ, такие как: постраничный просмотр, таблицы, меню, панели, закладки.

^ Hibernate 2 – ORM Framework для автоматического получения Java-объектов модели сущностей системы при обращении к базе данных. Hibernate является одним из наиболее продвинутых ORM для Java и поддерживает множество зависимостей между сущностями. К тому же Hibernate абстрагирует разработчиков от прямого использования реляционного представления, позволяя проводить операции с данными напрямую через объектную модель Java.

На этапе второй фазы возникла необходимость удаления версионности, реализации прямого редактирования документа «на лету» и автоматической защиты документов от редактирования при помощи пароля. Версионность была отмена достаточно просто при помощи незначительных изменений в модели классов сущностей системы (здесь активно использовались интерфейсы, что позволило обойти множество трудностей).

Для реализации прямого редактирования была использована технология ^ WebDAV (Web Folders в Windows), а в качестве компонента реализующего функции WebDAV была выбрана свободнораспространяемая библиотека Jakarta Slide от Apache. Сервис был настроен таким образом, что WebDAV выступал как хранилище документов прямо в памяти компьютера, что значительно ускоряло процесс работу с ними.

Автоматическая защита была создана при помощи утилиты, написанной специалистами отдела на схожем с Java языке C#. Утилита использует программные интерфейсы MS Word для .NET Framework. При сохранении документа был организован вызов данной утилиты, и полученный результат сохранялся в БД. В дальнейшем данная утилита была заменена использованием JNI native-библиотеки для работы с COM-объектами Windows – JaWin (выбор был сделан по отзывам по сравнению с JaCob). Переход был связан с нестабильностью работы приложения и длительными задержками при работе приложения при сохранении документа.

Система внедрена и эксплуатируется с 2005 года



^ Рисунок 19. Вход в систему. Используется список подразделений из LDAP-каталога




Рисунок 20. Основной экран системы. Для быстрого поиска используется панель в верхней части. Доступен расширенный поиск, а также просмотр списка всех документов.




^ Рисунок 21. Список документов для англоязыного интерфейса.




Рисунок 22. Прямое редактирование документа через WebDav. Документ открывается на компьютере пользователя в редакторе MS Word и затем может быть сохранен прямо на сервере без использования форм загрузки и обновления файла.




Рисунок 23. Мониторинг системы




Рисунок 24. Создание нового документа.



Рисунок 25. Список пользователей системы. Здесь можно задать язык интерфейса для пользователя по умолчанию, а также роль пользователя в системе.
^ 1.4.7Разработка Web-приложения для управления оперативной поставкой материально-технических ресурсов (МТР)
Компанией Elewise было разработано приложение для управления оперативной поставкой материально-технических ресурсов (МТР) и контрактованием для компании ТНК-BP. Система позволяет вводить информацию о возникающих потребностях в различных подразделениях компании, расположенных на всей территории Российской Федерации. Ввод потребностей осуществляется при помощи импорта файла, который может содержать достаточно большой объем данных. Предусмотрена также процедура ручного ввода потребностей. Процедура контрактования (выбор поставщика, сроков поставки, договора, цен) также автоматизирована при помощи импорта. Система ведет регистрацию счетов-фактур для поставленных МТР, а также оперативный учет поставки МТР на местах. Для получения информации о зарегистрированных потребностях, контрактовании и исполнении потребностей используется мощная система генерации отчетов, предоставляющая данные как в виде Excel-документов, так и в виде HTML.

Система имеет двуязычный интерфейс на английском и русском языках.

В состав системы входят управление пользователями и группами пользователей, разграничение доступа к различным разделам системы, мониторинг состояния системы (отлов ошибок, очистка памяти), управление справочной информацией и система он-лайн помощи.

Система использует единую сквозную авторизацию пользователей через соединение к ^ LDAP-каталогу при помощи классов и методов пакета javax.naming.

Для создания web-интерфейса был использован корпоративный стандарт Design Guide для оформления порталов компании.

Основные технологии, использованные в приложении:

В качестве хранилища документов используется база данных Oracle DB 9i.

Приложение было развернуто на servlet-контейнере ^ Apache Tomcat 4.1.

Struts 1.2 – наиболее распространенный и надежный web-каркас, поддерживающий MVC парадигму.

Tiles – плагин для Struts, позволяющий в значительной степени упростить разработку компонентов пользовательского интерфейса. При помощи Tiles были созданы шаблоны отображения (Layout) и компоненты ПИ, такие как: постраничный просмотр, таблицы, меню, панели, закладки.

^ Hibernate 2 – ORM Framework для автоматического получения Java-объектов модели сущностей системы при обращении к базе данных. Hibernate является одним из наиболее продвинутых ORM для Java и поддерживает множество зависимостей между сущностями. К тому же Hibernate абстрагирует разработчиков от прямого использования реляционного представления, позволяя проводить операции с данными напрямую через объектную модель Java.

^ Jakarta POI для генерации отчетов в формате MS Excel и обработки файлов импорта. POI позволяет работать с Excel-данными при помощи обычных классов Java без использования JNI. POI поддерживает большинство функций, имеющихся в программе MS Excel. Для генерации отчетов были разработаны шаблоны, на основе которых генерируются строки отчетов различного оформления (шапка отчета, подсветка строк различными цветами и другие). В результате для изменения вида генерируемого отчета необходимо лишь отредактировать соответствующий ему xls-файл.

Поскольку система использует достаточно большие объемы данных при формировании отчетов, была применена технология вычисления лимита памяти, используемой JVM.

Система внедрена и эксплуатируется с 2005 года

Рисунок 26. Форма поиска потребностей. Поиск ведется по многочисленным параметрам потребности, параметры сохраняются на протяжении работы с системой

Рисунок 27. Форма параметров для генерации отчета.


Рисунок 28. Отчет в виде HTML.


еще рефераты
Еще работы по разное