|Img.1.:: Complex Distribute System ~ new tools definition|
|Img.2.: Codex Madrid I by Leonardo da Vinci - Device for Calculation :: Leonard's mechanism maintains a constant ratio of ten to one in each of it's 13 digit-registering wheels...|
|Img.3.: Python-based open source toolkit for magnetic resonance connectome mapping, data management, sharing and analysis (http://www.cmtk.org/)|
- The resources sharing variable which could be directly projected into any individual learning curve.
- Visualisation variable which helps faster connect system with purpose (Img.3.) and understand the role.
Similarly to the visualisation needs which helps to connect situation to the appropriate state of art. ps: At the mechanic age the visualisation was not a big issue as all parts were almost always clearly visible (Img.2.).
Such evolution process can be highly observable in the IT industry as the whole IT industry has cradle in Mechanical Engineering followed by Chemistry with taste of Physics (Computer Science).
The distributed systems (DS) design itself has also evolved (Img.4.) based on possibilities and needs according to the evolution time line. The design itself is connecting more different aspects together which makes whole design process complex, challenging and hard.
What it a distributed system ?
A distributed system is a software system in which components located on networked computer communicate and coordinate their own action by passing messages. The components interact with each other to achieve a appropriate goal. (link)
According to the distributed system definition that DS is the software (includes algorithms, data-structures, design patterns etc. ), we can move Server-Client architecture as the building cell of the another system (Img.4.) ~ "Client-Server Unit" (CSUnit).
|Img.5.: Traditional Three-tier architecture pattern - support different levels of abstractions.|
How the client application could be divided into such tiers ?
The natural necessity of appropriate server functionality, stability... testing is self understandable independently on used technologies.
|Img.6. Possible Cloud Computing abstraction where individual process are invisible to the user (Laptop, Server, Desktop, Phone, Table) and result is provided as a service|
Each of those parts have their own definitions and over all when we take the Img.1. and do the extension, according to the cloud computing, we can can end up with new system abstraction (img.6.)
Every cell becomes to be it's own sustainable unit with its specific functionality and we should still keep in mind couple of questions that needs be answered : Cost, Availability, Reliability, Performance, Scalability and Manageability related with such new unit.
From general perspective in this model (Img.6.) aren't only presented "Client-Server Units", there is new unit type: "Client-Server-Client Unit" (CSCUnit) .
"Client-Server-Client Unit" means that the server inside the CSCUnit maybe in the client position for another service at any time of its life cycle. Example of Peer2Peer technologies present in the cloud be Infinispan, scalable map-like data-structure distributed among the grid of servers. The Infinispan now plays the role of distributed memory without necessity of central coordination.
As the final cloud system is obviously collection of different smaller parts another questions become to be more and more important then ever before eg.: individual system part transparency, communication related to others, how concurrency between them and how big is the resistance agains the any part failure (fault tolerance).
Conclusion: I wanted to highlight relation between the mechanical engineering and IT branch evolution according to the new technologies which are coming continually on a market. I hope I was more then partly successful because the way how we look at Mechanical equipment and IT ones is sometimes question only about to changing view perspective (Img.7.).
|Img.7.: Leonardo da Vinci - Codex Madrid I - counting machine|