My griddle project on Java.net investigated the notion of using smart 
comparisons for equality.  Basically, griddle separates the keys from the 
object.  The keys are managed and matched by a matching implementation.  The 
intent is that key values would be native types, not downloaded types, but 
downloaded types are not forbidden.  This would allow you to ask a much richer 
question for “watch matches” by sending your read request or take request with 
an executable matcher which could do ranges or sets etc.

Gregg

> On Jul 26, 2016, at 11:21 PM, Peter <j...@zeus.net.au> wrote:
> 
> Also, there's no reason why logical comparisons cannot be made with numerical 
> objects during lookup.  
> 
> Although the Entry spec suggests that entry fields are marshalled as 
> MarshalledObject's, reggie doesn't do this for immutable value objects like 
> Integer etc.
> 
> Regards,
> 
> Peter.
> 
> Sent from my Samsung device.
>  
>   Include original message
> ---- Original message ----
> From: Peter <j...@zeus.net.au>
> Sent: 27/07/2016 09:42:09 am
> To: dev@river.apache.org <dev@river.apache.org>
> Subject: Re: another interesting link
> 
> Discovery and lookup are akin to search engines, but distributed rather than 
> reliant on large corporations.
> 
> With IPv6 global announce, it's possible to perform global search and this is 
> where another of Gregg's innovations, delayed unmarshalling, is very 
> important to minimise local processing.
> 
> Regards,
> 
> Peter
> 
> 
> Sent from my Samsung device.
>  
>   Include original message
> ---- Original message ----
> From: Gregg Wonderly <gr...@wonderly.org>
> Sent: 27/07/2016 02:09:50 am
> To: dev@river.apache.org
> Subject: Re: another interesting link
> 
> More formal interface libraries were supposed to solve that problem so that 
> you would have a formal name for such contracts.  That would be the Jini way 
> to start working this direction. The classic issue is that people believe 
> that HTTP is the interface of today.  They don't understand how POST is 
> contractually equivalent to Jini's invocation layer.  
> 
> The path in a URL is the method name and the payload is the same as 
> arguments.  What is possible with Jini is to use lookup instead of hardcoded 
> URLs.  People are using hostnames for lookup services and being satisfied. 
> 
> Gregg 
> 
> Sent from my iPhone 
> 
>>  On Jul 26, 2016, at 8:41 AM, Michał Kłeczek (XPro Sp. z o. o.) 
>> <michalklec...@xpro.biz> wrote: 
>>   
>>  I am well aware of StartNow since that is the first Jini "support library" 
>> I have used. Indeed - it is really easy to use. 
>>  But it is only one side of the issue - the API and some support support 
>> code that is supposed to be linked statically with the service 
>> implementation. 
>>   
>>  What I am talking about is actually "externalizing" most aspects of a 
>> service implementation so that: 
>>  - you do not have to package any (for some meaning of "any" :) ) libraries 
>> statically (since all code can be downloaded dynamically) 
>>  - you do not have to provide any (for some meaning of "any" :) ) static 
>> configuration (ie. configuration files) - a service should simply use other 
>> services and "reconfigure" itself when those change 
>>  It would go towards some kind of an "agent architecture", with movable 
>> objects (ie "services") being "hosted" by well... other movable objects :). 
>> The idea is less appealing today when we have all the cloud infrastructure, 
>> virtualization, software defined networking etc. Nevertheless still 
>> interesting IMHO. 
>>   
>>  Thanks, 
>>  Michal 
>>>  Gregg Wonderly July 26, 2016 at 1:28 PM 
>>>  My StartNow project on Java.net aimed directly at this mode of operation a 
>>> decade ago. I wanted conventions that provided use of configuration with 
>>> defaults. 
>>>   
>>>  You just extend PersistantJiniService and call start(serviceName). 
>>> Subclasses could override default implementation for how the conventions in 
>>> the APIs created implementation objects through code or configuration. 
>>>   
>>>  The intent was to create THE API to provide the conventions of service 
>>> creation. 
>>>   
>>>  We have a Window/JWindow class and don't have to do all the decorating 
>>> ourselves.  
>>>   
>>>  Jini service construction should work the same way! 
>>>   
>>>  Gregg 
>>>   
>>>  Sent from my iPhone 
>>>   
>>>   
>>>  Tom Hobbs July 26, 2016 at 11:50 AM 
>>>  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.  
>>>   
>>>   
>>>   
>>>   
>>>  Peter July 26, 2016 at 3:58 AM 
>>>  Note the comment about security on the blog? 
>>>   
>>>  Steps I've taken to simplify security (that could also be adopted by 
>>> river): 
>>>  1. Deprecate proxy trust, replace with authenticate service prior to 
>>> obtaining proxy. 
>>>  2. proxy codebase jars contain a list of requested permissions to be 
>>> granted to the jar signer and url (client need not know in advance). 
>>>  3. Policy file generation, least privilege principles (need to set up 
>>> command line based output for admin verification of each permission during 
>>> policy generation). 
>>>  4 Input validation for serialization. 
>>>  5. DownloadPermission automatically granted to authenticated registrars 
>>> (to signer and url, very specific) during multicast discovery. 
>>>   
>>>  Need to more work around simplification of certificate management. 
>>>   
>>>  Regards, 
>>>   
>>>  Peter. 
>>>  Sent from my Samsung device. 
>>>    
>>>    Include original message 
>>>  ---- Original message ---- 
>>>  From: Peter <j...@zeus.net.au> 
>>>  Sent: 26/07/2016 10:27:59 am 
>>>  To: dev@river.apache.org <dev@river.apache.org> 
>>>  Subject: another interesting link 
>>>   
>>>  https://blogs.oracle.com/hinkmond/entry/jini_iot_edition_connecting_the 
>>>   
>>>   
>>>  Sent from my Samsung device. 
>>   
> 
> 

Reply via email to