[Nml-wg] atributes of Services
Roman Łapacz
romradz at man.poznan.pl
Mon Oct 1 09:45:21 EDT 2012
W dniu 2012-10-01 13:26, Jeroen van der Ham pisze:
> I'm for option 2 as well. It only adds a single new relationship. It also makes it very clear what you would get if you would request something.
Agree. Simple and consistent.
Roman
>
> Jeroen.
>
>
> On 28 Sep 2012, at 17:22, Freek Dijkstra <freek.dijkstra at sara.nl> wrote:
>
>> Hi,
>>
>> I'm reviewing the NML document a few times in detail, adding notes what
>> examples are useful.
>>
>> One thing I can't seem to do is distinguish between the Ports that can
>> be configured by an AdaptationService and the Ports are are already
>> configured.
>>
>> The providesPort relation seem to aim the ports that are already
>> configured, akin to providesLink for the SwitchingService.
>>
>>
>> Current situation
>> =================
>>
>> Here are the current attributes and relations for SwitchingService:
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> SwitchingService
>> - associate (between) which (ports a) link CAN be created:
>> SwitchingService --(hasOutboundPort)--> Port|PortGroup
>> SwitchingService --(hasInboundPort)--> Port|PortGroup
>> - associate which links are already configured:
>> SwitchingService --(providesLink)--> Link|LinkGroup
>>
>> Here are the current attributes and relations for AdaptationService:
>>
>> - associate with static component:
>> Port --(hasService)--> AdaptationService
>> - associate which (client layer) ports CAN be created:
>> AdaptationService --adaptationfunction--> URI (*)
>> N/A
>> - associate which ports are already configured:
>> AdaptationService --(providesPort)--> Port|PortGroup
>>
>> (* The adaptationfunction attribute can be used to determine client
>> layer encoding, but not the available labels)
>>
>>
>> Here are three (3) proposals to rectify this omission and subsequently
>> align the SwitchingService and AdaptationService definitions:
>>
>>
>> Proposal 1: encoding and hasLabelGroup
>> ======================================
>>
>> For SwitchingService (same as current situation):
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> SwitchingService
>> - associate (between) which (ports a) link CAN be created:
>> SwitchingService --(hasOutboundPort)--> Port|PortGroup
>> SwitchingService --(hasInboundPort)--> Port|PortGroup
>> - associate which links are already configured:
>> SwitchingService --(providesLink)--> Link|LinkGroup
>>
>> For AdaptationService (add attribute and relation):
>>
>> - associate with static component:
>> Port --(hasService)--> AdaptationService
>> - associate which (client layer) ports CAN be created:
>> AdaptationService --encoding--> URI
>> AdaptationService --hasLabelGroup--> LabelGroup
>> - associate which ports are already configured:
>> AdaptationService --(providesPort)--> Port|PortGroup
>>
>>
>> Proposal 2: canProvidePort
>> ==========================
>>
>> For SwitchingService (same as current situation):
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> SwitchingService
>> - associate (between) which (ports a) link CAN be created:
>> SwitchingService --(hasOutboundPort)--> Port|PortGroup
>> SwitchingService --(hasInboundPort)--> Port|PortGroup
>> - associate which links are already configured:
>> SwitchingService --(providesLink)--> Link|LinkGroup
>>
>> For AdaptationService (add canProve):
>>
>> - associate with static component:
>> Port --(hasService)--> AdaptationService
>> - associate which (client layer) ports CAN be created:
>> AdaptationService --canProvidePort--> Port|PortGroup
>> - associate which ports are already configured:
>> AdaptationService --(providesPort)--> Port|PortGroup
>>
>>
>> Proposal 2: canProvidePort
>> ==========================
>>
>> For SwitchingService (same as current situation):
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> SwitchingService
>> - associate (between) which (ports a) link CAN be created:
>> SwitchingService --(hasOutboundPort)--> Port|PortGroup
>> SwitchingService --(hasInboundPort)--> Port|PortGroup
>> - associate which links are already configured:
>> SwitchingService --(providesLink)--> Link|LinkGroup
>>
>> For AdaptationService (add canProvidePort):
>>
>> - associate with static component:
>> Port --(hasService)--> AdaptationService
>> - associate which (client layer) ports CAN be created:
>> AdaptationService --canProvidePort--> Port|PortGroup
>> - associate which ports are already configured:
>> AdaptationService --(providesPort)--> Port|PortGroup
>>
>>
>> Proposal 3: Behave like a SwitchingService
>> ==========================================
>>
>> For SwitchingService (has[In|Out]boundPort is replaced with
>> canConnect[Sink|Source]Port):
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> SwitchingService
>> - associate (between) which (ports a) link CAN be created:
>> SwitchingService --(canConnectSinkPort)--> Port|PortGroup
>> SwitchingService --(canConnectSourcePort)--> Port|PortGroup
>> - associate which links are already configured:
>> SwitchingService --(providesLink)--> Link|LinkGroup
>>
>> For AdaptationService (it now is provided by a Node or Topology):
>>
>> - associate with static component:
>> Node|Topology --(hasService)--> AdaptationService
>> AdaptationService --(hasServerSinkPort)--> Port
>> AdaptationService --(hasServerSourcePort)--> Port
>> - associate which client AND server layer ports CAN be created:
>> AdaptationService --(canConnectClientSinkPort)--> Port|PortGroup
>> AdaptationService --(canConnectClientSourcePort)--> Port|PortGroup
>> - associate which ports are already configured:
>> AdaptationService --(providesClientSinkPort)--> Port|PortGroup
>> AdaptationService --(providesClientSourcePort)--> Port|PortGroup
>>
>> The advantage of the later configuration is that is allows bidirectional
>> adaptations services (no more distinction between AdaptationService and
>> DeAdaptationService).
>>
>> With only minor modifications it is also possible to support inverse
>> multiplexing adaptation. I did not add this, because I'm not a big fan
>> (it adds more complexity, which can be provided with the more simple
>> experimental isParallelCompoundLink relation.)
>>
>> My opinion
>> ==========
>>
>> I would say proposal #2 is cleanest.
>>
>> What do you think?
>>
>> Freek
>> _______________________________________________
>> nml-wg mailing list
>> nml-wg at ogf.org
>> https://www.ogf.org/mailman/listinfo/nml-wg
> _______________________________________________
> nml-wg mailing list
> nml-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nml-wg
More information about the nml-wg
mailing list