要約
この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で計測した値でしょうか?実際のユーザが体験した表示速度でしょうか?
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とは、何でしょうか? これは既に、日本語訳が存在していて、「外部監視」です。 外部からの死活監視の事です。
「巨人の肩の上」に乗っている私達
現在の科学や技術は、先人の偉業の積み重ねの上に成り立っています。 それを「巨人の方の上に乗る」という表現をします。
もし、一部の人が、上述のような背景事情も知らずに、勝手に訳語を作ったならば、当然ながら、世界で使われている用語の意味と異なるわけですから、海外のエンジニアと日本のエンジニアの間で、Synthetic Monitoringの意味が異なってしまいます。それではいけないのです。
「外形監視」という訳語は、イメージしやすいですが、Synthetic Monitoringの本質を表していません。それではいけないのです。
エンジニアであるならば、きちんと先人の業績を尊重しましょう。 用語の由来などに気を付けましょう。
是非、「教育のためのTOC 日本支部」の「ツールの普及とコミュニティの健全な発展のための約束事」を読んでみて下さい。
Synthetic Monitoringを「合成監視」という訳語を使うべき意味は、来年4月1日施行の改正民法債権法で必須となる品質保証にも関係があります。 2019年6月19日に開催した、html5jパフォーマンス部の勉強会で、Synthetic Monitoringの位置づけも解説したので、是非、動画をご覧下さい。
追記
コメントを色々拝見していますが、私が「巨人」という話ではないです。 世界で初めて、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が売却された後、それぞれに新興の計測・監視サービスの立ち上げに関与して今も活躍しています。
追記2
「合成」ではなく「人工」の方が、訳語として適切ではないか?という意見をTwitterで拝見しました。
まず、日本語の意味として、人工と合成では、意味が以下のように異なります。
- 人工 … 自然の事物や現象に人間が手を加えること。
- 合成 … 二つ以上のものが結びついて一つになること。
もちろん、人工については、「人間の手で自然と同じようなものを作り出したり、自然と同じような現象を起こさせたりすること。」という意味もありますから、能動的にWebサイトにアクセスして、レスポンスを生成させるという行為が「人工」であるという解釈で「人工」という訳語もありうるでしょう。
しかし、Webサイトへのアクセスは、人が行うものであり、自然が行うものではないです。
計測という行為は、システムに対する一種の干渉行為で、システムに影響を与えます。 レスポンスは、概念的にはリクエストとシステムの力の合成と言えます。 光の反射のように遅延が生じなければ計測は必要なく、距離を速度で割ればいいだけの話です。
レスポンスは、リクエストの「力」がシステム処理の「力」によって影響を受けたもの、つまり力の合成です。
「システム負荷」とよく云いますが、リクエストは、システムに対して抑え込む「力」を持ち、リクエストが多いほどに、システム処理の力が抑え込まれます。 このように考えれば、力の合成という概念で、レスポンスタイムというデータが合成されているのだとご理解頂けるとかと思います。