Week 1 Flashcards
Service Oriented Paradigm
The Service-Oriented paradigm to programming utilizes services as the constructs to support the development of rapid, low-cost and easy composition of distributed applications.
Services reflect a new “service-oriented”
approach to programming, based on the idea of composing applications by discovering and invoking network-available services rather than building new applications or by invoking available applications to accomplish some task.
What is a web service?
A web service is programmatically available application logic exposed over the Internet
(Web) services in an SOA
Perform encapsulated business functions such as:
- A self-contained business task, such as funds withdrawal or funds deposit service;
- A full-fledged business process, such as the automated purchasing of office supplies;
- An application, such as life insurance application or demand forecasts and stock replenishment;
- Or a service-enabled resource, such as access to a particular back-end database containing patient medical records
What is the difference between Application Service Provider (ASP, Software-as-a-Service (SaaS) and Web service?
ASP: application runs on application solution provider, view in browser
SaaS: application runs on customer side, download on demand
Web Service: partly on customer side & partly on solution provider side
Where can services be used?
Within an enterprise (Enterprise Application Integration)
- Accelerate and reduce cost of integration
- Save on infrastructure deployment & management costs
- Reduce skills requirements
- Improve reuse
Where can services be used?
Between enterprises (e-Business Integration)
- Providing service to a company’s customers
- e.g. an Insurance company wishes to link its systems to the systems of a new institutional customer
- Accessing services from a company’s partners and suppliers
- e.g. dynamically link to new partners and suppliers to offer their service,s to
What are the characteristics of a service?
Broader B2B -> Describe services
Search capabilities -> Discover services
Easier aggregation -> Integrate services together
Types of (Web) services
Informational services
- Content services such as weather report info, simple financial info, stock quote info, news items
- Simple trading services that can provide a seamless aggregation of information across disparate systems & data sources
Complex services
- A supply-chain application involving order taking, stocking orders, sourcing, inventory control, financials and logistics
Service Properties and State
Functional and non-functional properties:
- The functional service description details the operational characteristics that define the overall behaviour of the service
- The non-functional description targets service quality attributes, e.g., service metering and cost, performance metrics (response time or accuracy), security, authorization, authentication, scalability, availability, etc
Sateless or stateful services:
- Services that can be invoked repeatedly without having to maintain context or state they are called stateless.
- Simple informational services are stateless
- Services that require their context to be preserver from one invocation to the next are called stateful.
- Complex services (business processes) typically involve stateful interactions
Services design principles
Loose coupling:
- Coupling indicates the degree of dependency any two systems have on each other.
- Web services are loosed coupled: they connect and interact more freely (across the Internet). They need not know how their partner applications behave or are implemented
Service granularity:
- Simple services are discrete in nature, exhibit normally a request/reply mode of operation & are of fine granularity, i.e., they are atomic
- Complex services are coarse-grained, e.g., a SubmitPurchaseOrder process. These involve interactions with other services and possibly end-users in a single or multiple sessions.
- Coarse-grained communication implies larger and richer data structures, (viz. those supported by XML)
Service-Oriented Architecture
SOA is a logical way of designing a software system to provide services to either end-user applications or to other services distributed in a network, via published and discoverable interfaces
SOA: abstraction layers
Logical layers:
Business (service) domain
Business Processes
Business Services
Physical layers:
Infrastructure Services
Component-based service realisations
Operational Systems
Quality of Service (QoS)
QoS refers to the ability of a Web service to respond to expected invocations and perform them at the level commensurate to. the mutual expectations of both its provider and its customers
The key QoS in a Web services environment are:
- availability
- accessibility
- conformance to standards
- integrity
- performance
- reliability
- scalability
- security
- transactionality
QoS - Availability
The degree to which a system, subsystem or equipment in a specified operable and committable state at the start of a mission, when the mission is called for at an unknown.
The probability that an item will operate satisfactorily at a given point in time when used under stated conditions in an ideal support environment
QoS - Accessibility
Accessibility can be viewed as the “ability to access” and benefit from some system or entity
Example: people with disabilities, or enabling access through the use of assistive technology;