i gov chernihiv-ihub

15
Организація Backend частини проекту iGov. Огляд структури і технологій Олександр Скосир 28 січня 2016

Upload: vasyabh

Post on 11-Feb-2017

133 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: I gov chernihiv-ihub

Организація  Backend  частинипроекту  iGov.  

Огляд  структури  і  технологій

Олександр  Скосир28  січня  2016

Page 2: I gov chernihiv-ihub

Про  себеВ  проекті  з  червня  2015 року

Є  одним  з  координаторів  iGov  в  Чернігові

Працюю  з  Java  з  2006  року

Java  розробник  в  компанії  Astound  Commerce

e-­mail:  [email protected]:  askosyr 2

Page 3: I gov chernihiv-ihub

Зміст  

1. Трошки  історії  розвитку  проекту

2.Загальна  структура  проекту

3.Про  технологіїApache  Activiti  як  основний  фреймворк  для  бізнес  процесівЗберігання  данихСторонні  інтеграціїІнтеграції  найближчим  часом

4. Розробка  бізнес  процесу

5. Типові  задачі  для  Java  розробника3

Page 4: I gov chernihiv-ihub

Історія  розвиткуРозпочався  в  квітні  2015  року.

Координатор  проекту  -­ Дмитро  Дубілет

Географія  учасників  проекту  -­ Україна  і  закордон

Енерджайзер  проекту  -­ Володимир  Білявцев  (Дніпропетровськ)

Java  як  мова  програмування  backend  частини

4

Page 5: I gov chernihiv-ihub

Структура  проекту

5

Page 6: I gov chernihiv-ihub

Apache  Activiti  

Ключовий  фреймворк  проекту  iGov

Процес  описується  у  вигляді  діаграми  бізнес  аналітиком

Швидкий  запуск  послуг

Дозволяє  просто  і  прозоро  змінювати  стандартний  функціонал

6

http://activiti.org/

Page 7: I gov chernihiv-ihub

Зберігання  данихPostgresql  як  база  даних  для  Apache  Activity

Liquibase  -­ бібліотека  для  трекання  та  застосування  змін  в  схемі  бази  даних

Mongo  DB -­ документо-­орієнтована  no-­sql  база  даних  для  зберігання  документів

Redis  -­ розподілене  сховище  пар  ключ-­значення,  які  зберігаються  в  оперативній  памяті

7

<changeSet  id="issue-­605-­dates-­size"  author="askosyr"><modifyDataType  tableName="FlowProperty"  columnName="sDateTimeAt"  

newDataType="varchar(30)"  /></changeSet>

Page 8: I gov chernihiv-ihub

Java  фреймворкиSpring  -­ фреймворк  для  ін’єкції  залежностей  (dependency  injection)  при  побудові  дуже  відокремлених  систем

Rest  веб-­сервіси  на  основі  Spring.використання  HTTP  протоколу  замість  використання  складніших  механізмів  взаємодії  між  частинами  системи

Hibernate  -­ фреймворк  для  відображення  між  об'єктно-­орієнтованою  моделлю  даних  і  традиційною  реляційною  базою  даних

8

Page 9: I gov chernihiv-ihub

Сторонні  інтеграціїBankID  -­ спосіб  верифікації  громадян  через  українські  банки  для  надання  адміністративних  послуг  через  Інтернет.  На  даний  момент  підключено  9  банків  (ПриватБанк,  Альфа-­Банк,  PlatinumBank)

UniSender  -­ веб-­сервіс  розсилки  повідомленнь  по  електронній  пошті.  В  основу  веб-­сервісу  закладена  розроблена  всередині  компанії  технологія  швидкої  і  гарантованої  доставки  повідомлень

9

Page 10: I gov chernihiv-ihub

Інтеграції  найближчим  часомСистеми  електронного  документообігу  (а  саме  FossDoc)

Наказ  №  1207  від  20.10.2011    Міністерства  освіти  і  науки,  молоді  та  спорту  України  Про  вимоги  до  форматів  даних  електронного  документообігу  в  органах  державної  влади.

Мета  інтеграції:  -­ двостороння  взаємодія  з  iGov-­ автоматичне  створення  документів  с  системі  документообігу-­ отримання  повідомленнь  про  обробку  документів

10

Page 11: I gov chernihiv-ihub

Технології  які  не  увійшли  в  минулі  слайди

Jenkins  -­ відкритий  інструмент  для  безперервної  інтеграції  

Git  -­ система  керування  версіями  файлів  та  спільної  роботи

Maven  -­ засіб  автоматизації  для  складання  проекту

Swagger  -­ для  створення  документації  функціоналу  рест  сервісів

11

Page 12: I gov chernihiv-ihub

Розробка  бізнес  процесу

12

<userTask id="usertask1" name="Перевірка даних" activiti: candidateGroups="${sID_UA}_oda_4">

<extensionElements>...<activiti:formProperty id="email"

name="e-mail громадянина" type="string" writable="false"/>

<activiti:formPropertyid="messageText" name="Текст Заяви" type="textArea" writable="false"/>

...</userTask>

Page 13: I gov chernihiv-ihub

Типові  задачі  Backend  розробника

-­ Створення  нового  Rest  сервісу  

-­ Кастомізація  структури  бази  даних  для  збереження  додаткової  

інформації

-­ Кастомізація  Apache  Activiti  

Середній  час  на  виконання  задачі  -­ 4-­8 годин

Середній  час  роботи  на  тиждень  -­ 8 годин13

Page 14: I gov chernihiv-ihub

Чому  я  займаюсь  iGov?

-­ Це  корисно  

-­ Це  в  багатьох  випадках  цікавіше  ніж  робота

-­ Я  роблю  те  що  мені  цікаво

-­ Я  швидко  бачу  результати

-­ Спілкуючись  з  держорганами  ти  розумієш,  що  там  

треба  шось  міняти  :)14

Page 15: I gov chernihiv-ihub

Дякую  за  увагу!

15