This is the seventh in a series of questions from SO4IT a Swedish IT consultancy company who are using GigaSpaces technology to build a SID based Order Management system for Communications Service Providers.
In this Q&A we explore more about the use of Characteristics and CharacteristicValues to describe ProductSpecifications and then we move on to Usage and then to Promotions.
In this Q&A we explore more about the use of Characteristics and CharacteristicValues to describe ProductSpecifications and then we move on to Usage and then to Promotions.
So4It: Can you please explain the
entities ProductSpecCharUse and ProdSpecCharValueUse and how they are used?
Andrew: A ProductSpecCharacteristic
defines a generic characteristic that can be used by any Product Spec. In my example there is a
ProductSpecCharacteristic called “Colour” and another called “Shape”
ProductSpecCharacteristic:
Colour
ProductSpecCharacteristic: Shape
The
ProductSpec for “Widget” uses “Colour” but not “Shape” while “WidgetInaBox”
uses both of these characteristics – (“Shape” is not relevant to “Widget”)
The
ProductSpecCharacteristic “Colour” has 4 valid values as defined by
ProductSpecCharValue:
Black, White, Red and Green
But
Green is only relevant to “WidgetinaBox” while the other colours are used by
both Widget and WidgetinaBox as shown by the data in ProductSpecCharValueProductSpecCharUse. Thus the value in
ProductSpecCharValueProductSpecCharUse tells which of the ProductSpecCharValues
apply to a given ProductSpec.
So4It: We
are now thinking about how to specify usage for a product. The
UsageSpecification specifies how usage should be applied to usage of for
example a product.
I have a lot of
questions on how the UsageSpecification and the ProductSpecification are
connected. When a customer chooses a
produce offering we send the order to the order manager and we provision the
necessary entities in the network. The
usage data starts coming in and we store it on the product and/or service it
refers to, but is this where the usage specification comes into the picture? We will create usage entries using the usage
specification and in that case how do we know what usage specification to use
for a certain product/service the usage is referring to?
Andrew: Usage is a relatively new part
of the SID and probably not as rigorously defined as the other areas. Generally in telecoms companies the usage
information in provided as UDRs (CDRs (Call Detail Records) for voice usage and
IPDRs for data usage (internet Data Records)).
The process of applying the correct charges to these usage records is
performed in a set of specialised processes known as Mediation, Guiding and
Rating. These processes do not
work on data as shown in the SID as they have to process millions and millions
of records a minute and the SID’s highly generic and normalised structures
would prevent that throughput from happening.
To quote the SID documentation on usage:
“Normally, when a usage event occurs, it is stored in a network element,
for instance in a switch, router, gateway or in an application system. Resources (applications, network and
computing capabilities) usually store usage data in proprietary formats that
are not understood by external systems such as billing systems. Depending on the polling strategy, a
mediation engine connects to resources, collects usage data and formats them
into a format understood by the billing system.
Outputs of a mediation engine are Usage Detail Records (UDRs). Examples of UDRs are call Data Records (CDRs
– used to describe usage details of voice call services and Internet Protocol
Detail Records (IPDRS – used to describe usage details of Internet Protocol
based services). In ...... we will use the Usage abstract business entity to describe any
resource- service- or product-based usage that the external system can read
update and process.”
The
diagram below shows how the UsageSpecification is “theoretically” linked to
ProductSpecification:
I say
“theoretically” because the SIDs view of the process does not reflect what goes
on in reality. In reality the Rating
engine processes the UDRs based on Service Usage assigning a cost for the usage of the given service (making a
phone call, receiving a phone call) depending on the time of day, day of week,
duration of usage, location of usage, source and destination of usage etc etc.
When the Billing
system receives the rated UDRs it then looks at the CustomerAccount and Product
(subscriptions) and adjusts the costs applied by rating depending on the
discounts and allowances provided by the ProductPrice.
So the mapping of
Usage to Product is the last step in the process, not the first in the “real
world” because of the volume of data involved and historically it wasn’t
feasible to do the full Rating and allocating the allowances and discounts in
near-real time.
The UsageSpec is a
SID specific way of linking the Product Usage to the Service and Resource
Usages and it does not reflect the real-world.
I think you should
follow the industry standard of mapping the usage to the Service used (Rating)
and then apply the allowances and discounts for usage (Billing).
So4It:
We are thinking
about how to assign cost to a product. As
I understand it the ProductOfferingPrice should specify all the costs related
to the product for the customer. In that case the product offering has implicit
knowledge of what product specification exists in it.
For example if the
product offering has "1 modem", "1 mobile telephony" etc
the product offering price might be "A one-time fee off 40€ for the
modem", "A reoccurring fee of 12€ / hour for the mobile
telephony" etc. But shouldn’t we
link this to the product specification somehow?
As I understand it
from the SID is that the ProductSpecificationCost is the cost for creating
and maintaining the product and not the price for the end customer. Which is logical since if we set it on the
product specification it will be the same for every product offering using it.
Andrew:
You are quite right
– there should be some way of linking the price for usage to the usage element
of a ProductSpec. In your definition of
the product you have decided to put the usage in a separate ProductSpec; this
is perfectly acceptable and 100% what SID allows. My personal preference is to align usage to
ServiceUsage as it is the services that are getting used not the product. SID has been very vague here; I guess because
there are so many different ways of defining the price and so many different
organisations have done it differently that the definition had to be
vague. This however allows you to
implement pricing any way you like.
So4It:
In the SID the
SalesChannels is relate in a many-to-many relationship with the product
offering; is that correct? Somehow I
thought it would be on the ProductCatalogProductOffering entity that is the
many-to-many class that relates product catalogue to product offering?
Can you please
elaborate a bit on the sales channel and marking parts of the SID. We will have “invite” campaigns where the
inviter earns credits when he/she gets us new customers. So I am thinking we will have a sales channel
that has a marketing campaign we call InviteMarketingCampaign. In some cases we also have existing customers
that gets credits from sending invites to friends. We need to record these invites and I was
thinking about storing them on the customer account. So do you have any input on how to implement
invites in the SID?
Andrew: Product Catalogue is another new
area that is evolving; there are working groups meeting every week to discuss
it and I guess it will change in the next release. There is definitely some sort of linkage
between the Catalogue and the SalesChannel, but it hasn’t been defined
yet. The Sale&Marketing Domain has
been very under developed for a long time and the relationship between
ProductOffering and SalesChannel was defined back in the early days of SID
before any work was done on ProductCatalogue.
I think you are correct and you can model a linkage between
ProductCatalogue to SalesChannel rather than from ProductOffering to
SalesChannel.
The Invites are
“promotions” and as such are in fact ProductOfferings. When you give someone an Invite you are
provisioning a Product on their CustomerAccount if they are an existing
Customer or will provision it when they become a Customer if they are not yet a
customer.
This promotional
Product will add Allowances or Discounts that will be applied during billing.
The modelling of
the Campaign area of SID is not good – I did some work in this area a few years
ago but it was not submitted to the TMForum, and so is not part of SID.
No comments:
Post a Comment