serialize/marshal (Re: Concurrent Programming in Java)

閲覧: 52 回
最初の未読メッセージにスキップ

SHUDOH Kazuyuki

未読、
1998/03/04 3:00:001998/03/04
To:

首藤です。

久野さん wrote: (以下敬称略)

一杉> kono さんの言ってる serialize は排他制御みたいな意味で、たかぎ
一杉> さんの言ってる方はオブジェクトをバイト列に変換する機能ではという気が。

久野> これは私は怒っています。なんでJavaはそんな用語を始めたのでしょ
久野> うね? ごう慢不尊じゃないでしょうか? marshall/demarshallとか混同
久野> しない既存の用語はいくつもあるのに。

久野さん、fj.lang.java で 3,4回怒っていらっしゃいますね。^^;

歴史を知らないので自分では何とも言えないのですが、
疑問に思っていたので RMI の ML で質問しました。
- Sun は何で "marshal" ではなく "serialize" を採用したのか?
- 何で "demarshal" ではなく "unmarshal" を採用したのか?
(java.rmi.UnmarshalException という例外があります。)
- MS の "serialize" の用法にならったのか?
- 一般に "serialize" は複数の操作を直列化することを指すのではないか?

いくつかの返答を頂けました。まとめると
- marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。
(よくわからん。)
- "serialize" の用法は、MS ではなく Modula-3 にならった。
- 昔 NeXT がオブジェクトのグラフの encoding を "serialize" と表現していた。

=====
Date: Mon, 2 Mar 1998 10:09:18 -0500
From: aecol...@replica.east.sun.com
Subject: Re: Why not "marshal"/"demarshal"?
Message-ID: <83544798.f...@three.serpentine.com>

sk> I'm wondering that why did Sun adopt a term
sk> "unmarshal" instead of "demarshal", also wondering at
sk> adopting "serialize" instead of "marshal".

Marshalling refers to serialization for the purpose of passing as
arguments to a remote call. Serialization is simply encoding in a
flat-byte-array form.

Demarshal vs. unmarshal: Americans don't speak real English.

sk> Did Sun follow the adoption of "serialize" by Microsoft?

I don't think so. We followed Modula-3, if anything, but the term
"pickling" didn't go down well.

--adrian.
RMI Team
=====

=====
Subject: Re: Why not "marshal"/"demarshal"?
Date: Mon, 02 Mar 1998 08:09:00 -0600
From: Pohl Longsine <po...@ns1.mementech.com>

I can't speak for Sun's motivations, but here's another datapoint
for you: NeXT used the term "serialize" to express encoding a
graph of objects long ago. The term is of academic origin, I'm
sure.
=====
--
SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように
shu...@muraoka.info.waseda.ac.jp

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
1998/03/04 3:00:001998/03/04
To:

久野です。

shu...@olu.info.waseda.ac.jpさん:


> 久野さん、fj.lang.java で 3,4回怒っていらっしゃいますね。^^;

ちょっと面白くしようと思って ^_^;

でも必ずしもSunやMSが悪いわけでもないんですね。というわけで鉾
を収めます。

> いくつかの返答を頂けました。まとめると
> - marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。
> (よくわからん。)

引数群を伝送路に詰め込んだり、伝送路から取り出して復元するのを
marshalling/demarshallingと呼ぶ、という指摘はfjでもされてました。
新城さんだったかな。でもこれを援用しても混乱はしないから、これが
広まって欲しかったです。

> - "serialize" の用法は、MS ではなく Modula-3 にならった。

Modula3ならDECですね。

> - 昔 NeXT がオブジェクトのグラフの encoding を "serialize" と
表現していた。

なんですねー。DECとNeXTもいまいちか(sigh) 久野

Yasushi Kuno

未読、
1998/03/05 3:00:001998/03/05
To:

久野です。

前田さん用に「CLUとその仲間たち」をコピーしていて大変なことが
^_^; 分かりました。

コピーを何となく眺めていたら、何と私は自分書いた記事でJavaと同
じ意味で「serialize/deserialize」という用語を使っているではあり
ませんか!!! 恥ずかしくて30秒程記憶が飛びました。

たぶん、その頃は自分にとって、まだ直列可能の方のserializeはあ
んまり身近じゃなかったのでしょうね(もっとも同じ連載にArgusのトラ
ンザクションの解説がちゃんとあったりするけど ^_^;)。だからこっち
の用法の方が自分にとっては古いわけです。

というわけで、今回は何と自分で自分の背中を撃っていたのでした。
あー恥ずかしい。まあ自分で気がついただけよかった…前田さんに送っ
て前田さんが気が着いて(そりゃ着くでしょうね)指摘されたとしたら…
1分は記憶が飛ぶに違いない。

てなことが年に1回か2回はあるんだよな 久野

P.S. しかしもっといい用語を求めたいという点は変わらないですが。
といってももう誰も遊んでくれないかな ;_;


SHUDOH Kazuyuki

未読、
1998/03/06 3:00:001998/03/06
To:

首藤です。

久野さん wrote: (以下敬称略)

首藤> - marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。
首藤> (よくわからん。)

久野> 引数群を伝送路に詰め込んだり、伝送路から取り出して復元するのを
久野> marshalling/demarshallingと呼ぶ、という指摘はfjでもされてました。

高木さんだったような。
こんなことをおっしゃっていたように思います。
Sun は serialize, marshal と双方の語を使っている。
serialize の方を採用したのではなくて、実は使い分けているのではないか。
その使い分けとは…ではなかろうか。


首藤> - "serialize" の用法は、MS ではなく Modula-3 にならった。
首藤> - 昔 NeXT がオブジェクトのグラフの encoding を "serialize" と

久野> なんですねー。DECとNeXTもいまいちか(sigh) 久野

情報, 計算機科学も分野が多岐にわたってきて、
広くフォローするのはなかなか大変、ということでしょうか。

Yasushi Shinjo

未読、
1998/03/10 3:00:001998/03/10
To:

新城@筑波大学情報です。こんにちは。

In article <6diun2$f...@utogw.gssm.otsuka.tsukuba.ac.jp>
ku...@gssm.otsuka.tsukuba.ac.jp writes:
> 久野です。


> 引数群を伝送路に詰め込んだり、伝送路から取り出して復元するのを
> marshalling/demarshallingと呼ぶ、という指摘はfjでもされてました。
> 新城さんだったかな。でもこれを援用しても混乱はしないから、これが
> 広まって欲しかったです。

私もあちこちで言っているので、fjでも言ったかもしれません。
と思ったのですが、最近の author copy にはないですね。
ローカルの記事にはあったのですけど fj にはないです。

OSの教科書には、marshaling と marshalling と両方あります。
l 1つと2つの違い。unmarshal の方はよく見ますが、demarshal
は見たことないです。あと、pack/unpack, assemble/disassemble
もあります。

In article <SHUDOH.98...@cafe.olu.info.waseda.ac.jp>
shu...@olu.info.waseda.ac.jp (SHUDOH Kazuyuki) writes:
> 首藤です。


> 歴史を知らないので自分では何とも言えないのですが、
> 疑問に思っていたので RMI の ML で質問しました。

> いくつかの返答を頂けました。まとめると


> - marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。

> (よくわからん。)


> - "serialize" の用法は、MS ではなく Modula-3 にならった。

> - 昔 NeXT がオブジェクトのグラフの encoding を "serialize" と表現していた。

なるほど。私は、RPC との差別化をはかりたかったということで、
serialize という用語を使ったとすると、中味がオブジェクトで、
ポインタぐちゃぐちゃが送れるよと強調したかったのかなあと想像
していました。NeXT がそういう意味で使っていたわけですね。

たしかに、SunRPC のようなものだと、DAGを送ったつもりが、受け
取ってみたら木になっていたりします。ループを含んだグラフは、
SunRPC では送れません。ただ、世の中には、SunRPC 以外にも RPC
はあるわけで、ポインタぐじゃぐじゃも送れるものもあるでしょう。

そのうち、Java と(オブジェクト指向)データベースを繋いでトラ
ンザクションをした時に、混乱するでしょうね。トランザクション
では、次のような用語を使います。

serialize 直列化
serializability 直列化可能

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
1998/03/10 3:00:001998/03/10
To:

久野です。

新城さん:
> OSの教科書には、marshaling と marshalling と両方あります。
> l 1つと2つの違い。unmarshal の方はよく見ますが、demarshal

> は見たことないです。あと、pack/unpack, assemble/disassemble
> もあります。

ただpackとかassembleってなんか別の意味もあるようでいまいちです
よね。

> そのうち、Java と(オブジェクト指向)データベースを繋いでトラ
> ンザクションをした時に、混乱するでしょうね。トランザクション
> では、次のような用語を使います。

> serialize 直列化
> serializability 直列化可能

そう、まずそれが頭にありました。ときにオブジェクト指向DBじゃな
くてもトランザクションならあるですよね。ODBCでSQLを呼ぶのだけど
ベンダ固有機能でトランザクションが既に使えるようですよ。

だから現実の問題ですね 久野

TAKAGI Hiromitsu

未読、
1998/03/24 3:00:001998/03/24
To:

In article <SHUDOH.98...@cafe.olu.info.waseda.ac.jp>
shu...@olu.info.waseda.ac.jp (SHUDOH Kazuyuki) writes:
> > > - marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。
> > > (よくわからん。)
> > 引数群を伝送路に詰め込んだり、伝送路から取り出して復元するのを

> > marshalling/demarshallingと呼ぶ、という指摘はfjでもされてました。
> 高木さんだったような。
> こんなことをおっしゃっていたように思います。
> Sun は serialize, marshal と双方の語を使っている。
> serialize の方を採用したのではなくて、実は使い分けているのではないか。
> その使い分けとは…ではなかろうか。

そうざんす。
http://java-house.center.nitech.ac.jp/ml/archive/j-h-b/012111.html
です。久野さんも購読してるはずなのに反応なかった…。

> > > - marshalling は serialization に、遠隔呼び出しの引数渡しを委ねる。
> > > (よくわからん。)

あん?


> > > Marshalling refers to serialization for the purpose of passing as
> > > arguments to a remote call. Serialization is simply encoding in a
> > > flat-byte-array form.

「ある遠隔呼びだしに引数として渡すその目的での serialization のことを
marshalling と呼ぶ。」とそのまま書いてあるじゃん。

高木 浩光@名古屋工業大学
http://www.center.nitech.ac.jp/‾takagi/

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
1998/03/27 3:00:001998/03/27
To:

久野です。

tak...@center.nitech.ac.jpさん:
> です。久野さんも購読してるはずなのに反応なかった…。

いつのメール? 今日まで5日間ほど不在でした。

fjならそれなりに読むけどMLのメッセージは適当に捨てます :-)

> 「ある遠隔呼びだしに引数として渡すその目的での serialization
> のことを marshalling と呼ぶ。」とそのまま書いてあるじゃん。

結局それには賛成です。しかしserializationよりもよい用語を今で
も(しつこく :-)求めております。

fj.comp.databasesも最近読んでるし 久野

全員に返信
投稿者に返信
転送
新着メール 0 件