University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Facebook
Follow us on twitter
Twitter
Linked in
Linked in
Google plus
Google plus
Digg
Digg
Pinterest
Pinterest
Stumble Upon
Stumble Upon

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.

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.