Service-Oriented Architecture (Coursera)

Offered by University of Alberta,
Service-Oriented Architecture (Coursera)

Based on an understanding of architectural styles, you will review architectures for web applications, then explore the basics of Service-Oriented Architecture (SOA) in two approaches: Web Services (WS*) and Representational State Transfer (REST) architecture. In the Capstone Project you will connect a Java-based Android application with Elasticsearch, a web service with a REST application programmer interface (API).

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

After completing this course, you will be able to:
• Describe SOA (Service-Oriented Architecture) to structure web-based systems.
• Explain WS* services (i.e., SOAP over HTTP, WSDL, UDDI, BPEL).
• Apply REST architecture (i.e., JSON over HTTP, URI).
• Identify REST design principles.
• Create a system using REST interfaces.
• Apply microservice architecture.

Course 4 of 4 in the Software Design and Architecture Specialization

Syllabus

WEEK 1
Web Technologies
In this module, we will introduce you to service-oriented architectures and their basic principles. Then, you will get a crash course on the technologies that underpin the Web, so that you are ready to learn about web services in the next module. This module also covers some earlier precursors of service-oriented architecture.

WEEK 2
Web Services
WS-style web services are a "first generation" group of specifications that work together to allow developers to develop and use web services. They are all based on XML. In this module you will learn some of the most important specifications of WS-style web services: SOAP, WSDL, UDDI, and BPEL.

WEEK 3
REST Architecture for SOA
RESTful web services are another style of web services based on lightweight HTTP methods. They have largely superseded WS*-style services because of their relative simplicity. In this module, you will learn about RESTful services and how to design them. You will also learn a bit about microservices, a software architecture for applications that is based on services.

WEEK 4
Capstone Challenge
In the previous modules, you determined an Android application’s information needs when storing data remotely. Now, in the final module of the course, you will fully connect the application to a remote Elasticsearch server to allow users to share information across their devices. After completing this task, you will be ready to complete the final exam.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

JavaScript, jQuery, and JSON (Coursera) Coursera
University of Michigan

JavaScript, jQuery, and JSON (Coursera)

In this course, we'll look at the JavaScript language, and how it supports the Object-Oriented pattern, with a focus on the unique aspect of how JavaScript approaches OO. We'll explore a brief introduction to the jQuery library, which is widely used to do in-browser manipulation of the Document Object Model (DOM) and event handling. You'll also learn more about JavaScript Object Notation (JSON), which is commonly used as a syntax to exchange data between code running on the server (i.e. in PHP) and code running in the browser (JavaScript/jQuery). It is assumed that learners have already taken the Building Web Applications and Building Database Applications in PHP courses in this specialization.

Jun 8th 2026
4 Weeks
Software Architecture for the Internet of Things (Coursera) Coursera
EIT Digital

Software Architecture for the Internet of Things (Coursera)

This course will teach you how to design futureproof systems that meet the requirements of IoT systems: systems that are secure, interoperable, modifiable and scalable. Moreover, you'll learn to apply best-in-class software architecture methods to help you design complex IoT and other applications. Lastly, you'll come to understand the business impact of the technical decisions that you make as an IoT system architect.

Jun 8th 2026
5-12 Weeks
Software Design as an Element of the Software Development Lifecycle (Coursera) Coursera
University of Colorado System

Software Design as an Element of the Software Development Lifecycle (Coursera)

This course talks about software development lifecycles a description/prescription for how we write software. Design is a step in this life cycle, and the course explores the implications of this. Design has a role in the life cycle; it is always there, regardless of the kind of life cycle we’re talking about. Why is that? Why was design considered as a step in this life cycle?

Jun 8th 2026
5-12 Weeks
M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera) Coursera
University of Colorado Boulder

M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera)

This course can also be taken for academic credit as ECEA 5348, part of CU Boulder’s Master of Science in Electrical Engineering degree. M2M and IoT Interface Design and Protocols is the third of three classes in the Embedded Interface Design (EID) specialization, an online version of the on-campus EID class taught in graduate embedded systems design. This course is focused on connecting devices to each other and to the cloud to create prototypes and actual systems that flow data from devices to consumers. The class includes an introduction to M2M (Machine-to-Machine) and IoT (Internet of Things) concepts, using the cloud to develop IoT systems (specifically AWS (Amazon Web Services) and its IoT framework), a review of common communications protocols at every level of connected devices, and other IoT design concerns such as security, message queuing approaches, and the use and design of APIs and microservices .

Jun 8th 2026
4 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 8th 2026
4 Weeks
Networking and Security in iOS Applications (Coursera) Coursera
University of California, Irvine

Networking and Security in iOS Applications (Coursera)

You will learn to extend your knowledge of making iOS apps so that they can securely interact with web services and receive push notifications. You'll learn how to store data securely on a device using Core Data. You’ll also learn to securely deploy apps to the App Store and beta users over-the-air. The format of the course is through a series of code tutorials. We will walk you through the creation of several apps that you can keep as a personal app toolbox. When you make your own apps after this course, you can bring in these capabilities as needed. When necessary we pop out of the code tutorials to talk about concepts at a higher level so that what you are programming makes sense.

Jun 8th 2026
4 Weeks
Advanced App Development in Android Capstone (Coursera) Coursera
Imperial College London

Advanced App Development in Android Capstone (Coursera)

This capstone project has been designed as an opportunity to practice what you have learned in the first 3 courses of this specialisation. This capstone project consists of 4 assignments. You will have to develop an immersive Android app with the use 3D graphics, sensor control and VR. For the first assignment, you will have to develop a virtual art gallery using the Android Canvas drawing functions introduced in Course 1 "Introduction to Android graphics". The second assignment entails the design and development of a virtual 3D art gallery based on OpenGL ES applying the knowledge and skills acquired in Course 2 "Android Graphics with OpenGL ES". For the third assignment you will create a virtual reality app with your 3D art gallery, using advanced techniques like introducing sensor control, animations, binocular view for VR, lighting effects and texture mapping, based on the knowledge and skills you learned in Course 3 "3D Graphics in Android: Sensors and VR".

Jun 8th 2026
4 Weeks
Software Development Processes and Methodologies (Coursera) Coursera
University of Minnesota

Software Development Processes and Methodologies (Coursera)

Software is quickly becoming integral part of human life as we see more and more automation and technical advancements. Just like we expect car to work all the time and can't afford to break or reboot unexpectedly, software industry needs to continue to learn better way to build software if it were to become integral part of human life.

Jun 8th 2026
4 Weeks
Lean Software Development (Coursera) Coursera
University of Minnesota

Lean Software Development (Coursera)

While scrum and XP were transforming the software development industry, there were another set of ideas (derived from lean manufacturing and Six Sigma) that started to influence software development methods. These ideas around Lean Software Development forms the foundation of number of agile methods. In this course, we will explore lean concepts and cover some of the common Lean methods and techniques like Kanban, Value Stream Mapping, etc.

Jun 8th 2026
4 Weeks
Getting Started with Go (Coursera) Coursera
University of California, Irvine

Getting Started with Go (Coursera)

Learn the basics of Go, an open source programming language originally developed by a team at Google and enhanced by many contributors from the open source community. This course is designed for individuals with previous programming experience using such languages as C, Python, or Java, and covers the fundamental elements of Go.

Jun 8th 2026
4 Weeks
Games, Sensors and Media (Coursera) Coursera
University of California, Irvine

Games, Sensors and Media (Coursera)

You will learn to make fluid digital interactive experiences that are suitable for gaming and use the advanced sensor hardware built into the iPhone and iPad. This includes drawing 2D graphics, playing sounds and music, integrating with Game Center, the iOS physics engine and detecting device orientation and location.

Jun 8th 2026
4 Weeks
Writing Java Application Code (Coursera) Coursera
LearnQuest

Writing Java Application Code (Coursera)

This is the third course in a Specialization titled Java as a Second Language. This course presents instruction to IT professionals for developing Java applications. The material targets professional that are familiar with application programming, but do not have strong Java skills. The type of Java applications focus on: Console based Java applications, Java windows applications, and Java web and mobile applications. This course presents material on developing real applications, and includes hands-on application development labs. Learners will gain strong Java application development skills.

Jun 8th 2026
4 Weeks