<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>自動車 &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/自動車/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>テレビも車もゲーム機も！組み込みブラウザ開発ってどんな世界か聞いてみた</title>
		<link>/shumpei-shiraishi/24637/</link>
		<pubDate>Wed, 08 Nov 2017 02:06:37 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[システム開発]]></category>
		<category><![CDATA[ゲーム]]></category>
		<category><![CDATA[ハイブリッドキャスト]]></category>
		<category><![CDATA[組み込みブラウザ]]></category>
		<category><![CDATA[自動車]]></category>

		<guid isPermaLink="false">/?p=24637</guid>
		<description><![CDATA[連載： HTML5 Conference 2017特集 (2) こんにちは、編集長の白石です。 この記事は、9月24日に開催されたHTML5 Conference 2017に登壇したエキスパートに、お話されたセッションの...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/html5-conf2017/" class="series-457" title="HTML5 Conference 2017特集" data-wpel-link="internal">HTML5 Conference 2017特集</a> (2)</div><p><style>
b.speaker {
  margin-right: 1em;
}
</style>
こんにちは、編集長の白石です。</p>

<p>この記事は、9月24日に開催された<a href="http://events.html5j.org/conference/2017/9/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Conference 2017</a>に登壇したエキスパートに、お話されたセッションのトピックを中心に語っていただこうとういものです。セッションの内容をより深く理解する手助けになるだけでなく、本記事単体でも面白く読んでいただけることを目指しています。</p>

<p>今回お話を伺ったのは、株式会社ACCESSの梅田雅士さんです。</p>

<p><img src="/wp-content/uploads/2017/10/DSC05579.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24649" srcset="/wp-content/uploads/2017/10/DSC05579.jpg 640w, /wp-content/uploads/2017/10/DSC05579-300x200.jpg 300w, /wp-content/uploads/2017/10/DSC05579-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>梅田さんのセッション「TV・車・ゲームに搭載されているブラウザってどうなってるの？」に関するスライド資料は、こちらで公開されています。</p>

<iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.slideshare.net%2Fslideshow%2Fembed_code%2Fkey%2F94O53WFZyAkiCq&#038;url=https%3A%2F%2Fwww.slideshare.net%2FMasashiUmeda%2Ftv-81364792&#038;image=https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fhtml5conference2017-171030095111-thumbnail-4.jpg%3Fcb%3D1509357173&#038;key=internal&#038;type=text%2Fhtml&#038;schema=slideshare" width="500" height="417" scrolling="no" frameborder="0" allowfullscreen></iframe>

<p><br></p>

<h2>組み込みブラウザって…なに？</h2>

<p><b class="speaker siraisi">白石:</b>では、まずは簡単に自己紹介をお願いできますか？</p>

<p><b class="speaker umeda">梅田:</b>株式会社ACCESS IoT事業本部課長の梅田 雅士です。
もともとはエンジニアでして、ブラウザ開発からWebサービスまで、組み込みからフロントエンドまで開発していました。</p>

<p><b class="speaker siraisi">白石:</b>すごく幅広い経歴をお持ちですね！今回はPCやスマートフォン「以外」の環境におけるブラウザのお話を伺えると聞いています。</p>

<p><b class="speaker umeda">梅田:</b>はい、今やブラウザはテレビにも、自動車にも、ゲームにも搭載されています。それらを総じて「組み込みブラウザ」と呼んでいます。</p>

<p><b class="speaker siraisi">白石:</b>組み込みブラウザと言うのは、PCやスマートフォンのブラウザとどう違うんでしょうか？</p>

<p><b class="speaker umeda">梅田:</b>Webを閲覧できると言うのは、ブラウザの基本的な機能ですので、組み込みブラウザであっても変わりません。違うのはまず動作環境ですね。例えばOSも、LinuxからiTronまで、様々な環境があります。中にはタッチ操作やマウス操作が存在しない環境でも動作することが求められることもあります。</p>

<p><b class="speaker siraisi">白石:</b>ACCESSさんの組み込みブラウザは、今は主にChromiumやWebKitをベースにして開発してらっしゃるんですよね。組み込み向けに機能を追加したり、ということもあるんでしょうか？</p>

<p><b class="speaker umeda">梅田:</b>はい、例えばテレビのリモコンとか、ゲームのコントローラーとかでブラウジングを可能にすると言った機能の追加は一般的にありますね。ブラウザの操作に関しては、「組み込みならでは」という部分は多いです。</p>

<h2>テレビとブラウザ</h2>

<p><b class="speaker siraisi">白石:</b>では、テレビ、クルマ、ゲームに搭載されているブラウザの状況について、詳しく教えてください。</p>

<p><b class="speaker umeda">梅田:</b>ではテレビからいきましょう。実はテレビには昔から身近にありまして、<strong>テレビのdボタンを押して立ち上がる画面は、実はブラウザ</strong>なんです。</p>

<p><b class="speaker siraisi">白石:</b>dボタンはブラウザ起動ボタンでもあったわけですね。</p>

<p><b class="speaker umeda">梅田:</b>はい、それにテレビのメニュー選択を行うアプリもHTMLで書かれていたりしますね。</p>

<p><b class="speaker siraisi">白石:</b> <strong>ハイブリッドキャスト</strong>と言うのは何でしょうか？</p>

<p><b class="speaker umeda">梅田:</b>テレビ向けのブラウザでは、以前はBML (<a href="https://ja.wikipedia.org/wiki/Broadcast_Markup_Language" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Bloadcast Markup Language</a>)という、XHTMLベースの独自言語が利用されていました。ですが現在では、HTML5をベースとしたテレビ用の規格がありまして、それが「ハイブリッドキャスト」です。</p>

<p>ハイブリッドキャストは「放送と通信の連携」を目的として、NHKさんを中心とした標準化が行われています。単にHTML5が使えると言うだけではなく、スマートフォンとの連携（セカンドスクリーン）機能なども備えています。</p>

<p><b class="speaker siraisi">白石:</b>民放局の、ハイブリッドキャストへの対応度合いとかはいかがですか？</p>

<p><b class="speaker umeda">梅田:</b>各社とも、現在対応を拡充している段階ですね。2020年の東京オリンピックで、テレビ放送をより楽しく観せるのが、各社共通の目標になっています。</p>

<p><b class="speaker siraisi">白石:</b>ちなみに昔聞いた話なのですが、<strong>テレビって意外にも低スペック</strong>で、重たいWebページを表示させるのは難しいと聞いたことがあります。その状況は現在では変わりましたか？</p>

<p><b class="speaker umeda">梅田:</b>いえ、あまり変わりないです。テレビの中で一番高価な部品はやはりパネル。その他の部品、例えばCPUなどは、やはり廉価なものが使われることが多いんですね。なのでテレビ向けのWebページは、軽量であることが望まれます。</p>

<p><img src="/wp-content/uploads/2017/10/DSC05566.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24650" srcset="/wp-content/uploads/2017/10/DSC05566.jpg 640w, /wp-content/uploads/2017/10/DSC05566-300x200.jpg 300w, /wp-content/uploads/2017/10/DSC05566-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>車とブラウザ</h2>

<p><b class="speaker siraisi">白石:</b>では次は車とブラウザの関係について教えてください。</p>

<p><b class="speaker umeda">梅田:</b>自動車業界では、カーナビを中心とした、操作可能な中央のスクリーンを「<strong>HMI (Human Machine Interface)</strong>」と呼びます。HMIでブラウザを利用できると、例えば自動車のマニュアルをHTMLで書いたりできます。HTMLは多言語化しやすいのでメリットは大きいですね。</p>

<p>あとは車載システムにアプリを追加することができるものもあります。インターネットと繋がって、例えば天気を表示したり、運転を楽しくするようなアプリがインストールできたりします。車載システムは「情報（インフォメーション）」と「娯楽（エンターテインメント）」を提供するという概念から、「<strong>インフォテインメント</strong>」とか、「<strong>IVI</strong>（In-Vehicle Infotainment：車載インフォテインメント）」と呼ばれたりします。HMIでブラウザが利用できるなら、そうしたアプリもWeb技術で開発できるようになります。</p>

<p><b class="speaker siraisi">白石:</b>車載システムにブラウザを搭載するという動きは、どれくらい進んでいるものなんでしょうか？</p>

<p><b class="speaker umeda">梅田:</b>海外では結構進んでいます。車載システムのOSは共通化が進みつつあって、主要なものとしては<a href="https://www.automotivelinux.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AGL (Automotive Grade Linux)</a>や<a href="https://www.genivi.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">GENIVI</a>がありますが、これらには今後ブラウザが搭載される予定があります。</p>

<p>ちなみに<strong>AGLって、Tizen IVIが元になっている</strong>んですよ。Tizenは一時期HTML5にも注力していましたので、白石さんはご存知じゃないかと思いますが。</p>

<p><b class="speaker siraisi">白石:</b>ええっ！Tizenって久しぶりに聞いた名前です。そうだったのか…そういう風に受け継がれていたんですね。IT業界って、思わぬところが繋がってたりするので面白い(笑)</p>

<p>ところでそういう車載システムとかだと、テスラの車とかは進んでるイメージありますけど、実際のところどうなんでしょう？</p>

<p><b class="speaker umeda">梅田:</b>確かにテスラは進んでいて、WebKitを搭載した車載システムを既に積んでいますね。ただ、古いバージョンのWebKitを搭載していたため、そのセキュリティホールを突かれてハッキングが可能な状態になっていたことがあったりします。車載システムの高度化に伴って、セキュリティリスクも高まりつつあるというのが実情です。</p>

<h2>ゲームとブラウザ</h2>

<p><b class="speaker siraisi">白石:</b>ゲーム機にブラウザが搭載されているという点についてはいかがでしょう？</p>

<p><b class="speaker umeda">梅田:</b>実は、<strong>ゲーム機にブラウザが搭載されているのは結構昔から</strong>なんです。2003年に発売されたPlayStation 2や、2004年に発売されたPlayStation Portableには、もう入っていましたからね。</p>

<p><b class="speaker siraisi">白石:</b>そんなに昔から入っていたんですね。そう言えば、ガラケーとかにもブラウザ積まれてたし、そう言えば組み込みブラウザって結構昔からあったんですよね。</p>

<p><b class="speaker umeda">梅田:</b>そうですね。それに、<strong>ゲームソフト自体にブラウザが積まれていたこともありました</strong>よ。</p>

<p><b class="speaker siraisi">白石:</b>ええっ！ゲームソフトがブラウザを内蔵していたんですか？</p>

<p><b class="speaker umeda">梅田:</b>そうです。例えばモンスターハンター3には、弊社のNetFrontというブラウザが内蔵されていました。</p>

<p><b class="speaker siraisi">白石:</b>ゲームソフトにブラウザが入ってるなんて、考えたこともありませんでした。すごい世界だ。</p>

<h2>ブラウザ開発ってどんな仕事？</h2>

<p><b class="speaker siraisi">白石:</b>そもそもブラウザ作ってる会社ってあまりないですよね。そこら辺の実際をお聞きしてみたいです。ブラウザ開発って、どのように進めるものなんですか？</p>

<p><b class="speaker umeda">梅田:</b>基本的には、W3Cの仕様を満たすように実装するというのがブラウザ開発の中心になります。ただ、今はオープンソースのブラウザをベースに開発していますので、少し仕事の範囲が変わりましたね。W3Cの仕様を満たすために開発するのは、主にChromiumやWebKitのコアチームに任せて、私たちはその移植が中心になりました。</p>

<p><b class="speaker siraisi">白石:</b>なるほど、今はブラウザエンジンそのものの開発に深く食い込んでいるわけではないと。</p>

<p><b class="speaker umeda">梅田:</b>ただ、弊社ではEPUBのエンジンも作っていまして、そのために独自開発した部分とかは結構ありますね。例えば縦書きレイアウトとかは、W3Cに提案されている仕様を元に弊社で開発したコードを、ブラウザエンジン側にコントリビュートしたりもしています。</p>

<p><b class="speaker siraisi">白石:</b>ちなみにブラウザ開発って、どんな言語を使って行うんですか？</p>

<p><b class="speaker umeda">梅田:</b>WebKitやChromiumはC++で書かれているので、C++ですね。C++ってメモリマネジメントが重要な言語ですが、WebKitとかってそこら辺が少しいいかげんだったりするんです(笑)。</p>

<p><b class="speaker siraisi">白石:</b>え、そうなんですか？メモリリークしたり、とかですか？</p>

<p><b class="speaker umeda">梅田:</b>さすがに派手なメモリリークとかはめったにありませんが、メモリ確保に失敗した時の処理が甘かったり、とかですね。で、車載システムとかで利用する場合って、「動かない」って状況になるのはすごくまずいわけです。運転中は安全がなにより最優先ですから。そういう穴を潰して本家にコントリビュートする…というのもたまにありますね。</p>

<p><img src="/wp-content/uploads/2017/10/DSC05567.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24651" srcset="/wp-content/uploads/2017/10/DSC05567.jpg 640w, /wp-content/uploads/2017/10/DSC05567-300x200.jpg 300w, /wp-content/uploads/2017/10/DSC05567-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>組み込みブラウザベンダーはつらいよ</h2>

<p><b class="speaker siraisi">白石:</b>ACCESSさんはブラウザと言っても、更に「組み込みブラウザ」を作っているという数少ない存在。そういう、数少ない組み込みブラウザベンダーならではの苦労などをお聞きしたいです。</p>

<p><b class="speaker umeda">梅田:</b>そうですね、まず先ほども申し上げたように、現在はChromiumやWebKitをベースに開発しています。以前は独自のブラウザエンジンでしたが、数年前にWebKitに切り替えたんです。ただ、WebKitはそもそも組み込み用途が主ではありませんでしたから、当初はハードのスペック的な制約との折り合いを付けるのが大変でしたね。（Webページが）メモリに乗り切らないので、数キロバイト単位に分割してメモリに載せるようにしたり…</p>

<p><b class="speaker siraisi">白石:</b>うわー、それは大変そう…。</p>

<p><b class="speaker umeda">梅田:</b>最近はハードのスペックが向上したので、そういう苦労をすることも少なくはなってきましたけどね。あとは、レンダリングのパフォーマンスを改善するのも大変ですね。車載システムだと、最低でも60fpsは要求されるので、動画のデコードをハードウェアに行わせるようにするとか、CanvasをGPUレンダリングするとか。スクロールが滑らかになるようチューニングするのも大変でした。</p>

<p><b class="speaker siraisi">白石:</b>WebKitとChromiumは使い分けてるんですか？</p>

<p><b class="speaker umeda">梅田:</b>お客様からのご要望や、用途に応じて使い分けています。WebKitはリリースサイクルがだいたい年一回で安定していますが、Chromiumのリリースサイクルはもっと速くて、コードもどんどん変化していきます。どちらがいいということでもなくて、それぞれにメリットがありますね。</p>

<p><b class="speaker siraisi">白石:</b>大変興味深いお話です。組み込む製品ごとに異なる苦労とかはあったりするんですか？</p>

<p><b class="speaker umeda">梅田:</b> <strong>車の場合とかは、製品の開発サイクルが長い</strong>のが特徴です。一つの車を作るのに5年とかかかったりすることもあるので、何回もつなぎ込みが発生するわけです。</p>

<p><b class="speaker siraisi">白石:</b>5年！Webの世界で5年と言ったら、状況はかなり変わってしまいますよね。</p>

<p><b class="speaker umeda">梅田:</b>そうですね。ベースになっているブラウザもどんどん進化していくので、つなぎ込みを行うたびに、できるだけ最新に近づけていくようにするんです。その際に、ブラウザエンジンが持つAPIが変わってしまうことも珍しくありません。そういう事態に対応しやすいように、APIを抽象化したレイヤーを持っていたりします。</p>

<p><b class="speaker siraisi">白石:</b>いやー、ぼくみたいなフロントエンドエンジニアが全然体験したことのない苦労だ(笑)</p>

<p><b class="speaker umeda">梅田:</b>他には、ブラウザの機能を拡張しなくてはならないこともよくあります。組み込みの場合って、HTML5が元々持っている機能だけじゃ足りないことが多いんですよ。</p>

<p>ゲームの場合は、ゲーム機というハードに閉じているからか、独自に拡張することが多いのが特徴です。</p>

<p>車載の場合は、<a href="https://www.w3.org/TR/vehicle-information-api/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Vehicle API</a>っていうAPIがW3Cで標準化されていますので、その実装を行うのも仕事の一つです。このAPIを使うと、例えばキーロックの情報を取れたりと、車載システムならではの機能を利用することができます。</p>

<p><img src="/wp-content/uploads/2017/10/DSC05564.jpg" alt="" width="640" height="427" class="alignnone size-full wp-image-24653" srcset="/wp-content/uploads/2017/10/DSC05564.jpg 640w, /wp-content/uploads/2017/10/DSC05564-300x200.jpg 300w, /wp-content/uploads/2017/10/DSC05564-207x138.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>PCやスマホ「じゃない」Webアプリ開発とは</h2>

<p><b class="speaker siraisi">白石:</b>では最後に、PCやスマホじゃない世界でのWebアプリ開発について、どのようなものかお聞かせください。</p>

<p><b class="speaker umeda">梅田:</b>基本的には、それほど変わるところはありません。組み込みブラウザと言っても結局WebKitやChromiumをベースとしていますし、HTML5以降はブラウザ間の互換性も高くなっていますし。</p>

<p>ただ、市場によって制約はありますね。例えば車載システムで動作する場合は、運転手の気を逸らさないようUIガイドラインがあったりします。</p>

<p>一方で、市場ごとに特有の拡張機能を使うことも求められます。</p>

<p><b class="speaker siraisi">白石:</b>先ほどおっしゃっていた、車載システム上で使えるVehicle APIなどですね。</p>

<p><b class="speaker umeda">梅田:</b>そうです。そして、そうした標準化されたAPIと言うのは、組み込みの世界で特に重要なんです。</p>

<p>基本的にオープンなPC/スマホに比べて、組み込みは市場に特化しがちな世界でもあります。クローズドな世界で、クローズドな技術を使っているのでは、スキル的にもビジネス的にも拡がりにくい。</p>

<p>オープンで標準化されたAPIを使うことで、そうした事態を避けることができる。Web技術者も、活躍できる場がどんどん広がっていきます。</p>

<p><b class="speaker siraisi">白石:</b>なるほど。ちなみに、車載の世界とかでは、App Storeのようなアプリプラットフォームが出てくる可能性はあるのでしょうか？そして、Webで作ったアプリであればそれらのプラットフォームにどこでもデプロイできるというような可能性はありますか？</p>

<p><b class="speaker umeda">梅田:</b>はい、そういう可能性はもちろんあります。アプリプラットフォームみたいな構想は各社持っていて、今後登場してくるのは間違いありません。
その時に、Web技術を使ってアプリを開発できる可能性も、それが複数のプラットフォームで展開できる可能性も、大いにあると思います。</p>

<p>そうした世界を見据えて、総務省さんと一緒に「<a href="https://rp.kddi-research.jp/hackathon" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Webとクルマのハッカソン</a>」というイベントをここ数年開催しています。10月下旬から申し込み開始ですので、興味のある方にはどんどん参加してほしいですね。</p>

<p><b class="speaker siraisi">白石:</b>あ、そのイベント去年ぼくが審査員やったやつだ(笑)。去年もすごく盛り上がりましたよね。本日は組み込みブラウザ開発の話、そしてPC/スマホ以外のWeb開発の話など、普段あまり聞けないお話をお聞かせいただき、ありがとうございました！</p>

<p><img src="/wp-content/uploads/2017/10/DSC05548.jpg" alt="" width="640" height="416" class="alignnone size-full wp-image-24652" srcset="/wp-content/uploads/2017/10/DSC05548.jpg 640w, /wp-content/uploads/2017/10/DSC05548-300x195.jpg 300w, /wp-content/uploads/2017/10/DSC05548-207x135.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>
]]></content:encoded>
		
		<series:name><![CDATA[HTML5 Conference 2017特集]]></series:name>
	</item>
		<item>
		<title>車載とWebの今がわかる、てんこ盛りの165分！</title>
		<link>/yhori/6710/</link>
		<pubDate>Fri, 30 May 2014 00:00:43 +0000</pubDate>
		<dc:creator><![CDATA[堀裕司]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[FirefoxOS]]></category>
		<category><![CDATA[QNX]]></category>
		<category><![CDATA[TizenIVI]]></category>
		<category><![CDATA[html5j]]></category>
		<category><![CDATA[自動車]]></category>
		<category><![CDATA[車載機器]]></category>

		<guid isPermaLink="false">/?p=6710</guid>
		<description><![CDATA[連載： イベントレポート (18)今年に入って車載プラットフォームや組み込み系OSの動きが活発になってきています。 2014年4月8日に開催された、html5j自動車部の第三回勉強会「車載とWebの今が分かる、てんこ盛り...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (18)</div><p>今年に入って車載プラットフォームや組み込み系OSの動きが活発になってきています。<br>
2014年4月8日に開催された、html5j自動車部の第三回勉強会「<a href="http://h5j-automotive-03.peatix.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">車載とWebの今が分かる、てんこ盛りの165分</a>」では、W3Cにおける標準化動向や個別のプロダクト（QNX Cars、TizenIVI、Firefox OS）の最新動向を業界の第一人者の方々に思う存分語ってもらいました。その模様をレポートします！</p>

<p><span id="more-6710"></span></p>

<h2>はじめに</h2>

<p>現在、車載機器に搭載されるOSのほとんどは車載専用として開発されていますが、昨今はスマートデバイスに搭載されているOSを車載に対応させようとする動きが出ています。</p>

<p>第三回勉強会は、今のWebと車のかけ合わせに関するキーパーソンの方々に、Webと車載OSについて講演していただきました。非常にボリュームのある勉強会で休憩時間もあまりとれませんでしたが、その分濃厚なお話が聞けました。会場はリクルートマーケティングパートナーズさんです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/daeae009e23ffef8b2204c207d3e05341.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/daeae009e23ffef8b2204c207d3e05341.jpg" alt="自動車部_3_start" width="640" height="427" class="size-full wp-image-7051" srcset="/wp-content/uploads/2014/05/daeae009e23ffef8b2204c207d3e05341-300x199.jpg 300w, /wp-content/uploads/2014/05/daeae009e23ffef8b2204c207d3e05341-207x137.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>セッション1. W3C標準化と車載プラットフォームの最新動向について</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/ea7c408a15f2730242ac2536bc7f04d1.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/ea7c408a15f2730242ac2536bc7f04d1.jpg" alt="session1講演者様" width="400" height="200" class="alignright size-full wp-image-7055" /></a>
最初は株式会社ニューフォリアの羽田野さんのセッションです。(<a href="http://www.slideshare.net/futomihatano/w3c-33304035" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">スライド</a>)</p>

<p>IT業界と自動車業界の動向、組み込み系でWeb技術を使用する際の課題、IVI（In-Vehicle Infotainment：車載インフォテインメント）上のWebアプリケーションストアの是非や、市場規模について、さらにはVehicle APIを提供している各社のSpecから作成したサンプルコードの比較など、最初のセッションから盛りだくさんの内容でした！</p>

<h3>車載プラットフォーム最新動向</h3>

<p>昨今、新たな車載向けプラットフォームが続々と発表されています。</p>

<ul>
<li>AppleのCarPlay  </li>
<li>GoogleのAndroid(OAA) </li>
<li>MicrosoftのWindows in the car  </li>
</ul>

<p>CarPlayはフェラーリをはじめ、多くの自動車メーカが名を連ねています。GoogleのOAAもAudiなど、多くの自動車メーカーが加盟しています。こちらはプロダクトを発表したわけではなく、OAAという団体で議論をしているようです。</p>

<p>また、MicrosoftはBuildというイベントで、メトロUIを持つWindows in the carというプロダクトを作っていると発表していました。どんなメーカーが関わろうとしているかの情報等はありませんでしたが、IVIの世界に続々と車載プラットフォームが誕生しています。<strong>IT業界と自動車業界の掛け合わせが非常にホットになってきています！</strong></p>

<h3>IVIにおけるWeb技術使用と課題</h3>

<p>Web技術をIVIなどの組み込み系の環境で使用するには、様々な課題があります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/0ac111269cece30062d8b3fd5bf8840e.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/0ac111269cece30062d8b3fd5bf8840e.png" alt="アプリ基盤としての課題" width="640" height="427" class="size-full wp-image-7057" /></a></p>

<p>パフォーマンス面はすべてをJavaScriptで行うのではなく、適材適所でハードウェアで演算させた方が速い処理はハードウェアに任せ、結果だけ利用するといった設計コンセプトになっていれば、Javascriptのパフォーマンスはなんとかなりそうです。</p>

<p>ハードウェアについては、スマートフォンの短期間でのハードウェアスペックの向上を見るに、時間が解決してくれそうなので、楽観視していても良いかもしれません。実装APIの不足もありますが、こちらも徐々に対応されるでしょう。これらの課題がクリアされると、組み込み系でWeb技術の利用が現実的になってきます。</p>

<p>では、ネイティブアプリケーションではなく、Webアプリケーションを作るメリットはなんでしょうか？</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/61f4c29379c03445e5b5b1ac63894e9d.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/61f4c29379c03445e5b5b1ac63894e9d.png" alt="ウェブアプリ基盤のメリット" width="640" height="427" class="size-full wp-image-7059" /></a></p>

<p>上記のメリットが考えられます。</p>

<p>ネイティブアプリケーションではなく、Webアプリケーションを採用することによる、ユーザー側のメリットも考慮しなくてはなりません。</p>

<p>ユーザーはアプリケーションがネイティブアプリケーションでもWebアプリケーションでも、うまく動いてくれれば中身は気にしないでしょう。そのため、Webアプリケーションを選択した場合のユーザーのメリットは、これから開発者が考えて提供していく必要があります。</p>

<h3>実際にアプリケーションを作って、ビジネスをするには？</h3>

<p>デベロッパがアプリケーションストア上でビジネスをすることは、スマートフォンでは当たり前になりました。</p>

<p>スマートフォンでは、サードパーティ製のアプリケーション開発が盛んに行われ、数多くの面白いアプリケーションが開発されました。スマートフォンが魅力的なデバイスとなった1つの要因でしょう。</p>

<p>同じようにIVIを開発者にとって魅力的なものするには、サードパーティがアプリケーション開発をしてビジネスをする土台が必要となります。そのためには、アプリケーションストアが必要になると考えられます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/413de25cb26dec292e0a169dc2860aa71.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/413de25cb26dec292e0a169dc2860aa71.png" alt="アプリストアの是非" width="640" height="427" class="size-full wp-image-7061" /></a></p>

<h3>Webアプリケーションでビジネスをする際の市場規模について</h3>

<p>これらの条件がクリアされ、アプリケーションを作るための環境が整った時、IVI向けのアプリケーションを売ることができるのか？</p>

<p>スマートフォンとIVIの市場規模を比較すると下記のようになります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/a250eca31daa2bc07a3c78ba31a5dd82.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/a250eca31daa2bc07a3c78ba31a5dd82.png" alt="2013年世界の出荷台数比較" width="640" height="427" class="size-full wp-image-7063" /></a></p>

<p>自動車の販売台数はスマートフォンの10分の1以下です。さらにカーナビを搭載しているのは、世界的には2割程度(日本は例外で8割位)です。スマートフォンに比べると、市場規模が非常に小さいことも課題となるでしょう。</p>

<h3>IVIのAPI比較</h3>

<p>IVIのAPIは標準化されていないので、各社でバラバラな仕様です。IVIのアプリケーション開発の活性化のためには、標準化は欠かせません。講演では、webinos、QNX、TIZENの仕様書から、各APIで共通するギア位置の取得をするAPIを例にコードを比較していました。</p>

<p>同じ情報を取得するコードでも、標準化されていないため、書き方にかなりの差異がありました。そのため、複数のIVIプラットフォームに対応するアプリケーションを作ることはできず、プラットフォームの数だけ別のコードを書く必要があります。コードについては、記述が多くなるので残念ですが割愛します。詳しくは動画とスライドをご覧ください。</p>

<h4>注意!</h4>

<p>スライドにあるコードは各API仕様から、おそらくこのように書くのだろうと予想したコードとなります。動作確認する環境がないので、<strong>コードは架空のものであり、フィクションなのでご注意下さい！</strong></p>

<h3>W3C Automotive and Web Platform BG</h3>

<p>各社様々な実装になっているという現状から、W3C Automotive and Web Platform BGが立ち上がって、Vehicle Information APIを策定しています。標準化にあたっての設計指針がドキュメントとして存在します。まとめると下記のような内容になっています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/API_Creation_Guidelines_and_Rationale.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/API_Creation_Guidelines_and_Rationale.png" alt="API_Creation_Guidelines_and_Rationale" width="640" height="427" class="size-full wp-image-7066" /></a></p>

<p>現状、国やOEM(自動車メーカー)で特有の呼び方があります。W3Cでは、国、自動車メーカーに依存しない呼び名を使うようになっています。</p>

<h3>Vehicle Information APIのコード</h3>

<p>現在策定中のVehicle Information APIで、ギア位置の取得をするコードはどうなるのでしょうか？</p>

<h4>今現在の状態が知りたい場合</h4>

<p><code>
// ワンショット
navigator.vehicle.transmission.get().then(
    function(data) {
        console.log(data.gear); // ギア位置
        // 0～10
        console.log(data.mode); // モード オートマチックのレバーの位置
        // "park", "reverse", "neutral", "drive"
    },
    function(e) {
        console.log(e.code + ": " + e.message);
    }
);
</code></p>

<h4>変化があった時にだけ情報が欲しい場合</h4>

<p><code>
//リスナー
navigator.vehicle.transmission.subscribe(function(data) {
    console.log(data.gear); // ギア位置
    // 0～10
    console.log(data.mode); // モード
        // "park", "reverse", "neutral", "drive"
});
</code></p>

<p>上記のコードにはPromiseが使われています。最近のW3CのAPIはPromiseが前提になっているものが増えてきており、W3C Vehicle Information APIには、下記のような特徴があります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/8ea45dbe8aa8d23b2a199e6dc517d61f.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/8ea45dbe8aa8d23b2a199e6dc517d61f.png" alt="W3C_VehicleAPIの特徴" width="640" height="427" class="size-full wp-image-7068" /></a></p>

<p>PromiseはDOM4で規定されています。Promiseを使うと、非同期プログラミングが容易になります。ほかにもPromiseを使用したAPIには、Web Cryptography APIという暗号化のAPIもあります。</p>

<p>このVehicle Information APIで取得できる情報は多岐にわたり、例えば、走行情報では下記のような情報が取得できます。</p>

<ul>
<li>車速(km/h)  </li>
<li>エンジン回転数(rpm)  </li>
<li>イグニッションスイッチ位置  </li>
<li>エンジンオイル状態  </li>
<li>加速度  </li>
</ul>

<p>上記以外にも、メンテナンス情報や空調/気候情報など、多くの情報が取得できるようになります。</p>

<h3>FAQ</h3>

<ul>
<li>Vehicle Information APIを使って、アプリケーションから何らかの命令を与えることはできないか？</li>
</ul>

<p>という質問がありました。APIのSETについては今のところ議論中ですが、存在します。誰にSETを許可するか？といった、Permission問題についての協議も必要で、SETについては仕様上存在していても使えるかはわかりません。</p>

<h2>セッション2. Tizen IVI Introduction</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/991b6a5a9918166749a5ba0d46d14633.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/991b6a5a9918166749a5ba0d46d14633.jpg" alt="session2講演者様" width="300" height="200" class="alignright size-full wp-image-7070" /></a></p>

<p>続いて、セッション2です。高橋さんによるTizen IVIについてのセッションです。IVIに関連するTizenのアーキテクチャについて熱く語っていただきました。</p>

<p>このセッションでは、Tizenにおいて、ハードウェアの情報は、どのようにWebアプリケーション側に伝播するのか。そして、レイヤーを問わず、開発者にとって開発しやすい仕組みとは？APIを使用する、APIを作るということをOSのアーキテクチャを交えて見ることで、普段Webアプリケーションを開発している時には、あまり意識をしない部分についても知ることができるセッションでした。</p>

<h3>Tizen IVIを知るための前知識</h3>

<p>TizenとIVIのそれぞれについて知っているでしょうか？</p>

<h4>Tizenとは？</h4>

<p>TizenとはLinuxディストリビューションの1つです。Tizen Projectでは1つの会社で作らないような仕組みが作られており、開けた開発が行われています。ターゲットとしては、モバイル、カメラ、スマートウォッチ、IVIがあります。Tizenはソフトウェア開発コストを抑え、容易にアプリケーションを作れるように、新しい体験をユーザーに素早く提供できるように考えられたOSです。</p>

<h4>IVIとは？</h4>

<p>IVIはインテルが提唱した、In-Vehicle Infortainmentの略で、車の中の情報とエンターテイメントを指します。Infortainmentとは、InformationとEntertainmentを組み合わせた造語です。</p>

<ul>
<li>Vehicle Informationは、エンジンの状態、オイルの状態、ライトのステータスなど、様々な情報を扱います</li>
<li>Vehicle Entertainmentは、例えば、車内で音楽が聞けたり映画が見れたりすることです</li>
</ul>

<p>つまり、IVIとは車の情報とエンターテイメントを提供するものです。</p>

<h3>Tizenのアーキテクチャについて</h3>

<p>APIを使用するということはどういうことでしょうか？APIを作るということはどういうことでしょうか？これらはOSの下回りを知ることで、より一層の理解が得られます。そしてTizenがいかに効率良くAPIを作ることができるのかを知ることができます。</p>

<p>Tizenのアーキテクチャは下記の図の通りです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/Tizen_Architecture1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/Tizen_Architecture1.png" alt="Tizen_Architecture" width="640" height="427" class="size-full wp-image-7073" /></a></p>

<p>次の章で、Tizen IVIのためにゼロから作っているコンポーネントを5つ紹介します。</p>

<h4>Tizen WRT on Wayland</h4>

<p>Web FrameworkのWeb Runtime部分に位置します。Tizen Web Appというアプリケーションを動かすためのRuntimeで、W3Cで定義されいている「Packaged Web Apps」に準拠しています。</p>

<p>WebkitEFLというグラフィックライブラリを使用してHTMLコンテンツをレンダリングし、HTMLコンテンツをシステムアプリケーションのように動作させます。</p>

<p>JavaScriptのVMは、Webkit標準のJavaScriptCoreを使用しています。</p>

<p>Plugin Frameworkを採用しており、プラグインの追加によって、柔軟にJavaScript APIを拡張することができるのが特徴です。一例として、Tizen Device APIが挙げられます。</p>

<ul>
<li>Waylandとは？<br />
ディスプレイサーバープロトコルの1つです。Xorgよりも、軽量で、構造もシンプル、そしてパフォーマンスも改善されています。</li>
</ul>

<h4>Automotive Message Broker(amb)</h4>

<p>IVI Componentの一部です。車両データを抽象化するミドルウェアで、データをアプリケーション層に引き渡すデーモンです。入力プラグインが車両データを受け取り、フォーマットに合わせたデータ(CAN,OBD-2,ELM-327)をamb coreに渡します。</p>

<p>amd coreは中継とデーモンへ送信する役目を担っており、出力プラグイン(シンクプラグイン)へデータを発行します。</p>

<p>出力プラグインでは、アプリケーション層に車両データを渡します。出力プラグインでは、WebSocketで渡すこともできるのでWebアプリケーションとの親和性が高いです。</p>

<h4>dLeyna</h4>

<p>Multimedia Componentとして、dLeynaがあります。dLeynaは<a href="http://ja.wikipedia.org/wiki/Digital_Living_Network_Alliance" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">DLNA(Digital Living Network Alliance)</a>に準拠した通信環境を提供するデーモンです。</p>

<p>例えば、dLeynaを導入して車内ネットワークでDLNA環境を構築することで、IVI SystemからDLNA経由で乗員の携帯電話に配信した映像コンテンツを楽しめるようになります。dLeynaは、後述するCloudeeBusを利用してWeb APIを提供します。</p>

<h4>Cloudeebus</h4>

<p>System and Base Componentで、DBusのAPI(Linux内部で行っているIPC通信)をJavaScriptのAPIへ変換するためのデーモンです。</p>

<p>ブラウザに手を加えずWeb APIを追加する仕組みで、DBusとWeb APIの変換をしてくれます。WAMP(WebSocket Application Messaging Protocol : WebSocketの上位プロトコル)を利用しています。</p>

<h4>HTML5との関連について</h4>

<p>dLeynaにWebSocketのAPIがありましたが、これを使って、下記のWeb APIを策定しています。</p>

<ul>
<li>Media Content API  </li>
<li>Media Server API  </li>
<li>Media Renderer API  </li>
</ul>

<h4>Tizen IVI向けのWebアプリケーションを開発するには？</h4>

<p>Tizen SDK for In-Vehicle Infotainmentが2014年1月にリリースされています。IVI向けのWebアプリケーションが簡単に作れるようになりした。</p>

<h3>FAQ</h3>

<ul>
<li>モバイルのTizenはOSSだが、クローズドな印象があります。契約を結んでいない会社でも最新仕様にアクセスできるのでしょうか？  </li>
</ul>

<p>モバイルだとアソシエーションに入っている会社とそうでない会社では差別化しているようです。
方針を決めるための議論については会員メンバーではないと関われないかも。</p>

<ul>
<li>IVIを動かすために一番簡単な方法はなんでしょうか？  </li>
</ul>

<p>仮想イメージを配布しているので、そちらを使うと良いです。</p>

<ul>
<li>Web Runtime経由でしか出力を受け取れないとのことでしたが、Webアプリしか作れなくなるのでしょうか？  </li>
</ul>

<p>出力プラグインで、DBus経由で出力すればネイティブアプリケーションも作れます。</p>

<h2>セッション3. 車載ソフトウェア最近のトレンドとQNX CAR Platform</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/b59527d9373139cd62a21f6067414173.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/b59527d9373139cd62a21f6067414173.jpg" alt="session3講演者様" width="400" height="200" class="alignright size-full wp-image-7075" /></a></p>

<p>続いてQNX ソフトウエア システムズ株式会社の中鉢さんから、車載ソフトウェアのトレンドとQNX Car Platformについてのお話がありました。</p>

<p>中鉢さんは20年に渡ってナビゲーションを開発されているそうです。その中で、今が一番面白く、一番大変で、ビジネスチャンスが多くある時期であるとのことです。</p>

<p>そんな中、商用OSであるQNX Car Platformは、IVIのプラットフォームとして多くの実績があります。今の商用IVIプラットフォームには、どのような要件が求められ、どのような機能が搭載されているのでしょうか？</p>

<h3>車載環境を取り巻く状況</h3>

<p>今、車載はどういった状況にあるのでしょう？</p>

<p>QNXでは、システム構成はエンベデッド、ブロートイン、ビームドインと区分けしていますが、これらの住み分けが曖昧になってきています。
以前はそれぞれにデバイスが存在していましたが、今はお互いの領域に少しずつ入り込んでいる状態になっています。その他にも、オープンスタンダードが求められる時代になっています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/5abe26cf4bc58e05e8e9475f3d3de2cd.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/5abe26cf4bc58e05e8e9475f3d3de2cd.png" alt="QNX_最近の動向" width="640" height="427" class="size-full wp-image-7077" /></a></p>

<p>これらの要求に伴い、OSに対する要件が変化しています。オープンスタンダードのサポート、<a href="http://ja.wikipedia.org/wiki/ISO_26262" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ISO26262</a>で話題になっている機能安全対応や仮想化(最終的なソリューションではないと考えています)といった要件が求められています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/abe0dcdd74c854e23e7c1dd8cf11f7fa.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/abe0dcdd74c854e23e7c1dd8cf11f7fa.png" alt="QNX_OSに対する要件" width="640" height="427" class="size-full wp-image-7078" /></a></p>

<h3>HTML5とUI開発</h3>

<p>QNX SDP6.6(Software Development Platform) のApps and Mediaは、UI開発はHTML5をベースとしておりWebKitベースのHTML5エンジンを搭載しています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/QNX_html5.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/QNX_html5.png" alt="QNX_html5" width="640" height="427" class="size-full wp-image-7079" /></a></p>

<p>HTML5アプリケーションを作るためのSDKも提供されています。</p>

<h3>HTML5アプリケーション環境とApache Cordova</h3>

<p>Apache Cordovaを使った形で開発できる環境を提供しています。Apache Cordovaを使うことで、クロスプラットフォームで、スマートフォン、タブレットや、さらにはテレビも視野にいれてアプリケーションを作ることができます。クロスプラットフォーム対応をすることで、アプリケーションの開発コストを下げ、車載だけのアプリケーションにしなくてよいようにしています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/QNX_ApacheCordova.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/QNX_ApacheCordova.png" alt="HTML5アプリケーション環境とApacheCordova" width="640" height="427" class="size-full wp-image-7080" /></a></p>

<p>また、APK RuntimeというAndroidのRuntimeも搭載しており、Dalvik仮想マシンをLinuxからQNXに移植しています。JellyBean(4.2)から動作し、JNIプラグインをサポートしています。</p>

<p>Dalvikはコンテナーです。Sandboxを使っており、Androidを１つのプロセスに閉じ込め、ほかのアプリケーションやシステムに影響を与えないようにして安全性を保っています。</p>

<h3>FAQ</h3>

<ul>
<li>QNXで脆弱性が見つかった場合のポリシーや対応の仕組みはどうなっているのでしょうか？</li>
</ul>

<p>マイクロカーネルと言った形で、ドライバーやスタック、ファイルシステムは基本的にすべてユーザー空間で動作する。なんらかの故障やハッキングが起きた時は、そのプロセスだけ停止して再起動する仕組みを持っている。監視サイドはHA構成をとっており、監視役が落ちてしまっても大丈夫なようになっている。</p>

<ul>
<li>W3CのVehicle APIが統一された時の対応はどうなるのでしょうか？</li>
</ul>

<p>Vehicle API対応はしますが、現状のApache CordovaとVehicle APIの両方を載せることになるでしょう。</p>

<h2>セッション4. 組み込みでも使える Firefox OS</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/396f6c8534b39109abf97dbf68a549dc.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/396f6c8534b39109abf97dbf68a549dc.png" alt="session4講演者様" width="400" height="200" class="alignright size-full wp-image-7083" /></a></p>

<p>最後のセッションは、一般社団法人 Mozilla Japanの清水さんから、組み込みでも使えるFirefox OS(<a href="http://www.slideshare.net/chikoski/20140407html5jautomotive" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">スライド</a>)と題して、Firefoxの説明とFireFox OSを組み込みで使うならどうするか？という点にフォーカスしてお話をして頂きました。</p>

<h3>Firefox OS</h3>

<p>多くの人にWebを届けるというのがメインミッションであるため、車載はメインストリームではありません。現在は、南米や東欧方面に注力しています。</p>

<p>Firefox OSの特徴は、ネイティブアプリケーションがなく、すべてのアプリケーションをHTML5で作ることができるという点です。様々な会社と共同開発をしていますが、MozillaがAPIの仕様を決めているわけではありません。</p>

<p>共同開発をしている企業が自分たちに必要なAPIを作ることで、Firefox OSのAPIが増えるという開発体制になっています。メインターゲットは北欧や日本などのインターネットが成熟した方面ではなく、南米やヨーロッパを中心に15カ国で3種類の端末(勉強会開催日の情報です)が販売されています。</p>

<h3>低スペックなハードウェアでも動作する</h3>

<p>低スペックのハードウェアで動くようになっています。メインターゲットとする販売地域によっては、高スペックな端末は非常に高価で貴金属のような扱いとなり、持っているだけで犯罪の対象となってしまう可能性があります。</p>

<p>そのため、古く低スペックなハードウェア上で動作するOSを作り、安くスマートフォンを提供することで世界にWebを届けようとしています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/b786dddf5852f664d2b928598e14c9e9.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/b786dddf5852f664d2b928598e14c9e9.png" alt="FirefoxOS_動作環境" width="640" height="427" class="size-full wp-image-7085" /></a></p>

<p>上記のスライドにはGPUも記載されていますが、GPUはなくても動きます。現在も、より低スペックなハードウェアでも動くように開発を進めています。Firefox OSはすべてオープンソースですが、携帯電話の周波数コントロールのような部分はプロプラなコードでないと動かないので注意が必要です。ソースコードのビルドは、Ubuntuが一番簡単にビルドできるようです。Mac OSでも可能です。</p>

<h3>Firefox OSのアーキテクチャ</h3>

<p>Firefox OSとAndroidのアーキテクチャを比較します。カーネルはAndroidが使っているLinuxのカーネルをそのまま使っています。その上に<a href="http://ja.wikipedia.org/wiki/Gecko" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Gecko</a>というブラウザのレンダリングエンジンが動いています。</p>

<p>例えば、Linuxを起動してFirefoxが動かしWebページを開く。これをFirefox OSに当てはめると、アプリケーションとWebページを区別していないので、イメージ的にはFirefoxのWebページのタブ1つ1つが、HTML5のアプリケーションというイメージです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/FirefoxOS_architecture1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/FirefoxOS_architecture1.png" alt="FirefoxOS_architecture" width="640" height="427" class="size-full wp-image-7086" /></a></p>

<p>より詳細なアーキテクチャを見てみましょう。大きく以下の3つのレイヤーに分けることができます。</p>

<ul>
<li>カーネルとハードウェアのアブストラクションレイヤー</li>
<li>Geckoのブラウザエンジンで、アプリケーションとの繋ぐレイヤー</li>
<li>HTML5,CSS,JavaScriptのアプリケーションのレイヤー</li>
</ul>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/FirefoxOSArchitecture_Detail.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/FirefoxOSArchitecture_Detail.png" alt="FirefoxOSArchitecture_Detail" width="640" height="427" class="size-full wp-image-7087" /></a></p>

<p>ここで、アプリケーション層からJavaScriptでハードウェアにアクセスするためのものをWeb APIと呼んでおり、JavaScriptでラップしてあります。</p>

<p>ブートプロセスはLinuxとほぼ同じで、カーネルがブートしてinitからb2g(Gecko)が起動されます。そして、起動されたGeckoの上でアプリケーションが動作します。initでは、b2g以外にも様々なデーモンが起動されます。</p>

<h3>ユーザー空間アーキテクチャ</h3>

<p>中身はLinuxなので、b2g(Gecko)より下位層のプログラムは通常のUnixプログラムと同じように開発できます。ユーザー空間ではGeckoを中心に下記の図のようなアーキテクチャになっています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/FirefoxOS_UserSpaceArchitecture.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/FirefoxOS_UserSpaceArchitecture.png" alt="FirefoxOS_UserSpaceArchitecture" width="640" height="427" class="size-full wp-image-7088" /></a></p>

<p>車載でFirefox OSを使う場合、b2gより下のLinuxの世界でデバイスの情報を取ることができれば、b2gに手を加える事で、例えばギアの情報を取ることが可能となります。そして、Web API(JavaScript)でb2gとWebアプリケーションの間を繋げることで、アプリケーションからギアの情報を取得できるようになります。</p>

<p>Firefox OSでは、Web APIが従来のOSのシステムコールに相当し、デバイスの制御や情報の取得ができます。例として、JavaScriptからバイブレーションを制御できるWeb APIを見てみましょう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/05/FirefoxOS_vibrationAPI.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/05/FirefoxOS_vibrationAPI.png" alt="FirefoxOS_vibrationAPI" width="640" height="427" class="size-full wp-image-7089" /></a></p>

<p>配列でバイブレーションのパターンを書きます。この例だと、100ms震えて、30ms休止する… という動作をします。非常に簡単にハードウェアを制御できています。</p>

<h3>Web APIの追加方法</h3>

<p>実際には、デバイスの制御はnavigatorオブジェクトが行い、JavaScriptの世界から、C++で書かれているGeckoの世界を繋ぐ必要があります。</p>

<p>その実装は、インターフェイス定義言語のWebIDLを使用しています。WebIDLでインターフェイスを定義し、インターフェイスで定義したメソッドを実装します。例えば、車載でギアの情報を取得する際にも同様の手順で実装すればよいでしょう。</p>

<h4>もう少し複雑なものを作る場合は？</h4>

<p>例えばデータ構造を定義したいような場合、WebIDLでインターフェイスを書いて実装を書くというステップまでは同じです。</p>

<p>新たに定義するクラスがあるので、JavaScriptで実際に使用するクラスとC++とのバインドを行う必要があります。バインド自体は簡単で、Bindings.confに対応付けを記述します。そしてビルド対象に追加してビルドすれば使えるようになります。注意点として、オブジェクトの追加時にはGCのサイクルに追加するといった、定型的な作法があります。</p>

<p>このように、簡単にWeb APIを追加できます。</p>

<p>単純な読み書きや処理をトランザクションで行わなくてもよいものは、WebIDLを使って単純に書けばいいですが、複数のアプリケーションから同時に使う場合に競合が発生したりする場合は、Linuxの世界でデーモンプロセスを作って、デーモンを経由して実行する対応します。</p>

<p>このように、組み込みで使用する場合も簡単にAPIを追加できます。</p>

<h2>最後に</h2>

<p>勉強会の最後にアンケートを実施しました。ご回答ありがとうございます。アンケートの結果を元に、今後の勉強会の内容等を検討させていただきます。</p>

<p>ご協力ありがとうございました。</p>

<h2>勉強会の動画配信はこちら</h2>


<!-- iframe plugin v.4.3 wordpress.org/plugins/iframe/ -->
<iframe width="560" height="315" src="//www.youtube.com/embed/bfsqybGwEs8" frameborder="0" 0="allowfullscreen" scrolling="yes" class="iframe-class"></iframe>


<p><BR>
次回の勉強会もお楽しみに！</p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>車載もHTML5の時代！車載機器とWeb技術の融合に関する動きをウォッチする</title>
		<link>/yhori/5703/</link>
		<pubDate>Wed, 19 Mar 2014 04:00:26 +0000</pubDate>
		<dc:creator><![CDATA[堀裕司]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[html5j]]></category>
		<category><![CDATA[ブラウザ]]></category>
		<category><![CDATA[自動車]]></category>
		<category><![CDATA[車載機器]]></category>

		<guid isPermaLink="false">/?p=5703</guid>
		<description><![CDATA[連載： イベントレポート (11) 昨今、コネクティッド・カーやスマートカーと言った、キーワードが注目されてきており、車載機器をインターネットに接続し、スマートフォンやタブレットなどのデバイスと連携する車が増えてきました...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (11)</div><p>
昨今、コネクティッド・カーやスマートカーと言った、キーワードが注目されてきており、車載機器をインターネットに接続し、スマートフォンやタブレットなどのデバイスと連携する車が増えてきました。
</p>

<p>
特に最近では、自動車のAndroid化を目指す団体Open Automotive Allianceが発足。車載機器とWeb技術、IT技術の融合に関する動きが活発化して、注目度も上がってきています。
</p>

<h2>html5j自動車部とは</h2>

<div id="attachment_5708" style="width: 284px" class="wp-caption alignnone"><img src="/wp-content/uploads/2014/03/logo_5j.png" alt="自動車部ロゴ" width="274" height="321" class="aligncenter size-full wp-image-5708" srcset="/wp-content/uploads/2014/03/logo_5j.png 274w, /wp-content/uploads/2014/03/logo_5j-256x300.png 256w, /wp-content/uploads/2014/03/logo_5j-176x207.png 176w" sizes="(max-width: 274px) 100vw, 274px" /></a><p class="wp-caption-text">自動車部ロゴ</p></div>

<p>html5j自動車部では、このような車載機器とWeb技術の融合に関する様々な動きを追いかけ、ウォッチすると共に、
車載機器に関するプロダクトの最新情報の発信、Webエンジニアと車載機器等の組み込み系エンジニアの方々との技術交流の促進に取り組んでいます。(<a href="http://prezi.com/ouxsusanfvor/html5j/" title="html5j 自動車部始動！" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">html5j 自動車部始動！</a>)
<br><br>
※本稿は2014年1月21日に行われた、html5j自動車部の2回目の勉強会のレポートです。
</p>

<h2>2014 international CESから見た自動車ICTトレンド</h2>

<p>最初のセッションでは1月7日～10日にラスベガスで開催されたInternational CESの直後ということもあり、KDDI総研の平林氏から、2014 international CESから見た自動車ICTトレンドという内容でご講演頂きました。
</p>

<p>
セッションの前半は、自動車ICTトレンドについての発表。
セッションの後半は講演内容についてディスカッションが行われ、
和気あいあいとした雰囲気の中、皆で疑問や意見をぶつけ合っていました。
</p>

<p>
本セッションの内容と資料につきましては、諸事情により公開できませんので、このレポートでもざっくりまとめた内容となります。
</p>

<p>
そもそもCESとはコンシューマ・エレクトロニクス・ショーのことですが、昨今はテレビやオーディオだけではなく、自動車も主役になりつつあるようです。自動車とWeb技術の融合に力を入れている自動車企業が多く見られ、その一部の企業の発表内容のまとめと技術者視点での解説や疑問点を交えての発表でした。発表中にも質問が飛び交い、参加者の熱意が伺えました。
</p>

<h4>自動車メーカー・車載機器サプライヤの取り組み</h4>

<p>
専用タブレットを車載機器として設置するといった、スマートデバイスとの連携、ウェアラブルデバイス(腕時計、メガネ)との連携、音声認識やジェスチャーによる車載機器の制御。そして、スマートデバイスにHTML5のアプリケーションを載せる、といった取り組みを行っている自動車メーカーが多数ありました。
</p>

<p>
自動運転については、まだ課題が多いようで、取り組み自体は行っているが発表しているという企業は少なかったようです。
</p>

<h4>ディスカッション、質疑応答</h4>

<p>ディスカッションは、セッション内容に触れない範囲で話題に上がったものをピックアップします。</p>

<p>
    <li><strong>自動運転技術は実際のところはどうなのか？</strong></li>
    やはり自動運転については注目度が高いと感じます。
    自動運転の課題は、技術視点だけではなく、各国の法律の観点からも課題が多く、実現はかなり先になるのではないか。
    まだ30～40年は先かもしれないという結論に落ち着きました。
</p>

<p>
    <li><strong>日本のメーカーは海外メーカーに比べ、情報の公開が少ない。日本のメーカーは世界に置いて行かれているのではないか?</strong></li>
    日本メーカーに対する期待度は高いと感じます。平林氏によると、日本のメーカーはゆっくりとだが、動いている。出だしが遅くても2年あれば巻き返せる自信があるのではないか。とのことでした。
</p>

<p><br class="none" /></p>

<h2>車載組込ブラウザの過去7年と今を40分でまとめてみる</h2>

<p>
PCの世界で起きたことは、次にスマートデバイスで起きてから組み込み機器で起きると言われています。組み込み機器でもコンテンツ、ソフトウェア性能、ハードウェア性能もPCで要求されていたものに近づいてきていると予想されます。過去から現在まで、車載組み込みブラウザの世界ではどのようなことが起きていたのでしょうか？
</p>

<p>
車載機器とWeb技術の中間に位置する車載組み込みブラウザの歴史について、株式会社ACCESSの渡辺氏から、車載組込ブラウザの過去7年と今を40分でまとめてみるという内容でご講演頂きました。
</p>

<ul>
<li>車載組込ブラウザの過去7年と今を40分でまとめてみる(<a href="http://www.slideshare.net/naohikowatanabe/740-30295639" title="車載組込ブラウザの過去7年と今を40分でまとめてみる" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">スライド</a>)</li>
</ul>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/03/DSC03061.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/03/DSC03061.jpg" alt="自動車部勉強会#2写真" width="600" height="450" class="alignnone size-full wp-image-5709" /></a></p>

<h4>車載組み込みブラウザは7年使うことを前提に開発する</h4>

<p>
車載組み込みブラウザは、車載器の新鮮さを保つために必要となります。7年間(車の買い替え期間の平均)使用することを前提に開発します。これは今も昔も考え方が変わっていないそうです。
</p>

<p>
そして組み込み機器全般に言えることかもしれませんが、バージョンアップが容易に行えない場合が想定されるので、バグに対してもシビアで、高い安定性を要求されます。普段我々が使うPCやスマートデバイスのアプリケーションでは、バージョンアップせずに7年間同じバージョンを使用し続けることは、ほぼないと言っていいほどに稀だと思います。
</p>

<h4>車載機器から見たHTMLの歴史</h4>

<p>
HTML4の時代、HTMLは静的コンテンツを読むことがメインでした。今はHTML5時代となり、アプリケーションが動作するようになりました。
車載組み込みブラウザでも同様に、音楽・ビデオの再生、美麗なアニメーション描画など、HTML5に対応することが求められてきています。
</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/03/13aeca841adf42bfc2f3b01989df5c94.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/03/13aeca841adf42bfc2f3b01989df5c94.png" alt="ブラウザの今のスライド画像" width="600" height="450" class="size-full wp-image-5707" srcset="/wp-content/uploads/2014/03/13aeca841adf42bfc2f3b01989df5c94.png 640w, /wp-content/uploads/2014/03/13aeca841adf42bfc2f3b01989df5c94-300x225.png 300w, /wp-content/uploads/2014/03/13aeca841adf42bfc2f3b01989df5c94-207x155.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>

<h4>車載機器OSの歴史</h4>

<p>
昔は様々なOSでシェアの取り合いをしていました、それは車載OSでも同様で、グラフィックライブラリもメーカーが独自に作っているものが多く、ブラウザの移植は非常に大変だったようです。
</p>

<p>
そんな時代から、今は組み込みOSもLinuxが主流になってきており、ライブラリも以前より増え、ブラウザの移植が簡単になってきているとのことです。そして、HTML5アプリケーションに対応するOSの開発も行われており、車載機器とWeb技術との融合が進んできています。
</p>

<h4>車載機器のSoC(System on Chip)の歴史</h4>

<p>
ソフトウェアだけではなく、ハードウェアも進化しています。SoCというCPUやGPUといった主要部品を1つにまとめたチップも、過去には様々なアーキテクチャがあり、ブラウザがギリギリ動作するといったスペックの状態から、現在では、高級車の車載ハードウェアはiPhone5Sと同等の性能を持ちます。アーキテクチャもARMに収束してきたようです。
</p>

<p><div id="attachment_5710" style="width: 678px" class="wp-caption alignnone"><a href="https://html5experts.jp/wp-content/uploads/2014/03/cpu.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/03/cpu.png" alt="組み込み機器CPUベンチマーク" width="250" height="187" class="alignnone size-full wp-image-5710" /></a><p class="wp-caption-text">組み込み機器CPUベンチマーク</p></div>
<div id="attachment_5711" style="width: 604px" class="wp-caption alignnone"><a href="https://html5experts.jp/wp-content/uploads/2014/03/GPU.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/03/GPU.png" alt="組み込み機器GPUベンチマーク" width="250" height="187" class="alignnone size-full wp-image-5711" /></a><p class="wp-caption-text">組み込み機器GPUベンチマーク</p></div></p>

<p>
もう2、3年すると、現在のスマートデバイスと同等のハードウェア性能が一般的になるのではないか、とのことでした。スマートデバイスのアプリケーションが車載機器でも動く時代になったようです。Web技術者が車載機器向けWebアプリケーション開発を行うのも、そう遠くない未来かも知れません。
</p>

<h4>車載ブラウザの歴史</h4>

<p>
過去の車載ブラウザは、移植性、ハードウェアスペックや通信周りの制限により、快適なブラウジングというわけにはいかず、結果として、あまり使用してもらえなかったようです。現在の車載ブラウザは、これらの点をクリアしつつあり、車載もHTML5の時代となってきています。
</p>

<h4>デモ</h4>

<p>現在主流である車載ブラウザのハードウェアで<a href="http://helloracer.com/webgl/" title="helloracer" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Hello RacerのWebGL版</a>を動作させるデモを実施しましたが、残念ながらうまく動作しませんでした。
<div id="attachment_5712" style="width: 1238px" class="wp-caption alignnone"><a href="https://html5experts.jp/wp-content/uploads/2014/03/e21420b47297be022084d4171560316f.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/03/e21420b47297be022084d4171560316f.jpg" alt="デモ機材" width="600" height="450" class="alignnone size-full wp-image-5712" /></a><p class="wp-caption-text">デモ機材</p></div></p>

<p>
代わりに、ほぼ同スペックの機器で動作させる<a href="http://helloracer.com/webgl/" title="R-Car H1" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">デモ動画</a>を流して頂きました。デモ動画では非常に快適に動作している様子が見れます。渡辺氏は今後の勉強会でリベンジしてくれるそうです。
</p>

<h2>次回予告</h2>

<p>昨今、HTML5アプリケーションやWebアプリケーションを実行するための土台がソフト、ハードの面でできつつあります。近い将来、Web開発者も車載機器向けのアプリケーションやコンテンツを作る未来が来るのではないでしょうか。
</p>

<p>次回は、アプリケーションを作るための土台である、車載プラットフォームOSについての勉強会を検討中です。お楽しみに！
</p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
	</channel>
</rss>
