Outils pour utilisateurs

Outils du site


cours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:publish_subscribe_pattern_for_eventing_with_web_services

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:publish_subscribe_pattern_for_eventing_with_web_services [2018/03/29 08:22] – [Create the Client Application] tiglicours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:publish_subscribe_pattern_for_eventing_with_web_services [2018/03/29 09:33] (Version actuelle) – [Create WCF Service Library (EventsLib.dll)] tigli
Ligne 1: Ligne 1:
-====== Event Based Communication and Architecture with web services ======+====== Event based Communication and Event driven Architecture with web services =====
  
-===== Your first step by step eventing communications between Web service and Client ===== +<note warning>  
 +The solution of the first part of this tutorial is provided below.  
 + 
 +Add the solution(s) of the second part of this tutorial on your Github repository ! 
 +</note>  
 + 
 +===== Introduction : Why Event driven Architecture ? ===== 
 + 
 + 
 +{{ :cours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:eda_schema.png?150|}} 
 + 
 +Classical Request–response, or request–reply, is one of the basic methods computers use to communicate with each other, in which the first computer sends a request for some data and the second computer responds to the request. 
 + 
 +Using request/response communication, client must implement active loop to read periodically a data to refresh its value locally and detect changes.  
 + 
 +A typical domain with such a problem is Internet of Things like for example sensors networks. 
 +In fact it's easy to understand that for N sensors, the client must send N requests periodically to test if one sensor measure changed since last requests !   
 + 
 +Event-driven architecture (EDA), is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. 
 + 
 +An event can be defined as "a significant change in state"
 + 
 +Some Middleware like [[https://en.wikipedia.org/wiki/MQTT|MQTT]] are specificaly design to implement such event driven architectures.  
 + 
 + 
 +===== PART 1 : Your first step by step eventing communications between Web service and Client ===== 
  
 ==== Events Introduction ==== ==== Events Introduction ====
Ligne 24: Ligne 49:
  
   * **.Net Framework Class Library** (EventsLib.dll): Actual Service logic, which defines a Service Contract Interface, OperationContract, and implements them, and exposes few functions to the world to use them   * **.Net Framework Class Library** (EventsLib.dll): Actual Service logic, which defines a Service Contract Interface, OperationContract, and implements them, and exposes few functions to the world to use them
-  * **Console  Application** to host the WCF Service Library EventsLibHost.exe): Host the WCF library +  * **Console Application** to host the WCF Service Library EventsLibHost.exe): Host the WCF library
-  * +
  
 On the client side : On the client side :
  
-  * Console Client Application (EventsClient.exe): Client Application which will use this service. +  * ** Console Application ** (EventsClient.exe): Client Application which will use this service. 
  
 <note warning> <note warning>
Ligne 45: Ligne 69:
  
 === Defining Interface ICalcServiceEvents (ICalcServiceEvents.cs) === === Defining Interface ICalcServiceEvents (ICalcServiceEvents.cs) ===
- +|||
-** Exercice: **+
  
 Now Let's define interface for the events published by the service. Now Let's define interface for the events published by the service.
Ligne 335: Ligne 358:
  
   * Build and execute, and here is the output:   * Build and execute, and here is the output:
 +
 +===== Correction =====
 +
  
 <note warning> <note warning>
 +Here, is the solution of the first part
 </note> </note>
- 
-===== Correction ===== 
  
 {{:cours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:srcevents_wcf_ws.zip|}} {{:cours:service_oriented_computing_and_web_services_2017_2018:lab_eventing_and_wstutorial:srcevents_wcf_ws.zip|}}
Ligne 363: Ligne 388:
 === Action<T> Delegate === === Action<T> Delegate ===
 https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx
-===== Advanced use of Eventing =====+===== PART 2 : Advanced use of Eventing =====
  
 Thanks to the previous example, create a central WS that accept data modification from "Publishers" clients and send event on these modifications to "subscribers" clients.  Thanks to the previous example, create a central WS that accept data modification from "Publishers" clients and send event on these modifications to "subscribers" clients. 
 Test it with a simple shared data like a count value, with one pupblisher and various subscribers. Test it with a simple shared data like a count value, with one pupblisher and various subscribers.
  
cours/service_oriented_computing_and_web_services_2017_2018/lab_eventing_and_wstutorial/publish_subscribe_pattern_for_eventing_with_web_services.1522311757.txt.gz · Dernière modification : 2018/03/29 08:22 de tigli