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

Podobne dokumenty