White Seagull
Management Process Timeline within SISL

 

SISL Engine could be used effectively to manage the processes operation’s ‘Time Line’. Parent as well as Child processes operation’s time line could be manipulated and in fact controlled from within each process separately and/or with a separate and possibly a dedicated Watchdog timer process or even multiple Watchdogs with each controlling a segment of the overall management process!

 

 
144HeaderImageHeaderImage1HeaderImage2HeaderImage3
Exercising TimeLine controls is mainly used for either one of the following: management process Initiation, Staging, Synchronization, or Termination of the whole or a subset of the Parent or Child management processes. 

The TimeLine based controls depends on either the host server’s system time directly or on the time differentials between two consecutive polls or events within the overall management process. See the Time and TimeLine related SOSL Engine command functions under Time Handling commands.

 
Process Initiation

Process time based initiation is when a process is to be started only at a certain time of the day where the time value is derived from the host server. The main process module checks the time and performs a MODULE-CALL function accordingly.

The typical logical flow of the Process Initiation is represented as follows:
 

MODULE ();
DESCRIPTION “”;
BEGIN

    …
    POLL-FREQ
    {
        …
        DEFINE ;

        GETDATE (“” );

       

        IF ()
        THEN
            MODULE-CALL (Module_Parameters);
            …

        ENDIF;
        …

        WAIT (
        …

    };

END

 
Process Staging

Process time based staging is when a process is to be started only at a certain time of the day where the time value is derived from the host server and then runs for a pre-specified period of time. The main process module checks the time and performs a MODULE-CALL function accordingly; it either passes the time element to the child module or leaves it up to the child to test the time and terminate itself.

The typical logical flow of the Process Staging is represented as follows:

 
MODULE ();
DESCRIPTION “”;
BEGIN

    POLL-FREQ
    {
        …

        GETDATE (“” );

       

        IF
        THEN
            MODULE-CALL (Module+Time_Parameters);
            …
        ENDIF;
        …

        WAIT (

        …

    };
END


Another logical flow is as follows:


MODULE ();
DESCRIPTION “”;
BEGIN

    …
    POLL-FREQ
    {
        …

        GetSysTime ();

       

        MODULE-CALL (Module_Parameters: SystemTime1);

    };
END

 
Where;


MODULE (SystemTime1 INT);
DESCRIPTION “”;
BEGIN

    …

    GetSysTime ();

   

    IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >
    THEN

        ;
        …

    ENDIF;
END


In both scenarios above; the Child management process runs only for the administrator specified period of time, namely the difference value between the SystemTime2 and the systemTime1 variables.  


Process Synchronization

Process synchronization spans multiple parent as well as child processes in terms of continuously re-aligning the Polling and the Processing components of each management process with the other management processes running on the same host server. This persistent and engineered alignment is intended to better allocate and distribute host server resources among ALL participating management processes or among a selected subset of the overall management processes. 

This collaborative resource alignment and synchronization helps to strengthen the overall management solution structure. The key to achieving this goal is by realizing the start and stop points along the time line of each of the process’s Polling and Processing components and manipulating the start point with each cycle/run of the management processes involved. This is further tightened by continuously measuring and reacting to any large variations in the durations of each of the components per running management script and comparing this to the overall network traffic state. 

Inter-Processes TimeLine Synchronizations could be a very complex and tedious task to setup and to execute. The complexity increases as the number of processes increase and could eventually lead to a state of corrosion in creating a functioning and viable Synchronization. Hence; care should be taken when planning this task by identifying only those processes that contain process components persistent and extensive enough to warrant Synchronization with another process’s components.

The task of setting up Inter-Processes TimeLine Synchronization involves the following steps:

1)     SystemTime Database variable implantations.
2)     Polling and Processing components Duration calculations.

The following flow shows the typical flow of such Processes:

MODULE ();
DESCRIPTION “”;
BEGIN

    …
    POLL-FREQ
    {
        …
        SystemTime1 = GetSysTime ();

        PollingStartTime = GetObjectTime (SystemTime1);


        ###########################################
        -Polling Component-
        ###########################################


        POLL ();

        SystemTime2 = GetSysTime ();

        PollingEndTime = GetObjectTime (SystemTime2);

        ProcessingStartTime = PollingEndTime;

        PollingDuration = SystemTime2 - SystemTime1;


        ###########################################
        -Processing Component-   
        ###########################################


        ;

        SystemTime3 = GetSysTime ();

        ProcessingEndTime = GetObjectTime (SystemTime3);

        ProcessingDuration = SystemTime3 – SystemTime2;

    };
END

Where SystemTime1, SystemTime2, and SystemTime3 should be defined as Database variables and where the same SystemTime Database variable implantations could be done for all participating processes in the processes TimeLine Synchronization. 

MODULE ();
DESCRIPTION “”;
BEGIN
    …
    MODULE-CALL (Module_Parameters: SystemTime1);

    POLL-FREQ
    {

        GETDATE (“” );

        SystemTime;

        IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >
        THEN
            ;
            …

        ENDIF;

    };
END


MODULE ();
DESCRIPTION “”;
BEGIN

    …
    POLL-FREQ
    {

        …
        IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >
        THEN

        ###########################################
                        -Polling Component-
        ###########################################

                        POLL ();
            …

        ENDIF;
 
        ###########################################
        -Polling Component-
        ###########################################

        POLL ();

        SystemTime2 = GetSysTime ();

        PollingEndTime = GetObjectTime (SystemTime2);

        ProcessingStartTime = PollingEndTime;

        PollingDuration = SystemTime2 - SystemTime1;

        ###########################################
        -Processing Component-        
        ###########################################

        ;

        SystemTime3 = GetSysTime ();

        ProcessingEndTime = GetObjectTime (SystemTime3);

        ProcessingDuration = SystemTime3 – SystemTime2;

    }
}
 
 
© White Seagull Technology. All rights reserved