[レポート]
オージス総研 E-ソリューション事業部 松園 敬二
先日行われた ESC 2000 (9/24 - 9/28, San Jose)に参加してきました。
内容は、クラスと呼ばれる有料セミナーと、無料の展示会に分けられます。私は期間中を通してほぼ全部セミナーを受けていたので、展示の内容を十分に見ることが出来ませんでした。(もっとも、時間が合っても私の英語力が展示内容の理解を妨げたと思いますが。)
自分にとって、海外でセミナーを受けるのは初めての経験でした。そこで気がついたことをいくつか挙げます。
・質問のときにマイクを使わない
結構でかい会場(200人以上はいる)でも、質問のときにマイクを使いません。日本ならば、アシスタントがマイクを持って質問者のところに走るところです。しかも、アメリカ人たちは少しも声を張ろうとはせず、普通のトーンで質問をします。それでは講師に聞こえないだろう、と人事ながらやきもきするのですが、そんな心配をよそに、講師もまた普通のトーンで答えたりします。耳がいいのか、会場の音響の設計がいいのか、ほとんど講師が質問の内容を聞き返すことはありませんでした。
・質問したいときに遠慮無く質問する
日本人ならば、たとえ「質問があったら随時質問をしてください」といわれてもなかなか話の途中で質問はしづらいもの。が、あちらの聴衆は遠慮無く手を挙げ、質問をします。
また、日本人なら「話の途中で自分の質問の為に余り時間を使わせては迷惑なのでは」と心配して、早めに質問を切り上げると思うのですが、あちらの聴衆は納得ゆくまで食い下がります。そういう展開も個人的には好きなので、英語がもっとわかれば、と悔しい思いをしました。
・寝ている人がいない
日本でセミナーを受けると、会場のあちこちで寝ているひとを見かけます。自分の意志というより上司の命令でセミナーを受ける人が多いせいなのでしょうか。ところが、今回はどのセミナーを受けても寝ている人を見掛けることはありませんでした。(時差ぼけのせいでいつも同じ時間にねむくなってしまう自分を除いて、ですが。。)
・理解度は講師次第
自分の英語力でどれだけ内容を理解できるか心配だったのですが、講師の話し方次第だということがわかりました。
初日にきいた Douglass さん(注1.「RealTime UML」の著者)の英語はちっともわかりませんでした。公演内容は RealTime UML の内容とかなり重なっているので大体わかるのですが、それはあくまでパワーポイントの文章と図を見ているからで、耳から入ってくる情報はほとんど役に立ちませんでした。しかし、Douglass さんは話し上手なひとらしく、周りのアメリカ人にはドッカンドッカン笑いをとっていました。
そうかと思うと、話の内容をほとんど聞き取れるような講師の方も2,3人いました。ゆっくりはっきりしゃべってくれたり、論理の展開が明快だったりして、パワーポイントと合わせて十分に理解できました。そういう講義の後は自分の英語力が急に上がったのかと錯覚するほどです。
今回、自分は次のようなテーマに興味を持って、受講するセミナーを選びました。
受講したセミナー全部を通しての印象は
「あまり深く突っ込んだ内容はなく、一般的なことを整理したものが多いなあ」
というものでした。
このカンファレンスは組込み業界では一番大きなものらしいので、結構突っ込んだ話を期待していました。にもかかわらず、そういう話が聴けないということは、組込み業界はまだまだ「普通のことをちゃんとやる」ということが大事で、それ以上のことを追求するレベルには達していないということかな、と思いました。
あと、今回の経験から、
「受講するセミナーを、タイトルと紹介文から選ぶのはキケン」
だとわかりました。タイトルは十分興味深いのに、中身はそうでもない、というケースが結構合ったからです。じゃあ、どうすればよいかというと
「講師が誰だかチェックする」
というのが有効だと思います。やっぱりこういうセミナーを出来る人は限られていうるようで、講師の人は毎年セミナーをやっている様子でした。その場合、1年経ったところで内容や話し方が急変するはずもありません。従って、今年「はずした」と思った講師は来年はセミナーを受けない、というのが有効だと思います。
今年に入ってからいくつもの Java Chip が発表され、いよいよリアルタイムシステムにも Java が使えるようになるのでは、と思っていました。
リアルタイムシステムに Java を使おうとするとき、問題となるのはガベージコレクション(以下 GC )とパフォーマンスです。それに対する対策にはいくつかあります。
JBlend を使った携帯電話が既に売られています。
これらの対策の中で、本命は Java Chip だと個人的には思っていました。なぜなら、Java としての CPU 非依存性を保ちつつ、実行速度を上げられるからです。
ということで、今回のセミナーでこういった話題について、より新しい情報を期待して、次のようなセミナーを受講しました。
A.Developing Embedded Applications Using Jini Technology and Java 2Platform,Micro Edition
講師:Hinkmond Wong
Sun Microsystems,Inc.概要:Sun のエンジニアが講師で、「J2ME と Jini でこんなことができますよ」という内容。
- オブジェクト指向でプログラミングが簡単に出来る。
- GSP & GDF アーキテクチャ
現在存在するさまざまなデバイスにシンプルなゲートウェイを提供する。
- 急速に立ち上がる工業規格
- 安全性と機密性
- 高い移植性
- 高い拡張性
資料はこの https://java.sun.com/people/hinkmond/conferences からダウンロードできます。
感想:規格だけでなく、実装されたものがあるというのはいいことだと思いますが、Jini のようなものはどれだけサードベンダーが対応機種を作るかだと思います。それぞれのプロファイルがみんなに認められて、みんなが使うようになれば、みんなハッピーになれると思うのですが、だいたい政治的な要因でなかなかそうはいかないものです。今後の展開を楽しみにしています。
B.Real-Time Core Extentions for the Java Platform
講師:Kelvin Nilsen
Chief Technology Officer,NewMonics
Chair of the Real-Time Java Working Group概要:J コンソーシアムの立場から、Java のリアルタイム拡張の仕様について説明をします。RTEG (Sun がやっているもう一つのグループ)との違いを説明します。
J Consortium:
- 通常の RTOS のサービスを、注意深く Java の文法とツールでラッピングする
- 従来の VM をそのまま使う
- 組込みシステムのプログラマに Java 技術の導入をアピールする
- 高いレベルのアーキテクチャ構築のベースとなるReal-Time Java by Sun Expert Group:
- Java VM にローレベルのリアルタイム性を追加する
- VM の内部を変更する
- リアルタイム性を必要とする Java プログラマにアピールする
- 仕様が曖昧な為、提供されるサービスにばらつきが出てしまう
https://www.j-consortium.org感想:Java のリアルタイム化に関しては、現在2つの仕様が存在します。
(A)The Real-Time for Java Expert Group
Sun がやっている標準化です。
https://java.sun.com/aboutJava/communityprocess/jsr/jsr_001_real_time.html
(B)J-Consortium
Sun の標準化に不満をもったグループ(HP 他)がやっている標準化です。
https://www.j-consortium.org資料では概要で書いたことよりもう少し突っ込んだ比較があるのですが、Web で公開すると問題があるかもしれないので、ここで紹介するのは止めておきます。
政治的な問題が絡むので、今後どういった展開になるのか、気になるところです。
現場のエンジニアとしては、うまく統一規格を決めてくれると嬉しいのですが。
C.Developing Embedded Software in Java
講師:Michael Barr
概要:Java の長所を説明し、関係する技術を紹介します。
- なぜ Java か?
- 言語として C++ より扱いやすい
- クラスライブラリが充実している
- ByteCode は移植性を高める
- 組込みシステムでの Java の役割
アプリケーションレベルでは Java、ローレベルでは C++
- Java VM 技術
- Java 実行環境
- Java VM の内部構造
- H/W, S/W への要求
- 代替技術
- Ahead-of-Time Compilers
- Java Processers
- Language Subsets
- 周辺技術
- Java Native Interface
- 結論
https://www.netrino.com/Papers/EmbeddedJava/感想:知っていることを整理してもらった、という感じ。いろんな技術があるので、適材適所でうまく使い分けましょう、という結論は至極もっともだとおもいます。
組込みシステムのテストは厄介です。それは、システムに非同期に入ってくるイベントに対して必要なアクションをする、という構造をもつため、システムの内部状態とイベントの組合せが複雑になり、テストケースを洗い出すのが困難だからです。
従って、どういう戦略を立てるのがよいか、興味があり以下のクラスを受けました。
A. Verification and Validation for Embedded Software
講師:Charles D. Knutson
概要:講義の要約
- バグを発見することは可能である
- バグは早期に発見できると被害が少ない
- バグの発見に労力を費やすより、バグを作り込まないように努力するほうがよい
- 組込みソフトウェアの場合、製品リリース前にバグを発見することがより重要となる
感想:「テストの方法論」といった技術的なものを期待していたのですが、「テストの心構え」といった内容でした。 上記の要約を読めばわかるとおり、当たり前の内容ですね。
この講師の人は、テスト関係のクラスを複数やっていて何度も似たような話を聞く羽目になってしまいました。
内容はともかく、話しは上手で、聴衆を楽しませていました。英語がわかれば楽しめたのに、と思いを新たにしました 。
B.Sensible Embedded Systems Software Testing
講師:Sean Beatty
Software Engineering Professionals,Inc.概要:まずバグを分類し、その原因の種類によって対策を変えましょう、というアプローチでした。
参考URL:
https://www.testingstuff.com/testing2.html
https://www.aptest.com/感想:今回受けたテスト関係のクラスでは、一番システマティックで実践的だったと思います。
C.Strategies for Debugging Embedded Systems
講師:Greg Eakman
概要:
- 組込みシステムのテストとは
組込みシステムのテストが困難なのは、次のような要因がある。
- 出力が限られている
- 使えるツールも限定される
- 再現性に乏しい
- UML を使ったモデリング
- アプリケーションの実装
- アーキテクチャ
- コードの実装
- 自己テストコードのビルトイン
- 要約
- テスト用のしかけを作ることは、テストを容易にする
- テスト用の仕掛けは結合テストでも用いる
- リリースするコードにおいても、基本的なデータ収集と問題発見用のテストコードは残しておく
- テスト用の仕掛けについて、どの程度マニュアルに記述するか、はコスト・スケジュール・品質のトレードオフである感想:UML を使った分析・設計の手法は、特に目新しいことも無く、常識的なものだったと思います。注目していたテストについてですが、結論は納得のいくものです。テスト用の仕掛けについて、たくさんの例を挙げて説明されていたのですが、言葉の壁に阻まれて少ししかわかりませんでした。
リアルタイムシステムを設計する上での勘所、といったことを期待していたのですが、大体において、既に知っているような一般論を聞く羽目になってしまいました。
簡単に報告しておきます。
A.Designing Software Components for Real-Time Applications
講師:Dave Stewart
概要:
https://www.embedded-zone.com/esc2000/index.shtml
から資料がたどれます。感想:非常におもしろかったです。ソフトウェアをコンポーネント(入れ替え可能な部品)とするにはどうすればよいか、という話です。何が面白いかというと、実際にロボットを作るときに実装したという実績があるところです。データに注目したモデリングと、機能に注目したモデリングを行い、整合性を取るのですが、その過程が巧妙でおもしろい。スライドを見るだけで大体理解できました。
B.The 25 Most Common Mistakes with Real-Time Software Development
講師:David B. Stewart
概要:組込みシステムでありがちな25の間違い
などなど。
- 自分の問題は違う
他人の経験に学ぶべき。何処が似ているかに注意すべきで、何処が違うか、ではない。
- 空のループでディレイを実現する
RTOS の機能を使うべき。タイマーを使え。
- 技術的要因ではなく、みんなが使っているという理由でツールを選ぶ
どんな技術的要請があるのか検討して、ツールを選べ
- 馬鹿でかい if-then-else と case 文
代わりに状態機械やルックアップテーブルを使え
- 実装が終わってからドキュメントを作る
設計ドキュメントは実装のはじめに作れ
- 対話的かつ不完全なテストプログラム
テストプログラムは、非対話的に作れ
- ソフトウェアエンジニアがハードウェア設計に無頓着
気をつけないと、ハードウェアの機能までソフトで作ってしまうことになる
- シミュレータを使わない
シミュレータは使うべき。開発効率を上げる
- エラー処理を考慮しないで実装してしまう
実装前にエラー処理も設計すべき
- アーキテクチャ固有の実装をする
アーキテクチャに依存しないように工夫すべき
- 間違ったタイミングで最適化をする
最適化は実装の最後に行うべき
- 再利用を考えていないコードを再利用する
かえって時間の無駄。再設計すべき。感想:アンチパターンみたいなもの。
どれもわかりやすいものでした。資料をみるだけで話を聞く必要も無いくらい。
期間中、ほぼ終日、セミナーを受けるような日程にしてしまったため、展示のほうはあまり時間を割けませんでした。
展示については、次の2つの観点から見てきました。
1.Java Chip
Java Chip を出している会社を回りました。英語の壁は(私には)厚く、技術的な細かいことは聞くことが出来ませんでしたが(くーっ!)、幸い 3 社中 2 社は日本に代理店があるということで、にこにこ笑って名刺交換だけして帰ってきました。
- aJile
ロボットアームでエレクトーンを引く、というデモをやっていました。
日本に代理店もあります。#へたくそな英語でいくつか質問をしていると
#「日本に代理店があるのを知っているか?詳しいことは
#そっちに聞いてもらうといい」と言われました。
- zucotto
Java Chip の2枚のボード間で Bluetooth を使った通信のデモをやっていました。
それなりの速度で画像データを送受信していました。https://www.zucotto.com/index.html
ところで、この記事を書く為に調べたのですが、Zucotto 社って韓国にオフィスがあるのに日本には無い!既に韓国に遅れをとってしまっているのでしょうか。。。
- patriot scientific corporation
すごい名前の会社ですが。。。。こちらも日本に代理店があります。
2.Embedded Linux
会場のあっちこっちで、結構ペンギンを見かけました。
日本でも Emblix が出来て、盛り上がってきているところです。
- Lineo
日本支社が出来ています。会場に日本人のスタッフもいて話が出来てよかったです。
こちらのデモでは、Linux で GUI がぐりぐり動いていました。GUI のツールやライブラリは、MetroWorks のものを使っていました。従ってオープンソースではありません。この点について伺ったところ、「現状では、オープンソースで使い勝手がよいツールは見当たらない。従って、proprietary なツールでもお客様にとって現実的で有用なソリューションだと思っている」とのことでした。
- Montavista
ここも日本支社が出来ました。Lineo とともにEmblix の会員になっています。Lineo に比べて、こちらの特徴は何かというと、あくまでオープンソースにこだわっている、という点でしょう。Linux ではまだ弱いといわれている GUI のツール(特に組込み用の軽いもの)も、オープンソースのものを採用しています。(採用、というより、積極的にバックアップしているらしいです。)
https://www.viewml.com/
https://www.microwindows.org/Linux にも GUI のツールはあるのですが、X Window System を前提としたものばかりで、組込み用としてはオーバースペックであり、リソースを食い過ぎる、という問題があります。
- TimeSys
この会社は知りませんでした。会場でペンギンマークを見つけたので行ってみると、ここも独自に リアルタイム拡張した Linux を売っているようです。
組込みシステムでのオープンソースはやはりホットな話題のようです。入場者全員に配られた「Embedded Systems」の特集は「Open Source: Is It Worth the Price? 」でしたし、パネルディスカッションのテーマは「The Open-Source Movement:Boon or Bane for Embedded Systems Developers?」でした。聞けなかったのが残念。
|
© 2000 OGIS-RI Co., Ltd. |
|