Web型グループウェア開発における技術標準動向と人材育成 - y

画像電子学会
第 9 回国際標準化教育研究会
-事業化と標準化教育-
Web 型グループウェア開発における技術標準動向と人材育成の課題
The standard trend in Web groupware development and training
竹迫 良範
Yoshinori TAKESAKO
サイボウズ・ラボ株式会社
〒112-0004 東京都文京区後楽 1-4-14 後楽森ビル 12F
E-mail: [email protected]
図 1: Web 型グループウェア製品サイボウズ Office 9 のトップページ画面
1. は じ め に
サ イ ボ ウ ズ 株 式 会 社 は 、 創 業 1997 年 か ら Web 型 グ
ループウェアを開発しているソフトウェア会社である。
主 力 製 品 は す べ て Web ア プ リ ケ ー シ ョ ン と し て 実 装
されており、専用のソフトウェアをインストールする
こ と な く 、 Web ブ ラ ウ ザ の み で 利 用 で き る ( 図 1)。
1.1. Web ブラウザの種 類
現 在 、動 作 を サ ポ ー ト し て い る Web ブ ラ ウ ザ の 種 類
は 、 Internet Explorer、 Firefox、 Chrome、 Safari の 各 バ
ージョンと多岐に渡っており、各ブラウザの動作の違
い が 、 開 発 上 の 大 き な 問 題 と な っ て い る ( 図 2)。
図 2:サ ポ ー ト 対 象 Web ブ ラ ウ ザ 一 覧
画像電子学会
第 9 回国際標準化教育研究会
2. Web ブ ラ ウ ザ の バ ー ジ ョ ン ア ッ プ の 歴 史
1994 年 に リ リ ー ス さ れ た Netscape Navigator で は 、
-事業化と標準化教育-
W3C が 勧 告 し た Web 標 準 に ど れ だ け 準 拠 し て い る
か を 視 覚 的 に 確 認 で き る テ ス ト Acid1 Test( 図 4)を 初
テ キ ス ト を 点 滅 さ せ る 目 的 の <blink>を HTML 中 に 記
め て 作 成 し た 。こ の テ ス ト は CSS1 Test Suite に 取 り 込
載できるようにしていた。競争関係にあったライバル
ま れ 、 Web 標 準 普 及 へ の 大 き な 前 進 と な っ た 1 。
の Internet Explorer は 、 テ キ ス ト を ス ク ロ ー ル 表 示 さ
せ る <marquee>や 、音 を 鳴 ら す <bgsound>な ど を 次 々 に
導入した。当時ブラウザ間で全く互換性のない独自拡
張がベンダー主導で積極的に行われる時期があった。
各ブラウザの挙動と見栄えの違いによって、多くの
Web 制 作 者 を 悩 ま す 結 果 と な っ た が 、 W3C に よ る
HTML4.01 仕 様 の 勧 告 と CSS の 普 及 に よ っ て 、 各 ブ ラ
ウザ・ベンダーは標準準拠を意識するようになった。
Netscape は 2008 年 に 開 発 を 終 了 し た が 、 そ の 後
Google Chrome の 登 場 に よ っ て Web ブ ラ ウ ザ の バ ー ジ
ョ ン ア ッ プ 競 争 が 現 在 ま で 続 い て い る ( 図 3)。
図 5: Acid2 Test の 表 示 結 果
そ の 他 、 主 に CSS2.1 へ の 準 拠 度 を 視 覚 的 に 確 認 で
き る Acid2 Test( 図 5)も 有 名 で あ る 。現 在 、デ ス ク ト
ッ プ PC 向 け の ブ ラ ウ ザ で は ほ ぼ 準 拠 し て い る が 、
Opera Mini 4 や iPod touch 2 な ど ス マ ー ト フ ォ ン 上 の ブ
ラウザでは正しく表示されない実装がある。
図 3: Browser History Timeline
http://meyer we b.com/eric/browsers/timeline -str uctured. html
2.1. The Web Standards Project(WaSP)
WaSP は 1998 年 に 設 立 さ れ た Web 標 準 に 沿 っ た ブ ラ
図 6: Acid3 Test の 100 点 満 点 結 果
ウザの実装とコンテンツ制作を支援する団体である。
最 近 は Ajax 技 術 の 普 及 に よ っ て 、JavaScript や DOM
を 多 用 す る Web ア プ リ ケ ー シ ョ ン が 増 え て き た た め 、
主 に HTML の DOM Livel 2 や ECMAScript の 挙 動 を テ
ス ト す る Acid3 Test( 図 6) が 2008 年 に 公 開 さ れ た 。
2.2. W3C CSS Working Group
こ の よ う に 視 覚 的 に CSS の レ ン ダ リ ン グ 結 果 を 確 認
で き る よ う に し た テ ス ト ス イ ー ト は W3C の WG で も
作 成 さ れ 、 現 在 9,600 件 の テ ス ト が 公 開 さ れ て い る 2 。
1
図 4: 初 め て 作 成 さ れ た Acid1 Test
ES ウ ェ ブ ブ ラ ウ ザ 通 信 - Acid1 テ ス ト
http://shiki.esrille.com/2011/09/es -acid1.html
2
CSS2.1 Test Suite Results
http://wiki.csswg.org/test/css2.1/results
画像電子学会
第 9 回国際標準化教育研究会
3. WHATWG と HTML5 の 関 係
-事業化と標準化教育-
3.2. HTML4 と HTML5 の違 い
WHATWG は Web Hypertext Application Technology
Working Group の 略 で W3C と は 別 の 団 体 で あ る( 図 7)。
従 来 の HTML4 の 文 章( 図 8)を XML valid で な い 書
き 方 が 許 容 さ れ た HTML5 で 書 き 直 す と 図 9 に な る 。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF -8">
<title>HTML4.01 example</title>
<script type="text/javascript">
alert("Hello!");
</script><style type="text/css">
body{background:#decafe}</style>
</head>
<body>
<p>HTML4.01 sample document<hr/></p>
</body>
</html>
図 8: HTML4.01 の 文 書 サ ン プ ル
図 7: WHATWG の Web サ イ ト
従 来 W3C が 進 め て い た XHTML2.0 の 方 向 性 と 現 場
のニーズの無関心さに不満を持ったブラウザベンダー
Opera、Mozilla、Apple の 3 社 が 集 ま り 、独 自 に 新 し い
HTML 関 連 仕 様 を ま と め る た め 、 2004 年 に 設 立 し た 。
こ の と き の 仕 様 は Web Applications 1.0 と Web Forms
2.0 と し て ま と め ら れ た 。 の ち の HTML5 で あ る [1]。
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>HTML5 example</title>
<script>alert("Hello!");</script>
<style>body{background:#eff}</style>
<p>HTML5 sample document<hr></p>
</html>
図 9: HTML5 の 文 書 サ ン プ ル
3.1. XHTML2.0 の終 了 と HTML5 の登 場
結 局 W3C は 2007 年 に XHTML2.0 の 策 定 を あ き ら め
従 来 の HTML の 仕 様 で は 字 句 解 析 と 構 文 解 析 の ア ル
て 、後 方 互 換 性 を 重 視 し た 新 し い HTML の 仕 様 を 策 定
ゴ リ ズ ム が 明 記 さ れ て お ら ず 、 HTML パ ー サ の 挙 動 が
す る と 発 表 し た 。 WHATWG は 自 分 た ち で ま と め た 仕
ブ ラ ウ ザ の バ ー ジ ョ ン 毎 に 異 な っ て い た ( 図 10)。
様 を HTML5 と い う 新 し い 名 前 で 策 定 し て は ど う か と
W3C に 対 し て 提 案 し [2]、HTML Working Group が W3C
内 に 新 設 さ れ た 。そ れ に 伴 い W3C は HTML5 の 仕 様 策
定 に 注 力 し 、 XHTML2 Working Group を 解 散 し た 3 。
表 1: HTML5 関 連 API の 実 装 状 況
対応ブラウザ
バージョン
Internet Explorer
Firefox
Chrome Safari Opera
8
9
10
3.6
4
10
5
11.50
Local Storage
○
○
○
○
○
○
○
○
Session Storage
○
○
○
○
○
○
○
○
Post Message
○
○
○
○
○
○
○
○
Offline Applications
×
×
×
○
○
○
○
○
WebSockets API
×
×
×
×
×
○
○
×
Web Workers
×
×
×
○
○
○
○
○
Query Selector
○
○
○
○
○
○
○
○
WebSQL Database(廃止)
×
×
×
×
×
○
○
○
IndexDB Database
×
×
×
×
×
×
×
×
Drag and Drop
○
○
○
○
○
○
○
×
File API
×
×
○
△
○
○
×
○
<!DOCTYPE html>
<title>HTML5 Syntax Checker</title>
<h2>Your Browser is...</h2>
<img
:src = "opera8.gif"
x=``src = "ie.gif"
srcZ/="netscape6.gif"
src#= "netscape7.gif"
= /src = "html5.gif"
''src^K= "safari.gif"
/src = "firefox.gif"
src = "others.gif"
src = "lynx.gif"
/>
<hr/><!-- ^K is Vertical Tab '¥x0B' -->
<p>http://www.w3.org/TR/html5/syntax.html</p>
図 10: HTML5 で は パ ー サ の 動 作 も 標 準 化
HTML5 は Web ア プ リ ケ ー シ ョ ン を 記 述 す る プ ラ ッ
GeoLocation
×
○
○
○
○
○
○
○
ト フ ォ ー ム の 仕 様 と し て JavaScript の API を 多 く 定 義
History Management
×
×
×
×
○
○
○
×
し て い る 。 い く つ か API は 元 の HTML5 の 仕 様 か ら 分
離 し た 形 で 、個 別 に メ ン テ ナ ン ス を 行 っ て い る( 表 1)。
3
2010-12-17: The XHTML2 Working Group is closed.
http://www.w3.org/MarkUp/
画像電子学会
第 9 回国際標準化教育研究会
-事業化と標準化教育-
4.2. ECMAScript 5 th Edition の登 場
4. ECMAScript の 標 準 化
1996 年 3 月 に リ リ ー ス さ れ た Netscape Navigator 2.0
し か し 、 ECMAScript 4 の 言 語 は 後 方 互 換 性 が な く 、
に は Web ク ラ イ ア ン ト サ イ ド で 動 作 す る ス ク リ プ ト
Web が 壊 れ て し ま う と 懸 念 し た 他 の ブ ラ ウ ザ ベ ン ダ ー
言 語 JavaScript の 最 初 の バ ー ジ ョ ン が 搭 載 さ れ て い た 。
から言語仕様の大幅な変更を受け入れてもらうことが
当 時 Netscape と Web 標 準 と ブ ラ ウ ザ シ ェ ア を 争 っ て い
で き な か っ た [5]。 代 わ り に ECMAScript 3.1 を ベ ー ス
た Microsoft は JavaScript と 互 換 性 の あ る ス ク リ プ ト 言
と し た 小 さ な 仕 様 改 訂 ECMAScript 5 が 承 認 さ れ た 。
語 JScript を 搭 載 し た Internet Explorer 3.0 を 8 月 に リ リ
ー ス し た 。 Netscape は JScript の 発 表 に 危 機 感 を 覚 え 、
JavaScript の 標 準 化 を 決 意 し た 。当 初 W3C に JavaScript
4.3. ECMAScript5 の仕 様 忠 実 な処 理 系 「lv5」
2011 年 、サ イ ボ ウ ズ・ラ ボ ユ ー ス の 鈴 木 勇 介 4 は [6]、
の 標 準 化 の 話 を 持 っ て い っ た が 、断 ら れ て し ま っ た [3]。
最 新 の ECMAScript5 の 仕 様 に 忠 実 な 処 理 系 lv5 を 実 装
Netscape は 標 準 を 買 う こ と が で き る 団 体 を 求 め て 、ISO
し た 。lv5 で は Array.length に 対 す る PropertyDescriptor
や そ の 他 標 準 化 団 体 を 回 り 、欧 州 の ECMA International
の設定が可能になっている。これは他のブラウザで 未
に 辿 り 着 き 、ECMAScript( ECMA-262)と し て JavaScript
実 装 な ECMAScript5 の 新 し い 仕 様 の 1 つ で あ る( 図 11)。
の 言 語 仕 様 を 標 準 化 す る こ と と な っ た ( 表 2)。
表 2: ECMAScript 各 版 の 標 準 化 動 向
版
時期
-
1996年3月
JavaScriptの誕生(Netscape Navigator 2.0)
概要
1
1997年6月
ECMA-262 1st Edition
2
1998年6月
ECMA-262 2nd Edition(ISO/IEC 16262:1998)
3
1999年12月 ECMA-262 3rd Edition
Ecma Internationalで最初に規格化
以後、JIS X 3060:2000としてJIS規格化
ISO/IEC 16262:2002(2nd Edition)改訂
4
5
廃止
ActionScriptとJavaScriptの統合と大幅な拡張を試みるが挫折
2011年6月
ECMA-262 5.1th Edition として Errata 等の修正
ISO/IEC 16262:2011(3rd Edition)改訂
ES.next
図 11: Test262, 15.2.3.7-6-a-112.js
2009年12月 ECMA-262 5th Edition を10年ぶりに策定
各ブラウザで実装されている仕様の追認(内容的にはES3.1)
5.1
fun ct io n t es tc ase () {
var a rr = [0 , 1];
Obj ec t.d ef in eP rop er ty (a rr, " 1 ", {
val ue : 1 ,
con fi gur ab le : f al se
});
try {
Obj ec t.d ef in ePr op er ti es( ar r , {
leng th : { val ue : 1 }
});
ret ur n f al se ;
} c at ch (e x) {
var d esc = O bje ct .g et Own Pr o per ty De scr ip to r(a rr , "l eng th ") ;
ret ur n e x in sta nc eo f Typ eE r ror & & des c. va lue = == 2 &&
des c.w ri ta bl e & & !d esc .e nu mer ab le && ! de sc. co nf ig ura bl e;
}
}
現在
新しいECMAScript HarmonyとしてTC39で仕様の拡張を検討中
TC39 で は 、ECMA-262 へ の 仕 様 準 拠 度 を 確 認 す る た
め の Test Suite と し て Test262 を 提 供 し て い る 。lv5 は 、
Test262 の 11029 件 の 全 件 テ ス ト う ち 11011 件 99.83%
を pass し て い る( 表 3)。残 り 18 件 に つ い て は Test262
Microsoft も 標 準 化 に 参 画 し 、 JScript も ECMA-262
に準拠するようにバージョンアップされた。
ECMA-262 は そ の 後 Fast-track 手 続 に よ っ て ISO/IEC
16262:1998 と し て 国 際 標 準 と し て 承 認 さ れ 、日 本 国 内
自 体 の バ グ の 可 能 性 が あ り 、Test262 の 開 発 者 に レ ポ ー
ト を 送 り 、数 件 の テ ス ト ケ ー ス は 修 正 の 見 込 み で あ る 。
表 3:ECMAScript Test262 準 拠 度 テ ス ト 結 果
で も JIS X 3060:2000 と し て 翻 訳 JIS が 制 定 さ れ た 。
4.1. 消 えた ECMAScript 4
th
Edition
2008 年 頃 ま で 、改 訂 を 目 指 し Adobe と Mozilla を 中
心 に ECMAScript 4 の 標 準 化 に 向 け た 準 備 が 着 々 と 進
Opera
Safari
Chrome
Firefox
lv5
all
pass
11029
11029
11029
11029
11029
7276
10256
10611
10865
11011
fail 仕様準拠度(%)
3753
773
418
164
18
65.97
92.99
96.21
98.51
99.83
め ら れ て い た 。Adobe は ActionScript 3 の 高 速 な JIT 処
理 系 実 装 Tamarin を 公 開 し 、 Mozilla は JavaScript 2.0
に向けた言語仕様のバージョンアップを行っていた。
ECMAScript 4 は ActionScript と JavaScript の 言 語 大
統一を試みる野心的なプロジェクトであった。
ActionScript 由 来 の class 宣 言 や int 型 、string 型 、const
宣 言 が 可 能 に な り 、 type 宣 言 や テ ン プ レ ー ト 型 も 使 う
こ と が で き 、 package、 namespace、 intrinsic 宣 言 な ど 、
ダイナミック言語の大規模開発で必要な要素はすべて
ECMAScript 4 で 取 り 入 れ ら れ る 予 定 で あ っ た [4]。
4.4. ISO/IEC 16262:2011 の策 定
日 本 で は 情 報 規 格 調 査 会 の SC22 専 門 委 員 会 内 に
ECMAScript ア ド ホ ッ ク を 招 集 し 、ISO/IEC 16262 の 改
訂 に 備 え た 。JSON 形 式 の サ ポ ー ト 、Strict モ ー ド の 追
加 、 ISO8601 形 式 の 日 付 対 応 、 エ ラ ー の 厳 密 化 な ど の
追 加 仕 様 部 分 を 主 に 審 議 し た 。ECMA か ら の Fast-Track
手 続 に よ り 、 JTC1 参 加 各 国 の SC22 mirror committee
4
慶應義塾大学理工学部 3 年
画像電子学会
第 9 回国際標準化教育研究会
-事業化と標準化教育-
が投票を行ったが、コメント付きの反対投票を行った
弱 性 と な る 。利 用 者 が 安 心 し て Web ア プ リ ケ ー シ ョ ン
の は 日 本 の JISC の み で あ っ た 。投 票 コ メ ン ト で は 、セ
を利用するためにも、仕様の策定段階からセキュリテ
ミ コ ロ ン 自 動 挿 入 や JSON の 表 記 ゆ れ に 対 す る 許 容 に
ィを考慮した設計と確認作業が必要である。
つ い て 最 近 の 実 装 を 反 映 し た 柔 軟 性 の 改 善 、 %演 算 子
のゼロ除算時の振る舞いなど技術的な記述の明確化、
5.3. 世 界 から見 た日 本 のおかしな標 準
URI の 扱 い の 最 新 RFC へ の 準 拠 な ど 技 術 的 な 改 善 を 提
日 本 の 12 時 間 表 示 の 慣 習 で 、 午 後 0 時 と い う も の
案した他、出典として参照すべき仕様の追加、仕様の
が あ る が 、通 常 デ ジ タ ル 時 計 の 表 示 は 12:00PM で あ る 。
不整合箇所や誤記など編集上の指摘を行 った。
そ の た め 、国 際 化 を 意 識 し た ソ フ ト ウ ェ ア で は 、午 前・
午 後 で は な く AM/PM 表 示 を 採 用 し て い る ( 図 13)。
5. Web 標 準 の 課 題
現 在 の Web ア プ リ ケ ー シ ョ ン の 動 作 の 根 幹 を な す
JavaScript に 関 す る 言 語 仕 様 は 、W3C で は な く 、ECMA
TC39 が ECMA-262 と し て 仕 様 の 策 定 を 行 っ て い る 。
Web Socket の JavaScript 側 API 5 は W3C が 策 定 し て い
る が 、 Web Socket の 通 信 プ ロ ト コ ル は IETF が 策 定 に
関 与 し て い る 6 。 HTML5 や 関 連 API は 基 本 的 に W3C
が 策 定 し て い る が 、WaSP や WHATWG の よ う に 別 団 体
も 過 去 に 存 在 し て い た 。現 在 の Web 標 準 の 規 格 は 一 つ
の団体が主導して決めているものではない。実装の追
認も含め、現実と理想のバランスを取りながら標準化
図 13: 日 時 表 示 の ロ ケ ー ル 設 定 画 面
を進めているのが現状である。複数の団体が将来のイ
ンターネットのビジョンを共有し、同じ目的を持って
協調しながら仕様を策定していく必要がある。
日本の標準化の甘さが露呈した事件もあった。世界
か ら 見 る と 日 本 の ロ ー マ 字 の 標 準 は ISO 3602:1989 で
あ る 。 こ れ は 「 富 士 通 」 を 「 HUZITU」 と 表 記 す る こ
5.1. Web 制 作 現 場 への標 準 化 教 育
Web 制 作 の 現 場 で は 未 だ に CSS ハ ッ ク と 呼 ば れ て い
る 手 法 ( 図 12) が 使 わ れ て い る 。 ブ ラ ウ ザ 毎 に CSS
とになり、ヘボン式に慣れている日本人には受け入れ
が た い 。こ れ は Web サ イ ト 所 有 者 の 法 的 実 在 性 を 証 明
す る EV SSL の 標 準 化 に お い て 問 題 と な っ た [7]。
の適用範囲や見栄えが異なるため、字句解析器の 例外
に依存した形で条件分岐を記述するという手法である。
body {
color: red; /* all browsers */
color: green¥9; /* IE6,7,8 */
*color: yellow;
/* IE6,7
*/
_color: orange;
/* IE6
*/
}
図 12: CSS ハ ッ ク と 呼 ば れ る 分 岐 手 法
これはブラウザの実装に依存した形で、将来の動作
が保証されたものではない。また、各ブラウザでの表
示確認に余計な時間と手間がかかってしまう。今後
HTML5 と CSS2.1 の 普 及 と 制 作 現 場 へ の 教 育 に よ っ て 、
こ の よ う な CSS ハ ッ ク が 不 要 に な る こ と が 望 ま し い 。
6. さ い ご に
Web の 技 術 は 変 化 が 早 く 標 準 策 定 の サ イ ク ル が 速 い 。
最新の標準動向に敏感な若い世代の人材を標準化団体
の中に取り込んでいく施策も必要であると考える。
参考文献
[1] W3C, 2011, HTML5 A vocabulary and associated
APIs for HTML and XHTML( Working Draft)
http://www.w3.org/TR/html5/
[2] @IT, 2010, W3C は 賞 味 期 限 切 れ 組 織 ?
http://www.atmarkit.co.jp/news/analysis/201001/19/w3c.html
[3] Rob Larsen, 2011, ECMA-262 第 5 版
最 新 の JavaScript 仕 様 に 関 す る 調 査
htt p ://www. ib m.co m/ deve loperwork s/jp/web/ library/wa -ec ma262/
5.2. Web セキュリティの問 題
近 年 の サ イ バ ー 攻 撃 で も Web シ ス テ ム が 攻 撃 の 対
象 と な っ て い る 。Web ブ ラ ウ ザ や Web ア プ リ ケ ー シ ョ
ンのセキュリティはこれから益々重要となる。実装の
ミ ス だ け で は な く 、 CSRF の よ う に 仕 様 上 の 欠 陥 も 脆
5
6
http://www.w3.org/TR/websockets/
http://tools.ietf.org/html/rfc6455
[4] 2007, Proposed ECMAScript 4th Edition
http://www.ecmascript.org/es4/spec/overview.pdf
[5] Chris Wilson, 2007, What I think about ES4.
http://blogs.msdn.com/b/cwilso/archive/2007/10/31/
what-i-think-about-es4.aspx
[6] 情 報 処 理 学 会 , 2012, 第 53 回 プ ロ グ ラ ミ ン グ シ ン
ポ ジ ウ ム 予 稿 集 pp.171-176
[7] 秋 山 卓 司 , 2009, EV SSL こ ぼ れ 話 (ISO 3602:1989
の罠)
http://yet2come.jp/2009/01/ev-ssl-iso-3602.html