「冪等」って読めますか?

2007年2月23日に, Lingr APIにいくつかの 機能追加が行われた(現時点の最新のAPIは 3月6日リリースのもの)。その中で,

The room.enter method now supports a new idempotent parameter.

というものがある。「idempotent」って何だろうか。さっそく ググると,「冪等(idempotent)」というような言葉が多くヒットする。 ん?初めて見る漢字。まず,読めない。しかも,漢字からその意味を全く推測できない。自分の学のなさを痛感させられる。 まず,冪等は「べきとう」と読む。そして冪等という言葉の(IT業界での?)意味は,

Java Reload (experimental) simple Supportより:

「その操作を何回繰り返しても,1回だけ実行した時と同じ結果になること。」

である。 この言葉は,HTTP Methodに関するRPC( HTTP/1.1 9.1.2 冪等{idempotent}なメソッドなど)で登場する。つまり,HTTP MethodのGETやHEAD,PUTやDELETEに関しては,サーバ側に副作用を与えないため,同じメソッドを何回繰り返しても同じ結果が得られることになる(ように実装すべきという指針)。この性質のことを文章内で「冪等になる」という言葉を使って表現している。それに比べて,POSTなどのメソッドは,その実行によりサーバ内で副作用をもたらすため,同一の結果とならず「冪等ではない」というように表現されている。 「 JSR 311: Java API for RESTful Web Services」の策定が開始され,今後RESTの利用はますます増えてくるはずだ。つまり,上記のようなHTTP Methodに対する知識は,必須科目と言っても良いだろう。個々のHTTP Methodについて,サーバに対する副作用を与えるものかどうかの区別は感覚的に持っていたのだが,それを「冪等かどうか」という言葉で表現できることは知らなかった。勉強不足な自分に自己嫌悪。orz さて,話を元に戻す。Lingr APIの room.enter(チャット部屋への入室)に追加されたidempotentパラメータだが,これは「idempotentパラメータにtrueが渡された時に,同一セッションで前に同じroomに入室していた時は,その時と同じticket情報を返す」という動作になる。つまり,「同じ部屋に複数回入ったとしても,毎回同じチケット情報が結果として得られる」という点で「冪等である」と表現でき,この性質から「idempotent」というパラメータ名となった,と推測できるだろう。 もちろん,idempotentパラメータにfalseを渡す,すなわち「冪等ではない」と指定してroom.enterを要求すれば,チケット情報は新しい内容で発行される。 「脆弱」という言葉がインターネットの普及に伴って一般的に知られるようになったのと同じように,「冪等」という言葉もRESTの普及に伴って(IT業界内で)一般的になってくるのだろうか。ま,僕が知らないだけであり,実は既に常識なのかもしれないけど。。。

このエントリーをはてなブックマークに追加

関連記事

macOSやLinuxからWindowsに移行したら快適になった話

「エンジニアチームの生産性の高め方」という書籍が出版されました

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック