SOA is architecture not a technology. In
software engineering, a service - oriented architecture (SOA) is a set of
principles and methodologies for designing and developing software in the form
of interoperable services. These services have well-defined business
functionalities that are built as software components (discrete pieces of code
and/or data structures) which can be reused for different purposes. SOA design
principles are used during the phases of systems development and integration.
SOA generally provides a way for consumers of services,
such as web-based applications. SOA defines how to integrate widely disparate
applications for a Web-based environment and uses multiple implementation
platforms. Rather than defining an API, SOA defines the interface in terms of
protocols and functionality.
Layer
interaction in service-oriented Architecture
SOA benefits include:
·
Reuse – once the service is written it can be
plugged in wherever needed versus writing the same application over and over
again every time/place you need it
·
Consistency – the service executes the same
way every time so, for example, calculations such as APR (a tricky calculation
for mortgages and one that has to be correct per compliance guidelines) and
underwriting decisions are consistent across applications that consume the
service
·
Scalability & Reliability - because the
services run in a web server environment they can take advantage of load
balancing and fault tolerance technologies to provide scalability and
reliability
·
Rapid development – several services can be
combined very rapidly to create robust applications without having to write
anything but the code necessary to glue them together
·
Integration – access to line of business
systems’ data and functionality becomes trivial if these systems are fronted by
services
The major difficulties of implementing a SOA
were/are:
·
Cooperation and consensus between service
providers (departments within an organization or separate organizations) on
what the service should and should not do, as well as support, Service Level
Agreements and security concerns
·
Performance - services tend to carry some
overhead versus direct and local function calls
·
Versioning – results returned from a
particular service may differ over time as changes are made to the underlying
implementation. Web services need to be versioned so that clients can choose
which version will be executed at any given time
·
Complexity – SOAs are more complex and
require more design and planning than that required for a one-off application
·
Vision and sponsorship – a lot of developers
just don’t see the big picture and often when they do, they don’t have
management’s backing to design and build an SOA platform
In SharePoint SOA is not purely implemented:
SOA particularly as SharePoint itself becomes
ever more ubiquitous. SharePoint provides a suite of services, components and
frameworks, some of which are abstract in nature (e.g., workflow) and some that
perform well-defined, discrete functions as follows:
Name
|
Description*
|
Access Services
|
Viewing, editing and hosting of Access® 2010 databases
|
Business Connectivity Service (BCS)
|
Integration with line-of-business data residing in
external systems
|
Excel Services
|
Viewing, editing, hosting and calculations for Excel
2010®
|
Managed Metadata
|
Taxonomy term sets, social tagging and Content Type
publishing
|
PerformancePoint
|
Dashboards, scorecards, reports, and key performance
indicators (KPIs)
|
SearchServices
|
Crawls, indexing and search queries
|
Secure Store Service
|
Single sign-on services
|
State Service
|
Temporary data storage for applications
|
Usage and Health
|
Farm-wide usage data and reports
|
User Profile
|
My Sites, Profiles pages, Social Tagging &
Computing features
|
Visio Graphics Services
|
Browser-based viewing and refresh of published Visio®
diagrams
|
Web Analytics
|
Collect, report, and analyze usage & effectiveness
of SharePoint 2010
|
Word Automation
|
Bulk document conversions
|
Subscription Settings
|
Tracks subscription IDs & service settings
|