November 8, 2010

Node.js - Node.os

Hi,


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