Dynamic reconfiguration: service-based systems should be configurable and reconfigurable dynamically by discovering and incorporating existing services, but while maintaining coherence and integrity. This should be supported by metadata, which underlie the discovery of existing services, coupled with contract agreement descriptors.
End of Quote
Start of Activity
Activity 2 SOA Allow 15 minutes to complete this activity
Start of Question
Given what you’ve just learnt about services and SOA design principles, which do you think are the advantages of developing business applications based on SOA?
End of Question
View answer - Activity 2 SOA End of Activity
Web services
When a service is made available over the internet, it is then usually termed a web service, which describes the service that a client can access from a server over the internet, utilising web protocols and standards to enable the exchange of data between them.
The main protocols and standards employed are XML (eXtensible Markup Language), SOAP (Simple Object Access Protocol), REST (Representational State Transfer) and JSON (JavaScript Object Notation) based.
Discussion of these protocols and standards is beyond the scope of this course, but you’ll find articles on these topics in the Further reading section.
The main point to make here is that web services based on the SOA design principles described above will ensure that web applications written in various programming languages can run on various platforms, and can use web services to exchange their data across computer networks in a manner similar to inter-process communication on a single computer.
2.2 Cloud architecture
SOA is well placed to take advantage of a recent development known as ‘cloud technology’ based on what is often termed ‘the cloud’. Cloud technology has changed how organisations use technology to provide computing services. However, there is a lack of clarity as to what the term will really come to mean. Some definitions restrict the cloud to mean that virtual servers are made available and used over the internet, but more generally the cloud is seen as consisting of a wide range of different resources.
The National Institute of Standards and Technology (NIST, 2013) provided a wider definition of cloud computing:
Start of Quote
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Cloud computing is the practice of delivering computing services – servers, storage, databases, networking, software, analytics and more – on-demand over the Internet. It is a means of providing computing services as a utility to consumers in the same way as other utilities such as gas and electricity. Companies offering these computing services typically charge for cloud computing services based on usage.
End of Quote
You might take the view that whereas SOA provides services on a network, the cloud extends the principle to other resources such as processing power and storage facilities and is not limited to the provision of services. There are, of course, quite a lot of details that are not covered here. How resources are charged for, made secure, ‘cleaned’ after use, etc. are just some of the aspects that need to be considered.
Start of Activity
Activity 3 Benefits and potential problems of using cloud architecture Allow 30 minutes to complete this activity
Start of Question
Take a look at the Amazon Web Services (AWS) website What is Cloud Computing? What do you see as the benefits and potential problems of using cloud architecture?
End of Question
View answer - Activity 3 Benefits and potential problems of using cloud architecture End of Activity
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable hardware, software and network computing resources and services that can be rapidly provisioned and released with minimal management effort or service provider interaction.
NIST (2013) defines five essential characteristics:
Start of Quote
On-demand self-service – A consumer can automatically and unilaterally provision computing capabilities such as server time and network storage as needed, without requiring human interaction with each service provider.