Czym jest Tango Controls? Jakie ma zastosowanie w branży Big Science? Jakie są zalety tego typu systemów open source? Na te i na wiele innych pytań odpowiedzi znajdziecie w poniższym artykule.
Czym jest open source?
Zacznijmy od tego, czym są programy otwarte (z ang. open source software). Jest to rodzaj oprogramowania, którego kod źródłowy jest udostępniany na podstawie licencji, na mocy której właściciel praw autorskich przyznaje użytkownikom prawa do badania, zmiany i rozpowszechniania systemu w ramach licencji wolnego oprogramowania. Oprogramowanie o otwartym kodzie źródłowym jest zwykle rozwijane przez szeroką społeczność programistów, przy czym, pojęcie open source nie oznacza wyłącznie dostępu do kodu źródłowego. Musi zostać jeszcze spełniony szereg dodatkowych kryteriów dotyczących możliwości niemal nieskrępowanego rozpowszechniania systemu i łączenia z innymi programami. Dla potrzeb niniejszego artykułu nie będziemy ich szczegółowo omawiać, ale można się z nimi zapoznać na stronie: https://opensource.org/osd/
Co więcej, wbrew obiegowej opinii systemu open source nie można utożsamiać z darmowym oprogramowaniem. Często stosowane określenia „free software” czy „free open source software” oznaczają wolność w zakresie dostępu do kodu źródłowego, jego analizy, modyfikacji i rozpowszechniania, w tym także za opłatą. Mówiąc inaczej, oprogramowanie typu open source może być rozpowszechniane zarówno darmowo, jak i za miliony EUR.
Jakie są główne zalety open source?
Oprogramowanie open source zwykle pozwala na dowolną modyfikację i konfigurację software’u. Developerzy, mogą je ulepszać, dodając do niego nowe funkcjonalności lub naprawiając części, które nie zawsze działają poprawnie.
Licencje typu open source umożliwiają niemal dowolne wykorzystanie powstałego kodu, w zależności od wariantu, dopuszczając wykorzystanie go również w programach komercyjnych typu closed source. Przy czym należy być bardzo ostrożnym w wyborze odpowiedniej licencji. Niektóre z nich dają taką możliwość (np. BSD czy MIT/X11), a niektóre wprost tego zakazują lub istotnie ograniczają (np. GPL).
Jeśli ktoś nie ma ochoty zagłębiać się w zawiłości różnego rodzaju licencji typu open source, może skorzystać z chyba najbardziej liberalnej wersji: WTFPL (Do What the Fuck You Want to Public License – http://www.wtfpl.net/about/). Pozwolimy sobie nie zamieszczać dosłownego tłumaczenia z języka angielskiego
Z punktu widzenia programisty, open source pozwala zaprezentować społeczności devów interesujące wyzwania, ale też własny sposób myślenia i rozwiązywania problemów. Developerzy rozwijający programy open source mogą swobodnie uczestniczyć w projektach, które cieszą się dużą popularnością, co daje im możliwość autopromocji oraz ułatwia nawiązywanie kontaktów z osobami o podobnych zainteresowaniach i umiejętnościach.
– Często na myśl o programach otwartych przychodzi refleksja: „to nie będzie dobrze działać”. Tymczasem to nieprawda. Dla mnie jako programisty szczególnie ważne jest to, iż kiedy coś mi się zepsuje w systemie, to nie muszę pisać do dostawcy urządzenia z prośbą o pomoc i czekać pół roku na odpowiedź. Mogę sobie otworzyć kod źródłowy i zmienić drobną rzecz, która mi nie pasuje. To jest wielka zaleta programów open source
– mówi Michał Gandor, Software Developer w S2innovation.W ramach licencji open source funkcjonują takie popularne programy i systemy operacyjne, jak Linux, Mozilla Firefox czy Tango Controls – system, który zostanie szerzej omówiony w tym artykule.
Czym jest Tango Controls?
Tango Controls jest zestawem narzędzi programistycznych, za pomocą którego możemy stworzyć zarówno prosty system sterowania jednym lub kilkoma urządzeniami, jak i bardzo zaawansowane systemy typu SCADA (z ang. Supervisory Control and Data Acquisition) lub DCS (Distributed Control System) umożliwiające sterowanie (kontrole i zbieranie danych) choćby z tysięcy współpracujących ze sobą urządzeń i systemów. Każda współczesna fabryka lub instalacja przemysłowa (np. oczyszczalnie ścieków) korzysta z systemów typu SCADA lub DCS.
To, co wyróżnia Tango Controls na tle innych podobnych narzędzi komercyjnych, to darmowa licencja open source (GPL/LGPL) oraz duża elastyczność – działa na różnych systemach operacyjnych i obsługuje takie języki, jak C++, Java i Python dla wszystkich komponentów.
Koncepcja Tango Controls została opracowana 20 lat temu w Europejskim Ośrodku Promieniowania Synchrotronowego (ESRF) w Grenoble we Francji. Dziś Tango cieszy się popularnością szczególnie w placówkach badawczych, w których docenia się niezawodność tego zestawu narzędzi.
Gdzie wykorzystuje się system Tango?
Tango Controls jest w tej chwili wykorzystywany głównie w Europie do budowy systemów sterowania ogromnymi urządzeniami badawczymi, które w uproszczeniu nazywamy BIG Science. Są to np. akceleratory rozpędzające elektrony niemal do prędkości światła, takie jak European Synchrotron Radiation Facillity we Francji, MAX IV w Szwecji, czy SOLARIS w Polsce, ale również ogromne radioteleskopy SKAO czy też tunele aerodynamiczne w laboratoriach ONERA we Francji.
– Tango Controls w tej chwili doskonale sprawdza się w dużych ośrodkach badawczych, ale jego potencjał jest znacznie szerszy. Dzięki dużej elastyczności oraz otwartej architekturze oprogramowanie może być wykorzystywane wszędzie tam, gdzie zachodzi potrzeba integracji i sterowania w jednym systemie wielu urządzeń pochodzących od różnych producentów. Może to być np. elektrociepłownia, która posiada system odpowiadający za utrzymanie temperatury w kotle wyposażonym w czujniki różnych dostawców. Dzięki Tango Controls możemy stworzyć system sterowania temperaturą kotła pobierający dane z różnych czujników niezależnie od tego, od jakiego producenta one pochodzą. Dzięki temu użytkownik ma adekwatnie nieograniczoną możliwość modyfikacji i rozbudowy systemu zarówno po stronie sprzętowej, jak i oprogramowania, nie będąc skazanym na rozwiązania tylko jednego producenta
– tłumaczy Michał Gandor, który pracuje w systemie Tango od ponad 3 lat.Najważniejsze cechy Tango Controls
Tango Controls to według nas jedno z najlepszych darmowych, rozproszonych i zorientowanych obiektowo narzędzi open source do budowy zaawansowanych i stabilnych systemów sterowania. Oprogramowanie zostało zbudowane wokół koncepcji urządzeń i klas urządzeń (device classes), co wyróżnia je spośród innych programów SCADA, które często traktują system sterowania jako zbiór sygnałów oraz zapis i odczyt wartości procesowych.
Wspomniane klasy urządzeń są odpowiedzialne za translację sprzętowych protokołów komunikacyjnych na spójny protokół Tango Controls. W ten sposób można kontrolować i monitorować wszystkie sprzęty, takie jak silniki, zawory, oscyloskopy itp., z poziomu jednego systemu, jakim jest Tango, niezależnie od protokołu i systemu danego urządzenia. Klasy urządzeń mogą być używane do implementacji dowolnego algorytmu lub działania jako skrzynka pocztowa do każdego innego systemu czy systemu.
Ponadto Tango Controls jest niezależne sprzętowo, łatwo skalowalne oraz może być instalowane jako system stacjonarny, sieciowy (zdalny lub lokalny) lub rozproszony. Co bardzo ważne, jest to sprawdzone rozwiązanie – od kilkunastu lat pomaga sterować niezwykle skomplikowanymi systemami złożonymi z tysięcy sygnałów i setek urządzeń.
Jaka wiedza przydaje się w pracy z Tango? Języki programowania i technologie poboczne
Na jakich technologiach opiera się Tango? Oto najważniejsze z nich:
- CORBA i ZMQ (do komunikacji między serwerem urządzeń a klientami),
- C++, Python i Java (jako referencyjne języki programowania),
- Linux i Windows (jako systemy operacyjne),
- nowoczesne obiektowe wzorce projektowe.
Czy to oznacza, iż do pracy z Tango musimy posiadać szczegółową wiedzę z zakresu wyżej wymienionych języków?
– Oczywiście przydaje się tutaj umiejętność programowania. Może to być znajomość Pythona, Javy czy C++. Ale urządzenia, które są zintegrowane z systemem Tango, mogą być zaprogramowane w różnych językach programowania, a Tango poradzi sobie z każdym z wyżej wspomnianych
– wyjaśnia Michał Gandor.Tango Controls to system rozproszony, czyli poszczególne sprzęty mogą być zlokalizowane w różnych pomieszczeniach i obsługiwane na różnych komputerach. – Przydaje się więc znajomość sieci, systemów rozproszonych oraz podstaw Dockera. Dodatkowym atutem będzie wiedza w zakresie Linuxa – dodaje Michał Gandor.
Tango – główne wady i zalety
Niewątpliwą zaletą Tango Controls jest dobrze zaprojektowane, bogate API, które jest stabilne od wielu lat.
– Jego główną wartością jest możliwość integracji urządzeń pochodzących od różnych producentów. Możemy napisać program, który pośredniczy między Tango a urządzeniem, i łatwo zagregować sprzęt w jednym systemie, robić wizualizacje czy archiwizację danych.
Inną zaletą jest łatwość integracji tych urządzeń. jeżeli przychodzi nowy element, nie trzeba pisać wszystkiego od zera. Część rzeczy da się zrobić dzięki generatorom po stronie Tango, które mogą wygenerować szablon. Wówczas już tylko wrzucasz odpowiedni kod w miejsca, w których potrzebujesz się połączyć z urządzeniem, a reszta kodu zostaje wygenerowana
– wymienia Michał Gandor.Jak każde rozwiązanie, Tango Controls ma też swoje wady. – To trochę skomplikowany system. Jest bardzo logiczny, i jak złapiesz podstawy tego, jak on działa, to później jest już znacznie łatwiej. Natomiast do zrozumienia jego funkcjonowania przydaje się nieco inżynierskiej wiedzy. To, iż potrafisz programować, nie oznacza, iż będziesz potrafił coś zrobić w Tango. To jest kolejna warstwa, której po prostu trzeba się nauczyć – tłumaczy Michał Gandor.
– Co ważne, Tango Controls jest cały czas aktywnie rozwijane nie tylko przez użytkowników, ale również przez trzy firmy komercyjne, które razem ze społecznością dbają o utrzymanie i rozwój oprogramowania. Jedną z nich jest właśnie S2Innovation, dzięki czemu doskonale znamy to narzędzie oraz mamy pewien wpływ na jego przyszły rozwój
– mówi Łukasz Żytniak, Chief Operating Officer w S2Innovation.Jak rozpocząć przygodę z Tango Controls?
Instalacja Tango nie jest trudna – wystarczy pobrać program dostępny na oficjalnej stronie, a także zapoznać się z dokumentacją. Do późniejszej pracy z Tango Controls przyda się znajomość wyżej wymienionych technologii.
Masz jakikolwiek problem z Tango? Na szczęście możesz poszukać pomocy wśród społeczności – liczy ona ponad 500 uczestników z całego świata, 45 partnerów instytucjonalnych i ponad 15 partnerów przemysłowych. Forum społeczności Tango „żyje” przez cały czas – można tutaj poznać wiele ciekawostek i znaleźć rozwiązania, na które sami nie wpadliśmy.
Dlaczego warto korzystać z rozwiązań open source w Big Science?
Open source promuje kulturę współpracy. Takie projekty zacieśniają współpracę naukowców z różnych instytucji i krajów. Często te ośrodki działają na podobnym sprzęcie i potrzebują podobnych funkcjonalności, a oprogramowanie open source oferuje stabilne, sprawdzone przez innych i ciągle udoskonalane rozwiązania. Naukowcy mogą współpracować nad ulepszaniem narzędzi, dzieląc się swoimi pomysłami i kodem. To stymuluje szybszy rozwój i innowacje.
Oprogramowanie open source jest zwykle darmowe, co pozwala zaoszczędzić znaczne środki finansowe. Ośrodki Big Science, korzystające z tego typu rozwiązań, często współfinansują rozwój takiego oprogramowania, co znacznie przyspiesza tempo rozwoju i zwiększa efektywność pracy, umożliwiając wykorzystanie wsparcia od firm komercyjnych.
– Projekty open source w Big Science posiadają również aktywną społeczność użytkowników. Może nie jest ona tak ogromna, jak społeczności najpopularniejszych projektów, ponieważ obszar wykorzystania takiego systemu jest ograniczony i grono odbiorców również nie jest duże – mówi Łukasz Żytniak.
Takie społeczności skupiają przeważnie specjalistów z dużym doświadczeniem w swojej pracy. Dodatkowo, o ile mówimy o Tango Controls, które w głównej mierze działa na koncepcie device servers oraz device classes, to społeczność użytkowników dzieli się gotowymi implementacjami takich urządzeń, więc możemy korzystać ze sprawdzonych rozwiązań.
S2innovation – dlaczego korzystamy z Tango?
Decyzja o oferowaniu usług związanych z oprogramowaniem Tango Controls w S2Innovation nie jest przypadkowa. Początki naszej firmy ściśle wiążą się z doświadczeniem wyniesionym z budowy Narodowego Centrum Promieniowania Synchrotronowego SOLARIS, w Krakowie, gdzie po raz pierwszy mieliśmy okazję pracować z Tango Controls.
Mimo iż dziś działalność S2Innovation nie ogranicza się tylko do usług związanych z Tango Controls, to wciąż jest to znacząca część naszych projektów. Społeczność Tango Controls jest naszym pierwszym klientem i cały czas aktywnie uczestniczymy w dalszym rozwoju tego oprogramowania. I nie chodzi tu tylko o sentymenty. Po prostu wiemy, iż jest to bardzo dobre, jeżeli nie najlepsze darmowe narzędzie open source do budowy nowoczesnych systemów sterowania w tej chwili dostępne na rynku.
Michał Gandor. Software developer w S2Innovation z ponad 3-letnim doświadczeniem w IT. Jego główne obszary specjalizacji to JavaScript, Python i Machine Learning. Prywatnie miłośnik jazdy na rowerze MTB oraz podróży do dzikich miejsc.
Łukasz Żytniak. Chief Operating Officer w S2Innovation z ponad 10-letnim doświadczeniem w branży IT, Big Science, telekomunikacyjnej i motoryzacyjnej. Kierownik dużych, międzynarodowych i rozproszonych projektów. Prywatnie miłośnik nowych technologii, sztuk walki i nurkowania.