Zestaw narzędzi JAUS
Zestaw narzędzi JAUS (JTS) to narzędzie inżynierii oprogramowania do projektowania usług oprogramowania używanych w rozproszonym środowisku obliczeniowym . JTS zapewnia graficzny interfejs użytkownika (GUI) i narzędzia pomocnicze do szybkiego projektowania, dokumentacji i implementacji interfejsów usług zgodnych ze standardem AS5684A Stowarzyszenia Inżynierów Motoryzacji , językiem projektowania interfejsów usług JAUS (JSIDL). JTS jest przeznaczony do wspierania modelowania, analizy, implementacji i testowania protokołu dla całego systemu rozproszonego .
Przegląd
Zestaw narzędzi JAUS (JTS) to zestaw specyfikacji oprogramowania open source i narzędzi programistycznych , któremu towarzyszy platforma oprogramowania open source do opracowywania projektów wspólnej architektury systemów bezzałogowych (JAUS) i zgodnych implementacji interfejsów do symulacji i sterowania komponentami robotów zgodnie z SAE- normy AS4. JTS składa się z komponentów:
- Edytor usług oparty na graficznym interfejsie użytkownika: Edytor usług (nazywany w tym dokumencie GUI) zapewnia przyjazny dla użytkownika interfejs, za pomocą którego projektant systemu może określać i analizować formalne specyfikacje komponentów i usług zdefiniowanych przy użyciu języka definicji interfejsu usług JAUS (JSIDL).
- Walidator składni i semantyki zapewnia walidację w locie specyfikacji wprowadzonych (lub zaimportowanych) przez użytkownika w odniesieniu do składni i semantyki JSIDL , która jest zintegrowana z graficznym interfejsem użytkownika.
- Repozytorium specyfikacji: Repozytorium (lub baza danych) zintegrowane z graficznym interfejsem użytkownika, które umożliwia przechowywanie istniejących specyfikacji formalnych i zachęca do ich ponownego wykorzystania.
- Generator kodu C++: Generator kodu automatycznie generuje kod C++ , który ma odwzorowanie 1:1 na formalne specyfikacje. Wygenerowany kod obejmuje wszystkie aspekty usługi, w tym implementacje urządzeń typu marshallers i unmarshallers dla komunikatów oraz implementacje maszyn skończonych dla zachowania protokołów, które są skutecznie oddzielone od zachowania aplikacji.
- Generator dokumentów: Generator dokumentów automatycznie generuje dokumentację dla zestawów definicji usług. Dokumenty mogą być generowane w kilku formatach.
- Framework oprogramowania: Framework oprogramowania implementuje specyfikację warstwy transportowej AS5669A i zapewnia interfejsy niezbędne do integracji automatycznie generowanego kodu C++ z implementacją warstwy transportowej. Obecne opcje transportu obejmują UDP i TCP w sieciach przewodowych lub bezprzewodowych, a także połączenia szeregowe. Sama warstwa transportowa jest modułowa i umożliwia użytkownikom końcowym dodanie dodatkowego wsparcia w razie potrzeby.
- Wtyczka Wireshark: Wtyczka Wireshark implementuje wtyczkę do popularnego analizatora protokołów sieciowych o nazwie Wireshark. Ta wtyczka umożliwia przechwytywanie na żywo i analizę offline komunikacji opartej na komunikatach JAUS w czasie wykonywania. Wbudowane repozytorium ułatwia ponowne wykorzystanie interfejsów usług i ruchu implementacji w sieci.
Zestaw narzędzi JAUS można pobrać ze strony www.jaustoolset.org Dokumentacja użytkownika i forum społeczności są również dostępne na stronie.
Historia wydania
Po udanym teście Beta , w lipcu 2010 roku opublikowano wersję 1.0 zestawu narzędzi JAUS. Pierwsza oferta koncentrowała się na podstawowych obszarach interfejsu użytkownika, generowaniu dokumentów HTML , generowaniu kodu C++ i strukturze oprogramowania. Aktualizacja wersji 1.1 została wydana w październiku 2010. Oprócz poprawek błędów i ulepszeń interfejsu użytkownika, ta wersja oferowała kilka ważnych aktualizacji, w tym ulepszenia Validatora, wtyczki Wireshark i generowanego kodu.
Wydanie JTS 2.0 planowane jest na drugi kwartał 2011 roku i dodatkowo udoskonala funkcjonalność Zestawu Narzędzi:
- Walidacja protokołów: Obecnie JTS zapewnia walidację tworzenia komunikatów, aby upewnić się, że użytkownicy nie mogą tworzyć nieprawidłowych specyfikacji komunikatów. Ta możliwość obecnie nie istnieje dla definicji protokołów, ale jest dodawana. Pomoże to zapewnić, że użytkownicy utworzą wszystkie niezbędne elementy definicji usługi i zmniejszy liczbę błędów użytkownika.
- Generowanie kodu C# i Java: Obecnie JTS generuje międzyplatformowy kod C++. Jednak inne języki, w tym Java i C#, odnotowują dramatyczny wzrost wykorzystania w systemach rozproszonych, szczególnie w rozwoju graficznych klientów usług wbudowanych.
- Generowanie dokumentów MS Word: Obsługiwane są wyjścia HTML i JSIDL, ale natywne generowanie MS Word oparte na Office-Open-XML (OOXML) ma zalety w zakresie prezentacji wyników i łatwości użytkowania w celu integracji z innymi dokumentami. Dlatego planujemy zintegrować MS Word .
Ponadto zespół programistów ma kilka dodatkowych celów, które nie są jeszcze zaplanowane na konkretny okres wydania :
- Weryfikacja protokołu: obejmuje konwersję definicji usługi JSIDL na model PROMELA w celu zatwierdzenia przez narzędzie do sprawdzania modelu SPIN. Wykorzystanie PROMELA do modelowania interfejsów klienta i serwera pozwoli programistom na formalną weryfikację usług JAUS.
- Doświadczenie użytkownika końcowego: Planujemy przeprowadzić formalne testy interfejsu użytkownika. Obejmuje to zdefiniowanie zestawu zadań i przypadków użycia, poproszenie użytkowników z różnymi poziomami doświadczenia JAUS o wykonanie tych zadań oraz pomiar wydajności i zebranie informacji zwrotnych w celu znalezienia obszarów, w których można poprawić ogólne wrażenia użytkownika.
- Ulepszone ponowne wykorzystanie usług: JSIDL umożliwia dziedziczenie opisów protokołów, podobnie jak języki programowania obiektowego pozwalają klasom potomnym na ponowne wykorzystanie i rozszerzenie zachowań zdefiniowanych przez klasę nadrzędną. Obecnie wygenerowany kod „spłaszcza” te maszyny stanowe w serię stanów zagnieżdżonych, co zapewnia prawidłowe zachowanie interfejsu, ale tylko wtedy, gdy każda usługa pojedynczego liścia (potomka) jest generowana w ramach własnego komponentu. Ogranicza to ponowne wykorzystanie usługi i może prowadzić do kopiowania i wklejania tej samej implementacji w wielu komponentach. Zespół ocenia inne rozwiązania dziedziczenia, które umożliwiłyby usługom wielu liści (podrzędnych) współdzielenie dostępu do wspólnego rodzica, ale obecnie podejście to jest wystarczające, aby spełnić wymagania podstawowego zestawu usług JAUS.
Domeny i aplikacja
Zestaw narzędzi JAUS jest oparty na języku JAUS Service Interface Definition Language (JSIDL), który został pierwotnie opracowany do zastosowań w systemach bezzałogowych lub społecznościach robotyki . Jako taki JTS szybko zyskał akceptację jako narzędzie do generowania usług i interfejsów zgodnych z publikacjami SAE AS-4 „JAUS”. Chociaż statystyki użytkowania nie są dostępne, zestaw narzędzi został pobrany przez przedstawicieli armii amerykańskiej, marynarki wojennej, piechoty morskiej i wielu kontrahentów z branży obronnej. Był również używany w komercyjnym produkcie o nazwie JAUS Expansion Module sprzedawanym przez DeVivo AST, Inc.
Ponieważ schemat JSIDL jest niezależny od wymienianych danych, zestaw narzędzi może być używany do projektowania i wdrażania architektury zorientowanej na usługi w dowolnym środowisku systemów rozproszonych, które wykorzystuje wymianę komunikatów zakodowanych w formacie binarnym. JSIDL jest zbudowany na architekturze dwuwarstwowej, która oddziela warstwę aplikacji i warstwę transportową, skutecznie oddzielając wymieniane dane od szczegółów dotyczących sposobu, w jaki dane te przechodzą z komponentu do komponentu.
Ponadto, ponieważ sam schemat jest bardzo ogólny, możliwe jest zdefiniowanie komunikatów dla dowolnej liczby domen, w tym między innymi systemów sterowania przemysłowego , zdalnego monitorowania i diagnostyki oraz aplikacji internetowych .
Koncesjonowanie
JTS jest udostępniany na otwartej licencji BSD . Standard JSIDL jest dostępny w SAE. Jr Middleware, na którym opiera się Software Framework (warstwa transportowa), jest open source na licencji LGPL . Inne pakiety dystrybuowane z JTS mogą mieć inne licencje.
Sponsorzy
Rozwój zestawu narzędzi JAUS był sponsorowany przez kilka organizacji Departamentu Obrony Stanów Zjednoczonych :
- Biuro Podsekretarza Obrony ds. Przejęć, Technologii i Logistyki / Wojny bezzałogowe.
- Oficer wykonawczy programu marynarki wojennej Littoral and Mine
- Oficer wykonawczy programu marynarki wojennej ds. Lotnictwa bezzałogowego i broni uderzeniowej
- Biuro Badań Marynarki Wojennej
- Laboratorium Badawcze Sił Powietrznych
Linki zewnętrzne
- jaustoolset.org : Strona domowa zestawu narzędzi JAUS
- sae.org : Wydawcy rodziny standardów SAE AS-4 JAUS, w tym JSIDL (AS-5684)
- jrmiddleware.org : Strona główna JR Middleware, kodu źródłowego LGPL używanego przez JTS Software Framework