Projektowanie Systemów Dedykowanych
Transkrypt
Projektowanie Systemów Dedykowanych
Projektowanie Systemów Dedykowanych Tematyka Charakterystyka systemów czasu rzeczywistego i systemów wbudowanych 2. Dziedziny zastosowań i kierunki rozwoju 3. Proces projektowania systemów 4. Systemy mobilne i świadome kontekstu 5. Wytwarzanie aplikacji kontekstowych - platforma Galileo 6. Sensory i systemy wykonawcze 7. Nowoczesne interfejsy użytkownika 8. Charakterystyka infrastruktury komunikacyjnej 9. Zagadnienia interoperacyjności 10. Aspekty wiarygodności systemów 11. Studium przypadku 1. Zasady zaliczenia • Wykład - 12 godzin – kolokwium/egzamin – 50 pkt • Projekt – 15 godzin – 50 pkt • Każda część musi być zaliczona na co najmniej 40% (20 pkt) <51 – 64) 3 <82 – 90) 4,5 <64 - 72) 3,5 <90 - 98) 5 <72 – 82) 4 >=98 5,5 Projekt • Projekt jest realizowany indywidualnie lub w zespołach 2 osobowych • 3 obecności – Termin I – ustalenie zakresu projektu – Termin II – Projekt + zakres implementacji – Termin III – oddanie projektu • Projekt należy oddać do ostatnich zajęć projektowych Przykładowa tematyka projektu • • • • • • • • Nawigacja po budynku (QR-Code) Gry miejskie (QR/GPS) Program lojalnościowy (smart cards) Rozpoznawanie obiektów i osób (OpenCV i AForge) Biosensory Augmented Reality (wskazywanie barw) Asynchroniczna identyfikacja obiektów (RFID) Rozbudowa usług dla ubiCASC Literatura • • • • • • • • Laplante P. Real-Time Systems Design and Analysis, Wiley, 2004 M. Mühlhäuser, I. Gurevych, "Handbook of Research: Ubiquitous Computing Technology for Real Time Enterprises", IGI Global, 2007 Sacha K.: Systemy czasu rzeczywistego, PW, 1999 Seta Z. Wprowadzenie do zagadnień sterowania. Wykorzystanie programowalnych sterowników logicznych PLC, MIKOM, 2002 Ward P. T. and Mellor S. J.: Structured Development for Real-Time Systems. Embedded Systems Programming Magazine http://www.embedded.com, http://www.realtime-info.be/ Krumm J.: Ubiquitous Computing Fundamentals, CRC Press, 2010 Materiały firmowe Intel, Microsoft, Schneider Electric, Siemens, Crossbow. Desktop vs Target • Systemy dedykowane traktowane są w dwojaki sposób – Dedykowany system dla przedsiębiorstwa (desktop) – System zarządzania/wbudowany na potrzeby sterowania (target) System wbudowany a RT • System czasu rzeczywistego (RT) definiuje się jako system kontrolujący środowisko poprzez akwizycję danych ze środowiska, przetwarzający je i zwracający rezultaty wystarczająco szybko, aby wpłynąć na to środowisko. – W praktyce warunkiem zaliczenia systemu do klasy RT jest zapewnienie, że reakcja systemu nie przekroczy pewnego przyjętego czasu T. • System wbudowany – to system sterujący dedykowanym procesem (zazwyczaj produkcyjnym) lub urządzeniem. Jest to więc sterujący podsystem innego systemu. Charakterystyka RTS • • • • Wymiary fizyczne Czynniki środowiskowe Tolerowanie błędów i obsługa wyjątków Wysokie wymagania niezawodnościowe i bezpieczeństwa • Wysoka jakość oprogramowania (np. szeregowanie zdań, Watchdog) • Dopasowanie interfejsów I/O Wytwarzanie systemów dedykowanych • W projektowaniu najważniejsza jest idea. Bez niej cały proces nie istnieje ! • Np. usprawnienie sterowania windą pozwala zaoszczędzić emisję CO2 Typowe podejścia projektowe Wymagania Top-down design Specyfikacja Architektura W rzeczywistym procesie projektowania często wykonywane są interacje Rozwój komponentów Integracja systemu Bottom-up design Wymagania (Requirements) • Stosując prosty język opisu należy uzyskać to co chce użytkownik i czego się spodziewa w końcowym efekcie. requirements specification architecture component development – Rozmowy z użytkownikiem końcowym – Rozmowy z działem system integration sprzedaży/pośrednikami – Dostarczanie prototypu do użytkownika Requirements • Koniecznie należy uzyskać informację o platformie docelowej i modelu biznesowym – Licznik kroków jako dodatek do tel. – Jako specjalny produkt – Jako prezent/gadżet Requirements • Wymagania funkcjonalne: Czyli wyjście jako funkcja wejścia (środek to black box) – Wskaż liczbę schodów przebytych i ilość spalonych kalorii ) – Pokaż ile pięter pokonała winda i ilość oszczędzonego CO2 – Nie licz w innych przypadkach • Wymagania niefunkcjonalne: – – – – – Wydajność, niezawodność, etc. Rozmiar, waga, etc. Zużycie energii Koszt … Opisz “CO”, nie “JAK” Formatka wymagań Nazwa Cel Wejście Wyjście Wydajność Koszt wytworzenia Zużycie energii Rozmiary Licznik kroków Zlicza i pokazuje liczbę przebytych stopni przez użytkownika Przycisk Power-on/off Wyświetlacz LCD 200 X 300 Aktualizacja po każdym kroku 150 zł 100 mW 10 x 5 cm, 100g Specyfikacja requirements specification • Bardziej precyzyjny, zazwyczaj ilościowy, opis systemu: architecture – Nie powinien odnosić się do konkretnej architektury, chyba że wynika to z wymagań component development – Lista założeń – Np. odświeżanie ekranu do 0.25 sek po każdym system kroku, błąd pomiaru <5%, koszt, poniżej 300 zł integration • Może zawierać elementy funkcjonalne jak i niefunkcjonalne • Może być w formach diagramu np. UML, sieci Petri), dowodów matematycznych lub pseudokodów Projektowanie architektury requirements • Ustalenie jakie komponenty są w stanie zaspokoić wymagania ze specyfikacji? JAK – Należy posiadać wiedzę o rynku • Utworzenie listy komponentów: – CPU, peryferia, itd. – np. 8051 CPU, 3-axis accelerometer • Utworzenie listy oprogramowania: – Główne programy i ich operacje – np. bez OS, sterowniki do akcelerometrów i LCD • Należy uwzględnić wymagania fukcjonalne i niefunkcjonalne (np. obudowa, parametry pracy układów) specification architecture component development system integration Uwagi do projektowania • Należy uwzględnić środowisko, w którym system zostanie osadzony • Określić źródła bodźców (sygnałów) wewnętrznych i zewnętrznych dla układu I/O – Akcje i zdarzenia wywołujące sygnały – Elementy system, na które mogą mieć wpływ bodźce • Określenie pożądanych odpowiedzi na nie – jedno wymaganie algorytm/workflow • Metryki jakościowe odpowiedzi systemu (jak mierzyć) Rozwój komponentów requirements • Faktyczny proces implementacji fragmentów (podzespołów) sprzętowych i programowych – Dobra architektura ułatwia kodowanie • Niektóre komponenty są gotowe do użycia, inne trzeba tworzyć od podstaw (from scratch) • Pomagają wcześniejsze badania i doświadczenie specification architecture component development system integration Integracja systemu • Zebranie komponentów razem w jedną całość – Na tym etapie występuje najwięcej błędów (bugs) – Wymagany jest dobry interfejs do ich wykrywania i plan integracji • Mając wcześniejszy plan integracji redukuje się czas wyszukiwania grubych błędów, • Testowanie funkcjonalne należy przeprowadzić jak najszybciej – plan testów requirements specification architecture component development system integration Środowisko developerskie • Host: Komputer, na którym uruchamiamy środowiska programistyczne • Target: Sprzęt, na którym ma działać nasz program • Program po wytworzeniu jest przesyłany do Target’a 8051 X86 Host system Target system Jeśli brak rzeczywistego HW? • Płyty deweloperskie (development board, kit, EVB): • Projektowanie zorientowane na platformę Cross Compiler Proces wytwarzania • Proces tworzenia programu (instrukcji), które są tworzone na hoście ale przeznaczone na platformę docelową • Narzędzia potrzebne do wytwarzania a toolchain – Binutils: as, ld – Glibc:C runtime Lib – GCC:C/C++ compiler Linker/Locators • Dla komputerów: – Linker: tworzenie obrazu pliku – Loader: ładowanie obrazu do pamięci • Dla systemów wbudowanych: – Locater: tworzy plik (binarny obraz) który zostanie skopiowany do pamięci – Potrzeba znajomości dokładnej adresacji • Pewne części programu muszą znaleźć się w ROM, inne w RAM – Podział na segmenty – Konfigurowanie locatora – adresy segmentów Zapis programu • Programatory PROM • Emulatory ROM • In-Circuit Emulators (ICE) • Monitory System dedykowany ? • • • Urządzenia muszą zapewniać dostęp do sieci (bezprzewodowy) czy systemu rozproszonego w sposób transparentny dla użytkownika. Interakcja człowiek maszyna (HCI) musi być bardziej ukryta. Urządzenia muszą być świadome kontekstu wykonania w celu optymalizacji operacji. Można dodać dwa dodatkowe wymagania (UbiCom systems): • Urządzenia mogą działać autonomicznie bez interwencji użytkownika, w sposób samo-zarządzalny (bez bezpośredniej interakcji z człowiekiem). • Urządzenia mogą podejmować decyzje o działaniu systemu w określonych sytuacjach: – Niekompletne informacje lub niedeterministyczne zachowanie; – Dla uzyskania bogatszej interakcji między systemami. System przetwarzania wszechobecnego Trendy w rozwoju informatyki Rozwój informatyki Cele Pervasive Computing • „PC to środowisko działające w oparciu o zasadę, iż każda osoba znajduje sie w ciągłej interakcji z setkami komputerów połączonych ze sobą siecią bezprzewodową” – Tworzenie środowiska nasyconego obliczeniami maszynowymi z możliwością komunikacji i w łagodny sposób zintegrowanego z użytkownikiem (człowiekiem). Mark Weiser • Scientific American, Vol. 265 N.9, pp. 66-75, 1991 Cechy PC • Wszechobecność (ubiquity), • Zapewnienie komunikacji (interconnection), • Kompleksowość działań (complexity), • Delegowywanie zadań (task delegation), • Pełne zorientowanie na potrzeby człowieka (human-orientation). PC vs VR Komputer działa na rzecz otoczenia człowieka Przetwarzanie Wszechobecne Komputer wytwarza otoczenie, w którym działa człowiek Wirtualna rzeczywistość Przykładowe scenariusze Serwerownia 2E01L Czujnik pomiaru temperatury Monitor Serwerowni Czujka ruchu Czujnik otwarcia drzwi pracownik Serwery Pokój 2E03P Pokój 2E02P System Zarządzania Kontekstem Adapter Bluetooth 01 Adapter Bluetooth 02 pracownik +smartphone Przekroczona temperatura, pomieszczenie pozostawione otwarte Inne terminy powiązane z PC – – – – – – – – Ubiquitous computing Calm technology Things that think Everyware Pervasive internet Ambient intelligence Proactive computing Augmented reality Właściwości systemów dla PI • Użytkownik nie zwraca uwagi na aplikację w długim okresie czasu • Działania użytkownika będące źródłem bodźcem do przetwarzania są zazwyczaj gwałtowne • Krótki czas wytwarzania aplikacji (time to market) • Brak wspólnego standardu UI • Zawsze gotowy do użycia • Zmienna przepustowość łączy • Zmienne możliwości interakcji • Zmiana warunków środowiska • Dynamiczna adaptacja do nowego środowiska Technologie powiązane • Sieci sensorów (Wireless Sensor Networks) • Nowe interfejsy HCI • Szutczna inteligencja Inne przykłady Inne przykłady • Screen Fridge • • • • • • • • • Email Video messages Web surfing Food management TV Radio Virtual keyboard Digital cook book Surveillance camera Inne przykłady • The Active Badge, Sztuczna siatkówka, Smart dust Jadalny komputer • The pill-cam – Miniaturowa kamera – Urządzenia diagnostyczne ! Nowe interfejsy HCI • Rozpoznawanie obrazów • Rozpoznawanie mowy • Dane z czujników HCI Publiczny ekran - przykład Źródło: http://www.ipsi.fraunhofer.de/ambiente/english/pro jekte/projekte/dynawall.html Jak to się ma do OS ? Nowy system operacyjny dla systemów klasy Pervasive Computing Pozostałe komponenty .NET 2.0 Dodatki wprowadzone w .NET 3.5 Language Integrated Query Windows Communication Foundation Windows Presentation Foundation Windows Worklfow Foundation Dodatki wprowadzone w .NET 3.5 Dodatki wprowadzone w .NET 3.5 Dodatki wprowadzone w .NET 3.5 Biblioteki klas bazowych Dodatki wprowadzone dddddd w .NET 3.5 Wspólne środowisko uruchomieniowe CLR Elementy wprowadzone w .NET 2.0 lub wcześniej Elementy wprowadzone w .NET 3.0 Elementy wprowadzone w .NET 3.5 Interaktywność w informatyce Algorytmika Interaktywność Obliczenia – transformacja wejścia na wyjście Obliczenia – dostarczanie usługi w ciągłym okresie Sztywna logika algorytmu AI, Agenci, obserwowalne środowisku, samouczenie Systemy zamknięte Otwarte, adaptujące się Wnioskowanie oparte o reguły Symulacje, procesy Markowa, probabilistyka Framwork Gaia Application Framework Kernel Middleware Applications Events Context Context File Space Location Security Manager Service System Repository Service Component Management Core MS Windows, OS X, Linux, Symbian OS, Mobile Windows, etc. System plików Location sensors Admin Spatial database 1 00 0 Region Location Service Establishment (LS) LE LV 3 2 Encrypt 5 Decrypt Create File 4 Reque st Context File System (CFS) Data 6 Data aggregation User Physical storage (distributed) Typowe warstwy aplikacji Aplikacja + GUI Zarządzanie/przechowywanie Transformacja metadanych Przekształcanie surowych danych Fizyczne sensory Złoty środek w aplikacjach PC • Usługi webowe (model zorientowany na usługi) – Mniej wydajna architektura ale bardziej elastyczna i zapewnia większą niezawodność Interfejs administracyjny Jigsaw Editor • Prostota obsługi (piktogramy) • Definiowanie złożonych scenariuszy OSCAR2 • Wykorzystanie kontekstu przyczyna - skutek • Konfigurowalność Definiowanie reguł/scenariuszy bądź uczenie systemu A B C D Interfejs administracyjny Pobieranie danych w trakcie działania systemu Interfejs komunikacyjny Wykorzystanie reguł podczas działania systemu Decyzja dotycząca wykonania operacji w systemie na podstawie reguł Proponowana architektura oparta o WS Klasyfikacja architektur PC • Widgets (widok z punktu widzenia procesu) – – – – Enkapsulacja Łatwość wymiany Zarządzane przez menadżera widget’ów Powiązanie widget’ów pozwala na zwiększenie wydajności, ale ujemnie wpływa na niezawodność • Model Blackboard (widok z punktu widzenia danych) – – – – – Procesy umieszczają komunikaty we wspólnej przestrzeni Uproszczony proces dodawania nowych źródeł kontekstu Łatwa konfiguracja Scentralizowany serwer Brak efektywnej komunikacji Typowe warstwy aplikacji • Sensory – Sensory fizyczne • sensory, kamera, mikrofon, akcelerometr, GPS, termometr, biosensory – Sensory wirtualne • Programowe: przeglądanie organizera, ruchy kursora, odczyt klawiatury – Sensory logiczne • Kombinacja fizycznych i wirtualnych sensorów wspomagana dodatkowymi informacjami z bazy danych: analiza logów i wydobywanie informacji o użytkowniku i urządzeniach • Przekształcanie surowych danych – Sterowniki i API – Zapytania funkcjonalne – Uzyskanie niezależności od warstwy sensorów Typowe warstwy aplikacji • Transformacja metadanych – Ekstrakcja cech – Wnioskowanie i interpretacja – Agregacja i kompozycja • Zarządzanie/ przechowywanie – Publiczny interfejs administracyjny – (Dynamiczna) Kompozycja komponentów wykonawczych synchroniczna (pull/polling) i asynchroniczna (publish/subscribe) • Aplikacja – Powiązanie algortymu (scenariusza) działania z warunkami zaistnienia – zbiór reguł Aplikacje świadome kontekstu (context – aware) Zakres i zadania systemu Warstwa aplikacyjna - Aplikacje świadome kontekstu Usługi lokalizacyjne Interfejs subskrypcji Interfejs zapytań Model kontekstu i silnik wnioskujący Interfejs aktualizacji modelu kontekstu Warstwa fizyczna – Sensory Usługi lokalizacyjne Rejestracja i usuwanie subskrypcji Odpowiedź Powiadomienie o zdarzeniu Reguła subskrypcji Warstwa usług Żadanie Interfejs subskrypcji Moduł obsługi subskrypcji Interfejs zapytań Realizacja subskrypcji Odpowiedź na zapytanie Silnik wnioskujący Informacja kontekstowa Model kontekstu Zarządzanie modelem kontekstu Zapytanie do modelu kontekstu Aktualizacja kontekstu Moduł aktualizacji kontekstu Aktualizacja kontekstu Interfejs aktualizacji kontekstu Agregacja kontekstu Wyzwalanie mechanizmu wnioskowania Literatura • • • • • • • • • • Mark Weiser, "The Computer for the Twenty-First Century," Scientific American, pp. 94-10, September 1991. Wikipedia – Mark Weiser, Ubiquitous Computing, HCI, AI M.Satyanarayanan, “Pervasive Computing: Vision and Challenges”, IEEE Personal Communications, August 2001. D.Saha, A.Mukherjee, “Pervasive Computing: A Paradigm for the 21st Century”, IEEE Computer Society, March 2003. Roberto Siagri, Presentation of "Computer you can eat or Portable, High-Performance Systems", Eurotech Spa, December 2004 Andrew C. Huang, Presentation of “Pervasive Computing: What is it good for?”, August 1999 CMU Project Aura Web Site, http://www.cs.cmu.edu/~aura/ MIT Project Oxygen Web Site, http://oxygen.csail.mit.edu/ UW Project Portalano Web Site, http://portolano.cs.washington.edu/ UC Berkeley Project Endeavour, http://endeavour.cs.berkeley.edu/ Pliki BD Informacje Obiekty Rejestracja ręczna Skanowanie Active Artefcats Tagi RFID “Rzeczy” Kody paskowe Aktywne artefakty RFID Smart-Its Powierzchnie czułe na dotyk cup book touch and move right move move click left click left click and release