78779 - Mobile Systems M

Academic Year 2019/2020

  • Moduli: Paolo Bellavista (Modulo 1) Luca Foschini (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 0937)

Learning outcomes

At the end of the course the students are able to effectively develop and dynamically manage the runtime provisioning of mobile services. This requires acquiring expertise and theoretical skills, as well as design/implementation abilities, related to models and solutions for mobile systems, for mobile services provided on top of them, and for support systems (middleware) needed for their effective runtime execution.

Course contents

The course intends to provide students with methodology, modeling, design, and implementation skills/expertise related to the development, deployment, and runtime evaluation of mobile systems, of mobile services, and of middleware supports for the effective management of those services at provisioning time.

Constraints on previous knowledge: nothing (but the contents of the courses "Computer Networks T", "Web Technologies T" and, only very partially, "Computer Networks M" could be useful and valuable in a few parts of the course)

Course contents

- Introduction to wireless communication systems: propagation models; fading models; rapid introductory overview of main types of wireless communication technologies

o IEEE 802.11: general features; from CSMA/CD over Ethernet to CSMA/CA; hidden and exposed terminal issues; MACA; configurations for infrastructured and ad-hoc modes;

o IEEE 802.16;

o IEEE 802.20;

o IEEE 802.11 for municipal meshes

o Cellular networks and handoff: GSM architecture; handoff with common MSC; handoff with differentiated MSCs; handoff classification

o Bluetooth: protocol stack; different possible topologies; discovery service; scatternet and multi-hop communications; software stack for Bluetooth Java programming

o Rapid overview of ZigBee: features, architecture, possible topologies

- Mobile Ad Hoc Network (MANET): definition and application domains; routing in MANET, reactive/proactive/geographic/hybrid routing; Dynamic Source Routing (DSR); Ad-hoc On Demand Distance Vector (AODV); Greedy Perimeter Stateless Routing (GPSR); rapid overview on clustering solutions; LEACH, HEED, REDMAN

- Mobility and handoff management: introduction and definitions

- Location update and location search. Mobile IP: features, architecture, protocol, issues. Hierarchical Mobile IPv6 (HMIPv6). Split connection and I-TCP

- Positioning systems: motivations; taxonomy (physical/symbolic, centralized/distributed, absolute/relative, accuracy, precision, cost, and limitations). Base techniques: lateration, time difference of arrival, angulation, scene analysis, proximity

o Positioning systems for ad-hoc networks

o Positioning systems with additional hardware. GPS: features, limitations, differential GPS. Active Badge, AHLoS

o Positioning systems with no additional hardware: based on Bluetooth, PlaceLab, RADAR, Ekahau, Sensor Fusion, Universal Location Framework, JSR-179

- Development platforms for mobile systems (smart phone): overview, general concepts, definitions; comparison of J2ME, .NET CF, FlashLite, Android.

- J2ME stack: general architecture and fragmentation issue; configurations and profiles; MIDP application model; examples and exercises; rapid overview of security model. Description of proposed exercise on J2ME

- Simulation of networks and protocols at different layers, up to the application one. Description of proposed exercise on Qualnet simulation environment

- Android: introduction; architecture; OS kernel layer; power management and wakelock; native libraries; Dalvik VM; application framework; core applications; application model; activity lifecycle; intents and intent filters; threading model; examples and exercises. Description of the proposed exercise on Android

- Rapid overview on iOS: architecture; multi-tasking model; simple programming examples; native/Web applications for iOS (introductory overview of HTML5); unlocking and jailbreaking

- Mobile middleware: definitions, motivations, advantages. Relevance of determining principles and patterns. Internet principles: end-to-end and robustness principles. Web principles. SOA principles. Mobile computing principles. Examples of NoTA architecture and SIP. Cross-layering principle

o Architectural patterns, general and specific for mobile computing

o General patterns: model-view-control, broker, micro-kernel, active object

o For mobile computing: remote facade, data transfer object, remote proxy, observer, session token, caching, eager/lazy acquisition, rendez-vous, state transfer, connection factory, client-initiated connection, multiplexed connection

- Discovery services: definition, taxonomy, auto-configuration, discovery, access to resources/services

o Jini, with description of proposed exercise

o Service location Protocol (SLP)

o UPnP: architecture, description files, bridging possibilities, examples and exercises. Description of proposed exercise on UPnP

- Session management in converged 4G networks: Session Initiation Protocol (SIP), main features, scalability limitations. Session management in IP Multimedia Sub-system (IMS): architecture, functional entities, protocol examples, limitations in terms of monitoring, load-balancing, and scalability

- Messaging support in mobile systems: motivations; principles and architecture; protocols for message exchange; locator

o JMS: features, architecture, messaging models, reliability and quality, examples

o CORBA Messaging (AMI and TII)

o Rapid overview on XMPP, Web Services, and RESTful Web Services

- Event management and pub/sub model: possible topologies for event routers. Propagation of interests and subscriptions. Routing decisions

o Examples of distributed event systems: OMG DDS (partitions and quality levels); Java model for distributed events; General Event Notification Architecture (GENA); RSS/Atom; SIP Event Framework; Web Services Eventing & Notification

- Data synchronization in mobile systems: pessimistic/optimistic approaches; versioning; detection; reconciliation

o SyncML: representation protocol; synchronization protocol; examples

- Edge/Fog Computing: efficient integration of sensor-edge-cloud; distributed control and intelligence; offloading; proactive approaches and mobility prediction

o ETSI Mobile Edge Computing: emerging standard specifications; deployment approaches in 5G; orchestration and ETSI MANO

- Selection of primary application domains (4 examples, from vehicular ad hoc applications to federated social spontaneous networks),also to suggest/solicit some possible project activities to associate with the course

- Several case studies (also presented within company seminars, in addition to the regular lectures hours)

The course will be associated with a set of practical lab exercises, where the students will have the opportunity of completing their preparation through guided and simplified projects, to be solved autonomously. These lab activities will be necessary for the full achievement of the desired abilities and course objectives; texts and solutions of proposed exercises will be available at the Course Web site. The proposed set of exercises includes:

  • 1 exercise on J2ME (optional)
  • 1 exercise on Android
  • 1 exercise on UPnP discovery (or alternatively based on Jini)
  • 1 exercise on the Qualnet simulation environment (horizontal and vertical handoff)

The course will also organize some company seminars (optional, not mandatory attendance for the students), which will be held outside the regular lectures hours and in addition to them.

Readings/Bibliography

Suggested texts/manuals (useful sometimes as references, not adopted as textbooks):

  • S. Tarkoma, Mobile Middleware, Wiley, 2009
  • Ke-Lin Du, M.N.S. Swamy, Wireless Communication Systems, Cambridge University Press, 2010
  • Z. Mednieks, L. Dornin, G.B. Meike, M. Nakamura, Programming Android, O'Reilly, 2nd edition, 2012
  • D. Sillars, High-Performance Android Apps, O'Reilly, 2014


Other valuable on-line sources of information (for a complete list on the different topics covered by the course, please see the lectures slides):

  • Lectures of the Mobile & Pervasive Computing course, Univ. Carnegie-Mellon, 2010
  • Lectures of the Mobile Computing course, Univ. Ohio, 2009
  • Lectures of the Pervasive Computing course, MIT, 2008
  • Lectures of the Mobile Computing course, Virginia Tech, 2010
  • Lectures of the Mobile Computing and Sensor Networks course, NJIT, 2008

Teaching methods

During the lectures, we will discuss thoroughly the general issues related to the modeling, design, implementation, and runtime support of mobile systems and services, with specific attention to the characteristics needed for their development-/run-time supports. The primary technologies taken into consideration will be based on the Java language, on the Android platform, and on the Java Mobile Edition (JME).

The course will be accompanied by a set of practical lab exercises, where students will be solicited to complete guided project activities, including a significant amount of autonomous personal work. These activities will be needed to complete the exam preparation and to achieve the desired abilities/skills; text and solutions of lab exercises will be available at the course Web site.

Lab activities will include (list to be completed and finalized):

  • 1 exercise about J2ME (optional, to be possibly replaced by a similar exercise over iOS)
  • 1 exercise about Android
  • 1 exercise about UPnP discovery (or Jini, if preferred)
  • 1 exercise about the ns-3 or Qualnet simulation environment (horizontal and vertical handoff)

Assessment methods

The course includes a final oral examination, which will evaluate the level of expertise achieved both in terms of awareness of design methodologies, architectures, and models, and in terms of implementation abilities regarding all the primary technologies discussed during the lectures. The oral exam, with average duration of around 60-75 minutes, will include at least four questions, some of them targeting the solution of practical exercises that will use the mechanisms, protocols, and technologies for mobile systems, studied and discussed during the course.

Optionally, students will have the opportunity to choose to associate the exam with a project activity (engagement measured as a 4 ECTS effort), including autonomous personal work, on specific topics negotiated with the teacher during the course. In the case, students will have to deliver code and documentation describing the project activity completed; in the usual case where the project activity is presented when doing the final oral examination, that exam will start by discussing the developed project.

Teaching tools

All the lectures material and files (slides, exercises and solutions, suggested additional exercises, examples, project proposals, ...) will be available at the course Web site:

http://lia.disi.unibo.it/Courses/sm1920-info/

As a possible additional reference, please consider also the material of the previous academic year, already available at:

http://lia.disi.unibo.it/Courses/sm1819-info/

 

The above material is the primary source of contents for the preparation of the course examination; the suggested bibliography (books, papers, Web sites, ...) is intended as an optional support and integration.

Links to further information

http://lia.disi.unibo.it/Courses/sm1819-info/

Office hours

See the website of Paolo Bellavista

See the website of Luca Foschini

SDGs

Industry, innovation and infrastructure Sustainable cities

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.