14 August 2008

Specification and Instance - an example

One of the readers of this blog got in touch with me and asked me to give him advice on how to represent MSISDN’s and IMEIs with the SID.

To paraphrase his question:

The data model I am working on is related to the Customer MSISDN and IMEI.

You have stated that those are Logical Resources, is it still true when they no longer are in the available company inventory but belong to a customer?

If so, what are the appropriate SID entities I should use to specify the MSISDN, IMEI and where should I put the IDs (i.e. the phone number or IMEI number) and titles (i.e. the names “MSISDN” and “IMEI” ?

My answer to him was as follows:

MSISDN and IMEI are examples of Logical Resource Specifications. All GSM mobile phone numbers conform to the specification "MSISDN" in terms of the number layout and length (see Wikipedia's definition of MSISDN) . There is also a specification for IMEI that defines (specifies) its layout and length (see Wikipedia's definition of IMEI)

A particular MSISDN e.g. "447767811033" is an instance of the MSISDN Logical Resource Specification and is a Logical Resource.

Individual MSISDNs and IMEIs are always Logical Resources - they are still of interest to the Telco when they are no longer the Telco's 'assets' because they have been sold to a customer and have been linked to the “subscription” through the Installed Resource concept.

However if the customer churns (leaves the Telco) and "ports out" the MSISDN then while the IMEI and MSISDN remain logical resources, they are no longer of interest to the Telco and the information on the particular instances of the MSISDN and IMEI can be removed from the Telco's OSS databases.

For example: the Logical Resource 447767811033 which is an instance of the Logical Resource specification "MSISDN" currently belongs to me (it used to belong to Vodafone) and is an Installed Logical Resource in my subscription to O2's Offering "O2 Bill Monthly, 30 minutes free".

So far as Vodafone is concerned the MSISDN is outside their scope of interest and almost certainly no longer can be found anywhere in Vodafone's databases except perhaps in their data warehouse, or as the "B number" on a CDR, because I churned from Vodafone many years ago and took my number with me.

That particular MSISDN is now of interest to O2 (my current mobile telecoms service provider) and will appear in its OSS's databases as a Logical Resource.

Don't get too hung up on the word "Resource" and its English language meaning - it just means an thing or object in the context of the SID (or more precisely exactly what SID defines it to mean). I have often said that I would almost prefer that every concept in the SID had meaningless names like 'XYZQPV' or 'BZHPKD' so that no one would imply a meaning to the concept because of its name (but the concepts would be difficult to remember!)

So finally, here is how I think you should represent MSISDN and IMEI...
  • "MSISDN" should be the LogicalResourceSpecAtomic's ID
  • "IMEI" should be another LogicalResouceSpecAtomic's ID
  • "447767811033" should be stored in the ID of a LogicalDevice which is related to the LogicalResourceSpecAtomic whose LogicalResourceSpecAtomic's ID = "MSISDN"
  • "0776 781 1033" could be stored in that LogicalDevice's FriendlyName

5 comments:

Anonymous said...

Well said.

Frederick Ferguson said...

What is your view of the applicability of SID for business intelligence?

Andrew McFadyen said...

The SID model is ideal for designing a source-system independent logical data model for a Data Warehouse. It solves a lot of complex modelling problems in the areas of Product definition and Parties and Roles. However there is an issue that the way the SID represents products may not be what the Business Intelligence users are used to (however this is a common issue with any data warehouse model that does not exactly mimic the information in the source system.

However it must be recognised that the SID model is not an Inmon style model, so a lot of work will need to implement a performant data warehouse or the use of such technology as Teradata that can cope with a fully normalised physical data model and a series of data marts that can present the information into star-schemas for such tools as Business Objects / SAS etc.

Anonymous said...

Genial dispatch and this enter helped me alot in my college assignement. Thank you on your information.

JohnK said...

Great blog Andrew!
I have a question about similar resources. Say, end user has a phone number, that is an instance of MSISDN LogicalResourceSpec. Then a hunt group also needs a phone number, which is represented as MSISDN too. But should it be an instance of different LogicalResourceSpec or the same one?