3. Historia systemu SZARP

Wszystko zaczęło się w roku 1991. Inicjatorem był Witold Kowalewski, właściciel firmy Praterm. Praterm od momentu powstania w 1983 roku zajmował się automatyzacją ciepłownictwa. Początkowo wykorzystywał urządzenia elektro-mechaniczne, od 1989 roku zaczął wykorzystywać mikroprocesorowe sterowniki przemysłowe firmy Z-Elektronik należącej do Krystiana Zasadzińskiego. Wkrótce okazało się, że dla przeprowadzenia analiz prowadzenia przez automatykę procesów technologicznych w ciepłownictwie potrzebny jest system do rejestrowania danych charakteryzujących te procesy: temperatur, ciśnień itp. Zbiegło się to z początkiem ery komputerów PC. W 1991 roku Piotr Branecki stworzył pierwszy program w Turbo Pascalu pracujący pod DOSem, który zbierał dane ze sterowników podłączonych za pomocą terminala wieloportowego firmy Specialix przez RS-y 232. Dane zapisane były w formacie binarnym specyficznym dla tego programu. W roku 1992 do prac nad rozwojem SZARPa dołączył Lucjan Przykorski. Oprogramowanie zostało podzielone na dwie części:

Wszystko pracowało w jednowątkowym DOSie, stąd potrzeba dwóch komputerów, aby można było uruchomić w systemie więcej niż jeden program. Sieć pracowała na Novell NWLite 1.0, potem 1.1. Baza zapisywana była w systemie opartym na plikach dBaseIV: DBF + MDX, który to format zachował się aż do SZARP v2.1. W roku 1993 do zespołu programistów dołączył na chwilę Stanisław Kłosiński, autor innego programu klienckiego dedykowanego do pracy na terminalu, służącego do specjalistycznej analizy zarejestrowanych danych.

W tym samym roku 1993 Branecki i Przykorski przenieśli SZARP na platformę Unix - był to USL Unix SVR4.2 firmy Consensys, którego ilość egzemplarzy sprzedana w Polsce dała się policzyć na palcach. SZARP jako system pracujący w środowisku wielozadaniowym został podzielony na szereg programów. Część z nich działała jako demony pracujące w tle, interfejs użytkownika stanowiły zaś aplikacje klienckie wykorzystujące Motif 1.1.1. W roku 1994 do zespołu programistów dołączył Marcin Anderson, twórca kilku programów zarówno w kategorii demonów jak i aplikacji użytkowych.

We wrześniu 1994 Branecki i Przykorski obronili na Wydziale Elektroniki i Technik Informatycznych Politechniki Warszawskiej pracę dyplomową: "System zbierania danych i sterowania wolnozmiennych procesów technologicznych o rozproszonych punktach kontrolno-pomiarowych". Praca to dotyczyła SZARPa i współpracujących z nim sterowników przemysłowych. Pomimo innowacyjnego charakteru pracy, kilku działających w rzeczywistości instalacji i ewenementu w postaci filmu, który dyplomanci nakręcili w ramach pracy, została ona zignorowana przez uczelnię.

Jeszcze w roku 1994 SZARP doczekał się nowego systemu operacyjnego: Novell UnixWare 1.1, który został przez Novella zakupiony od AT&T. Następną platformą był Novell UnixWare 2.03, po której to wersji Novell sprzedał ze stratą UnixWare do SCO. Ta ostatnia wypuściła w 1995 roku SCO UnixWare 2.1, który nie licząc kilku patchy był ostatnim z komercyjnych Unixów, na którym pracował SZARP.

W latach 1993-1995 jako terminale wykorzystywane były komputery pracujące w DOSie z programem XAppeal firmy Xtreme charakteryzujący się bardzo małymi wymaganiami sprzętowymi i jeszcze mniejszą listą obsługiwanego sprzętu nie różniąc się specjalnie w tym ostatnim od linii UnixWare. Od roku 1996 w swoich instalacjach Praterm zaczął wykorzystywać emulatory Xserwera pracujące pod MS-Windows: Starnet X-Win, SCO XVision Eclipse 7.1, Labf.com X-Win Pro / WinaXe. Najwięcej terminali zostało wykorzystanych w oparciu o ten ostatni, najtańszy, najlżejszy i najbardziej rozwijający się produkt fińskich programistów.

W 1996 roku pozostający do tego momentu bezimiennym system zbierania, archiwizacji i prezentacji danych doczekał się oficjalnej nazwy SZARP v2.0. Nazwa SZARP v1.0 miała dotyczyć instalacji pod DOSem. SZARP v2.0 składał się z 12 modułów, jego struktura pozwalała na dowolną rozbudowę o kolejne. W lecie roku 1996 od Pratermu odszedł Piotr Branecki, na początku roku 1997 firmę opuścił także Marcin Anderson. W roku 1997 w Legionowie dokonana została ostatnia instalacja SZARPa na SCO UnixWare. Pod koniec roku 1997 do zespołu programistów dołączyli Maciej Mochol i Jarosław Nowisz. To oni dokonali portu SZARP z UnixWare do Linuksa tworząc w ten sposób SZARP v2.1. Oprócz samego przeniesienia wykonali szereg usprawnień i usunęli niezliczoną masę błędów. W roku 1998 SZARP doczekał się repozytorium CVS. W tym samym roku Maciej Mochol zaadoptował SZARPa do autoconfa i stworzył z niego dystrybucję (wcześniej była to luźno rozrzucona grupa programów). Od roku 1998 SZARP był instalowany już tylko na Linuxie, początkowo na dystrybucji Red Hat poczynając od wersji 5.2.

W roku 1999 do zespołu programistów dołączył Michał Rój. Na początku roku 2000 Maciej Mochol stworzył narzędzie parconf, które później wielokrotnie udoskonalane znakomicie usprawniło zmiany w konfiguracji poszczególnych serwerów, które to zmiany wcześniej wymagały dużej ilości ręcznych operacji. W połowie 2000 roku zespół rozszerzył się o Pawła Pałuchę. Pod koniec roku 2000 zrezygnował z pracy nad projektem Jarosław Nowisz. W połowie kwietnia 2001 uruchomiona została pierwsza instalacja BODASa - Bazy Ogólnopolskiej Danych Archiwalnych SZARP. Część systemów z SZARPem podłączonych do internetu przez stałe łącze zrzuca aktualne dane co 10 minut, nieliczne już hosty z modemami łączą się raz na dobę zgrywając dane na serwer praterm.com.pl. Do centralnego serwera Pratermu podłączane są sukcesywnie kolejne hosty z SZARPem. W kwietniu 2001 do zespołu developerów SZARPa dołączył Stanisław Sawa. Pod koniec roku 2001 Paweł Pałucha dodał do SZARPa pierwszą od dłuższego czasu aplikację z graficznym interfejsem użytkownika - Dyspozytor.

Na początku 2002 zrezygnował z pracy w zespole Maciej Mochol. We wrześniu 2002 roku Paweł Pałucha obronił na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego kolejną pracę magisterską dotyczącą SZARPa - Zdalne sterowanie i kontrola procesu przemysłowego z wykorzystaniem technologii XML/SVG, tworząc tym samym nową wersję wizualizacyjnej części systemu. Pod koniec roku 2002 ten sam developer rozpoczął przenoszenie części aplikacji użytkowych SZARPa na platformę MS-Windows, z wykorzystaniem biblioteki wxWindows/wxWidgets.

W roku 2003 SZARP był instalowany na pochodnych dystrybucji Red Hat - Aurox 9.x. W tym samym roku, w związku z wycofaniem się Red Hat z rozwijania dystrybucji niekomercyjnych, SZARP zaczął być instalowany na Debianie, którego specjalizowaną dystrybucję przygotował Stanisław Sawa. W tym samym roku terminale windowsowe zaczęły być wyposażane w Xserwer Cygwin - w odróżnieniu od WinaXe darmowy i wyposażony w wiele funkcji jak np. serwer sshd. Także w 2003 roku Paweł Pałucha rozpoczął prace nad przeniesieniem konfiguracji do IPK - Idealnego Pliku Konfiguracyjnego - w formacie XML.

W roku 2004 do zespołu "sterownikowego" firmy Praterm S.A. dołączył Paweł Kolega, także uczestniczący w rozwoju oprogramowania. Paweł Pałucha zaprojektował i zaimplementował nowy, prostszy format bazy danych, co pozwoliło na stopniowe wycofywanie się z ostatniego komercyjnego elementu systemu - biblioteki Codebase do obsługi bazy dBase IV. Jako emulator X-terminala dla terminali z Windows, ze względu na prostotę instalacji, zaczął być stosowany freeware'owy Pexus X/Deep32.

06.12.2004 akcje Praterm SA zadebiutowały na GPW, co w praktyce oznaczało szereg poważnych zmian dla SZARPa. Skończył się etap pilnowania każdej złotówki przy pracach rozwojowych (rozpatrywanie każdego tematu pod kątem zwrotu w jak najkrótszym czasie), zamiast tego należało położyć nacisk na bezpieczeństwo. 01.01.2005 Lucjan Przykorski oficjalnie przestał być aktywnym członkiem zespołu programistów (co stało się faktem jakiś czas wcześniej), zajmując się w Pratermie sprawami technicznymi, informatyka zaś pozostała jego hobby. Szefem działu IT został Paweł Pałucha, który od tego momentu decydował o przyjmowaniu nowych informatyków i szczegółowych pracach nad SZARPem.

Na przełomie roku 2004/2005 współpracę przy tworzeniu SZARP'a zakończył Michał Rój, natomiast dołączyli trzej nowi programiści - Michał Blajerski, Dariusz Marcinkiewicz i Krzysztof Gałązka. Do działu sterownikowego dołączył Jarek Janik. Dokończono przenoszenie całości konfiguracji do formatu XML. Powstało wiele sterowników do nowych urządzeń, oprogramowanie do importu danych z innych systemów telemetrycznych, zrealizowano instalacje wykorzystujące łączność bezprzewodową WLAN i komunikację GSM/GPRS.

Pod koniec III-go kwartału 2005 z pracy w zespole programistów zrezygnował Stanisław Sawa. Na wszystkich ciepłowniach Pratermu dokonano aktualizacji systemów operacyjnych do Debiana, przeprowadzono konwersję istniejących baz na nowy format. Działania te udało się także podjąć u większości klientów zewnętrznych - mimo kilku nowo zakupionych przedsiębiorstw nadal około połowy instalacji to spółki spoza grupy Praterm.

Rok 2006 to okres dość intensywnego rozwoju aplikacji klienckich, w szczególności pierwszym użytkownikom zaoferowano wersje programu przeglądającego nowej generacji, pracującego także pod kontrolą Windows. W połowie roku do zespołu programistów dołączył Krzysztof Ołowski.

W 2007 roku do pracy nad SZARP'em dołączyło dwóch nowych programistów - Maciej Zbińkowski (na około rok) i Sławomir Chyłek. Po wielu latach pracy na ukończeniu znalazła się wersja 3.0 programu przeglądającego dane historyczne - najważniejszej i najbardziej złożone aplikacji SZARP. W maju 2007 do systemu SZARP zostało dodane wyliczanie parametrów definiowalnych pisanych w języku LUA. 15 października tego roku kod SZARP (ponad 200 tysięcy linii kodu) został udostępniony na licencji GPL.

W 2008 roku w zespole programistów Sławomir Chyłek wymienił się z Adamem Smykiem. Całość programów klienckich została przepisana na bibliotekę wxWidgets, co pozwoliło na powstanie także wersji dla Windows.

W roku 2009, rok po przejęciu firmy Praterm przez grupę Dalkia, część zespołu technicznego opuściła Praterm, rozwój systemu zaczął więc być prowadzony jednocześnie także przez firmę Newterm. Repozytorium projektu zostało przeniesione na portal SourceForge.net, kod został wyczyszczony z większości komercyjnych pozostałości. Uruchomiono nowy portal projektu pod adresem www.szarp.org.

W roku 2010 SZARP zmienił system kontroli wersji na git. Dodano obsługę kolejnych urządzeń i kolejne demony, cache parametrów definiowalnych, optymalizator formuł LUA, a szbase wzbogacił się o możliwość zbierania danych z 10 sekundową rozdzielczością.

Rok 2011, do grona programistów SZARPa dołącza Jakub Kotur, który w tym samym roku tworzy aplikację pyipk. W 2011 roku zostaje zakończone wdrożenie największej do tej pory, pojedynczej, konfiguracji systemu SZARP. Pracę nad SZARPem kończy Paweł Pałucha, deweloper i architekt, który, między innymi, zaprojektował oraz zaimplementował szbase i ISL, posiadacz największej ilości wpisów w ChangeLogu. W roku 2011 dołącza do zespołu Aleksy Barcz.

Rok 2012 to ropoczęcie prac nad nowym formatem bazy danych "sz4" oraz zakończenie prac nad pyipk. To już kolejny rok, w którym programiści firmy Newterm, dotychczas zajmujący się wyłącznie system SZARP, rozwijają siostrzane projekty - knlib i kngui. Knlib to platforma dla programów techologicznych działająca pod kontrolą sytemu Linux (działająca początku na sterownika firmy Kontron). Kngui to interfejs graficzny, komnikujący się z knlib-em, pozwalający na podgląd i zadawanie parametrów technologicznych, zgłaszanie alarmów, etc. Do zespołu dołącza Marcin Harasimczuk.

Rok 2013 to dalszy rozwój nowego formatu danych, wzbogacenie SZARPa o obsługę kolejnych protokołów i urządzeń, przeprowadzka kodu z SourceForge na github. W 2013 do zespołu dołącza Tomasz Pieczerak.

Najważniejszym wydarzenie roku 2014 to bez wątpienia powstanie idraw, web-owej wersji programu draw, posiadającą podobną funkcjonalnośc do "klasycznej" desktopowej wersji draw. Z idrawa można korzystać z przeglądrki internetowej oraz smartphona.

W 2015 roku Tomasz Pieczerak dodał do SZARPa aplikację filler2, umożliwającą, za pomocą graficznego interfejsu użytkownika, modyfikację danych historycznych bazy szbase, a Marcin Harasimczuk wzbogacił SZARPa o nowego demona, pozwalającego SZARPowi komunikować się za pomocą protokołu S7 firmy Siemens. W tymże roku dokonano pierwszego, pilotażowego wdrożenia nowego formatu bazy danych. Do zespołu dołącza Mateusz Morusiewicz.