Node.js is just `processor and any `job can be `assigned to it. JavaScript is `system language for defining certain `computation and executing it as `job. Job 's has to be `synchronized over nodes to produce result of computation.
This is, basically, definition of NETWORKING OS, where:
- Processor - node capable of executing Job.
- Job - scheduled unit of computation.
- System language - describes computation in terms of OS primitives, primitive computations and data-flows.
- Synchronization - suppose tasks {A, B}, with I(nput) and O(utput).
Possible synchronizations are:
1)
AO -> BI (A-Out implies B-Input) - This is PIPE like synchronization for sequence of tasks.
The OS primitive for it (see Algebra of Communicating Processes) is '.' - B.A - B after A.
Going further we can introduce `+' - choice and `|' - interleaving.
Execution of jobs in MapReduce process synchronized on inputs and intermediate outputs on node level and cluster level.
(AI -> BI -> ... -> ZI) - This synchronization characterize Map phase, which also taking on Reduce of outputs: (AO -> BO -> ... -> ZO).
Those definitions calls for POSIX like specification which may serve as solid base for 'Services (aka SaaS) design.
No comments:
Post a Comment