Eclipse RCP を使ってモバイル・ワークフォースのオペレーションをサポートする

Eclipse プラットフォームを拡張し、オフラインで働くフィールド・スタッフのコンピューティング・ニーズをサポートする

現代の労働者はモバイル環境で働くことが多くなっています。彼らは、デスク上に置かれたコンピューターや有線ネットワークといった標準的な作業ツールを使える環境とはかけ離れたフィールドで多くの作業を行います。モバイル機器が豊富になったとは言え、ネットワークに接続できるのはワイヤレスでアクセスできる地域に限定されています。そこで、ネットワークへの接続が制限されていたり、あるいはまったくネットワークに接続できなかったりする遠隔地で働かなければならないチームをサポートするための、オープンソースの Eclipse RCP (Rich Client Platform) をベースとした Mobile Workforce Framework の開発について学びましょう。この記事では、遠隔地で働く無数のリモート・チームに共通のオープンソース・プラットフォームを提供することの価値、データ同期のための紙の利用と人の移動を削減する方法、そしてネットワークが使用できない状況で紙を使わずに重要な情報を記録するように改善された方法に焦点を当てます。この、Maestro とも呼ばれる Mobile Workforce Framework プロジェクトは、Eclipse RCP を使用することで、アーキテクチャー決定要因 (同期化、プラグイン機能、オフラインのサポートなど) のどれほど多くを満たすことができるかを明らかにします。

Benjamin Lieberman, Ph.D., Principal Architect, BioLogic Software Consulting

author photoBen Lieberman は BioLogic Software Consulting の主席アーキテクトです。彼は、ソフトウェア・アーキテクチャー、要件分析、ソフトウェア分析と設計、構成管理、開発プロセス改善など、ソフトウェア開発におけるさまざまなトピックに関するコンサルティングとトレーニングをとおして彼の専門知識を提供しています。彼はソフトウェア・アーキテクチャーと IT に関して 10 年を超える経験があり、テレコミュニケーション、航空旅行業界、E コマース、政府機関、金融サービス、生命科学などの分野を経験してきています。彼のコンサルティング・サービスはソフトウェア開発におけるベスト・プラクティスをベースにしており、オブジェクト指向アーキテクチャーや分散コンピューティングが専門です。特に、Java™ ベースのシステムや分散型 Web サイト開発 (J2EE)、XML/XSLT、Perl、C++ ベースのクライアント・サーバー・システムを得意としています。彼がアーキテクチャー・サービスを提供した相手のうち、企業組織としては EchoStar、Jones Cyber Solutions、Blueprint Technologies、Trip Network Inc.、Galileo International、教育機関としては Duke University と University of Colorado、政府機関としては Mine Safety and Health Administration があります。また彼は学識の深いプロのライターでもあり、これまでに 1 冊の本、そしてソフトウェア関連の無数の記事を執筆しています。彼は University of Colorado, Health Sciences Center で生命物理学および遺伝学の博士号を取得しています。


developerWorks 貢献著者レベル

2009年 4月 21日

リモート・オペレーションのサポートの概要

非常にモバイル性が高いワークフォースを必要とするフィールド・サポート・サービスには多くの種類があり、これらのリモート・オペレーション・チームの業務の遂行を支援するためのコンピューティング・サポートのニーズが高まっています。そのためには多種多様なアプリケーションを高いコストをかけて作成する必要がありますが、そうしたアプリケーションはいずれも 1 つの特定のタスク専用にカスタムで作成されることが多く、他のタスクのフィールド・スタッフでも使えるような汎用性はまったくないか、あっても限られています。こうした状況から、それぞれのタスクのフィールド・スタッフの特定のニーズに応じて拡張することが可能で、共通のサービスや機能を提供する汎用的なオープン・プラットフォームが切実に必要とされています。

Eclipse RCP は、そうしたフレームワークを開発するためのベースとして最適です。Eclipse は安定したオープンソースのフレームワークであり、フィールド・サポート用のフレームワークに必要なアーキテクチャー決定要因の多くをサポートすることができます (「リモート・コンピューティングのためのアーキテクチャー決定要因」を参照)。Eclipse には、更新やパッチを配信するためのメカニズムを含む、洗練されたプラグイン・アーキテクチャーによる拡張性があります。また Eclipse RCP では、JFace/SWT (Standard Widget Toolkit)、ツールバー、ウィンドウイング、その他一般的な開発フレームワークを使用してユーザー・インターフェースを開発することもできます。

モバイル機能をサポートするプラットフォームを提供することは、紙による作業やデータ同期のための移動を削減することをとおして「グリーン・コンピューティング」の概念を推進することにもなります。例えば MSHA (Mine Safety and Health Administration: 米国鉱山安全保健局) では、監査員は通常、紙にメモを取り、ホーム・オフィスに戻り、それらのメモをコンピューター・ファイルに転記し、メモに使用した紙を事例履歴の中にファイルします。その結果、レポートの遅れ、追加の作業、データ入力エラー等々が発生します。そうした方法よりも、コンピューターに直接入力し、紙による中間作業を省略した方が、はるかに効率的で正確です。さらに、複数機器に対応したプラットフォームを提供できれば、リモート・ワーカーは消費電力が少なくバッテリー寿命の長い、小型でエネルギー効率の高い機器を使用することができます。


リモート・コンピューティングのためのアーキテクチャー決定要因

リモート・ワークフォース・チームは、業務を行う際、しばしば 2 つの大きな難題に直面します。その第 1 は、水、温度、ホコリなどの面で機器が悪い条件にさらされるという、環境に関する難題です。第 2 は、多くの場所が遠隔地であり、標準的なワイヤレス技術ではアクセスできない場所であることです。モバイル・ワークフォース・プラットフォームが、さまざまなポータブル・コンピューティング機器 (携帯情報端末、タブレット・コンピューター、ミニコンピューター、ラップトップ・コンピューターなど) の上で実行することができ、(例えば Eclipse RCP とプラグイン・アーキテクチャーなどによって) 柔軟な構成が可能であれば、オンラインでもオフラインでもリモート・コンピューティングが可能になり、ネットワークに接続できる時に随時中央のデータベースと同期させることができます。

リモート・ワークフォースのタスクの一例を以下に挙げます。

  • 監査
  • 在庫/物流
  • スケジューリング
  • 工数管理
  • 販売
  • 共同作業
  • フリート管理
  • GIS (Geographic Information System: 地理情報システム) ルーティング
  • インフラストラクチャー
  • POS (Point of Sale)
  • セルフ・サービス
  • 商品説明
  • 法の執行
  • ソーシャル・サービス
  • 製薬調剤
  • 資産管理
  • 位置追跡
  • 緊急応答

アーキテクチャー決定要因は、組織に価値を提供するために満たさなければならない、システムの重要な側面を表しています。特に、アーキテクチャー決定要因の実現がプロジェクト全体としての成功に直結しています。例えば、柔軟で拡張可能なシステムを構築することがアーキテクチャー決定要因であれば、それを可能とする何らかのメカニズム (例えばプラグイン・アーキテクチャーなど) を実現することが重要です。アーキテクチャー決定要因を満たすためには、データ永続性、ネットワーキング、セキュリティーなど、1 つまたは複数のアーキテクチャー・メカニズムが必要です。

リモート・サポートのためのプラットフォームに対するアーキテクチャー決定要因の多くは以下のようなものです。

表 1. リモート・オペレーションをサポートするためのアーキテクチャー決定要因
アーキテクチャー決定要因メカニズム
頑丈なプラットフォーム機器の強化 (MIL-STD-810 など)
データの同期複数のデータベース・アダプターの用意
一意の ID の管理ローカル ID の調整
プラグ可能コンポーネントEclipse のパースペクティブ・フレームワークとプラグイン・フレームワーク
オフラインでの情報保存ローカル・データベースによるデータ保持
自動的な更新Eclipse の更新機能
マルチメディアのサポートEclipse のビューと拡張機能 (表示と印刷)
ユーザー・セキュリティーEclipse のパースペクティブ・フレームワークと拡張機能

特に、モバイル・プラットフォームが使われるようになるためには、アプリケーションの機能を拡張できることがアーキテクチャー決定要因として欠かせません。リモート・チームにはさまざまなタスクを実行するさまざまなチームがありますが、これらのチームが使用する機能には、作業工数情報の収集、フィールド・サンプルの管理、同期、参照データなど、共通機能が数多くあります。その一方で、それぞれのチームが行う特定のタスク専用の機能も必要とされています。Mobile Workforce Framework はそうした要件に、共通のコンポーネントを専用の機能セット間で共用することによって対応するように設計されています。

図 1. Maestro Mobile Workforce Framework のタイムシート・プラグインのプロトタイプ
Maestro Mobile Workforce Framework のタイムシート・プラグインのプロトタイプ

Eclipse RCP の価値

モバイル・ワークフォースによる使用ケース

モバイル・ワークフォースをサポートするアプリケーションには、さまざまな使用ケースが考えられます。Maestro Mobile Workforce Framework の初期の開発作業では、監査での使用ケースとワークフローとして、以下のような例が念頭に置かれています。

  • 標準フォームのレビュー
  • 一意の ID の管理
  • 作業工数状況 (タイムシート) の追跡
  • 監査イベントの管理
  • フィールドの衛生状態サンプルの管理
  • 監査証発行の管理
  • 中央のデータベースとの同期
  • ユーザー設定情報の保持

これらの例は監査員が実行すべき課題を網羅しています (例えば、作業工数情報や、監査イベント、取得サンプルなどを追跡したり、中央のデータ・ストアとの同期といった管理的な機能を提供したりする必要性など)。

先ほど触れたとおり、Eclipse RCP にはスタンドアロンのアプリケーションを開発するのに適した一連のツールが用意されています。上に挙げたアーキテクチャー決定要因の多くは現在の Eclipse フレームワークによって直接対応することができます。例えば Eclipse は、ワークスペース、パースペクティブ、ビューなどのモデルによる拡張機能を備えています。図 1 に示すように、Mobile Workforce Framework のタイムシート・コンポーネントのプロトタイプには 2 つのビューが含まれています (タイムシートの概要を 1 週間単位で表示するツリー・ビューと、ある特定の監査員のタイムシートを 1 週間単位で詳細に表示するエディター)。この場合、作業工数情報の収集の詳細は地下鉱山の監査用に特化されています。ウィンドウの制御、メニューの選択肢、ツールバー、ビューの管理などは、すべて Eclipse のワークスペースによって直接処理されます。Eclipse が JFace/SWT をサポートしていることを利用すると、(この場合は Jigloo ビジュアル・エディターを使用して) ウィンドウ要素を素早く作成することができ、またオペレーション・コードにも簡単に接続することができます。

フィールド・スタッフの中で最も一般的な例は、何らかの形式で監査を行う人達です。こうした人達の作業は似ています。つまり彼らは、フィールドの現場訪問 (監査「イベント」)、一連の規制その他の標準に従っているかどうかの監査、違反に対する出頭命令や警告書の発行、そして規制に準拠していることを確認するための事後査察などを行います。囲み記事に挙げたように、モバイル・ワークフォースをサポートするための汎用アプリケーションに含められる一般的な例がいくつかあります。また表 2 に示すように、他にもリモート・ワーカーがいます。彼らは連邦政府や州、あるいは企業などの組織に雇用されており、リモート・ワークフォースをサポートする共通のプラットフォームが開発されることによる恩恵を直接受けることができます。

表 2. カテゴリー別リモート・ワーカーの説明
雇用形態カテゴリー/組織
連邦職員
  • OSHA (Occupational Safety and Health Administration: 米国労働安全衛生局)
  • MSHA (Mine Safety and Health Administration: 米国鉱山安全保健局)
  • FDA (Food and Drug Administration: 米国食品医薬品局)
州職員
  • 保険衛生調査
  • 防火安全監査
  • 児童福祉に関する監督
企業の社員
  • 石油やガスの掘削装置に関する監査
  • 鉄道線路や鉄道車両の監査
  • 倉庫の在庫管理

各グループ間の類似性を利用する一方で柔軟性を維持するために、Eclipse によるパースペクティブ・ベースのプラグイン・フレームワークが使われています。パースペクティブは、ある特定のシステム・ユーザーのニーズを満たすために設計された一連のビュー、データ構造、その他のコンポーネントを指します。例えば法の執行のためのパースペクティブには、監査イベント、出頭命令、命令、その他のデータ・フォームが含まれますが、トレーニングのパースペクティブでは、アクティビティー、トレーニングの結果、トレーニング・セッションでの参加者数などを講師が追跡できるようになっています。


監査パースペクティブ・フィーチャーの依存関係

この方法には、高価な機器を複数の人が再利用できるという重要な利点があります。機器を再利用する人達に対して、その人達に特有のサポート要求を満たすパースペクティブが表示されます。各ユーザーは、そのユーザーがログオンした場合にのみロードされる専用のパースペクティブを持ち、他のユーザーがそのパースペクティブにアクセスすることはできません。このパースペクティブには現在のユーザーのログイン ID がキーとして関連付けられるため、パースペクティブは各システム・ユーザーに対して一意に決まります。

パースペクティブをベースとする手法によるもう 1 つの利点は、各プラグインを別々に開発、リリースすることができ、またコアとなるサポート・アプリケーション・フレームワークとプラグインの開発、リリースとを分離することもできることです。つまり利用可能なリソースと資金に応じて各プラグインの開発を別々にスケジューリングすることができます。デプロイメントの際に、ある特定のプラグインに欠陥があることが判明した場合には、そのプラグインのコードのみを再度デプロイすればよいのです。リモートでの更新および配信が自動的に行われるメカニズムは Eclipse フレームワークによって直接提供されるため、個々のパースペクティブに対してアプリケーションの更新をパッケージ化、構成、配信するために追加で開発を行う必要はありません。

最後に、各プラグインは独立しているため、プラグインのロードはそのプラグインを初めて使用する際に行うだけでよく、アプリケーションに必要な全体としてのメモリー・フットプリントを大幅に小さくすることができます。いわゆる「遅延ロード」の手法によって、すべての拡張プラグインが利用可能になる一方、現在のユーザーがそのセッションで必要とする 1 つの特別な拡張プラグインのみをロードすればよくなります。

拡張可能なアーキテクチャーによるもう 1 つの一般的なパターンが、サービス・パターンです。サービスは、どのアプリケーション層にも依存することなく確立されるとともに、特定の機能または操作を提供するために作成され、また他のどのコンポーネントに対しても、限定された依存関係しか持ちません。

図 2 に示すように、一元化されたデータ・ストアによる同期のための共通サービスが、コア・システムによって提供されます。

図 2. Maestro Mobile Workforce Framework のプラグインの依存関係
Maestro Mobile Workforce Framework のプラグインの依存関係

リモート・ユーザーはフィールドで作業を行う際、さまざまな情報にアクセスする必要があります (例えば、場所 (つまり現場) の情報、監査の履歴、メモ、請負業者の情報など)。またリモート・ユーザーはさまざまな記録を作成し、それらの記録を定期的にアップロードし、さらに処理 (例えば違反証の発行や、作業工数および作業報告書の作成、新たな監査イベントの設定、成果報告書の作成など) を行う必要があります。

このサービスによる柔軟なメカニズムによって、リモート・ユーザーはフィールドで、ある期間、中央のデータベースとは切り離された状態で活動することができる上、フィールドから戻った後はリモート・ユニットと中央のデータベースとの間で自動的に双方向によるデータ同期が行われます。同期サービスは戦略パターンを使用してさまざまな同期タスクを実行します。また同期サービスを利用すると、他のどのタスクとも独立した形で追加のタスクを作成することができ、依存関係による結合を減らすことができます。

また多くのフィールド・ワーカーは、一意の ID を必要とする文書やその他の記録を作成する必要があります。このシステムには、ホーム・システムと同期するための一意の ID の取得、利用、解放を管理するためのサービスが含まれています。例えばフィールドの監査員は、特定の規制事項への違反に対する出頭命令を、一意の監査イベント番号と出頭命令番号を付けて発行します。出頭命令を発行する際には、これらの番号は一意で固定されたものでなければならず、変更は許されません。ID 管理サービスによって、フィールド作業の際に必要な最低限の数の ID が確保されます。

使用しているモバイル・プラットフォームは定期的に更新し、コア・アプリケーションや拡張機能用プラグイン・コンポーネントと同じ状態にする必要があります。このサービスは、デフォルトでシステムの起動時に更新がないかどうかをチェックし、更新された新しいソフトウェアを自動的にダウンロードして、インストール、構成を行います。これによってサポート要員は、広範な地域に展開された無数のリモート・システムを管理するための時間を大幅に削減することができます。Eclipse RCP には、こうした更新操作を明示的にサポートしています。


Mobile Workforce Framework の実用アプリケーション

ここまでは主に、実際の状況で Mobile Workforce Framework をどのように使用するのかを、抽象的な観点で説明してきました。この手法の価値を十分に理解するために、リモートのロケーションで原油掘削設備を監査するフィールド・ワーカーの具体的な例を考えてみてください。Kate というフィールド・ワーカーは、彼女のホーム・オフィスを出る際、共用のラップトップと頑丈な携帯情報端末とをチェックします。彼女はラップトップにログオンして Maestro を起動し、監査員用のパースペクティブを選択します。このアプリケーションはシステムの更新を自動的にチェックし、更新がある場合は更新をこのプラットフォームにインストールします。彼女は次に、彼女が行う監査に必要な監査チェックリスト、現場のこれまでの履歴、その他の関連情報をダウンロードします。また彼女は移動と監査の時間を適切に追跡、管理できるように、タイム・トラッキング・ビューを開きます。

Kate は現場に到着すると、携帯情報端末を Maestro フレームワークに登録し、チェックリストと関連する参照情報を携帯情報端末に転送します。そして彼女は監査を開始し、携帯情報端末のチェックリストを使用して、すべての違反項目を (音声または書き込みにより) 記録します。それを行いながら、彼女は現在の監査に関連する写真またはビデオをカメラで撮影するかもしれません。監査が完了すると、彼女はラップトップに戻り、完成した監査チェックリストをダウンロードし、違反事項の記録を元に勧告書を発行します。

ホーム・オフィス (またはネットワークに接続できる任意の場所) に戻ると、Kate は Maestro を使って中央のデータベースとのセキュアなセッションを開始し、彼女のタイムシート、完成したチェックリスト、勧告書または違反証、その他関連するすべてのマルチメディア・ファイルを同期させます。彼女が共用の機器を返却すると、その機器は次の監査員または他の任意のリモート・ワーカーがフィールドに持ち出せる状態になります。このようにして、組織は高価なハードウェアを再利用できると同時に、フィールドのワークフォース全体をきめ細かくサポートすることができます。


今後の方向性

Maestro Mobile Workforce Framework プロジェクトは SourceForge のインキュベーター・プロジェクトとして確立されています。このプロジェクトの目的は、フィールドやオフィスでのモバイル・ワークフォースをサポートするための、使いやすく拡張可能なプラットフォームを開発、展開することです。このプロジェクトの初期の開発段階では、(Eclipse RCP をベースとする) 正式なプラットフォームを作成することに焦点を絞っており、特に監査チームに対するサポートに重点を置いています。今後の作業としては、フィールドでトレーニングを行う人達、監査要員、エンジニアリング・サポート・スタッフなどのためのパースペクティブを提供することが考えられます。

またこのプロジェクトでは、フル機能のコンピューティング機器 (つまりラップトップ・コンピューター) にデプロイされる基本フレームワーク・プラットフォームの他に、さまざまなハンドヘルド機器やモバイル機器をサポートすることも視野に入れています。IBM® は Lotus® Expeditor によるモバイル機器サポート・プラットフォームを提供しており、これはコアとなる Maestro 製品と結合される携帯情報端末機器用アプリケーションの作成に役立つ可能性があります。

参考文献

学ぶために

  • Mobile Workforces Forums を訪れ、モバイル・ワークフォースに利用可能な数多くの記事や製品について調べてみてください。
  • Eclipse の推奨読み物リスト」を調べてみてください。
  • developerWorks には他にも Eclipse に関する資料が豊富に用意されています。
  • developerWorks を Twitter でフォローしてください。
  • Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。
  • IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。
  • developerWorks podcasts ではソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
  • developerWorks の Technical events and webcasts で最新情報を入手してください。
  • IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。
  • IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。
  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。

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

  • SourceForge の Maestro Mobile Workforce Framework のページを訪れてください。
  • Eclipse RCP プラットフォームについて詳しく知り、また Eclipse フレームワークに関する一般的な情報を入手してください。
  • モバイル機器対応のアプリケーションをサポートする、IBM の Lotus Expeditor について学んでください。
  • Jigloo ビジュアル・エディターは Eclipse フレームワークに追加された素晴らしい機能であり、SWT/JFace/Swing ユーザー・インターフェースを迅速かつ視覚的に編集することができます。
  • IBM alphaWorks に用意された最新の Eclipse technology downloads を調べてください。
  • Eclipse Foundation から Eclipse Platform やその他のプロジェクトをダウンロードしてください。
  • IBM 製品の試用版をダウンロードし、DB2® や Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品をお試しください。
  • IBM ソフトウェアの試用版を利用して皆さんの次期オープンソース開発プロジェクトを革新してください。ダウンロードまたは DVD で入手することができます。

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

コメント

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=Open source
ArticleID=391672
ArticleTitle=Eclipse RCP を使ってモバイル・ワークフォースのオペレーションをサポートする
publish-date=04212009