ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Magda <dma...@apache.org>
Subject Re: Thin client: Java bindings
Date Tue, 16 Jan 2018 19:47:42 GMT
Not sure the protocol should care of invoke() or any compute grid methods. Technically the
user add a computation or entry processor to the class path of remote nodes and then trigger
them using a simple operation support by the protocol. But do users and we really need this?
Usually invoke and compute grid are used together with peer-class-loading.

—
Denis

> On Jan 16, 2018, at 1:29 AM, Dmitriy Setrakyan <dsetrakyan@apache.org> wrote:
> 
> Hi Alexey,
> 
> Thanks for a detailed email. I think your approach is correct. Are you
> planning to implement the full JCache API for the Java thin client? If yes,
> I think you are missing the invoke(...) methods.
> 
> Also, would be nice to support transactions as well.
> 
> D.
> 
> On Tue, Jan 16, 2018 at 12:03 AM, Alexey Kukushkin <
> kukushkinalexey@gmail.com> wrote:
> 
>> Igniters,
>> 
>> I am working on a project where users will use Ignite via a thin client
>> protocol. The API will be Java and the client will have to support failover
>> and encryption.
>> 
>> I know community already developed the thin client protocol and .NET
>> bindings and is going to develop failover and encryption (I found backlog
>> tickets addressing failover and encryption). Thus, the only missing part is
>> Java bindings.
>> 
>> Unless someone is already working on Java bindings, let us develop and
>> contribute the thin client Java API to the Apache Ignite project. I believe
>> many can benifit from it.
>> 
>> There are two options to design the API: 1) implement existing interface
>> like IgniteCache and throw UnsupportedOperationExcception if something is
>> not supported 2) implement new interface and define only supported methods.
>> The Community  already discussed the options
>> <http://apache-ignite-developers.2346864.n4.nabble.
>> com/New-thin-client-and-interfaces-facades-td22023.html>
>> decided to use the latter option 2 for .NET bindings so we will follow the
>> same approach for the Java API.
>> 
>> On the first phase we will implement the below data-only API. Let us know
>> if
>> you have comments. Thank you!
>> 
>> Cache
>>    JCache (limited)
>>        getName(): String
>>        put(key, val)
>>        get(key): V
>>        getAll(keys: Set): Map
>>        containsKey(key): boolean
>>        getAndPut(key, val): V
>>        getAndReplace(key, val): V
>>        getAndRemove(key): V
>>        putIfAbsent
>>        replace(key, val)
>>        replace(key, oldVal, newVal)
>>        putAll
>>        clear
>>        remove(key)
>>        remove(key, val)
>>        removeAll()
>>        removeAll(keys: Set)
>>        getConfiguration(clazz): Configuration
>>        close()
>>    size(modes: CachePeekMode...)
>>    query(qry: Query): QueryCursor
>>    query(qry: SqlFieldsQuery): FieldsQueryCursor<List>
>>    withKeepBinary(): IgniteCache
>> Ignite
>>    cache(name: String)
>>    cacheNames(): Collection
>>    binary(): IgniteBinary
>>    createCache(name): Cache
>>    getOrCreateCache(name): Cache
>>    destroyCache(name)
>> Ignition
>>    startClient(:ClientConfiguration): Ignite
>> ClientConfiguration(port, host, binaryConfiguration, sslConfiguration,
>> etc...)
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> --
>> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
>> 


Mime
View raw message