Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #8456

Re: Low-latency alternative to Java Object Serialization

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!news.musoftware.de!wum.musoftware.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Low-latency alternative to Java Object Serialization
Date Sat, 01 Oct 2011 21:13:40 +0200
Lines 49
Message-ID <9ep735Fhr8U1@mid.individual.net> (permalink)
References <CAACD85F.81B3%bravegag@hotmail.com> <23089865.2265.1317485980290.JavaMail.geo-discussion-forums@preb19>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Trace individual.net pe/Hdx2uaFZEczAqeEJHFAvQWbRkMHgkJqxJP13Sjm6F0lw+c=
Cancel-Lock sha1:0jx2SDZe3fZm8cxBP6hdKm7j7XE=
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.23) Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15
In-Reply-To <23089865.2265.1317485980290.JavaMail.geo-discussion-forums@preb19>
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:8456

Show key headers only | View raw


On 10/01/2011 06:19 PM, Lew wrote:
> Giovanni Azua wrote:
>> I have this lite Client-Server framework based on Blocking IO using classic
>> java.net.* Sockets (must develop it myself for a grad course project). The
>> way I am using to pass data over the Sockets is via Serialization i.e.
>> ObjectOutputStream#writeObject(...) and ObjectInputStream#readObject(...) I
>> was wondering if anyone can recommend a Serialization framework that would
>> outperform the vanilla Java default Serialization?
>>
>> Three years ago I worked for a "high frequency trading" company and they
>> avoided default Java Serialization like "the devil to the cross" this is a
>> Spanish idiom btw ... :) due to its latency. However, I must say that their
>> remoting framework dated back to the Java stone age and my guess is that the
>> default Serialization must have improved over the years; I don't have hard
>> numbers to judge though. I remember JBoss Middleware implementation having
>> some Serialization framework for this very same reason ... have to check
>> that too.
>>
>> Can anyone advice what would be best than Java Serialization without
>> requiring an unreasonably heavy dependency footprint?
>
> Side bar: What exactly do you mean by "latency" here?
>
> Serialization assumes no knowledge on the restoring end about the structures to restore, so all knowledge has to reside in the serialization format.
>
> Circular dependencies, inheritance chains, the whole megillah has to be encoded into the serialized stream.
>
> Serialization is designed to store and restore object graphs, not the data in them.
>
> Take a page from web services and create an XML schema to represent the *data* you wish to transfer.  This assumes knowledge on both ends of the structures used to hold the data, unlike object serialization, hence much less information must flow between the participants.
>
> Use JAXB to generate the classes used to process that schema and incorporate those classes into the protocol at both ends.
>
> Fast, standard and fairly low effort and low maintenance, assuming you have version control and continuous integration (CI).
>
> By "fast" I mean both to develop and to operate.
>
> You will write custom code to jam the data into your JAXB-generated structures and retrieve them therefrom.
>
> But you will be transmitting data via a format that omits the object graph overhead and focuses on just the data to share.  The object-graph knowledge is coded into the application and need not be transferred.
>
> XML is awesome for this kind of task.

http://www.json.org/ might also be a good alternative which - depending 
on format etc. - can be less verbose.  See http://json.org/example.html

Kind regards

	robert

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Low-latency alternative to Java Object Serialization Giovanni Azua <bravegag@hotmail.com> - 2011-10-01 14:46 +0200
  Re: Low-latency alternative to Java Object Serialization Lew <lewbloch@gmail.com> - 2011-10-01 09:19 -0700
    Re: Low-latency alternative to Java Object Serialization Robert Klemme <shortcutter@googlemail.com> - 2011-10-01 21:13 +0200
      Re: Low-latency alternative to Java Object Serialization jebblue <n@n.nnn> - 2011-10-01 14:35 -0500
        Re: Low-latency alternative to Java Object Serialization Robert Klemme <shortcutter@googlemail.com> - 2011-10-02 11:07 +0200
        Re: Low-latency alternative to Java Object Serialization Roedy Green <see_website@mindprod.com.invalid> - 2011-10-03 11:43 -0700
    Re: Low-latency alternative to Java Object Serialization Tom Anderson <twic@urchin.earth.li> - 2011-10-03 19:24 +0100
      Re: Low-latency alternative to Java Object Serialization Roedy Green <see_website@mindprod.com.invalid> - 2011-10-04 02:45 -0700
      Re: Low-latency alternative to Java Object Serialization Lew <lewbloch@gmail.com> - 2011-10-04 08:55 -0700
  Re: Low-latency alternative to Java Object Serialization markspace <-@.> - 2011-10-01 09:48 -0700
    Re: Low-latency alternative to Java Object Serialization Roedy Green <see_website@mindprod.com.invalid> - 2011-10-04 02:51 -0700
  Re: Low-latency alternative to Java Object Serialization Robert Klemme <shortcutter@googlemail.com> - 2011-10-02 11:10 +0200
  Re: Low-latency alternative to Java Object Serialization Tom Anderson <twic@urchin.earth.li> - 2011-10-03 19:15 +0100
  Re: Low-latency alternative to Java Object Serialization Martin Gregorie <martin@address-in-sig.invalid> - 2011-10-02 11:50 +0000

csiph-web