1
|
|
2
|
|
3
|
- Software Architecture
- SOA
- Evolution
|
4
|
|
5
|
- IEEE 1471-2000
- Software architecture is the fundamental organization of a system,
embodied in its components, their relationships to each other and the
environment, and the principles governing its design and evolution
- Other definitions of Software Architecture
- collection of the fundamental decisions about a software
product/solution designed to meet the project‘s quality attributes.
Includes the main components, their main attributes, and their
collaboration expressed in several levels of abstraction (depending on
the project's size).
- Architecture is the first design artifact where a system’s quality
attributes are addressed
|
6
|
- A facility supplying some public demand the work performed by one that serves HELP, USE, BENEFIT
- In economics and marketing, a service is the non-material equivalent of
a good. Service provision has been defined as an economic activity that
does not result in ownership, and this is what differentiates it from
providing physical goods.
- It is claimed to be a process that creates benefits by facilitating
either a change in customers, a change in their physical possessions, or
a change in their intangible assets.
|
7
|
- A Windows Service?
- RPC Locator, EventLog, DHCP Client,
- Software Service?
- Distribution Service, Alert Service
- Security Service, Log Service
- Business Service?
- Common Operational Picture, Navigation
- Accounts Receivable, Customers
|
8
|
|
9
|
- Service-oriented architecture other than its literal translation that it
is an architecture that relies on service-orientation as its fundamental
design principle. Service-orientation describes an architecture that
uses loosely coupled services to support the requirements of business
processes and users
- Architecture is not tied to a specific technology. It may be implemented
using a wide range of technologies, including REST, RPC, DCOM, CORBA or Web
Services.
|
10
|
|
11
|
- SOA is a design for linking business and computational resources
(principally organizations, applications and data) on demand to achieve
the desired results for service consumers (which can be end users or
other services). OASIS (the Organization for the Advancement of
Structured Information Standards) defines SOA as :
- A paradigm for organizing and utilizing distributed capabilities that
may be under the control of different ownership domains. It provides a
uniform means to offer, discover, interact with and use capabilities to
produce desired effects consistent with measurable preconditions and
expectations.
|
12
|
- IBM has created a model to depict Web services interactions which is
referred to as a “service-oriented architecture” comprising
relationships among three entities (see next slide):
- A Web service provider;
- A Web service requestor; and a
- A Web service broker.
- Note: IBM’s service-oriented architecture is a generic model describing
service collaboration, not specific to Web services.
- See http://www-106.ibm.com/developerworks/webservices/
|
13
|
|
14
|
- The business disaggregates its business process models downward toward
the atomic business services layer.
- IT aggregates software assets upward toward that layer using
service-oriented integration.
- They meet in the middle and negotiate a consensus view of the necessary
atomic business services.
|
15
|
|
16
|
|
17
|
- The main drivers for SOA adoption are that it links computational
resources and promotes their reuse. Enterprise architects believe that
SOA can help businesses respond more quickly and cost-effectively to
changing market conditions.
- This style of architecture promotes reuse at the macro (service) level
rather than micro level (objects). It can also simplify interconnection
to - and usage of - existing IT (legacy) assets.
- SOA promotes the goal of separating users (consumers) from the service
implementations. Services can therefore be run on various distributed
platforms and be accessed across networks. This can also maximize reuse
of services
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
- ESB provides the mechanism for continuously adapting the portfolio of
available services to accommodate shifting needs.
- Rather than requiring constant updates to constituent services, the ESB
can adaptively mediate among them.
- For example, if two services use slightly different formats for their
messages, the ESB can translate between them.
- Alternately, if a business change in one area requires a new version
of a service, the ESB can
route requests that require
enhanced functionality to the new version while routing requests that
assume only basic functionality to the old version.
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
- Service Encapsulation
- Service Loose coupling - Services maintain a relationship that minimizes
dependencies and only requires that they maintain an awareness of each
other
- Service contract - Services adhere to a communications agreement, as
defined collectively by one or more service description documents
- Service abstraction - Beyond what is described in the service contract,
services hide logic from the outside world
- Service documentation - A description of a service-oriented design must
contain at least three separate uses of the phrase "business
value".
|
41
|
- Service reusability - Logic is divided into services with the intention
of promoting reuse
- Service composability - Collections of services can be coordinated and
assembled to form composite services
- Service autonomy – Services have control over the logic they encapsulate
- Service optimization – All else equal, high-quality services are
generally considered preferable to low-quality ones
- Service discoverability – Services are designed to be outwardly
descriptive so that they can be found and assessed via available
discovery mechanisms
|
42
|
|
43
|
|
44
|
|
45
|
- One of the biggest motivation for SOA is to reduce the cost of
application integration
- Standard-based, pluggable infrastructure
- Service Engines: Provides
business logic and integration services
- Binding Components: Provides communications protocols
- JBI does for application integration what J2EE did for application
development
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
- BPM provides process modeling, execution, and management components.
|
56
|
|
57
|
|
58
|
|
59
|
|
60
|
|
61
|
|
62
|
- Service access – A layer of presentation services that provide
transparent access to multiple device types and simplify the task of
integrating Web services into na enterprise portal environment
- Service composition – Tools for composing Web pages with a consistent
user interface and a development environment for building reusable
software components that are based on Web services standards
|
63
|
- Service orchestration – Tools for business process management and
assembling composite applications that can be used to create new
services in support of business processes
- Service integration – Legacy or packaged applications can be integrated
into the SOA environment using service integration tools and pre-built
adapters for commonly used enterprise applications
- Enterprise service bus – Core
integration services for connectivity, transformation, and routing are
provided by the enterprise service bus
|
64
|
|