System Integration Services

System integration is a complex discipline; from an I.T. perspective, integration means making various systems work with each other.

From a theoretical point of view, the challenge in system integration is to make the system understand the data from the other systems.
It is almost always possible to transform one data format into another, but that does not complete the integration work. The real-world challenge is to make the translation robust. A fragile integration layer often causes more problems than it solves.

Think about your office fax: it should be possible to integrate e-mail and fax. This would allow the users to send documents to the fax's e-mail address. The faxing system would then fax the document.
If you could control the input to the fax mailbox, this system would work. The problem is that users will send documents in unsupported formats, corrupt or virus-infected files. The integration solution will grow and grow to cover all these situations. In the end users will print the document from their computer and walk to the fax machine, because it is easier.
The fragile integration layer forced the users to stop using the integrated system.

The integration layer must therefore include comprehensive health monitoring code. This health monitoring code should record all failures with enough information for the programmers to locate the error. Most system integrators will tell you that they'll include logging infrastructure to record any problems. Unfortunately, logging can rarely provide enough information to identify the error.

Batch processing

Some system integration processes run in batches. A batch process is a periodical process that has no user interface; it simply processes the input to output. Error recording, recovery and restart framework is extremely important in the batch process execution. Imagine a process that reads a file with 1,000,000 rows and produces another file with 1,000,000 rows. The process's execution environment must record every error the batch process encounters. Additionally, it must allow the batch process to restart if it encountered a critical error, but it must restart the batch process after the failing record.
Even though such infrastructure is difficult to implement, large parts of it can be turned into a batch execution framework.

Error detection and recovery

Whether the integration layer runs interactively or in a batch, we must implement accurate error reporting. In Java, this means recording the first point of failure. Practical implementation of this concept uses compile-time or load-time weaving of per control flow aspects -- a concept we have successfully implemented and deployed into two of our most important systems.

See some examples of our system integration work - our work.

What we Do

  • Website & System Development and Consultancy
  • Enterprise Architecture
  • Java and the Spring Framework Development
  • Agile Web Development using Ruby and Rails, Ajax and jQuery

Sub-millisecond Java By Jan Machacek on 19th November 2008

Spring User Group November 5 Minutes By Jan Machacek on 16th November 2008

Manchester Wheelers' 125th Anniversary By Jan Machacek on 10th November 2008

Spring User Group Meeting By Jan Machacek on 7th November 2008

Vertically Aligning Images with jQuery By Andrew Chalkley on 30th October 2008

Brr! By Jan Machacek on 29th October 2008

Features