OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

soa-rm message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [soa-rm] Opaqueness and Transactions


I agree, I think there are many such asynchronous examples.

On 5/4/05, Ken Laskey <klaskey@mitre.org> wrote:
> I could have a service that sends the local weather to anyone on the
> soa-rm mailing list.  I don't know how it determines what local means
> to everyone on the list.  Other than invoking this service, I give it
> no input (its description tells me it will send to the soa-rm list and
> I believe it) and it sends nothing back to me as the requester.
> However, magically everyone gets their local weather.  Is this a good
> design?  That question is out of scope as long as this can been a
> service in an SOA.
> 
> Ken
> 
> On May 4, 2005, at 7:52 AM, Chiusano Joseph wrote:
> 
> >> -----Original Message-----
> >> From: Ken Laskey [mailto:klaskey@mitre.org]
> >> Sent: Tuesday, May 03, 2005 11:41 PM
> >> To: Duane Nickull
> >> Cc: McGregor.Wesley@tbs-sct.gc.ca; soa-rm@lists.oasis-open.org
> >> Subject: Re: [soa-rm] Opaqueness and Transactions
> >>
> >> I am trying to deal with this in the service section write-up
> >> but unfortunately I haven't gotten back to it since New
> >> Orleans.  However, here are some thoughts.
> >>
> >> A service "does something" and that's why you invoke it.  To
> >> a certain extent you can say it is opaque if it requires no
> >> inputs and gives no outputs
> >
> > Then is it truly a service? (you do somewhat express that point below,
> > however) Without inputs, how would it know what to process? It is
> > possible to have no outputs, however (although it is not a good design
> > technique IMO). Consider a service that changes the state of something
> > -
> > for example, decrements an inventory by one - based on input from a
> > user. When completed, the service may not provide an output to the user
> > (an example of an output it could provide, of course, would be a
> > message
> > such as "Thank you - the inventory has now been decremented by 1 for
> > this item"), yet the processing was still done. Again, not a good
> > design
> > technique IMO.
> >
> > Joe
> >
> > Joseph Chiusano
> > Booz Allen Hamilton
> > Visit us online@ http://www.boozallen.com
> >
> >
> > other than to say it did what it
> >> "advertised" but then one can still draw conclusions on its
> >> internal processing based on that.  One can probably draw
> >> better conclusions based on information exchanges through the
> >> published service interfaces.  In any case, the only thing
> >> that is completely opaque is something that sits in a closed
> >> box and appears to do absolutely nothing. :-)
> >>
> >> OTOH, a service may publish metadata that reduces its opacity
> >> but does so to support a consumer's need to make sure it is
> >> invoking the appropriate service.  So some level of
> >> transparency may be required and that may be in response to
> >> external needs rather than requirements of the service
> >> processing.  There are also other possibilities but let's not
> >> get into intentional obfuscation.
> >>
> >> I will try to do justice to this in the write-up but I expect
> >> there to be many, many comments.
> >>
> >> Ken
> >>
> >> On Apr 29, 2005, at 5:52 PM, Duane Nickull wrote:
> >>
> >>> Wes:
> >>>
> >>> I have re-thought this a lot too. I now think that a better axiom
> >>> would be to state that a service controls its' level of
> >> opacity. This
> >>> is also an aspect of the concept of the autonomous nature
> >> of services.
> >>>
> >>> Services are expected to be implemented across a wide variety of
> >>> boundaries and environments. Assuming vastly different
> >> implementation
> >>> models, a service must remain somewhat autonomous in nature and
> >>> assumptions of consistent behavior due to central authorities or
> >>> consistent implementation environments cannot be made carte blanche.
> >>>
> >>> Some of the logic behind the autonomous nature of services is that
> >>> they must be able to reclaim resources needed to perform
> >> their duties.
> >>> A service may have several levels of contracts with
> >> multiple service
> >>> consumers. If a quality of service guarantee is offered to
> >> one group
> >>> of service consumers, while a second group is offered services on a
> >>> "best efforts" basis, the service may decide to end leases on it by
> >>> the group with the best efforts group in order to reclaim resources
> >>> need to fulfill its contractual obligations with the guaranteed
> >>> service group.
> >>>
> >>> Does any of this make sense or am I in need of a weekend?
> >>>
> >>> Duane
> >>>
> >>> McGregor.Wesley@tbs-sct.gc.ca wrote:
> >>>
> >>>> Hi All,
> >>>>
> >>>> I would like clarification on the following items if possible:
> >>>>
> >>>> Opaqueness
> >>>>
> >>>> I believe there are degrees of opaqueness. If a service interface
> >>>> allows JAVA classes as a parameter to the actual call, one
> >> definitely
> >>>> knows that the service supports JAVA at some level, implying the
> >>>> consumer has some knowledge about the internals of the
> >> service (not
> >>>> much but some). The service is not completely opaque.
> >>>>
> >>>> If the service only allowed XML as incoming data and object
> >>>> constructs, then the parser of choice could be in any
> >> language or any
> >>>> other combination of service calls.  I would then say the
> >> service is
> >>>> more opaque.
> >>>>
> >>>> Proposal: There are degrees of opaqueness within the SOA RM and we
> >>>> need to define them.
> >>>>
> >>>> Transactions
> >>>>
> >>>> If a service is a combination service, example, service A
> >> is composed
> >>>> of service B and C, are we going to describe the method by which B
> >>>> and C asynchronous responses are delivered to the appropriate
> >>>> reception point within service A?
> >>>> Proposal: We need to describe by what method or model we support
> >>>> service composition at run-time.
> >>>>
> >>>>
> >>>> All comments welcome especially by those who have not said much so
> >>>> far!
> >>>>
> >>>> Enjoy your face to face,
> >>>>
> >>>> Wes
> >>>>
> >>>> -----Original Message-----
> >>>> From:      Ken Laskey [mailto:klaskey@mitre.org] Sent:
> >> April 20, 2005
> >>>> 4:16 PM
> >>>> To:        Duane Nickull; SOA-RM
> >>>> Subject:   Re: [soa-rm] service composition scenarios
> >>>>
> >>>> Duane,
> >>>>
> >>>> I agree with your analysis.  If there is a reason to know
> >> details of
> >>>> what the service is doing, e.g. a language translation is
> >> needed as
> >>>> part of what the composite service will do and the user
> >> wants to make
> >>>> sure a certain class of translation engines is used, then this
> >>>> information should be part of the service description/metadata and
> >>>> there may be rules/policy to evaluate for the user to make
> >> sure the
> >>>> composite server is appropriate.  Constructing an orchestrated
> >>>> composite service may be done through another service, but such a
> >>>> service will be like any other to the RM.  However, the
> >> example does
> >>>> indicate there may be a need for specific metadata and
> >> rules/policy
> >>>> capability and this may or may not go beyond the idea of a generic
> >>>> service.  (Or, we may say that an SOA requires certain
> >> instances of a
> >>>> generic service be present.)
> >>>>
> >>>> Ken
> >>>>
> >>>> At 03:54 PM 4/20/2005, Duane Nickull wrote:
> >>>>
> >>>>> TC:
> >>>>>
> >>>>> Although this may not be part of the core RM, this is probably an
> >>>>> interesting discussion to have.  The concept of service
> >> composition
> >>>>> has been raised a few times on the list.  I wanted to state a few
> >>>>> observations about this concept.  Please see attached diagram for
> >>>>> details.
> >>>>>
> >>>>> 1. Services are opaque by nature.  That means that the service
> >>>>> consumer cannot see anything beyond the interface (service
> >>>>> interface) it uses.
> >>>>> If one service is actually aggregating two other services, the
> >>>>> service consumer cannot and should not know this.  From a service
> >>>>> consumers viewpoint, a service is merely an agent or
> >> interface that
> >>>>> offer some function(s).  Whether those functions are
> >> mapped to a set
> >>>>> of classes in some native language or another service is not
> >>>>> important or relevant (other than the service metadata
> >> stating what
> >>>>> invoking the service means or does)
> >>>>>
> >>>>> 2. The service function (for service A) is described in
> >> the service
> >>>>> description specific to that service.  If completing the function
> >>>>> depends on two or more serial or parallel paths of execution
> >>>>> successfully completing behind the service interface
> >> (like calling
> >>>>> services B and C) within a certain time frame, that is
> >> not relevant
> >>>>> to state in the service description for service A.  The service
> >>>>> consumer is only concerned with the service's ultimate success or
> >>>>> failure.  Mapping the functionality to success and failure is the
> >>>>> responsibility of the service provider.
> >>>>>
> >>>>> Do you agree with this?  This supports the notion of opaqueness.
> >>>>>
> >>>>> 3. # 1 and # 2 above are mandatory to comply with a services
> >>>>> autonomous nature as described in the W3C WSA and subsequent
> >>>>> services architectures.  A service alone must determine
> >> whether the
> >>>>> service succeeds or fails.  If a service consumer can see any
> >>>>> specifics behind the service, this violates several of the core
> >>>>> principles of SOA.  If visibility beyond the offered service is
> >>>>> required, then the service does nor meet the demand of
> >> the service
> >>>>> consumer.  Accordingly, the service provider and consumer should
> >>>>> discuss and re engineer.
> >>>>>
> >>>>> When implementing, more complex patterns of service
> >> invocation can
> >>>>> be facilitated while keeping these three axioms.  If a
> >> transaction
> >>>>> sequence is needed, a service interface can offer two services - a
> >>>>> put() and a commit().
> >>>>>
> >>>>> Duane
> >>>>>
> >>>>> --
> >>>>> ***********
> >>>>> Senior Standards Strategist - Adobe Systems, Inc. -
> >>>>> http://www.adobe.com Vice Chair - UN/CEFACT Bureau Plenary -
> >>>>> http://www.unece.org/cefact/ Adobe Enterprise Developer
> >> Resources  -
> >>>>> http://www.adobe.com/enterprise/developer/main.html
> >>>>> ***********
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>>
> >>>>
> >> ---------------------------------------------------------------------
> >>>> -
> >>>> -----------
> >>>>   /   Ken Laskey
> >>
> >>>>           \
> >>>>  |    MITRE Corporation, M/S H305    phone:  703-983-7934   |
> >>>>  |    7515 Colshire Drive                    fax:
> >> 703-983-1379
> >>>> |
> >>>>   \   McLean VA 22102-7508
> >>
> >>>>   /
> >>>>
> >>>>
> >> ---------------------------------------------------------------------
> >>>> -
> >>>> ------------
> >>>>
> >>>> *** note: phone number changed 4/15/2005 to 703-983-7934 ***
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>> --
> >>> ***********
> >>> Senior Standards Strategist - Adobe Systems, Inc. -
> >>> http://www.adobe.com Vice Chair - UN/CEFACT Bureau Plenary -
> >>> http://www.unece.org/cefact/ Adobe Enterprise Developer
> >> Resources  -
> >>> http://www.adobe.com/enterprise/developer/main.html
> >>> ***********
> >>>
> >>>
> >> --------------------------------------------------------------
> >> ----------
> >> ------------------
> >> Ken Laskey
> >> MITRE Corporation, M/S H305     phone:  703-983-7934
> >> 7515 Colshire Drive                        fax:        703-983-1379
> >> McLean VA 22102-7508
> >>
> >>
> >>
> >>
> ------------------------------------------------------------------------
> ------------------
> Ken Laskey
> MITRE Corporation, M/S H305     phone:  703-983-7934
> 7515 Colshire Drive                        fax:        703-983-1379
> McLean VA 22102-7508
> 
> *** note change of phone extension from 883 to 983 effective 4/15/2005
> ***
> 
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]