Информация об изменениях в платформе и прикладных решениях на нашем официальном телеграм канале. Подписывайтесь!

Платформа Гедымін

Высокія стандарты ў галіне распрацоўкі эканамічнага праграмовага абсталявання

Да міленіюму ў нас было з паўтысячы кліентаў і цэлае сямейства разнашэрсных праграмаў на ўсе выпадкі бізнэсу. Кожны чарговы дадатак ствараўся фактычна з нуля, меў адасобленую базу дадзеных і арыгінальны карыстацкі інтэрфэйс. Файл-сэрверны рухавічок Paradox трашчаў па швах з узрастаннем табліцаў і колькасці далучэнняў. Зыходны код не мог змясціць спецыфіку кожнага карыстальніка.

Мяжа была блізкая.

Узяўшы чысты аркуш паперы, мы сфармавалі тры асноўных вымогі да будучай платформы:

  1. Адзіная база дадзеных, SQL і надзейны кліент-сэрвер.
  2. Уніфікаваны аб'ектна-арыентаваны доступ да рэляцыйных табліцаў.
  3. Магчымасць налады "на ляту" структуры б/д, інтэрфэйсу, алгарытмаў, справаздачаў.

У 2000-м годзе кампанія Borland адкрыла зыходныя коды сэрвера Interbase. Так паўстаў Firebird — малады праект з багатай гісторыяй — натуральны і адзіны выбар для платформы Гедымін.

Натуральны, бо як прадукт з адной кампаніі, ён выдатна інтэграваўся на ўзроўні непасрэднага звароту да функцый API з распрацоўкамі на Delphi і не патрабаваў прамежкавага пласта з ODBC драйвераў.

Адзіны, таму што на той момант іншага бясплатнага сэрвера з адкрытым зыходным кодам, падтрымкаю транзакцый, шматверсійнасцю дадзеных, трыгерамі і захоўнымі працэдурамі проста не існавала.

Рэжым убудаванага сэрвера прынёс усю моц і надзейнасць SQL нават у аднакарыстацкія ўсталёўкі праграмаў на платформе Гедымін.

У рэляцыйнай базе дадзеных аб'ект захоўваецца ў некалькіх табліцах, злучаных паміж сабою. Прыкладам, даведнік юрыдычных асобаў выглядае так:

Пры традыцыйным падыходзе праграміст апрацоўвае кожную табліцу, выконваючы строгую чарговасць. Чым больш разгалінаваная структура базы дадзеных, тым складаней праграмны код.

Бізнэс-аб'ект — нашае вынаходства — гэта пост-рэляцыйная object-relational mapping (ORM) тэхналогія, якая вырашае наступныя задачы:

  1. Яднае некалькі рэляцыйных табліцаў у адзінае цэлае.
  2. Фармуе SQL запыты для бягучай структуры базы дадзеных.
  3. Кіруе транзакцыямі і кропкамі захавання.
  4. Арганізуе карыстацкі інтэрфэйс.
  5. Кантралюе правы доступу да дадзеных і функцый.
  6. Лагуе змены дадзеных і дзеянні карыстальніка.
  7.  Серыялізуе дадзеныя для запісу ў файл.

Праграміст пазбаўляецца ад чарнавой руціннай працы. Код робіцца прасцейшы.

Уніфікацыя карыстацкага інтэрфэйсу дазваляе зменшыць выдаткі на навучанне карыстальнікаў і скараціць тэрмін укаранення. У Гедыміне кожны бізнэс-аб'ект мае два стандартных вакна. Форма прагляду служыць для адлюстравання спіса запісаў, фільтрацыі, сартавання і выбару. Дыялогавае вакно запісу прызначана для стварэння/прагляду/змены аднаго аб'екта.

Платформа ўключае камплект экранных элементаў для адлюстравання і рэдагавання набораў дадзеных і асобных палёў бізнес-аб'ектаў.

Паданне інфармацыі ў таблічным выглядзе:

Пошук, выбар, стварэнне і рэдагаванне аб'екта з дапамогай выпадаючага спіса:

Выкананне вылічэнняў непасрэдна ў полі ўводу лікавай інфармацыі:

Зручны выбар каляндарнага перыяду:

Карыстальніку з’яўляюцца даступнымі пяць спосабаў пошуку інфармацыі. Тры выконваюцца на баку кліента і два – на баку сэрвера. Фільтрацыя — самы магутны з іх — дазваляе аператару без ведаў сінтаксісу SQL фармаваць складаныя запыты. Адлюстраваць спіс накладных за студзень толькі для пакупнікоў, якія набывалі тавар у гэтым жа месяцы год таму? Лёгка!

Набор фундаментальных даведнікаў і базавыя тыпавыя дакументы ўваходзяць у ядро платформы. Усё астатняе — распрацоўнік стварае падчас развязання пастаўленай задачы. Для новага бізнэс-класа патрэбна:

  1. Стварыць структуры дадзеных.
  2. Наладзіць экранныя формы.
  3. Напісаць праграмны код.

Мова распрацоўкі на платформе Гедымін — VBScript — хутка асвойваецца нават далёкімі ад кампутаровай галіны спецыялістамі. Для эфектыўнага праграмавання, адладкі і прафілявання прапануецца ўвесь набор патрэбных прыладаў.

Практычна кожная задача па аўтаматызацыі на прадпрыемстве ўключае ўлік таварна-матэрыяльных каштоўнасцяў і руху грашовых сродкаў па бухгалтарскіх рахунках. Гедымін вызваляе распрацоўніка ад патрэбы вынаходзіць ровар, прапануючы сістэму табліцаў для захоўвання бухгалтарскіх праводак і складскога руху. Адначасна могуць ужывацца некалькі планаў рахункаў. Сума праводкі перадаецца ў рублях, валюце і дэталізуецца натуральнымі паказнікамі. Колькасць аналітычных прыкметаў абмежавана толькі фантазіяй наладніка.

Камплект стандартных справаздачаў уключае Журнал-ордэр, Карту рахунка, Аналіз рахунка, Галоўную кнігу.

Праводкі ў Журнал гаспадарчых аперацыяў фармуюцца аўтаматычна на падставе дадзеных дакумента па ланцужку:

Дакумент Тыпавая гаспадарчая аперацыя (ТГА) Тыпавая праводка (ТП) Праводка ў ЖГА

Алгарытмы ТГА і ТП адлюстроўваюць спецыфіку прадпрыемства і канструююцца ў адмысловым вакне з гатовых блокаў без кадавання ўручную.

Чым глыбей ступень аўтаматызацыі, тым больш паперы выдаткоўваецца на друк дакументаў і справаздачаў. Гэта, зразумела, жарт, але, як вядома, у кожным жарце ёсць частка праўды. У агляднай будучыні папяровыя дакументы захаваюць сваю бытнасць у дакументазвароце прадпрыемства.

Падсістэма вываду на друк платформы Гедымін пабудавана на базе Fast Report — бэнд-арыентаваным генератары справаздачаў з магчымасцямі пабудовы шматстаронкавых, шматшаблонных і зводных (крос-таб) справаздачаў, статычных і інтэрактыўных.

Сфармаваны дакумент можа быць выведзены на экран, раздрукаваны, захаваны ў файле, экспартаваны ў папулярныя офісныя фарматы (DOC, XLS, PDF) ці адпраўлены па электроннай пошце.

Адмысловая мова разметкі прадугледжана для хуткаснага друку справаздачаў на матрычных друкарках.

Абарона дадзеных прадпрыемства забяспечваецца супольна сродкамі сэрвера Firebird 3 і платформы Гедымін. З боку СКБД — гэта шыфраванне файла базы дадзеных і сеткавага трафіка, размежаванне доступу да аб'ектаў БД паводле стандарта SQL. Платформа забяспечвае дадатковыя механізмы:

  1. Размежавання доступу на ўзроўні асобных запісаў у табліцах.
  2. Размежавання доступу на ўзроўні бізнэс-класаў.
  3. Размежавання доступу да функцыяў сістэмы.
  4. Лагавання і аўдыту дзеянняў карыстальніка.
  5. Лагавання зменаў дадзеных на ўзроўні трыгераў.

Перанос дадзеных з адной базы ў другую задача не трывіяльная. Трэба выявіць усе рэляцыйныя спасылкі і строга пільнавацца парадку пры запісе ў файл. Ва ўнікненне задваення, пры загрузцы, аб'екты варта супастаўляць па глабальных ідэнтыфікатарах і ўнікальных палях. Механізмы серыялізацыі платформы выкарыстоўваюцца для абмену дадзенымі і загрузкі прастораў імёнаў (праграмнага кода і метададзеных). У апошнім выпадку выкарыстоўваецца чалавекачытэльны фармат дадзеных YAML.

Непасрэдна ў платформу Гедымін убудавана функцыйнасць web-кліента і web-сэрвера, што дазваляе далучацца да web-сэрвісаў, ствараць web-інтэрфэйсы і абменьвацца дадзенымі па пратаколе HTTP. Гедымін выступае сэрверам для мабільных дадаткаў GDMN Фінансы і Контроль і GDMN Разліковы лісток.

У імператыўным праграмаванні распрацоўнік з дапамогай паслядоўнасці інструкцый на мове VBScript рэалізоўвае правілы, зададзеныя на этапе пастаноўкі задачы. Увесь код разбіты на модулі і функцыі, лагічна злучаныя паміж сабою. Змена адной з іх можа пацягнуць далёка ідучыя наступствы ў самых невыяўных месцах. Калі заканадаўства і бізнэс-працэсы прадпрыемства змяняюцца бесперапынна, кошт развіцця і падтрымання праграмнага забеспячэння ў працаздольным стане ўзлятае да нябёсаў.

Дэкларатыўнае лагічнае праграмаванне дазваляе сканцэнтравацца на аналізе задачы і фармулёўцы правілаў, замест кадавання алгарытмаў. Пры змяненні правіла гарантуецца яго адпаведнасць з існай логікай, або адразу робіцца відавочнаю яго супярэчлівасць.

Гедымін — першая тэхналагічная платформа, дзе праграміст, нароўні з традыцыйным кодам, ужывае лагічнае праграмаванне на мове Prolog. Адмысловыя механізмы платформы забяспечваюць абмен паміж базай дадзеных і базай ведаў — фармаванне прэдыкатаў на падставе рэляцыйных дадзеных і выгрузку атрыманых рашэнняў.

Платформа Гедымін прапануе шырокі набор механізмаў для інтэграцыі з пабочнымі сістэмамі, прамысловым і гандлёвым абсталяваннем:

  1. Абмен дадзенымі праз тэкставыя файлы з дапамогай механізма шаблонаў і адмысловай мовы разметкі.
  2. Абмен дадзенымі праз файлы ў фармаце XML ці YAML.
  3. Абмен дадзенымі праз файлы ў фармаце DBF.
  4. Праца ў рэжыме COM-сэрвера і COM-кліента.
  5. Прамы зварот да функцый API драйвераў і пабочных бібліятэк.
  6. Праца ў рэжыме HTTP-сэрвера і HTTP-кліента.
  7. Праца ў рэжыме FTP-кліента.
  8. Далучэнне да вонкавых базаў дадзеных праз ODBC.

Праграмнае забеспячэнне з адкрытым зыходным кодам мае шэраг перавагаў. Назавем некаторыя з іх. Першае, гэта гарантыя захаванасці інвестыцый, бо працягласць жыцця прамысловай сістэмы на прадпрыемстве можа складаць ад 20 гадоў і больш. Не кожны пастаўнік ПЗ праіснуе гэтулькі часу. Другое, супрацоўнікі ІТ аддзела прадпрыемства могуць браць удзел у дапрацоўках і ўдасканаленні праграмнага забеспячэння. Трэцяе, распрацоўнікі пабочных сістэмаў маюць магчымасць разабрацца ў функцыянаванні платформы і самастойна стварыць драйверы для інтэграцыі сваіх праграмаў. Чацвёртае, гэта ліцэнзійная чысціня і істотнае зніжэнне агульнага кошту інфармацыйнай сістэмы.

Платформа Гедымін мае адкрыты зыходны код* і пастаўляецца на ўмовах Gedemin Public License. Сутнасць ліцэнзіі коратка: дазваляецца выкарыстанне зыходнага кода ў камерцыйных мэтах з умоваю, што ўсе занесеныя змены будуць размешчаны ў адкрытым доступе.

Такія ключавыя кампаненты платформы, як СКБД Firebird і SWI-Prolog, таксама з'яўляюцца бясплатнымі праграмнымі прадуктамі з адкрытым зыходным кодам.

Заўважым, што прыкладныя рашэнні, што пастаўляюцца кампаніяй Golden Software, Ltd, не з'яўляюцца бясплатнымі і набываюцца асобна.

* адзіная бібліятэка, якая не з'яўляецца бясплатнаю — гэта генератар справаздачаў Fast Report. Пабочны распрацоўнік абавязаны набыць асобную ліцэнзію на яе выкарыстанне на афіцыйным сайце.

Жыццяздольнасць канструктыўных рашэнняў, закладзеных у платформу Гедымін, была неаднаразова праверана ў суровых рэаліях выкарыстання праграмных комплексаў на найбуйных прадпрыемствах краіны. Прыведзеныя ніжэй значэнні ўзяты з базаў дадзеных, што знаходзяцца ў штодзённай эксплуатацыі.

Памер файла базы дадзеных — 100 Гб
Адначасных далучэнняў да сэрвера базы дадзеных — 170
Колькасць уліковых запісаў карыстальнікаў — 300
Працоўных на прадпрыемстве — 5 000
Базаў дадзеных у размеркаванай холдынгавай структуры — 16
Працоўных месцаў у размеркаванай холдынгавай структуры — 400
Дакументаў і іх пазіцый — 30 млн
Правадок — 30 млн
Прыкметаў аналітычнага ўліку — 70
Рахункаў і субрахункаў бухгалтарскага ўліку — 500
Інвентарных картак — 35 млн
Скрыпт-функцый, макрасаў, метадаў, падзеяў — 12 000
Радкоў VBScript кода — 700 000
Трыгераў — 5 800
Працэдур — 423
Табліцаў — 1 020
Палёў — 10 400
Індэксаў — 4 700
 

Як азнаёміцца з магчымасцямі платформы?

  1. Спампуйце і ўсталюйце Комплексную аўтаматызацыю прадпрыемства, якая ўключае аднакарыстальніцкую версію платформы Гедымін і базу дадзеных з асноўнымі функцыйнымі модулямі.
  2. Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
  3. Пытайцеся на форумах.
  4. У любы зручны для Вас час мы гатовыя правесці прэзентацыю і адказаць на пытанні. Звяртайцеся ў офіс кампаніі.

Як набыць рашэнні на базе платформы Гедымін?

  1. Вылучыце развязак са спіса.
  2. Вызначыцеся, ці спатрэбяцца працы па навучанні персаналу, дапрацоўцы, укараненні і суправаджэнні ПЗ.
  3. Удакладніце кошт на ПЗ і працы ў актуальным прайс-лісце.
  4. Звярніцеся ў офіс кампаніі за дамоваю і рахункам-фактураю для аплаты.

Як распачаць распрацоўку на базе платформы Гедымін?

  1. Спампуйце і ўсталюйце дыстрыбутыў Распрацоўнік, які ўтрымвае аднакарыстальніцкую версію платформы Гедымін і чыстую базу дадзеных з мінімальным наборам базавых скрыпт-функцый.
  2. Калі Вашыя рашэнні будуць заснаваны на тыпавых рашэннях кампаніі Golden Software, Ltd, тады ўсталюйце git і клануйце праект gedemin-apps. Загрузіце ў базу дадзеных патрэбныя прасторы імёнаў.
  3. Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
  4. Пытайцеся на форумах.

Як атрымаць зыходны код платформы Гедымін?

  1. Азнаёмцеся і прыміце ўмовы ліцэнзіі Gedemin Public License.
  2. Кіруйцеся інструкцыі па ўсталёўцы патрэбнага ПЗ і кампіляцыі платформы Гедымін альбо скарыстайцеся перадналаджанаю віртуальнаю машынаю.
  3. Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
  4. Пытайцеся на форумах.
  5. Не забывайцеся зробленыя змены адпраўляць у супольны рэпазітар.