UPI Study › Courses › Software Engineering › Free lessons › Lesson 15.4 Free with a free account
Service-Oriented Architecture and SaaS
Software Engineering · Chapter 15: Distributed Systems, Services, and Sociotechnical TopicsSection 15.4 · lesson 98 of 1037 min · free with a free account
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of Software Engineering.
Lesson complete
Earn the 3 college credits for Software Engineering
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Engineering Services: From Definition to Delivery →← Architecture Patterns for Building Distributed SystemsNext lesson: Engineering Services: From Definition to Delivery →
In this lesson
An architectural style, and a delivery model - often together, never the same.
- Define service-oriented architecture and its core principles
- Define SaaS, and how it differs from SOA
- Weigh the benefits of each against real trade-offs
- Recognize where composing services adds clear value
Transcript
Everything said in the video, section by section (876 words). Read along, or search it.
Distributed Systems, Services, and Sociotechnical Topics
Service-Oriented Architecture and SaaS
Transparency, concurrency, and scalability describe what a good distributed system should achieve. They do not say how to structure one. This section covers one influential answer, service-oriented architecture, and a closely related idea that is often confused with it, software as a service.
From Principles to Structure
2 Related Ideas
Service-oriented architecture, or S O A, is an architectural style. It builds a system as a collection of independent services, each exposing a defined interface, that can be discovered, reused, and combined into larger applications. Software as a service, or SaaS, is closely related, but conceptually distinct. It is not an architecture at all. It is a business model for how software gets delivered to customers. And it frequently relies on S O A internally.
SOA
Independent Services, Defined Interfaces
In S O A, a service is a self-contained unit of functionality, exposing a well-defined interface. Other parts of the system can call it without knowing how it is implemented internally. Services are loosely coupled, interacting only through their defined interfaces. And they are reusable, built once and called on by many different consumers. They are discoverable, so a consumer can find and understand what a service offers. And they are composable, so a larger business process can be assembled by combining several independent services.
Figure 15.4A
A Process Composed From Services
Here is a process composed from independent services. Order fulfillment calls on four of them. Inventory, shipping, payment, and notification. Now a completely different process, subscription renewal, needs to charge customers and notify them. It simply reuses the same payment and notification services. That reuse, by an entirely different process, is exactly the payoff loose coupling is meant to provide.
SaaS
Software as a Service
Software as a service is a delivery model. An application is hosted centrally by a provider, and customers use it over the internet, typically in a web browser, rather than installing it on their own machines. SaaS is usually multi-tenant. Many customers share the same application instance and infrastructure, with each customer's data kept separate. And it is typically billed as an ongoing subscription, rather than a one-time purchase. So SaaS shifts both where the software runs, and how the customer pays for it.
Easy to Conflate
Different Questions
S O A and SaaS are easy to conflate, but they answer different questions. S O A is an architectural choice, about how a system is structured internally. SaaS is a business choice, about how finished software reaches its customers. A SaaS product is very often built using S O A inside. But the two ideas do not require each other. And S O A itself should sound familiar. It is component-based construction, applied to independently running, networked services.
Benefits and Trade-offs
What SOA Gives, and Costs
Composing systems from independent services brings real advantages. Reuse across an organization. Faster development, by composing rather than custom building. And independent scaling of each service. The trade-offs are just as real. There are more moving, independently failing parts to monitor and coordinate. And there is a real dependency risk. Every consumer of a shared service is affected if that service changes, or goes down.
SaaS Trade-offs
What the Customer Gains, and Gives Up
For SaaS specifically, the customer gains a lower upfront cost, and automatic maintenance. They can adopt capable software without owning and maintaining the infrastructure it runs on. In return, they give up some control over customization, accept an ongoing subscription cost, and depend on a third party to host their data responsibly. Email and productivity software, customer relationship management, and accounting software are now commonly delivered this way.
Table 15.4
SOA and SaaS at a Glance
Here are the two side by side. S O A is an architectural style for structuring a system. SaaS is a model for delivering software to customers. S O A's core idea is independent, reusable, composable services. SaaS's core idea is centrally hosted, subscription-based access. S O A's key benefit is reuse and independent scaling, at the cost of more moving parts and dependency risk. SaaS's key benefit is lower upfront cost and automatic maintenance, at the cost of less control, and an ongoing bill.
Apply It
The Payment Service Changes Its Interface
Let's apply that. The payment service changes its interface, without warning. What happens to the subscription renewal process? It breaks. And so does order fulfillment, because it depends on the same service. Every consumer of a shared service is affected by its changes. Loose coupling only protects consumers while the interface they depend on holds steady.
Key Terms
The Vocabulary of This Section
Let's lock in the key terms. Service-oriented architecture structures a system as a collection of independent, reusable services with defined interfaces. A service is a self-contained unit of functionality behind a well-defined interface. Loose coupling means services interact only through defined interfaces, without depending on each other's internal details. Software as a service is a delivery model where an application is centrally hosted, and accessed over the internet, typically by subscription. And multi-tenant means many customers share the same application instance and infrastructure, with their data kept separate.
Key Takeaways
What to Carry Forward
To pull this together. S O A structures a system as loosely coupled, reusable, discoverable, and composable services. SaaS is a delivery model. It is conceptually distinct from S O A, even though SaaS products are often built on it. S O A's reuse and independent scaling come with more moving parts, and shared-service dependency risk. SaaS trades customer control and an ongoing cost, for lower upfront investment and automatic maintenance. And composing services into a larger process is component-based construction, applied at the level of networked services.
About Software Engineering at UPI Study
Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.
Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take Software Engineering with UPI Study
Where the credit goes
Universities that work with NCCRS
Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.
FAQ
Questions students ask us
About Service-Oriented Architecture and SaaS
What is service-oriented architecture (SOA)?
What is the difference between SOA and SaaS?
What does multi-tenant mean in SaaS?
What are the risks of sharing services in a service-oriented architecture?
About the Software Engineering course
How many college credits is Software Engineering?
How much does Software Engineering cost and what is included?
Which universities accept UPI Study credits?
How long does Software Engineering take?
How are the exams done?
How do my credits reach my college?
Ready for the full course? Earn 3 credits in Software Engineering.
103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.
3 credits · NCCRSEnroll →