Architecture UPnP/DLNA
Voici la séparation définition vs runtime :
classDiagram
%% Definition Layer
class Device
class Service
class Action
class StateVariable
%% Runtime Layer
class Server
class DeviceInstance
class ServiceInstance
class StateVariableInstance
class ActionHandler
%% Associations Definition Layer
Device "1" --> "1..*" Service
Device "0..*" --> "0..*" Device
Service "0..*" --> "0..*" Action
Service "1..*" --> "1..*" StateVariable
%% Associations Runtime Layer
Server "1" --> "1..*" DeviceInstance
DeviceInstance "1" --> "1..*" ServiceInstance
DeviceInstance "0..*" --> "0..*" DeviceInstance
ServiceInstance "1" --> "1..*" StateVariableInstance
ServiceInstance "0..*" --> "0..*" ActionHandler
%% Instantiation links
DeviceInstance ..> Device : instantiates
ServiceInstance ..> Service : instantiates
StateVariableInstance ..> StateVariable : instantiates
ActionHandler ..> Action : handles
%% Styling
class Device,Service,Action,StateVariable fill:#f9f,stroke:#333,stroke-width:1px
class Server,DeviceInstance,ServiceInstance,StateVariableInstance,ActionHandler fill:#9f9,stroke:#333,stroke-width:1px