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

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.

Aug 3rd 2026
5-12 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.

Aug 3rd 2026
4 Weeks
Development of Real-Time Systems (Coursera) Coursera
EIT Digital

Development of Real-Time Systems (Coursera)

This course is intended for the Master's student and computer engineer who likes practical programming and problem solving! After completing this course, you will have the knowledge to plan and set-up a real-time system both on paper and in practice. The course centers around the problem of achieving timing correctness in embedded systems, which means to guarantee that the system reacts within the real-time requirements.

Jul 27th 2026
5-12 Weeks
Avatar Psychology for Designers (Coursera) Coursera
Michigan State University

Avatar Psychology for Designers (Coursera)

This course covers the latest and greatest psychological research on avatars and is relevant to current and future designers of any medium that includes user self-representations (e.g., video games, virtual worlds, robots, automobiles, social media, etc.). By taking this course, you will be able to define digital and non-digital avatars and identify how they are applicable in everyday life.

Aug 3rd 2026
4 Weeks
Advanced Modeling for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Advanced Modeling for Discrete Optimization (Coursera)

Optimization is a common form of decision making, and is ubiquitous in our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions in manpower and material resources management also allow corporations to improve profit by millions of dollars.

Jul 20th 2026
5-12 Weeks
Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Jul 20th 2026
5-12 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.

Jul 20th 2026
4 Weeks
The Arduino Platform and C Programming (Coursera) Coursera
University of California, Irvine

The Arduino Platform and C Programming (Coursera)

The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices.

Jul 20th 2026
4 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Aug 3rd 2026
4 Weeks
AJAX for Web Developers (Coursera) Coursera
Coursera Instructor Network

AJAX for Web Developers (Coursera)

The "AJAX for Web Developers" course explores how modern websites update parts of a web page without the need to reload the entire page, providing a fluid and fast user experience. This course covers the relationship between client apps or websites and servers, the distinction between full page loads and AJAX, and the best use-cases for each.

Jul 27th 2026
3 Weeks
Agile Meets Design Thinking (Coursera) Coursera
University of Virginia

Agile Meets Design Thinking (Coursera)

Despite everyone's good intentions, hard work and solid ideas, too many projects end up creating unneeded, unusable, and unsellable products. But it doesn't have to be this way. Agile and design thinking offer a different--and effective--approach to product development, one that results in valuable solutions to meaningful problems. In this course, you’ll learn how to determine what's valuable to a user early in the process--to frontload value--by focusing your team on testable narratives about the user and creating a strong shared perspective.

Jul 20th 2026
4 Weeks
Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Jul 20th 2026
4 Weeks