Software Engineering at Oxford | Service Oriented Architecture ( SOA )

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 in distributed systems and component-based development, underpinned by cross-platform protocols based largely on XML.

Frequency

This subject has been discontinued; no further courses are planned.

Objectives

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, and be able to discuss the
emergent properties of those compositions; and to understand the
research context and potential future directions for these
technologies.

Contents

Software components

Modularity; reuse; contracts; component-oriented programming; services.

Web-services

XML; HTTP; SOAP; WSDL; UDDI.

Representational state transfer

Architectural styles of the web; REST; resource-oriented architecture.

Composition

Workflow; activity diagrams; BPMN; BPEL.

Objects

OO middleware; CORBA; objects versus services.

Software architecture

Client-server; layers; pipes and filters; EDA; repositories; peer-to-peer; Grid Computing.

Semantic web

Knowledge representation; Resource Description Framework; Web Ontology Language; Semantic Frameworks.

Service qualities

Transactions; performance; security.

Engineering SOA

Organization; lifecycle; versioning; governance.

Requirements

The course presupposes a basic understanding of XML schema and XML
namespaces. Practical exercises entail a considerable amount of Java
programming;
fluency with some OO programming language will be helpful,
and participants may want to read up on Java beforehand if not familiar with it.
The design discussion assumes a basic knowledge of UML.