<Quote>
But doesn't this
leave open an SOA being just a form of OO?
</Quote>
Sort of, due to SOA's "componentized" nature.
However, objects are generally abstracted several layers below SOA in that
regard. One stack that you'll see semi-often (particularly from IBM) is the
following:
SOA
-------------
Components
-------------------
Objects
Joe (not at the bottom of the stack:)
Joseph Chiusano
Booz Allen Hamilton
Visit
us online@ http://www.boozallen.com
From: Christopher Bashioum
[mailto:]
Sent: Mon 4/11/2005 11:36
AM
To: 'Matthew MacKenzie'
Cc:
Subject: RE: [soa-rm] Types of Services
(RE: [soa-rm] Definition of "Service Consumer")
But doesn't this leave open an SOA being just a form of
OO? Would a C++ library be an SOA? Could you elaborate on your use
case- maybe that will help me understand better. In particular, i'm
wondering about the "automatically perform" portion. This may be a
difficult area, because we don't want to get too concrete, but at the same
time we shouldn't try to be so abstract that anything goes.
Maybe we can put in a placeholder for the message or bus
mechanism, and see if it can drop out of the RM later or if it begins to show
itself as an essential part of the RM (at which time we can decide what to call
it).
From: Matthew MacKenzie
[mailto:]
Sent: Monday, April 11, 2005 11:27
AM
To: Christopher Bashioum
Cc:
Subject: Re: [soa-rm] Types of Services
(RE: [soa-rm] Definition of "Service Consumer")
A service is merely something that performs some task(s) on behalf
of / for a consumer. Defining the mechanics of how the service knows what or
when to do is, to me, not in scope for SOA-RM.
I envision services
residing within an SOA that automatically perform services on behalf of a
dynamic set of consumers based on their own determination of the requirement
for a service to be rendered. I want this kind of use case to be recognized
within the reference model without needing to explicitly spell it
out.
-Matt
On 11-Apr-05, at 7:27 AM, Christopher Bashioum
wrote:
Ken and Joe,
do all services have a 2-way
communication mechanism, or is it possible to have a service that just
consumes messages (or just sends messages)? The reason I
am asking, is that it looks like all the interactions mentioned
so far involve a request and a response, but I am wondering about
the idea of events or
broadcasts.
From: Ken Laskey
[mailto:]
Sent: Monday, April 11, 2005 12:34
AM
To: Chiusano Joseph
Cc: Christopher Bashioum;
Subject: Re: [soa-rm] Types of
Services (RE: [soa-rm] Definition of "Service Consumer")
Let me
suggest the following:
A data resource is a source of content.
It accepts a request and returns a value or set of values in response. The
return can be an entity (such as a particular schema), an attribute of an
entity (such as when the schema was last modified), or any numerical or
textual value or set of values. The content can be static objects stored in
some repository or dynamically generated through the use of a processing
resource. Data about a missile that is stored in a database is content. The
weather forecast for tomorrow is content generated from a weather
simulation. In a net-centric environment, the requester does not know the
format from which the response is retrieved or how it is generated.
A
processing resource is one that accepts a task and return a status
indicating the extent to which the task was completed and information on how
the state of entities changed as a result of the processing. One or more
processing resources may be invoked as part of a process of submitting a
query and being returned a response. From the standpoint of a user (either
human or machine), it is unimportant what combination of data and processing
resources are invoked as long as the request is satisfied.
Services
interact with (i.e. use, invoke, access, ...) these
resources.
Ken
On Apr 10, 2005, at 2:00 PM, Chiusano Joseph
wrote:
I wonder if the roles a service can play - or, perhaps one
can say, the
general types of services that can exist - have any bearing
on our RM at
all, in an indirect way.
Put in simple terms, one may
say that there are - in general - 3
overarching "types" of services.
These correspond to 3 of the layers of
the general "integration stack"
(data, application, and process):
(1) Data-Oriented Service: Primary
role is to accept and process data,
or provide data based upon a
request.
Two general types:
(a) Data Processor*: Accepts as
input a set of data, processes that
data, and (optionally) sends a
response. The response may simply be an
acknowledgement, or another set
of data to be processed by the service
requester**.
Ex: Simple
form acceptance service, such as a loan application form
service acting
on behalf of multiple banks (routes to proper bank and
sends back
acknowledgement to form submitter)
(b) Data Provider: Provides
streaming data, or a set of data upon
request.
Ex's: RSS news feed
(streaming data), stock quote (set of data upon
request - given stock
ticker symbol)
*need better term - using this for illustration
purposes only
**using term "requester" for now since we have not
established our
perferred term
(2) Application-Oriented Service
(aka "Function-Oriented Service"):
Primary role is to accept a command
and carry out processing based on
that command, in a singular fashion
(i.e. does not invoke other
services).
Ex's: Inventory
verification service (accepts item #, responds with
whether or not it is
in inventory), shipment cost calculation service
(3) Process-Oriented
Service: Similar to Application-Oriented Service,
but invokes other
services in carrying out its processing (i.e. it
embodies the definition
of an overarching process).
Ex: Order processing service (checks
customer credit, checks inventory,
does shipment cost calculation,
etc.)
Thoughts?
Joe
Joseph Chiusano
Booz Allen
Hamilton
Visit us online@
http://www.boozallen.com
-----Original Message-----
From:
Christopher Bashioum [mailto:]
Sent: Thursday, April
07, 2005 12:49 PM
To:
Subject: RE:
[soa-rm] Definition of "Service Consumer"
When we talk about service
consumer vs. provider in this
sense, I think we need to separate the
"static" entity from
the dynamic role that said entity plays. A given
entity can
be both service provider (in which case it publishes
it's
service description) and service consumer (in which case it
binds
to another service provider in order to accomplish its
own
service).
So...to re-word your statement a little: An entity that
binds
with a service is playing the role of service
consumer.
-----Original Message-----
From: Vikas Deolaliker
[mailto:]
Sent: Thursday, April 07, 2005 12:21
PM
To: 'Frank McCabe';
Subject: RE:
[soa-rm] Definition of "Service Consumer"
Using the
publish/find/bind framework of SOA...
The entity that publishes is
certainly not the consumer. The
entity that
finds may or may not be
the consumer but the entity that
binds is certainly
the
consumer.
So an entity that "binds" with a service would be the
closest
to a service
consumer.
Vikas
-----Original
Message-----
From: Frank McCabe
[mailto:]
Sent: Thursday, April 07, 2005 9:00
AM
To:
Subject: Re: [soa-rm] Definition of
"Service Consumer"
There is a distinction between the software
*entity*
(agent/component/J2EE bean/.../) that interacts with
a
service in order
to achieve some goal, and the person or persons for
whom that
interaction is taking place.
The reason that this
distinction is important is similar to the
distinction between a service
interface and the service itself:
accessing your bank account from an ATM
or on-line will use different
interfaces but ultimately all use the same
service.
Here is an example of why its important: the
appropriate
business logic
to apply to a service request will depend
on many factors:
the means by
which the request was delivered, the
request itself and the
person (or
persons) for whom the request was
made. This last aspect is
completely
independent of mode of requesting
and is purely business/application
specific.
Incidentally, the
above definition: "an agent that interacts with a
service in order to
achieve a goal" seems to be a reasonable
definition
of a service
requester.
On Apr 7, 2005, at 7:23 AM, Gregory A. Kohring
wrote:
Matthew,
OK, here a fewer other choices which might
be deemed more
"respectful"...
Service Consumer:
1)
End-user of a service.
2) An agent which, acting on behalf of its
owner, uses a service.
3) An entity which utilizes a
service
4) An entity which consumes the product or information
produced by a
service.
Note all of these definitions depend
upon the definition of the
term "service". Have we agreed on this
already? Perhaps we should
start there first...
--
Greg
Matthew MacKenzie wrote:
I think services deserve
respect, lets try not to exploit them :-)
Gregory A. Kohring
wrote:
Thomas,
Perhaps one should use a somewhat broader
definition
which captures
the human user as well:
Service
Consumer: An entity which exploits a service.
--
Greg
Thomas Erl wrote:
Now that we've decided on the
term "service consumer" it may be
useful to formally define it. The term
"consumer" is used by the
WS-I Basic Profile wherein it is simply defined
as
"Software that
invokes an
instance."
Thomas
--
======================================================================
G.A.
Kohring
C&C Research Laboratories, NEC Europe
Ltd.
======================================================================
------------------------------------------------------------------------------------------
Ken
Laskey
MITRE Corporation, M/S H305 phone: 703-883-7934
7515 Colshire
Drive fax: 703-883-1379
McLean VA
22102-7508