Wednesday 9 March 2011

Basics of Control M Architecture

As a system administrator or scheduler you will frequently hear about Control M and will frequently come accross issues associated with it.In this post I am gonna tell about the basics of Control M architecture and will try to give a fair idea about what control M is all about.It's basically aimed for new bees to help them generate an overview about what the tool is used for , what's its utility and what is the architecture behind it.
So let's start first by defining what is control M

What is Control M ?
Control M is nothing but a scheduler.Its a software produced by BMC corporation.It can be said as a scheduling plus monitoring tool.For those of you who don't know what scheduler is and what is its function,scheduler can be described as a software or program which runs your jobs(basically means scripts to be run ) automatically at a specified time.Like for those who have a idea of UNIX crontab file is nothing but a OS level scheduler where we mention date and time for the required job or script to run and the OS runs that scripts for us on appropriate time.But the handling capacity of crontab is not much and we cant have complex conditioning involved in scheduling a job with crontab so in more complex environments we need some automation tool like Control M which automatically schedules jobs based on their scheduling criteria of date,time,priority,pre conditions and resource availability.To know in detail what is scheduling click here.So now we know what is control M

Schematic view of Control M suite



                                    Schematic View of Controm M Architecture

Description of Control M Product Suite

So now lets have a brief description of each component of ControlM Suite.

Essentially ControlM suite consists of three basic components namely
a)Control M Enterprise Manager Server(EM server)
b)Control M Server
c)Control M Agent(Agent) 
So lets talk about each one.

a) Control M Enterprise Manager Server(EM Server):
This part is primarily responsible for the GUI part.Its always installed on midrange server.EM server has got 4 major components.The prime functionality of this EM server is to display you the output in GUI format of information regarding the processing of jobs.It is to this component that monitoring teams or those of us who use client of Control M Desktop connect to.So all the information that we want to see regarding alerts,jobs condition,job processing are done by this part.Mind it this doesn't process jobs.It only shows or display you the processed output jobs are executed at controlM server level only.Also a EM server can connect to many controlM server but not vice versa.The second utility that this part has is that it is used to connect two or more different ControlM servers together.Two different controlM servers cannot directly talk to each other,they need a ControlM EM server in between them to communicate.The EM server has 4 major components:

Database                                                    Configuration Agent
ControlM Web Server                                 Naming Services(NS)

Besides these 4 major components EM server has got 7 different add on components which can be turned off or on as per the requirement.
1)GUI Server also called as GSR
2)Global Alerts Server(GAS)
3)Configuration Manager Server(CMS)
4)Forecast Server(FS)
5)Batch Impact Manager(BIM)
6)Global Conditions Server(GCS)
7)Gateway
Thee functionality of each component is self explanatory by the name of the component,however detailed study of them I will cover in next post.So as for now we will stick to 4 major components

a.1)EM Server Database:-->EM server has got its own database which is in real time sync with the database of controlM server.Database can be primarily divided into two parts: one having Permanent Job Definitions and one having Active Job Definitions.Though I am still going to cover controlM server database but its better here only to differentiate between the two.
The database of controlM server is also divided into same two category like that of controlM EM server,however the difference in architectural level comes by the fact that in the Active job part of database contains jobs from different control M servers unlike control M server level where only jobs of that controlM server exists in it's database.The jobs are stored in tables form in database which are stored as NETs at database level in EM server database.

a.2)Configuration Agent(CA)--->It's is primarily used for routing information between database and EM server.Also information regarding the states of 7 add on components mentioned above is stored here that whether we want them to be up or down.The information between database and GUI server goes through CA.

a.3)Naming Service(NS)----->It's based on server-client model.It is based on CORBA.It's nothing but a repostiory used to connect desktop GUI client to controlM EM GUI server by resolving the name of the EM server.If the NS are down we wont be to connect to EM server because of the inability of the client machine to resolve the name of client and get address of server to connect to.  

a.4)ControlM Web Server---->Introduced in version 6.4.It primarily frees us from installing many client machines.No need to install seprate client,install web server it will generate a URL for all clients to access EM and database via it.Advantage comes when we need tp patch our server and clients.Single patching of web server saves us from trouble of installing patch of different version on different machines.                          

So this covers the basic architecture of control M EM server.Moving to ControlM server

b)ControlM Server
Next is heart of the system controlM server.Its primarily divided into
Configuration Agent                          ControlM server                    Database

b.1)Configuration Agent:---->This is responsible for connecting ControlM server to ControlM EM server.It basically connects to CMS part of EM server so that one can control the controlM server from controlM EM server via GUI mode,so this is basically used for the connectivity purpose between ControlM EM server and ControlM server

b.2)ControlM Server---->This is the main central point of whole system.It is the part which fetched job from the database checks their scheduling criteria that their time,conditions etc are matched and then schedule the jobs and sends them to agent for execution while keeping track of the status of job on agent continuously.

b.3)Database--->The database is obviously needed here to store the permanent definitions of the jobs.The architectural difference between database at EM level and controlM server level I have already discussed above,rest all is same for both.

Now we come to final component 

c)ControlM Agent
This is where the jobs actually executes when scheduled by controlM server.The server checks the agent regularly and communicate via fixed port number.Often we here about term "agentless" it means there is only one agent machine connected to controlM server and all other agents connect to that machine to get in touch with server.This helps when agent needs to be upgrades however single point of failure also comes into picture.Otherwise nothing much to discuss here in architecture level.

So that wrap's it up.I have tried to give the basic understanding og ControlM at architecture level,some of the points worth mentioning here that,Each of the component ControlM EM server,controlM server,Agent are platform independent and there mutual communication is also platform independent,one can on UNIX other on Windows.SecondlyTCP/IP is the protocol used by these components to exchange information within themselves however CORBA is used to talk between ControlM Desktop GUI client and EM Server.
The process level differentiation involves advance things so not tried to touch those things here.

No comments:

Post a Comment