Nowadays cloud computing is very popular that involve distributed computing over a network so that an application can run on many computers simultaneously.
in the early days , cloud known as hosting services. Due to lack of demands and services available at that time , less people utilizing it. With the recent gadgets of Apple , Samsung , Microsoft , Google and etc , peoples are actually using cloud services without their realized.
There are applications/softwares we can use to establish Cloud system. For example, Openstack is very popular. I am currently using it. CloudStack is another example. Cloud system uses virtulaization concept. So, it is better to know more about virtualization. vmvare, kvm are some virtualization tools.
For your experiments you can develop the program in Java and then use CloudSim to simulate your developed environment....
The basic idea behind the cloud implementation is to support the virtualization. So all technologies related with virtualization must support the implementation of cloud.
As of now you can go with
1. OpenStack : This project was primarily started by NASA and Rackspace. Later, 150 of companies started to contribute to this open source tool. Currently, this tool runs under Apache License
2. Eucalyptus: Eucalyptus is the world’s most widely deployed cloud computing software platform for on-premise (private) Infrastructure as a Service clouds.
3. VMware: empowers IT organizations to deliver an enterprise-class infrastructure for cloud computing that fits their IT Infrastructure in the shortest time and at low cost. Comprehensive, purpose-built cloud management functionality is based on a broad range of deployment use cases from the world’s most demanding cloud and VDI implementations.
You can also secure your data by using these 5 tools:
Besides what other people already suggested (Openstack is most obvious choice, but other are possible, like VM Ware, Open Nebula, etc.), please note that there is a strong difference between cloud computing and grid computing.
When you say "an application can run on many computers simultaneously", that's not completely true. Cloud computing is about creating a virtual machine (VM) specifying "any" requirement (in terms of computing, storage, memory, etc.) and forget about how physically it will be supported because your cloud provider will do that for you (caring for hardware maintenance, physical security, backup and disaster recovery, etc.).
However it is true that your VM will run on a single computer (server), which existence or specific location you will most likely ignore.
If you need instead a tremendous amount of computing power or you want to make use of multiple low cost machines to create a "super-computer", I suggest you look for grid computing solutions, not cloud computing.