In my dreams I always thought of "self configuring" and "adapting" services. So instead of reading a "configuration" a service would simply search for other services and use them. Exporter service being an example. Ideally - the only thing that should be configured would be the "identity" (ie. credentials) of a service principal(s).

That would be possible once dynamic code downloading is done right :)

And one more remark - dynamic proxy does not imply avoiding codebases and code downloading. You have to download service interface classes. You have to download invocation handler implementation class.

Thanks,
Michal
Peter <mailto:j...@zeus.net.au>
July 26, 2016 at 12:43 PM

Perhaps a script that detects the environment, asks a few questions and creates the config files? These can be edited for more complex configurations.

I've added a couple of default methods to ServiceRegistrar, the new lookup method doesn't return the service proxy's, so the registrar is basically used just for search, the client then contacts each service it's interested in.

Starting off with simple services that only use dynamic proxy's (java.lang.reflect.Proxy instances), avoids codebases.

Reggie still requires a codebase, however if we sign it, this addresses code trust.

Regards,

Peter.

Sent from my Samsung device

  Include original message
---- Original message ----
From: Tom Hobbs <tvho...@googlemail.com>
Sent: 26/07/2016 07:50:43 pm
To: dev@river.apache.org
Subject: Re: another interesting link

I would say the comment on that blog sums everything about Jini up.

It’s just too hard to set up and get working.

That’s why I think simplifying reggie is possibly a first step. Make a /small/ and simple reggie jar that just handled service registration and not proxy downloading etc. Make it really easy to register your services without needing class loaders etc, preferably via some convention rather than configuration. (This is what I’m trying to find the time to work on.)

I’d really like to be able to type;

$ java -jar reggie.jar

And have a reggie running with all the defaults ready to register my services with. Or perhaps, as an option;

$ java -jar reggie.jar —ipv6

Security, class loading, proxy downloading and all the rest of it could then be put back in by specifying more advanced configuration options.

My Scala service would be great if I could define it just as;

object MyCoolService extends LazyLogging with ReggieRegistration with ReggieLookup

Or in Java with default interface methods;

class MyCoolService implements ReggieRegistration, ReggieLookup

And that would be it, congratulations you’ve started a reggie and registered your service and have methods available to help you find other services.

This would satisfy use cases where the network was private and/or trusted. And security on top would, ideally, be up to configuration again or perhaps injecting some alternative implementation of some bean somewhere. But the core premise is, make it easy to startup, demo and see if it fits what you want it for.








Reply via email to