[Glass] Gemstones bidirectional communications

Trussardi Dario Romano dario.trussardi at tiscali.it
Mon Jan 7 09:01:24 PST 2019


Ciao James,

	thanks.

> Hi Dario,
> 
> There are several ways of doing this along a continuum of how much both sides know that GemStone is at the other end. At one extreme, you could have each system export and import “flat” files (XML, JSON, STON,  CSV, tab-delimited, etc.). This is how we had disparate systems talk to each other in the 1980s. It is simple, reliable, and pretty easy to debug.
> 
> Next, you could define a “wire protocol” and have the transfer take place over a socket. The protocol could be similar to the file format with the exchange happening more quickly, but it does require more “handshaking” and effort at synchronization (with file transfer the other application doesn’t have to be up for you to put a file in a shared directory).
> 
> And at the more GemStone-focused end you could use GsExternalSession to have a Gem on one system start a session on the other system. With this you can execute strings and get back strings (or more complex objects, but that would be a lot of work).

	What do you mean for: 	but that would be a lot of work.

	Can you give some consideration about it?

	Is there any example code in this regard?

	From which version is this support active?

	I have a Gemstone 3.1.0.6 system but it does not define the class GsExternalSession.

	( The Gemstone 3.3.6 define it )

	The two systems must be of the same version?

> 
> The main thing to keep in mind with any of these approaches is that you are managing the relationship, not GemStone. There is no “transparent replication," object identity is not preserved, and relying on an OOP could be a problem if an object gets garbage-collected and the OOP reused.



> If one system is collecting new data and dumping it into another system, then this model can work pretty well, but you should think about long-running transactions (commit record backlog) for any idle sessions.

	It is not clear to me what you mean.

	Can you explain this last point better?	

	Thanks,

		Dario

> James
> 
>> On Jan 4, 2019, at 9:06 AM, Trussardi Dario Romano via Glass <glass at lists.gemtalksystems.com> wrote:
>> 
>> Ciao,
>> 
>> 	to manage the problematic application on which i am working
>> 	
>> 	i would need to have two distinct environments that communicate with each other.
>> 
>> 	Where for environment i mean a Gemstone database.
>> 
>> 
>> 	The first one should handle local management (i call it local-database) and is active on a local server (where the event happens).
>> 
>> 
>> 	The second (i call it the internet-database) should manage support for users' smartphones and send summary data to the local-database.
>> 
>> 	Internet-database is active on a server in remote datacenter.
>> 
>> 	In this way users (hundreds) with their devices go to load the Internet-database not interfering with local-database management.
>> 
>> 
>> 
>> 	Now my question is about how i can handle bidirectional communication between the two Gemstone database servers (running a VPN)
>> 
>> 	
>> 	Thanks for considerations,
>> 
>> 		Dario
>> 
>> 	P.S. Have I been sufficiently clear?
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
> 



More information about the Glass mailing list