Biuletyn AGH
Magazyn Informacyjny Akademii Górniczo-Hutniczej
18 listopad 2017
Strona GłównaBiuletyn AGHArchiwumKontakt
Architektura zorientowana na usługi w urządzeniach powszechnego użytku

Katedra Informatyki AGH prowadzi niezwykle ciekawy projekt badawczy dotyczący współczesnych technologii informacyjnych działających w systemach rozproszonych. Technologie te, oparte na paradygmacie SOA (ang. Service Oriented Architecture), są stosowane do informatyzacji procesów biznesowych, platform usługowych oraz infrastruktury informatycznej dla e-Science. Celem strategicznym projektu jest realizacja badań naukowych w zakresie innowacyjnych metod i narzędzi umożliwiających praktyczne zastosowanie paradygmatu SOA w procesie tworzenia nowoczesnych rozwiązań informatycznych dla poprawy konkurencyjności polskich przedsiębiorstw, rozwoju elektronicznej gospodarki i społeczeństwa informacyjnego. Projekt obejmuje kilka dużych uniwersytetów w Polsce i jest finansowany przez UE. W AGH koordynuje go prof. Krzysztof Zieliński, kierownik Katedry Informatyki.

Skrót SOA można przetłumaczyć jako „architektura zorientowana na usługi”. „Chodzi o to, aby różne urządzenia i aplikacje można było połączyć jedną spójną architekturą (SOA) i żeby dostęp do tych urządzeń czy usług był możliwy w świece wirtualnym poprzez spójny samoopisujący się interfejs programowy” – tłumaczy dr inż. Jacek Długopolski z Katedry Informatyki.

Istotą części sprzętowej projektu są układy programowalne FPGA, które charakteryzują się zupełnie innym podejściem do informatyki. Bo FPGA, czyli Field Programmable Gate Array, to nie procesor, lecz rodzaj programowalnego układu logicznego. Może on być wielokrotnie przeprogramowywany już po zamontowaniu w urządzeniu docelowym. FPGA to układy sprzętowe, które za pomocą odpowiedniego oprogramowania możemy konfigurować wewnątrz. „Zupełnie odchodzimy tutaj od takiego podejścia, że mamy procesor, który wykonuje załadowany do niego program. Wyobraźmy sobie, że układ scalony FPGA to taka czarna skrzynka, zawierająca miliony prostych układów logicznych, które wykonują funkcje typu koniunkcja, alternatywa, czy też negacja i my korzystając z tych tzw. bramek logicznych łączymy je razem w większe układy, budując taki, który całkowicie sprzętowo przetwarza informacje. Tutaj nie program, lecz właśnie te wewnętrzne połączenia pomiędzy elementami logicznymi decydują o sposobie przetwarzania danych” – wyjaśnia dr Długopolski.

Używane dawniej procesory jednowątkowe mogły wykonywać na raz tylko jeden program. Jeżeli procesor miał wykonywać kilka zadań, musiał dzielić swoje zasoby czasowo, czyli najpierw wykonywał jedno zadanie, potem przechodził do następnego. „Teraz w komputerach pojawiają się procesory wielordzeniowe. Na ogół mamy dwa, cztery, osiem, szesnaście rdzeni, a w bardziej zaawansowanych serwerach sześćdziesiąt cztery lub więcej. Natomiast w układach FPGA, jeśli potrzebuję, mogę stworzyć nawet tysiąc małych specjalizowanych procesorów, które będą działały dosłownie równocześnie, niezależnie od siebie. Czyli jeden proces, który się odbywa w tym układzie, nie przeszkadza drugiemu, trwającemu w tym samym czasie, ale w innej części układu scalonego. A przy tym oczywiście mogę te procesy ze sobą synchronizować. Istotne jest to, że cały ten mechanizm zachodzi wewnątrz jednego układu scalonego FPGA” – mówi naukowiec.

Doktor inż. Jacek Długopolski steruje robotem przy pomocy telefonu komórkowego - fot. Zbigniew Sulima

Do celów naukowych i przetestowania pewnych rozwiązań sprzętowych, służących do sterowania różnymi rodzajami urządzeń użytku codziennego zgodnie z paradygmatem SOA, dr Jacek Długopolski, wraz ze studentem Mariuszem Frąckiewiczem, zbudował konstrukcję robota-pająka. Robot składa się z konstrukcji aluminiowej o sześciu nogach; do każdej z nich są przymocowane siłowniki – serwomechanizmy składające się z silnika z odpowiednią przekładnią, dzięki której jest on wytrzymały i posiada duży moment obrotowy. W serwomechanizmie oprócz silnika i przekładni znajduje się również wbudowany kontroler, który pozwala sterować serwomechanizmem w zasadzie za pomocą pojedynczego przebiegu czasowego składającego się z odpowiednich impulsów. Zmieniając parametry tego przebiegu, możemy zmieniać kąt położenia osi tego silnika. Robot poza osiemnastoma serwomechanizmami na nogach ma jeszcze dwa dodatkowe serwomechanizmy, które w przyszłości pozwolą na sterownie położeniem miniaturowej kamery. Doktor Jacek Długopolski wyposażył zbudowanego robota w moduł sterowania oparty na pojedynczym układzie programowalnym FPGA oraz w układ zasilający z baterią litowo-polimerową (taka jak w telefonach komórkowych, ale większa). Układ zasilający wykorzystuje również dwie przetwornice napięcia DC-DC, które dostarczają właściwego napięcia do modułu sterowania oraz odpowiedniej energii o dużej wydajności prądowej do serwomechanizmów. Układ sterowania oparty na układzie FPGA współpracuje z umieszczonym obok miniaturowym modułem komunikacyjnym Wi-Fi. Dzięki temu „pająkiem” można sterować z dowolnej przeglądarki internetowej poprzez stronę WWW lub wykorzystującej mechanizmy SOA aplikacji umieszczonej na telefonie, laptopie lub komputerze PC.

„Każde serwo posiada swój dedykowany wirtualny procesor wewnątrz układu FPGA, dzięki czemu można równolegle i niezależnie sterować wszystkimi serwami w czasie rzeczywistym. Gdyby w pająku był wbudowany zwykły procesor, musiałby on ustalać położenia poszczególnych serwomechanizmów w sposób sekwencyjny; dzięki zastosowaniu układu FPGA może to robić równocześnie. Nie dość, że FPGA steruje ruchami robota, to jednocześnie obsługuje również moduł komunikacyjny Wi-Fi, udostępniając za jego pośrednictwem w sieci Internet oferowane przez robota usługi (m.in. wybór ruchu lub odczyt danych z odpowiednich sensorów) i wszystko to dzieje się równolegle w stosunku do całego procesu poruszania robotem” – objaśnia Długopolski.

W tej chwili robot potrafi się poruszać, może też mieć zainstalowane czujniki mierzące parametry środowiska: temperaturę, ciśnienie, wilgotność. Wyniki tych pomiarów oglądamy bezpośrednio przez generowaną przez FPGA stronę WWW lub w dowolnej aplikacji poprzez interfejs SOA. W przyszłości pająk będzie miał dodatkowe funkcje – zostaną do niego dodane pewne elementy wykonawcze, np. manipulatory na przednich nogach, które umożliwią mu określone działanie. Planowane jest też dołączenie panelu słonecznego z pozycjonerem, więc jeśli robot nie będzie w danym momencie wykonywał innych zadań, będzie mógł się zatrzymać, skierować panel precyzyjnie do słońca i szybko doładować baterie. Proces ładowania baterii będzie oczywiście możliwy również podczas poruszania się robota. Planowane jest także wyposażenie robota w układy, umożliwiające mu poruszanie się po dużym obszarze i badanie parametrów tego środowiska, np. w lesie mógłby sprawdzać wilgotność ściółki na wyznaczonej wcześniej powierzchni. Będzie mógł pobrać próbkę do analizy, penetrować skażone środowisko i być wykorzystywany wszędzie tam, gdzie człowiek podejrzewa jakieś zagrożenie – wystarczy zainstalować dodatkowe czujniki, np. dwutlenku węgla, tlenku węgla czy tlenu. Doktor Długopolski chce dodać kamerę i moduł GPS, który umożliwi robotowi poruszanie się na dużym obszarze i docieranie do określonych miejsc. Pająk jest sterowany poprzez Wi-Fi, więc obecnie ma zasięg do 300 metrów. Ale jeśli zostanie wyposażony w moduł GSM, to będzie miał zasięg taki, jak obecne telefony komórkowe.

Roboty są już powszechnie stosowane, ale mechanizmy z wbudowanym układem FPGA to nowy trend, który teraz intensywnie się rozwija. „Układy FPGA istnieją już od dawna, ale były drogie i miały ograniczoną pojemność. Teraz tanieją i wciąż pojawiają się nowe rozwiązania z coraz większymi pojemnościami logicznymi, co pozwala projektować o wiele bardziej skomplikowane i wydajniejsze urządzenia w stosunku do tych opartych na zwykłym procesorze. Możemy np. w danej chwili wbudować w układ FPGA dowolny procesor wirtualny i używać go jak zwykłego procesora. Rozwiązanie to daje nam przykładowo możliwości budowania takich aplikacji, które najpierw będą tworzyły dla siebie najbardziej odpowiedni procesor, a dopiero potem będą się na nim uruchamiały” – mówi naukowiec.

Istotą części sprzętowej projektu są układy programowalne FPGA, które charakteryzują się zupełnie innym podejćiem do informatyki - fot. Zbigniew Sulima

Robot nie jest głównym elementem projektu, zaznacza dr Długopolski. Celem sprzętowej części projektu jest pokazanie, że możemy wykorzystać urządzenia wokół nas jako tzw. serwisy sprzętowe i możemy je udostępniać użytkownikom sieci Internet. Jest to rozszerzenie idei Internet of Things, czyli Internet rzeczy. Mówimy wówczas o Internecie usług (Internet of Services). Podejście to może mieć zastosowanie np. w szeroko pojętych systemach bezpieczeństwa i systemach inteligentnych budynków. „Oczywiście istnieje wiele rozwiązań, które są wykorzystywane w inteligentnych budynkach, przykładowo: LonWorks czy KNX/EIB, ale są to na ogół dedykowane standardy. My chcemy pokazać, że można wykorzystać do takich celów również uniwersalne i powszechne standardy, np. takie, na których opiera się architektura SOA, przykładowo protokół SOAP (Simple Object Access Protocol). Aby zweryfikować to podejście w praktyce, zaprojektowany został i uruchomiony w kilku egzemplarzach prototypowy uniwersalny moduł FPGA. Jego zaletą jest to, że docelowo może zostać bardzo zminiaturyzowany, a mimo to nie ma praktycznie żadnych ograniczeń aplikacyjnych, może się stać kamerą internetową, może przetwarzać obraz – rozpoznawać ruch, twarz, stać się sprzętowym układem kryptograficznym, może w czasie rzeczywistym realizować kompresje danych lub przetwarzać sygnały i to wszystko może być udostępniane w sieci jako usługa (Web Service). Każda aplikacja w ten sam sposób będzie mogła korzystać z całego wachlarza takich rozproszonych sprzętowych usług” – przekonuje dr Długopolski.

Zastosowanie w praktyce układu do zdalnego otwierania zamka Gerda - fot. Zbigniew Sulima

Układy FPGA mogą mieć zdecydowaną przewagę nad standardowymi procesorami w sterownikach, właśnie dzięki ich naturalnym cechom rzeczywistego masywnego przetwarzania równoległego. Obecnie prawie każde nowoczesne urządzenie ma wbudowany jakiś procesor, ale jednocześnie na ogół stanowi ono zamknięty systemem. Jeśli w miejsce standardowego sterownika procesorowego włączy się nasz moduł z FPGA, to będzie można zawiadywać danym sprzętem nie tylko poprzez stronę WWW, ale również będzie można budować własne aplikacje nim sterujące w dowolnym języku programowania i na dowolnej platformie. Można byłoby wtedy opracowywać programy pracy swoich urządzeń (np. pralki, mikrofalówki, obrabiarki) według własnych pomysłów i potrzeb, a dostęp do sterowania tymi urządzeniami uzyskamy z dowolnego komputera lub telefonu. Będzie to nowa jakość sterowania takich urządzeń. Wszystko będzie się odbywało w ten sam logiczny sposób, czyli nie musimy za każdym razem czytać instrukcji, ale jedynie wchodzimy na stronę WWW urządzenia i tam mamy wszystko opisane zgodnie ze standardem SOA i wiemy dokładnie jak zbudować własną aplikację. Musimy jedynie ściągnąć lub raczej wskazać na tej stronie WWW odpowiedni plik WSDL opisujący interfejs komunikacji z urządzeniem, a nasza aplikacja od razu uzyska odpowiednie mechanizmy komunikacji z tym urządzeniem i automatycznie wygeneruje odpowiednie funkcje. To przyszłość dla osób, które chciałyby dostosować swoje urządzenia do siebie, a nie siebie do możliwości urządzeń. Dodatkowo za pomocą takiego modułu FPGA można oczywiście „ożywić” urządzenia nie mające w sobie elektroniki, jak choćby standardowy antywłamaniowy zamek do drzwi.

„Widzę możliwości zastosowania takich rozwiązań w przemyśle – mogą one sprawić, że w prosty i ujednolicony sposób można będzie usprawnić proces sterowania obrabiarkami czy robotami przemysłowymi i dodatkowo wyposażyć te urządzenia w system monitoringu newralgicznych, podatnych na zużycia lub uszkodzenia punków. Układy FPGA mają jeszcze jedną przewagę nad procesorami: rozbudowywanie ich funkcjonalności jest niemal nieograniczone, można np. podłączyć dużą ilość czujników i rozmieścić je w wielu newralgicznych punktach maszyny i następnie – co bardzo ważne – w czasie rzeczywistym testować to, co dzieje się z monitorowaną maszyną. Zaletą jest to, że wszystkie czujniki są obsługiwane niezależnie przez ten sam układ FPGA, który steruje obrabiarką, a jednocześnie podają wyniki z sensorów właściwie bez opóźnień i w tym samym czasie. To właśnie masywna równoległość, którą charakteryzują się układy FPGA, daje dużo szersze możliwości” – uważa dr Długopolski. „Zwykłe procesory to ustalona przez producenta pewna określona architektura. Producent narzuca w swoich procesorach określoną listę rozkazów, prędkość działania, niewielką na ogół ilość i rodzaj połączeń z układami zewnętrznymi – użytkownik nie ma na to wpływu. Tu w przypadku układu FPGA, ja decyduję jak urządzenie ma funkcjonować. Producent daje mi odpowiedni zasób logiki w środku (materiał logiczny), a ja z tego mogę zrobić to, co potrzebuję – np. jeden bardzo wyrafinowany procesor albo sto procesorów specjalistycznych lub też całkowicie własny logiczny układ przetwarzający dane, nie przypominający procesora. Czyli użytkownik takiego rozwiązania jest twórcą architektury, na której coś się liczy lub przetwarza… i w tym właśnie tkwi piękno takiego podejścia do informatyki” – ocenia dr inż. Jacek Długopolski.

Ilona Trębacz