シンメトリックの技術

2つの技術で、製品やサービスを生み出し提供しています

Web サイトクローン技術

Web サイトクローン

背景

サイトクローン技術はシンメトリックによる造語ですが、全く挙動の同じサイトを生成するという名前そのものの技術です。

従来、Webサイトは複製可能でwgetなどで巡回すればサイトそのものを復元することができました。コンテンツが静的でパーマネントなURLであった時代は、Webは記録・再現可能でした。Webの技術が発展し、動的コンテンツが常に違うコンテンツを出力するようになり、セッションで制御されるようになり、ブラウザー内でJavaScriptプログラムが動き、Ajaxで常に外部と通信するようになりました。そして、セキュリティの強化もあって、いつしかWebは記録不可能なメディアになりました。

記録できないメディアは、いくつかの問題をはらんでします。システムが古くなっても持ち続けるかデータごと捨てるしかないこと。ASP利用ではデータを諦めないとサービスがやめられないこと。本番システムデータでしか発生しない事象の再現が困難であること。Webコンテンツのエビデンス確保が困難であること。などです。どれもシステム運用における消極的な場面の問題ですが、コストに大きく響く部分でもあります。

サイトクローン技術では、現在の複雑なWebコンテンツを記録し、本番サーバーとは切り離された形で、本番同様に完全再現します。再現という意味からすれば本番は同じコンテンツを出せないので、再現できるのはクローンだけとも言えます。サイトクローン技術は、今まで光の当たらなかった問題を解決し、新たな付加価値を創造できる技術なのです。

技術の解説

クローン技術では、ある時点でページA0からページB0へ遷移した場合のコンテンツは、次の時点(A1からB1)では全く異なっている可能性があることを考えなくてはなりません。その上、クローン上でA0が表示されているのであれば、B0へ遷移できなくてはならず、B1に遷移してはいけません。また、セキュリティの観点からA0とA1、B0とB1は同一なURLとしてブラウザーに認識させる必要があります。これら要件を満たしつつ動作しているのがサイトクローン技術の基本特性です。

本番でしか出現しない一度きりのコンテンツを取得するためには、クローンとなるURLに制限や元のシステムに導入要件があることは望ましくありません。また、クローンが問題解決に役立つためには元コンテンツと同様のリソース構成を取り、リソースを編集して様々なテストができる必要があります。サイトクローン技術では、ブラウザーでアクセスするだけでクローンデータを取得することができます。その為、本番システムにアクセスするだけで、クローンを取得・再現でき、本番でのトラブルの原因追求と対応策の検討をすぐに開始することができます。

クローンではAjaxの通信もすべて取得し再現します。Ajax通信も同様に編集可能なので、通信データを編集しながらJavaScriptの挙動を確認することができます。このことは、これまでクライアントの挙動のテストの為にデータベースにデータを入れる必要があったものが、テキスト編集だけで様々なパターンを試すことができるようになります。

クローンは単なる静的ページともいえ、何度でも再現できます。このためユーザーエージェントを変えてウィンドウサイズを変えることで、マルチスクリーンテストにも利用することができます。レスポンシブルWebデザインでできているサイトでは、複雑な入力フォームやその確認画面などのテストをする際に、わざわざ入力せずにクローンに直接アクセスすることで、様々なスクリーン用の画面テストを素早く行うことができます。

サイトクローン技術ではクローンを生成するクローンサーバーがPCのローカル上で動作します。クローンサーバーは、ブラウザーからくるURLへのリクエストを横取りしてクローンコンテンツを返却します。ブラウザーを騙すことでクローンコンテンツはセキュリティ問題を回避します。一方、このクローンサーバーの効力はPCローカル上にしか影響できないため安全です。サイトクローン技術の実態は、特定のリクエストに対する一連のサーバー応答のエミュレーションです。通信データを本物と同じにすることで、ブラウザーはあたかもインターネット上にあるコンテンツに、アクセスしているかのように錯覚してコンテンツを出力するのです。

サイトクローン技術は、例えば、「本番しかアクセスできない、本番でしか出現しないような状況で、即席で安全な再現・検証環境を作り出す」といったことも可能で、Webの開発現場や運用現場において問題解決や生産性向上に寄与することが期待できる技術なのです。

今後の発展

サイトクローン技術はまだ生まれたばかりの若い技術です。それは、Webシステムがサーバーサイドアプリケーション中心から、WebAPI+クライアントJavaScriptという形態に変化していく中で生まれました。ユーザーのフロントにある本番システムからシステム情報を取得・検証できる、時代にマッチした技術としては多くの場面で必要とされていくでしょう。

関連製品