====== Service oriented computing and web services ====== ==== General Informations ==== Dates : Feb 2018 - May 2018 ECTS : 2 Lecturer : Jean-Yves Tigli Number of Students : 56 [[cours:service_oriented_computing_and_web_services:2017-2018:agenda|Agenda 2017-2018 ]] ---- ==== Dépôts des rendus sur GitHub ==== Créer (le 01/03/18), un GitHub pour votre projet. Envoyez un mail avec le sujet : [RENDU 2 GITHUB WS-REST and WS-SOAP Lab][], à l'attention de tigli@unice.fr et contenant l'adresse de votre GitHub. Il contiendra : * Votre projet à rendre pour le 1/4/18 * Les différents rendus au sortir des différents tutoriaux ===== Session 1 : Design, Deploy and Orchestrate Services - Software Environment Tools for this Module ===== ---- ==== Introduction of the module ==== || {{ :cours:donelogo.gif?75|}} * ** 8:00 - 8:30 : Introduction of the module by lecturer in O+310 ** * Do you remember ? {{:cours:cours_intro_services_web_rest_et_soap_si3_2016-2017.pdf| Introduction to Web Services in SI3 : WS-REST and WS-SOAP/WSDL }} {{ :cours:donelogo.gif?75|}} === Lecture 1 :=== || * [[cours::service_oriented_computing_and_web_services_2017_2018:lecture1| Software Tool to Design Client Applications for Web Services (Visual Studio IDE)]] {{ :cours:donelogo.gif?75|}} === Lecture 2 :=== || * [[cours::service_oriented_computing_and_web_services_2017_2018:lecture2| Software Tool to Deploy WS SOAP/WSDL Client Application on Docker with Visual Studio ]] Avant le 19-02-18 23:59:59, envoyez votre travail Session 1 / lecture 2. Les consignes sont données dans la page web correspondante. === Optional Lecture 3 === * [[cours::service_oriented_computing_and_web_services_2017_2018:lecture3| Orchestrate services with Node RED ]] ===== Session 2 : REST and SOAP Web Services ===== ---- {{ :cours:donelogo.gif?75|}} === lecture 1 == * [[cours::WS-REST_and_WS-SOAP:lecture1| Web Service REST and tutorial with VS]] * First definition of Representational State Transfer (REST)[[https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf|Architectural Styles and the Design of Network-based Software Architectures - Ph.D. DISSERTATION of Roy Thomas Fielding, 2000 ]] || {{ :cours:donelogo.gif?75|}} ** Comment CRUD and REST ** [[https://www.bmc.com/blogs/rest-vs-crud-whats-the-difference/#|REST vs CRUD: What’s The Difference?]] === lecture 2a == * [[cours::WS-REST_and_WS-SOAP:lecture2| Web Service SOAP and tutorial with VS]] === lecture 2b : WS-REST and WS-SOAP Lab and Evaluation == {{ :cours:donelogo.gif?75|}} * [[cours::WS-REST_and_WS-SOAP:Lab| Lab and Evaluation instructions ]] Avant le 18-03-18 23:59:59, envoyez votre projet "WS-REST and WS-SOAP Lab". Les consignes sont données dans la page Web correspondante. ===== Session 3 : From web service to service, a "binding" affair in ABC model ===== ---- === Lecture 1 : ABC Model for .Net Windows Fondation Communication === ||| {{ :cours:donelogo.gif?75|}} * {{:cours:6._services_-_modele_abc_-_wcf-2015-2016.pdf|Introduction to ABC Model of Microsoft}} * [[cours:app_rep_orientees_service_2016_2017:lab_ABC|Tutorial on ABC Model]] {{ :cours:donelogo.gif?75|}} === Lecture 2 : "C" means contract === * [[cours:app_rep_orientees_service_2016_2017:lab_Contract|Tutorial on types of contract]] ===== Session 4 : Event Based Communication and Architecture with web services ===== ---- ||| === Lecture & Lab 1 === {{ :cours:donelogo.gif?75|}} The event-driven messaging is a design pattern, applied within the service-orientation design paradigm to enable the service consumers, which are interested in events that occur within the periphery of a service provider, to get notifications about these events as and when they occur without resorting to ** the traditional inefficient polling based mechanism **. // Events allow the client or clients to be notified about something that has occurred on the service side. // W3C consortium propose a [[https://www.w3.org/Submission/WS-Eventing/|Web Services Eventing (WS-Eventing) - W3C Recommendation]] ** Tutorial ** [[cours:service_oriented_computing_and_web_services_2017_2018: Lab_eventing_and_WSTutorial : publish / subscribe pattern for eventing with web services|]] === Lab 2 === {{ :cours:donelogo.gif?75|}} || * [[cours::WS-REST_and_WS-SOAP:Eventing_Lab2| Web Service and Event driven architecture Lab 2 ]] This Lab is 4 hours long. Your work will be store in a new branch of the Github that you use for this course, as an extension of your "velib" project. The final version of your lab must be on github no later than 12:15 pm, today. ===== Session 5 : Contracts for Web Services ===== ---- {{ :cours:donelogo.gif?75|}} === Lecture 1 : WSDL for WS-SOAP === ||| * {{:cours:3._contrats_et_description_de_web_services_-_wsdl-2016-2017.pdf| WSDL, Web Service Description Language for WS-SOAP}} /* * {{:cours:td4-td_services_metadata_exchange_.net-2016-2017.pdf| Tutorial WSDL for WS-SOAP sous WCF- Windows Communication Foundation}} */ === Lecture 2 : ABC Model and MEX Contract === ||| Windows Communication Foundation (WCF) provides a rich infrastructure for exporting, publishing, retrieving, and importing service metadata. WCF services use metadata to describe how to interact with the service's endpoints so that tools, such as Svcutil.exe, can automatically generate client code for accessing the service. * [[cours::WS_contracts_2017_2018:lecture3_swagger| Contract for WS-REST : Swagger example]] ---- ===== Advanced Session 1 : Web Services in IoT ===== === gSOAP Introduction and Tutorial === [[cours:service_oriented_computing_and_web_services:2017-2018:gSOAP|gSOAP]] === gSOAP for web of Things : Example Raspberry Pi and Raspbian === || ** Raspberry Pi ** is a series of small single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and in developing countries. The original model became far more popular than anticipated,selling outside its target market for uses such as robotics. {{ :cours:420px-raspberry_pi_3_model_b.jpg?300 |}} {{ :cours:bazaar580409_img_4051aa.jpg?100|}} ** Raspbian ** is a free operating system based on Debian optimized for the Raspberry Pi hardware. An operating system is the set of basic programs and utilities that make your Raspberry Pi run. However, Raspbian provides more than a pure OS: it comes with over 35,000 packages, pre-compiled software bundled in a nice format for easy installation on your Raspberry Pi. == Test of gSOAP on Raspbian == Install a Raspbian OS in docker container and test the previous calc WS-SOAP. === Advanced Questions : hindsight issues about Web Services === Please look at different comments in this page [[cours:service_oriented_computing_and_web_services:2017-2018: excerpts from the literature on web service, questions and answers]], and provide your best analysis with your own explanations and/or illustrations. === Optional question : Docker on RaspberryPi === Docker can also be a way to easily deploy some solutions on RaspberryPi. Of course, first thing to do is to install Docker on Raspberry Pi ... but that works ([[https://blog.hypriot.com/getting-started-with-docker-and-windows-on-the-raspberry-pi/|Example]]). ===== Evaluation during the two last courses ===== ---- Durant les deux séances restantes : Jeudi 3 Mai, Jeudi 17 Mai, l'enseignant en charge du cours fera un audit de vos projets au travers entre autre un entretien de 5 min. avec chacun de vous (en sus de la consultation de votre repo sur Github). Comme vous êtes 58, il ne disposera que de 5 min. que nous répartirons ainsi : - 2 min. de démo projet v1 - 1 min. de démo projet v2 (dans le prolongement de la démo v1) - 2 min. de questions (précises et techniques pour sonder votre degrés d'investissement dans le projet) Vos démos seront accompagnées d'un schéma en pdf de l'architecture de votre projetv1&2 avec votre NOM, à déposer sur votre repo Github et tiré au format papier pour notre entretien. L'évaluateur conservera ce document comme attestation de votre passage. Bien sûr votre/vos démo/s devra/ont être prête/s avant votre passage. A priori l'ordre de passage sera l'ordre alphabétique inverse (Cf. liste EDT), mais l'évaluateur pourra changer cet ordre (en particulier et en autre s'il y a des absences justifiées). ===== Other Documents and References ===== ---- || === Pattern Cache-Aside === [[https://docs.microsoft.com/fr-fr/azure/architecture/patterns/cache-aside| Microsoft C# Modèle Cache-Aside]] || === DevOps === [[cours::service_oriented_computing_and_web_services_2017_2018:advancedlecture1| DevOps Workflow for Docker Applications and Microsoft Tools]] || === Google Elevation Map === {{:cours:td6-td_wsdl_puis_ws_google.pdf|Google Elevation Map Web Service and Velib WS }} === Docker Application Lifecycle === Cloud References, [[https://novacontext.com/containerized-docker-application-lifecycle-with-microsoft-platform-and-tools/|Containerized Docker Application Lifecycle with Microsoft Platform and Tools]] === Popular Web Services === [[cours:service_oriented_computing_and_web_services_2017_2018:set_WS_providers|Set of most used Web services]] ---- ===== Archives ===== ---- * [[cours:app_rep_orientees_service_2016_2017|Applications Réparties : du Web, Web Services au Services (SI4)]] ===== FAQ ===== ---- * [[cours:service_oriented_computing_and_web_services_2017_2018:FAQ|]]