Service-Oriented Software Engineering

Course Reflection

Likes

This was a great subject for me, especially since I previously worked as a DevOps engineer. Topics like service-oriented architecture and microservices felt very familiar and relevant.

One of my favorite parts of the course was learning about ArchiMate. It’s an extremely useful modeling language in enterprise and corporate environments. My previous workplace didn’t use it, but after this course, I can clearly see how powerful it is for structuring and communicating complex systems.

Dislikes

There’s not much to complain about. The project was engaging and genuinely enjoyable. The exam, however, was quite challenging—I managed to pass, but I think there’s room for improvement in how it’s structured.

Link to the Report


Introduction to Service-Oriented Computing (SOC)

What is Service-Oriented Computing?

Service-Oriented Computing (SOC) is a paradigm that uses services as the fundamental building blocks for designing and deploying distributed applications. These services are self-describing, platform-independent, and designed to support rapid and cost-effective application development.

Service-Oriented Architecture (SOA)

Service-Oriented Architecture (SOA) provides the structural backbone of SOC. It reorganizes software systems into loosely coupled services that can be composed, discovered, and reused.

Core SOA Roles

  • Service Providers: Develop, deploy, and maintain services.
  • Service Clients (Requestors): Consume services.
  • Service Registry: A centralized directory where services are published and discovered.

These entities interact through three operations:

  • Publish
  • Find
  • Bind

Key Characteristics of Services

  1. Technology Neutral
    Services use standardized protocols to work across different platforms.

  2. Loosely Coupled
    Services operate independently of one another’s internal implementations.

  3. Location Transparent
    Services can be discovered and invoked regardless of their physical location (e.g., via UDDI).

Types of Services

  • Simple Services: Perform a single, well-defined function.
  • Composite Services: Combine multiple services to provide complex functionality.

Web Services

A web service:

  • Is identified by a URI
  • Uses internet standards and protocols
  • Is self-describing using WSDL
  • Communicates using SOAP or REST, typically with XML data

Service Discovery

UDDI (Universal Description, Discovery, and Integration) enables service publication and discovery, allowing clients to locate and understand available services.

Evolution of SOC

SOC extends the Software-as-a-Service (SaaS) model to support complex business processes, transactions, and dynamic service composition.

Extended SOA (ESOA)

Basic SOA struggles with cross-cutting concerns such as:

  • Service orchestration
  • Transactions
  • Coordination
  • Security
  • Monitoring and management

Extended SOA (ESOA) addresses these issues by introducing additional architectural layers.

Key ESOA Concepts

  • Service Composition Layer: Combines multiple services into composite services.
  • Service Aggregators: Providers that bundle multiple services into value-added offerings.
  • Managed Services: Support critical systems and markets.
  • Service Grid Bus (SGB): An infrastructure layer that manages services in dynamic, virtual marketplaces and ensures end-to-end quality of service.

Lecture 1
Paper


Service Modeling

The Importance of Models

Models are everywhere in software engineering. UML is widely used to visualize system architectures, but in service-oriented systems, service modeling becomes especially important.

Service Description vs Service Modeling

Service modeling captures:

  • What the service does (functionality)
  • How it interacts with data
  • Non-functional requirements such as performance, reliability, and scalability

Web Service Standards

  • Description: WSDL
  • Invocation: SOAP or REST
  • Discovery: UDDI

Semantic Web and Service Modeling

Semantic technologies enhance service modeling by making service descriptions machine-understandable.

Key Semantic Languages

  • OWL-S
  • WSMO
  • WSDL with semantic annotations

Most semantic approaches follow the IOPE model:

  • Input
  • Output
  • Preconditions
  • Effects

Semantic Languages

  • RDF (Resource Description Framework)
  • OWL (Web Ontology Language)

These enable:

  • Explicit semantics
  • Ontology-based modeling
  • Interoperability
  • Inference

Logic in Service Modeling

  • First-Order Logic: Static systems
  • Temporal Logic: Dynamic behavior
  • Other Logics: Dynamic and non-monotonic logic

Conditions and Assumptions

  • Preconditions: State before execution
  • Postconditions: State after execution
  • Assumptions: Hypotheses that must be validated

Quality of Service (QoS)

QoS measures service effectiveness, including:

  • Delivery schedules
  • Payment schedules

Applying Service Modeling in Teams

External Aspects

  • Team goals and stakeholders
  • Conditions and assumptions
  • QoS and delivery schedules
  • Escalation and penalty models

Internal Aspects

  • Semantic knowledge bases
  • Tool selection
  • Ownership and delegation

Invocation and Response Handling

  • Define how services are invoked
  • Specify how responses are delivered

Lecture 2
Paper


Business Process Modeling (BPMN)

What is BPMN?

Business Process Model and Notation (BPMN) is a standardized graphical notation for modeling business processes. It bridges the gap between business design and technical implementation.

Why BPMN Matters in SOSE

BPMN is essential for:

  • Visualizing service interactions
  • Identifying inefficiencies
  • Aligning business processes with service architectures

Core BPMN Elements

Flow Objects

  • Events
  • Activities
  • Gateways

Connecting Objects

  • Sequence flows
  • Message flows
  • Associations

Swimlanes

  • Pools
  • Lanes

Artifacts

  • Data objects
  • Groups
  • Annotations

Activities

  • Tasks: Atomic units of work
  • Subprocesses: Grouped sets of tasks

Events

Start Events

  • None, Message, Timer, Conditional, Signal

Intermediate Events

  • Catch, Throw, Timer, Message, Error, Escalation

End Events

  • None, Message, Error, Terminate, Signal

Gateways

  • Exclusive (XOR)
  • Parallel (AND)
  • Inclusive (OR)
  • Event-Based
  • Complex

Tokens in BPMN

Tokens represent the flow of control:

  • Move through activities
  • Split or merge at gateways
  • Help visualize execution paths

BPMN in Practice

Example: Online order processing

  1. Start event: Order placed
  2. Task: Validate order
  3. Gateway: Payment success?
  4. Task: Fulfillment
  5. End event: Delivery

BPMN and SOSE

In service-oriented systems, BPMN models:

  • Service interactions
  • Dependencies
  • Data flow

This supports both system design and ongoing process optimization.

Lecture 3


Final Thoughts

This is a strong subject, particularly valuable for anyone interested in enterprise systems, DevOps, or service-based architectures. It blends theory with practical modeling tools and provides a solid foundation for understanding how complex service ecosystems are designed, managed, and optimized.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Irrational Generative Agents – Capstone Project
  • Machine Learning Algorithms and Applications
  • Big Data Analytics
  • Computer Vision Algorithms and Systems
  • Data Management Systems