SlideShare a Scribd company logo
RoomWare Server
     2009 version
Why change?
• Easier to develop and plugin new “Devices”
• More flexibility to connect anything to
  anything
• No dependency on Java
• Stable RoomWare Server core / new
  devices are developed outside the
  RoomWare core
Offering freedom for all
• Everything is message based
• For the Server any RoomWare Device is
  like any other RoomWare Device
• Any “Device” can address any other
  “Device”
• Any “Device” can send messages to any
  other “Device” to state their events, their
  wishes and needs
Using sockets
•   Sockets are “pipelines” over a TCP/IP connection
•   They are bi-directional and platform independent
•   They can be created in PhP, Java, Flash, C#, Python
    and so forth
•   They run locally without a Web Server
•   They have a proper event-model for pushing data
    from “A” to “B” and back
•   They will be used to connect anything to anything,
    using the RoomWare server as a switch
Making this possible
     Device   Device




Device                 Device




     Device   Device
And this
Local machine
                Device             Device
                                                Other machines
                                                 in the network



        Device                              Device


                         The web


                Device             Device
And this
Local machine
                Device             Reader
                                              Other machines
                                               in the network



       Service                              App


                         The web


                 Site                Site
Using RoomWare Server
      Device              Device




 Device        RoomWare            Device
                 Server




      Device              Device
Sockets
    Device              Device

         Socket    Socket

Device Socket RoomWare Socket Device
                Server

         Socket    Socket

    Device              Device
And Mediators
     Device                  Device

              M          M

Device    M       RoomWare    M       Device
                    Server

              M          M

     Device                  Device
Mediators
         Events, Requests, Responses
Device     M                    M      Device


• Mediators translate the data to something
  the other party can understand
• Communication is between mediators
Mediator
• Connects a “Device” with the RoomWare
  server
• Translates “Device” data to XML
• Translate data from other sources to
  actions in the “Device”
• Communicates to RW Server via Sockets
• Data is standard XML
• Communication is Bi-directional
• Event or Request based
• Device can be another RoomWare Server
Devices

           Messages, instructions, data
Device                                    Device


• Devices can be anything (sensors, web
    sites, desktop applications, electronics,
    readers) and communicate in any protocol
•   Very likely they do not understand each
    other without a Mediator
Messages
<request name="getbluetoothlist" context="" devicename="BT reader Room2">

   <data>
 

   </data>     <event name="newbluetoothdevice" context="request" devicename="BT reade
</request>    
   <data>
 
              
   </data>
                </event>

   • Each “Device” can send to- and recieve
     messages from any other devices
   • A message can be a Request, a Response or
     an Event
   • Each message can contain data and
       instructions
Message types
•   <event: sent by device, to all listeners
•   <request: named request from one device to all
    listeners. Has a “context”
•   <response: named response from listener to a
    request, sent only to requester. Reflexts the
    context as given by request
Message header
•   Headers: <event <request <response
•   Header data:
    •  listener: name of request, response, event listener
    •  context: local context - used to split responses / link them to a
       context
    •  mediatorname: logical name of mediator in mediator via mediator
       definition XML
    •  For response
      •    destinationid: specific address of device to send response to
    •  By RoomWare kernal - always added to message
      •    sourceid: ID of device assigned by kernal
      •    timeposted: moment the RoomWare kernal passed the request /
           response / event
Inner Workings
RoomWare Server

             Kernel

             The bridge between the mediator
   Plugin
             and the kernel


              Software that mediates between the
  Mediator
              RoomWare server and the “Device”

   Device     Can be websites, readers, sensors, etc..
Plugins

         Events, Requests, Responses

Device   M     P     K     P      M    Device

                RoomWare
                  Server          M    Mediator

                                  P    Plugin

                                  K    Kernel
Plugins
• A Plugin represents a Mediator and via the
  Mediator the RoomWare Device
• When Mediators connect to the
    RoomWare Server they get their own
    Plugin in the RoomWare Server
•   Each Plugin recieves an unique number
    from the RoomWare server for internal
    communication
•   Each Plugin is subscribed to one or more
    lists to recieve Events and Requests
Plugin “A”
                       Event
Event           Data

 Event name

Event list
 Event name
   Subscriber          Plugin “B”
   Subscriber          Plugin “D”
   Subscriber          Plugin “N”
Events
• Are broadcasted to anyone who listens
• Have no return address
Plugin “A”
                Request
Request      Data + Plugin ID    Plugin “A”

 Request name

Request list                     Data
 Request name
  Subscriber        Plugin “B”   Response
  Subscriber        Plugin “D”   Response
  Subscriber        Plugin “N”   Response
Request
• Are broadcasted to anyone who listens
• Have a return address
• Recieve a Response with the requested
  data
The Kernel
         Device                            Device

                  M                    M
                       P       P
Device    M       P        K
                           P       P         M      Device
                      P        P
              M                        M

         Device                            Device
                      RoomWare
                        Server
Kernel
• The Kernel is “Communication Central”
• It distributes the Messages to the right
  Plugins
• It has no memory of what has happend
  before
More details
• The next slides show how the plugin is
  connected to the mediator and how
  communication takes place
RoomWare Server

   Post
            Message
            handler
 Recieve
            Socket
                         Plugin

                      Mediator
            Socket
   Post


 Recieve    Message   Device      Device
                                           Device
            handler   handler     driver
Mediators and Plugins
•   The Mediator connects each “Device” to the
    RoomWare
•   Each Mediator consists of a Message Handler and a
    Socket connector
•   For each Mediator, the RoomWare server creates
    a Plugin to deal with the internal communication
•   The connection between a Mediator and a Plugin
    is done via a Socket
•   The Plugin sends and recieves Messages to and
    from the Kernel and to and from the Mediator
•   The Kernel acts like a mail man and handles the
    actual distribution of messages between Plugins
RoomWare Server
                   Events, Requests, Responses

    Plugin                                        Plugin
                   Post                Receive
   Message                                       Message
   handler                                       handler
                  Receive                 Post
    Socket                                        Socket
                          Kernel
                    Communication

   Mediator                                      Mediator
              Events, Requests, Responses

   “Device”                                      “Device”
              Messages, instructions, data
Flow
1. A “Device” is connected to a Mediator (software)
2. The Mediator creates a connection to the
   RoomWare server via a Socket
3. The RoomWare Server creates a Plugin for the
   Mediator
4. This Plugin is registered with a unique ID in the
   Kernel
5. Each Mediator passes an XML definition to the
   Plugin to state to which Events and Requests it
   subscibes to
6. When Mediator “A” sends a relevant message for
   Mediator “B” the Kernal will pass that message to
   the Plugin of Mediator “B” based on the
   subscription to different lists
Making this possible
     Device   Device




Device                 Device




     Device   Device
RoomWare server 2009

More Related Content

Similar to RoomWare server 2009

LoRaWAN in Depth
LoRaWAN in DepthLoRaWAN in Depth
LoRaWAN in Depth
APNIC
 
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
Mitul Golakiya
 
Pandora FMS: VMware Enterprise Plugin
Pandora FMS: VMware Enterprise PluginPandora FMS: VMware Enterprise Plugin
Pandora FMS: VMware Enterprise Plugin
Pandora FMS
 
Wifi direct p2p app
Wifi direct p2p appWifi direct p2p app
Wifi direct p2p app
geniushkg
 
Android media framework overview
Android media framework overviewAndroid media framework overview
Android media framework overview
Jerrin George
 
Osiot13 IoT buildout
Osiot13 IoT buildoutOsiot13 IoT buildout
Osiot13 IoT buildout
Michael Koster
 
(130119) #fitalk apt, cyber espionage threat
(130119) #fitalk   apt, cyber espionage threat(130119) #fitalk   apt, cyber espionage threat
(130119) #fitalk apt, cyber espionage threat
INSIGHT FORENSIC
 
CIS14: Trusted Tokens: An Identity Game Changer
CIS14: Trusted Tokens: An Identity Game ChangerCIS14: Trusted Tokens: An Identity Game Changer
CIS14: Trusted Tokens: An Identity Game Changer
CloudIDSummit
 
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Leonardo De Moura Rocha Lima
 
Attacking backup softwares
Attacking backup softwaresAttacking backup softwares
Attacking backup softwares
Nibin Varghese
 
P2P for mobile devices
P2P for mobile devicesP2P for mobile devices
P2P for mobile devices
immanuelnoel
 
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
APNIC
 
Project meeting: SVMP - Secure Virtual Mobile Platform
Project meeting: SVMP - Secure Virtual Mobile PlatformProject meeting: SVMP - Secure Virtual Mobile Platform
Project meeting: SVMP - Secure Virtual Mobile Platform
Yu-Hsin Hung
 
Modern API's.pptx
Modern API's.pptxModern API's.pptx
Modern API's.pptx
AugustinaAdjei1
 
Geek Night 15.0 - Touring the Dark-Side of the Internet
Geek Night 15.0 - Touring the Dark-Side of the InternetGeek Night 15.0 - Touring the Dark-Side of the Internet
Geek Night 15.0 - Touring the Dark-Side of the Internet
GeekNightHyderabad
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
Alvaro Viebrantz
 
introduction on server.pptx
introduction on server.pptxintroduction on server.pptx
introduction on server.pptx
Mugabo4
 
«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET
Alessandro Giorgetti
 
server-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdfserver-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdf
KowsalyaJayakumar2
 

Similar to RoomWare server 2009 (20)

LoRaWAN in Depth
LoRaWAN in DepthLoRaWAN in Depth
LoRaWAN in Depth
 
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
Realtime Applications with Laravel - LaravelLive India Online Meetup Jun 2020
 
Pandora FMS: VMware Enterprise Plugin
Pandora FMS: VMware Enterprise PluginPandora FMS: VMware Enterprise Plugin
Pandora FMS: VMware Enterprise Plugin
 
Wifi direct p2p app
Wifi direct p2p appWifi direct p2p app
Wifi direct p2p app
 
Android media framework overview
Android media framework overviewAndroid media framework overview
Android media framework overview
 
Osiot13 IoT buildout
Osiot13 IoT buildoutOsiot13 IoT buildout
Osiot13 IoT buildout
 
(130119) #fitalk apt, cyber espionage threat
(130119) #fitalk   apt, cyber espionage threat(130119) #fitalk   apt, cyber espionage threat
(130119) #fitalk apt, cyber espionage threat
 
CIS14: Trusted Tokens: An Identity Game Changer
CIS14: Trusted Tokens: An Identity Game ChangerCIS14: Trusted Tokens: An Identity Game Changer
CIS14: Trusted Tokens: An Identity Game Changer
 
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]Building a Reliable Remote Communication Device with Java ME8 [CON2285]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
 
Attacking backup softwares
Attacking backup softwaresAttacking backup softwares
Attacking backup softwares
 
P2P for mobile devices
P2P for mobile devicesP2P for mobile devices
P2P for mobile devices
 
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
Meet Remaiten : Malware Builds Botnet on Linux based routers and potentially ...
 
Project meeting: SVMP - Secure Virtual Mobile Platform
Project meeting: SVMP - Secure Virtual Mobile PlatformProject meeting: SVMP - Secure Virtual Mobile Platform
Project meeting: SVMP - Secure Virtual Mobile Platform
 
Modern API's.pptx
Modern API's.pptxModern API's.pptx
Modern API's.pptx
 
Geek Night 15.0 - Touring the Dark-Side of the Internet
Geek Night 15.0 - Touring the Dark-Side of the InternetGeek Night 15.0 - Touring the Dark-Side of the Internet
Geek Night 15.0 - Touring the Dark-Side of the Internet
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
 
Basic Server PPT (THDC)
Basic Server PPT (THDC)Basic Server PPT (THDC)
Basic Server PPT (THDC)
 
introduction on server.pptx
introduction on server.pptxintroduction on server.pptx
introduction on server.pptx
 
«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET
 
server-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdfserver-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdf
 

More from Peter Kaptein

Tnw tiny funding_clean2
Tnw tiny funding_clean2Tnw tiny funding_clean2
Tnw tiny funding_clean2
Peter Kaptein
 
Roomware: Adobe User Group komt hard
Roomware: Adobe User Group komt hardRoomware: Adobe User Group komt hard
Roomware: Adobe User Group komt hard
Peter Kaptein
 
Room ware next_slideshare
Room ware next_slideshareRoom ware next_slideshare
Room ware next_slidesharePeter Kaptein
 
Roomware Server
Roomware ServerRoomware Server
Roomware Server
Peter Kaptein
 
Post Privacy Era
Post Privacy EraPost Privacy Era
Post Privacy Era
Peter Kaptein
 
Roomware and the Web of things
Roomware and the Web of thingsRoomware and the Web of things
Roomware and the Web of thingsPeter Kaptein
 
Roomware Main Concepts
Roomware Main ConceptsRoomware Main Concepts
Roomware Main ConceptsPeter Kaptein
 
The phone as a Remote Control
The phone as a Remote ControlThe phone as a Remote Control
The phone as a Remote Control
Peter Kaptein
 
RoomWare August Workshop Presentation
RoomWare August Workshop PresentationRoomWare August Workshop Presentation
RoomWare August Workshop Presentation
Peter Kaptein
 
Basic Any Where Reboot short
Basic Any Where Reboot shortBasic Any Where Reboot short
Basic Any Where Reboot shortPeter Kaptein
 
Basic RoomWare /AnyWhere at Reboot11
Basic RoomWare /AnyWhere at Reboot11Basic RoomWare /AnyWhere at Reboot11
Basic RoomWare /AnyWhere at Reboot11
Peter Kaptein
 

More from Peter Kaptein (11)

Tnw tiny funding_clean2
Tnw tiny funding_clean2Tnw tiny funding_clean2
Tnw tiny funding_clean2
 
Roomware: Adobe User Group komt hard
Roomware: Adobe User Group komt hardRoomware: Adobe User Group komt hard
Roomware: Adobe User Group komt hard
 
Room ware next_slideshare
Room ware next_slideshareRoom ware next_slideshare
Room ware next_slideshare
 
Roomware Server
Roomware ServerRoomware Server
Roomware Server
 
Post Privacy Era
Post Privacy EraPost Privacy Era
Post Privacy Era
 
Roomware and the Web of things
Roomware and the Web of thingsRoomware and the Web of things
Roomware and the Web of things
 
Roomware Main Concepts
Roomware Main ConceptsRoomware Main Concepts
Roomware Main Concepts
 
The phone as a Remote Control
The phone as a Remote ControlThe phone as a Remote Control
The phone as a Remote Control
 
RoomWare August Workshop Presentation
RoomWare August Workshop PresentationRoomWare August Workshop Presentation
RoomWare August Workshop Presentation
 
Basic Any Where Reboot short
Basic Any Where Reboot shortBasic Any Where Reboot short
Basic Any Where Reboot short
 
Basic RoomWare /AnyWhere at Reboot11
Basic RoomWare /AnyWhere at Reboot11Basic RoomWare /AnyWhere at Reboot11
Basic RoomWare /AnyWhere at Reboot11
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 

RoomWare server 2009

  • 1. RoomWare Server 2009 version
  • 2. Why change? • Easier to develop and plugin new “Devices” • More flexibility to connect anything to anything • No dependency on Java • Stable RoomWare Server core / new devices are developed outside the RoomWare core
  • 3. Offering freedom for all • Everything is message based • For the Server any RoomWare Device is like any other RoomWare Device • Any “Device” can address any other “Device” • Any “Device” can send messages to any other “Device” to state their events, their wishes and needs
  • 4. Using sockets • Sockets are “pipelines” over a TCP/IP connection • They are bi-directional and platform independent • They can be created in PhP, Java, Flash, C#, Python and so forth • They run locally without a Web Server • They have a proper event-model for pushing data from “A” to “B” and back • They will be used to connect anything to anything, using the RoomWare server as a switch
  • 5. Making this possible Device Device Device Device Device Device
  • 6. And this Local machine Device Device Other machines in the network Device Device The web Device Device
  • 7. And this Local machine Device Reader Other machines in the network Service App The web Site Site
  • 8. Using RoomWare Server Device Device Device RoomWare Device Server Device Device
  • 9. Sockets Device Device Socket Socket Device Socket RoomWare Socket Device Server Socket Socket Device Device
  • 10. And Mediators Device Device M M Device M RoomWare M Device Server M M Device Device
  • 11. Mediators Events, Requests, Responses Device M M Device • Mediators translate the data to something the other party can understand • Communication is between mediators
  • 12. Mediator • Connects a “Device” with the RoomWare server • Translates “Device” data to XML • Translate data from other sources to actions in the “Device” • Communicates to RW Server via Sockets • Data is standard XML • Communication is Bi-directional • Event or Request based • Device can be another RoomWare Server
  • 13. Devices Messages, instructions, data Device Device • Devices can be anything (sensors, web sites, desktop applications, electronics, readers) and communicate in any protocol • Very likely they do not understand each other without a Mediator
  • 14. Messages <request name="getbluetoothlist" context="" devicename="BT reader Room2"> <data> </data> <event name="newbluetoothdevice" context="request" devicename="BT reade </request> <data> </data> </event> • Each “Device” can send to- and recieve messages from any other devices • A message can be a Request, a Response or an Event • Each message can contain data and instructions
  • 15. Message types • <event: sent by device, to all listeners • <request: named request from one device to all listeners. Has a “context” • <response: named response from listener to a request, sent only to requester. Reflexts the context as given by request
  • 16. Message header • Headers: <event <request <response • Header data: • listener: name of request, response, event listener • context: local context - used to split responses / link them to a context • mediatorname: logical name of mediator in mediator via mediator definition XML • For response • destinationid: specific address of device to send response to • By RoomWare kernal - always added to message • sourceid: ID of device assigned by kernal • timeposted: moment the RoomWare kernal passed the request / response / event
  • 17. Inner Workings RoomWare Server Kernel The bridge between the mediator Plugin and the kernel Software that mediates between the Mediator RoomWare server and the “Device” Device Can be websites, readers, sensors, etc..
  • 18. Plugins Events, Requests, Responses Device M P K P M Device RoomWare Server M Mediator P Plugin K Kernel
  • 19. Plugins • A Plugin represents a Mediator and via the Mediator the RoomWare Device • When Mediators connect to the RoomWare Server they get their own Plugin in the RoomWare Server • Each Plugin recieves an unique number from the RoomWare server for internal communication • Each Plugin is subscribed to one or more lists to recieve Events and Requests
  • 20. Plugin “A” Event Event Data Event name Event list Event name Subscriber Plugin “B” Subscriber Plugin “D” Subscriber Plugin “N”
  • 21. Events • Are broadcasted to anyone who listens • Have no return address
  • 22. Plugin “A” Request Request Data + Plugin ID Plugin “A” Request name Request list Data Request name Subscriber Plugin “B” Response Subscriber Plugin “D” Response Subscriber Plugin “N” Response
  • 23. Request • Are broadcasted to anyone who listens • Have a return address • Recieve a Response with the requested data
  • 24. The Kernel Device Device M M P P Device M P K P P M Device P P M M Device Device RoomWare Server
  • 25. Kernel • The Kernel is “Communication Central” • It distributes the Messages to the right Plugins • It has no memory of what has happend before
  • 26. More details • The next slides show how the plugin is connected to the mediator and how communication takes place
  • 27. RoomWare Server Post Message handler Recieve Socket Plugin Mediator Socket Post Recieve Message Device Device Device handler handler driver
  • 28. Mediators and Plugins • The Mediator connects each “Device” to the RoomWare • Each Mediator consists of a Message Handler and a Socket connector • For each Mediator, the RoomWare server creates a Plugin to deal with the internal communication • The connection between a Mediator and a Plugin is done via a Socket • The Plugin sends and recieves Messages to and from the Kernel and to and from the Mediator • The Kernel acts like a mail man and handles the actual distribution of messages between Plugins
  • 29. RoomWare Server Events, Requests, Responses Plugin Plugin Post Receive Message Message handler handler Receive Post Socket Socket Kernel Communication Mediator Mediator Events, Requests, Responses “Device” “Device” Messages, instructions, data
  • 30. Flow 1. A “Device” is connected to a Mediator (software) 2. The Mediator creates a connection to the RoomWare server via a Socket 3. The RoomWare Server creates a Plugin for the Mediator 4. This Plugin is registered with a unique ID in the Kernel 5. Each Mediator passes an XML definition to the Plugin to state to which Events and Requests it subscibes to 6. When Mediator “A” sends a relevant message for Mediator “B” the Kernal will pass that message to the Plugin of Mediator “B” based on the subscription to different lists
  • 31. Making this possible Device Device Device Device Device Device