In this opportunity I want to share with you a tool that we are developing in order to improve the software development process on BizTalk Server. First I want to let you think about some topics that are very often when you develop EAI applications using BizTalk Server . To put in context the problem that we are facing I'll ask you some questions::
And the last question,but not less important is: How many time do you spend making tasks that are not related with your business logic?
In response to all of this questions we are developing a tool based on DSM in order to specify all system requirements and relationships between components in a top-down system design approach. In this approach the abstract models give rise to more concrete models until reach the most essential artifacts of the system, like: code, scripts, configuration files, management packs, and so on. By the other hand also the model checking rules are generated, in order to verify your system each time that you build it or deploy it.
Let’s see how we do that:
First at all you have to specify your system at a high level of abstraction where you can use a set of predesigned components that appear in the Visual Studio toolbox as the following picture shows.
Fig 1) System Model View
The most important component in the tool box is the Process, that represent an abstract functional unit that will give rise low level models that will be defined later by the software architect. In the process component you can specify functional events and measures, depending of the business requirements to be implemented . A process can be connected with other process, with Integration Components (IC) and the last one with Application Servers (AS) (we will talk later about the IC and AS) in order to have a high level of abstraction model.
The following picture shows the process representation.
Fig 2) Process, Events and Measures model representation
Events are notifications that the process will throw at run time and can be of different severities “Warning”, “Information”, “Error”. The event are alerts or notifications about a system condition and can be used by the system monitoring tool to execute some actions depending on the event itself.
Fig 3) Event properties
Measures are based on OS performance counters and can be used to store certain values related with technical or business functionality during a period of time, EJ: items processed per second, item count, and so on. Measures and Events defined on the model will be used by the artifacts generators to generate a portion of the system management pack.
Fig 4) Measures properties
The other elements of your tool box with a high relevance to the model are the Integration Components (IC) ,as I mention before.The IC represent the communication type that the process will use to interact with other systems. These can be connected with the Application Server's components in order to define where the services provider will be hosted. For example a Web Service will be hosted by a Windows Server host or a File will be stored in a Unix system. Here are a partial list of Integration Components that you can use to model your system: File, HTTP, Web Service, Data Base, FTP, POP3 , SMTP, Message Queue, SWIFT, and more.
The following picture shows a complete system model in order to give you an idea about how to design your system in a high level of abstraction.
Fig 5 ) High level system design
In the next post I’ll continue describing the functionality of the low level models to give you a picture on how our tool works and show you the main features that response all questions made at the beginning in this blog.