技術ほど急速に変化するものは稀であり、そのなかでも Web 技術はさらに変化が速いようです。2010年の新技術として、どんなものが登場するのかを学びましょう。

Martin Streicher, Software Developer, Pixel, Byte, and Comma

author photo - martin streicherMartin Streicher はフリーランスの Ruby on Rails 開発者であり、以前は Linux Magazine の編集責任者でした。彼は Purdue University でコンピューター・サイエンスの修士号を取得しており、1986年以来 UNIX ライクなシステムのプログラミングをしてきました。彼は美術品やおもちゃを収集しています。


developerWorks 貢献著者レベル

2010年 1月 12日

もし Web がセレブであったなら、2009年のタブロイド紙の見出しの上位には、「夜通し続くクラウド・コンピューティングのパーティー、サーバー同士が抱擁」、「エイリアンも Twitter を利用、『無事到着!』」、そして「Kate Gosselin 出演の新しいリアリティー番組『8 種類ものブラウザーにはうんざり』」(訳注: Kate Gosselin が出演している、米国で放送中の人気番組『Jon& Kate Plus 8』にかけたもの) などが並んだことでしょう。

よく使われる頭字語

  • Ajax: Asynchronous JavaScript + XML
  • API: Application Programming Interface
  • CSS: Cascading Style Sheet
  • HTML: HyperText Markup Language
  • LAMP: Linux®, Apache, MySQL, and PHP
  • UI: User Interface

大袈裟な見出しはさておき、クラウド・コンピューティング、リアルタイム・コンテンツ、そしてブラウザーの速さと機能が進歩したことで、Web は従来とは比べものにならないほど魅力的なものになりました。Amazon S3 (Simple Storage Service) によるストレージから SendGrid によるスケーラブルな E メールに至るまでの堅牢なインフラは、何回かのマウス・クリックのみで利用できるようになり、ツイートや Flickr のアップデートに見られるような、その場で情報を作成して、いつでも、どこからでも送信できる機能は、礼儀上必要なほどになっています。また、Google Chrome、Apple Safari、Mozilla Firefox、Windows® Internet Explorer® 間の激しい競争によって、ブラウザーはより一層独立したプラットフォームに近づいており、Chrome の場合には、まったく新しい種類のオペレーティング・システムの中核となっています

2010年にも、パパラッチは必ずこれらの話題を追い続け、Microsoft 独自のクラウド・サービスや、Twitter の苦悩、そしてブラウザー・メーカーの闘いについてのスクープを記事や写真にしようとするでしょう。しかしそれ以外にも、さまざまなソフトウェアや、技術を進化させる出来事、そして 2010年のトレンドがヘッドラインを飾り、開発者達の関心を集めるはずです。以下では、2010年に技術のタブロイド紙のトップ・ストーリーとして取り上げられることが予想される話題を紹介します。

HTML の大変身

整形手術を受けるのは女優の卵ばかりではありません。古めかしい Hypertext Markup Language も整形手術を受けようとしています。驚くには当たりませんが、今や登場から何十年も経過した HTML フォーマットは技術革新に追いつくために苦闘しています。結局のところ、HTML は文書の構造化とパッケージ化のために考えられたものであり、Web アプリケーション用に考えられたものではありません。

HTML 5 は最近の Web のニーズに対応することを目的として策定されており、コンテンツとローカル・コンピューターとのやりとりをプログラムで行うためのサポートが強化されています。何よりも注目すべき新機能としては、HTML にプログラムで利用するためのインターフェース (API) が含まれていることであり、このインターフェースを利用すると、新しい canvas に任意のグラフィックスを描画することや、地球上での位置を検出すること、コードやデータをキャッシュに入れること、そして計算負荷の高いタスクを他に任せ、ブラウザーでの対話の応答性を高めることなどができます。

HTML 5 には video タグと audio タグが登場するため、現在非常によく使われている Adobe® Flash® や Microsoft® Silverlight™ を使用するのは時代遅れとなり、開発者や利用者はこうした 2 社独自のソリューションから解放されます。HTML 5 では、HTML 4 で画像を埋め込む方法と同じ方法でムービーやサウンドトラックを埋め込むことができます。

<video src="/video/redcarpet.ogg" width="400" height="300" controls>

また HTML 5 では、それまでコンテンツを構造化するためにやむを得ず使われていた暫定的な手法に代わる正式化な手法を採り入れています。例えば、Web ページの一般的な構成体、つまり <div class="header"><div class="footer"><div class="article"><ul class="nav"> などはそれぞれ、意味の明確な <header><footer><article><nav> などのタグに置き換えられています。これらの標準化されたタグはコンテキストを示しており、スパイダーやスクレイパーによってページの中から対象コンテンツを容易に探せるようになっています。

HTML 5 は承認された標準ではなく、HTML 5 を「正式なもの」と宣言するスケジュールも見あたらないようです (HTML 5 の関係者によると、正式になるまでには「何年もかかる」とのことです)。しかし主な Web ブラウザーは HTML 5 の強力な機能の多くを既に実装しています。例えば、Chrome、Firefox、Safari、Opera はどれも上に挙げた API をサポートしており、それぞれの素晴らしいデモをオンラインで見ることができます。また開発者達は、これらの新機能をベースとするアプリケーションの作成やデプロイメントを積極的に行っています。主な例としては、Google の会話エンジンで現在ベータ版の Wave や、JavaScript™、HTML 5、CSS のみをベースとするアプリケーション・フレームワークの SproutCore、そして共同作業に適したリッチなコード・エディターとして完全にブラウザー上で実行され、すべての作業をクラウドに保存する、Mozilla Lab の Bespin などがあります。

HTML 5 は変化し続けています。とは言え、より多くのアプリケーションが、ドラフト仕様のうちの一部 (的確に定義されていて、広く実装されている安定した部分) を利用するようになると予想することができます。HTML 5 は現在でも、Apple iPhone や Android などのモバイル・ブラウザーで驚くほど広くサポートされています。実際、革新的な HTML 5 アプリケーションにとって、モバイルは最も可能性の高いターゲットです。


データベースとの熱愛関係: 「もう RDBMS だけではありません」

Web 開発者達は非常に長い間、リレーショナル・データベース (RDBMS) に惚れ込んでいました。Web ページが Perl の DBI によって初めて動的でパーソナライズ可能なものになったのは、もう 10 年以上も前のことです。しかし、もはや RDBMS のみが唯一の選択肢ではありません。かつては分離不可能であった LAMP スタックが分離されつつあります。

厳密に言えば、Oracle、MySQL、PostgreSQL、SQLite などの RDBMS は Web 技術ではありません。実際はまったく逆で、あまり魅力のないメカニズムが Web インフラストラクチャーの最下位層に押し込まれているにすぎません。しかし最近の Web は、数え切れないほど多く存在するスキーマ (Amazon が提供している商品からウィキペディアの情報に至るまでのすべてに存在しています) を使用しない限り、ほとんど機能しません。しかし HTML と同様、おなじみの RDBMS も、最近の Web アプリケーションによる現実的な要求に対応するために苦闘しています。具体的に言うなら、すべての情報が正規化に適しているわけではありません。文書は 1 つのデータとして無理やり複数の行と列に押し込められていることが普通ですが、規則的ではないデータも RDBMS には不向きです。また、テラバイトやペタバイトにもなるデータを、1 つのシステムで管理することも容易ではありません。独自のアプリケーションにも、分析を容易に行える特別なストレージが必要です。

先駆的な開発者達は、この 18 ヶ月ほど、いわゆる「NoSQL」ソリューションへの移行を始めており、一時の流行が今や主流となっています。そうした、MongoDB、BigTable、Cassandra、Tokyo Cabinet といった風変わりな名前を持つデータ・ストアは、情報を分散化して何千台もの普通のサーバーに展開し、そにれよってペタバイトの情報を実現しようとしています。容量以外の面でも、NoSQL ソフトウェアはより柔軟に問題領域に対応することができます。MongoDB などのドキュメント指向のデータベースはその一例であり、また ORM (Object-Relational Mapping) をまったく持たないオブジェクト指向データベースも、その一例です。RDBMS でさえ、30 年目となる Web の現実に適応しようとしています。例えば、MySQL のバージョン 6 から分かれた Drizzle は、サイズが小さく、動作は高速で、より単純化されており、Web 用に調整されています。

永続ストレージと言えば、ごく最近までは RDBMS を指すのが当たり前でしたが、今では何を指しているかは「状況による」としか言えません。開発者達は実際にフィールドで作業を行いながら、より目的に合致するソリューションを探しています。


公の場にいるデータを目撃

従来、データは何かの陰に隠れたところで、ハンドラーによって注意深く保護され、慎重に提供されていました。あるいは濃い色のサングラスをかけ、Web 上の他の要素に紛れ込むことで、見つからないようにしていました。このため私たちは、時には必要な情報を見つけるために、オンライン・デジタル版の「ゴミあさり」のようになる必要がありました。幸運な場合には、いずれかの検索エンジン、あるいは Wolfram によって、必要な情報が見つかる場合もあります。しかし Google や Yahoo! でさえ、スパイダーが時々 Web を巡回して情報を収集するのみであり、適切な情報が得られるまでには多少の時間がかかります。実際、Web が常に最も理想的な情報を提供してくれるとは限りません。場合によると、理想的な情報ソースは、抗議デモの参加者や会議中にブログを書く人、あるいは開店したばかりのレストランで食事をする人かもしれません。

マッシュアップは、さまざまなデータを合成して利用すること (つまりさまざまなソースから収集した情報を整理して 1 つの大きなアプリケーションとしてまとめること) の可能性を示しており、数多くのマッシュアップが重要なものとして頻繁に利用されるようになっています。Google マップは強力な印象を与えたマッシュアップの一例であり、さまざまなビジネスの要覧と、検索結果、地図、衛星写真を組み合わせています。また Facebook のようなサービスによってソーシャル・ネットワークが提供され、どこにでも登場する Twitter ではそれに即時性が加わりました。しかしここで紹介したアプリケーションはまだ始まりにすぎず、魅力的なアプリケーションによってあらゆる種類のデータが瞬時に組み立てられるようになることを考えると、さらなるアプリケーションが今年も登場してくることが予想されます。スタッフやユーザーの (文字どおり) 手作りの情報を基にいわゆるネズミ捕り (スピード違反の取り締まりなど) の情報をリアルタイムで警告してくれる Trapster や、撮影している映像に情報を重ね合わせることが可能な Layar (つまり拡張現実) を考えてみてください。Layar を利用すると、単なる外出がさまざまな情報による仮想現実に満ちたウォーキング・ツアーになります。

確かに、拡張現実は技術というよりも、むしろ流行かもしれません。しかし効果的なエクスペリエンスは、画像認識やパターン認識、検索、データ収集、分析、配布など、さまざまな動的要素を持った技術で構成されていることは確かです。地理位置情報も不可欠な要素ですが、それはソーシャル・ネットワーキングも同様です。一部の情報は参照資料や従来のソースから得られるかもしれませんが、それに加えて他の人達からのより個人的な洞察が提供されるようになるでしょう。


電子決済のスターが登場

「それほど遠くない将来、すべての支払いをデジタル・ウォレットで行えるようになります。」この言葉を聞いたことがあるでしょうか。

キャッシュレスの時代になるという予言はおなじみですが、あまり遡らず Web の黎明期まで戻るとしても、それが言い古されたものであることがわかります。とは言え、マイクロペイメントや電子決済が 2010年に登場します。それは映画の「プルート・ナッシュ ( Adventures of Pluto Nash)」よりは優れたものになるかもしれません。

最近まで、マイクロペイメントやデジタル・ウォレットをサポートするインフラはほとんどありませんでした。マイクロペイメントに関しては、(あったとしても) ごく少数のプロバイダーが、ごくわずかなサービスを提供しているのみでした。デジタル・ウォレットの場合には、キャッシュ・カードやクレジット・カードなどを使ってキャッシュレスで支払うためには、通常はキャッシュ・レジスターと信用情報機関のネットワークとの何らかの物理的な接続が必要です。しかし Web とモバイル機器とを組み合わせることで、その機器が電子書籍リーダーであれ、携帯電話であれ、ネットブックであれ、あるいはラップトップ・コンピューターであれ、少額から高額まで、あらゆる種類の決済を行うための十分なインフラとなります。iPhone、Amazon の Kindle (iPhone 用もあります)、そして Barnes and Noble の新製品 nook を考えてみてください。どれも、ボタンにタッチするだけで買い物ができます。確かに、Kindle と nook は専用のサービスに結びつけられていますが、iPhone は違います。多くのアプリケーションでは、買い物したその時点でマイクロペイメントの処理が行われ、その料金が加算されます。そして 2009年の終わりになってサービスが開始された Square では、ほとんど誰もが iPhone での支払いをすることができます。多くの小売業者や銀行が iPhone アプリケーションを提供することで決済処理を合理化しようとしています。

Amazon の PayPhrase や、モバイル・ペイメント・プラットフォームである PayPal の PayPalX、そして Square は、支払いシステムの先頭を行っています。開発者や起業家は間違いなく、従来とは根本的に異なる新しい方法で製品を販売するためのビジネス・モデルやプロセス、アプリケーションを作り出すでしょう。


なんと!あの有名美女が携帯メールにはまる

現在、ある種の革命が起こりつつあります。この 20 年のパーソナル・コンピューティングの進歩は遅々としたものでしたが、ここに来て大量の新しいプラットフォームが登場しており、その多くは 2009年の後半 6 ヶ月に登場したものです。Google は独自の携帯電話である Nexus One の存在を認めた一方、Google の Android オペレーティング・システムは Barnes and Noble の nook をはじめ、他のいくつかのモバイル機器に採用されています。Apple は 2009年 9月に Mac OS X バージョン 10.6 Snow Leopard をリリースし、それからまもなく Microsoft は Windows 7 をリリースしました。iPhone は強く求められていたハードウェアとソフトウェアの更新を行い、一方 iPhone と対になる App Store では、ソフトウェア、音楽、ムービーの販売方法と利用方法が変更されました。突然、パーソナル・コンピューティングの初期の頃に戻ったように感じられますが、今やコンピューターが生活のあらゆる面に浸透している点が当時とは異なります。

ブラウザーは今や、World Wide Web へのポータルの 1 つにすぎません。企業や組織は 1 つの Web サイトのみを持つだけではなくなり、サイトに接続する機器の種類に合わせて複数のサイトを提供するようになっています。従来からの UI はデスクトップ・コンピューターには十分かもしれませんが、モバイル機器には最小限主義が必要であり、その機器の能力、画面サイズ、そして標準的なユーザーの使用に合わせて最適となるように調整された UI が必要です。そうした多くのバリエーションは作成が困難で高コストのように思えます。しかしデスクトップ・コンピューター用のソフトウェアの開発とは異なり、開発者は、一連の技術 (つまり HTML 5、JavaScript、そして CSS) を、すべてのプラットフォームに対して活用できるのです。


シリーズ新作が続々登場: トイ・ストーリー 3、Rails 3、PHP 6

Buzz Lightyear (訳注: アニメ映画の『トイ・ストーリー』に登場するキャラクター) が劇場に帰ってくるのに加え、2010年には従来技術の新バージョンがいくつか登場するはずです。

2010年の中頃にリリースが予定されている Ruby on Rails バージョン 3 は、人気の Rails フレームワークと Merb フレームワークとを統合し、Rails アプリケーションと Rails プログラマーの両方のパフォーマンスを高める機能が大量に追加されています。Rails のルーターは高速であり、サブドメインごとに個々のミドルウェアに対してルーティングすることができます。Rails 3 はクロスサイト・スクリプティング (XSS) 攻撃を阻止し、一般的な Ajax 手法を抽象化しているため、作成される JavaScript コードは JavaScript フレームワークに影響を与えず、また JavaScript フレームワークの影響を受けません。

PHP バージョン 6 では、あらゆる部分に Unicode が統合され、また大きい数値を扱えるようになっていまさす。さらに、クラスにメソッドを混合させる方法である trait が含まれるかもしれません。trait を利用することで多重継承の「オール・オア・ナッシング」手法を避けることができます (trait は Ruby の moduleinclude の機能に似ています)。下記はその一例です (Mark Story の許可を得て掲載しています)。

trait Sluggable {
    function slug() {
        return preg_replace('/[^\D\d]*/'), '_', strtolower($this->title));
    }
}
 
class Post extends Model {
    use Sluggable;
}

その他、影響の大きな新バージョンとして、Ubuntu バージョン 10.4 (Lucid Lynx)、Google Chrome OS、GNOME バージョン 3.0、Drizzle バージョン 1.0 (予定)、そして Parrot Virtual Machine をベースにした Perl バージョン 6 の部分実装である Rakudo バージョン 1.0 などがあります。


ビッグフットとエルビスが UFO で密会

2010年の大きな話題はポータブル Web です。ポータブル Web はユーザーの行く先の至る所にあり、ユーザーが携帯するすべての機器上にあります。

開発者にとって、ポータブル Web はおなじみであると同時に見慣れないものでもあります。新しいアプリケーションには、以下のような新たな要件があると予想されます。

  • Web アプリケーションはさまざまな機器で適切に動作する必要があります。
  • アプリケーションはブラウザーと対話動作する必要があり、さらにはオフラインでも動作する必要があるかもしれません。
  • HTML 5 の登場により、これまで以上に JavaScript が重要になります。これは HTML 5 の各 API が JavaScript 言語をベースしているためです。(まだ JavaScript のコーディング方法をマスターしていない人は、すぐにでも勉強を始める必要があるでしょう。) 幸いなことに、HTML 5 は (そして JavaScript 言語も) 最近のブラウザーで適切に動作し、また jQuery や Prototype などの JavaScript フレームワークはブラウザー間の違いを確実に隠してくれます。
  • バックエンド・コードは、それが Ruby on Rails 3 であれ、PHP 6 であれ、Rakudo、あるいは何か他のものであれ、多種多様なフロントエンドをサポートする必要があり、それらのインターフェースはそれぞれ大きく異なるかもしれません。
  • データベースはスケーラブルでなければなりません。どんなタイプのデータベースが適切なのかは状況によります。

技術ほど急速に変化するものは稀であり、そのなかでも Web 技術はさらに変化が速いようです。現在はソフトウェア開発者にとってワクワクする時代であり、ガレージの仕事場に数人が集まって次のキラー・アプリケーションを作成することができます。先のことはわかりません。皆さんが次のヘッドラインを飾るかもしれません。ではまたタブロイド紙でお会いしましょう。

参考文献

学ぶために

  • Amazon Web サービスのコンポーネント、Amazon S3 について学んでください。
  • SendGrid によって E メール機能を改善する方法を学んでください。
  • ChromeSafariFirefoxInternet Explorer にはどれも新しいバージョンがあり、またどれも、すべてのプラットフォームで動作します。
  • 今後の HTML である HTML 5 について学んでください。
  • Google によるコミュニケーションとコラボレーションのためのベータ・プラットフォーム、Google Wave について学んでください。
  • オープンで拡張可能な、コード編集のための Web ベースのフレームワーク、Mozilla Lab の Bespin について学んでください。
  • ウィキペディアの NoSQL の項目を読み、RDBMS ではないデータベースの動きについて学んでください。そうしたデータベースには、MongoDBGoogle BigTableCassandraTokyo Cabinet などがあります。
  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。
  • developerWorks の Technical events and Webcasts で最新情報を入手してください。
  • My developerWorks を利用して developerWorks のエクスペリエンスをパーソナライズしてください。

製品や技術を入手するために

  • developerWorks から直接ダウンロードできる IBM ソフトウェアの試用版を利用して、皆さんの次期プロジェクトを構築してください。これらの試用版には DB2® や Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品が含まれています。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Web development
ArticleID=466754
ArticleTitle=新興の Web 技術
publish-date=01122010