1. (a) What are design patterns? How do these differ from other programming styles? [7] (b) Discuss the structure and features of the Singleton design pattern. [10] (c) Describe a situation where the Singleton pattern could be used, showing actual java code to implement the pattern. You should illustrate the "good" use of such a pattern, and show a "bad" use of
the pattern, and state why one usage is better than the other. [8] 2. RMI stands for Remote Method Invocation. It allows a java object located on your machine to call methods of other objects located on a remote machine. This feature is very useful when you are intended to build a java-to-java distributed application. (i) Describe the process of turning a single process Java Application
into a Distributed process application, where a client makes use of methods located on a separate server. You should indicate the
specific Java classes you would use, and how the shared object
would make use of these classes. [8] (ii) How does RMI locate classes when objects are downloaded where
a class file does not exist locally? [3] (iii) Explain how stubs, skeletons, the RMI compiler and the rmi registry are used within Java to implement RMI. Use appropriate diagrams
and an example to illustrate your answer. [7] (iv) Briefly describe the changes in protocol and classes needed when
the Java Application needs to communicate with a non-Java application. [7] 3. (a) In terms of Cloud Computing explain, with a suitable example, what is meant by (i) Software as a service (ii) Platform as a service (iii) Infrastructure as a service. 
[9] (b) Discuss, with specific examples, both the technical and business benefits of Cloud Computing. [10] (c) Identify a particular Cloud Computing supplier, the range of cloud services that supplier offers, and critically assess these services
from a user point of view.   4. a) What is the Java Messaging System (JMS) and how does it differ from Remote Method Invocation (RMI)? What are the advantages of JMS? [9] b) Describe 4 types of messages available under JMS, and 2 messaging paradigms supported. [8] c) What is the role of JMS in enterprise solution development? [8] 5. (a) What is the SOAP protocol? How does it use XML and HTTP? What are the advantages/disadvantages of using SOAP? [9] 
 (b) Describe the main components of a SOAP message exchange. [6] 
 (c) Within the context of a Web Service, explain what the Web Service Description Language (WSDL) means. What is the role of WSDL in Web Services technology? [5] 
 (d) Describe, with a suitable example, an alternative less formal approach to working with Web Services which does not use SOAP. [5] 6. (a) Ajax technology has had a considerable increase in use over the last two years. Describe three software technologies that need to be in place for an Ajax application to function [6] (b) What advantage does Ajax have over standard client-server applications using HTML and HTTP? Use a diagram to support your answer. [4] (c) Briefly describe alternatives to using Ajax and what disadvantages
they may have. [4] (d) Using a suitable example with code snippets, describe the basic Ajax process from the point of initiating a request in a browser, to the user being able to see the results of the request. [11]