The traditional approach of the organizations to increase their computation and data capacity was to buy more hardware and improve their IT operations.
From the costumer point of view IT is considered as a “Utility” it can be bought more or less.
Cloud computing, as defined by the US National Institute of Standards and Technology, offers a drastically different approach to IT resource delivery, allowing users to lease data and processing capacity from a "cloud" of interconnected computing systems, maintained by someone else and shared by others, to the level required.
From about 2008 that Microsoft started introducing cloud computing by presenting some services embedded in email service and from about 2009 Apple by its MobileMe by offering different services, until today we may can say that many horizons are being operational.
There exists several cloud computing providers offering different kinds of services like storage, with different levels of access policies for sharing files. The famous ones are Microsoft, IBM and Apple.
From the wide range services of Microsoft Azure and iCloud in the domain of market, to the new methodologies in business modeling policies and related software engineering approaches, we observe that in universities, laboratories and organizations we are developing this new domain.
The potential benefits of this approach to service delivery include a focus on core business (software service delivery versus platforms), a rental model (versus purchase and maintain), and platform provider-maintained capabilities that might otherwise be challenging (for example, pay-per-use of service, service integration, security systems, and hardware and OS maintenance).
On my opinion, the most important concept that helped cloud computing to grow may be Software Engineering. Cloud computing benefits software engineering concepts like agility, availability and cost efficiency. These need to well engineered for cloud platforms.
Regarding to the recent developments in this domain many open issues surround the use of software services from the cloud:
- Architecture and design;
- Quality attributes such as: Performance, scalability, security, availability;
- Engineering cloud services: development methods and tools;
- Service platforms and composition approaches;
- Project management approaches for cloud services and applications;
- Cloud deployment options and justifications;
Independently, each of these aspects must be addressed in the phase of engineering practical cloud-based services and solutions.
Requirement engineering for cloud services is a reach research area that hasn’t received much attention. Besides the traditional methods, there are unique challenges in cloud projects that in the future I will discuss on them.
In this part I present a short introduction. For example, in requirement acquisition phase, organizations must gain a better understanding of their real needs for cloud, this will cause in gathering requirements, both side (organization and the engineering team) change their representation method of the goals, needs and perspective. This means that besides traditional top-level business goals such as reducing cost and complexity they think of categorizing their needs to be represented as a special service by cloud such as PaaS, IaaS and etc. I should refer here to my post published in my weblog in February 2012. It should be noted that this horizon is applicable within a good collaboration during meetings of the organization and the engineering team.
"Reference: IEEE Computer Society journals and publications"