Symmetric Co., Ltd.

技術

特許技術

長年の研究で、数多くの特許技術を取得しています

シンメトリックは創業以来、進化し続けるデバイスに最適な情報を発信をするためのソリューション開発を行ってきました。
長年の研究・開発から、独自に生み出たアイデアを実用化し、数多くの特許を取得しています。

多様化するデバイスに最適なUIを提供する

Web変換技術

携帯電話によるインターネット接続が始まった10年以上も前、まだまだ非力であったモバイル機器のためにサブセットのような Web 規格が数多く出現しました。各規格のマーケット規模が小さい中、似て非なる規格であるこれらのモバイル用規格毎に Web システムを構築するのは大きなコスト負担でした。その規格の違いを吸収する解決策として出現したのが Web 変換技術でした。

モバイル機器はその後 10 年以上に渡って急速な発展を遂げ、同じ規格でも機種毎の仕様や性能が世代やメーカによって著しく異なったり、規格自体が次々とバージョンアップしたり、無くなったり、生まれたりすることが、繰り返されています。その中でモバイルの Web システムを正常に維持するには独特なノウハウと膨大な労力を必要としました。 Web 変換技術は、この機種依存問題の解決を図るために活躍するようになりました。

PC 並みの処理能力を備えたスマートフォンが急速に普及した現在では、どのサイトでもスマートフォン対応が必須となっています。特に、作り直すことや修正することが困難な、既存の PC 用 Web システムのスマートフォン対応が大きな課題となっています。このため、PC 用の画面をスマートフォン用の ユーザーインターフェース に変換する強いニーズが生まれ、ここでも Web 変換技術が大きな役割を果たしています。

技術の解説

モバイル草創期のコンテンツ変換技術は、主にマークアップ変換でした。<P> ⇒ <div> のような単純なテキスト変換や、 WAP と呼ばれる全く違う言語系への変換では構造変換が行われました。構造変換では、DOM パーサーを使ってツリー変換を行った後に変換先のマークアップに出力し、更に必要な微調整を行うものです。まだ画像はそれほど使われていなかったので、単純なリサイズをしていました。

シンメトリックではサーバーサイド Java を用いて DOM 変換と画像変換を実現するドリアンを出荷し、今でも数多くのシステムで稼働しています。

携帯モバイルの時代にはマークアップは統一されつつあり、 PC と同様に多くの画像・CSS・動画などでコンテンツが構成されるようになってきていました。その中でも開発者を苦しめたのが機種ごとに異なる容量制限の壁でした。また CSS が使えたものの、対応仕様が機種毎にバラバラで、最大の普及機では外部ファイルタイプには非対応だったため、利用が進まず、単純な色の変更でさえ多大な労力を必要としていました。動的なコンテンツも増えてきましたが、クッキーへの対応も機種毎に対応や動作仕様が異なり、開発者を悩ませました。

シンメトリックでは、機種の容量問題について、複数画像ファイルを変換しながら合計容量を機種ごとに調整する、という画期的な「画像変換機能」(※特許)を開発して、携帯モバイルの最大の課題を解決しています。また、CSSについては機種別の特性を綿密に調べ上げた上に、全ての機種に共通の外部CSSファイルを利用できるCSS変換機能を開発しました。クッキーへの対応ではエミュレーション機能を開発し、クッキー非対応機種への個別対応を不要にしました。これらの変換技術を搭載したラウンドアバウトは高速動作の為にApache+C言語で実装されました。

PC サイトのスマートフォン最適化においては、性能的な調整事項は基本的にないのですが、レイアウト変更対応と JavaScript 移植の課題があります。スマートフォン最適化では、元の HTML コンテンツの配置順を変えたり削ったり、スマートフォン用のコンテンツを追加したりコンテンツそのものの再構成が必要です。それでいて、PC から取得したコンテンツはPCと連動する必要があります。コンテンツ自体やスクリーンサイズ、そしてブラウザーも違うことなどから、CSS はほとんど別途当てなければなりません。一方、JavaScript は、そのまま動作しない場合、JavaScript を解析してスマートフォン用に移植する多大なコストが発生します。また移植した JavaScript では変更が反映されない問題もあります。

シンメトリックでは、PC⇒スマートフォンの変換ではコンテンツを再構成するという方針のもと、プロキシーサーバー上に構築するテンプレートシステムを開発しました。ここでは元のPCコンテンツを jQuery の構文で抜き出してテンプレート上に配置できます。しかも、サーバーで動作するにも関わらずテンプレートは JavaScript で記述することができます。これによりクライアントエンジニアもテンプレート開発することが可能です。また、JavaScript をコード分析せず書き換えずにその挙動を変え、PC での変更も反映される JavaScript 変換技術である「PostJS」を開発しました(※特許)。これらの技術を備えたのが PC ⇒ スマートフォン変換プラットフォームであるジーンコードです。ジーンコードはサーバーのテンプレートエンジンであるだけでなく、IDE を提供しておりテンプレートを容易に開発することができます。

Web変換技術は、その名前からブラウザーにレンダリングされたものを変換するとイメージされがちですが、実際はブラウザーにレンダリングされたものは外からは取得できないので、多くの変換は、ブラウザーに入る前の通信状態のデータを取得して変換を実現しています。実は、Web変換技術は、ブラウザーに関する知識と同じくらい HTTP を中心としたネットワーク知識によって支えられています。それによって、セッションやセキュリティにも配慮した安定して安全な変換システムが提供できるようになります。また Web 変換では、キャッシュなどにも通じて変換効率を向上させ、CDNと連携するなどの必要もあります。Web変換技術の実際は、HTML 変換だけではなく、ネットワーク技術を中心とした多くの技術の集合体であると言えます。

今後の発展
Web 変換技術はモバイルの発展と共に進化し、今後もその流れの中で発展をしていくでしょう。ひとつには現在のスマートフォンの進化の延長線上にあるもので、アプリケーション化など、クライアント上の様々な表現が可能になり、元コンテンツに益々依存しない表現が可能になる方向です。レスポンス Web デザインや HTML5 のアプリケーション化などと結合したクライアントサイドの進化になるでしょう。もう1つは IoT 分野で、更に細かい通信デバイスが大量に存在する場合の応用で、この場合はサーバーサイドの変換技術が進化していくことになるでしょう。

全く挙動の同じサイトを生成する

サイトクローン技術

従来、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という形態に変化していく中で生まれました。ユーザーのフロントにある本番システムからシステム情報を取得・検証できる、時代にマッチした技術としては多くの場面で必要とされていくでしょう。

Page Top