Да міленіюму ў нас было з паўтысячы кліентаў і цэлае сямейства разнашэрсных праграмаў на ўсе выпадкі бізнэсу. Кожны чарговы дадатак ствараўся фактычна з нуля, меў адасобленую базу дадзеных і арыгінальны карыстацкі інтэрфэйс. Файл-сэрверны рухавічок Paradox трашчаў па швах з узрастаннем табліцаў і колькасці далучэнняў. Зыходны код не мог змясціць спецыфіку кожнага карыстальніка.
Мяжа была блізкая.
Узяўшы чысты аркуш паперы, мы сфармавалі тры асноўных вымогі да будучай платформы:
- Адзіная база дадзеных, SQL і надзейны кліент-сэрвер.
- Уніфікаваны аб'ектна-арыентаваны доступ да рэляцыйных табліцаў.
- Магчымасць налады "на ляту" структуры б/д, інтэрфэйсу, алгарытмаў, справаздачаў.
У 2000-м годзе кампанія Borland адкрыла зыходныя коды сэрвера Interbase. Так паўстаў Firebird — малады праект з багатай гісторыяй — натуральны і адзіны выбар для платформы Гедымін.
Натуральны, бо як прадукт з адной кампаніі, ён выдатна інтэграваўся на ўзроўні непасрэднага звароту да функцый API з распрацоўкамі на Delphi і не патрабаваў прамежкавага пласта з ODBC драйвераў.
Адзіны, таму што на той момант іншага бясплатнага сэрвера з адкрытым зыходным кодам, падтрымкаю транзакцый, шматверсійнасцю дадзеных, трыгерамі і захоўнымі працэдурамі проста не існавала.
Рэжым убудаванага сэрвера прынёс усю моц і надзейнасць SQL нават у аднакарыстацкія ўсталёўкі праграмаў на платформе Гедымін.
У рэляцыйнай базе дадзеных аб'ект захоўваецца ў некалькіх табліцах, злучаных паміж сабою. Прыкладам, даведнік юрыдычных асобаў выглядае так:
Пры традыцыйным падыходзе праграміст апрацоўвае кожную табліцу, выконваючы строгую чарговасць. Чым больш разгалінаваная структура базы дадзеных, тым складаней праграмны код.
Бізнэс-аб'ект — нашае вынаходства — гэта пост-рэляцыйная object-relational mapping (ORM) тэхналогія, якая вырашае наступныя задачы:
- Яднае некалькі рэляцыйных табліцаў у адзінае цэлае.
- Фармуе SQL запыты для бягучай структуры базы дадзеных.
- Кіруе транзакцыямі і кропкамі захавання.
- Арганізуе карыстацкі інтэрфэйс.
- Кантралюе правы доступу да дадзеных і функцый.
- Лагуе змены дадзеных і дзеянні карыстальніка.
- Серыялізуе дадзеныя для запісу ў файл.
Праграміст пазбаўляецца ад чарнавой руціннай працы. Код робіцца прасцейшы.
Уніфікацыя карыстацкага інтэрфэйсу дазваляе зменшыць выдаткі на навучанне карыстальнікаў і скараціць тэрмін укаранення. У Гедыміне кожны бізнэс-аб'ект мае два стандартных вакна. Форма прагляду служыць для адлюстравання спіса запісаў, фільтрацыі, сартавання і выбару. Дыялогавае вакно запісу прызначана для стварэння/прагляду/змены аднаго аб'екта.
Платформа ўключае камплект экранных элементаў для адлюстравання і рэдагавання набораў дадзеных і асобных палёў бізнес-аб'ектаў.
Паданне інфармацыі ў таблічным выглядзе:
Пошук, выбар, стварэнне і рэдагаванне аб'екта з дапамогай выпадаючага спіса:
Выкананне вылічэнняў непасрэдна ў полі ўводу лікавай інфармацыі:
Зручны выбар каляндарнага перыяду:
Карыстальніку з’яўляюцца даступнымі пяць спосабаў пошуку інфармацыі. Тры выконваюцца на баку кліента і два – на баку сэрвера. Фільтрацыя — самы магутны з іх — дазваляе аператару без ведаў сінтаксісу SQL фармаваць складаныя запыты. Адлюстраваць спіс накладных за студзень толькі для пакупнікоў, якія набывалі тавар у гэтым жа месяцы год таму? Лёгка!
Набор фундаментальных даведнікаў і базавыя тыпавыя дакументы ўваходзяць у ядро платформы. Усё астатняе — распрацоўнік стварае падчас развязання пастаўленай задачы. Для новага бізнэс-класа патрэбна:
- Стварыць структуры дадзеных.
- Наладзіць экранныя формы.
- Напісаць праграмны код.
Мова распрацоўкі на платформе Гедымін — VBScript — хутка асвойваецца нават далёкімі ад кампутаровай галіны спецыялістамі. Для эфектыўнага праграмавання, адладкі і прафілявання прапануецца ўвесь набор патрэбных прыладаў.
Практычна кожная задача па аўтаматызацыі на прадпрыемстве ўключае ўлік таварна-матэрыяльных каштоўнасцяў і руху грашовых сродкаў па бухгалтарскіх рахунках. Гедымін вызваляе распрацоўніка ад патрэбы вынаходзіць ровар, прапануючы сістэму табліцаў для захоўвання бухгалтарскіх праводак і складскога руху. Адначасна могуць ужывацца некалькі планаў рахункаў. Сума праводкі перадаецца ў рублях, валюце і дэталізуецца натуральнымі паказнікамі. Колькасць аналітычных прыкметаў абмежавана толькі фантазіяй наладніка.
Камплект стандартных справаздачаў уключае Журнал-ордэр, Карту рахунка, Аналіз рахунка, Галоўную кнігу.
Праводкі ў Журнал гаспадарчых аперацыяў фармуюцца аўтаматычна на падставе дадзеных дакумента па ланцужку:
Дакумент Тыпавая гаспадарчая аперацыя (ТГА) Тыпавая праводка (ТП) Праводка ў ЖГА
Алгарытмы ТГА і ТП адлюстроўваюць спецыфіку прадпрыемства і канструююцца ў адмысловым вакне з гатовых блокаў без кадавання ўручную.
Чым глыбей ступень аўтаматызацыі, тым больш паперы выдаткоўваецца на друк дакументаў і справаздачаў. Гэта, зразумела, жарт, але, як вядома, у кожным жарце ёсць частка праўды. У агляднай будучыні папяровыя дакументы захаваюць сваю бытнасць у дакументазвароце прадпрыемства.
Падсістэма вываду на друк платформы Гедымін пабудавана на базе Fast Report — бэнд-арыентаваным генератары справаздачаў з магчымасцямі пабудовы шматстаронкавых, шматшаблонных і зводных (крос-таб) справаздачаў, статычных і інтэрактыўных.
Сфармаваны дакумент можа быць выведзены на экран, раздрукаваны, захаваны ў файле, экспартаваны ў папулярныя офісныя фарматы (DOC, XLS, PDF) ці адпраўлены па электроннай пошце.
Адмысловая мова разметкі прадугледжана для хуткаснага друку справаздачаў на матрычных друкарках.
Абарона дадзеных прадпрыемства забяспечваецца супольна сродкамі сэрвера Firebird 3 і платформы Гедымін. З боку СКБД — гэта шыфраванне файла базы дадзеных і сеткавага трафіка, размежаванне доступу да аб'ектаў БД паводле стандарта SQL. Платформа забяспечвае дадатковыя механізмы:
- Размежавання доступу на ўзроўні асобных запісаў у табліцах.
- Размежавання доступу на ўзроўні бізнэс-класаў.
- Размежавання доступу да функцыяў сістэмы.
- Лагавання і аўдыту дзеянняў карыстальніка.
- Лагавання зменаў дадзеных на ўзроўні трыгераў.
Перанос дадзеных з адной базы ў другую задача не трывіяльная. Трэба выявіць усе рэляцыйныя спасылкі і строга пільнавацца парадку пры запісе ў файл. Ва ўнікненне задваення, пры загрузцы, аб'екты варта супастаўляць па глабальных ідэнтыфікатарах і ўнікальных палях. Механізмы серыялізацыі платформы выкарыстоўваюцца для абмену дадзенымі і загрузкі прастораў імёнаў (праграмнага кода і метададзеных). У апошнім выпадку выкарыстоўваецца чалавекачытэльны фармат дадзеных YAML.
Непасрэдна ў платформу Гедымін убудавана функцыйнасць web-кліента і web-сэрвера, што дазваляе далучацца да web-сэрвісаў, ствараць web-інтэрфэйсы і абменьвацца дадзенымі па пратаколе HTTP. Гедымін выступае сэрверам для мабільных дадаткаў GDMN Фінансы і Контроль і GDMN Разліковы лісток.
У імператыўным праграмаванні распрацоўнік з дапамогай паслядоўнасці інструкцый на мове VBScript рэалізоўвае правілы, зададзеныя на этапе пастаноўкі задачы. Увесь код разбіты на модулі і функцыі, лагічна злучаныя паміж сабою. Змена адной з іх можа пацягнуць далёка ідучыя наступствы ў самых невыяўных месцах. Калі заканадаўства і бізнэс-працэсы прадпрыемства змяняюцца бесперапынна, кошт развіцця і падтрымання праграмнага забеспячэння ў працаздольным стане ўзлятае да нябёсаў.
Дэкларатыўнае лагічнае праграмаванне дазваляе сканцэнтравацца на аналізе задачы і фармулёўцы правілаў, замест кадавання алгарытмаў. Пры змяненні правіла гарантуецца яго адпаведнасць з існай логікай, або адразу робіцца відавочнаю яго супярэчлівасць.
Гедымін — першая тэхналагічная платформа, дзе праграміст, нароўні з традыцыйным кодам, ужывае лагічнае праграмаванне на мове Prolog. Адмысловыя механізмы платформы забяспечваюць абмен паміж базай дадзеных і базай ведаў — фармаванне прэдыкатаў на падставе рэляцыйных дадзеных і выгрузку атрыманых рашэнняў.
Платформа Гедымін прапануе шырокі набор механізмаў для інтэграцыі з пабочнымі сістэмамі, прамысловым і гандлёвым абсталяваннем:
- Абмен дадзенымі праз тэкставыя файлы з дапамогай механізма шаблонаў і адмысловай мовы разметкі.
- Абмен дадзенымі праз файлы ў фармаце XML ці YAML.
- Абмен дадзенымі праз файлы ў фармаце DBF.
- Праца ў рэжыме COM-сэрвера і COM-кліента.
- Прамы зварот да функцый API драйвераў і пабочных бібліятэк.
- Праца ў рэжыме HTTP-сэрвера і HTTP-кліента.
- Праца ў рэжыме FTP-кліента.
- Далучэнне да вонкавых базаў дадзеных праз 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
Як азнаёміцца з магчымасцямі платформы?
- Спампуйце і ўсталюйце Комплексную аўтаматызацыю прадпрыемства, якая ўключае аднакарыстальніцкую версію платформы Гедымін і базу дадзеных з асноўнымі функцыйнымі модулямі.
- Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
- Пытайцеся на форумах.
- У любы зручны для Вас час мы гатовыя правесці прэзентацыю і адказаць на пытанні. Звяртайцеся ў офіс кампаніі.
Як набыць рашэнні на базе платформы Гедымін?
- Вылучыце развязак са спіса.
- Вызначыцеся, ці спатрэбяцца працы па навучанні персаналу, дапрацоўцы, укараненні і суправаджэнні ПЗ.
- Удакладніце кошт на ПЗ і працы ў актуальным прайс-лісце.
- Звярніцеся ў офіс кампаніі за дамоваю і рахункам-фактураю для аплаты.
Як распачаць распрацоўку на базе платформы Гедымін?
- Спампуйце і ўсталюйце дыстрыбутыў Распрацоўнік, які ўтрымвае аднакарыстальніцкую версію платформы Гедымін і чыстую базу дадзеных з мінімальным наборам базавых скрыпт-функцый.
- Калі Вашыя рашэнні будуць заснаваны на тыпавых рашэннях кампаніі Golden Software, Ltd, тады ўсталюйце git і клануйце праект gedemin-apps. Загрузіце ў базу дадзеных патрэбныя прасторы імёнаў.
- Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
- Пытайцеся на форумах.
Як атрымаць зыходны код платформы Гедымін?
- Азнаёмцеся і прыміце ўмовы ліцэнзіі Gedemin Public License.
- Кіруйцеся інструкцыі па ўсталёўцы патрэбнага ПЗ і кампіляцыі платформы Гедымін альбо скарыстайцеся перадналаджанаю віртуальнаю машынаю.
- Чытайце дакументацыю і глядзіце відэа ўрокі на нашай wiki.
- Пытайцеся на форумах.
- Не забывайцеся зробленыя змены адпраўляць у супольны рэпазітар.