Week 1 Flashcards
(29 cards)
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;
QoS - Integrity
Capability to handle and interact with unintended changes of data
QoS - Reliability
Degree of trust of the fact that the service will be executing its functionality
QoS - Transactionality
Capability to execute a set of calls in a non interrupted manner (atomic)
Sample: double spending
Service Level Agreements (SLAs)
An SLA is a formal agreement (Contract) between a provider and client, formalising the details of use of a Web service (contents price, delivery process, acceptance and quality criteria, penalties, etc in measurable terms) in a way that meets the mutual understandings and expectations of both providers and clients.
An SLA may contain the following parts:
- purpose
- parties
- validity period
- scope
- restrictions
- service-level objectives
- penalties
- exclusion terms
- administration authority
Distributed compuing
A distributed system is characterised as a collection of heterogeneous networked computers, which communicate & coordinate their actions by passing messages
(Web) services interact through messages.
-> ‘Distributed computing infrastructure’ required!
How are messages sent?
COMPLEX
• Internet protocols are essentially methods of data
transport across the Internet.
• The most prominent of the Internet protocols is Transport
Control Protocol over Internet Protocol (or TCP/IP) which
provide for the reliable delivery of streams of data from
one host to another across the Internet:
• The Internet Protocol (IP) enables the unreliable
delivery of individual packets from one host to
another.
• The Transport Control Protocol (TCP) adds the notions
of connection and reliability.
How are messages sent part 2
Middleware layers. Middleware enables messaging.
Message passing between a pair of processes is
supported by two message communication
operations: send and receive, defined in terms of
destinations and messages.
Marshalling (serialization) (in middleware enabling messaging)
is the process of taking
any form of structured data items and breaking up
so that it can be transmitted as a stream of bytes
over a communications network in such a way that
the original structure can be reconstructed easily on
the receiving end.
Unmarshalling (deserialisation)
• Unmarshalling (deserialization) is the process of
converting the assembled stream of bytes on arrival
to produce an equivalent form of structured data at