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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: RE: [sca-assembly] ISSUE 2: Use of UML 2.0



There is also a way in Java.

from common annotation and api spec:
1639 If a Java implementation needs to realize two services with the same interface, then this is achieved
1640 through subclassing of the interface. The subinterface must not add any methods. Both interfaces are listed
1641 in the @Service annotation of the Java implementation class.

You don't have to do it with @Service, alternative is to have @Remotable on the subinterfaces.

In the implementation that implements the two interfaces you need to call the following to figure out via which
service the call came in
componentContext.getRequestContext().getServiceName();

Michael



Mike Edwards <mike_edwards@uk.ibm.com>

10/05/2007 04:12 PM

To
"Michael Rowley" <mrowley@bea.com>
cc
"Duane Nickull" <dnickull@adobe.com>, sca-assembly@lists.oasis-open.org
Subject
RE: [sca-assembly] ISSUE 2:  Use of UML 2.0






Folks,


If I can add a point.


Java can do this in an SCA world, in the following sense:


a component with a single service interface can be exposed by SCA on multiple endpoints, each

having different bindings or having different policies applied.


same interface, different behaviour


and this may not be uncommon in real environments where a service is accessed very differently within

a business (eg JMS, simple security) vs from outside the business (WS-*, fancy security like Kerberos).



Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  
Email:  mike_edwards@uk.ibm.com


"Michael Rowley" <mrowley@bea.com>

05/10/2007 19:00


To
"Duane Nickull" <dnickull@adobe.com>, <sca-assembly@lists.oasis-open.org>
cc
Subject
RE: [sca-assembly] ISSUE 2:  Use of UML 2.0







 
I suppose an example would help explain what I meant by “two services with the same interface” (I should have at least said “two service on the same component that both provide the same interface”).

 
interface Ping {

   void sendPing();

}

 
<componentType name=”FooType”>

    <service name=”X” type=”Ping”/>

    <service name=”Y” type=”Ping”/>

</componentType>

 
<composite>

 
  <component name=”Foo”>

      <implemention.abstract type=”FooType”/>

  </component>

 
  <component name=”FooClient1”>

      <implementation.something/>

      <reference name=”myX” target=”Foo/X”/>

   </component>

 
  <component name=”FooClient2”>

      <implementation.something/>

      <reference name=”myY” target=”Foo/Y”/>

   </component>

</composite>

 
 
Notice that the component named “Foo” offers two services (“X” and “Y”), both have the same interface.  I think presents a problem if you are going to map these to UML’s concept of a “provided interface”.  (BTW, this isn’t relevant to components written in Java, since Java can’t do this, but BPEL can).

 
Foo’s two different service can be addressed seperately.  FooClient1 is wired to Foo/X, while FooClient2 is wired to Foo/Y.

 
Michael

 
 





From:
Duane Nickull [mailto:dnickull@adobe.com]
Sent:
Friday, October 05, 2007 11:49 AM
To:
Michael Rowley; sca-assembly@lists.oasis-open.org
Subject:
Re: [sca-assembly] ISSUE 2: Use of UML 2.0

 
Michael:

I agree that UML is not for everyone and would strongly encourage its use only where the ambiguity resulting from using a simpler convention may lead to circumvention of the specs.  However..it is a normative convention and does provide a level of specification that these specs require in some cases.

Your comments about the semantics confused me (yes – I know the S word can be a big rat hole).

On 10/5/07 6:42 AM, "Michael Rowley" <mrowley@bea.com> wrote:
two services with the same interface, or two components implemented using the same class”

Wouldn’t two services using the same interface be the same service with two different functions (overloading capabilities)?  Why would that not be express able in UML CVD?  Maybe I am missing something but if you are simply referring to a service interface whereby it can accept tokens A, B and C as its input data model, does function X and returns Z (but optionally you can send B, C and D, it does function Y and sends you return value Y) this is akin the the concept of overloading a class interface and is (IMO) a somewhat common variation of a service interaction using the request-response behavior model (not that using other behavior models like subscribe-push should really affect this).

I guess it depends upon what is considered to make a service unique (endpoint vs. operations).  Apologies if I have missed the point.

The second part you talked about is also something we should be able to express in UML.

Duane


 


--
**********************************************************************
"Speaking only for myself"
Blog -
http://technoracle.blogspot.com
Community Music -
http://www.mix2r.com
My Band -
http://www.myspace.com/22ndcentury
MAX 2007 -
http://technoracle.blogspot.com/2007/07/adobe-max-2007.html
**********************************************************************






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU







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