Chad Hardin: January 2008 Archives
Lately I've been spending quite a bit of time thinking and researching how Mobile Objects (MOs) can be applied to the distributed computing space. Apart from the complexity of transforming serial algorithms into distributed ones itself there is the problem of distributing the actual code in a manner that is easy to deploy and administer. If, for example, one has a cluster of 100 computers dedicated to performing a distributed operation then one has to ensure that each of those 100 computers has the ability to execute the needed code. Obviously, doing this manually for each of the 100 machines is not practical. What one needs is the ability to easily make the code locatable to each machine in the cluster.
One way to do this is use MOs. In effect, what this would involve is making each computer in the cluster a "blank slate" with no application specific code on them. Installing an operating system and our MO runtime, Kolona, on each computer would enable new code to be dispatched to any (or all) of the machines as needed. Because each machine can perform any computation at any time, the cluster can be used for a variety or purposes as needed. One could even have many types of calculations occurring on the cluster at the same time by moving different type of MOs to different machines in the cluster. So, one day the cluster can be doing graphic rendering and the next day something else...without having to change any of the machines' installed code.
This usage of MOs for distributed computing is not limited to calculations but can be used for data processing. One could use a privileged MO to install a special type of Kolona component called a Service Object (SO). SO's provide services to MOs via an application specific interface. For this example I'm going to install a SO that provides block-based storage. The nodes of the cluster will have this generic ability for MOs to store and retrieve blocks of data. The actual contents of the blocks are not defined by this block-storage SO. Rather, MOs are able to use the block-storage service in any way they see fit. For example, one could use a swarm of MOs to migrate to each node of a cluster and search for some piece of data in parallel, as if the blocks represented a large database. Simply using different mobile objects can change the capabilities of the cluster’s storage service.
I'll be talking more about the use of MOs for distributed computing more in the future because this topic is fascinating to me. The future of computing is parallelism. This is not true just for super-computer like clusters but is also becoming evident for desktop machines. At present, four-core machines are readily available for purchase at Best Buy for $1000. Anyhow, I believe MOs are a valuable addition to the world of distributed computing. More next week!
One way to do this is use MOs. In effect, what this would involve is making each computer in the cluster a "blank slate" with no application specific code on them. Installing an operating system and our MO runtime, Kolona, on each computer would enable new code to be dispatched to any (or all) of the machines as needed. Because each machine can perform any computation at any time, the cluster can be used for a variety or purposes as needed. One could even have many types of calculations occurring on the cluster at the same time by moving different type of MOs to different machines in the cluster. So, one day the cluster can be doing graphic rendering and the next day something else...without having to change any of the machines' installed code.
This usage of MOs for distributed computing is not limited to calculations but can be used for data processing. One could use a privileged MO to install a special type of Kolona component called a Service Object (SO). SO's provide services to MOs via an application specific interface. For this example I'm going to install a SO that provides block-based storage. The nodes of the cluster will have this generic ability for MOs to store and retrieve blocks of data. The actual contents of the blocks are not defined by this block-storage SO. Rather, MOs are able to use the block-storage service in any way they see fit. For example, one could use a swarm of MOs to migrate to each node of a cluster and search for some piece of data in parallel, as if the blocks represented a large database. Simply using different mobile objects can change the capabilities of the cluster’s storage service.
I'll be talking more about the use of MOs for distributed computing more in the future because this topic is fascinating to me. The future of computing is parallelism. This is not true just for super-computer like clusters but is also becoming evident for desktop machines. At present, four-core machines are readily available for purchase at Best Buy for $1000. Anyhow, I believe MOs are a valuable addition to the world of distributed computing. More next week!
My name is Chad Hardin and I'm a software engineer here at Topia Technology. Starting today I will be periodically blogging about Topia Technology and our applications of what we call "Mobile Object Technology."
Today I'm going to introduce the concept of Mobile Objects (often abbreviated MOs). In brief, a mobile object is running code that is capable of transferring its execution to another machine. This transfer involves migrating the state of the running code as well as the compiled code itself. Now, migrating code to different machines willy nilly can bring about security issues. We use our technology to ensure that MOs are not allowed to access resources on the machines they migrate to without asking for and being granted permission to do so.
To enable this type of MO technology, we use Kolona. Kolona is a Topia Technology software product that hosts MOs, ensures they are secure, and provides services to them so they can do neat things.
Starting soon, I will be presenting on a regular basis some of the neat things we are doing with MOs here at Topia. I will also be presented some interesting ideas of where we want our MO technology to go in the future.
Stay tuned....
Today I'm going to introduce the concept of Mobile Objects (often abbreviated MOs). In brief, a mobile object is running code that is capable of transferring its execution to another machine. This transfer involves migrating the state of the running code as well as the compiled code itself. Now, migrating code to different machines willy nilly can bring about security issues. We use our technology to ensure that MOs are not allowed to access resources on the machines they migrate to without asking for and being granted permission to do so.
To enable this type of MO technology, we use Kolona. Kolona is a Topia Technology software product that hosts MOs, ensures they are secure, and provides services to them so they can do neat things.
Starting soon, I will be presenting on a regular basis some of the neat things we are doing with MOs here at Topia. I will also be presented some interesting ideas of where we want our MO technology to go in the future.
Stay tuned....
