There has been much recent interest in service-based architectures as a very promising means to structure software development. This represents a convergence of simple ideas from the world of Objects with other concepts on component-based development, underpinned by cross-platform protocols based largely on XML.
The course aims to give the student an understanding of the strengths and weaknesses of a service-based architecture, informed by an ability to implement and deploy simple web services using a suitable development platform. They will also learn to define and design applications as combinations of services, with a suitable treatment of security, and to understand the research context and potential future directions for these technologies.
- The protocol stack on the wire
- A consideration of the relevant features of TCP/IP; HTTP; DNS; SOAP; other transports/bindings, with a brief discussion of XML.
- The software stack
- Hosting environments and applications servers; interaction styles; other web technologies.
- Writing web services
- Specification and design of services; publish--find--bind paradigm. Service composition; process management; BPEL4WS and similar approaches.
- Non-functional issues
- Policy, quality of service, and security.
- Semantic web
- Research agenda and an alternative approach.
- Standards and linkages
- Web service interoperability
- Grid services
- Different notions of Grid, and their convergence with Web services. The Open Grid Services Architecture; how it changes the service architecture.
An understanding of XML and an appreciation of the concepts object-orientation would be very beneficial. The ability to read and edit Java programs will aid in the practical exercises.