7. Koneenohjausjärjestelmien suunnittelumallit. OhAr 5.10. 2010 Veli-Pekka Eloranta

Samankaltaiset tiedostot
Tarjolla tänään: Sanastoa Koneenohjausjärjestelmien suunnittelumallit. Pattern Architecture Style. GoF. Design pattern

7 Sulautettujen järjestelmien suunnittelumallit. OhAr Marko Leppänen

Koneenohjausjärjestelmien arkkitehtuurit. Sulautettu ohjelmointi Veli-Pekka Eloranta

Ohjelmistoarkkitehtuurit Koneenohjausmaailmaa. Kevät 2016

Ohjelmistoarkkitehtuurit Kevät 2014

Ohjelmistoarkkitehtuurit

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Ohjelmistoarkkitehtuurit. Kevät

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

ITK130 Ohjelmistojen luonne

OHJ-4301 Sulautettu Ohjelmointi

MICO. Ratkaisut älykkääseen tehonjakeluun. Valvonta. Katkaisu. Tunnistus

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Uusia tuulia Soneran verkkoratkaisuissa

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

Ohjelmistoarkkitehtuurit. Kevät

812341A Olio-ohjelmointi, I Johdanto

Autonomisen liikkuvan koneen teknologiat. Hannu Mäkelä Navitec Systems Oy

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

PUSH palvelut mobiilikehityksessä: Android ja Windows phone 7. Pauli Kettunen

TK Palvelinympäristö

Ohjelmistojen suunnittelu

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Uudelleenkäytön jako kahteen

Käytettävyyslaatumallin rakentaminen verkkosivustolle

HP Networking. Martti Saramies, HP Networking, myynti

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

Käyttöoppaasi. KONICA MINOLTA DI251F

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Cisco Unified Computing System -ratkaisun hyödyt EMC- ja VMwareympäristöissä

MyBus. Apps4Pirkanmaa. Einari Kurvinen Rolf Lindén Ranjeet Raya Rajput

Myynnin automaation kehityskäyrä

Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma

Integrointi. Ohjelmistotekniikka kevät 2003

Vikasietoisuus ja luotettavuus

Työasema- ja palvelinarkkitehtuurit IC Storage. Storage - trendit. 5 opintopistettä. Petri Nuutinen

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Ohar-ATAM pikaisesti. Ohjelmistoarkkitehtuurit 2009

HAAVOITTUVUUKSIEN HALLINTA RAJOITA HYÖKKÄYSPINTA-ALAASI

Kasvavaa kilpailukykyä. Tuottavuuspalvelut. Selvästi enemmän

Suunnittelu / Asennusohjeet

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Turvallisuusseminaari Silja-Line

Monimutkaisempi stop and wait -protokolla

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Älyvaatteet työympäristössä

Työasema- ja palvelinarkkitehtuurit IC Tallennusjärjestelmät. Tallennusjärjestelmät. 5 opintopistettä.

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Stabiloivat synkronoijat ja nimeäminen

TIETOTURVA LIIKETOIMINNAN MAHDOLLISTAJANA

Kansainvälisten myyntiliidien määrä nousuun LinkedIn-markkinoinnilla CASE AAC Global

Arkkitehtuuri- ja prosessimallit. Johannes Koskinen

mikä sen merkitys on liikkuvalle ammattilaiselle?

Uponor GSM-moduuli R-56

Stabilointi. Marja Hassinen. p.1/48

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Asennusopas. Huomautus. Observit RSS

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Esimerkki: Auton toiminnan monitorointijärjestelmä

Laboratorion säätöjärjestelmät

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Liittymät Euroclear Finlandin järjestelmiin, tietoliikenne ja osapuolen järjestelmät Toimitusjohtajan päätös

ATKO-hanke: Ajouraopastimen peruskäyttö. Ville Ketomäki 2018

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Nebula pilvi 9.0 saatavuusalueiden välinen verkkoliikenne

TK Palvelinympäristö

EASY PILVEN Myynnin opas - Storage IT

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Arto Salminen

11. Luento: Vikasietoisuus. Tommi Mikkonen,

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

TRUST WIRELESS KEYBOARD

Palvelujen ja prosessien johtaminen olennaisen tiedon avulla

811312A Tietorakenteet ja algoritmit I Johdanto

TRUST WIRELESS KEYBOARD & MOUSE

Tietorakenteet ja algoritmit - syksy

Innovaatiivinen hallinta Saimaan ja Atlantin rannalla. Case: I-SSHP & Walter Reed Army Medical Center

PATA WEB KÄYTTÖLIITTYMISTÄ

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Yleistä turvareleistä

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys:

Tietokanta (database)

Sulautettujen järjestelmien vikadiagnostiikan kehittäminen ohjelmistopohjaisilla menetelmillä

TUTKI OMAT TIETOTURVA-AUKKOSI. ENNEN KUIN JOKU MUU TEKEE SEN PUOLESTASI. F-Secure Radar Ville Korhonen

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Connection Manager -käyttöohje

Tietohallinnon uudistuksia ja haasteita sähköisen hallinnon näkökulma viranomaisten asiakirjojen pysyvään säilyttämiseen

Hankintatoimi Kemppi Oy:llä MK

Transkriptio:

7. Koneenohjausjärjestelmien suunnittelumallit OhAr 5.10. 2010 Veli-Pekka Eloranta

Sulautettujen järjestelmien mallikieli Sulake-projekti, 2008-2009 Arkkitehtuuriarviointeja (ATAM) teollisuuskumppanien kanssa Sivutuotteena n. 50 suunnittelumallin kieli Julkaistaan mahdollisesti kirjana (2011?)

Suunnittelumallit Jokainen malli löydetty useampaan otteeseen, vähintään kaksi instanssia Malleja eri tasoilla Suuria suunnitteluratkaisuja koko järjestelmään Yksittäisen ohjaimen toimintaan vaikuttavia Ooh-bivious, itsestään selviä

Suunnittelumallin kuvaus Canonical Form (a.k.a Coplien form) Konteksti (Context) Ongelma (Problem) Voimat (Forces) Laatuattribuutteja (Muokattavuus, tehokkuus, saatavuus) Ratkaisu (Solution) Perustelut/seuraukset (Rationale/Consequences) Sukulaismallit (Related patterns) Tuloskonteksti (Resulting context)

Esimerkkimalleja Isolate Functionalities Heartbeat Watchdog Bus Abstraction Message Queue Separate Real Time Permission Request Variable Manager

Isolate Functionalities Kuinka ohjata tehokkaasti suurta työkonetta käyttämättä yhtä isoa ohjelmistokomponenttia ja suurta määrää kaapelointia toimilaitteiden välillä? Voimat Skaalautuvuus: Järjestelmässä voi olla monia toimilaitteita Vasteaika: Järjestelmän tulee tarjota riittävä vasteaika, jotta koneen turvallinen ohjaaminen on mahdollista. Muokattavuus: Järjestelmän laitekonfiguraatio voi vaihdella, jopa ajon aikana. Hinta: Kaapelointi on kallista. Vikasietoisuus: Kaapelointi saattaa vioittua käytön aikana. Ymmärrettävyys: Pienet osakokonaisuudet helpompi hahmottaa.

Ratkaisu Node 1 Node 2 Node 3 Node 4 Node 5 Node 6

Perusteluja Helpompi ymmärtää Laajennettavuus lisäämällä uusia yksiköitä Riippuvuus ainoastaan viestien välityksellä Väylä vikasietoisempi kuin nippu erillisiä kaapeleita. Viestien määrä voi olla liikaa väylälle Kuinka paljon pitää hajauttaa?

Bus Abstraction Kuinka vaihtaa käytetty väyläratkaisua tai -topologiaa siten ettei sovelluksiin jouduta tekemään suuria muutoksia? Voimat Joustavuus: Väylätopologian pitäisi olla näkymätön kehittäjille. Joustavuus: Kehittäjien ei välttämättä tarvitse tietää missä joku palvelu sijaitsee Muokattavuus: Järjestelmän solmujen konfiguraatio voi vaihtua elinkaaren aikana. Uudelleenkäytettävyys: Samaa abstraktiota voidaan käyttää useammalla solmulla. Siirrettävyys: Järjestelmän elinkaaren aikana saattaa olla tarpeellista vaihtaa käytettyä väyläratkaisua

Ratkaisu Node 1 Node 3 Send( node3, data, repeat=no) Callback( node1, data) Bus abstraction Send in bus-specific way Bus abstraction Receive in bus-specific way Bus

Perusteluja Solmut eivät riipu suoraan toisistaan, vaan käyttävät nimiä viitaamaan toisiinsa. Näin järjestelmää on helppo laajentaa ja muokata, jopa ajon aikana Lisää ymmärrettävyyttä, kun liikennöinti ei ole väyläratkaisu riippuvaista Saattaa lisätä latenssia Voi olla vaikea päätellä onko jokin palvelu paikallinen vai ei.

Heartbeat Kuinka havaita väylän tai jonkin solmun hajoaminen? Voimat Vikasietoisuus: Solmu (toimilaite) saattaa vikaantua ja muiden solmujen tulisi huomata tilanne mahdollisimman nopeasti lisäongelmien välttämiseksi. Vikasietoisuus: Kommunikointiyhteys (esim. Väylä) saattaa katketa ja solmujen tulisi huomata tämä mahdollisimman nopeasti. Saatavuus: Mikäli solmu tai väylä vikaantuu, pitäisi tämä huomata mahdollisimman nopeasti, jotta saatavuus voidaan taata.

Ratkaisu Supervisor Node Tietyin aikavälein Alive? OK Vastaus tietyn aikavälin sisällä Alive? OK

Perusteluja Nopea kaatumisen havainnointi lisää vikasietoisuutta. Voi olla vaikeaa tietää onko vika yksikössä vai väylässä. Lisää viestiliikennettä.

Watchdog Miten havaita (osa)järjestelmän kaatuminen, jotta korjaaviin toimenpiteisiin voidaan alkaa mahdollisimman nopeasti? Voimat Vikasietoisuus: Toimilaitteen ohjelmisto voi kaatua/jumiutua/yms. Toimilaite pitäisi käynnistää uudelleen mahdollisimman nopeasti. Saatavuus: Korjaavat toimenpiteet tulisi aloittaa mahdollisimman pian, jottei järjestelmän saatavuus kärsisi. Hinta: Redundantit laitteet voivat olla liian kalliita. Suorituskyky: Ylimääräisiä viestejä (HEARTBEAT) ei voida lähettää väylälle.

Ratkaisu Node A Watchdog Node B

Perusteluja Lisää vikasietoisuutta Voidaan toteuttaa raudalla tai softalla. Voi mahdollisesti käynnistää vikaantuneen prosessin uudestaan. Voi olla vaikeaa säätää odotusaika oikein. Vahtikoiran on oltava muusta järjestelmästä riippumaton.

Message Queue Kuinka mahdollistaa asynkroninen viestien käsittely kommunikaatioväylän molemmissa päissä? Voimat Vikasietoisuus: Kaikki viestit tulisi käsitellä, yhtäkään viestiä ei saisi jättää huomiotta. Ennustettavuus: Lähetettävien (tai vastaanotettavien) viestien määrää ei voida ennakoida. Ennustettavuus: Viestit tulisi käsitellä siinä järjestyksessä kuin ne vastaanotetaan. Resurssien käyttö: Kaikki viestit tulisi käsitellä mahdollisimman nopeasti.

Ratkaisu Node 1 Node 2 Send queue Send queue Receive queue Receive queue

Perusteluja Molemmilla kanavan päillä on aikaa käsitellä viestit kiireettä. Väylän käyttöastetta voidaan kasvattaa. Viestijärjestys säilyy. Voi lisätä latenssia. Puskurin kokoa voi olla vaikea päättää.

Separate Real Time Kuinka tarjota korkeantasonpalveluja käyttäjälle vaarantamatta reaaliaikatoimintojen turvallisuutta? Voimat Turvallisuus: Korkeantasonpalvelut eivät saa häiritä reaaliaikatoimintoja, koska se voisi johtaa järjestelmän virheelliseen toimintaan. Esim. Laskennan deadlineja ei saavuteta. Testattavuus: Reaaliaikatoimintojen testaaminen erillään korkeantasonpalveluista pitäisi olla mahdollista. Ymmärrettävyys: Korkeantason ohjelmistojen kehittäminen on helpompaa kun ei tarvitse välittää reaaliaikavaatimuksista. Vasteaika: Reaaliaikatoimintojen tulee toimia tietyissä rajoissa, esim. Jarrujen ja muiden ohjausten vasteaika tulee olla riittävä.

Ratkaisu Communicates only over bus

Perusteluja Helpompi hallittavuus. Reaaliaikavaatimusten testaaminen helpottuu. Korkean tason kieliä ja kirjastoja voidaan hyödyntää helpommin.

Permit Request Kuinka voidaan varmistua, että yksittäisen toimilaitteen itsenäinen toiminta ei ole ristiriidassa koko järjestelmän tavoitteiden kanssa ja siten aiheuta vaaratilannetta? Voimat Hajautus: Järjestelmä on hajautettu Suorituskyky: Solmu saattaa tarvita tietoa useammalta muulta solmulta tehdäkseen päätöksen. Tämä saattaa aiheuttaa paljon väyläliikennettä. Turvallisuus: Koneenohjauksella tulisi olla lyhyt vasteaika, turvallisen toiminnan takaamiseksi.

Ratkaisu

Perusteluja On helpompaa säilöä tieto koko järjestelmästä yhdelle yksikölle. Yksittäisten yksiköiden ei tarvitse välittää koko järjestelmän tilasta. Tilatiedoissa voi olla latenssia. Lisää viestien määrää väylällä, muttei merkittävästi.

Variable Manager Kuinka voidaan tehokkaasti jakaa järjestelmän tila hajautetussa järjestelmässä? Voimat Tarkkuus: Järjestelmän tilatiedot ovat alati muuttuvia. Tehokkuus: Viestiliikenne tulisi minimoida. Skaalautuvuus: Järjestelmän tulisi olla skaalautuva solmujen tasolla. Laajennettavuus: Uuden toimilaitteen pitäisi päästä helposti käsiksi tilatietoon Mukautuvuus: Tilatieto ei saisi olla riippuvainen, tilatiedon tuottavan laitteen sijainnista. Käytettävyys: Haluttu tilatieto pitäisi olla helposti löydettävissä.

Ratkaisu Node 1 Node 2 Node 3 Variable Manager

Perusteluja Riippuen tilatietojen päivitysnopeudesta, jokaisella yksiköllä on riittävän hyvä kokonaiskuva. Tiedonvälitys on paikkariippumatonta. Tilamuuttujia voi olla niin paljon, että niiden käsittely on hankalaa.

Eikä siinä vielä kaikki Kysymyksiä? Lisää koneenohjausjärjestelmien suunnittelumalleja: http://practise.cs.tut.fi/files/publications/sulake/