- Docente: Paolo Bellavista
- Credits: 8
- SSD: ING-INF/05
- Language: English
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Computer Engineering (cod. 5826)
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, "Infrastructures for Cloud Computing and Big Data 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 Wi-Fi Direct.
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; concise comparison of J2ME, .NET CF, FlashLite, Android.
- 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. Cross-layering principle. Architectural patterns, general and specific for mobile computing.
- Internet of Things (IoT) platforms: definitions and reference architectues, primary state-of-the-art platforms in the market, mobile and industrial IoT, research directions under current investigation, use cases of industrial applications
- 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 is described in the Teaching Methods section.
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
- Lectures of the Mobile Computing course, Univ. Ohio
- Lectures of the Pervasive Computing course, MIT
- Lectures of the Mobile Computing course, Virginia Tech
- Lectures of the Mobile Computing and Sensor Networks course, NJIT
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 either an IoT or an edge computing platform
By considering the type of programming activities and the adopted methodologies within this course, the participation and attendance of this course suggest that all students preliminarily attend the modules 1 and 2 of the e-learning course about security in study environments [https://elearning-sicurezza.unibo.it/].
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 3 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 on Virtuale UNIBO (not yet available; it will be populated during the lecturing period).
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.
Please see also the full description of the course contents on the related Website on Virtuale @UNIBO, which will be populated and enriched progressively during the lecturing period. To have a preliminary idea of the contents, please refer to the contents of the previous academic year.
Office hours
See the website of Paolo Bellavista
SDGs
This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.