CS2 Service Terminology
CS2 Service Terminology
Akshaya Ganesan
Assistant Professor[Off-Campus]
BITS-Pilani
Agenda
Contact Session 2
• Service Terminology
• Service Models and Layers
• Service-Related Granularity
• Service Orientation Design principles
• Service Orientation Goals and Benefits
Module 2: SOA Terminology
Contact Session 2
Service Terminology
Service
• Applying service-oriented design principles to the design of solution logic results in service-
oriented solution logic.
• The most fundamental unit of service-oriented solution logic is the service.
• Services exist as physically independent software programs.
• Each service is assigned its own distinct functional context and comprises a set of capabilities
related to it.
• Those capabilities suitable for invocation by external consumer programs are commonly
expressed via a published service contract.
Service Terminology
Service capability
• Each service capability is a function offered by the service.
Service Terminology
Service Contract: The Most Important Metadata for SOA
• The most basic interaction in SOA is between Service providers and Service consumers.
• For each interaction between these two parties, one provides some combination of data and
functionality, and the other consumes it.
• The two parties must come to an agreement, or contract, that specifies the details of the Service the
provider is performing.
• A standardized service contract is one of the fundamental design principles in the Service Oriented
Architecture (SOA).
• Service contracts:
• WSDL for SOAP and
• WADL / uniform contract (provided by http)for REST.
• It also contains SLA that describes Qos guarantees, behaviors and limitations
Service Terminology
Service consumer
• A service consumer is a software program that invokes a service.
• Invoking a service means sending a message to one of the service capabilities expressed in the
service contract.
• Any number of programs can act as a service consumer. Eg:a web application, another service
Service Terminology
Service composition
• A service composition is an aggregate of services collectively to automate a common task.
Service Terminology
Service Agent
• A service agent is an event-driven program to act as an intermediary
Service Terminology
Service inventory
• A service inventory is an independently standardized and governed collection of services within
a boundary (an enterprise or a department in an enterprise)
• The inventory can be structured into layers according to the service models used
• Multiple business processes can be automated by the creation of service compositions that
draw from a pool of existing agnostic services that reside within a service inventory.
Service- Related Granularity
Different granularity levels
• Service Granularity
• - functional scope of service
• - fine-grained service- a small quantity of logic
• Capability Granularity
• The functional scope of individual service capability
• Constraint Granularity
• The level of validation logic in a capability
• More coarse grain – fewer constraints
• Data Granularity
• Quantity of data processed
Service Models
A service model is a classification
• When building services they can be categorized depending on:
• the type of logic they encapsulate
• the extent of reuse potential this logic has
• how this logic relates to existing domains within the enterprise
• The three common classifications that represent the primary service models are
Task Service
Entity Service
Utility Service
• The use of these service models results in the creation of logical service abstraction layers.
Service Models
Entity Service
• The entity service model represents a business-centric service.
• Entities should be independent of any particular business process and intended to be reused in
multiple business processes.
• It is considered a highly reusable service because it is agnostic.
• Entity services are also known as entity-centric business services or business entity
services.
Example: Several of its capabilities are indicative of traditional CRUD (create, read, update, delete)
methods.
Service Models
Utility Service
• It is dedicated to providing reusable, cross-cutting utility functionality.
• It encapsulates low-level technology-centric functions like event logging, notification, and
exception handling.
• It is ideally application agnostic.
• The utility service, such as address checking or part number validation, is useful across the
enterprise.
Service Models
Task Service
• Services that implement a business function, activity, or task
• Task services come in different sizes ranging from discrete utility services to large business
services.
• Smaller services tend to be more general purpose.
• Larger business services are usually composed of smaller services.
• This type of service tends to have less reuse potential.
• Examples: calculate the price of an insurance quote.
1) SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with
REST,by Thomas Erl, Benjamin Carlyle, Cesare Pautasso Raj Balasubramanian Prentice Hall.
Thank You!
In our next session: