Side 1 av 18. Norges teknisk-naturvitenskapelige universitet Institutt for telematikk

Like dokumenter
EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER EXAM TTM4115 ENGINEERING DISTRIBUTED REAL-TIME SYSTEMS

EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER

EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER

EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER EXAM TTM4115 ENGINEERING DISTRIBUTED REAL-TIME SYSTEMS

EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER

Slope-Intercept Formula

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER EXAM TTM4115 ENGINEERING DISTRIBUTED REAL-TIME SYSTEMS

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

Vedlegg 2 Dokumentasjon fra TVM leverandør

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

Eksamensoppgave i SANT2100 Etnografisk metode

EN Skriving for kommunikasjon og tenkning

Løsningsforslag EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER

Information search for the research protocol in IIC/IID

0:7 0:2 0:1 0:3 0:5 0:2 0:1 0:4 0:5 P = 0:56 0:28 0:16 0:38 0:39 0:23

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Elektronisk innlevering/electronic solution for submission:

Eksamensoppgave i GEOG Menneske og sted I

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET Geografisk institutt

Eksamensoppgave i GEOG1004 Geografi i praksis Tall, kart og bilder

1 User guide for the uioletter package

EKSAMENSOPPGAVE I SØK 1002 INNFØRING I MIKROØKONOMISK ANALYSE

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i GEOG1005 Jordas naturmiljø

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Trigonometric Substitution

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i GEOG Befolkning, miljø og ressurser

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN I. TDT42378 Programvaresikkerhet

Trådløsnett med Windows XP. Wireless network with Windows XP

EKSAMENSOPPGAVE HØST 2011 SOS1000 INNFØRING I SOSIOLOGI

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

DecisionMaker Frequent error codes (valid from version 7.x and up)

Databases 1. Extended Relational Algebra

Instructions for the base (B)-treatment and the elicitation (E)-treatment of the experiment

Du kan bruke det vedlagte skjemaet Egenerklæring skattemessig bosted 2012 når du søker om frikort.

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

Examination paper for BI2034 Community Ecology and Ecosystems

Examination paper for SØK2009 International Macroeconomics

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

Besvar tre 3 av følgende fire 4 oppgaver.

Eksamensoppgave i GEOG1001 Menneske og sted II

UNIVERSITETET I OSLO

HONSEL process monitoring

Examination paper for TDT4252 and DT8802 Information Systems Modelling Advanced Course

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

EKSAMENSOPPGAVE I FAG TKP 4105

EKSAMENSOPPGAVE I BI2014 MOLEKYLÆRBIOLOGI

Eksamensoppgave i SANT3508 Globalization Theory and Culture

AVSLUTTENDE EKSAMEN I/FINAL EXAM. TDT4237 Programvaresikkerhet/Software Security. Mandag/Monday Kl

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Søker du ikke om nytt frikort/skattekort, vil du bli trukket 15 prosent av utbetalingen av pensjon eller uføreytelse fra og med januar 2016.

Søker du ikke om nytt frikort, vil du bli trukket 15 prosent av din pensjonsutbetaling fra og med januar 2014.

Eksamensoppgave i SOS1000 Innføring i sosiologi

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

The regulation requires that everyone at NTNU shall have fire drills and fire prevention courses.

Den som gjør godt, er av Gud (Multilingual Edition)

UNIVERSITETET I OSLO

Eksamensoppgave i SANT1002 Økonomi, politikk og økologi

2018 ANNUAL SPONSORSHIP OPPORTUNITIES

Dagens tema: Eksempel Klisjéer (mønstre) Tommelfingerregler

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

INF2120 Tools at your fingertips

Smart High-Side Power Switch BTS730


EKSAMENSOPPGAVE I BI2034 Samfunnsøkologi EXAMINATION IN: BI Community ecology

Eksamensoppgave i SANT1001 Sosial organisasjon og identitetsdannelse

Skjema for spørsmål og svar angående: Skuddbeskyttende skjold Saksnr TED: 2014/S

FIRST LEGO League. Härnösand 2012

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

UNIVERSITETET I OSLO

FYSMEK1110 Eksamensverksted 23. Mai :15-18:00 Oppgave 1 (maks. 45 minutt)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Endringer i neste revisjon av EHF / Changes in the next revision of EHF 1. October 2015

Call function of two parameters

En praktisk innføring i team-basert læring

Exam in Quantum Mechanics (phys201), 2010, Allowed: Calculator, standard formula book and up to 5 pages of own handwritten notes.

Vurderingsveiledning SPR3008 Internasjonal engelsk Eleven gir stort sett greie og relevante svar på oppgavene i samsvar med oppgaveordlyden.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i SOS1000 Innføring i sosiologi Examination paper for SOS1000 Introduction to Sociology

LISTE OVER TILLATTE HJELPEMIDLER EKSAMEN I NOVEMBER OG DESEMBER 2014

Oppgave. føden)? i tråd med

Transkript:

Side 1 av 18 Norges teknisk-naturvitenskapelige universitet Institutt for telematikk EKSAMENSOPPGAVE I TTM4115 SYSTEMERING AV DISTRIBUERTE SANNTIDSSYSTEMER EXAM TTM4115 ENGINEERING DISTRIBUTED REAL-TIME SYSTEMS SOLUTION PROPOSAL (IN THE ENGLISH TEXT) Contact person/faglig kontakt under eksamen: Rolv Bræk Phone/Tlf.: 415 44 605 Exam date/eksamensdato: 28. mai 2011 Time/Eksamenstid: 09:00-13:00 Credits/Studiepoeng: Remedies/Tillatte hjelpemidler: 7,5 SP A: All written and handwritten examination support materials are permitted. All calculators are permitted A: Alle trykte og håndskrevne hjelpemidler tillatt. Alle kalkulatorer tillatt Languages/Språkform: Antall sider bokmål: 1 Number of pages in English: 1 Tal på sider nynorsk: 1 Attachment/Antall sider vedlegg: 7 Results/Sensurdato 1 : 21. juni 2011 1 Merk! Studentene må primært gjøre seg kjent med sensur ved å oppsøke sensuroppslagene.

Side 2 av 18 Bokmål (Eksamen utgjør 75% av sluttkarakteren.) Oppgavene referer seg til systemet som er beskrevet i vedlegg. Studer vedlegget først. Oppgave 1. (25%) SDL struktur 1. Definer Flexibus systemet i Figur 2 som en SDL blokktype med indre blokker av type Central, Bus og Mobile Phone. Disse blokktypene skal ha en SDL gate for hver tilknyttet kanal. Ta med blokk type referanser for alle de indre blokk typene. Definer signalene som fremgår av Figur 3, 4 og 5, og angi hvilke av signalene som formidles på de forskjellige kanalene. 2. Definer blokktypene Central og Mobile Phone når vi antar at de indre enhetene er SDL prosesser. Ta med signaler og nødvendige prosess type referanser. 3. I hvilke tilfeller kan man generelt sett utelate å adressere et signal med TO PId og likvel være sikker på at signalet kommer frem til en bestemt prosess? Er det eksempler på dette i Flexibus? 4. I semesteroppgaven benyttet dere RAMSES og ActorFrame. Forklar kort hensikten med disse og deres hovedfunksjoner. Oppgave 2. (30%) SDL oppførsel Vi antar i det følgende at datatypene fra Figur 1 er blitt predefinert i et bibliotek. Dette gjelder også typen UserList med operasjonene Add(UId, PId) for å legge inn en ny bruker og Get(UId)->Pid for å finne PId til en UserAgent tilsvarende en UId. 1. Definer oppførselen til SDL prosessen UserMgr. Ta med erklæring og bruk av variabler. 2. Definer LogOn og LogOff prosedyrene i UserClient, se Figur 5. Ta med erklæring og bruk av variabler. 3. Definer oppførselen til tilstanden Booking i Figur 5 slik at den er kompatibel med tilsvarende oppførsel for UserAgent gitt i Figur 4. Kansellering trigges av at bruker trykker CancelBtn i GUI. 4. Sjekk UserAgent i Figur 4 for input konsistens og forklar hva som må gjøres for å rette opp eventuelle inkonsistenser. Oppgave 3. (20%) Prosessalgebra, CCS I denne oppgaven skal vi modellere betalingen på bussen med prosessalgebra (CCS). Følgende tre prosesser, som også er beskrevet på grafisk form i Figur 6, inngår: PaymentUnit: PU = pay; card ; enter; card ; leave; paid ; PU TicketStation: TS = card; check ; (first; enter ; TS + second; leave ; TS) BusClient: BC = check; (first ; BC + second ; BC) 1. Ekspander oppførselen BS = BC TS (gjerne på grafisk form). 2. Ekspander oppførselen PS = BS PU (gjerne på grafisk form). 3. Er det noen problemer i PS? Hvilke? 4. Anta at oppførselen BS erstattes av spesifikasjonen (også beskrevet i Figur 6): BS1 = card; (leave ; BS1 + enter ; BS1) Ekspander BS1 PU (gjerne på grafisk form). Er BS1 ekvivalent med BS? Gi et begrunnet svar.

Side 3 av 18 English (The exam counts 75% towards the final grade.) The questions refer to the system described in the appendix. Study the appendix first. Question 1. (25%) SDL structure 1. Define the Flexibus system in Figure 2 as an SDL block type having inner blocks of type Central, Bus and Mobile Phone. These block types shall have an SDL gate for each connected channel. Include block type references for all inner block types. Define all signals that are used in Figures 3, 4 and 5, and specify which of these signals are passed on each channel. Block type Flexibus Bus Mobile Phone signallist SL1 = Book, TravelReport; SL2= BusArrive, LogOnConfirm, TourBooked, Unavailable; SL3 = LogOnRequest; SL4 = LogOffConfirm; SL5 = LogOnBtn, LogOffBtn, NewUserBtn, CancelBtn; Signal Book(Booking, GPS), TravelReport(Booking), BusArrive(BId), LogOnConfirm, LogOnRequest(UId), LogOnBtn,... Central c:central sb uab [Arriving] [(SL1)] ucu [(SL3)] ucm s ua b(,):bus pu [(SL2)] ts ua [(SL4)] um m(,):mobile Phone u [(SL5)] user Right structure: 30 Missing signalparameters: -20 Typedefined blocks: 40 Gates missing: -20 Type references: 10 Channels missing: -10 Signaldefs: 20 Wrong signal on channel:-10 2. Define the block types Central and Mobile Phone assuming that all inner entities are processes. Include signals and necessary process type references.

Side 4 av 18 block type Central Signal Configure(UId,PId), LogOn (PId), LogOff, Request(Booking, pos), BookingCnf(Booking), Unavailable; UserAgt UserMgr Scheduler [Request] [BookingCnf, Unavailable] [Arriving] ua(,): UserAgt [Configure, LogOn ] [LogOff] um: UserMgr [Arriving] [(SL1)] [(SL3)] sb uab ucu ucm [(SL2)] [(SL4)] block type Mobile Phone User Client Payment Unit Signal Pay, Paid; [(SL1)] [(SL2)] ua [(SL3)] [(SL4)] um uc: UserClient [(SL5)] GUI u [Paid] GPS [Pay] ts pu:payment Unit Reading GPS is like reading a local variable, so a process is not quite right, but good enough. Scoring is roughly as for Q1.1. Create flow (dashed): +10 bonus Missing signals on channels: - 10 Missing gates: -20 3. Under which circumstances can one omit to address signals using TO PId and still be certain the signals will arrive at a unique destination? Are there any examples of this in Flexibus? There are three options: TO Name: can be used within a block where there is only one instance with that name. VIA: when the path leads to a unique process that can receive the signal

Side 5 av 18 No address: when there is only one process instance in the whole system that can receive the signal This is used for the Request signal to the Scheduler. Via: +30 General statement about uniqueness with example: +75 Name: + 30 No name: +30 Uniqueness: +10 4. In the term assignment you used RAMSES and ActorFrame. Explain shortly their purposes and main functionality. RAMSES is an Eclipse tool for editing of UML systems and state machines, analysing and code generation to Java for ActorFrame ActorFrame is a runtime support system that provides message routing and state machine support in Java. Has also support for actors and role request/session initiation. Ramses OK:+50 ActorFrame OK: +50 Question 2. (30%) SDL behaviour We assume in the following that the data types from Figure 1 have been predefined in a library. So is the data type UserList having the operations Add(UId, PId) for adding new users and Get(UId)->Pid for finding the PId of the UserAgent corresponding to a UId.

Side 6 av 18 1. Define the behaviour of the SDL process UserMgr. Include declarations and use of variables. Process UserMgr DCL uc PId, ua PId, users UserLookup, user UId; NewUser (user) LogOn Request(user) LogOff (user, uc) ua users:=add (users, user, Offspring) Configure (user,sender) TO Offspring Confirm TO Sender ua:=get (users, user) LogOn (SENDER) TO ua LogOffConfirm TO uc Main flow OK: + 70 Included external behaviour: -20 Create and use Offspring: +10 Stateful behaviour: -20 DCL OK: +10 Missing DCL: -10 Correct use of variables and parameters: + 20 Minor errors in papmeters/variables: -10 2. Define the LogOn and LogOff procedures used in the UserClient in Figure 5. Include declaration and use of variables.

Side 7 av 18 Procedure LogOff Procedure LogOn LogOffRequest TO ua LoggedOff LogOnRequest (user) LoggingOn LogOffConfirm LogOnConfirm ua:=sender Main Flow OK: + 70 Not procedures: -30 ua assignment: +20 Included external signals:-30 Parameters: +10 3. Define the behaviour of composite state Booking in Figure 5 so that it is compatible with the corresponding behaviour of the UserAgent given in Figure 4. Cancellation is triggered when the customer presses the CancelBtn in the GUI. state Booking Wait Booking unavailable ToorBooked (booking) Unavailable CancelBtn (user) cancelled Cancel TO uc unavailable cancelled Composite state OK: +60 Included external behaviour: -20 Flow OK: +30 Too many exit labels: -10 Parameters: +10 Forgot Cancel signal: -10 Missing exit labels on frame: -10 Check the UserAgent in Figure 4 for input consistency and explain what has to be done to correct the inconsistencies, if any.

Side 8 av 18 There is a mixed initiative in state Wait booking leading to inconsistency in transitions: o WaitBook --> WaitBus on Booking Cnf and WaitBook--> on Unavailable. To resolve these one must add a transition triggered by Cancel to WaitBook (Will cause secondary inconsistency) and. o WaitBook --> on Cancel. To resolve one must add a transition triggered by BookingCnf and Unavailalbel to. Mixed initiative mentioned without anything else: +20 Mixed initiative with some cases: +10 One case correct: +50 Each additional: +20 Dealing with secondary inconsistencies: +20 (up to 100) Question 3. (20%) Process algebra, CCS In this question we model the payment in the bus using process algebra (CCS). The following three processes, also defined in graphic form in Figure 6, take part: PaymentUnit: PU = pay; card ; enter; card ; leave; paid ; PU TicketStation: TS = card; check ; (first; enter ; TS + second; leave ; TS) BusClient: BC = check; (first ; BC + second ; BC) 1. Expand the behaviour BS = BC TS (use the graphic form, if you like). BS = BC TS card!check!first enter'!second leave' BS BS First transition OK: +30 Notation errors:-10 Some correct Tau: 40 Taking transitions not enabled: -50 The rest: + 30

Side 9 av 18 2. Expand the behaviour PS = BS PU (use the graphic form, if you like). PS = BS PU pay!card!check!first!enter!second (leave';bs) (enter; card'; leave; paid; PU)!card!check!first (enter';bs) (leave; paid; PU)!second!leave PS paid First transition OK: +20 Missing 1 deadlock if rest is OK: -10 Main sequence: +40 Deadlocks: +40 3. Are there any problems in PS? What problems may occur? There are two deadlocks indicated by the unresolved expressions. 4. Assume that the behaviour BS is replaced by the specification (also described in Figure 6): BS1 = card; (leave ; BS1 + enter ; BS1) Expand the behaviour BS1 PU (use the graphic form, if you like). BS2 = BS1 PU pay!card!enter!card!leave paid BS2 = BS1 PU Is BS1 equivalent with BS? Justify your answer. When composing with PU there is deadlock with BS and not with BS1. Therefore they are not equivalent seen from PU, and hence not observation equivalent. Erroneous claims about trace equivalence to be ignored. Correct expansion: +50

Side 10 av 18 Correct about equivalence: +50 ignoring the deadlocks found in 3. here: -30 Observation equivalence is not correct but give +20 if this is the only argument and the argument is that tau can be ignored. (It cannot under choice, but the students have not worked much with that.)

Side 11 av 18 Nynorsk (Eksamen utgjer 75% av sluttkarakteren.) Oppgåvene referer seg til systemet som er skildra i vedlegg. Studer vedlegget fyrst. Oppgåve 1. (25%) SDL struktur 1. Definer Flexibus systemet i Figur 2 som ein SDL blokktype med indre blokker av type Central, Bus og Mobile Phone. Desse blokktypane skal ha ein SDL gate for kvar tilknytta kanal. Ta med blokktype referansar for kvar av dei indre blokktypane. Definer signala som er bukte i Figur 3, 4 og 5, og angje kva for nokre av signala som formidlast på dei einskilde kanalane. 2. Definer blokktypane Central og Mobile Phone når vi antek at dei indre delane er SDL prosessar. Ta med signal og naudsynte prosesstype referansar. 3. I kva tilfeller kan ein generelt sett utelate å adressere eit signal med TO PId og samstundes vera trygg på at signalet kjem frem til ein bestemt prosess? Er det døme på dette i Flexibus? 4. I semesteroppgåva nytta de RAMSES og ActorFrame. Forklar kort føremålet med desse og deira hovudfunksjonar. Oppgåve 2. (30%) SDL oppførsel Vi antek i det fylgjande at datatypane frå Figur 1 er blitt predefinerte i eit bibliotek. Dette gjeld også typen UserList med operasjonane Add(UId, PId) for å leggja inn ein ny brukar og Get(UId)->Pid for å finne PId til ein UserAgent tilsvarande ein UId. 1. Definer oppførselen til SDL prosessen UserMgr. Ta med erklæring og bruk av variablar. 2. Definer LogOn og LogOff prosedyrane i UserClient, sjå Figur 5. Ta med erklæring og bruk av variablar. 3. Definer oppførselen til tilstanden Booking i Figur 5 slik at den er kompatibel med tilsvarande oppførsel for UserAgent gitt i Figur 4. Kansellering trigges av at brukar trykker CancelBtn i GUI. 4. Sjekk UserAgent i Figur 4 for input konsistens og forklar kva som må gjerast for å rette opp eventuelle inkonsistensar. Oppgåve 3. (20%) Prosessalgebra CCS I denne oppgåva skal vi modellere betaling i bussen med prosessalgebra (CCS). Fylgjande tre prosessar, som også er synt på grafisk form i Figur 6, inngår: PaymentUnit: PU = pay; card ; enter; card ; leave; paid ; PU TicketStation: TS = card; check ; (first; enter ; TS + second; leave ; TS) BusClient: BC = check; (first ; BC + second ; BC) 1. Ekspander oppførselen BS = BC TS (gjerne på grafisk form). 2. Ekspander oppførselen PS = BS PU (gjerne på grafisk form). 3. Er det nokre problem i PS? Kva for problem? 4. Anta at oppførselen BS erstattast av spesifikasjonen (også gjeve i Figur 6): BS1 = card; (leave ; BS1 + enter ; BS1) Ekspander BS1 PU (gjerne på grafisk form). Er BS1 ekvivalent med BS? Gje eit grunngjeve svar.

Side 12 av 18 Vedlegg/ Appendix Bokmål Flexibus Vi skal her studere et system for fleksibel busstransport i en by. Bussene kjører ikke faste ruter, men får tildelt ruter dynamisk etter behov. Bussene stopper bare på angitte holdeplasser som ligger tett i byen. Kundene bruker mobiltelefoner med GPS posisjonering til bestilling og betaling. Telefonene har nærfeltskommunikasjon, NFC, til registrering og betaling ombord på bussene. Figur 1 definerer noen datatyper (passive objekter) i Flexibus, mens Figur 2 viser den funksjonell strukturen til systemet i litt uformell UML notasjon. Central enheten har en UserAgent til å betjene hver kunde og en UserMgr til å opprette nye UserAgenter og til å delta ved pålogging og avlogging, som vist i Figur 3. En UserAgent vil eksistere permanent, også mens kunden ikke er pålogget. I MobilePhone er det en UserClient med tilknyttet GUI, PaymentUnit og GPS. UserClient logger seg på med sitt brukernavn, UId, som vist i Figur3. UserMgr finner den tilhørende UserAgent og initierer en sesjon mellom UserClient og UserAgent. Oppførselen til UserAgent er gitt i Figur 4 og oppførselen til UserClient er gitt i Figur 5. Bemerk at prosessgrafen i Figur 5 inneholder en composite state Booking (se SDL 2000) som skal defineres i en av oppgavene. Signaler fra GUI har navn som ender på Btn (for button ). Ved bestilling sender UserClient sin GPS posisjon og en utfylt booking med navnet på ønsket endeholdeplass, Stn, til UserAgent som sender bestillingen videre til Scheduler med Signalet Request. Denne holder rede på alle aktive busser, hvor de er og hvilken Schedule, de har fått tildelt. Scheduler kvitterer med å tildele en bestillingsbekreftelse, BookingCnf, med en utfylt booking verdi som angir stoppestedet bussen vil hente passasjeren på, bussens identitet, BId, og antatt hentetidspunkt. Bussen varsler UserAgent som varsler UserClient når den ankommer hentestedet. UserClient vil da aktivisere PaymentUnit i mobiltelefonen. Kundene legger telefonen inntil en TicketStation i bussen når de går om bord, og gjør det samme når de forlater bussen etter endt reise. UserClient får så kvittering i form av en booking verdi med status ended direkte fra PaymentUnit og sender denne videre til UserAgent for registrering.

Side 13 av 18 English Flexibus We shall here study a system for flexible bus transport in a City. Buses do not run fixed schedules, but are assigned schedules dynamically on customer demand. Buses stop only on designated bus stops that are densely distributed throughout the city. Customers use mobile phones with GPS positioning for booking and payment. The phones have near field communication, NFC, for registration and payment on the bus. Figure 1 defines some data types used by the system while Figure 2 defines the functional structure using slightly informal UML notation. The Central has a UserAgent to serve each customer, and a UserMgr to create new UserAgents and assist during logon and logoff as shown in Figure 3. UserAgents will exist permanently even when the customer is not logged on. The MobilePhone has a UserClient and a connected GUI, PaymentUnit and GPS. A UserClient logs on with a username, UId, as shown in Figure 3. The UserMgr finds the corresponding UserAgent and initiates a session between the UserClient and UserAgent. The UserAgent behaviour is defined in Figure 4 and the UserClient behaviour is defined in Figure 5. Note that the process graph in Figure 5 contains a composite state Booking (see SDL 2000) that you shall define in one of the questions. Signals from the GUI have names ending with Btn. When booking, the UserClient sends its GPS position and a filled in booking with the desired destination bus stop name, Stn, to the UserAgent that sends the booking on to the Scheduler in the signal Request. The Scheduler manages all the buses and their schedule. The Scheduler responds by sending BookingCnf, with a filled in booking containing the pick-up station, the bus identity, BId, and the expected pick-up time. When approaching the pick-up station the bus will inform the UserAgent who notifies the UserClient. The UserClient will then activate the PaymentUnit in the Mobile Phone. The customer touches a TicketStation in the bus when entering, and again when leaving. The UserClient then receives a receipt in the form of a booking value with status ended directly from the PaymentUnit and sends it on to the UserAgent for registration.

Side 14 av 18 Flexibus 1 1 1 Bus identifier:bid currentstn:stn 1 * 1 * 0..1 * Station identifier:stn location: Address position:gps 0..1 * * User identifier:uid position:gps 1 1 Schedule segments[*]: Segment Segment from: Stn to:stn passengers: Integer status:{booked, started, ended, cancelled} Figure 1 Data types in the Flexibus system 1 * 1 Bookings booking[*]: Booking 1 * 0..1 Booking bus:bid from: Stn to:stn time: Time userid:uid status:{requested, booked, started, ended, cancelled} Central Scheduler ua[*]: UserAgt um: UserMgr b[*]:bus m[*]:mobile Phone bus: BusClient uc: UserClient GUI user GPS ts[1..5]: Ticket Station NFC channel pu:payment Unit Figure 2 The Flexibus System

Side 15 av 18 UserMgr UserClient UserAgt create NewUser(UId) NewUserBtn(UId) Configure(UId, PId) Confirm LoggedOff LogOnRequest(UId) LogOn(PId) LogOnConfirm LogOffRequest LogOnBtn LogOffBtn LogOff(UId, PId) LogOffConfirm LoggedOff Figure 3 Creating a new UserAgent, Logging On and Logging Off

Side 16 av 18 process type UserAgent UAInit DCL booking Booking, uc PId, user UId, bus BId, pos GPS; Passive LogOn(uc) UAInit LogOnConfirm TO uc Book (booking,pos) LogOff Request Request (booking,pos) LogOff(user, uc) WaitBook Passive BookingCnf (booking) TourBooked (booking) TO uc Unavailable Unavailable TO uc Cancel() CancelBooking (booking) WaitBus Arriving (bus) /*From bus*/ BusArrive(bus) TO uc OnBus TravelReport (booking) Figure 4 UserAgent behaviour

Side 17 av 18 process type UserClient UCInit DCL booking Booking, ua PId, user UId, bus BId, pos GPS, goingto Stn; LoggedOff LogOnBtn (user) LogOn UCInit LogON LogOff BookingBtn (goingto) booking!userid:= user; booking!status:= request; booking!to:=goingto; pos:= Read(GPSUnit); Book (booking,pos) TO ua LogOffBtn LogOff LoggedOff Booking Wait Bus unavailable cancel BusArrive (bus) Pay(booking) TO pu Travelling Paid(booking) /*from pu*/ TravelReport (booking) TO ua Figure 5 UserClient behaviour

Side 18 av 18 BC check first' second' BC BC BS1 card leave' enter' BS1 BS1 TS card check' first second enter' leave' PU pay card' enter card' leave paid PU TS TS Figure 6 CCS processes in the payment system