Now, before we dive into the resource management of each product, let's talk about Plan Management.
In HMC 4.x, we brought in the concept of Organization Plan and User Plan. We don't have such concept in HMC 3.5. We only have what we called the Mailbox Plan in HMC 3.5 and part of what is included in the HMC 4.x's Organization Plan is included in the Organization creation process. The concept of Plan Management can be confusing because there is Organization Plan and User Plan and etc. I remember when I first started with HMC; it took me a while to fully understand it. So, it is only fair that I spend some time to talk about that first and then as I explained, hopefully things will become clearer and that you guys don't need to go through the same learning process as I did.
What's a Plan?
A Plan or sometimes referred to as a Service Plan, is really an aggregation of service features. It is a mechanism combining key aspects of users and organizations in the HMC environment. For example, specific service features such as mailbox size, mail protocols, Microsoft Outlook Web Access feature segmentation, and disk quotas.
The best way to explain this perhaps is through examples. Let's do that. Assuming we are a hosting company and there is an organization, say Company A. This organization wants to use our hosting services and Company A has the following requirements,
- Need E-mail service
- Need SharePoint service
- Need OCS service
- 10 of the 50 users in Company A are VIP and they should have 2GB mailbox.
- The rest of the 40 should only have 500MB mailbox.
- Everyone in the company will use SharePoint service
- Only the VIP will use OCS
As the hosting company, we need a mechanism to properly assign, store and track the appropriate services we allocate or provide to Company A as well as his users. We also want to give the administrator of the Company A to have the flexibility changing his users' features. So, this is what we need,
The Solution is...
Track Service Provided to Organization
Since we have so many companies in the hosting environment, we need to have a way to store or track which company has been enabled for what service, in this case, Exchange, SharePoint and OCS.
We may also want to track the resources we are selling to each Organization. For example, say Company A buys 40GB of mailbox space and 20GB of SharePoint space and etc.
Track Service Provided to User
Since in Company A we have 2 different set of Email users (one with 500MB and one with 2GB) and we have one set of users that need OCS and the rest does not need it, we need a way to be able to enable the set of service assigned to those users and way to disable them for those who do not need them.
* In HMC 3.5, we do not have the concept of Organization Plan, instead we expect everyone to subscribe to e-mail service as the creation of the organization can only be done when someone subscribe to the e-mail service. There is no SharePoint Organization Plan or Live Communication Organization Plan in HMC 3.5. Hence, you can't really enable or disable individual service. In HMC 4.x, services provided to organization can be enabled or disabled separately. It will make it easier to add additional services to the environment such as CRM.
** This obviously limitation here is that the change of features based on collection of features or plan. For example, for the above example, if one of the users in Company A needs to have a 5GB mailbox and then another user that has 2GB mailbox must have IMAP4 access (assuming the rest must remain the same), the recommended way to do it is to create another 2 user plans instead of providing a way to just change the those needed feature (it is possible to modify the user directly and change the feature, it is also possible to override the feature during the mailbox creation. However, it is important to note that HMC does not track individual feature).
Here's how it works...
With the above, I hope you understand why we need to have Organization Plan and User Plan. Let's look at the relationship and how it pans out for Company A,
- Creation of Organization Plan, we need to create 3 Organization Plans, one for Exchange, one for SharePoint and one for OCS,
- Exchange Organization Plan, here we can also specify if this is dynamic quota, the specific mailbox or public folder databases to be used or specific version of client.
- SharePoint Organization Plan, here we can also specify the number of sites or sub sites available to be created for this organization.
- OCS Organization Plan there isn't much required to be specifying on this. However, it can be easily customized to say have a plan to limit based on the number of users*.
- Subscribing to the Organization Plan. Now that we have created the Organization plan, the organization needs to subscribe to those plans. In another word, to enable the organization for those services.
- Next, creation of User Plan, we need to create 3 User Plan if it is not already there. Most hosters will just sell their service based on a few standardized plans. This sort of make billing and provisioning easier too.
- Email User Plan 1 - We need to create a User Plan for Exchange that will have 2 GB mailbox size.
- Email User Plan 2 - We need to create the 2nd User Plan for Exchange that will only allow 500MB mailbox size.
- OCS User Plan 1 - We need to create a User Plan that have the default OCS features (since it is not specified in this case).
- Associating User Plan to Organization (Add Available Plan). Like the Organization Plan subscription, we need to make sure that the Organization is made aware that it can use these User Plans.
- Create or enabling user for specific service with the available plan. Associating the user plan to the organization really only doing the linkage and user still do not have access to the service. Remember in part #2, we discussed about the user creation in Active Directory? Well, you have to do that first and then you can come and enable the user for the specific service (messaging or OCS) and assign that user with the appropriate plan.
Note: I think it is important to note that different companies or organization can share the same organization plan.
Now, there are also a few things I should mention here, firstly, we didn't create SharePoint User Plan. The reason is because there is no User Plan concept in SharePoint service. The management of the user access to the SharePoint site is through SharePoint itself most of the time rather than through HMC. Secondly, User Plan can be shared by many organizations and thirdly, when you change a feature in the User Plan, it does not change the existing users.
* While it is possible to customize what being put in the plan but obviously when you do that, it changes the schema slightly and that it may require you to use customized namespace and procedure. The features in the above plans are all out of the box features.
So, that's a quick overview of how it works. Now, let's look at what's in the Resource Management database, yeah?
What's being stored in the database?
I will talk about the OCS and SharePoint in the later blogs but for now, to make things simple, let me talk about the Plan and subscription information stored in the databases from the Exchange perspective only.
- PlanManager database
- All the Organization Plans and User Plans are stored in the same place. From the database standpoint, there is really no difference between Organization Plans or User Plans. They are being differentiated by the application (which is what defined in the namespaces and procedures).
- If you open up the SQL Server Management Studio, you will find the following tables,
- Services - this table defines the services available, such as Exchange, AD, OCS and etc.
- ServicePlanTypes - this table defines all the Plan Types, whether it is an Exchange Organization Plan, OCS User Plan and etc. It also refers to the Services table so that we will know what type of plan that is.
- ServicePlans - when you create an organization plan or user plan, it will create an entry here, mapping it to the appropriate PlanTypeCode.
- Features - this table defines all features available.
- ServicePlanFeatures - this table ties what features in which Service Plans.
- ServiceDependencies - this table specifies the dependencies, for example, before you can subscribe to the Exchange Mobility service, the Organization should also subscribe to the Exchange service first.
- CustomerPlans - then you have this table that records the plans that the organizations have subscribed to.
So far the above is pretty straightforward. Creation of plans only involves the PlanManager database. Subscription of an organization to the Exchange plan however will involve the ResourceManagement database. Subscription of an Organization to SharePoint or OCS will not involve the ResourceManagement database. I will this discuss those in the later blogs.
- ResourceManager database
- When we subscribe an Organization to an Exchange Organization Plan, we can specify if this Organization is using Dynamic Quota or Fixed Quota (I will discuss this in later blogs). In HMC 4.x, you cannot specify which mailbox store to assign the organization to as it is based on a specific algorithm, however you can run another procedure to specifically allocate a mailbox store for that Organization and deallocate what has been allocated automatically earlier. Hence, we need to keep track of that. I will touch of this later but for now, you just need to know that it will create entries in the Resource Management the moment you subscribe an Organization to an Exchange Plan. When I explained this later, everything will become clearer.
- SharePoint and OCS do not use this database.
So, there you go, this is a quick walk through of the Plan Management.