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 <dsetrak...@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 < > kukushkinale...@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/ >>