So here we are. 8 weeks ago I started to take you on a journey through the wild and crazy world of systems integration.
During this time I've walked you through how to go from having nothing more than an idea to a full-fledged system integration project plan. In this post I am going to close out the systems integration series.
Summary of lesson #8
In this post I am going to show you how to develop a sequence of operations.
Here's the deal. By the end of this post you will know:
- What a sequence of operations is
- How to create a sequence of operations
- How to use a sequence of operations to execute your systems integration project
Lesson #8: Developing a sequence of operations
Developing a sequence of operations will help you or your integrator to effectively execute a systems integration project. Without this document it is very likely that your project won't work. I know, I know.
It seems like I've said that about every post in this series. Well folks, I only say that, because it is true!
Look, I'm walking you through the mine field but it's up to you if you want to stay by my side or run ahead and play with your projects life.
What a sequence of operations is
So what is a sequence of operations. Chances are, if you are working on a systems integration project you are familiar with a sequence of operations. But, I'm going to assume for a second that you aren't familiar with a sequence of operations.
A sequence of operations is like a use case on steroids. Whereas a use case walks you through the how the sequence of operations is the how, the what, the when and even more.
For example, I'm going to describe a use case where the main success scenario is the user being able to use credentials from another BAS login into a system, hint, hint this may look familiar to a use case I described in an earlier post.
Use Case Text
The user will be able to use login credentials from an existing BAS to log into the new graphical user interface.
Sequence of Operations Text
A user will enter their credentials from the existing BAS to log into the new graphical user interface. Upon entering their credentials the graphical user interface will perform an MD5 hash algorithm against the users password. The graphical user interface will then communicate to the back-end database and will perform a select query where the username and hashed password match. If a matching data set can be located then the user will be granted access to the graphical user interface.
Do you see the difference? The sequence of operations is the end result of information from the physical and logical integration map, the data model and the use case.
How to create a sequence of operations
Creating a sequence of operations is actually quite easy once you get the hang of it. I used to suck at writing sequence of operations and then one day it all just clicked for me.
This happened because I came up with a step-by-step process that empowered me to take what was in my head and put it on paper.
In this section, I am going to teach you that exact 7 step process.
I am going to walk you through the steps using the example of tying in a lighting system.
Step 1: Gather the main actions from the use case
For this step what you want to do, is to gather the main actions from the use case that you created. You will then take these main actions and expand upon them in order to create a sequence of operations.
A use case may say, the lighting system will be integrated to the building automation system. The building automation system will turn the lights on when the building is occupied.
The main actions for this use case are:
- The lighting system turning on
- The building automation system going occupied
- The building automation system commanding the lighting system
Step 2: Identify the systems from your integration map
Next you want to go and take the systems that you identified as part of your integration map. These systems will then expand upon the sequence of operations you started in step one.
From the integration map I will be able to identify that the building automation system and the lighting system are connected via BACnet/IP. I will also know that the building automation system will be commanding the lighting system have priority level 10.
I will also be able to identify, that the building automation system syncs its timeclock with the building's local time-server.
Step 3: Clarify any settings and/or timings
Here I will decide that I want the lighting system to turn on within 30 seconds of the building automation system switching to occupied mode.
Step 4: Chunk out your actions and build out a flow map
I will then take each one of these actions and build a flow map. This flow map will visually represent how and in what order the different actions will take place.
Step 5: Capture the wording for the actions
Once I'm sure that the actions I want the integration to execute are in the right order. I will break them out and begin to add details around the wording.
At first this will look like:
- The buildings time-server sends a time synchronization message to the building automation system
- Building automation system is occupied
- Lighting system is commanded to occupied
- Lights are commanded on by the lighting system
Step 6: Add your settings and timings
Now I will take those four bullets that I created in step five and I will add details around each bullet.
- The buildings time-server will send a time synchronization message to the building automation system every 15 minutes (adj). The time synchronization message will be sent using the NTP protocol to the building automation server located in the data closet.
- The building automation system will have a set schedule that will command the building to occupied. This schedule will be from 7AM CST to 5pm CST (adj).
- The building automation system will command the lighting enable object to on (adj) within 30 seconds (adj) of the building automation system occupancy signal switching to the occupied state. This command will be sent via the BACnet/IP protocol from the BAS server to the lighting server at priority level 10.
- Upon receiving the on command from the BAS, the lighting system will command all of the buildings interior lights to on.
Step 7: Consolidate into a sequence
Now for the easy part. All I need to do is simply combine the bullets together and I will have my sequence of operations.
The buildings time-server will send a time synchronization message to the building automation system every 15 minutes (adj). The time synchronization message will be sent using the NTP protocol to the building automation server located in the data closet.The building automation system will have a set schedule that will command the building to occupied. This schedule will be from 7AM CST to 5pm CST (adj). The building automation system will command the lighting enable object to on (adj) within 30 seconds (adj) of the building automation system occupancy signal switching to the occupied state. This command will be sent via the BACnet/IP protocol from the BAS server to the lighting server at priority level 10. Upon receiving the on command from the BAS, the lighting system will command all of the buildings interior lights to on.
How to use a sequence of operations to execute your systems integration project
Once you have the sequence written what do you do? How do you take your sequence and execute a project.
Well, everyone has a different way of executing their systems integration projects. If you have a way that you like and you have followed the steps up to this point then I encourage you to use your method.
However, if you want a proven process that has helped me to execute some crazy complex projects, then check out my 5 step process below:
Step 1: Build out the physical architecture
In this first step you will want to install the systems that you identified as part of the to be architecture.
Once you have the systems installed you will then want to make sure that any software associated with the systems set up including, drivers, databases, and dependencies.
Using our lighting example, you would want to install the lighting and building automation servers, controllers, and end devices.
Step 2: Build out the logical architecture
Next you will want to go and set up logical architecture for the integration project. As part of this process you will want to configure any network, database, API, and other logical pieces of the system.
Continuing our lighting example, you would want to set up any IP addresses, device instances, VLANs, databases, and system names.
Step 3: Add any programming
Next you will want to go and develop any programming that is required in order to execute the systems integration sequence. This would include data adapters, interlocks, dependency logic, and any control logic.
For our lighting solution, you would want to build out, the interlock logic along with the prioritization scheme for the integration points.
Step 4: Insert settings and timers
Once all of the code is written you will want to put in the initial settings and timers for the sequence. This would include any schedules, set points, on or off delays, etc.
You will want to set the timers and schedules for the lighting integration.
Step 5: Test the integration
Finally, you will want to test the integration to verify that it works.
In order to test the lighting integration you would command the building automation system from occupied to unoccupied and verify that the lights changed state.
You would also want to change the master time-server and verify that the building automation system adjusts accordingly.
Finally you would want to make sure that the lighting system cannot override the building automation system.
Conclusion
There you have it folks that is the end of the system integration series.
In this series you learned how to successfully design and implement a systems integration project.
I'm curious what your thoughts these are and what else you would like to know about systems integration. Let me know in the comments section below.