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: ISSUE 66: Introduce a top-level interface element in SCDLs



http://www.osoa.org/jira/browse/ASSEMBLY-66

On May 27, 2008, at 12:01 AM, C Vamsi wrote:
>
> DESCRIPTION:
> I felt that the introduction of a top-level interface element (say
> interface.sca) in SCDLs will help in having more clarity with the
> interfaces used in conversational services.  The idea is to be able to
> create an interface definition from existing interface definitions  
> and add
> additional semantics like declaring the interface as conversational,  
> adding
> a callback, declaring methods as endsConversation, oneWay etc.  This  
> should
> allow creating an interface in SCDLs as if a java interface and its  
> methods
> are decorated with @Conversational, @Callback, @EndsConversation,  
> @OneWay
> annotations.
>
> Issue 47 [1] talks about introducing an operation child element in
> interface element with name, oneWay and endsConversation  
> attributes.  This
> still leaves a chance for inconsistencies.  For e.g., in the following
> composite,
>
> <composite ...>
> <component name="c0">
>     ...
>     <service name="Service1">
>         <interface.java interface="com.example.MyService">
>     </service>
> </component>
> <component name="c1">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.java interface="com.example.MyService">
>             <operation name="method1" endsConversation="true"/>
>         </interface.java>
>     </service>
> </component>
> <component name="c2">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.java interface="com.example.MyService">
>             <operation name="method2" endsConversation="true"/>
>         </interface.java>
>     </service>
> </component>
> <composite>
>
> c1/Service1 declares method1 in MyService as endsConversation whereas
> c2/Service1 declares method2 in MyService as endsConversation.  It  
> may not
> be obvious whether it is an error or it is the way it is intended to  
> be.
>
> Assuming that method2 is decorated with endsConversation by mistake,  
> with a
> top-level interface element, the composite would look like the  
> following:
>
> <composite ...>
> <interface.sca name="MyConversationalService"
> interface="com.example.MyService" conversational="true">
>     <operation name="method1" endsConversation="true"/>
> </interface.sca>
>
> <component name="c0">
>     ...
>     <service name="Service1">
>         <interface.java interface="com.example.MyService">
>     </service>
> </component>
> <component name="c1">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.sca interface="MyConversationalService"/> <!--  
> Notice
> the use of MyConversationalService -->
>     </service>
> </component>
> <component name="c2">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.sca interface="MyConversationalService"/> <!--  
> Notice
> the use of MyConversationalService -->
>     </service>
> </component>
> <composite>
>
> If indeed method2 is decorated with endsConversation correctly, with a
> top-level interface element, the composite would look like the  
> following:
>
> <composite ...>
> <interface.sca name="MyConversationalService"
> interface="com.example.MyService" conversational="true">
>     <operation name="method1" endsConversation="true"/>
> </interface.sca>
>
> <interface.sca name="MyOtherConversationalService"
> interface="com.example.MyService" conversational="true">
>     <operation name="method2" endsConversation="true"/>
> </interface.sca>
>
> <component name="c0">
>     ...
>     <service name="Service1">
>         <interface.java interface="com.example.MyService">
>     </service>
> </component>
> <component name="c1">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.sca interface="MyConversationalService"/> <!--  
> Notice
> the use of MyConversationalService -->
>     </service>
> </component>
> <component name="c2">
>     ...
>     <service name="Service1" requires="conversational">
>         <interface.sca interface="MyOtherConversationalService"/> <!--
> Notice the use of MyOtherConversationalService -->
>     </service>
> </component>
> <composite>
>
> Wherever the service and reference elements used operation child  
> elements
> in interface.java elements, they can now use interface.sca with
> MyConversationalService and MyOtherConversationalService consistently.
>
> PROPOSAL:
> Introduce a top-level interface element, say interface.sca, in SCDLs  
> that
> allows creating new interface definitions from existing interface
> definitions and enable adding additional semantics like declaring the
> interface as conversational, adding a callback, declaring methods as
> endsConversation, oneWay etc. as if a new inferace is being created  
> in java
> and decorated with @Conversational, @Callback, @EndsConversation,  
> @OneWay
> annotations.
>
> [1] http://www.osoa.org/jira/browse/ASSEMBLY-47
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  You may a link to this group and all your TCs  
> in OASIS
> at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>



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