Creating a flexible distributed system enables the possibilities of enhanced performance and scalability.
Shore Tech Systems can:
- Consult on the appropriateness of a distributed system
- Design a distributed system
Some business procedures are highly complex and take a significant length of time to complete. If you have a business procedure that takes a long time to run and could be split into smaller sub components, then a distributed system is likely to significantly improve performance. Talk to us about how we can help you combine existing systems or speed up your current solutions How distributed systems work
By examining a procedure carefully it is often the case that sections that are by default run in series (one at a time, in order), could actually be rearranged to run in parallel.
By designing them to work like this the total run time is decreased as different sections of the procedure are being run at the same time.
Characteristics of distributed systems:
- Scalable - they can have additional processing nodes added to increase throughput
- Fault tolerant - if a processing node fails then all work that was being executed by that node is resent to a different node
- Recoverable - processing nodes can automatically re-join the system after the reason for failure has been corrected
Because of the nature of distributed systems rely on the concept of work being split between numerous physically discrete processing units, communication between them and the managing hardware is critical. Communication should be kept to a minimum to reduce network traffic and it must be reliable to be able to guarantee successful distribution.
There are a number of decisions to be made when choosing how communication will happen within a distributed system:
- What data is to be sent
- How the data will be sent
- How the nodes are physically separated / connected
- Choice of communication protocols.
- Reliable or unreliable
The first stage to developing a distributed is to designing a modular system targeting to divide each task to run in separate thread of execution. This simulates the general flow of execution for the final system but without the worry of dealing with managing splitting tasks between physical hardware. Once the concept has been proved to suite a distributed environment the next stage is to take our distributed system management and customise it to suit your exact requirements.
This involves decisions such as:
- Where is the processing going to be completed
- Will the management hardware be physically close to the processing hardware
- Will virtual server services (cloud computing) be uses for processing
- What levels of redundancy are needed
Talk to us about how we can help you combine existing systems or speed up your current solutions Read examples of our expertise in distributed processing