{{ :drapeau_anglais.jpg?nolink&50|}} ====== Middleware for Internet of Things ====== {{ :mucimg.jpg?nolink&300|}} ====== Sessions ====== ---- << More than the sum of its devices, the Internet of Things links technologies together to create new services and opportunities. >> ==== Session 1 : Introduction to Architecture and Middleware for Internet of Things ==== ---- {{ :cours:middleware.jpg?350|}} Lecturer : J.-Y. Tigli Author : J.-Y. Tigli * IoT Challenges * IoT Application Architecture: From IoT to Cloud through Edge and Fog * Middleware Challenges for IoT * Middleware for Internet of Things Course curiculum [[cours:mit_2018_2019:session1:|]] == Materials : == {{:cours:2017_2018_iot_lecture_1_internet_of_things_introduction.pdf|Introduction to Internet of Things (IoT)}} {{:cours:2016_2017_iot_lecture_1_classical_middleware_and_communication_models.pdf|classical Middleware and Communication Models}} == Exercices and Practical Course == ||| [[cours:mit_2018_2019:session1:Exercices and Labs|Exercices and Labs Documents]] ==== Session 2 : Network Infrastructure for IoT : ex. LPWA (Low Power Wide Area) networks ==== ---- * Lecturer : Fabien Ferrero * Prerequisites : c and c++ programming, python programming **Low Powered Network for the Internet of Things** {{:cours:course_lpwan.pdf| Course LPWAN}} {{:cours:course_lorawan.pdf| Course : LoRaWan}} ** Tutorial LoRa ** {{:cours:lab1_channel_measurement.pdf|Lab1: Channel measurement}} {{:cours:lab2_lorawan_register_device.pdf|Lab2: Lora wan register device}} ** Other references ** **Low Power Wide Area Networks: An Overview **, Usman Raza, Parag Kulkarni, and Mahesh Sooriyabandara, Toshiba Research Europe Limited, UK,Cornell University online Library, arXiv.org [[https://arxiv.org/pdf/1606.07360.pdf|pdf]] [[cours:mit_2018_2019:archive_LPWAN|Archive LPWAN course 2017-18]] ==== Session 3 : Event Driven Architecture and Middleware for IoT ==== ---- * Lecturer: J.Y. Tigli * Requirements : shell and C# programming (can be replace by C programming), windows PC with Visual Studio and Vmplayer with a linux virtual machine. ** IoT : MQTT - OASIS standard / Tutorial MQTT ** {{:cours:2018_2019_mit_mqtt_lecture_2.pdf|Introduction to MQTT}} {{:cours:tutorial_mqtt_mit_2018_2019.pdf|Event based Middleware and CEP : MQTT tutorial}} ** Lab Tools : ** * [[cours:iot:node-red_on_docker|HELP for MQTT broker and Node-red Docker Containers installation]] ** References ** about MQTT messages format and protocol, see : * [[http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf| MQTT Version 3.1.1 OASIS Standar 29 October 2014]] || || ==== Session 4 : CEP (complex event processing) in Event Driven Architecture ==== ---- || == Model checking and formal approach for CEP == * Lecturers : I. Sarray & A. Ressouche * Prerequisites : c programming, notions of logic and automata theory Lecture: Synchronous language for formal validation - application to CEP (complex event processing) {{http://www-sop.inria.fr/members/Annie.Ressouche/pdf/Lecture_MUC_UBINET_Verif_2017_2018.pdf|Slides}} Tutorial: Creating a Validated CEP node in a MQTT approach {{http://www-sop.inria.fr/members/Annie.Ressouche/pdf/Tutorial_MUC_UBINET_Verif_2017_2018.pdf|Text}} Material: - CLEM: the clem tools useful to design a synchronous road information component {{http://www-sop.inria.fr/members/Annie.Ressouche/zip/clem_software_2017_2018.tgz|Clem software}}. This archive contains **clem**, **blif_simul** and **galaxy** software both for linux 64 bits and for linux 32 bits. You should put them in a "bin" folder and add the path to this folder in the environment variable **PATH** of your linux system. - VERIFICATION: The {{http://www-sop.inria.fr/members/Annie.Ressouche/zip/clem_verif.tgz|Clem verification tools}} must be installed from xeve.tgz and NuSMV-2.6.0.tgz archives (see the tutorial for both xeve and NuSMV installation). You should also add the **xeve** and the **NuSMV** software to your "bin" folder. Moreover, a **NuSMV** executable file is in the archive to be used if it is running in your linux system. - C CODE: Some{{http://www-sop.inria.fr/members/Annie.Ressouche/zip/MQTT_c_code.tgz| C files }} to help the definition of the MQTT client which contains the CEP validated node defined in your tutorial. **Notice: It is mandatory to have Linux operating system.** ==== Session 5 : Service oriented Architecture and Middleware for IoT : Towards Web of Things (WoT) and Web Services for Devices (WSD) ==== ---- || {{ :cours:soa.jpg?300|}} ** Lecturer : J.-Y. Tigli ** == Main Purpose of SOA (Service oriented Approach) : == // In SOA, networked resources are made available as autonomous software services that can be accessed without knowledge of their underlying tech- nologies. Key feature of SOA is that services are inde- pendent entities, with well defined interfaces, which can be invoked in a standard way, without requiring the client to have knowledge about how the service actually performs its tasks.* // (*) A Perspective on the Future of Middleware-based Software Engineering, Valérie Issarny, Mauro Caporuscio, Nikolaos Georgantas, Workshop on the Future of Software Engineering : FOSE 2007, 2007, Minneapolis, United States. pp.244-258, 2007, [[https://hal.inria.fr/inria-00415919/document|pdf file]] == Lecture and Lab : == From IoT to WoT/WSD - Tutorial HTTP/CoAP - WS/REST - WSD ||| * {{:cours:2017_2018_iot_lecture_3_service_oriented_middleware_for_iot.-_rest_and_coap.pdf|Service oriented Middleware and IoT}} * [[cours:mit_2018_2019:soa4ioTLab|]] ==Archives : == * {{:cours:tutorial_rest_coap_mit_2017_2018.pdf|Tutorial on HTTP RESTFul and CoAP 2016 2017 in C#}} * {{:cours:coap_simple_service.zip| Zip file of a .Net C# solution with a simple CoAP client and server based on CoAP.Net library}} ====== Synthesis ======= Middleware for IoT are deployed on heterogeneous IoT Plateform to provide a more homogeneous way to develop some distributed software applications. Most of the time, we distinguish four levels : IoT Devices, Edge, Fog, and Cloud. **Exercice :** Find in the technical and scientific litterature some definitions and recent surveys on these concepts for IoT. Write a paper (Max 2 pages long) on this 4-levels point of view of distributed system that can then emerged like CyberPhysical Systems. For example you can argue : * why differents patterns of communication are used in this 4-levels System, * what are the famoust technologies for each levels This paper will be sent **To tigli@unice.fr** with ** Subject : IoT Paper 2019 ** as to attached files : one .zip with sources (tex/docx) and one pdf, no later than 10th of February ==== Session 6 : Web Service for Devices : Discovery, Availability Management and Dynamic software composition ==== ---- Lecturers : S. Lavirotte & J.Y. Tigli == Material == * {{:cours:2017-2018_upnp_dpws.pdf|Slides of the Lecture on Web Service for Devices standards}} **Lab : UPnP Manipulations without programming ** * Install [[https://www.meshcommander.com/upnptools|Developper Tools for UPnP Technologies]] * "Network Light" simulate an UPnP device. * Device Spy Tool allow to interact with any UPnP device in your Local Network * Device Sniffer allow to spy the UPnP protocols exchange // Exercice : // * Run a "Network Light" and interact with if thanks to the Device Spy Tool. How many services are available ?. What are both kinds of software communication patterns * Find the description of the "Network Light" Device/Services. What is the format of this description ? Can you then imagine how the Device Spy create an interface for each discovered device on the fly ? * Thanks to Device Sniffer, you can observe the different messages between Clients (UPnP control point) and Servers (UPnP Devices). What are the messages corresponding to SSDP ? What is the HTTP-like protocol that carry this kind of message? **Lab UPnP with Node-RED** * After creating you own UpnP device, try to use it with Node-RED. First, you need to install node-red-upnp-control-point and node-red-contrib-upnp. You can find them at the following address: http://trolen.polytech.unice.fr/cours/mit/ * With the samples in node-red-contrib-upnp package, try to discover the UPnP device * Then, try to interact with them, send an action to a UPnP device and subscribe to changes on the device. **Lab : Create your own UPnP device (with some C# programming)** * {{:cours:2017-2018_tutorial_6_wsd_upnp.pdf|Tutorial on Web Services for Devices (UPnP)}} * Tutorial Videos : [[https://www.youtube.com/watch?v=MnMaz5WYsb0|video1]] & [[https://www.youtube.com/watch?v=4UMJhMJMiUY|Video2]] ==== Session 7 : Advanced MIT : SWoT (Semantic Web of Things), middleware and semantic composition ==== ---- ||| Lecturers : G. Rocher, GFI Informatique - J.Y. Tigli * {{:cours:swot.pdf| Slides of the Lecture on Semantic Web of Things }} * {{:cours:swot_tutorial.pdf| Tutorial on Semantic Web of Things }} * {{:cours:tutorial_files_owl_for_swot.zip|Package of files .owl for the tutorial}} ** Related Works : ** * ** SOFIA EU Project ** : [[http://www.win.tue.nl/~tozceleb/sofia/|System Architecture and Networking (SAN)]] 2009 - 2011 Smart Objects For Intelligent Applications (SOFIA) is funded through the European Artemis programme under the subprogramme SP3 Smart environments and scalable digital service. The mission of SOFIA project is to create a semantic interoperability platform which enables and maintains cross-industry interoperability which is a platform for new services. Concurrently the solution will foster innovation while maintaining value of existing legacy multi-vendor interoperability platform. * Industrial products from SOFIA : ** SMALL at Tecnalia ** * Industrial products from SOFIA : ** SOFIA 2 at Indra ** * **[[https://fiware-orion.readthedocs.io/en/master/index.html|FiWare]]** * **OneM2M, ETSI ** {{ :cours:etsi-onem2m.png?150|}} ==== Session 8 : One day ETSI OneM2M Hackaton ==== ---- ||| [[http://www.onem2m.org/|Standards for M2M and the Internet of Things]] ||| //Potential Review of students Papers before last version one Week after (DEADLINE). // ===== Evaluation Rules : ===== ---- - Evaluation of a Practical Course : Evaluation from the Tutorial of the Modeled Complex Event Processes using Synchronous languages approaches and model checking [Deadline 02/20/19] - One or more MCQ during some sessions [02/05/19 and 02/12/19 or 02/19/19] - Personnal Work : Writing of a 2 pages long paper like explain at the end of the Session5 Lab [Deadline 02/15/19] ===== Students 2019 :===== ---- ||| {{:cours:students_population_mit_2019.png?direct&350 |}} ==== Other Session : DevOps for IoT ==== ---- ||| [[cours:mit_2018_2019:Deploy_for_IoT|Deploy for IoT]] ==== Personnal Work : Write your own paper ==== ---- [[cours:mit_2017_2018:personnal_paper_method|Method and Advice...]] [[cours:mit_2017_2018:student_papers_array |Student Papers Array]] ===== Course Agenda : ===== {{:cours:mit_agenda_18_19.pdf|Calendar 2018 2019}} ===== Main Conferences and Journals ===== ---- [[http://ubicomp.org/ubicomp2014/|UbiComp Internation Conferences (also Pervasive Computing Conference and Internation Symposium on Wearable Computer]] [[http://www.middleware-conference.org/|Middleware Internation Conferences]] ==== IoT-EPI - Reference architecture ==== [[https://iot-epi.eu/|IoT-European Platforms Initiative]] The IoT-European Platforms Initiative (IoT-EPI) was formed to build a vibrant and sustainable IoT-ecosystem in Europe, maximising the opportunities for platform development, interoperability and information sharing. Seven leading research and innovation projects make their technology accessible to 3rd parties [[https://iot-epi.eu/about/|about IOT EPI]]. ==== Other References ==== [[http://www.oracle.com/us/solutions/machine-to-machine/iot-wp-2190408.pdf |Internet of Things: Role of Oracle Fusion Middleware, An Oracle White Paper April, 2014]] ===== ARCHIVES ===== [[cours:mit_2015_2016|Middleware for Internet of Things (IFI/SI5/Unbinet) 2015 2016]] [[cours:mit_2016_2017|Middleware for Internet of Things (IFI/SI5/Unbinet) 2016 2017]] [[cours:mit_2017_2018|Middleware for Internet of Things (IFI/SI5/Unbinet) 2017 2018]]