====== Verteilte Systeme - Distributed Systems ====== ===== Inhalt der Vorlesung: ===== * **Foundation of operating systems** * Resource-management * Process abstraction and life-cycle * Scheduling mechanisms * **Foundation of communication systems** * Two-Army-Problem * Principal properties of communication channels * Network transport protocols * **Inter-process communication** * Signals, Shared Memory, Pipes, Sockets * Typical issues in distributed systems * Error-cases, Synchronisation, Distributed time-base and event mechanisms * **Socket-programming in Python and C** * **Communication Architectures** * Client/Server, Publish/Subscribe, P2P * **Middleware-Architectures** * Remote Procedure Calls (RPC) and application protocols: (HTTP, HTML, XML, JSON) * Examples of distributed architectures: WWW & MQTT * Designing RESTful services with AJAX and JSON ==== Themenstellung des Labors: ==== * Design of application scenarios for wireless sensor networks * Using the Contiki-OS for 8/16/32-bit microcontrollers * Analysis of use cases for communication protocols * Real-time communication * Management of limited resources * Energy efficiency * Excessive packet drop and delay * Secure deployment and operation ==== Literatur: ==== * A. Tanenbaum, M. van Steen: **Distributed Systems**, Prentice-Hall * R. Stevens, S. Rago: **Advanced Programming in the UNIX Environment**, Addison-Wesley ---- ===== Links: ===== === REST === * [[https://softwareengineering.stackexchange.com/questions/120716/difference-between-rest-and-crud|Differences between REST and CRUD]] * [[https://stackoverflow.com/tags/rest/info|REST (REpresentational State Transfer)]] * https://sookocheff.com/post/api/when-to-use-http-put-and-http-post/ * [[https://stackoverflow.com/questions/5725430/http-test-server-accepting-get-post-requests|HTTP test server accepting GET/POST requests]] * Python Frameworks for [[https://fastapi.tiangolo.com|REST-Server(fastapi)]] and [[https://requests.readthedocs.io/en/master/|Clients(requests)]] * https://martinfowler.com/articles/richardsonMaturityModel.html === API's === * https://ipapi.co/#api - **IP Location API** * http://open-notify.org/Open-Notify-API/ISS-Location-Now/ - **International Space Station Current Location** * https://gist.github.com/rshrc/127ba2c20df74263d71bc5a5595c8969 - **A Tutorial on how to use API's in Python** === JSON === * https://jsonata.org/ * https://www.youtube.com/watch?v=ZBaK40rtIBM&t=1s === Queues === * http://queues.io === WebRTC === * https://webrtc.org * https://simpl.info/rtcpeerconnection/ * https://simpl.info * http://webaudiodemos.appspot.com