Cloud, Virtualization, Operating Environments and Middleware