Webパフォーマンスについて

Webパフォーマンスについて記事を書いています。パフォーマンス管理は、品質管理です。ですから計測データを元に記事を書いてます。一緒に「品質の守護者」になりましょう!

「外形監視」という訳語の間違い

要約

この2年ぐらいの間に、Synthetic Monitoringを、「外形監視」という訳語を当てて書いている人が増えてきました。

また、External Monitoringの訳語として、「外形監視」という訳語を当てて書いている人も見かけます。

どちらも、間違いです。

正しくは、

  • Synthetic Monitoring ... 合成監視
  • External Monitoring ... 外部監視

です。

正しい訳語を使いましょう。

Synthetic Monitoringとは何か?

誰が、「外形監視」という訳語を一番最初に付けたのか、私は知りません。 この訳語を付けた方は、そもそも、Synthetic Monitoringとは何かを理解されていないと思いますし、データ分析の知識もお持ちでないと思います。

Synthetic Monitoringとは、Webサイトやシステムに対して、1ユーザとして、アクセスして、パフォーマンスの計測を行うものを指します。

世界で一番最初にSynthetic Monitoringという類の計測サービスを売りだしたのは、Keynote Systemsです。

Syntheticという単語は、「合成」とか「人工」、「統合」という日本語訳があります。 ですから、「統合監視」という訳語を付けた人もいます。

「合成監視?人工監視?なんだ、それ?」と思われる方も多いでしょう。 そう、その疑問こそが大事なんです。

Synthetic Monitoringという言葉は、データ分析におけるSynthetic Dataとか、Synthetic Datasetという言葉に由来しています。

WikipeidaのSynthetic Dataでは、以下のように説明が書かれています。

Synthetic data is "any production data applicable to a given situation that are not obtained by direct measurement" according to the McGraw-Hill Dictionary of Scientific and Technical Terms; where Craig S. Mullins, an expert in data management, defines production data as "information that is persistently stored and used by professionals to conduct business processes."

マグローヒルの科学技術用語辞典によれば、合成データは「直接測定によって得られていない所定の状況に適用できる生成データ」である。データ管理の専門家であるクレイグ S. ムリンズは、生成データを「ビジネスプロセスを実行するために専門家によって持続的に保存され使用される情報」と定義している。

ちょっと分かり辛いですね。

データサイエンティストのTirthajyoti Sarkar氏の「Synthetic data generation — a must-have skill for new data scientists」という記事での説明は、もう少し分かりやすく書いています。

As the name suggests, quite obviously, a synthetic dataset is a repository of data that is generated programmatically. So, it is not collected by any real-life survey or experiment. その名前が示すように、合成データセットはプログラムによって生成されるデータのリポジトリーです。したがって、実際の調査や実験では収集されません。

「データを生成する、それって何だ?」と疑問に思われましたか? そう思ったなら、正しい方向に思考が流れています。

Webパフォーマンスの「真値」はどこにある?

ここから、統計学的な、データ分析が関わる話になります。

真値

統計学では、「真値」(True Value)という言葉があります。

私達が何かを計測するとき、その値は、どれだけ正しいのでしょうか? その値には、様々なノイズが入り、誤差が生じ、そして値は揺らぎます。 ですから、私達が計測して得るデータは、必ずばらつき、分布を生み出します。

神様だけが知っている真の値、それが真値です。

誤差

実際に計測して得た値は、真値からずれます。 どの程度、真値からずれているのか、それを誤差と言います。

Wikipeidaでは、以下のように書かれています。

誤差(ごさ、error)は、測定や計算などで得られた値 M と、指定値あるいは理論的に正しい値あるいは真値 T の差 ε であり、 ε = M - T で表される。

よく日常会話で、「この程度は、誤差」と言います。 実際は、真の値を知らずに、誤差という言葉を日常的に使っている人が殆どでしょう。 日常で使われる「誤差」は、ニュアンスからすると「ばらつきの範囲内」という意味ではないでしょうか?

誤差には、以下のようなものがあります。

  • 測定する際に生じる測定誤差
  • データを計算する際に生じる計算誤差
  • 標本調査による統計誤差(標準誤差)

Webパフォーマンスの真値はどこにある?

さて、ここで、Webパフォーマンスに戻ります。 皆さん、Webパフォーマンスの「真値」はどこにあるでしょう?

Webサーバで計測した値でしょうか?それとも、ISPで計測した値でしょうか?実際のユーザが体験した表示速度でしょうか?

f:id:takehora:20190705003855p:plain
Webパフォーマンスの真値はどこの値?

Webパフォーマンスの値は、ネットワークの影響を受けるため、計測する場所で異なります。

順当に考えれば、ユーザが実際に体験した表示速度でしょう。

Synthetic Monitoringの登場

現在であれば、RUM (Real User Monitoring: リアルユーザ監視) がありますから、その値が、実際のユーザが体験した値として取得が可能です。 (しかし、まだ真値ではないです)

しかし、1997年にKeynote SystemsがWebパフォーマンス計測のサービスを世界で初めて開始した時、まだRUMの仕組みはありませんでした。 JavaScriptは存在していましたが、現在のような使われ方ではないですし、Webブラウザに計測数値を取得するためのAPIも存在していませんでした。

実際のユーザが体験したWebパフォーマンスの値(当時は、表示速度ではなく、構成ファイルのダウンロード完了時間でした)が、本来、分析すべき観測値なのですが、それを取得することはできなかったのです。

そこで、計測するシステムが、あたかも1ユーザであるかの如く、Webサイトにアクセスして、計測データを生成するという(Synthetic Data)ということで、Synthetic Monitoringというものが生み出されたのです。

リアルなユーザのWebパフォーマンスのデータではない、計測する機器が、1ユーザとしてアクセスしてみて、「Webパフォーマンスのデータを生み出した」というところに、Syntheticという言葉が使われている大きな意味があるのです。

だからこそ、私は、Keynote Systemsの日本代表になったときに、Synthetic Monitoringに「合成監視」とか「合成計測」という訳語を付けたのです。

External Monitoring

External Monitoringに対して、「外形監視」という訳語を付けている人がいます。

External Monitoringとは、何でしょうか? これは既に、日本語訳が存在していて、「外部監視」です。 外部からの死活監視の事です。

「巨人の肩の上」に乗っている私達

現在の科学や技術は、先人の偉業の積み重ねの上に成り立っています。 それを「巨人の方の上に乗る」という表現をします。

ja.wikipedia.org

もし、一部の人が、上述のような背景事情も知らずに、勝手に訳語を作ったならば、当然ながら、世界で使われている用語の意味と異なるわけですから、海外のエンジニアと日本のエンジニアの間で、Synthetic Monitoringの意味が異なってしまいます。それではいけないのです。

「外形監視」という訳語は、イメージしやすいですが、Synthetic Monitoringの本質を表していません。それではいけないのです。

エンジニアであるならば、きちんと先人の業績を尊重しましょう。 用語の由来などに気を付けましょう。

是非、「教育のためのTOC 日本支部」の「ツールの普及とコミュニティの健全な発展のための約束事」を読んでみて下さい。

tocforeducation.org

Synthetic Monitoringを「合成監視」という訳語を使うべき意味は、来年4月1日施行の改正民法債権法で必須となる品質保証にも関係があります。 2019年6月19日に開催した、html5jパフォーマンス部の勉強会で、Synthetic Monitoringの位置づけも解説したので、是非、動画をご覧下さい。

www.youtube.com

追記

コメントを色々拝見していますが、私が「巨人」という話ではないです。 世界で初めて、1997年にSynthetic Monitoringという分野を創りあげたKeynote Systemsが巨人だったのです。 Keynote Systemsは、2014年に、CEOのUmang Guputaが引退を決めて売却するまで、この分野ではマーケットシェアNo.1でした。

Synthetic Monitoringの訳語は、私が勝手に決めたわけではありません。 私自身も、Synthetic MonitoringのSyntheticという言葉に最初戸惑いました。 そして、Keynote Systemsが日本に進出する際に、経営陣や技術陣と協議して、その由来などを教えてもらってつけてます。

そのSynthetic Monitoringの由来も、記事中に書いてある通り、Synthetic Dataからきており、その訳語としては「合成データ」というのが存在しています。 「合成監視」という訳語にしたのは、それを尊重してのことです。

Keynote Systemsの社員達は、Keynotersと言われており、Keynote Systemsが売却された後、それぞれに新興の計測・監視サービスの立ち上げに関与して今も活躍しています。