TRANSCOMP XV INTERNATIONAL CONFERENCE COMPUTER SYSTEMS AIDED SCIENCE, INDUSTRY AND TRANSPORT DĄBROWSKI Włodzimierz KOWALCZUK Przemysław AMBORSKI Krzysztof KRUCZKOWSKI Paweł sterowanie ruchem ulicznym, struktury danych, dane przestrzenne STRUKTURY GUI DO BAZ DANYCH W ZASTOSOWANIU DO STEROWANIA RUCHEM ULICZNYM Problem efektywnego sterowania ruchem ulicznym jest ciągłym przedmiotem badań. Badania te mają teŝ bezpośrednie przełoŝenie na praktyczne zastosowania w regulacji ruchem aglomeracjach miejskich. W niniejszym opracowaniu przedstawiono wyniki badań dotyczące modelu struktur danych oraz interfejsu GUI do bazy danych dla systemu wspomagającego projektowanie planów świateł z wykorzystaniem programowania urządzeń sterujących zainstalowanych na skrzyŝowaniach. Projekt badawczy realizowany był przez Politechnikę Warszawską wraz z francuską firmą Dynalogic w ramach grantu projektu DynaSignal Eureka nr E!4492 wspieranego przez Narodowe Centrum Badań i Rozwoju. GUI STRUCTURES FOR TRAFFIC CONTROL DATABASES Effective traffic control still actual and attractive problem on the research field. Practical results usually have a direct influence on agglomerations traffic control systems. This paper presents results of part of research project DynaSignal Eureka nr E!4492 realized by Warsaw University of Technology and company Dynalogic from France supported by National Center for Research and Development. Results are focused on structures of data model and GUI interface for traffic control system database.. WSTĘP Sterowanie ruchem ulicznym jest przedmiotem ciągłego zainteresowania ośrodków badawczych i komercyjnych firm wdroŝeniowych. Zagadnienie sterowania ruchem ulicznym z jednej strony ma bardzo duŝe znaczenie praktyczne, z drugiej zaś strony jest związane z duŝą liczbą trudnych i często nierozwiązanych problemów. Jednym z projektów badawczych związanych ze sterowaniem ruchem ulicznym jest projekt DynaSignal realizowany wspólnie przez Politechnikę Warszawską i komercyjną firmę francuską Dynalogic w ramach grantu projektu DynaSignal Eureka nr E!4492. Politechnika Warszawska, Instytut Sterowania i Elektroniki Przemysłowej, 00-662 Warszawa, ul. Koszykowa 75, tel. +48 22 234 7075, {w.dabrowski; p.kowalczuk; k.amborski}@ee.pw.edu.pl
654 DĄBROWSKI W., KOWALCZUK P., AMBORSKI K., KRUCZKOWSKI P. Projekt Eureka DynaSignal dotyczy regulacji ruchu ulicznego. W ruchu tym występują elementy sygnalizacyjne, układy świateł, ręcznie regulowane strumienie ruchu. Sygnalizacja powinna być skoordynowana zarówno w skali skrzyŝowania jak i w skali rejonu sterowania ruchem. Celem projektu jest opracowanie oprogramowania projektowego planów świateł ukierunkowanego na programowanie urządzeń sterujących. Rozwiązanie to umoŝliwi uŝytkownikowi dysponowanie układem Pomocy Decyzyjnej pozwalającym na skuteczne opracowywanie części obliczanie planów świateł. Niezbędnym elementem tego oprogramowania jest baza danych, która będzie zapewniać trwałe przechowywanie bieŝących danych związanych z projektowymi artefaktami oraz dane historyczne z działania systemów. Dane historyczne mogą być wykorzystywane do badania trafności decyzji projektowych oraz predykcji sterowań. Osobnym problemem związanym ściśle z budową tego typu aplikacji jest problem przechowywania i zarządzania danymi przestrzennymi. Dane przestrzenne opisują połoŝenie, kształt i orientację obiektów w przestrzeni. Dane przestrzenne zyskują w ostatnim czasie coraz większą popularność w związku z rozwojem technologii []. Wykorzystywane są do tworzenia wielu systemów i usług sieciowych takich jak Google Maps czy systemy GPS (ang. Global Positioning System). Dzięki danym przestrzennym moŝliwe jest nie tylko stworzenie mapy terenu, ale takŝe umiejscowienie i przetwarzanie obiektów na tej mapie. Ze względu na łatwość przetwarzania i analizy warto przechowywać dane przestrzenne w bazie danych. Daje to nowe moŝliwości nie tylko dostępu do danych, ale równieŝ ich eksploracji. Kilka przykładów operacji na danych przestrzennych przechowywanych w bazach danych to: Znajdowanie najkrótszej ścieŝki pomiędzy punktami. Wykonywanie m.in. sumowania, róŝnicy czy ilorazu obszarów. Obliczanie długości, pola powierzchni, obwodu obiektów, znajdowanie środka symetrii. W niniejszym opracowaniu przedstawiono struktur danych dla omawianego projektu oraz zaprezentowane wybrane wyniki prac nad interfejsem GUI do zaprojektowanej bazy danych. 2. SKŁADOWA ZARZĄDZANIA DANYMI Niemal kaŝda aplikacja musi w sposób trwały przechowywać dane. Projekt składowej zarządzania danymi jest więc praktycznie nieodzownym elementem projektu systemu [2]. Dane w sposób trwały mogą być przechowane na dwa podstawowe sposoby: w pliku; w bazie danych (relacyjnej, obiektowej lub innej). Poszczególne elementy danych - zestawy obiektów lub krotek - mogą być przechowywane w następującej postaci: w jednej relacji lub pliku; w odrębnym pliku dla kaŝdego rodzaju obiektów lub krotek. Jak wiadomo dane są przetwarzane w pamięci operacyjnej. Dlatego teŝ w czasie pracy oprogramowania muszą być sprowadzone z pamięci trwałej do pamięci operacyjnej. Sprowadzenie danych do pamięci operacyjnej oraz zapisanie do trwałej pamięci moŝe odbywać się na bieŝąco, kiedy program zaŝąda dostępu i kiedy następuje zapełnienie bufora lub na zlecenie uŝytkownika.
STRUKTURY GUI DO BAZ DANYCH W ZASTOSOWANIU... 655 Najprostszą metodą składowania danych w sposób trwały jest zapisanie ich na nielotnym nośniku (np. dysku magnetycznym lub optycznym) w pliku. Niestety zapis danych w pliku nie jest w stanie spełnić wymagań stawianych między innymi ochronie, wydajności czy spójności zapisanych w nim danych. Ze względu na liczne ułomności systemu plików w zastosowaniu do trwałego przechowywania danych powstały bazy danych. Bazy danych są systemami specjalnie zaprojektowanymi i przystosowanymi do przechowywania, udostępniania i zarządzania danymi. 2. Dane przestrzenne Dane przestrzenne opisują połoŝenie, kształt i orientację obiektów w przestrzeni. Dane przestrzenne zyskują w ostatnim czasie coraz większą popularność w związku z rozwojem technologii. Wykorzystywane są do tworzenia wielu systemów i usług sieciowych takich jak Google Maps czy systemy GPS (ang. Global Positioning System). Dzięki danym przestrzennym moŝliwe jest nie tylko stworzenie mapy terenu, ale takŝe umiejscowienie i przetwarzanie obiektów na tej mapie. Ze względu na łatwość przetwarzania i analizy warto przechowywać dane przestrzenne w bazie danych. Daje to nowe moŝliwości nie tylko dostępu do danych, ale równieŝ ich eksploracji. Kilka przykładów operacji na danych przestrzennych przechowywanych w bazach danych to: Znajdowanie najkrótszej ścieŝki pomiędzy punktami Wykonywanie m.in. sumowania, róŝnicy czy ilorazu obszarów. Obliczanie długości, pola powierzchni, obwodu obiektów, znajdowanie środka symetrii. 2.2 Zastosowanie danych przestrzennych. Dzięki przechowywaniu danych przestrzennych w bazach danych moŝliwe jest przetwarzanie danych przestrzennych i geograficznych. Są to systemy informacji geograficznej - Systemy GIS (ang. Geographical Information System). Dane przestrzenne mają swoje zastosowanie równieŝ w systemach nawigacji GPS. Przechowywanie mapy dla urządzenia GPS w postaci obrazu ma szereg wad. Po pierwsze taka mapa zajmuje więcej miejsca niŝ odpowiednio przechowywane dane przestrzenne. Ponadto nie byłoby moŝliwe wyszukiwanie drogi, więc bez uŝycia danych przestrzennych urządzenie GPS w zasadzie mogłoby tylko pokazać, w którym miejscu znajduje się uŝytkownik. Przechowywanie informacji o umiejscowieniu obiektów w postaci danych przestrzennych nie tylko umoŝliwia znajdowanie drogi na kilka sposobów ( np. najkrótszej, najszybszej, niepłatnej), ale równieŝ pokazywanie informacji o zakazach wjazdu, korkach czy innych utrudnieniach w ruchu. Zastosowań biznesowych moŝe być jeszcze więcej. 2.3 Standardy Tworzeniem standardów z zakresu przechowywania i przetwarzania danych przestrzennych zajmuje się konsorcjum Open Geospatial Consortium (OGC) [3]. W skład tego konsorcjum wchodzi szereg organizacji komercyjnych, rządowych, badawczych i innych z całego świata. Dziełem tego konsorcjum są standardy takie jak: WMS, WFS, WCS, GML, KML i wiele innych. Standardy dotyczące przechowywanie i dostępu do danych przestrzennych w relacyjnych i obiektowo-relacyjnych bazach danych opisują dokumenty zatytułowane Simple Features i Simple Features SQL. Standardy te opisują
656 DĄBROWSKI W., KOWALCZUK P., AMBORSKI K., KRUCZKOWSKI P. zarówno sposoby przechowywania danych przestrzennych w bazach danych jak równieŝ definiują zbiór operacji, które słuŝą do tworzenia i przetwarzania danych przestrzennych. Metody operujące na danych przestrzennych zazwyczaj mają przedrostek ST np. STDifference, która reprezentuje róŝnicę, czy STUnion reprezentująca sumę. Baza Microsoft SQL Server 2008 [4] jest zgodna z tymi standardami. 2.4 Zastosowane typy danych Na potrzeby projektu wykorzystano w strukturze danych następujące typy danych przestrzennych: Dane geometryczne Dane geometryczne są to dane umieszczone w euklidesowym układzie współrzędnych - w tzw. układzie płaskiej ziemi. W bazie MS SQL 2008 ten typ danych opisuje typ GEOMETRY, który naleŝy stosować do opisania obiektów, dla których z punktu widzenia ich wielkości i zastosowania nie jest istotna krzywizna Ziemi. Dane geograficzne Dane geograficzne są uŝywane do umiejscowienia obiektów na kuli ziemskiej. Obiekty, które moŝna opisać danymi geograficznymi są obiektami, dla których moŝna określić długość i szerokość geograficzną.
STRUKTURY GUI DO BAZ DANYCH W ZASTOSOWANIU... 657 class Crossroad_system DISTANCE * Distance value 0..* TRAFFIC LIGHT TYPE CROSS LANE Type Cross ID..* Lane number Cross geo position Lane location..* TRAFFIC LIGHT DETECTOR DATA..* «ERD_Connector»..* DETECTOR Detector ID 0..*..*..* SCENARIO Scenario number Scenario type..* Traffic light ID State..* CONTROLLER Controller ID Controller state INDUCTION VEHICLE CAMERA PICTURE LOOP Vehicle ID Camera number..* Picture ID Ind loop ID Vehicle position Picture format State Vehicle abs speed FLOW TRACK CROSSWALK WHEEL Flow value Rys.. Ogólna struktura danych dla systemu sterowania ruchem DynaSignal MoŜna wyróŝnić trzy podstawowe typy danych przestrzennych: punkt (POINT), linia łamana (LINESTRING) i wielokąt (POLYGON). Dodatkowo istnieją typy słuŝące do przechowywania wielu danych powyŝszych typów. Są to odpowiednio MULTIPOINT, MULTILINESTRING i MULTIPOLYGON. Ostatnim typem danych przestrzennych w MS SQL Server 2008 jest, GEOMETRYCOLLECTION, który słuŝy do przechowywania danych wszystkich powyŝszych typów. Dane przestrzenne przechowywane są w bazie danych w jednym z trzech formatów, zaproponowanych przez konsorcjum OGC (ang. Open Geospatial Consortium): WKB (ang. Well Known Binary) - binarny format reprezentacji danych przestrzennych WKT (ang. Well Known Text) - tekstowy format reprezentacji danych przestrzennych
658 DĄBROWSKI W., KOWALCZUK P., AMBORSKI K., KRUCZKOWSKI P. GML (ang. Geographical Markup Language) - format reprezentacji danych przestrzennych oparty o XML Rys. przedstawia ogólną strukturę danych uwzględniającą następujące załoŝenia : SkrzyŜowanie składa się z wielu pasów ruchu Na skrzyŝowaniu znajduje się co najmniej jeden sygnalizator świetlny Kontroler zarządza jednym lub wieloma sygnalizatorami świetlnymi KaŜdy kontroler zawiera co najmniej jeden scenariusz Na skrzyŝowaniu znajduje się co najmniej jeden detektor Pomiędzy dwoma skrzyŝowaniami mamy ściśle określoną odległość 3. INTERFEJS GUI Zgodnie z wytycznymi scenariusza systemu GUI projektu Eureka DynaSignal dotyczącego regulacji ruchu ulicznego zaprojektowano i zaimplementowano graficzny interfejs uŝytkownika (ang. Graphical User Interface, GUI) z pełnym wsparciem procesów CRUD [5] (ang. Create Read Update Delete), tj.: a) wstawianie danych do bazy projektu TrafficLight (baza projektu DynaSignal); b) czytanie wraz ze stronicowanie danych z bazy TrafficLight; c) modyfikowanie danych przechowywanych w bazie TrafficLight; d) usuwanie danych z bazy TrafficLight. GUI projektu DynaSignal zostało zaimplementowane w oparciu o najnowsze środowisko programistyczne Visual Studio 200 oraz.net Framework 4.0 z wykorzystaniem technologii webowej ASP.NET 4.0. Aplikacja webowa [6] dostarcza m.in. następujące funkcjonalności dla systemu do wprowadzania danych i ich zarządzania: prostą i intuicyjną dla uŝytkownika końcowego nawigację po obiektach bazy TrafficLight; stronicowanie wyświetlanych danych z tabel w celu szybszego i wydajniejszego ich przeglądania oraz zarządzania; wiele gotowych i intuicyjnych wyszukiwarek po odpowiednich predykatach, aby ułatwić pracę z danymi bazy TrafficLight; moŝliwość łatwego uzyskania szczegółów danych bazy; prostota wstawiania nowych danych, modyfikacja juŝ istniejących lub usuwania nieaktualnych; formularze do wstawiania danych geograficznych. GUI projektu składa się z trzech części: a) listy wszystkich tabel bazy TrafficLight z moŝliwością pełnego CRUD na owych obiektach; b) czterech formularzy do wprowadzania danych geograficznych c) interfejsu do zarządzania raportami Przykład zaprojektowanego elementu GUI stanowi raport z lokalizacji świateł sygnalizacyjnych przedstawiony na rys.2.
STRUKTURY GUI DO BAZ DANYCH W ZASTOSOWANIU... 659 Rys.2. Raport z lokalizacji świateł sygnalizacyjnych Raport z rys.2 składa się z nazwy światła sygnalizacyjnego, jego średnicy, źródła oraz współrzędnych geograficznych przedstawiających jego lokalizację. Rys. 3 Raport z listą sygnałów drogowych Parametrem, po którym następuje wyszukiwanie danych na potrzeby tego raportu jest nazwa skrzyŝowania, którą moŝna wybrać z listy wszystkich nazw skrzyŝowań przechowywanych w ramach bazy projektu Eureka DynaSignal. Na rys.3 przedstawiono raport z listą sygnałów drogowych. Raport ten składa się z nazwy grupy, nazwy sygnalizatorów świetlnych w grupie, minimalnego czasu sygnału zielonego, czasu sygnału Ŝółtego oraz czasu sygnału czerwono Ŝółtego. Raport moŝna filtrować w oparciu o nazwę skrzyŝowania.
660 DĄBROWSKI W., KOWALCZUK P., AMBORSKI K., KRUCZKOWSKI P. Interesującym elementem jest teŝ raport przedstawiony na rys.4. Przedstawia on macierz minimalnych czasów międzyzielonych Rys 4. Tablica minimalnych czasów międzyzielonych Raport z rys.4 przedstawia macierz składającą się z grup rozpoczynających oraz kończących. W macierzy tej przechowywane są wartości (w przeciwieństwie do raportu fazowego, w którym uŝywa się X ), a jeśli czas nie występuje, wówczas nie wpisuje się w takim raporcie zera, tylko pozostawia się puste pole. Parametrem, po którym następuje wyszukiwanie danych na potrzeby tego raportu, jest nazwa skrzyŝowania, którą moŝna wybrać z listy skrzyŝowań. Rys 5. Diagram programu sygnalizacji Raport sygnalizacji pokazany na rys.5 składa się z poszczególnych grup sygnałowych, dla których prezentowane są czasy przełączeń sygnalizacji świetlnej. Programów takich moŝe być wiele dla skrzyŝowania (raport filtrowany jest poprzez nazwę skrzyŝowania oraz typ programu wybierany poprzez długość cyklu programu). Dodatkowo, dla kaŝdego programu wyświetlany jest jego offset.
STRUKTURY GUI DO BAZ DANYCH W ZASTOSOWANIU... 66 4. WNIOSKI W materiale zaprezentowano model koncepcyjny struktury danych spełniającej wymagania do przechowywania danych dla systemu wspomagającego sterowanie ruchem z uwzględnieniem przechowywania danych przestrzennych. Przedstawiono teŝ zaprojektowane i zaimplementowane raporty, które spełniają wymagania postawione przez francuskiego partnera w ramach projektu. Do implementacji przedstawionych rozwiązań wykorzystano najnowszy silnik serwera SQL Server 2008 R2 oraz najnowsze środowisko programistyczne (.NET 4.0). Pozwoliło to na zaimplementowanie wysoce skalowalnych i wydajnych raportów, a sam system raportujący dostarcza dzięki temu czytelne - z wieloma innowacyjnymi dodatkami - rozwiązania raportowe dla uŝytkownika końcowego. 5. BIBLIOGRAFIA [] Rozporządzenie Rady Ministrów z dnia 8 sierpnia 2000 r. w sprawie państwowego systemu odniesień przestrzennych, Dz. U. 2000 nr 70 poz. 82 (http://isap.sejm.gov.pl/detailsservlet?id=wdu2000070082) [2] Raghu Ramakrishnan, Database Managment Systems, McGraw-Hill International Editions, 997 [3] Lance McKee, Cliff Kottman, Inside the OpenGIS Specification, Open GIS Consortium, Inc. 999 [4] Robert Muller, Designing Databases with Object-Oriented Methods, IEEE Computer Society 2005 [5] Heller M, REST and CRUD: the Impedance Mismatch, January 29, 2007 [6] Hancock J.C., Toren R.:Practical Business Intelligence with SQL Server 2005, Crawfordsville, Addison Wesley Professional,2006