[EMFStore] Network and embedded client access to the same server workspace [message #1721299] |
Tue, 26 January 2016 12:26 |
Scott Dybiec Messages: 148 Registered: July 2009 |
Senior Member |
|
|
I would like my EMFStore client applications to access the EMFStore
server through both 1) the out-of-the-box XML-RPC network interface and
2) directly where the client and server run in the same JVM.
It's possible today for the embedded client to use the loopback network
interface to access the server running in the same JVM, marshalling and
demarshalling all the data to/from XML through the XML-RPC web server.
Since my application has 100's of simultaneous readers and large XML
payloads, for performance reasons, I'd like to avoid all the XML and web
server overhead.
EMFStore's JUnit test cases do a nice job of demonstrating how direct
access can be done through as set of mock objects.
[https://www.eclipse.org/forums/index.php/m/1701559/] However, the test
cases use either network or direct access method, not both together
against the same server instance. The direct access client used by the
test cases creates its own server workspace and instances of the
EMFStore, AdminEmfStore and AccessControl interfaces, separate from
those used in the network-based server.
Based on my understanding, to support simultaneous network and direct
access to a single server workspace instance, the direct client would
need access the same instances of the EMFStore, AdminEmfStore and
AccessControl implementations used by the network side. Do I have that
right? Would I be introducing any issues with locking/concurrency if I
implemented this way?
The server's EMFStoreController initializes and maintains all these
interface variable, but only AccessControl is accessible through a
public getter. Would it be possible to add getters for the EMFStore and
AdminEmfStore variables?
Perhaps there is a flaw in my reasoning or better way to provide both
direct and network access simultaneously, and I'm interested in your
suggestions.
|
|
|
Re: [EMFStore] Network and embedded client access to the same server workspace [message #1721479 is a reply to message #1721299] |
Wed, 27 January 2016 18:16 |
Edgar Mueller Messages: 89 Registered: March 2011 |
Member |
|
|
Hi Scott,
comments inline:
>
> Based on my understanding, to support simultaneous network and direct
> access to a single server workspace instance, the direct client would
> need access the same instances of the EMFStore, AdminEmfStore and
> AccessControl implementations used by the network side. Do I have that
> right?
This is correct in case one would like to use the desired functionality
directly.
> Would I be introducing any issues with locking/concurrency if I
> implemented this way?
I don't think so, since the single components, which are maintained by
the EMFStoreController, should be thread-safe already but of course we
didn't test this ourselves so I can not guarantee that there are no
other issues.
> The server's EMFStoreController initializes and maintains all these
> interface variable, but only AccessControl is accessible through a
> public getter. Would it be possible to add getters for the EMFStore and
> AdminEmfStore variables?
We didn't yet have a reason to expose the other parts, but of course it
would be possible to expose those as well if it makes sense.
> Perhaps there is a flaw in my reasoning or better way to provide both
> direct and network access simultaneously, and I'm interested in your
> suggestions.
No, your logic seems fine in the sense that direct and network access
would need to share the same components, but I'd would like to think
about a possible design for this a little bit more.
Hence it would be nice if you could open up a BR for this, ideally with
the necessary changes you'd propose.
Regards,
Edgar
--
Edgar Mueller
Get Professional Eclipse Support:
http://eclipsesource.com/en/services/developer-support/
|
|
|
Powered by
FUDForum. Page generated in 0.66124 seconds