Are your business processes time intensive? Could you survive failure? Discover the power behind distributed systems
Sys Consulting Limited turned to Shore Tech Systems to integrate a specialist signal processing library with a public web site.
This project had a number of large hurdles to overcome:
The solution was designed in three discrete sections. Firstly to distribute the processing both within the software and across hardware; secondly to write a web service for the solution built upon a Service Orientated Architecture (SOA) to allow for consumption by existing systems; and thirdly to compose a software solution to allow for MatLab processing within this new architecture and to protecting its integrity when performing client processing.
The processing life cycle was redesigned to allow for a large percentage of the computation requirement to be processed in parallel across n processing clients. By optimising this process the total processing time per job was reduced by 92% in the final production system (The total processing time per job was reduced from 2 minutes before the distributed software system development to 10 seconds on the production software system – The initial specification was aiming for a processing time of 30 seconds).
The system was designed with modularity and ease of configuration from the outset. It was decided that the system would likely continue to grow and the processing demand continually increase. Custom processing distribution software was produced which as well as reducing the computation life cycle also gave the ability to hot-plug any additional servers.
The system was based around a .NET 3.5 web service and a Microsoft SQL 2008 database. The system was designed to be fully fault tolerant and able to cope with the loss of the management server without comprising the status of any currently running jobs. The system was also designed to cope with the loss of any number of processing servers and redirect the work to the remaining processing servers. The management and processing services utilise the Hosting Environment of Windows Internet Information Services IIS (the windows web server). This allowed for precise management of application restarting and resource pooling in case of any software or hardware failures. Talk to us about how we can help optimise your applications
The second part of the project was a Web Service built upon SOA design practises and implemented using Microsoft .NET Windows Communication Foundation (WCF). The service is currently successfully accessible to both .NET and PHP web clients that are unaware of the extensive processing that it completed by the distributed management system. The system utilises the ASP.NET membership security to protect the service messages over a secure SSL transport layer. This gives the client to fully control which partners have access to the processing web service. Talk to us about how we can help you make your services available to a wider audience
The final stage of this project involved writing a custom wrapper for MatLab code to allow it to be run from a Microsoft .Net project. The code was first encrypted in MatLab and then complied down into a dynamic linked library (DLL) which is then used in the processing cycle. This enabled the code to be distributed on each client processing server and exist in a secure manner. Talk to us about how we can help you with your MatLab distribution problems.