I'd like to state my view on the meaning of the word "bundle" in the context of the Open API (others are free to disagree, of course). And to relate this to containment.
Bundling
is a business/commercial term, and as such applies to Product Offerings (PO) only. A bundling product offering has (by definition) references to other product offerings that are being bundled; the reference includes cardinality rules (and in an upcoming enhancement also selection groups such as choose any 4 out of 7). The referenced product offerings may also be sellable stand-alone, they may themselves be bundled, etc.
In the world of product specifications (PS), we can have structure as well, so that (for example) a Broadband product specification could include PSs for Access, Security Features, and perhaps more. Here also these included PSs may be used in multiple parent PSs, so (for example) a Voice Mail PS could be included in PSs for mobile voice and VoIP. The difference from PO is that there are no cardinality rules or options, the PS structure will result in fixed Product structure at instantiation in the inventory.
Containment applies to the inventory, when the structure of Products is instantiated from the PO and PS trees, the Product tree will reflect true containment (logically at least), meaning (for example), that a child Product cannot "survive" without its parent Product in the tree.
Hope this makes sense.
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
------------------------------
Original Message:
Sent: Jul 02, 2022 10:14
From: Igor Dubrovin
Subject: TMF 637
Thank you Koen for providing your perspective. At least I can see where it is coming from.
All the best.
------------------------------
Igor Dubrovin
Bell Canada
Original Message:
Sent: Jul 02, 2022 05:41
From: Koen Peeters
Subject: TMF 637
Hi,
As with any standard, OpenAPI also contain a bit of negotiated agreements accomodating different views.
One could argue that containment is nothing more than a "bundles" relationship. That was how the previous version of the standard worked.
Apparently not everyone was happy with that approach and some modifications were made to reflect that. Depending on your approach you do not have to support both concepts. That is an choice left to the implementation.
I would never use anything else than "bundles" but others will obviously make other choices.
Regards
------------------------------
Koen Peeters
OryxGateway
Original Message:
Sent: Jul 01, 2022 15:50
From: Igor Dubrovin
Subject: TMF 637
Thank you Jonathan. That indeed helps.
I understand that all this is driven by a catalog. And we are in the middle of designing it.
So, I assume a "bundle" is not a "containment" relationship and I have to use (in catalog) ProductRelationship to model it.
The containment relationship is used when two products are tied together always and have to be instantiated as such.
And "ref" I can use when I wanted to show that one product is part of the bundle (kind of revers "bundled" relationship).
Even though one can argue that a "bundle" is a sort of containment, but unidirectional. A products inside the bundle can be instantiated independently of the bundle, while "real" containment mean two products must exist together.
Is my understand correct?
Thanks again.
------------------------------
Igor Dubrovin
Bell Canada
Original Message:
Sent: Jul 01, 2022 09:13
From: Jonathan Goldberg
Subject: TMF 637
Hi
The ProductRelationship class is used to express a non-containment connection between two inventory products. For example to express the fact that a TV product is dependent on a Broadband product.
The ProductRef(OrValue) is used to express a containment connection between two inventory products. For example, to express the fact that Security Features product is contained within a Broadband product. The RefOrValue is used if you want to embed a full product structure within its parent, while Ref is used as a foreign key without embedding the full structure.
Both of these are completely driven by the product catalog structure (TMF620) of ProductOffering and ProductSpecification.
Hope it helps
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
Original Message:
Sent: Jun 30, 2022 15:27
From: Igor Dubrovin
Subject: TMF 637
Please help me to understand differences between the following (in context of TMF 637)
- ProductRef
- ProductRefOrValue
- ProductRelationship
All three exist in the API. In particular, I'm interested in expressing "bundle" and related products. I'd assume I can define a "bundle" and use ProductRelationship with relationshipType="bundled" to list all products inside the "bundle". Technically I can use the same pattern to model any other relationship. Why do we need ProductRef and ProductRefOrValue?
In addition, how do I model reverse relationship from a "product" to the "bundle"?
Thank you in advance,
Igor
------------------------------
Igor Dubrovin
Bell Canada
------------------------------