Тема разработки 2




Скачать 98.36 Kb.
НазваниеТема разработки 2
Дата публикации17.03.2013
Размер98.36 Kb.
ТипДокументы
odtdocs.ru > Литература > Документы

Оглавление

1.Тема разработки 2

2.Выбор методов и средств решений 2

3.Разработка проекта 4

4.Результаты 12

5.Тема дипломной работы 12

6.План пояснительной записки 12

7.Список литературы 12

1.Тема разработки


Необходимо разработать основу веб-редактора формализованных электронных документов на основе технологии GWT. Этот редактор должен стать частью другого проекта – портала таможенного декларирования, также основанного на GWT.

Требования:

  1. Редактор должен быть клиент-серверным приложением, где клиент базируется на веб-браузере IE 7+.

  2. Редактор должен быть основан на Java и GWT.

  3. Редактор должен поддерживать валидацию документов.

  4. Редактор должен быть легко расширяемым для новых типов документов.

  5. Источником формализованных документов являются XSD-схемы, поставляемые сторонней организацией.

  6. Редактор должен быть устойчив к обрывам связи со стороны клиента и отказам сервера.
^

2.Выбор методов и средств решений


С учетом требований:

  1. Клиентская часть

    1. GWT

      Cвободный Java фреймворк, который позволяет веб‐разработчикам создавать Ajax приложения на основе Java. Выпускается под лицензией Apache версии 2.0. GWT делает акцент на повторное использование и кросс‐браузерную совместимость.

      Используя GWT разработчики могут быстро писать и отлаживать AJAX приложения на языке Java используя инструментарий отладки Java. Когда приложение загружено компилятор GWT переведёт код Java приложения в соответствующий браузеру JavaScript и HTML.

      Утилита командной строки applicationCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта Eclipse.

      ^ Основные компоненты GWT:

    • Компилятор GWT Java-to-JavaScript Переводит Java код в JavaScript.

    • GWT Hosted Web Browser Позволяет запускать GWT приложения в режиме hosted (приложения запускаются как Java код в JVM без компиляции в JavaScript).

    • JRE emulation library Реализация часто используемых стандартных Java классов на JavaScript.

    • GWT Web UI class library Множество пользовательских интерфейсов и классов для создания виджетов.

  1. Серверная часть

    1. ОО-моделирование документов на основе периодически обновляющихся схем XSD реализовано технологией EMF.

      Это свободный фреймворк, основанный на Eclipse, - для генерации кода, инструментов и прочих приложений, - на основе структурированной модели данных. EMF предоставляет инструментарий и поддержку во время исполнения для того, чтобы из модели, описанной в XMI, получить

    • соответствующий набор Java-классов

    • набор адаптеров, позволяющих просматривать и редактировать модель

    • простейший редактор модели

      Модель также может быть описана

    • аннотированным Java-кодом

    • UML

    • XML-схемой

    • моделью формата Rational Rose

      Все это может импортировать EMF. Архиважно, что EMF обеспечивает основу для взаимодействия с другими инструментами и приложениями, основанными на нем.

    1. Эта же технология позволяет валидировать документ любой сложности с учетом разнообразных критериев.

    2. Основное хранилище документов предоставляется порталом декларирования – документы хранятся там в сериализованном виде.

    3. Устойчивость к отказам клиента и сервера, а также серьезные затраты времени на сериализацию/десериализацию больших документов, - требуют организации временного хранилища для редактора. Библиотека teneo позволяет применять существующие технологии ORM, такие как Hibernate, – к объектам EMF.

      ORM

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

ORM — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

В объектно-ориентированном программировании объекты в программе представляют объекты из реального мира. В качестве примера можно рассмотреть адресную книгу, которая содержит список людей вместе с нулём или более телефонов и нулём или более адресов. В терминах объектно-ориентированного программирования они будут представляться объектами класса «Человек», которые будут содержать следующий список полей: имя, список (или массив) телефонов и список адресов.

Суть проблемы состоит в преобразовании таких объектов в форму, в которой они могут быть сохранены в файлах или базах данных, и которые легко могут быть извлечены в последующем, с сохранением свойств объектов и отношений между ними. Эти объекты называют «постоянными» (англ. persistent). Исторически существует несколько подходов к решению этой проблемы.

Hibernate

Hibernate object-relational mapping (ORM) решение для языка программирования Java. Оно является свободным программным обеспечением с открытым исходным кодом (open source), которое распространяется по условиям GNU Lesser General Public License. Данное решение предоставляет лёгкий в использовании каркас (фреймворк) для отображения объектно-ориентированной модели данных в традиционную реляционную базу данных.

^ Основные возможности

Целью Hibernate является освобождение разработчика от значительного объёма общих задач программирования по обеспечению сохранности данных (persistence — сохранность данных после прекращения работы программы). Разработчик может начать использовать Hibernate в процессе разработки как с нуля, так и для уже существующей базы данных.

Hibernate не только заботится о связи Java классов с таблицами базы данных (и типов данных Java в типы данных SQL), но также предоставляет средства для автоматического построения запросов и извлечения данных и может значительно уменьшить время разработки, которое обычно тратится на ручное написание SQL и JDBC кода. Hibernate генерирует SQL вызовы и освобождает разработчика от ручной обработки результирующего набора данных и конвертации объектов, сохраняя приложение портируемым во все SQL базы данных.

Hibernate обеспечивает прозрачную поддержку сохранности данных (persistence) для «POJO»-объектов (то есть для стандартных Java-объектов); единственное строгое требование для сохраняемого класса — конструктор по умолчанию. (Для корректного поведения в некоторых приложениях требуется уделить особое внимание методам equals() и hashCode())

^ Hibernate обычно используется как в standalone Java приложениях, так и в Java EE приложениях, используя сервлеты или EJB.

  1. Средства разработки

    1. Ввиду полной поддержки EMF, простоты организации проектов и доступности средой разработки был выбран ^ Eclipse.

      Это свободный фреймворк для разработки модульных кросс-платформенных приложений (разрабатывается и поддерживается Eclipse Foundation).

      Eclipse — в первую очередь полноценная Java IDE, нацеленная на групповую разработку, снабжённая средствами для работы с системами контроля версий (поддержка CVS входит в поставку Eclipse, активно развиваются несколько вариантов SVN модулей, существует поддержка VSS и других). В силу бесплатности и высокого качества во многих организациях Eclipse — корпоративный стандарт для разработки приложений.

      Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ (см. ниже). Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью зависит от нижележащей платформы (операционной системы), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает проблемы совместимости и устойчивости приложений на разных платформах.

      GUI в Eclipse написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT.
^

3.Разработка проекта


  1. Этапы

    1. Создание модели EMF

    2. Работа с объектами EMF

    3. Создание простейшего приложения GWT

    4. Разработка схемы взаимодействия клиента и сервера

  2. Реализация

    1. Создание модели EMF

      1. Среда разработки Eclipse позволяет преобразовать XSD-схему в модель EMF, и на основе ее сгенерировать модельные java-классы. Эти классы при сериализации дадут XML-документы, удовлетворяющие исходной XSD-схеме.

      2. Классы будут снабжены различными утилитами, в т.ч. для валидации.

      3. Рис.1. Генерация модели в Eclipse



















    2. Работа с объектами EMF

      1. EMF предоставляет рефлексию более богатую, нежели оригинальная рефлексия java. Пользуясь ей, можно разбирать документы сложной структуры более эффективно, чем при помощи обычных XML-парсеров.

      2. Валидация EMF-объектов осуществляется следующим образом:

        // результаты валидации

Diagnostic diagnostic = Diagnostician.INSTANCE.validate( objectToValidate );

if ( diagnostic.getSeverity() != Diagnostic.OK )

{ // если не всё в порядке

// пробегаем по всем результатам диагностики

Iterator iter = diagnostic.getChildren().iterator();

while ( iter.hasNext() )

{

Diagnostic child = iter.next();

processDiagnosticChild( child, null );

}

}



/**

* выдает сообщение валидации по простому объекту

*

* @param diag полученная ранее диагностика

* @param featureToCheck проверяемый объект

*/

protected void processDiagnosticChild(

Diagnostic diag,

EStructuralFeature featureToCheck )

{

// код диагностики

int code = diag.getCode();
// информация об ошибках

List invalidObjects = diag.getData();
if ( code == EObjectValidator.EOBJECT__EVERY_DATA_VALUE_CONFORMS ||

code == EObjectValidator.EOBJECT__EVERY_KEY_UNIQUE ||

code == EObjectValidator.EOBJECT__EVERY_MAP_ENTRY_UNIQUE ||

code == EObjectValidator.EOBJECT__EVERY_PROXY_RESOLVES ||

code == EObjectValidator.EOBJECT__EVERY_REFERENCE_IS_CONTAINED ||

code == EObjectValidator.EOBJECT__EVERY_MULTIPCITY_CONFORMS )

{

// особые случаи

EObject eObject = (EObject) invalidObjects.get( 0 );

EStructuralFeature esf = (EStructuralFeature) invalidObjects.get( 1 );
updateResults( diag, featureToCheck, eObject, esf );
// проверяем на возможность сохранения

isSaveable = !disallowsSaving( code, esf );

}

}


    1. Создание простейшего приложения GWT

      1. Веб-приложение GWT может исполняться различными контейнерами веб-приложений, в т.ч. Apache Tomcat.

      2. Проект содержит 3 каталога:

  • server/ – содержит серверный код, компилируемый java-компилятором и исполняемый jvm

  • client/ – содержит клиентский код, компилируемый gwt-компилятором и исполняемый браузером

  • public/ – файлы для организации html-страниц, на которые опирается клиентский код.

      1. Клиентский код может быть

  • скомпилирован и открыт в браузере

  • отлажен отладчиком gwt, который основан на коде Mozilla и визуализует html и javascript-разметку при помощи графической библиотеки SWT

    Рис.2. Запуск проекта

    1. IE 7





    2. GWT Hosted Browser







    1. Разработка схемы взаимодействия клиента и сервера

      1. Необходимо решить задачу привязки полей ввода и редакторов списков к моделям на сервере. Объекты EMF не реализуют java.io.Serializable, а сериализация в XML и пересылка огромных строк слишком затратна.

      2. Это значит, что каждый элемент редактирования документа должен отождествлять себя с какой-то частью объекта EMF на сервере. Также, для реализации дополнительной логики поведения элементов (появления/скрытия одних в зависимости от значений других) и сложной валидации, - эти элементы редактирования должны быть связаны между собой.

      3. Многие из типов документов насчитывают более сотни полей. Значит, сопоставить элементы редактирования с моделью вручную нельзя. Необходимо разделить при создании каждой страницы содержание (которое диктует структура документа) - и форму, в которую оно облекается (которую диктует спецификация, говоря о расположении элементов редактирования).

      4. Структура документа полностью отражена в модельных классах, сгенерированных EMF. Она доступна через рефлексию.

      5. Расположение элементов можно наглядно представить html-подобной разметкой. Эта разметка может быть обработана java-программой и в соединении с моделью преобразона в java-код клиентской части редактора.



      1. Рис.3. Создание редактора конкретного типа документов.





4.Результаты


Создано веб-приложение на GWT, использующий сгенерированную модель EMF. Создан вспомогательный к нему конвертер HTML и EMF в java-код. Реализованы классы взаимодействия клиента и сервера.
^

5.Тема дипломной работы


Разработка веб-редактора формализованных электронных документов на основе технологии GWT

6.План пояснительной записки


  1. Введение

  2. Задание на разработку

  3. Обзор современных ajax-фреймворков

  4. Обзор современных фреймворков для моделирования

  5. Обоснование выбора фреймворков

  6. Проектирование редактора

  7. Реализация редактора

  8. ТЭО

  9. ЗИС

7.Список литературы


  1. http://ru.wikipedia.org/wiki/Google_Web_Toolkit

  2. http://ru.wikipedia.org/wiki/Eclipse_Modeling_Framework

  3. http://ru.wikipedia.org/wiki/ORM

  4. http://ru.wikipedia.org/wiki/Hibernate_(библиотека)



Добавить документ в свой блог или на сайт

Похожие:

Программы
Основания для разработки" указаны документы, на основании которых ведется разработка, наименование и условное обозначение темы разработки....

Урок окружающего мира в 3 классе. Тема урока: «Наше питание»
Оборудование: компьютер, проектор, экран, раздаточный материал для разработки каждого раздела проекта

Тема конференции
В рамках конференции компания "Инфо-Бухгалтер" продемонстрировала свои последние разработки в области программ автоматизации бухгалтерской...

Лабораторная работа №5 Лабораторная работа №5 Тема: «Классы и объекты»
Лабораторную работу выполнить без использования сред разработки (Intellij idea, Eclipse, NetBeans и др.)

Лабораторная работа №6 Лабораторная работа №6 Тема: «Java-апплеты»
Лабораторную работу выполнить без использования сред разработки (Intellij idea, Eclipse, NetBeans и др.)

Лабораторная работа №4 Лабораторная работа №4 Тема: «Типы данных,...
Лабораторную работу выполнить без использования сред разработки (Intellij idea, Eclipse, NetBeans и др.)

Тема разработки 2
Необходимо разработать основу веб-редактора формализованных электронных документов на основе технологии gwt. Этот редактор должен...

Оценка стоимости разработки программного обеспечения
...

Организационная и экономическая часть 1 Оценка стоимости разработки программного обеспечения
Для оперативной приближенной оценки трудоемкости и длительности разработки программного изделия будем пользоваться базовой моделью...

Актуальность проблемы
ПО: различные аспекты системы смешиваются, нарушается модульность и разграничение уровней абстракции. В настоящей работе представлена...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница