Houldsworth Mill,Houldsworth Street, Reddish,SK5 6DAtel: 0161 975 6110 email: recipes@cakesolutions.net JavaEE application development & consultancy Ruby on Rails website development
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.
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.
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
Team Blogs
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