Architecture
principles are strategic guiding statements of
position that communicate fundamental truths,
direction, behavior that must be exhibited by the
enterprise. SOA architecture principles are a subset
of overall architectural principles focused on SOA.
The MomentumSI SOA architecture principles are:
- Business
services have clear business value and alignment: The
lower level business services should have a clear
linkage to and support specific business capability.
- Business
processes are agile, visible and auditable: A
business process should be realized using solutions
that provide the ability to change it quickly and
effectively, the ability to gain visibility into the
process and business flow and the ability to
determine what is happening or has happened during
process execution.
- Data is
accessible on demand: Data must be accessible and
available for use by any entitled consumer and/or
business process.
- Loosely
coupled consumers and service providers share only
service contract: Loose coupling is a condition
wherein a service acquires knowledge of another
service while still remaining independent of that
service. Loose coupling is achieved through the use
of service contracts that allow services to interact
within predefined parameters.
- Consumer
to service provider relationships are managed:
Service contracts should be used to provide a precise
and unambiguous agreement for how the consumer and
the service provider interact.
- Industry
open standards are used as default: When multiple
technologies are available for implementing a
solution, priority will be given to technologies
adhering to industry standards and open architecture.
- Increasing
agility is preferred to maximizing performance: There
are often multiple approaches to solving a business
problem, each of which meets requirements with regard
to application performance. When such options are
available the option that maximizes agility is
preferred to those whose primary advantage is
increased performance.
- Services
are reusable: Design services to support potential
reuse, regardless of whether immediate reuse
opportunities exist. Logic is divided into services
with the intention of promoting reuse.
- Services
are discoverable: Design of an individual service to
be outwardly descriptive so that they can be found
and accessed via available discovery mechanisms. On a
SOA level, service discoverability refers to the
infrastructure’s ability to provide a discovery
mechanism, such as a service registry or directory.
- Services
are composable: A highly composable system provides
services that can be selected and assembled in
various combinations to satisfy specific user
requirements.
- Services
are modular: The logic governed by a service resides
within an explicit boundary. The service has control
within this boundary and is not dependent on other
services for it to execute its governance.
- Services
abstract their implementation and logic: Design
services to act as black boxes, hiding their
implementation details from the outside world but
describing themselves to service requestors through
service contracts. This supports loose coupling and
independence by allowing services to encapsulate
potentially complex processing logic and exposing
that logic through a generic and descriptive
interface.
- Policies
describing non-functional requirements are
externalized, configurable, and described using
standards: Service Level Objectives (SLOs) should be
described using standards-based and configurable
policies. Furthermore, these policies should be
externalized to provide opportunities for federated
governance.
- Broad
consumption of services is preferred to
standardization: There are often multiple approaches
to solving a business problem, some may leverage
industry standards. When such options are available,
the option that maximizes consumption is preferred to
those whose primary advantage is increased support
for industry standards.
|