Talk:Marshalling (computer science)
Reference or value
This article needs to be expanded on the difference between marshalling by reference and marshalling by value. Marshalling by value is roughly equivalent to serialization, while marshalling by reference is not. Medinoc (talk) 14:38, 23 April 2008 (UTC)
Merger proposal
The concepts of serialization and marshalling seem basically the same. The serialization article says that it is also called marshalling. Conversely, the marshalling article says that marshalling is also called serialization. —Preceding unsigned comment added by Neverdream (talk • contribs) 20:09, 21 August 2008 (UTC)
- I agree to merge. Despite what the RFC says, what I (think I) know is that neither serialization nor marshalling save the class definitions in Java. Both save the object state, not the codebase. AFAIK the classes must still be available via a classloader, otherwise deserialization will fail for an unknown type. If there is any difference between the two methods, perhaps it's that marshalling is done via accessor methods while serialization uses some JVM magic to restore the state, even in private fields with no accessors. But that's just for java. Generally I think the two terms are synonymous. Alex.g (talk) 09:01, 20 October 2008 (UTC)
- If a merger is done, it should merge Serialization into Marshaling. In my opinion (which is just an opinion), Marshaling is simply creating a representation of the data which can be unmarshaled back into the data. Serialization is a subset of marshaling where the representation is defined to be a stream of bits/bytes. By my choice of definition, it is fair to marshal data into a tree or cyclic graph, but cannot be serialized into a cyclic graph. Software which needs to serialize cyclic graphs (such as DEFLATE) seem to talk about first marshaling the data into a cyclic graph, then serializing the graph (as two independent operations).199.46.170.96 (talk) —Preceding undated comment was added at 17:51, 8 December 2008 (UTC).
- The main difference is that Marshalling involves a client and a server, while serialization is usually done by the same application. When only one application is involved, the data representation needs not to be standarized, a very different situation when marshalling is used.
My opinion
Marshalling and serialization are two similar things, but not same. We cannot say that these are two different names of a concept. The article should sketch a clearer line between the two concepts instead of making confusions by merging them in a single. 119.153.71.135 (talk) 14:31, 3 June 2009 (UTC)
Marshalling in COM
I'm currently reading up on marshalling in COM and by the time I'm finished I will probably be able to write a few paragraphs on how it works. If I choose to do so, should I include it here, on marshalling (computer science), on Component Object Model or as a separate article marshalling in COM? Shinobu (talk) 04:49, 6 September 2008 (UTC)
- Maybe you could put the theory under marshalling and the COM-specific implementation details in COM. Alex.g (talk) 11:10, 22 October 2008 (UTC)
I agree, in fact, in spanish the term defined under "Marshalling" is the definition we use for Serialization and is used this way in a lot of books and sources in the Internet —Preceding unsigned comment added by 201.241.153.154 (talk) 12:14, 19 November 2008 (UTC)
Marshalling - done by the client or the server
I had added the following sentence which was then removed:
'When transporting information in a Client/Server architecture the Client normally handles the marshalling of data; ensuring a decoupling of the Server from the Client.'
This was removed with the comment:
'this sentence makes no sense in the general point of view. clients typically do unmarshalling, servers marshalling. but it is reversed with say ajax, wher the client does marshalling.'
Let me try and restate what I was trying to explain. This is specific to the act of Marshalling data to allow 2 programs to communicate, not marshalling for transport purposes. Consider both a client application and a server application on the same machine. Marshalling is needed to ensure that data in the client is translated into a format that the server understands. The response from the server may then need to be marshalled back into a format that the client natively uses. In this case, both the marshalling and unmarshalling are typically handled by the client. This is 'normal' as this approach allows maximum flexibility regarding the server. The service can be used by any client, the burden of integration (and marshalling data to be able to use the service API) is on the client alone. This de-couples the client and server.
I suspect that the original objection was in interpreting the original comment as being related to a distributed client/server architecture and the Marshalling/Unmarshalling of data for transport purposes. This is not my point (I agree with that point BTW).
Marshalling is not limited to manipulating data for transport purposes, but also for translating from one program's internal representation into another program's internal representation. In this context, typically, the client is responsible for these translations (marshalling/unmarshalling). To me, this is an important point. If someone can state it better or offer some critique in my explanation then please shout out and we'll see if we can get an agreeable explanation put together. Dbnull (talk) 17:49, 25 March 2009 (UTC)
Why (not) break things
I was reading an article about something call QuickBase and saw something about Marshalling and Unmarshalling. A quick google found this article at site:wikipedia.org
Why merge it into a higher cloud? Things are hard enough when a person who started with assembler language on a museum relic wants to keep up. If you make it harder, we'll just start collecting social security that much sooner (and thereby perhaps cost you money you'd rather spend on a new StarTrek-inspired electronic toy).
Is that reason enough to leave this un"merged" ? —Preceding unsigned comment added by 207.69.139.146 (talk) 05:10, 30 April 2009 (UTC)