22 October 2010

Resources and Service – Part 2


In part 1 of this post I discussed the lifecycle of a Resource. Now I want to discuss the difference between Services and Resources and help you understand the beauty and elegance of the SID model in describing these things.

As I stated in Part 1 Services delivered by LogicalResources. If you are familiar with UML modelling this is very easy to understand, the LogicalResouceSpec is the “component” in a UML component diagram. The balls (or cups) on sticks that are drawn on the box representing the component in UML represent the Services that the component offers.

So, for example, if you have a low level component, such as a ActiveX component to handle, say Customer data and it supports two interfaces, GetCustomer() and SetCustomer() then it would look something like the picture at the start of this entry.

The two interfaces services this component offers other components in an application. These other components are themselves LogicalResourcesSpecifications (if they are on the UML diagram), so the services are ResourceFacingServicesSpecifications (RFS Specs).

When all the components are implemented they can be put together to support one or more Use Case, for example these RFSs could support a Use Case called “Process Customer Order”, or “Update Customer Details”. As I’ve argued before in this blog (I think), a Use Case is often a specification of a Customer Facing Service (CFS), so a UML Use Case (and/or Sequence Diagram) is a CustomerFacingServiceSpec.

When you code and build the component then you create an instance of the LogicalResourceSpec, a LogicalResource offering services, ResourceFacingServices.

“Hey Presto!” as the magicians say when they pull a rabbit out of a hat, I hope you can see how Resources, RFSs and CFSs all fit together... A CustomerFacingServiceSpec is a Use Case and/or Sequence. A ResourceFacingServiceSpec is the interface provided by LogicalResourceSpec, a component on a UML Component Diagram.

It was suggested in a Blog on the TMForum Community pages, by no less than John Reilly, that it might be a good idea to get rid of ResourceFacingServices at some time in the future. To quote John’s Blog:
The discussion often then leads to the difference between the two types (subclasses) of Service, Customer Facing Service (CFS) and Resource Facing Service (RFS). Some of us think that if the Service Configuration Aggregate Business Entity, for which there are two long-standing but unimplemented contributions, was developed, then RFS would meet its demise. This would then negate the need for a CFS since it would be a solitary subclass of Service, simplifying the SID quite a bit.
The reason for this thought is that those of us who work in the provisioning world believe there is a lot that must be added to RFS to support the configuration and activation of Services. Service Configuration would fit satisfy these requirements.
To be fair to John, and I did challenge him on this issue, he was intentionally being contentious.

However I can follow John’s argument: how a Resource behaves can be defined by a configuration that is applied to a Resource to tell it how to deliver a particular (Customer Facing) Service. For example, the HLR can be configured not to allow a given Product (subscription) to use the CFS ‘Make Voice Call’, but I would argue that the CFS itself has been disabled. There certainly will be a step in the sequence diagram for “Make Voice Call” where the status of this service is checked by the HLR, but surely this is just a RFS?

Anyway. For the time being RFSs and CFSs are safe and I hope they remain so, particularly if more people understand how they work!

As ever, comments, ideas, criticisms and calls for help or assistance are always welcome. I am trying to write this blog a little more frequently and external inspiration is always welcome.

Resources and Services - Part 1

Recent postings on the TMForum Community pages about the lifecycle of a modem a discussion on the difference between a logical resource and a service made me think it was time for me to describe to the wider world my thoughts and interpretation of the SID in these areas.

First of all, what is a Resource?

For physical resources it is pretty obvious because you can see them, hold them in your hand, put them in your pocket, or as I always say in my training course, put a ribbon round it if it is too big to hold. The really big resources are usually the Telecom’s Service Provider’s own equipment, be it a base station, the DP, or the switch, but of course PhysicalResources include things like the phone, the modem, the mobile, the SIM card, the memory card and the copper pair in the DP that belong to a Customer’s Product (subscription)1 Additionally a physical resource will always be located somewhere, at an address, a geographic location, or perhaps in a local location (e.g. a room in a building).


A logical resource is therefore something that cannot be touched. Generally LogicalResources are numbers, like the phone number, MSISDN, IMSI, IMEI, PIN, PUK etc. One realisation I made a few years ago is that anything that is a number is a LogicalResource, from π (which is an instance of the LogicalResouceSpecification of “Irrational Number”) through to a binary string. Really large binary strings are often programs, or perhaps a JPG picture or a MP3 music clip. So programs, images, and music files are all LogicalResources too. This realisation is useful in many ways; not least in understanding how a LogicalResource can have a location. For example, Firefox. The ResouceSpecifcation for Firefox belongs to Mozilla. I have an instance installed on my p.c. ( a PhysicalResouce), so a LogicalResource can installed in a PhysicalResource. But consider an MSISDN it is installed in the HLR (a logical resource itself) which in turn is installed in the Switch. So a LogicalResource must either be installed in (located in) another LogicalResource or a PhysicalResource and the PhysicalResource has a location. My p.c. is on my desk in my study in my apartment in Ankara.


Another thing about Resources is that they have lifecycles outside a Product (subscription) and this is where the question about the lifecycle of a modem came in. The TMForum Community member posted a question about a home internet product (specification) that could deliver a free modem, or a modem that is rented to the Customer or be used by a Customer who already owned a modem (as different ProductOfferings) The complex validation rules about what happened if a Customer subscribes to the ProductOffering that delivers the free modem and then cancels the subscription only to come back later to take out the ProductOffering that could use the Customer’s own modem.

Consider it from the modem’s point of view. It was born (manufactured) in a factory in Taiwan or PRC and shipped through a number of warehouses and Suppliers until it ended up in a box on a shelf in a Supplier’s shop together with a CD-ROM that had its driver software, a cable to connect the modem to the telephone point, another cable to connect the modem to a p.c., an instruction manual and a piece of paper with an activation code on it. All of these are Resources, and each will have had its own life to get to this point. The box all these Resources are in represents (as near as damn it) the ProductOffering. The ProductOffering also includes a number of Services which are (usually) the reason the Customer purchases the ProductOffering. These services are not to be found in the box, directly, but ultimately are delivered by software, either running on the Customer’s computer, in the modem, or in the Service Provider’s network... but I am getting distracted, I was talking about the modem’s life.

One day someone (a Customer) buys the box and takes it home (the new location for the modem). He follows the instructions and plugs in the modem correctly to the wall socket and his p.c., loads the software and activates the service through entering the activation code and establishing a username and password (again logical resources) with the Service Provider to set up the Product (subscription). Each of these Resources have a ResourceRoleProductInvolvement (a type of ProductInvolvementRole) that link and show the role of the Resource in the Product.


The Customer uses the modem and the Services provided by his Product (subscription) for a year or so and then cancels the Product (subscription) for some reason. He can no longer use the Services provided to him by the Product (internet access, email etc) and he gives up the username and password 2. However the modem and cables, CD-ROM and even the software on his p.c. are still all at his house, but not associated with an active Product. This seems to scare a lot of people. A suggestion was that the Modem should be associated with a bundled Product so that when the Internet Product was cancelled the relationship between the Customer, the Resource and the Service Provider could be maintained, just in case the Customer ever came back. You could do that, but if you do that then you should also do that for things like Phone Numbers, MSISDNs and anything else the Customer can purchase from the Service Provider and carry away.


In my mind the Resource still exists; it hasn’t disappeared just because the Product has been cancelled. Just like the Person playing the role of Customer still exists even after the Product (subscription) is cancelled and the Party is no longer playing that role. It is no co-incidence that Parties play PartyRoles that in turn play PartyRoleProductInvolvement (roles) and Resources play ResourceRoleProductInvolvement (I think SID has got the name wrong it should be ResourceProductInvolvementRole).


Once this is accepted then the whole problem that the TMForum poster was struggling with disappears.


And now to the difference between a Service and a Resource. In Telecoms at least, a Service is provided by a Resource, and as I have explained earlier, the Services are nowadays delivered by software, or LogicalResources (old-fashioned Strowger switches delivered the service of connecting a call mechanically). OK there are service delivered by the telco that may involve Human Resources, like an installation service, but this is not directly modelled in SID (I wonder why?) but is considered something covered by the likes of a WorkOrder or ServiceOrder.

I will cover how Services differ from Resources in Part 2 of this post.

Footnotes:

1. I put subscription in brackets because in SID the subscription is referred to by the word Product. Product is an instance of a ProductSpecification
2. The username and password seem to be, interestingly, Resources that don’t have a lifecycle outside the Product.

04 October 2010

TMForum membership

I have finally got around to becoming a member of the TMForum.

I had considered joining for quite some time, but the membership fee was a sufficient deterrent to prevent action and to allow inertia to reign. However the desire to have direct access to the resources, such as the SID that the TMForum offer to its members and the wish to tap into a community who are users of the SID and to see if anyone would be interested to hear what I have to say and, hopefully to pay for it finally tipped the balance.

So far, I must say, the experience has been very pleasant, apart from having my inbox flooded by interesting emails from the TMForum Community. I am sure I will refine my interest group membership in the near future to get around this. The biggest pleasure has been the direct contact I have had with the great and the good of TMForum.

First of all I got a phone call from my TMForum account manager. He phoned me to find out about me, my reasons for joining the TMForum and to tell me how to get the most out of my membership. As a result of that call I got an email from John Reilly, who in the SID world is a giant and a guru, inviting me to have a phone conversation with him.

I had the phone call with John last week. He was charming and provided me with useful information on how to become fully involved in the SID in particular and Frameworx in general. John then suggested I might consider putting this blog on the TMForum website!

This certainly has given me pause for thought. I have a quite lot to say about the SID and its use in 'the wild' but could I find something new and interesting to say on a regular basis?

So that's where you, my readers, come in. It would help me if anyone reading this blog to suggest SID related topics or problems that they would like me to explain or explore in the way I have for things like Customer Facing Service, Product and Resource.

I look forward to any comments and I will let you know if I start blogging on the TMForum website.

24 June 2010

SID V9 and V9.5

Sorry about the long silence. I am very busy working away on a major NGOSS based OSS/BSS refresh project in Ankara Turkey as the SID Data Architect.

I attended (listened to) the TMForum’s teleconference yesterday (23rd June 2010) where John Wilmes and John Reilly talked about the recently released Frameworx and SID Version 9 and the upcoming SID v9.5.

The key topics of the Conference Call were
  1. Business Services
  2. SID V9 changes
  3. SID V9.5 proposed changes
Business Services have been introduced to show how Level 4 processes in eTOM use SID Level 1 ABEs, something that has been missing from NGOSS/Frameworx from the beginning. I think this will help in SOA Service developments, but I reserve my judgement as SID Level 1 ABEs are very high level concepts and may be too high level to be useful.

It wasn’t clear to me during the conference whether the Business Services were in SID, as a new set of classes, or were new external modelling concepts that just used SID ABEs. I asked a question along those lines and John Reilly answered that they were external to SID – at least that’s what I think he said.

SID V9 changes are predominantly brought about by aligning with and consuming the concepts from MTOSI (TMF608). Again I have to withhold my judgement on this until I’ve had a look at the SID V9 in detail, but it does worry me. Previous alignments had done odd things to the SID like making Software Applications a form of Service, when logically to me (and no pun intended) they are Logical Resources. The other change is that SID V9 does not use Rational Rose anymore; it now is supported by Rational Software Modeller. Quite what that means to those of us, including me, who use neither (I use Sparx Enterprise Architect) is not yet clear.


For me the most interesting discussions were around what is in SID V9.5 which is due to be released in Q4 2010. Several concepts new to SID, but not to me are being introduced for the first time including: “User” – presumably the user of an Application making up the Enterprise and “Subscriber” the user of a Product and its “Customer” Facing Services. I always call this concept “End User” as the name “Subscriber” is “So last century”. I wonder if they are now going to rename Customer Facing Services to “Subscriber Facing Services”?


Other useful, and long needed elements are a Customer Payment ABE and a more detailed Product Pricing structure which is supposed to be a lot easier to use than the current Policy structures.


Given the introduction of the Product Pricing and Business Service I had to have a dig at John Reilly and asked my second question about the horrible overly complex Policy and Contract ABEs asking if they would be removed from SID. John R. unfortunately said that they wouldn’t, and that Policy was being extended to cover a new Enterprise Domain ABE called Security brought in from the USA DoD, by all accounts.


I don’t know whether you have looked at the Contract ABE in SID v8. It isn’t what you would expect. The Contract ABE models the contracts between services on an ESB bus rather than the “Business Contract” between the Telco and the Customer which is still mired in the Business Interaction and Policy ABEs.


Quite why SID models Service Contracts a puzzle to me. Surely that is just too recursive to be useful to anyone. The SID only has real use, apart from being an academic exercise when it is used as the structure or “language” for messages being passed between Services in a SOA based ESB. So why would you want to pass messages over the ESB about the ESB? Especially when industry standard messaging tools like Oracle’s SOA Suite and Tibco already do this automatically for you. It is a bit like modelling the entities Table, Column, Index etc. in an Oracle database – these are already present and don’t require modelling.

Anyway, that’s a very brief overview of what was said. I’ll include a link to the PDF of the seminar material when the TMF put it on their website.