Re: Service Discovery for SCA

2007-12-19 Thread Novak, Miroslav
Hi,
 Thanks for your reply. I'm glad that you like the idea of Service Discovery 
for SCA.

Actually, I think that the best (and probably simplest) interface for the 
discovery would be REST.

I'm nor SCA neither Tuscany expert so maybe that my view is too simplistic but 
I would like to use e.g. this URI space:


/domain/{an SCA domain}/composites/{a composite}/services
/references
   /composites/{a composite}/components/{a 
component}/services
 
/references
/query/services[binding,name,qname,...]



Each of the collections should allow searching by key attributes like name, 
binding type, ...

Repositories (and regular users) interested in SCA composites, components, 
services, ... could check regularly RSS feeds of appropriate collections.

---

Recently, I've been thinking about turning the idea Service Discovery for SCA 
up-side-down - instead of discovering what is inside SCA, SCA runtime could 
discover what is outside SCA.

Imagine that Tuscany can read service definitions from a Repository or Registry 
(e.g. standard UDDI Registry). Then you can use any services (Web Services) 
registered in a Repository or Registry from your SCA application (component) 
without knowing anything about their deployment or implementation - that's 
*real SOA* :-).

When creating a new service in Tuscany, you could say: I want to use this 
service -uddi:banking:accounts:AccountService(service is determined by its 
UDDI key - UUID) OR http://banking.com/accounts#wsdl.service(AccountService).

reference name=accountService
tuscany:binding.uddi 
uddiKey=uddi:banking:accounts:AccountService/
/reference

OR

reference name=accountService
binding.ws wsdlElement= 
http://banking.com/accounts#wsdl.service(AccountService)/
/reference

So, this way:
* I only need to know interface of a service (its QName from its WSDL) in order 
to use the service (I don't care where the service is deployed and where the 
WSDL is located - this information in maintained by a Repository or Registry)
* Tuscany can use whatever mechanism to resolve my reference using e.g. a UDDI 
Registry.

In the ideal world:

!-- Tuscany could look through all service by QName-capable repositories for 
a service that I want to use --
reference name=accountService
binding.ws wsdlElement= 
http://banking.com/accounts#wsdl.service(AccountService)/
/reference


Regards,

Mirek

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Service Discovery for SCA

2007-12-19 Thread Jean-Sebastien Delfino

Novak, Miroslav wrote:

Hi,
 Thanks for your reply. I'm glad that you like the idea of Service Discovery for 
SCA.

Actually, I think that the best (and probably simplest) interface for the 
discovery would be REST.

I'm nor SCA neither Tuscany expert so maybe that my view is too simplistic but 
I would like to use e.g. this URI space:


/domain/{an SCA domain}/composites/{a composite}/services
/references
   /composites/{a composite}/components/{a 
component}/services
 
/references
/query/services[binding,name,qname,...]



Each of the collections should allow searching by key attributes like name, 
binding type, ...

Repositories (and regular users) interested in SCA composites, components, 
services, ... could check regularly RSS feeds of appropriate collections.



That sounds very interesting. We could make the collection of composites 
in a domain as an Atom collection or RSS feed. It should be relatively 
easy to implement using the feed binding that we have or some REST 
binding derived from it or the HTTP binding that we have.


Once you've made the SCA metadata available on the Web, then it becomes 
really easy to reference it, feed it into a search engine, feed readers etc.




---

Recently, I've been thinking about turning the idea Service Discovery for SCA 
up-side-down - instead of discovering what is inside SCA, SCA runtime could discover what 
is outside SCA.

Imagine that Tuscany can read service definitions from a Repository or Registry 
(e.g. standard UDDI Registry). Then you can use any services (Web Services) 
registered in a Repository or Registry from your SCA application (component) 
without knowing anything about their deployment or implementation - that's 
*real SOA* :-).

When creating a new service in Tuscany, you could say: I want to use this service 
-uddi:banking:accounts:AccountService(service is determined by its UDDI key - UUID) OR 
http://banking.com/accounts#wsdl.service(AccountService).

reference name=accountService
tuscany:binding.uddi 
uddiKey=uddi:banking:accounts:AccountService/
/reference

OR

reference name=accountService
binding.ws wsdlElement= 
http://banking.com/accounts#wsdl.service(AccountService)/
/reference

So, this way:
* I only need to know interface of a service (its QName from its WSDL) in order 
to use the service (I don't care where the service is deployed and where the 
WSDL is located - this information in maintained by a Repository or Registry)
* Tuscany can use whatever mechanism to resolve my reference using e.g. a UDDI 
Registry.

In the ideal world:

!-- Tuscany could look through all service by QName-capable repositories for a 
service that I want to use --
reference name=accountService
binding.ws wsdlElement= 
http://banking.com/accounts#wsdl.service(AccountService)/
/reference


Regards,

Mirek



Or - picking on your search idea - you could just do a search for the 
service descriptions published as REST resources in the domain that 
provide the interface you want :)


--
Jean-Sebastien

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Service Discovery for SCA

2007-12-06 Thread Simon Nash

I agree that this would be useful.  The place to enable it would be the
SCA Domain.  The Domain doesn't currently have APIs to list or search
for services.   We could add APIs that do this, or we could add an SPI
that allows a registry to plug in to the Domain and be informed whenever
services are added or removed.  The latter seems better to me, as it
would be easier to keep the registry in sync with the Domain.  I'd be
interested in other views on this.

  Simon

Miroslav Novak wrote:

Hi,
 SCA allows to describe components (services) in a standard way. It would be
nice to expose this information so that it can be automatically discovered
and stored in a repository. Later, when developers are about to create a new
component, they can search existing SCA components that they could reuse.

Do you plan to expose definition of SCA components via some API?

Regards,

Mirek


__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Service Discovery for SCA

2007-12-06 Thread Simon Laws
On Dec 6, 2007 1:32 PM, Simon Nash [EMAIL PROTECTED] wrote:

 I agree that this would be useful.  The place to enable it would be the
 SCA Domain.  The Domain doesn't currently have APIs to list or search
 for services.   We could add APIs that do this, or we could add an SPI
 that allows a registry to plug in to the Domain and be informed whenever
 services are added or removed.  The latter seems better to me, as it
 would be easier to keep the registry in sync with the Domain.  I'd be
 interested in other views on this.

   Simon

 Miroslav Novak wrote:
  Hi,
   SCA allows to describe components (services) in a standard way. It
 would be
  nice to expose this information so that it can be automatically
 discovered
  and stored in a repository. Later, when developers are about to create a
 new
  component, they can search existing SCA components that they could
 reuse.
 
  Do you plan to expose definition of SCA components via some API?
 
  Regards,
 
  Mirek
 
 
  __
  This email has been scanned by the MessageLabs Email Security System.
  For more information please visit http://www.messagelabs.com/email
  __
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]

 Hi

I agree this would be a useful thing to do. Maybe we need both approaches.
Consider these.

1/ Some 3rd part resgistry wants to keep in synch with the service endpoints
that are running within the SCA domain. I think that in this case having an
interface where a listener can register for service registration change
events would be a sensible approach.

2/ A users wants to retrieve service information from the domain in order to
browse service registrations through some management GUI. In this case we
can to be able to retrieve all services or services by name. So in this case
the interfaces which allows information on named services to be retireved
seems most appropriate.

As it happens the Nodes currently register with the Domain and then use and
interface to find named service information (like 2) . However I really need
to flip this round and broadcast information to nodes as services come and
go (like 1). Doing this is actually fairly straightforward however, as is
always the case with these things, the hard part is what the interface
should look like. I need to expand this as currently the node
implementations don't any account of policy at the domain level. They should
do. I would like to have the ability to get at the full definition of a
service and the bindings it has. I may even be better to allo a complete
component definition to be moved about.

Regards

Simon


Service Discovery for SCA

2007-12-04 Thread Miroslav Novak
Hi,
 SCA allows to describe components (services) in a standard way. It would be
nice to expose this information so that it can be automatically discovered
and stored in a repository. Later, when developers are about to create a new
component, they can search existing SCA components that they could reuse.

Do you plan to expose definition of SCA components via some API?

Regards,

Mirek


__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]