Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #11846
| From | BGB <cr88192@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Interplatform (interprocess, interlanguage) communication |
| Date | 2012-02-08 01:41 -0700 |
| Organization | albasani.net |
| Message-ID | <jgtcid$kfs$1@news.albasani.net> (permalink) |
| References | <IPC-20120203200443@ram.dialup.fu-berlin.de> <aM6dnWFo75_W9KzSnZ2dnUVZ_sqdnZ2d@giganews.com> <jgscnm$1td$1@news.albasani.net> <QijYq.17178$%17.218@newsfe06.iad> |
On 2/7/2012 5:26 PM, Arved Sandstrom wrote: > On 12-02-07 07:38 PM, BGB wrote: >> On 2/7/2012 11:11 AM, jebblue wrote: > [ SNIP ] >>> >>> I recommend using sockets. >>> >> >> in general, I agree (sockets generally make the most sense), although >> there are cases where file-based communications can make sense, although >> probably not in the form as described in the OP. >> >> >> another issue (besides how to pass messages), is what sort of form to >> pass messages in. >> >> usually, in my case, if storing data in files, I tend to prefer >> ASCII-based formats. >> >> usually, for passing messages over sockets, I have used "compact" >> specialized binary formats, typically serialized data from some other >> form (such as XML nodes or S-Expressions). although "magic byte value" >> based message formats are initially simpler, they tend to be harder to >> expand later (whereas encoding/decoding some more generic form, though >> initially more effort, can turn out to be easier to maintain and extend >> later). >> >> note: this does not mean SOAP or CORBA or some other "standardized" >> messaging system, rather just that one initially builds and processes >> the messages in some form that is more high-level than spitting out >> bytes, and processing everything via a loop and a big "switch()" or >> similar (although this can be an initially fairly simple option, so has >> some merit due to ease of implementation). >> >> >> the main reason for picking a binary message-serialization format (for >> something like S-Expressions or XML nodes), would be mostly if there is >> a chance that the serialized data will go over the internet, and a >> textual format can be a bit bulkier (and thus slower to transmit over a >> slower connection), as well as typically being slower to decode (a >> sanely designed message format can be much more quickly unpacked than a >> textual format can be parsed). >> >> sending text over sockets may have merits as well, and is generally >> preferable for "open" protocols. >> >> or such... > > I've done a fair bit with sockets myself, including recently, in fact > including on a current gig. Some of the message formats have been > designed by others, some by me. A few of them are specialized industry > standards, some are very custom and bespoke. > > A few of the formats have been binary: fixed-length blocks of data with > fields at various offsets. Works well enough if it suits the data. > > A bunch of others have been text and line-oriented: a fixed number of > lines of data in known order, so that line 10 is always the data for a > particular field. > > Other things to consider: JAXB, JSON etc. Minimum coding fuss at the > endpoints if that's what's appropriate for constructing message payloads. > > I like text-based protocols, for some simple situations, that behave > like SMTP or POP. But it obviously depends on what you expect your > client and server to do, it's just another approach to be aware of. > well, text need not be all that limiting. if one has XML or free-form S-Expressions (in their true sense, like in Lisp or Scheme, not the mutilated/watered-down Rivest ones), then one can do a fair amount with text. IME, there are many tradeoffs (regarding ease of use, ...) between XML and S-Exps, and neither seems "clearly better" (as far as representations go, I find S-Exps easier to work with, but namespaces and attributes in XML can make it more flexible, as one can more easily throw new tags or attributes at the problem with less chance of breaking existing code). an example is this: <foo> <bar value="3"/> </foo> and: (foo (bar 3)) now, consider one wants to add a new field to 'foo' (say 'ln'). <foo ln="15"> <bar value="3"/> </foo> and: (foo 15 (bar 3)) a difference here is that existing code will probably not even notice the new XML attribute, whereas the positional nature of most S-Expressions makes the latter far more likely to break something (and there is no good way to "annotate" an S-Exp, whereas with XML it is fairly solidly defined that one can simply add new attributes). note: my main way of working with XML is typically via DOM-style interfaces (if I am using it, it is typically because I am directly working with the data structure, and not as the result of some dumb-ass "data binding" crud...). typically, the "internal representation" and "concrete serialization" are different: I may use a textual XML serialization, or just as easily, I could use a binary format; likewise for S-Exps (actually, I probably far more often represent S-Exps as a binary format of one form or another than I use them in a form externally serialized as text). all hail the mighty DOM-node or CONS-cell... > One of the big things in designing one's own messaging is error > handling. People generally do just fine with the happy path, but ignore > comprehensive error handling, or get wrapped around the axle trying to > do it. > yeah, but this applies to programming in general, so message-passing is likely nothing special here. one issue maybe special to sockets though is the matter of whether or not the whole message has been received, often resulting in some annoying code to basically read messages from the socket and not decode them until the entire message has been received. > A lot of situations admit of more than one approach. > agreed. it is like me and file-formats. often I just use ASCII text (simple, easy, editable in Notepad or similar, ...). I make plenty of use of simple line-oriented text formats as well. other times, I might use more advanced binary formats, or maybe even employ the use of "data compression" techniques (such as Huffman coding), so a lot depends.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Interplatform (interprocess, interlanguage) communication jebblue <n@n.nnn> - 2012-02-07 12:11 -0600
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-07 16:38 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-07 20:26 -0400
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 01:41 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-08 07:19 -0400
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 12:07 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-08 21:16 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 19:50 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-09 06:24 -0400
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-09 09:15 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-09 18:58 -0400
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-09 16:15 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-09 18:50 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-09 21:40 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 14:47 -0500
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-11 12:06 -0800
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 15:18 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-11 23:03 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 09:27 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 13:33 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 15:50 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 14:34 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-09 18:48 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-09 21:46 -0700
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-10 08:51 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-10 10:43 -0700
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-10 13:15 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-10 14:50 -0700
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-10 14:32 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-10 17:10 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-10 22:08 -0400
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-11 00:49 -0700
Re: Interplatform (interprocess, interlanguage) communication Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-11 14:04 -0400
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 14:55 -0500
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 14:52 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-11 20:06 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 22:41 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 00:46 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 09:29 -0500
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 09:31 -0500
Re: Interplatform (interprocess, interlanguage) communication Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-12 16:02 +0000
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 11:16 -0500
Re: Interplatform (interprocess, interlanguage) communication Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-12 22:46 +0000
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 11:33 -0700
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-11 20:18 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 01:36 -0700
Re: Interplatform (interprocess, interlanguage) communication Joshua Cranmer <Pidgeot18@verizon.invalid> - 2012-02-12 13:52 -0600
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 14:43 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 14:49 -0500
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-09 18:46 -0500
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-09 18:45 -0500
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-08 14:02 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 18:49 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-08 21:14 -0500
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-08 20:07 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 23:29 -0700
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-09 09:40 -0800
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-09 17:02 -0700
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 21:10 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-09 18:54 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-10 10:25 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 14:45 -0500
Re: Interplatform (interprocess, interlanguage) communication Lew <lewbloch@gmail.com> - 2012-02-11 12:14 -0800
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-11 15:20 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-11 22:20 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-12 09:23 -0500
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-12 12:13 -0700
Re: Interplatform (interprocess, interlanguage) communication Arne Vajhøj <arne@vajhoej.dk> - 2012-02-07 20:24 -0500
Re: Interplatform (interprocess, interlanguage) communication Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-08 01:31 +0000
Re: Interplatform (interprocess, interlanguage) communication BGB <cr88192@hotmail.com> - 2012-02-08 00:55 -0700
csiph-web