Open APIs

 View Only
Expand all | Collapse all

Product modeling: CFS relations to ProductSpecification and RFS - API representation

  • 1.  Product modeling: CFS relations to ProductSpecification and RFS - API representation

    TM Forum Member
    Posted 29 days ago

    Hello.

    I would like to clarify my understanding of defining a new product and accessing it via TMF APIs.

    Here is my view:

    Terms

    CFS is „the center" of product modelling and can connect all domains: product, service, resources - accessible via corresponding catalog API.

    CFS Specification

    -              Definition of characteristics and possible values of CFS (IG1233 Product and Service modelling)

    -              Is used through a ProductSpecification (GB922 Resource)

    ProductSpecification

    -              Restricts CFS Specification at characteristic values level (IG1233)

    ProductOffering

                 Applies or overrides the characteristics in the ProductSpecification

           Determines the price

    Summary image


    Sequence of product modeling (IG1233)

    1.        Service Catalog manager

    a.        CFS definition - main characteristics and possible values = CFS specification

    b.        Association to the different technical solutions available = RFS specifications definition: composite/atomic pattern or selecting rules for selection depended RFS specifications

    2.        Product Catalog manager

    a.        Product specifications based on know-how (restrictions of available CFS specifications)

    b.        Association with at least one Atomic Product Offerings

    API structure

    Product Catalog

    IG1233, Figure 4.10. Mail Products and Product Offerings

    ProductSpecification

    JSON snippet

    {
      "id": "9881",
      "href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productSpecification/9881",
      "name": "Standard Mail Product",
      "serviceSpecification": [
        {
          "id": "22",
          "href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v5/serviceSpecification/22",
          "name": "Mail Solution (Legacy)",
          "@referredType": "ServiceSpecification",
          "@type": "ServiceSpecificationRef"
        }
      ],
      "productSpecCharacteristic": [
        {
          "name": "Mail address",
          "valueType": "string",
          "configurable": true,
          "minCardinality": 1,
          "maxCardinality": 1
        },
        {
          "name": "Domain",
          "valueType": "string",
          "configurable": false,
          "minCardinality": 1,
          "maxCardinality": 1,
          "@type": "CharacteristicSpecification",
          "characteristicValueSpecification": [
            {
              "valueType": "orange.fr",
              "value": "Black",
              "@type": "StringCharacteristicValueSpecification"
            }
          ]
        }
      ],
      "@type": "ProductSpecification"
    }

    ProductOffering

    {
      "id": "7655",
      "href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productOffering/7655",
      "name": "Mail Offer",
      "productSpecification": {
        "id": "9881",
        "href": "https://mycsp.com:8080/tmfapi/productCatalogManagement/v5/productSpecification/9881",
        "version": "1.1",
        "name": "Standard Mail Product",
        "@referredType": "ProductSpecification",
        "@type": "ProductSpecificationRef"
      },
      "@type": "ProductOffering"
    }

    Service Catalog

    IG1233, Figure 4.7. Mail CFS - Available Technical Solutions

    ServiceSpecification

    JSON snippet (hierarchy simplified)

    [
      {
        "id": "22",
        "href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/22",
        "name": "Mail Solution (Legacy)",
        "isBundle": true,
        "serviceSpecRelationship": [
          {
            "relationshipType": "bundled",
            "id": "5563",
            "href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/5563",
            "name": "Mail Storage Platform",
            "@referredType": "ResourceFacingServiceSpecification",
            "@type": "ServiceSpecRelationship"
          }
        ],
        "@schemaLocation": "https://mycsp.com:8080/tmfapi/schema/Service/ResourceFacingServiceSpecification.schema.json",
        "@baseType": "ServiceSpecification"
      },
      {
        "id": "5563",
        "href": "https://mycsp.com:8080/tmfapi/serviceCatalogManagement/v4/serviceSpecification/5563",
        "name": "Mail Storage Platform",
        "isBundle": false,
        "resourceSpecRelationship": [
          {
            "id": "556788",
            "href": "https://mycsp.com:8080/tmfapi/resourceCatalog/v5/resourceSpecification/556788",
            "name": "Mail Storage Server",
            "relationshipType": "dependency",
            "@type": "ResourceSpecificationRelationship"
          }
        ],
        "specCharacteristic": [
          {
            "name": "operatingSystem",
            "valueType": "string",
            "configurable": true,
            "minCardinality": 0,
            "maxCardinality": 1,
            "isUnique": true,
            "characteristicValueSpecification": [
              {
                "valueType": "string",
                "isDefault": false,
                "value": "Windows"
              },
              {
                "valueType": "string",
                "isDefault": true,
                "value": "Unix"
              }
            ],
            "@type": "SpecCharacteristic"
          }
        ],
        "@type": "ResourceFacingServiceSpecification",
        "@baseType": "ServiceSpecification"
      }
    ]

    Resource Catalog

    IG1233, Figure 4.7. Mail CFS - Available Technical Solutions

    ResourceSpecification

    JSON snippet

    {
      "id": "556788",
      "href": "https://mycsp.com:8080/tmf/resourceCatalogManagement",
      "name": "Mail Storage Server",
      "@type": "ResourceSpecification",
      "isBundle": false,
      "resourceSpecCharacteristic": [
        {
          "name": "HW id",
          "valueType": "string",
          "configurable": true,
          "minCardinality": 1,
          "maxCardinality": 1,
          "isUnique": true,
          "@type": "CharacteristicSpecification",
          "characteristicValueSpecification": [
            {
              "value": "evv44wdv",
              "@type": "StringCharacteristicValueSpecification"
            },
            {
              "value": "cdw42fg",
              "@type": "StringCharacteristicValueSpecification"
            }
          ]
        }
      ]
    }

    Do I understand the terms correctly?

    Is the logic in the APIs correct?



    ------------------------------
    Jan Brnka
    T-Mobile Czech & Slovak Telekom, a.s.
    ------------------------------


  • 2.  RE: Product modeling: CFS relations to ProductSpecification and RFS - API representation

    TM Forum Member
    Posted 28 days ago

    hi,

    I believe your questions have been already answered in previous community discussions.

    I would recommend to read:

    • The Product Modelling PlayBook it wasn't updated for a few years so version are wrong and some guide could be missing.)
    • IG1228 has use cases that include detailed example of product model using the PSR decomposition

    I use this diagram to train people on the TMF PSR Catalogue (it's inspired from a similar diagram from GB922). Only works if accompanied with examples.




    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Tele AS
    ------------------------------