Gabriel Amorim

Gabriel Amorim

Biography

Gabriel Novais Amorim is a software engineer certified in SOA (SOACP). He has worked for 5 years in large Brazilian companies as a developer. He is currently working on developing SOA integration solutions in the telecommunications market and work daily on SOA solutions developed in Java. The author is a techie in systems analysis and has an MBA in software engineering. He follows with enthusiasm the development of the ideas that underlie service orientation and is adept in the neutrality of technologies promoted by service-oriented architecture.

Contributions

rss  subscribe to this author

Bookmarks

The Importance of SOA to Cloud Computing Published: December 2, 2014 • Service Technology Magazine Issue LXXXVII PDF

Introduction

Increasingly, SOA and Cloud Computing are assuming more prominent roles in large organizations for the purpose of operational efficiency and cost reduction. These technologies already left behind the status of emerging technologies to consolidate as mature and proven technologies. It is evident that a growing adoption of service-oriented architectures and cloud platforms is taking place in all market segments. However, little is said, in fact, as SOA and cloud computing are related. Are SOA and Cloud Computing approaches complementary to each other, or should they be used separately? This article will clarify how these technologies are related, beyond the advantages of adopting them together. But before you consider having an IT solution that is SOA- or cloud computing-based, we should conceptualize what they mean.

Cloud Computing provides an abstraction layer between computing resources and its technical implementation details, such as its servers, databases, and networks, in turn enabling computational resources to be used on demand while avoiding efforts in infrastructure management.

In recent years, Cloud Computing is no longer a conceptual model and has become a model adopted by various organizations. Cloud Computing is a broad term that involves virtualization, software, platform- and infrastructure-as-a-service on demand.

Currently, most large organizations still have their own IT infrastructures. However, with the various possibilities offered by cloud computing, this is no longer necessary. With the use of both hardware and software resources on a large scale, providers are able to provide all the necessary processing power at a much lower cost than could be achieved by any organization individually. Furthermore, especially in cases where the use of storage resources and processing vary, it is advisable to use Cloud Computing. This model has been defined as utility computing, which is delivered to users at their need. [REF 1]

SOA is an architectural pattern for the development of distributed systems that transforms resources into software services. Benefits like increased agility and cost savings are already clear for companies around the world, and inevitably, SOA will be the dominant architecture in most large organizations. The adoption of SOA today will improve how IT is able to meet business in the future.

SOA and Cloud Computing can exist separately—neither depends on the other. However, they are complementary and can be very helpful to each other.

Cloud Computing provides a very flexible and scalable platform through processing external services, and not only offers advantages such as low cost, but also provides the ability to connect with customers, partners, and suppliers, as never seen before.

However, without SOA, organizations will face difficulties in using Cloud Computing because of the fact that the applications do not have a solid architectural foundation. The complexity of migrating to the cloud environment will be too great, both conceptually and physically. The high scalability of Cloud Computing comes up against the application architecture and infrastructure available.

To analyze the importance of SOA in the Cloud Computing environment, this paper is organized into three topics. The first presents the characteristics and difficulties of Cloud Computing, with an evaluation of the main difficulties in implementing this approach. In the second topic, the presentation of the features and benefits of SOA is made, explaining the strengths that the adoption of this architecture brings to the company. Finally, the third topic shows the combination of these two technologies in obtaining a complete service solution.

Characteristics and Difficulties of Cloud Computing

Most companies evaluate or have already evaluated the ability to migrate their infrastructure to the cloud, and many executives and infrastructure managers are excited by the benefits of Cloud Computing. Louis Columbus, quoting results from Gartner Research Group in his article for forbes.com, says that the growth of infrastructure services in the cloud reached 18.5% in 2013, and the average growth through 2017 will continue at around 18%. [REF 2]

Cloud computing brings many benefits to a company, the main one being a decrease in cost and in the responsibility of maintaining the infrastructure necessary for the operation of the company. The cost and responsibility are transferred to specialized companies.

In an article for the Financial Post website, Karen Atkinson says that for small and medium businesses, the "pay-as-you-use" approach is much more attractive than "install-and-own". [REF 3] However, both the Karen Atkinson article and any other literature about cloud computing is possible to see warnings about the risks of migrating a proprietary infrastructure for cloud infrastructure. These risks vary mainly between information security and change management. The job of managing your own infrastructure no longer exists, but it becomes necessary to manage the relationship with your supplier.

Among a lot of obstacles to implement projects of Cloud Computing there are three that deserve special attention:

  1. Standardization of APIs: Due to the short time of existence there is still no standardization of APIs, so each migration adopts procedures who think more appropriate at the time.
  2. Vulnerability: Security in data traffic is always a critical threshold, but the migration to Cloud Computing adds even concerns about the physical sharing of applications and data with other companies.
  3. Cost: Migrate servers to Cloud Computing is not cheap, requires much time and specialists staff.

Besides these, another great difficulty in migrating to a cloud infrastructure is related to the maturity of the IT architecture of the current organization.

Organizations that have no well-defined architecture often have difficulty even with simple maintenance or updates to internal systems. This low level of maturity generates several difficulties, and companies in this category will certainly not have a smooth transition to the cloud computing model.

Features and Benefits of SOA

SOA is a software architecture that determines the features that make up an application and should be made available as services that communicate with each other through messages. That way, applications can be developed into small parties, facilitating management of development teams. But SOA is more than that—it is a robust architecture, focused on the integration of systems, whose main benefits are discussed below:

  • Integration between different platforms: With exchanging XML messages between services is possible to integrate different platforms, such as Java and PHP. The XML language is widely used for data exchange, XML is basically a text file with the data and its meta-information tags.
  • Low coupling: As services are developed to meet a specific demand, the level of cohesion is relatively high, so a program developed for SOA is composed of several parts that are well defined to be accounted for only as functions that operate independently.
  • Code reuse: The low coupling and high cohesion allow each service to be used in several different systems without rework or large efforts of the teams involved.
  • Ease of construction and maintenance: Save time by reusing services and the possibility of change within a point of the system; in case of future maintenance or errors, correction dramatically decreases the time unavailability in the system.
  • Ease distribution of functionalities: It's necessary to disclose the service descriptor, and features will be available to any developer who needs to use them.

The Importance of SOA to Cloud Computing

Once you understand more about Cloud Computing and SOA, the remainder of this article will focus on the advantages of using these two technologies together and why this union can provide a complete services solution.

"If an organization is interested in Cloud Computing, SOA is especially important. The best and perhaps the only way to prepare an organization to successfully exploit the cloud is transforming its IT infrastructure for internal use SOA." [REF 4]

To take full advantage of a Cloud Computing environment, it is necessary to assess various requirements and make many decisions. However, if the company is already working with SOA, most of these decisions have been made and are working properly.

One of the benefits of adopting SOA is the ability to display horizontal services that span the entire organization. When we think about simply virtualizing our current IT environment, we are thinking of expanding this horizontal view of current services to an off-site server, reducing both costs and workload. Still, thinking about virtualization SOA environment, we get a great profitability due to reuse of services, so that multiple people can use a service while being in the company network.

"By having a flexible and modular approach to the delivery of services, SOA is a basic element in the model of cloud computing. While SOA and Cloud Computing reduce costs for corporations, their main advantage is the improvement in agility it provides, allowing it to respond to the increasing rate of change that occurs in almost all companies around the world." [REF 5]

SOA facilitates the deployment of software-as-a-service to be deployed in the cloud while cloud computing provides processing power on demand so that services are robust and flexible, giving organizations more flexibility in time to meet the operational needs of the same.

The use of SOA and Cloud Computing together brings many benefits, and the implementation of applications under the two approaches should be considered. But it is important to understand that while Cloud Computing is an approach to infrastructure, nothing prevents SOA applications from running on corporate servers. However, beyond the usual infrastructure costs, there's concern about the scalability of the platform.

Cloud Computing ensures infrastructure, including hardware and software, to applications while SOA ensures the delivery of software-as-a-service, considering that the two approaches are complementary and difficulties are resolved by the benefits of the other and vice versa. While cloud computing provides options for deployment and delivery of applications, SOA deals with the base architecture that makes it possible.

One of the main requirements for adoption of cloud computing for businesses is the guarantee of service as well as the prices charged for these services. For this, SOA provides a standard process called "Governance and Services Management" which serves as a basis for the virtualization of the IT environment.

"The immediate benefit of combining SOA and Cloud Computing is time. Reaching out to the cloud for business or technology capabilities allows SOA initiatives to compress time to value. In the longer term, the benefits include improved collaboration, customer satisfaction and business growth. By offering SOA-based business capabilities to the cloud, businesses can improve interactions with business partners and existing customers, and/or generate new revenue streams," says Brenda M. Michelson.

Among the technical benefits related to this combination, we can also mention the architecture of applications, scalability, and development time from SOA to Cloud Computing. However, there are many other benefits that are not only technical, but issues of governance and processes that make managing the environments more connected with issues of corporate business through one of the requirements of SOA that is related to providing improved governance and service management within a cloud environment.

SOA Governance

It is important to differentiate IT Governance from SOA Governance. While IT governance is focused on managing technology, SOA Governance focuses on managing Business Services. Fred Cummins gave an interesting description of SOA Governance in his article entitled "SOA Governance is not IT Governance Reborn," in which he says that SOA Governance is to manage business services, services for clients, and services to other business partners. Furthermore, in a service-oriented organization, everything the organization should be characterized as a service. A business service usually involves other services directly or indirectly to maintain its capacity and deliver its result. This is the true value of SOA, as well as the business value of SOA, and should be the focus of SOA Governance.

When we talk about Cloud Computing, we are basically defining our architecture as a set of services. These services are interdependent—they communicate with other services. The failure of one of these services can lead to a domino effect on other services and applications that use them, so it is crucial that these services are under appropriate management control as they are created, changed, deleted, and accessed. We need good governance of services to meet this management and reduce risks. Cloud Computing is a relatively new approach and still has little experience in how to implement proper governance services. In the SOA world, although many companies do not properly implement, the service governance is something far more mature.

The value that governance brings is clear when we consider the amount of risk that it removes, but a good understanding of the services, processes, and organization data is necessary in order to properly select approaches and policies and to define the level of monitoring required for each service, given that monitoring generates performance impact. We must choose to monitor only essential services to the business operation to avoid performance problems.

Security in SOA

Along with the implementation of a Cloud Computing environment, there is a need for well-defined security policies and access control. At this point, the policy of security and access control derived from the SOA architecture will also increase the chances of success.

There are actions that can be taken to ensure that security risks are minimized when dealing with a service-oriented environment. You can create policies that influence development patterns and the way the services are consumed. Examples include mandatory username / password to access URL services, encryption of data exchanged between the client and the server, and the joint work between developers and professionals specialized in information security at development time to identify good practices and key standards to reduce risks, among many other initiatives.

Furthermore, systems must be architected to exploit the advantages of public clouds with resilience. This means that one should not simply transfer the applications to the cloud without due care. You must include safety practices and proper recovery still in the process to operate in the cloud, and carefully evaluate the clauses in these respects. In practice, the responsibility for risk management is shared between the cloud provider and its customers.

BPM

The change in the business process becomes easier when we have the ability to put what will be changed over time in a configuration layer. Cloud Computing platforms are placed where the processes and services reside, so you can put what may change over time in a layer of the setup process and deal with things that probably have not changed as services. For example, the launch of a new product to market can cause changes in the pricing process, using processes we have the pricing policies in the configuration layer of a process so we would not have to do maintenance on systems for this change. This makes the architecture be able to support a larger number of changes, gaining more flexibility and creating more value to the IT organization.

If well implemented, SOA creates a basis for management strategies of business processes, which in turn influences the appropriate deployment of cloud computing. If the company is currently on SOA, have a way designed to process architecture and information architecture, elements responsible for the foundation technologies, and the integration.

Although SOA was initially sold for the reuse value it would bring or the ability to reuse services between the various systems, one of the most important aspects of SOA is the ability to change business processes without the need for major changes, testing, or implementation. SOA has the ability to promote a flexible architecture, or an architecture that is constructed to change, with the following results:

  • Greater deployment flexibility with less expenditure of time.
  • Process management infrastructure that optimize the cloud.
  • New models of clouds, both public and private, to improve flexibility of process requirements.
  • Ease in understanding the distributed nature of the cloud, since it leaves completely visible and easy to understand the processes of the organization that were migrated.

Conclusion

Cloud Computing is a solution for abstraction of physical resources, providing speed, processing power and storage sized and flexibility for changes in the hardware architecture according to demand, while SOA provides ease of software development, low coupling solutions and great possibility reuse of code.

Although both Cloud Computing as SOA have the possibility of independent use, the benefits of an integrated architecture with these two solutions is shown as a largely favorable strategy in the categories of cost, speed of development, ease of maintenance, and governance. This happens due to the unique characteristics of each approach, which end up complementing each other. For example, cloud computing provides infrastructure, development platforms, and applications-as-services, but without bothering to define the architecture and management of applications. SOA provides guidelines, principles, and techniques to the development of services, and strictly defines the architecture of service-oriented systems.

Disadvantages in the use of Cloud Computing without SOA are mostly related to security, management of services developed, and breaking the paradigm of companies that do not have a culture focused on the reuse of code and documentation. Among these issues, the latter appears more difficult to solve because the management of features developed without SOA can become highly complex after a period of migration as the large amount of services developed is likely that duplicate functionality or even maintenance impacting applications that share the same service.

Each approach has its concerns and a focus on certain aspects of an IT solution. With SOA, we can make managing cloud services implement and manage security policies and manage issues with business processes—concerns that are beyond the scope of Cloud Computing.

The combination of both approaches allows the company to focus their efforts on more relevant issues to the business without giving adequate operation and without the organization losing flexibility in system maintenance equipment, while allowing flexibility in the creation of new features.

Each of the presented approaches has values ​​and utilities in different domains, as well as different problems. But the use of both is critical to maximize quality in all aspects of an IT solution, in view of their complementary characteristics to each other. As stated, Cloud Computing provides the infrastructure for an application and SOA architecture and methods to manage the remaining issues for implementing the solution.

While it is possible to use either approach independently with reasonable results, both SOA and Cloud Computing offer several implementation possibilities, and their union is one of them. The use of this solution depends on the current situation of the organization, as well as the maturity of the business and the team involved in the migration of legacy systems. Due to the breadth of the subject, the aim of this paper was to obtain a reference that serves as a starting point to begin further study in order to minimize risks and problems in case of implementation of a SOA in the Cloud Computing model.

References

[REF 1] MULHOLLAND, A.; DANIELS, R.; HALL, T. The Cloud and SOA: Creating an Architecture for Today and for the Future: HP, 2008. http://www.hp.com/hpinfo/analystrelations/wp_cloudcomputing_soa_capgemini_.pdf

[REF 2] COLUMBUS, LOUIS. Gartner Predicts Infrastructure Services Will Accelerate Cloud Computing Growth: Forbes, 2013. http://www.forbes.com/sites/louiscolumbus/2013/02/19/gartner-predicts-infras tructure-services-will-accelerate-cloud-computing-growth/

[REF 3] ATKINSON, KAREN. Cloud computing: Why it's good for your bottom line: Special to Financial Post, 2005. http://business.financialpost.com/2012/10/18/cloud-computing-why-its-good-fo r-your-bottom-line

[REF 4] MULHOLLAND, A.; DANIELS, R.; HALL, T. The Cloud and SOA: Creating an Architecture for Today and for the Future: HP, 2008. http://www.hp.com/hpinfo/analystrelations/wp_cloudcomputing_soa_capgemini_hp.pdf

[REF 5] MULHOLLAND, A.; DANIELS, R.; HALL, T. The Cloud and SOA: Creating an Architecture for Today and for the Future: HP, 2008. http://www.hp.com/hpinfo/analystrelations/wp_cloudcomputing_soa_capgemini_hp .pdf