Разработка адаптера, который реализует взаимодействие с Единым государственным реестром прав
Цели электронного правительства, интегрированная среда разработки Jetbrains Intellij IDEA. Единый государственный реестр, его сущность и значение. Понятие и предназначение системы межведомственного электронного взаимодействия. Язык программирования Java.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.05.2018 |
Размер файла | 702,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
- Введение
- 1. постановка задачи
- 2. Теоретическая часть
- 2.1 Электронное правительство
- 2.2 История электронного правительства Российской Федерации
- 2.3 Цели электронного правительства
- 2.4 Единый государственный реестр прав
- 2.5 СМЭВ
- 2.5.1 Основные функции СМЭВ
- 2.5.2 Технологическое обеспечение СМЭВ
- 2.5.3 Как стать участником СМЭВ
- 2.6 Выбор средств разработки
- 2.6.1 Язык программирования Java
- 2.6.2 Система управления базами данных PostgreSQL
- 2.6.3 Фреймворк Hibernate
- 2.6.4 КрипоПро JCP
- 2.6.5 Стандартный стек веб-технологий
- 2.6.6 Система контроля версий Git
- 2.6.7 Система сборки проектов Maven
- 2.6.8 Интегрированная среда разработки Jetbrains Intellij IDEA
- 2.7 Протокол SOAP
- 3. Процесс разработки
- 3.1 Проектирование
- 3.1.1 Изучение документации
- 3.1.2 Процесс взаимодействия
- 3.1.3 Процесс взаимодействия детально
- 3.2 Разработка
- 3.2.1 Серверная часть
- 3.2.2 Клиентская часть
- Заключение
- список использованных источников
Введение
С каждым годом Электронное правительство Российской Федерации развивается и охватывает почти все сферы нашей жизни. Одним из основных достижений является портал Госуслуги.ру. Через него можно записаться к врачу, зарегистрировать фирму, оставить заявку на паспорт, подать заявление на регистрацию брака и многое другое. Также оно позволяет местным и федеральным органам власти эффективно взаимодействовать через электронные ресурсы избегая затрат на бумажный документооборот. Благодаря инициативе правительства Российской Федерации, множество сфер нашей жизни подверглось автоматизации. Теперь можно записать к врачу через мобильное приложение, можно узнать оценки детей в школе, можно оплатить штраф через интернет.
Для повышения качества предоставляемых государственных услуг, уменьшения времени на обработку информации в электронной форме и исполнения государственный функций за счёт использования общего государственного информационного ресурса создана система межведомственного электронного взаимодействия (СМЭВ). Чтобы взаимодействовать с сервисами Электронного правительства необходимо разработать адаптер, так как для взаимодействия необходимо обеспечить безопасность данных пользователя и необходимо следовать строгому формату работы с системой межведомственного электронного взаимодействия.
Работа посвящена разработке и внедрению адаптера, который будет заниматься получением выписки из Единого государственного реестра прав.
постановка задачи
В данном дипломном проекте требуется разработать адаптер, который реализует взаимодействие с Единым государственным реестром прав и позволит получать из него выписку на недвижимое имущество и сделок с ним.
Адаптер состоит из клиентской и серверной части.
Клиентская часть - веб-сайт, имеющий простой и понятный интерфейс, в котором можно разобраться без посторонней помощи. Клиентская часть должна состоять из страницы с авторизацией и страницей, которая содержит форму для создании заявки на получение и просмотр выписки.
Серверная часть состоит из модуля взаимодействия с ЕГРП через СМЭВ и базы данных, в которых хранятся данные пользователя (логин и пароль), а также данные об выполненных или выполняющихся заявках. Серверная часть должна должна иметь платформо-независимую реализацию для установки на ПК с любой ОС.
При разработке необходимо использовать свободно распространяемые средства и инструменты, чтобы не тратить средства на их приобретение. Единственное платное программное обеспечение, которое можно использовать при разработке - библиотеки КриптоПро JCP, которые рекомендованы в Руководстве пользователя сервиса Росреестр.
1. Теоретическая часть
1.1 Электронное правительство
Адаптер разработан для взаимодействия с сервисами электронного правительства.
Электронное правительство[1] -- это способ предоставления государственных различных услуг населению, а также взаимодействие государственных органов, с помощью информационных технологий.
Проект реализован в рамках федеральной программы “Электронное общество”. Главная цель проекта - предоставление государственных услуг в электронном виде и повышение эффективности государственного аппарата.
Существует информационные системы для различных ведомств, нуждающиеся в адаптерах системы межведомственного электронного взаимодействия к Единому государственному реестру прав.
1.2 История электронного правительства Российской Федерации
Седьмого февраля две тысячи восьмого года № Пр-212 была утверждена Стратегия развития информационного общества в РФ.
Стратегия представляет собой документ, где записаны цели и методы развития электронного правительства в Российской федерации.
Основным направлением стратегии является повышение качества и доступности государственных услуг, улучшение опыта взаимодействия бизнеса и граждан с органами государственной и муниципальной власти. Создание электронного правительства стало возможно благодаря развитию информационных технологий и повышению компьютерной грамотности населения.
Формирование электронного правительства РФ требует высочайшей координации различных органов власти.
Двадцатого октября 2010 г. № 1815-р утверждена государственная программа Российской федерации «Информационное общество (2011-2010 годы)».
Целью программы «Информационное общество (2011-2020 годы)» является устранение цифрового неравенства, повышение доступности электронных государственных услуг, повышение качества взаимодействия государственных органов, осведомление населения о развитии электронного правительства.
Основные задачи на 2011-2014 годы в рамках реализации государственной программы Российской Федерации «Информационное общество (2011-2020 годы)»:
· Улучшение качества жизни граждан и повышение качества ведения бизнеса;
· Создание электронного правительства и улучшение эффективности государственного управления;
· Развитие телекоммуникационных и информационных технологий в стране, переход к экономике, осуществляемой с помощью ИТ;
· Создание инфраструктуры для перехода к информационному обществу и устранение информационно-технического неравенства между регионами:
· Обеспечение безопасности информационного общества;
· Обеспечение развития создания цифрового контента и сохранение культурного наследия.
Основные мероприятия Минэкономразвития Российской Федерации в 2014 году в рамках реализации государственной программы Российской Федерации «Информационное общество (2011-2020 годы)»:
· развитие информационной системы «Федеральный реестр государственных и муниципальных услуг (функций)»;
· аналитика перехода на предоставление государственных и муниципальных услуг в электронном виде в Российской Федерации и оценка деятельности органов государственной власти по переводу услуг;
· поддержка и разработка ряда решений, направленных на автоматизацию процессов оказания государственных услуг;
· разработка и развитие информационно-аналитической системы мониторинга качества государственных услуг;
· разработка и развитие портала открытых данных Российской Федерации, методическая поддержка органов власти по обеспечению доступа к открытым данным и содержащимся в них информационных системах;
· развитие информационной системы обеспечения открытости деятельности федеральных органов исполнительной власти;
· развитие информационных систем поддержки малого и среднего бизнеса;
· развитие и разработка методологии ГАС «Управление».
1.3 Цели электронного правительства
· Повышение качества государственных услуг, которые предоставляются населению и организациям, улучшение процедуры и сокращение сроков их оказания, снижение издержек со стороны граждан и организаций, связанных с их получением, внедрение единых стандартов обслуживания граждан;
· повышение открытости информации о деятельности органов государственной власти, расширение возможности доступа к ней и непосредственного участия граждан, организаций и институтов гражданского общества в процедурах формирования и экспертизы решений, принимаемых на всех уровнях государственного управления;
· повышение качества административно-управленческих процессов; совершенствование системы информационно-аналитического обеспечения принимаемых решений на всех уровнях государственного управления, обеспечение оперативности и полноты контроля за результативностью деятельности органов государственной власти, обеспечение требуемого уровня информационной безопасности электронного правительства при его функционировании.
1.4 Единый государственный реестр прав
Адаптер получает выписку из Единого государственного реестра прав.
Единый государственный реестр (ЕГРП)[2] - государственный информационный ресурс, содержащий информацию об недвижимости и правах на них.
Сведения, которые находятся в Едином государственном реестре прав являются общедоступными (кроме тех сведений, которые являются ограниченными к доступу по закону Российской Федерации) и могут быть предоставлены органом, которым осуществляет регистрацию, в том числе посредством почтового отправления, использования сетей связи общего пользования или иных технических средств связи, посредством обеспечения доступа к информационному ресурсу, содержащему сведения Единого государственного реестра прав.
Сведения, которые содержатся в Едином государственном реестре прав, могут быть получены в виде выписки или в другом виде, в котором его определит Министерство экономики и социального развития.
1.5 СМЭВ
Адаптер при работе взаимодействует с системой межведомственного электронного взаимодействия. Все проводимые запросы проходят через СМЭВ[3].
Единая система межведомственного электронного взаимодействия (СМЭВ) - государственная информационная система, предназначенная для организации информационного взаимодействия между информационными системами участников системы межведомственного электронного взаимодействия в целях предоставления государственных и муниципальных услуг и исполнения государственных и муниципальных функций в электронной форме.
Участниками межведомственного электронного взаимодействия (участниками СМЭВ) являются федеральные органы исполнительной власти, государственные внебюджетных фонды, исполнительные органы государственной власти субъектов РФ, органы местного самоуправления, государственные и муниципальные учреждения, многофункциональные центры, иные органы и организации.
Целью создания системы межведомственного электронного взаимодействия является улучшение качества предоставления государственных и муниципальных услуг и исполнения государственных и муниципальных функций за счет использования общих информационных ресурсов, уменьшения временных издержек на поиск и обработку информации в электронной форме.
СМЭВ предназначена для решения следующих задач:
· Обеспечение исполнения и реализации различных муниципальных и федеральных государственных услуг;
· Обеспечение предоставления населению различных государственных услуг через электронную форму;
· обеспечение информационного взаимодействия в электронной форме при предоставлении различных государственных и муниципальных услуг и исполнении государственных и муниципальных функций.
1.5.1 Основные функции СМЭВ
Основными функциями системы межведомственного электронного взаимодействия являются:
· Передача различных запросов, документов и сведений, необходимых для получения государственных и муниципальных услуг и поданных заявителями через единый электронный портал, в подключенные к системе межведомственного электронного взаимодействия информационные системы;
· обмен электронными сообщениями между участниками системы межведомственного электронного взаимодействия;
· передача на единый портал различных запросов, иных документов и сведений, обработанных в информационных системах, а также информации о ходе выполнения различных запросов и результатах предоставления различных услуг.
СМЭВ обеспечивает:
· доступ к электронным сервисам информационных систем, подключенных к системе межведомственного электронного взаимодействия;
· возможность использования централизованных баз данных и классификаторов информационными системами, подключенными к системе межведомственного электронного взаимодействия;
· получение, анализ, обработку и доставку электронных сообщений в рамках информационного взаимодействия участников системы межведомственного электронного взаимодействия, обеспечение фиксирования времени их передачи, целостности и подлинности, указания их авторства и возможности предоставления сведений, позволяющих проследить историю движения электронных сообщений;
· защиту передаваемой информации от несанкционированного доступа, искажения или блокирования с момента поступления указанной информации в систему межведомственного электронного взаимодействия до момента передачи ее в подключенную к системе межведомственного электронного взаимодействия информационную систему;
· ведение реестра электронных сервисов ИС, подключенных к системе межведомственного электронного взаимодействия.
1.5.2 Технологическое обеспечение СМЭВ
Техническое обеспечение информационного взаимодействия с применением системы межведомственного электронного взаимодействия достигается путем использования:
· сервис-ориентированной архитектуры, представляющей собой совокупность различных электронных сервисов, построенных по общепринятым в СМЭВ стандартам;
· единых технологических решений и стандартов, единых классификаторов и описаний структур данных.
1.5.3 Как стать участником СМЭВ
Особенности использования системы межведомственного электронного взаимодействия и подключения к ней информационных систем отдельных органов и организаций определяются соглашениями между Минкомсвязь России, являющимся оператором системы межведомственного электронного взаимодействия, и органом и организацией, являющейся участником системы межведомственного электронного взаимодействия. Минкомсвязь России осуществляет координацию деятельности по подключению к системе межведомственного электронного взаимодействия, обеспечивает её функционирование и ведение реестра электронных сервисов.
Интеграция ИС в рамках системы межведомственного электронного взаимодействия осуществляется в соответствии с Техническими требованиями к взаимодействию информационных систем в единой системе межведомственного электронного взаимодействия (утв. приказом Минкомсвязь России от 27.12.2010 № 190).
Чтобы стать участником системы межведомственного электронного взаимодействия органу или организации, которая предоставляет государственные и муниципальные услуги и исполняет государственные и муниципальные функции, необходимо:
1. Обеспечить разработку электронных сервисов и интерфейсов взаимодействия используемой информационной системы и системы межведомственного электронного взаимодействия. Для этого нужно обратиться к поставщику или разработчику используемой информационной системы для выполнения им работ по реализации необходимых сервисов и интерфейсов.
2. Предоставить электронный сервис оператору узла системы межведомственного электронного взаимодействия, участником которого должна быть данная организация, для проведения регистрации и внесения в реестр электронных сервисов. Для этого необходимо официально обратиться к оператору узла системы межведомственного электронного взаимодействия и предоставить паспорт электронного сервиса, методику испытаний и руководство пользователя электронного сервиса, а также обеспечить доступность электронного сервиса для проведения его приемки.
3. Обеспечить защищённый канал связи между ИС и системой межведомственного электронного взаимодействия.
1.6 Выбор средств разработки
1.6.1 Язык программирования Java
На этом языке программирования написана серверная часть адаптера.
Java -- объектно-ориентированный язык программирования, который разработан компанией Sun Microsystems в 1991 году и официально выпущенный двадцать третьего мая 1995 года. Сначала новый язык программирования назывался Oak (в переводе дуб) и разрабатывался для бытовой электроники, но впоследствии переименован в Java (сорт кофе) и начал использоваться для написания различных апплетов, приложений и серверного программного обеспечения. Сейчас язык поддерживается компанией Oracle, которая выкупила Sun Microsystems.
Программы на языке программирования Java могут быть транслированы в байт-код, выполняемый на виртуальной java-машине (JVM) -- программе, которая обрабатывает байт-код и передаёт инструкции оборудованию, как интерпретатор, но с тем отличием, что байт-код, в отличие от обыкновенного текста, обрабатывается быстрее.
Язык Java появился как часть проекта создания передового ПО для различных бытовых электронных приборов. Создание проекта началось на языке C++, но очень скоро возник ряд проблем, лучшим средством борьбы с которыми было изменение самого рабочего инструмента -- языка программирования. Стало понятно, что необходим кроссплатформенный язык программирования, который позволяет создавать программы, которые не приходилось бы компилировать отдельно для каждой архитектуры и можно использовать на различных процессорах под различными ОС.
Язык программирования Java потребовался для создания различных интерактивных продуктов для сети Интернет. Фактически, большинство архитектурных решений, которые были приняты при создании языка программирования Java, продиктовано сильным желанием предоставить синтаксис, сходный с языком программирования C++. В Java используются практически те же самые соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода. В язык программирования Java добавлены все хорошие черты C++.
Плюсы:
· Java предоставляет для использования свои java-апплеты (applets) -- небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Java-апплеты могут легко настраиваться и распространяться с такой же легкостью, как любые другие документы HTML
· Java позволяет использовать всю мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый с Си-образных языков синтаксис с надежной и очень удобной в работе средой разработки. Это позволяет разработчикам быстро создавать новые программы и новые java-апплеты
· Java выдаёт разработчику богатый набор классов объектов для ясного абстрагирования многих системных функций, используемых при работе с окнами, потоками, сетью и для ввода-вывода. Ключевая черта этих классов заключается в том, что они обеспечивают создание абсолютно независимых от используемой платформы различных абстракций для широкого спектра системных интерфейсов
Язык программирования Java выбран потому что он:
· Приложения которые написаны на нём кроссплатформенные, то есть работают на любой операционной системе, где установлена JVM.
· Имеет огромное количество дополнительных библиотек по работе с XML, БД и SOAP.
· Прост в изучении и поддержке.
· Именно его рекомендуют использовать в разработке адаптеров под Электронное правительство.
1.6.2 Система управления базами данных PostgreSQL
Данные пользователей и данные заявок хранятся в этой базе данных.
PostgreSQL[5] - это полноценная SQL СУБД с большим списком возможностей и огромным количеством людей по всему миру, которые используют и разрабатывают эту СУБД. В отличие от ещё одной свободной СУБД: MySQL, разработка которой изначально ориентировалась на веб, разработка PostgreSQLориентировалась на использование в сложных приложениях. Именно поэтому упор всегда делался на надёжность, наличие развитой функциональности и соответствение стандартам. При этом, конечно, PostgreSQL можно точно также использовать и в веб-приложениях, где данная СУБД показывает неизменно отличные результаты, при лучшей масштабируемости и настраиваемости.
PostgreSQL - это объектно-реляционная система управления базами данных (ORDBMS) (по-русски ОРСУБД или просто СУБД) основанная на POSTGRES, Версии 4.2, которая разработана в Научном Компьютерном Департаменте Беркли Калифорнийского Университета. Слово "объект-реляционная" означает возможнсоть использьзования части функциональности, связанной с объектно-ориентированным программированием, например, такой как наследование.
PostgreSQL является прямым потомком с открытым исходным кодом от оригинального кода, сделанного в Беркли.PostgreSQL поставляется под лицензией BSD, что обеспечивает максимальную открытость и доступность.
PostgreSQL является кроссплатформенным продуктом и работает не только в широком диапазоне диалектов UNIX (Linux, FreeBSD, Solaris и т.д.), но и на платформе Microsoft Windows.
Для работы с PostgreSQL существует множество интерфейсов и библиотек взаимодействия из других языков программирования: Java (JDBC), ODBC, Perl, Python, Ruby, C, C++, PHP, Lisp, Scheme и Qt.
PostgreSQL является неоднократным победителем и призёром различных конкурсов по СУБД и проектам с открытым исходным кодом и неоднократно награждалась титулом "Лучшая СУБД года". PostgreSQL используют в своём бизнесе многие известные фирмы, например такие как Google.
База данных PostgreSql выбрана потому что:
· Он свободный и поэтому не требуется покупка и оплата лицензии.
· Реляционный и поэтому большинство разработчиков смогут поддерживать запросы под него.
· Имеет неплохую документацию и GUI клиент под Windows.
1.6.3 Фреймворк Hibernate
После этого выбран фреймворк для работы с БД - Hibernate, который является одним из самых популярных фреймворков, которым позволяются работать с БД в модели ORM.
Запросы в базу данных осуществлялись не с помощью SQL-запросов, а с помощью обычных Java-методов. А всё благодаря ORM.
ORM (Object/Relational Mapping) - это способ сохранения объектов в реляционную базу данных. Другими словами ORM освобождает от работы с SQL и позволяет сосредоточиться на ООП. Основой ORM есть конфигурационный файл, в котором описывается как объект будет записываться в БД. Если с примитивными полями все так же примитивно: строковое поле записывается в колонку с типом varchar, целочисленное - в int, то со связями между объектами все интересней.
Например, у существуют классы Книга и Автор, для обоих созданы конфигурационные файлы, в которых описаны их поля. Но Книга, кроме всего прочего, имеет ссылку на Автора. В таком случае таблицы в БД будут связаны по внешнему ключу, что так же описывается в одном из конфигурационных файлов.
С помощью фреймворка Hibernate работа с базой данных происходила не с помощью SQL-скриптов, а с помощью обычных Java-методов.
Hibernate[6] - это один из самых популярных на сегодняшний день ORM-фреймворков. Само собой, что работа с БД посредством грамотно написанного SQL-кода будет более производительной, нежели с использованием Hibernate. Однако SQL нужно еще уметь грамотно написать, в то время, как Hibernate создает запросы оптимизированные. Так же у разработчиков уходит уйма времени на написание запросов и хранимых процедур, работа же с Hibernate ускоряет процесс разработки.
Одной из привлекательных сторон Hibernate есть то, что он поддерживает диалекты ко всем популярным СУБД. Наши приложения становятся еще и СУБД-независимыми, т.к. единственное, что придется поменять если мы хотим перейти на другую СУБД, - это диалект в конфигурации Hibernate.
Для функционирования Hibernate нужны:
· Главный конфигурационный файл, в котором описываются параметры соединения к БД.
· Описание связи между классом и таблицей. Включает в себя связь между полем класса и колонкой таблицы. Также здесь описывается связь классов друг с другом.
1.6.4 КрипоПро JCP
Для электронной подписи использовалась библиотека от компании КриптоПро, которая является лидером по поставке ПО для информационной безопасности в СНГ. Почти все методические пособия для разработки информационных систем для Электронного правительства рекомендуют использовать продукцию этой компании.
Все цифровые подписи производились с помощью библиотеки КриптоПро JCP. электронный адаптер реестр java
КриптоПро JCP - средство криптографической защиты информации, реализующее российские криптографические стандарты, разработанное в соответствии со спецификацией JCA (Java Cryptography Architecture).
Интеграция КриптоПро JCP с архитектурой Java позволяет использовать стандартные процедуры, такие как создание и проверка ЭЦП (в том числе XMLdsig) , шифрование, генерацию ключей, вычисление кодов аутентификации (Message Authentication Code - MAC) в JavaTM Cryptography Extension (JCE) в соответствии со спецификациями JavaTM Cryptography Extension (JCE) на различных операционных системах и аппаратных платформах.
Реализация КриптоПро JCP совместима с КриптоПро CSP.
Средство криптографической защиты КриптоПро JCP распространяется в двух комплектациях:
· генерация ключей, формирование и проверка ЭЦП, хэширование данных;
генерация ключей, формирование и проверка ЭЦП, хэширование данных, шифрование.
Плюсы КриптоПро JCP:
· В нём есть всё что нужно для подписи и шифрования электронных документов.
· Его рекомендует Электронное правительство.
Минусы:
· Очень плохая документация.
· Компания плохо поддерживает современные версии Java.
· Запрет на использование исходников из примеров.
1.6.5 Стандартный стек веб-технологий
Сайт решено писать на стандартном стеке технологий веб-разработки: HTML, CSS, Javascript.
1.6.6 Система контроля версий Git
Система контроля версиями - Git. Он бесплатный, лёгкий в установке, много качественной документации. Тем более интегрированная среда для разработки Intellij IDEA позволяет работать с системой контроля версий Git не через голую командную консоль, а через графический пользовательский интерфейс. То есть не набирая команды, а просто нажимая на кнопки.
Для хранения резервных версий исходного кода использовалась система - Git[8].
В проекте используется свободная распределённая система управления версиями Git, который создан главным разработчиком ядра Linux Линусом Торвальдсом. Первая версия свободной распределённой системы управления версиями выпущена седьмого апреля 2005 года. На сегодняшний день его основным разработчиком является Джунио Хамано.
1.6.6.1 Возможности распределённой системы контроля версиями Git
Эта система создана как некий набор специальных программ, которые спроектированы и разработаны с учётом их работы в скриптах. Благодаря этому очень удобно и комфортно создавать специализированные системы контроля версий на базе Git или основанные на нём другие пользовательские интерфейсы. Пример: Cogito - оболочка к репозиториям Git, StGit - интерфейс для управления патчами.
Эта система умеет поддерживать быстрые слияния и разделения версий файлов и также включает в себя инструменты визуализации и удобной навигации по истории разработки проекта. Git умеет предоставлять разработчикам копию истории его разработки, где изменения копируются из различных репозиториев.
Также Git поддерживает Remote Access к репозиториям, которые ему обеспечивают либо git-демон, либо SSH, либо Http-сервер. Git-демон, который является TCP-сервером, входит в дистрибутив этой системы и считается надёжным методом доступа.
1.6.6.2 Особенности реализации Git
Его ядро представляет собой набор различных утилит системной командной строки (терминала) с различными параметрами.
Репозиторий представляет из себя каталог файловой системы, которые хранит в себе файлы конфигурации нужного репозитория, также файлы журналов, которые хранят в себе операции проведённые над репозиторием, индекс, который описывает расположение различных файлов, а также хранилище, которое содержит файлы.
Структура файлохранилища не показывает настоящую структуру хранящегося в репозитории дерева файлов, так как она ориентирована на ускорение выполнения различных операций с данным репозиторием. Во время того, когда ядро Git обрабатывает полученную команду изменения, оно обязательно создаёт новые файлы, которые соответствуют новым состояниям изменённых файлов. Значит, никакие операции не смогут изменить содержимое файлов, которые уже существуют в хранилище.
Репозиторий Git, если использовать настройки по умолчанию, хранится в директории с названием .git в корневой директории рабочей копии файлов, которые хранятся в репозитории. Любое дерево файлов можно сделать репозиторием, дав команду на создание репозитория из корневой директории этого дерева. Репозиторий Git может быть легко импортирован с другого сетевого узла, доступного по локальной или всемирной сети. При импортировании репозитория всегда создаётся рабочая копия, которая всегда соответствует последнему зафиксированному состоянию репозитория, которое мы импортируем.
1.6.7 Система сборки проектов Maven
Адаптер собран с помощью Maven[4].
Maven - это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации. Простые проекты можно собрать в командной строке. Если собирать большие проекты с командной строки, то команда для сборки будет очень длинной, поэтому её иногда записывают в bat/sh скрипт. Но такие скрипты зависят от платформы. Для того чтобы избавиться от этой зависимостии и упростить написание скрипта используют инструменты для сборки проекта.
Для платформы Java существуют два основных инструмента для сборки: Ant и Maven.
Основные преимущества Maven:
§ Независимость от OS. Сборка проекта происходит в любой операционной системе. Файл проекта один и тот же.
§ Управление зависимостями. Редко какие проекты пишутся без использования сторонних библиотек(зависимостей). Эти сторонние библиотеки зачастую тоже в свою очередь используют библиотеки разных версий. Мавен позволяет управлять такими сложными зависимостями. Что позволяет разрешать конфликты версий и в случае необходимости легко переходить на новые версии библиотек.
§ Возможна сборка из командной строки. Такое часто необходимо для автоматической сборки проекта на сервере (Continuous Integration).
§ Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты которые собираются c помощью maven. При этом зачастую проект настраивать не нужно - он сразу готов к дальнейшей разработке.
§ Как следствие - если с проектом работают в разных средах разработки, то maven удобный способ хранения настроек. Настроечный файл среды разработки и для сборки один и тот же - меньше дублирования данных и соответственно ошибок.
§ Декларативное описание проекта.
1.6.8 Интегрированная среда разработки Jetbrains Intellij IDEA
Инструментом, который будет связывать все эти вышеназванные технологии и который будет создавать адаптер, выбрана интегрированная среда разработки - Intellij IDEA Ultimate Edition. Она позволяет работать со всеми эти технологиями в одной среде и даёт комфортную и удобную среду разработки.
IntelliJ IDEA -- это ведущая, а по мнению многих отраслевых экспертов и Java-разработчиков, просто лучшая на сегодняшний день среда быстрой разработки приложений на языке Java.
IntelliJ IDEA представляет собой высокотехнологичный комплекс тесно интегрированных инструментов программирования, включая интеллектуальный редактор исходных текстов с развитыми средствами автоматизации, мощные инструменты рефакторинга кода, встроенную поддержку технологий J2EE, механизмы интеграции со средой тестирования Ant/JUnit и системами управления версиями, уникальный инструмент оптимизации и проверки кода Code Inspection, а также инновационный визуальный конструктор графических интерфейсов.
Уникальные возможности IDEA превращают программирование в удовольствие и значительно повышают продуктивность разработчика.
Плюсы:
o Умное автодополнение, инструменты для анализа качества кода, удобная навигация, расширенные рефакторинги и форматирование для Java, Groovy, Scala, HTML, CSS, JavaScript, CoffeeScript, ActionScript, LESS, XML и многих других языков.
o Поддержка всех популярных фреймворков и платформ, включая Java EE, Spring Framework, Grails, Play Framework, GWT, Struts, Node.js, AngularJS, Android, Flex, AIR Mobile и многих других.
o Интеграция с серверами приложений, включая Tomcat, TomEE, GlassFish, JBoss, WebLogic, WebSphere, Geronimo, Resin, Jetty и Virgo.
o Инструменты для работы с базами данных и SQL файлами, включая удобный клиент и редактор для схемы базы данных.
o Интеграция с коммерческими системами управления версиями Perforce, Team Foundation Server, ClearCase, Visual SourceSafe.
o Инструменты для запуска тестов и анализа покрытия кода, включая поддержку всех популярных фреймворков для тестирования.
1.7 Протокол SOAP
Взаимодействия адаптера с Единым государственным реестром прав происходили при помощи SOAP.
Simple Object Access Protocol (SOAP)[7] -- это протокол на базе языка XML, который определяет правила передачи сообщений по Internet между различными прикладными системами. В основном он используется для удаленного вызова процедур. Изначально протокол SOAP разрабатывался с тем расчетом, что он будет функционировать «над» HTTP (дабы упростить интеграцию SOAP в Web-приложения), однако теперь могут быть задействованы и иные транспортные протоколы, например SMTP.
Особенности SOAP
С помощью SOAP разработчики могут создавать Web-службы настолько же оперативно, насколько быстро будут написаны сообщения SOAP для вызовов программ для существующих приложений, а затем добавить эти приложения в простые Web-страницы. Но, кроме того, у разработчиков есть возможности использовать вызовы SOAP в выделенных приложениях и создавать приложения, которые можно переносить на Web-страницы других людей, и тем самым избежать трудоемкого и дорогостоящего процесса разработки.
2. Процесс разработки
2.1 Проектирование
При разработке программного обеспечения, способного получать выписку с ЕГРП рассмотрены два варианта реализации:
· Разработать десктопное приложение, которую можно установить на персональные компьютеры и использовать их.
· Разработать веб-приложение, который будет установлен на удалённом локальном сервере и доступ к которому будет через веб-браузер.
Первый вариант весьма дорог в разработке и тестировании. Потому что в госструктурах огромный парк персональных компьютеров под различным операционными системами и конфигурациями. Поэтому разработка, тестирование, внедрение и сопровождение потребовали бы высокие затраты. Плюсы такого подхода в том что обычно десктопные программы более производительны и если конфигурация персонального компьютера не будет менятся, то и необходимость поддержки программного обеспечения тоже отпадает.
Второй вариант позволяет экономить время и средства на разработке и тестировании. Потому что не требуется установка на пользовательские персональные компьютеры, можно поставить на любой сервер, на который установлен виртуальная машина Java. Доступ к нему можно получить из любого браузера, который поддерживает HTML5 (а сейчас все современные браузеры, вплоть до Internet Explorer 9, его поддерживают). Минусы такого варианта в том, что при обновлении внутреннего движка браузеров может появится необходимость переработки интерфейса или логики работы с ним.
Рассмотрев преимущества и недостатки обоих вариантов принято решение выбрать второй, так как он позволял разработать и внедрить адаптер в более краткие сроки, чем первый вариант, а также существенно уменьшались затраты на тестирование.
3.1.1 Изучение документации
Для того, чтобы реализовать адаптер, который сможет запрашивать выписку из ЕГРП потребовалось изучить:
· Описание сервиса прямого взаимодействия v2 0. Данный документ от разработчиков Росреестра содержит описание процесса создания адаптера, который сможет взаимодействовать с Единым государственным реестром прав и с Государственным кадастром недвижимости.
· Методические рекомендации по работе с Единой системой межведомственного электронного взаимодействия. Версия 2.5.6. Данный документ от разработчиков СМЭВ содержит описывание общего процесс создания адаптера для системы межведомственного электронного взаимодействия.
· Руководство пользователя сервиса Росреестра[9]. Данный документ содержит описывание SOAP, который будет посылаться в Росреестр и XML-схему пользовательских данных.
3.1.2 Процесс взаимодействия
После этого стало понятно как происходит взаимодействие с сервисом ЕГРП (рисунок 1).
Рисунок 1. - Взаимодействие с ЕГРП
Процесс взаимодействия:
1. Система-потребитель вызывает метод адаптера CreateRequest и передает пакет заявления;
a. В ответ на вызов метода CreateRequest система-потребитель получает ответ-квитанцию, содержащий номер заявления, присвоенный ведомственной системой-поставщиком;
b. В случае сбоя, в ответ на вызов метода придет сообщение об ошибке.
2. После получение идентификационного номера заявления, система-потребитель может неограниченное количество раз вызывать метод GetStatus для получения актуальной информации о ходе обработки заявления.
a. В ответ на вызов метода GetStatus система-потребитель получает сообщение с указанием кода актуального статуса;
b. Если статус обработки окончательный (заявление выполнено), то вместе с кодом статуса система-потребитель получает результат выполнения заявления.
c. В случае сбоя, в ответ на вызов метода придет сообщение об ошибке.
3.1.3 Процесс взаимодействия детально
1. Пользователь заходит в браузер, нажимает на вкладку “Создать заявку”, заполняет форму на запрос и нажимает запрос.
a. Формируется XML с данным заявки и от этого XML-файла формируется .sig-файл, который является цифровой подписью PKCS #7 (detached).
b. XML и подпись .sig добавляются в архив.zip.
c. Архив преобразуется формат Base64.
d. Создаётся SOAP.
e. Архив в форме Base64 добавляется в SOAP.
f. SOAP подписывается по стандарту ГОСТ-34.11-2001.
g. SOAP отправляется на сервер ЕГРП.
h. Адаптер получает SOAP с номером зарегистрированной заявки и записывает этот номер в базу данных.
2. Пользователь заходит в браузер, нажимает на вкладку “История заявок”, смотрит на статус заявок.
a. Из БД достаётся номер зарегистрированной заявки.
b. Формируется SOAP в который добавляется номер зарегистрированной заявки.
c. SOAP подписывается по стандарту ГОСТ-34.11-2001.
d. SOAP отправляется на сервер ЕГРП.
e. Адаптер получает SOAP с кодом статуса и сам статус. Если заявка заполнена неверно, то получаем код ошибки и текст ошибки. Если верно, то получаем заархивированную выписку и отдаём её пользователю.
3.2 Разработка
3.2.1 Серверная часть
Серверная часть состоит из 2 частей:
1. Часть, которая формирует SOAP с вложениями и подписывает их.
2. Часть, которая принимает данные с браузера, и которая принимает данные с ЕГРП и преобразует в вид удобный для пользователя.
1. Формирование SOAP с вложением
SOAP создаётся на языке Java при помощи сторонней библиотеки dom4j, который специализируется на работе с XML.
Для работы с ЕГРП необходимо сформировать два SOAP'а.
Один из них, который регистрирует заявку и имеет вложение. Составляется по правилам оформления SOAP и имеет вложение в виде архива, который закодирован в формат Base64 и имеет внутри себя XML с данными для получения заявки и файл подписи этого XML-файла. Вложение (Архив с расширением .zip) состоит из XML-файла и файл подписи с расширением .sig. XML-файл содержит данные для выписки (имя, фамилия, паспорт и т.д). Файл подписи содержит в себе цифровую подпись PKCS#7 (detached), которая преобразована в строку.
2. Формирование SOAP с номером зарегистрированной заявки
А второй запрашивает статус заявки с помощью номера регистрации и в случае успеха получает архив с выпиской. Составляется по правилам оформления SOAP и имеет внутри себя номер зарегистрированной заявки, с помощью которого идентифицируется запрашиваемая заявка. В зависимости от статуса работы над заявкой получает код статуса заявки и текст статуса заявки. Если произошла ошибка, то приходит код ошибки и текст ошибки. Если заявка обработана, то будет получен соответствующий ответ и архив с выпиской, который будет закодирован в Base64.
SOAP'ы подписываются по стандарту ГОСТ-34.11-2001. Всё подписывается с помощью библиотеки КриптоПро JCP.
3.2.2 Клиентская часть
Веб-страницы написаны на стандартном стеке технологий веб-разработки: HTML, CSS, Javascript (jQuery).
Клиентская часть делится на две части: страница авторизации и страница заявки.
3. Страница авторизации
Страница авторизации состоит из формы с полем для ввода логина и полем для ввода пароля. А также кнопкой подтверждения введённых данных. Наличие пользователя в сервисе определяется проверкой введённых данных на наличие в БД. При вводе правильных данных пользователя перенаправляет на страницу заявок. А при вводе неправильных данных появляется сообщение о том, что введены некорректные данные.
4. Страница заявок
Страница заявок состоит из 3 вкладок:
1. Формирование заявки
2. История заявок
3. Помощь
Вкладка “Формирование заявки”
На этой вкладке есть форма (рисунок 2), заполнив которую можно сформировать заявку. При нажатии на кнопку “Отправить заявку” (рисунок 3), с помощью Ajax, данные отправляются на сервлет, где их обрабатывают и вставляют в XML. Затем формируется SOAP с вложением и отправляется на сервер. Приходит SOAP с номером зарегистрированной заявки, этот номер добавляет в базу данных и появляется в таблице второй вкладки “История”.
Рисунок 2. - Скриншот первой вкладки
Рисунок 3. - Скриншот первой вкладки с кнопкой отправки формы
Форма состоит из 3 частей:
1. Информация об объекте недвижимости. Здесь заполняются данные о местонахождении объекта и т.д.
2. Сведения об заявителе. Здесь заполняются данные о заявителе.
3. Предоставленные документы. Здесь заполняются данные об документах, которые предоставил заявитель.
Вкладка “История”
На этой вкладке есть таблица с историей заявок (рисунок 4). Состоит из таблицы с полями об номере заявки, времени подачи и статусе заявки. Заявки сами автоматически обновляют свой статус с помощью технологии Ajax. Если запрос выписки выполнен и обработан правильно то пользователь может скачать выписку на свой персональный компьютер.
Для создания красивой и функциональной таблицы использован фреймворк для jQuery - DataTable. Он позволил реализовать такие функции как: поиск по таблице, сортировка данных в таблице, пагинация (разделение информации по страницам).
Рисунок 4.-Вкладка “История заявок”
Вкладка “Помощь”
На этой вкладке находится помощь пользователю. Номера телефонов, куда он может позвонить, чтобы получить справочную информацию, адреса сайтов (Росреестр, ЕГРП и т.д), адреса электронных почт и т.д.
Рисунок 5.-Вкладка “Помощь”
ЗАКЛЮЧЕНИЕ
Разработан и внедрён адаптер, который может запрашивать выписку из Единого государственного реестра прав, показывать историю заявок, давать пользователю скачивать выписку.
Адаптер обладает следующими свойствами:
1. Независимость от платформы. Можно развернуть на любой ОС с любой архитектурой, где установлена виртуальная машина Java.
2. Независимость об браузера. К адаптеру можно получить доступ из любого браузера, который поддерживает HTML5 (а его сейчас поддерживают все современные браузеры). И доступ к нему можно получить как из персональных компьютеров, так и из мобильных устройств (планшеты, смартфоны).
3. Лёгкость установки. Чтобы установить адаптер и начать работать, достаточно скачать на свой сервер Apache Tomcat 7, сохранить в папку Deployment файл адаптера с расширением .war и запустить Apache Tomcat. После этого можно сразу же получить доступ к нему, набрав в адресной строке браузера локальный адрес адаптера.
Получены навыки разработки адаптеров на Java. Изучены методические рекомендации по разработке адаптеров для Росреестра. Получен опыт работы с КриптоПро JCP, также получены знания по стандарту цифровой подписи PKCS#7 (detached). Изучены основы веб-вёрстки под самые популярные браузеры (Google Chrome, Mozilla Firefox, Opera Browser (Blink), Microsoft Edge, Internet Explorer).
Этот адаптер при желании можно доработать. Тогда он будет работать не только с Единым государственным реестром прав, но и с к ГКН (Государственный кадастр недвижимости). Все необходимые библиотеки уже разработаны и протестированы, нужно только использовать свою XML-схему с данными, которая создана по рекомендации Государственного кадастра недвижимости.
список использованных источников
1. Электронное правительство РФ [Электронный ресурс] Режим доступа: https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE. -Загл. с экрана. - яз.рус
2. ЕГРП [Электронный ресурс] Режим доступа: https://rosreestr.ru/site/ur/poluchit-svedeniya-iz-egrp/?detail. -Загл. с экрана. - яз.рус
3. СМЭВ [Электронный ресурс] Режим доступа: http://www.eos.ru/eos_products/solution/gosudarstvennyy_sektor/smev/. - Загл. с экрана. - яз.рус
4. Maven [Электронный ресурс] Режим доступа: http://www.apache-maven.ru/ - Загл. с экрана. - яз.рус
5. PostgreSQL [Электронный ресурс] Режим доступа: https://www.postgresql.org/. - Загл. с экрана. - яз.англ
6. Hibernate [Электронный ресурс] Режим доступа: http://hibernate.org/. - Загл. с экрана. -яз.англ
7. SOAP [Электронный ресурс] Режим доступа: https://ru.wikipedia.org/wiki/SOAP. - Загл. с экрана. -яз.рус
8. Git [Электронный ресурс] Режим доступа: https://git-scm.com/. - Загл. с экрана. -яз.англ
9. Руководство пользователя [Электронный ресурс] Режим доступа: http://smev.gosuslugi.ru/portal/api/files/registryfile/31989/%25D0%25A0%25D0%259F.rar . - Загл. с экрана.- яз.рус
Размещено на Allbest.ru
...Подобные документы
Опыт внедрения электронного правительства Эстонии, технология X-Road, нынешнее состояние системы межведомственного электронного взаимодействия. Разработка методов оптимизации последующего внедрения концепции "Таза Коом" в Кыргызской Республике.
дипломная работа [2,4 M], добавлен 20.06.2019Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.
курсовая работа [197,5 K], добавлен 19.11.2009Внедрение информационных технологий в систему образования. Понятие, отличительные признаки, виды, структура и предназначение электронного учебника. Принципы его создания и основные этапы разработки в интегрированной среде программирования Delphi.
дипломная работа [2,3 M], добавлен 03.07.2015Создание единого Интернет-портала государственных услуг, объединяющего в рамках общей системы навигации сайты государственных органов в Интернет. Анализ реализации концепции "электронного правительства" в России. Основные проблемы и пути их преодоления.
реферат [1,6 M], добавлен 19.06.2014Понятие электронного правительства. Место электронного правительства в решении задачи формирования информационного общества в Российской Федерации. Применимость требований Системного проекта к уровням и ветвям власти. Измерение количества информации.
курсовая работа [3,8 M], добавлен 06.01.2013Разработка портала egov.kz - единой точки доступа к государственным услугам и сервисам. Достижения электронного правительства Республики Казахстан с 2005 по 2013 годы. Статистика использования портала: количество пользователей, посещений, оказанных услуг.
презентация [416,2 K], добавлен 13.10.2015Краткий обзор и анализ ныне существующих программно-педагогических средств обучения. Методика и порядок разработки электронного учебника по предмету "Язык программирования C++". Общая характеристика и основные формы входных и выходных данных программы.
курсовая работа [232,6 K], добавлен 10.09.2010Электронный учебник как средство самообразования. Основные принципы самообразования. Этапы проектирования электронного учебника, построение интерфейса системы. Язык гипертекстовой разметки HTML. Структура электронного учебника по "Численным методам".
дипломная работа [5,9 M], добавлен 15.03.2012Концептуальные основы разработки электронного учебника на основе гипертекстовых технологий. Архитектура учебного пособия. Этапы построения электронного учебника "Информатика" и его структура. Анализ практического использования электронного учебника.
дипломная работа [104,9 K], добавлен 02.05.2012Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.
реферат [79,0 K], добавлен 23.06.2012Объектно-ориентированное программирование. Особенности использования формата CHM, его преимущества. Создание электронного учебника на тему "Язык программирования C++" с помощью компиляции html-страниц. Правильное сочетание тегов, структура документа.
курсовая работа [1,0 M], добавлен 27.10.2012Структурные элементы электронного учебника. Основные этапы разработки электронного учебника. Варианты структуры электронного образовательного издания. Подготовка электронного издания к эксплуатации. Методическое обеспечение электронного учебника.
презентация [506,5 K], добавлен 28.12.2014Описание языков программирования Java и JavaFX. Среда разработки NetBeans и класс численных методов. Архитектура и принцип работы апплета с понятным пользовательским интерфейсом. Разработка алгоритма программы на примере модели межвидовой конкуренции.
курсовая работа [1023,2 K], добавлен 19.09.2012Понятие тезаурусов, их классификация, назначение, принципы работы. Анализ языков программирования: HTML, Java, C++, Delphi. Создание предварительного проекта. Поэтапная разработка тезауруса. Тип семиотических средств, используемых для семантизации лексем.
курсовая работа [988,5 K], добавлен 25.12.2014Интегрированная среда разработки Delphi и элементы, входящие в ее состав. Математическая модель, алгоритм решения и его свойства. Описание операторов, процедур, функций и методов. Создание приложений по аналитической геометрии и теоретической механике.
курсовая работа [1,8 M], добавлен 26.05.2010История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.
презентация [46,1 K], добавлен 25.04.2014Особенности электронных учебных пособий и основные принципы их создания. Сбор и подготовка исходного материала для электронного учебного пособия. Разработка структуры электронного пособия. Выбор программ и разработка интерфейса электронного учебника.
дипломная работа [738,5 K], добавлен 27.06.2012Развитие и классификация языков программирования. Методические рекомендации по изучению языков программирования. Основные понятия объектно-ориентированного программирования. Создание электронного учебного пособия с помощью языка гипертекстовой разметки.
курсовая работа [331,1 K], добавлен 06.09.2011Понятие электронного учебника, его сущность и особенности, назначение и использование, сфера применения. Модель структурирования системы и обоснование ее выбора. Проектирование системы управления и ее структурных единиц. Декомпозиция системы на модули.
курсовая работа [32,5 K], добавлен 15.02.2009