2. 1
Summary
ICC is an application providing inter application communications. In this
document we call these applications clients. Clients send some packets of data to
each other. These packets called telegrams. Telegrams consist of two major parts,
header and body. Header is the fixed part of telegram which contains source client,
destination client, send time, telegram type, body size and this kind of fields. The
second part of telegram is body. Body contains some fields that sender and receiver
systems have made an agreement on it. The nature of this communication is not
synchronized. This means the result of any request will not return immediately. The
response and the requests are separated telegrams. For example sender
application sends the request telegram to receiver application and gets the
response in another telegram from receiver. This application has the capability to
connect different applications with different frameworks and different technologies.
Because of plug-in based architecture ICC can plug to both ends of communication
and connect to both client applications directly. ICC can communicate with
applications in the way they can or in the way they want. Detailed description will
presented below.
Software characteristics
ICC is a software for inter system communications.
This software works based on Telegram transmissions.
Telegram is an information packet, which sender and receiver systems make an
agreement on the structure of it and this structure will be used in ICC.
Each telegram consists of a header and abody.
In Header some information such as sender system, receiver system, send time,
and telegram id are stored.
Body contains some fields that systems specifythe structure of that and
according to the agreement can be consist of an unlimited sequence of
different information items.
3. 2
Structure of a field can be simple or as an array of items or even an array of
arrays.
Telegram definitions feed to ICC as an XML file and dynamic codes process this
file so that after the final setup telegram definitions can be simply changed.
All of communications in ICC are Asynchron. It means that if system1 send its
telegram to system2 and this telegram has a response another telegram will be
sent from system2 to system1.
ICC is a plugin based Application therefor has a high level of flexibility face to
different systems and different methods and technologies of communication.
Since ICC considered as a multi thread application, if any of client systems act
slowly in communications, other systems will not affected.
ICC developed using Microsoft technologies but some embedded features of it
make it possible to communicate with applications of other technologies such
as Java and Oracle.
4. 3
Software general structure
Software capabilities
Ability to communicate using any standard methods such as web service,
database and TCP/IP.
Communicate using uncommon and specific ways with legacy systems which
their communication abilities are too limited.
Ability to transform the technology of sending and receiving telegrams between
different systems. Different clients can communicate with different
technologies.
SMC
Level 2 system
PMS
L3 - Production
systemSystem
PCS
An Automation System
PCS
Adapter
PMS
Adapter
SMC
Adapter
ICC Core
ICC
...
Telegram
Definitions
...
Processes Central Queue
5. 4
Ability to transform format of telegram between different client systems such
that each system can have its specific format of data. for example a system can
use binary telegrams and another one can have string telegrams with an specific
delimiter.
Queuing telegrams so that if the destination system is not ready to receive now,
telegram will be sent to it later.
No telegram will be lost in any situation. All of connections and relationships are
designed to keep telegrams if engaged systems are down.
Capability to add client systems to communications even after final setup.
Proper Libraries to Save History of all telegrams and proper Consoles to see the
history of transferred or dropped telegrams and doing relevant actions on them.
Provide tools for sorting and filtering on history.
Ability to resending dropped telegrams.
Save clear reasons for dropped telegrams.
Ability to show ICC events in System Tray in windows.
Show online status of every connected system.