概要

  • アプリケーションは内部にあるデータを隠蔽することでロックイン効果を生む
  • これはパッケージソフトでもSaaSでもスマートフォンのネイティブアプリでも変わらない
  • データの可搬性が重視されるようになったが、個別のサービスで対応している段階
  • データの活用と相互運用性のためにデータの定義(スキーマ)をオープンにして共有してく必要がある

ソフトウェアの歴史を軽くおさらい

まず、ソフトウェアをアプリケーションとデータに分けることとする。
アプリケーションは、ユーザのためのUIを持ちデータを加工し、表示し、保持する。
データは、なんらかのアプリケーションを使用した結果、生成されるものとする。
アプリケーションもプログラミングの結果生まれるデータと言えるが、これは再帰的な構造になっているため自動的に議論に含まれる。

商品としてのアプリケーションはパッケージ製品から始まった。それ以前からOSS(その当時この言葉はなかったように思えるが)では、フロッピーディスクなどの記録媒体をとおして、大学などの教育機関や個人の間でやり取りされていた。パッケージ製品のアプリケーションは、そのデジタル的なサイズに相応しいとは言えないほどの大きな箱に入って電器店などの棚で売られていた。徐々にインターネットも普及していたが、それでも数百MB単位のデータをやり取りするには貧弱な回線速度だったため、CD・DVDなどでのソフトウェアの配布が続いた。

その後、ADSLなどの常時接続可能な高速回線が普及していく。それにあわせて、アプリケーションを物理的なパッケージとしてではなくデータとしてダウンロードし、インストールする形式が広まり始める。

WebアプリケーションもGoogleMapによるAjax(XMLHttpRequest)の活用により、ただの情報交換の場から徐々に仕事でも使えるツールとして発達していく。Internet Explorerだけでなく、FirefoxやGoogle Chromeといったブラウザが作られることで開発競争が起き(第二次ブラウザ戦争)、HTML・CSS・JavaScriptの標準化が進み、その発展に貢献した。また、回線速度の向上とムーアの法則によるコンピュータそのものの性能向上の影響も大きい。
Webアプリケーションはブラウザというレイヤーを挟むので、いわゆるOS上で直接動作するアプリケーションよりは、CPUを多く使ったり操作のレスポンスが悪いことが多い。しかし、それは上記したような技術の発達と社会への普及、開発ノウハウの共有により徐々に解決されていく。
そういった手元のコンピュータにインストールする必要の無い、ブラウザ上で動くビジネス向けのWebアプリケーションは、SaaS(Software as a Service)と呼ばれるようになる。

さらにスマホが普及し、そもそもアプリケーションを物理的なパッケージによって入れる手段さえ無くなってしまった。MacbookからDISCドライブが姿を消したのは、もう何年前のことだったか。大容量のデータが必要な映像も、インターネットによって供給されるようになり、高画質を求める一部のニーズのためにしかもう目にすることはない。

隠されるデータとロックイン

アプリケーションによって何をするかと言われれば(ゲーム以外では)何らかの仕事をこなし、その結果となるデータを生成することだ。
最も成功したと言える仕事向けのアプリケーションといえば、Microsoft OfficeのExcelであることに異論を唱える人はいないだろう。
アプリケーションで作成したデータはファイルにまとめられ保存される。しかし、他のアプリケーションでそのファイルを使えることは少ない。使うにはファイルのデータ定義が公開されている必要がある。Officeはあまりに広まったために、Office Open XMLという形式で標準化され仕様が公開されている。

しかし、Webアプリケーションはどうだろう。そのデータが手元のコンピュータにファイルで保存されることはほぼ無い。インターネットに接続されたどこかのサーバ上の、データベースやファイルシステムなどのどれかに保存される。いわゆるクラウドかもしれないし、そうでないかもしれない。ユーザが具体的な場所と保存方法を考慮することはない。
アプリケーションが手元にあって、ファイルとして保存されるのであれば、まだファイルを解析することはできた。しかし、いわゆるSaaSで提供されるWebアプリケーションでは、手元にファイルが無いために解析すらできない。さらに、ローカルにインストールされたアプリケーションと違って、Webアプリケーションは常に機能が変わっていき、データもそれに合わせて勝手に変化していく。ユーザは自身が提供したデータが実際にどのように保存されているのかを、アプリケーションのUIを通してしか知ることができない。

また、Webアプリケーションを使ったログは、HTTPの接続という形でサーバにログとして残る。ECサイトや動画閲覧サイトをアプリケーションと呼べるかは微妙なところだが、そういった行動ログを元に商品や映像作品などのレコメンドをすることはもう当たり前になった。さらに、Webページにアクセスした結果だけではなく、ブラウザ内の行動(たとえばマウスの動きやページスクロールなど)もサービスを提供する側は取得できる。Webを通すと、意図的に提供せずとも、アプリケーションを提供するサービス側にデータが行動ログとして残っていく。
これらのデータはユーザに利便性を与えるが、よりアプリケーションへの依存を強める効果もある。

GDPRのデータポータビリティ権

GDPR、すなわち、General Data Protection Regulation、EU一般データ保護規則の中には、データポータビリティ権が定義されている。それは、アプリケーションを提供する側の囲い込みを防止するために、ユーザが自ら提供した個人データを他のアプリケーションでも活用できるように、オープンフォーマット(XML、CSV、JSONなど)で提供するべき、というものだ。このデータにはユーザが意図して入力したデータと行動ログが含まれる。
これをユーザが取得できることで、自身が入力したデータを他のアプリケーションに渡して入力する手間を省いたり、行動ログを振り返って自分の過去の行動を認識できる。
個人情報の塊のようなデータではあるが、個人情報であるからこそ自分に適したサービスを選択する補助となる。これをユーザ自身が活用できない現状を打破するために必要な権利とも言える(実際のところアメリカの大手IT企業への牽制の意味合いが強いのだとは思うが)。

オープンなデータ定義(スキーマ)の必要性

アプリケーションによって保存されるファイルやWebアプリケーションでデータベースに保存されるデータは、基本的にそのアプリケーションでしか使用できない。特に後者は手元にデータを持ってくることが難しく、ユーザが意図的に提供したデータ以外にも行動ログなどの提供側が観測したデータも存在する。
そういったデータを活用するためには、まずExcelの例のようにデータの定義を公開し、社会で共有する必要がある。一つのファイルとして保存されるデータであれば事例もあるが、Webアプリケーションの場合はなかなか無い。現状では、各アプリケーションが、その機能のうちでダウンロードする需要の大きなデータを、CSV形式などで提供している程度だ。ユーザの氏名や住所、生年月日などの細かいデータに関しては、特にダウンロード方法が無いことが多い。また、行動ログのようなデータもダウンロードできないし、そういったデータはそのままではとても読みづらい。より活用しやすくするためには、グラフに加工するなどの処理を行う必要がある。そのためにも、ただオープンフォーマットで提供されているだけではなく、どのように定義されたデータなのかも公開したほうが良いだろう。

より個人と社会がデータを活用していくために

まずはデータ定義をオープンにする。そのオープンになっているデータ定義に合わせる形で、各アプリケーションがユーザに紐づくデータを一括してダウンロード可能にする。そうすることで、他のサービスを新しく使い始めたり、乗り換えることが容易になり、相互運用性も担保されるようになる。
逆に考えれば、オープンになったデータ定義に合わせた形で各個人がデータを元から持っていれば、様々なアプリケーションを最初から使いやすくなるのではないか。例えば、いろいろなECサイトで住所を登録するが、アプリケーションによって入力するフォームがバラバラになっている。郵便番号や電話番号が分割されたりされなかったり、姓名のカナまで必要だったり必要でなかったりする。届け先となるような住所は大抵一つだというのに、毎回入力する手間がかかる。ブラウザの入力支援機能も無くはないが、現状では実装が追いついていない。

個人的には、この「データ定義を共有すること」が社会のデジタル化、日本でいうところのDX(デジタルトランスフォーメーション)の要になると考えている。どのアプリケーションにでも使いやすいデータを、そもそも個人が持てるようになることでサービスを提供する側も実装のハードルが下がり、囲い込みによる停滞もなくなり、より健全な競争が生まれやすくなると考えている。