On Fri, Nov 18, 2011 at 2:38 PM, Millies, Sebastian <[email protected]> wrote: > > >> -----Original Message----- >> From: Simon Laws [mailto:[email protected]] >> Sent: Friday, November 18, 2011 2:15 PM >> To: [email protected] >> Subject: Re: Dynamic service references ? >> > [snip] >> Hi Sebastien >> >> I'm not clear about whether you have a finite number of target service >> that you know up front from which you want to select dynamically. Or >> whether you don't know the service endpoints but you just know the >> service interface. >> >> Regards >> >> Simon >> >> -- >> Apache Tuscany committer: tuscany.apache.org >> Co-author of a book about Tuscany and SCA: tuscanyinaction.com > > It is the latter: I'm facing an undetermined number of identical services. > I know the service interface (the wsdl of an SAP web service), but I do not > know in advance which endpoint to talk to. > > -- Sebastian > > IDS Scheer Consulting GmbH > Geschäftsführer/Managing Directors: Kamyar Niroumand, Ivo Totev > Sitz/Registered office: Altenkesseler Straße 17, 66115 Saarbrücken, Germany - > Registergericht/Commercial register: Saarbrücken HRB 19681 > http://www.softwareag.com > >
I don't have a good immediate answer and I don't want to distract you and Simon from investigating what can be done with service references (hence the delay) however two thoughts come to mind. Mike Edwards reminded me that there is a wiredByImpl flag in SCA that we don't exploit in Tuscany today. This is what the OASIS spec says about it: 351 • wiredByImpl : boolean (0..1) - a boolean value, "false" by default. If set to "false", the reference is 352 wired to the target(s) configured on the reference. If set to "true" it indicates that the target of the 353 reference is set at runtime by the implementation code (e.g. by the code obtaining an endpoint 354 reference by some means and setting this as the target of the reference through the use of 355 programming interfaces defined by the relevant Client and Implementation specification). This doesn't indicate how that might me achieved though as it would be runtime specific. We'd probably have to do something similar to what you're already looking at, i.e. allow the service reference to be retrieved and allow it's model to be edited and restarted. Something that could be possible already in 2.x is to use the domain registry to dynamically route based on SCA target name. This would rely on having the target services contributed to the SCA domain and then using the SCAClient interface to look them up. I.e. it doesn't present a mechanism for manually configuring binding.ws with a URI. Both of these things are future things but if the current investigations get stuck they present avenues for further investigation. Regards Simon -- Apache Tuscany committer: tuscany.apache.org Co-author of a book about Tuscany and SCA: tuscanyinaction.com
