University of Oxford Logo University of OxfordSoftware Engineering - Home

Service Oriented Architecture

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.

Course dates

1st December 2014Oxford University Department of Computer Science 0 places remaining.


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.


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

Representational state transfer
Architectural styles of the web; REST; resource-oriented architecture.
Workflow; activity diagrams; BPMN; BPEL.
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.


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.