Tizenについて

7,348 views
7,097 views

Published on

Tizen architecture Introduction

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,348
On SlideShare
0
From Embeds
0
Number of Embeds
4,031
Actions
Shares
0
Downloads
32
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Tizenについて

  1. 1. Tizen について Naruto TAKAHASHI tnaruto@gmail.com
  2. 2. 2
  3. 3. 3 Android と iOS があるのに 今更新しいモバイルプラッ トフォーム? モバイル?IVI? ホントよくわからない。 何者? Firefox OS との違いは?
  4. 4. 4 目的 • Tizen のソースコードを解析しわかったこと。 • Tizen を多角的に検証しどんなプラットフォームか学んでいきま しょう。
  5. 5. 5 Who’s Guy? Naruto TAKAHASHI(@TNaruto) • Mail: tnaruto@gmail.com • Blog: http://eflmemo.hatenablog.com/ • Company: Turbo Systems Co, Ltd. Interesting Keyboards • EFL(Enlightenment Foundation Libraries) • Tizen • WebKit
  6. 6. Tizen の特徴 • Tizen を知る三つのキーワード
  7. 7. 7 Tizen の特徴はたったの三つ • オープンソースプロジェクト • 多種多用なデバイスのサポート • スタンダードな HTML5 プラットフォーム
  8. 8. 8 Tizen Project 開発メンバー • 管理 • 開発
  9. 9. 9 のビジョン • Linux の普及、中立的な協業と教育の場の提供 • Linux 開発の保護と支援 • 技術プラットフォームとしての Linux の強化
  10. 10. 10 のビジョン • Linux の普及、中立的な協業と教育の場の提供 • Linux 開発の保護と支援 • 技術プラットフォームとしての Linux の強化 Linux を普及させ貢献する法人
  11. 11. 11 のビジョン • Linux の普及、中立的な協業と教育の場の提供 • Linux 開発の保護と支援 • 技術プラットフォームとしての Linux の強化 • 誰でも使えるオープンな Linux ディストリビューションが欲しい。 • どんなデバイスで動作するLinux ディストリビューションが欲しい。 • アプリケーションの作成の敷居を下げたい。
  12. 12. 12
  13. 13. 13 Tizen は Linux Foundation の スピリッツを受け継いだ ディストリビューション
  14. 14. 14 たったの三つだけど、大きな特徴 • オープンソースプロジェクト • 多種多用なデバイスのサポート • スタンダードな HTML5 プラットフォーム
  15. 15. 15 Tizen(Linux) でみんなが幸せになる大事 な要素
  16. 16. 16 オープンソースプロジェクト
  17. 17. 17 オープンソースプロジェクト • ソースコードがすべて開かれていて、閲覧、利用、フィードバック が可能 • Tizen はカーネルとユーザーランドの成果物をオープンソースの ライセンスで公開
  18. 18. 18 オープンソースプロジェクト(2) • Tizen は既存オープンソースのプロダクトを多く採用 • 特に GUI に関連するコンポーネントをサードパーティのソフト ウェアを採用している。
  19. 19. 19 他のモバイルプラットフォームの GUI 周り • Android • Linux kernel + Java をベース にしたオリジナルユーザーラン ド • Firefox OS • Linux kernel + Gecko をベー スにしたオリジナルユーザーラ ンド • Ubuntu Phone • Linux kernel + Mir と Qt/QML をベースにしたオリジ ナルユーザーランド
  20. 20. 20 アップストリーム・ファースト • サードパーティプロダクトを多く採用するディストリビューション はオープンソースプロジェクトとしては最適なスタイル。 • Tizen の成果物は Tizen のみの利益にはならず、他のプロジェク トへもオープンソース全体へ良い影響を与えられる。 • 自身のプロダクトで済ませるプロジェクトと違い、他者へ伝播する ことでオープンソース全体へ良い影響を与えられる。
  21. 21. 21 伝播例 • オープンソースのマルチメディアフレームワーク • Linux での動画再生のデファクトスタンダード • MeeGo では GStreamer に多くのフィードバックがあった • MeeGo を使わない人へも恩恵があり。 • Tizen でも利用している。
  22. 22. 22 の伝播力 • Tizen は伝播力が高い理想的なオープンソースプロジェクトと言え る • Tizen の成果物は Tizen プロジェクト内部で留まらずにオープン ソース全体へ貢献できる可能性を持っている。
  23. 23. 23 多種多用なデバイスのサポート
  24. 24. 24 多種多様なデバイスのサポート • Tizen はマルチデバイスで動作するビジョンを持っている。 • Printer • Clamshell(Laptop PC) • Digital Camera • Smart tv • Smart phone • Tablet
  25. 25. 25 HTML5 だから出来ること!
  26. 26. 26 そうですけど、マルチデバイスを 支えるバックボーンがあります。
  27. 27. 27 マルチデバイスを支えるバックボーン • Tizen コンプライアンス • https://source.tizen.org/compliance
  28. 28. 28 Tizen コンプライアンス • マルチデバイスで Tizen を動かすためのコンプライアンス • Tizen コンプライアンスはデバイスとアプリケーションがスムーズ に動作することを保証するためのもの。 • 共通のレイヤーと各デバイスに合わせたプロフィールレイヤーで構 成
  29. 29. 29 Tizen コンプライアンス(2) • デバイスのプロフィールの実装 • デバイスプロフィールを実装する際は、首尾一貫した挙動と UX をアプ リケーションへ提供すること。 • アプリケーション • アプリケーションを各デバイスへビルドした時に、そのアプリケーショ ンがデバイスプロフィール上で動作すること。
  30. 30. 30 Tizen コンプライアンス(2) • デバイスのプロフィールの実装 • デバイスプロフィールを実装する際は、首尾一貫した挙動と UX をアプ リケーションへ提供すること。 • アプリケーション • アプリケーションを各デバイスへビルドした時に、そのアプリケーショ ンがデバイスプロフィール上で動作すること。 • Tizen ではアプリケーションがどのプロフィールのデバイスでも動 作し、ユーザー体験も同じことが保証されます。
  31. 31. 31 Tizen コンプライアンスがあることで… • モバイル向けに作成したアプリを他のデバイスで使用する。 • あるいは他のデバイスで作成したアプリをモバイルで使用する。と いうことが可能です。
  32. 32. 32 Tizen マルチデバイス化実例 • Tizen Dev Phone • RD-210(Galaxy S2 相当) • RD-PQ(Galaxy S3 相当) • Tizen 搭載モバイル端末 • Samsung Exynos(ARM) • ソースコード公開中 • http://review.tizen.org/git/
  33. 33. 33 Tizen マルチデバイス化実例 • Nexcom NDiS 166 • Tizen IVI リファレンス機 • Intel Core i7/i5プロセッサ (x86) • ソースコード公開中 • http://review.tizen.org/git/
  34. 34. 34 Tizen マルチデバイス化実例 • Samsung NX300/NX2000 • Tizen 搭載デジタルカメラ • Samsung DRIMeIV(ARM) • ソースコード公開中 • http://opensource.samsun g.com/
  35. 35. 35 Tizen マルチデバイス化実例(予定) • Intel タブレットリファレン スデザイン • Tizen 搭載タブレット • Bay Trail(x86) • 最初のターゲットは Android, WinRT • Tizen も予定に入っている。
  36. 36. 36 Tizen マルチデバイス化実例(予定) • システナ社 Tizen タブレッ ト • Tizen 搭載タブレット • ARM(Soc 不明) • 最初は Tizen 2.0 をベース • IVI も予定
  37. 37. 37 Tizen コンプライアンスがあることで… • いろんなデバイスで Tizen が動くのも夢じゃない!
  38. 38. 38 スタンダードな HTML5 プラッ トフォーム
  39. 39. 39 ベンチマークでのハイスコア
  40. 40. 40 HTML5 の品質が高いのは当たり前 • HTML5TEST でハイスコア • 492 とトップクラス • RingMark でモバイルアプリを作成する機能を備えていることの 証明
  41. 41. 41 W3C sysapp WG • デバイスやシステムを触る Tizen Device API を定義、実装 • 現状は名前空間プレフィックスが tizen からはじまる命名規則 • W3C にシステムアプリの API を策定するワーキンググループが あり今後どのデバイスでも動く API 名に変えられていく? • http://www.w3.org/2012/sysapps/ • 現状は Tizen Device API が方言になっているが、方言にならな いように働きを掛けている。
  42. 42. 42 HTML5 アプリの潜在能力 • 学習が容易 • 開発者が圧倒的に多い。 • アプリのポータビリティが高い • Tizen • Firefox OS • Blackberry 10 • Android • Windows Phone
  43. 43. Tizen の内部構造 • Tizen を紐解く
  44. 44. 44 Tizen のベースソース • SLP(Samsung Linux Platform) がベースになって いる。 • SLP • "LiMo4" のリファレンス実装 1 Samsung が策定を進めていた LiMo 仕様 2 カーネル+ミドルウェア+ GUI ツールキットも決めていた。 • SDK, エミュレータも完備
  45. 45. 45 Tizen とは • SLP のアーキテクチャと SDK のコンセプトを踏襲 • GUI のツールキットを一新 • 複数の GUI ツールキットを EFL(Enlightenment Foundation Libraries) 一つへ統一 • HTML5 でアプリを作れるように。 • Tizen では HTML5 はアプリケーションを実装する手段の一つ。
  46. 46. 46 Tizen と Firefox OS の思想の違い • HTML5 は選択肢の一つ • Linux でみんなを幸せにする こと。 • いろいろなデバイスへの Linux 搭載が目標 • HTML5 は唯一無二 • インターネットでみんなを幸せ にすること。 • Web の技術ですべて済むのが 目標
  47. 47. 47 Tizen アーキテクチャ
  48. 48. 48 Tizen アーキテクチャ • Linux Kernel とデバイスドライバ • ミドルウェアを担当する CORE 層 • Tizen Web App のフレームワーク • Tizen Native App のフレームワーク
  49. 49. 49 Tizen Web フレークワーク
  50. 50. 50 Tizen Web フレームワーク詳解
  51. 51. 51 Tizen Web フレームワーク • HTML コンテンツをシステム上でアプリケーションにするランタイ ム
  52. 52. 52 Tizen Web App • HTML5 + JS + CSS で実装された HTML コンテンツ
  53. 53. 53 Tizen Web App + NPAPI プラグイン • NPAPI プラグイン • HTML へ <object> タグで埋め込むコンテンツ拡張プラグイン • NPRuntime で Javascript API でプラグインをされる。 • 動作方法 • Tizen Web App へプラグイン(バイナリファイル)を埋め込む
  54. 54. 54 wrt(WebRunTime) • Webkit を使って実装された HTML レンダリングプログラム • Javascript の VM には WebKit 搭載の JavaScriptCore を採用
  55. 55. 55 wrt プラグインフレームワーク • wrt に拡張 Javascript API を追加するフレームワーク • DPL(Design Pattern Library) を使って実装されている。 • Tizen Device API は wrt プラグインとして実装されている。 • 拡張 Javascript API は wrt のみ追加可能。 • 不用意に実行される危険がない。
  56. 56. 56 Tizen Device API • Javascript から デバイスやシステムへアクセスする API
  57. 57. 57 Tizen Device API 一覧 API名 概要 Alarm アラームの設定や設定取り消し Applicatio n アプリケーションの管理や起動 Bluetooth Bluetooth デバイスへのアクセスや管理 Messaging SMS, MMS, Eメール の送信や受信 NFC NFC デバイスへのアクセスや管理 Content デバイスのマルチメディアコンテンツへ のアクセス Download ダウンロードの操作や管理 Filesystem ファイルシステムへのアクセス API名 概要 Calendar イベントやタスクの管理 Callhistory 通話履歴の参照 Contact 電話帳へのアクセスや管理 Power デバイスの電源状態の管理 SystemInfo システム状態へのアクセス SystemSetting システム状態の設定 Time 時刻、タイムゾーンのアクセス や設定 Notification アプリケーションの通知
  58. 58. 58 Tizen Device API 一覧(2.1 で追加) API名 概要 DataControl 他のアプリのデータやりとり(SQL, MAP) Package アプリパッケージの管理や情報取得 NetworkBearerSelection ネットワーク経路の選択 Push Tizen push server からのプッシュ受信 SecureElement SIM やセキュア SD などのセキュアデバイスとのやりとり MessagePort 他のアプリケーションとのやりとり Bookmark Bookmark へのアクセス DataSynchronization OMA DS 1.2 プロトコルサーバと連絡帳やイベントデータの同期
  59. 59. 59 Tizen Device API(2) • モバイルのデバイスを触る API が一通り実装されている。 • Native アプリケーションや Web アプリケーションが混在する Tizen のシステムで、Web アプリケーションと Native アプリ ケーションが対等にやり取りするための仕組みになっている。 • カメラの API は存在しないが、カメラのサービスと連携するとカ メラの機能が使えるとのこと。
  60. 60. 60 Tizen Native フレームワーク
  61. 61. 61 Tizen Native フレームワーク詳 解
  62. 62. 62 Tizen Native フレームワーク • Native アプリケーションを実装するためのライブラリ群 • システムをフルに使用可能。
  63. 63. 63 Native アプリケーションタイプ • UI アプリケーション • 画面を表示するアプリケーション • サービスアプリケーション • 画面を表示せずバックグラウンドで動作するアプリケーション
  64. 64. 64 Native アプリ実装方法 • Tizen Native アプリ • Tizen Native API を使って実装したアプリ • CORE アプリ • CORE 層を直接使って実装したアプリ • Tizen の標準アプリはどちらの実装も用意されている。
  65. 65. 65 Tizen Native API(OSP) • OSP(Open Service Platform)使用 • Bada 由来 • C++ 実装必須 • BadaのアプリをTizenのアプリに変換するツールあり
  66. 66. 66 CORE アプリ • CORE のコンポーネントを使用 • EFL とその他ライブラリを使用して実装する。 • C/C++ で選択可能
  67. 67. 67 Tizen のアプリケーションタイプ • Tizen Web App • Tizen Native App • UI Application • Service Application
  68. 68. 68 Tizen Web App • HTML と Javascript 、CSS で実 装。 • Packaged Web Apps の仕様に 準拠し、パッケージング。 • HTMLコンテンツ作成がアプリ ケーション作成につながるので開 発が容易。 • ライフサイクルは存在せず、トッ プ画面に描画された時の実装を行 えば良い。(ライフサイクルは wrt が管理) • Tizen Device API も豊富になっ てきている
  69. 69. 69 Tizen Web App のシステム上での展開例
  70. 70. 70 Tizen Web App 利点 • ポータビリティ性の高い実装にすれば、Tizen 以外にも Firefox OS やその他で動作するマルチプラットフォームアプリケーション が作成可能。 • Android で Packaged Web Apps をサポートすれば Android でも動作 します。
  71. 71. 71 Tizen Web App ユースケース • 既存のウェブのサービスを持っている方には移植しやすい。 • 新しく Tizen アプリを作ってみたい方にはおすすめ。 • Thin Client として活用の可能性も。
  72. 72. 72 Tizen Naive App(UI Application) • C/C++ で実装されたアプリケーション。UI ウィジットがありフ ロントエンドで動作する。 • ユースケース • Tizen Web App でできない複雑なことをやりたい • 高速に動作するアプリケーションを作りたい • iPhone や Android で動作させていたアプリがあってそれを移植したい。
  73. 73. 73 Tizen Native App(Service Application) • C/C++ で実装されたアプリケーション。UI ウィジットがなく、 バックグラウンドで動作する。 • ユースケース • Tizen Web App でできない複雑なことをやりたい • バックグラウンドで動作するプログラムを作成したい。
  74. 74. 74 Tizen のアプリケーションタイプ発展系 • Tizen Web App + NPAPI Plugin • Tizen Hybrid App
  75. 75. 75 Tizen のアプリケーションタイプ発展系 • Tizen Web App + NPAPI Plugin • Tizen Web App ベースのものへ Native 要素を追加したもの • Tizen Hybrid App • Tizen Native App の UI を HTML で作るようにしたもの
  76. 76. 76 Tizen Web App + NPAPI Plugin • Tizen Web App へ NPAPI Plugin を追加 • NPAPI Plugin はアプリケーションに Javascript API を拡張す る魔法のツール。 • Tizen オフィシャルでは計算の速くするサンプルしかないため、 NPAPI で CORE 層のリソースを触れるかはまだ不明。 • NPAPI Plugin でポータビリティの低下 • 他のモバイルプラットフォームでは動作しなくなる。
  77. 77. 77 Tizen Web App + NPAPI Plugin ユースケース • Tizen Web App へ Tizen Device API 以外の拡張 API を追加 したい場合 • Tizen Web App で計算スピードを高めたい場合
  78. 78. 78 Tizen Hybrid App • C/C++ で実装されたアプリケーション。 • フロントエンドは Webkit コンポーネント上で Tizen Web App を動作 • バックエンドで Tizen Native App(Service) を動作
  79. 79. 79 Tizen アプリケーションタイプ表 アプリタイプ Tizen Web App Tizen Web App + NPAPI Plugin Tizen Hybrid App Tizen Native App (UI) Tizen Native App (Service) 言語 HTML + JS HTML + JS NPAPI(C/C++ ) HTML + JS C/C++ C/C++ C/C++ 実行速度 △ ○ ○ ◎ ◎ 実装容易さ ◎ ○ ○ △ △ ユースケース Web サービス をアプリにする。 Web App の一 部処理の高速化 サービス付きの Web App 高速なアプリ。 過去のリソース を流用するアプ リ バックグライン ド処理をするア プリ
  80. 80. Tizen の未来 • 開発体制を “in-out” から “out-in” へ
  81. 81. 81 今までの Tizen の状態
  82. 82. 82 今までの Tizen Project • コードはマイルストーンに沿ってリリースされ、パブリックなリ リースとして Tizen.org へ置かれている。 • Tizen.org 上ではリリースサイクルとソースのリリースのみが行わ れている。 • 方向性の決定やプラットフォームの開発はどこかで行われている。 • 開発が継続的じゃないし、不透明 • 成果物のソースは公開されている。 • しかし、内部で決めて結果だけをリリースする “in-out” 状態
  83. 83. 83 これからの Tizen Project • Tizen.org を開発とコントリビュートのメインエリアにする。 • 製品化や商業利用はプロファイルに依存することにする。 • ポリシーと役割、メインコードツリーは誰からもどこからも取得と ビルドが出来るようにする。 • Tizen.org は Tizen プラットフォームの開発ハブになっていく。 • ソースファイルだけではなく開発もオープンにする。 • 開かれた場所で開発する “out-in” へシフトする。
  84. 84. 84 “out-in” の目標 • 開発コミュニティーが Tizen を変えていくモデルにする。 • コミュニティーメンバーは何を期待されているか知る。 • 企業はコミュニティーのコントリビュートを取得する方法を知る。
  85. 85. 85 Tizen codebase • 可能な限りアップストリームのコードに近づける • リクエストによる駆動アップグレード • 一つのプロジェクトが複数のプロファイル上で動作することを目標 に
  86. 86. 86 開発メンバー階層図
  87. 87. 87 コントリビュートのフロー図
  88. 88. 88 いつから? • “out-in” 運用は Tizen 3.0 から開始する。 • Tizen 3.0 は来年リリース予定。
  89. 89. 89 Tizen はさらにオープンに。 コミュニティー主体に。
  90. 90. Tizen の可能性 • まとめにかえて
  91. 91. 91 Tizen Project 開発メンバー • 管理 • 開発
  92. 92. 92 経験豊富な開発・経営メンバー
  93. 93. 93 “Write once, run anywhere” • Java の代名詞 • どのデバイスも。 • HTML5 も Native も。 • アプリケーションがすべてのデバイスで同じ挙動を保証する。 • Tizen コンプライアンスで厳密に定義。
  94. 94. 94 多種多様なデバイスのサポート • Tizen はすべてのデバイスで動作可能。
  95. 95. 95 実績(予定も)すでにたくさん
  96. 96. 96 要求に応じたアプリケーション種類の選択の豊富さ • できることは簡単に。 • できないこともいくらでもできる。
  97. 97. 97 できることは簡単に
  98. 98. 98 できないこともいくらでも
  99. 99. 99 オープンな運営 • Linux Foundation によるオープンな運営
  100. 100. 100 開けゴマ!
  101. 101. 101 Tizen 3.0 からはさらにオープン コミュニティー主体に。
  102. 102. 102 ご静聴ありがとうございました

×