Cloud Computing has become a major factor among IT services. Infrastructure as a Service provides general solutions thus has manifold usage and has an efficient market, as virtual machines make it simple to interchange Cloud providers.
The two most important properties of Cloud Computing are: pay per use pricing and fast scalability necessary for it. Owing to these properties, by resource allocation, the users have accurate control over their expenses thus it is their financial interest to know the quality and quantity of the requisite resources every second.
In case of Infrastructure as a Service the core of the pricing consists of the following: configuration and usage duration of virtual machines and the amount of sent and stored data. These factors are available via the resources monitors of operating systems.
Taking all the preceding factors into account, the aim is to gather information for resource allocation optimization, thus the sample task is to create a system data collector application which meets the requirements implied by the properties of Infrastructure as a Service.
The specified requirements strongly resemble to peer to peer technologies so I examined their usability. Among the distributed hash tables I found that the Chord protocol with some modifications is suitable.
Using java I implemented an application that uses Open Chord, which is a Chord implementation written in Java, as its base, deployable on virtual machines and acquires relevant metrics from Windows based operating systems using the platform standard solution, the Windows Management Instrumentation that could be accessed from java using JINTEROP, which is a Java DCOM bridge. Moreover in order to ease usage I implemented a central control application too.