(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023096875
(43)【公開日】2023-07-07
(54)【発明の名称】キッティングシステム
(51)【国際特許分類】
G06F 8/61 20180101AFI20230630BHJP
【FI】
G06F8/61
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2021212908
(22)【出願日】2021-12-27
(11)【特許番号】
(45)【特許公報発行日】2023-02-13
(71)【出願人】
【識別番号】000108155
【氏名又は名称】センコーグループホールディングス株式会社
(74)【代理人】
【識別番号】110001900
【氏名又は名称】弁理士法人 ナカジマ知的財産綜合事務所
(72)【発明者】
【氏名】辻 法久
(72)【発明者】
【氏名】井上 惠司
(72)【発明者】
【氏名】藤井 伸五
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA06
5B376AD19
5B376FA13
(57)【要約】
【課題】セキュリティのリスクを回避しつつ、新規端末導入に必要となるコストを削減することができる、キッティングシステムを提供する。
【解決手段】キッティングルートサーバー210は、拠点内システムに導入されるPCにインストールすべきアプリケーションを専用装置110に配信する。専用装置110は、拠点内システム10の業務で使用される業務用端末120から隔離された隔離ネットワーク150を構成し、配信されたアプリケーションを隔離ネットワーク150に接続されたPC130にインストールする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数拠点それぞれの拠点内システムと管理サーバーを備えるキッティングシステムであって、
拠点内システムに専用装置が設けられ、
前記管理サーバーは、前記専用装置に拠点内システムに導入される新規端末にインストールすべきアプリケーションを配信し、
前記専用装置は、拠点内システムの業務で使用される業務用端末から隔離された隔離ネットワークを構成し、配信されたアプリケーションを前記隔離ネットワークに接続された新規端末にインストールする処理を実行する
ことを特徴とするキッティングシステム。
【請求項2】
前記専用装置は、管理サーバーから配信された複数のアプリケーションを、専用装置のストレージにおける共有領域に格納し、新規端末のブラウザにより前記専用装置がアクセスされると、キッティング作業用の画面を新規端末に表示させて、キッティング作業の申請入力を受け付ける処理を行い、
前記管理サーバーは、キッティング作業用のデータベースを有し、前記キッティング作業の申請入力で受け付けた入力内容を当該データベースに登録する処理を行い、
前記新規端末へのインストールは、前記申請入力の入力内容が、前記管理サーバーのデータベースに登録された後に、前記申請入力の入力内容に従いなされる
ことを特徴とする請求項1に記載のキッティングシステム。
【請求項3】
前記専用装置は、前記申請入力の入力内容が、前記管理サーバーのデータベースに登録された後に新規端末に管理プログラムを送り込み、
前記管理プログラムは、専用装置をホスト側としたリモート制御を有効として、専用装置の制御によるインストールを開始させるのと共に、アプリケーション毎のインストールの成否、及び、インストールを構成する個々のタスクの成否を監視し、
前記専用装置は、管理プログラムによる監視で得られたインストールの成否、及び、タスクの成否に基づき、キッティング作業のログを作成して、管理サーバーに送信する
ことを特徴とする請求項2に記載のキッティングシステム。
【請求項4】
前記専用装置は、新規端末のブラウザによりアクセスされると、新規端末にモニタプログラムを送り込み、
前記モニタプログラムは、管理プログラムによる監視で得られたインストールの成否、及び、タスクの成否に基づき、キッティング作業がどこまで進捗したかの度合いを新規端末に表示させる
ことを特徴とする請求項3に記載のキッティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数拠点のそれぞれの拠点内システムを含むキッティングシステムに関し、各拠点内システムに導入すべき端末に、必要なアプリケーションをインストールする作業の効率の改善に関する。
【背景技術】
【0002】
今日の企業は、国内、海外の様々な地域に事業拠点及び拠点内システムを擁して、日々の業務を遂行している。特に物流にかかる企業の業務は、荷主等の顧客からの受注、物流センター又は倉庫における配送対象物の入庫/在庫/出庫の管理、配送手段の確保、及び各種帳票の発行等多岐にわたる。拠点内システムに導入されるパーソナルコンピュータ(以下、PCと呼ぶ)には、グループウェアや文書作成アプリケーション、スキャン画像閲覧アプリケーション等、様々なアプリケーションがインストールされ、上記の多岐にわたる業務に使用される。PCに、アプリケーションのインストールを行って使用可能な状態にし、拠点内システムの端末に設定する作業は、キッティングと呼ばれる(例えば、特許文献1参照)。
【0003】
新規端末の導入にあたり、ライセンス管理、セキュリティの観点から、端末にインストールされるアプリケーションを一括して管理することが望ましい。そこで、新たな端末を拠点内システムに導入するにあたり、PCを一括購入して、購入したPCをサービスセンターに送り、サービスセンターにおいて、一括してキッティングするという手動キッティングが、現在の主流になっている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで手動キッティングでは、一括購入したPCを作業センターに配送して、業務に必要なアプリケーション一式をインストールして端末を構成した後、端末を各拠点に配送せねばならず人手に頼るところが大きい。
【0006】
人手に頼るとのデメリットが伴うので、最近、公衆クラウドサービスを利用した、リモートなキッティングの実現が検討されている。これはAmazon S3(Simple Storage Service)等の公衆クラウドサービスのストレージに、新規導入するPCにインストールすべきアプリケーション一式を集積させておき、Amazon EC2(Elastic Compute Cloud)等の公衆クラウドサービスのアプリケーション提供機能を利用して、これらアプリケーション一式を配信してインストールさせるというものである。
【0007】
こうしたリモートキッティングはPCの集荷・配送が不要になるから、新たなPCの導入に必要となる人手を最小限にすることができる。ところが、かかるリモートキッティングは、人手の代わりに、アプリケーション一式の転送が必要になり、キッティングにおけるトラフィックを増大させる。ネットワークの負荷が高まるので、業務システムを用いた本来の業務に支障をきたしてしまう恐れがある。インストールすべきアプリケーション一式の転送が高頻度になされるから、悪意をもった第3者が、拠点内システムのネットワークへの進入に成功した場合、インストールすべきアプリケーション一式が詐取される可能性があり、セキュリティ上の大きな脅威になる。そうした、アプリケーション一式の詐取は、社内情報の盗用等二次的被害をもたらし、企業に大きな損出を与える可能性がある。
【0008】
本開示の目的は、トラフィック増大及びセキュリティ上の脅威を回避しつつ、新規端末導入に必要となるコストを削減することができる、キッティングシステムを提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するキッティングシステムは、複数拠点それぞれの拠点内システムと管理サーバーを備える。拠点内システムに専用装置が設けられ、前記管理サーバーは、前記専用装置に拠点内システムに導入される新規端末にインストールすべきアプリケーションを配信し、前記専用装置は、拠点内システムの業務で使用される業務用端末から隔離された隔離ネットワークを構成し、配信されたアプリケーションを前記隔離ネットワークに接続された新規端末にインストールする処理を実行することを特徴としている。
【発明の効果】
【0010】
本開示のキッティングシステムによれば、新規端末へのアプリケーションの転送は、業務用端末から隔離された隔離ネットワークで行われるので、拠点内システムのネットワークに悪意をもった者が接続したとしても、アプリケーション一式が詐取される可能性はきわめて小さくなり、また拠点内システムにおけるネットワークの負荷が高まることはない。
【0011】
新規端末にインストールすべき新規アプリケーションは、管理サーバーによって専用装置に送り込まれるので、新規端末を事業拠点毎に集荷して、配送するという手間は生じない。従って、新規端末の導入にあたり、トラフィック増大を回避しつつ、新規端末導入に必要となるコストを削減することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1はキッティングシステム1の構成を示す図である。
【
図2】
図2はキッティング専用装置110及びPC130の制御階層を示す図である。
【
図3】公衆クラウドシステム20のキッティングデータベース220、キッティング専用装置110のローカルストレージ115、PC130のシステムドライブ136のそれぞれに格納されるアプリケーション群を示す図である。
【
図4】キッティングに用いられるデータベースの内容を示す図である。
【
図5】キッティング申請の一例を示すフローチャートである。
【
図6】
図6(a)(b)はキッティング申請画面の一例を示す図である。
【
図7】キッティングマネージャー132、制御手順書113の作成及び送信手順を示すフローチャートである。
【
図8】PC情報の収集、収集したPC情報を用いたキッティングトークンの作成を示すフローチャートである。
【
図9】キッティングマネージャー132によるタスク成否、インストール成否のモニタリングと、キッティング専用装置110によるログ作成とを示すフローチャートである。
【
図10】リモート制御プログラム112及びキッティングモニター133による処理手順を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本開示に係るキッティングシステム1について、図面を参照して説明する。なお、以下の説明において、同一の機能および構成を有するものについては、同一の符号を付し、その説明を省略する。
【0014】
[1]キッティングシステム1の構成
図1を参照してキッティングシステム1の構成を説明する。キッティングシステム1は、
図1に示すように、本社、支店、営業所などの事業拠点ごとに設けられた拠点内システム10と、本社の管理部門に設けられたオフサイトセンター30とを含む。拠点内システム10及びオフサイトセンター30は、基幹ネットワーク40と接続されており、これら拠点内システム10、オフサイトセンター30に属する業務用端末120は、基幹ネットワーク40を介して相互に通信を行うことができる。拠点内システム10、オフサイトセンター30は、ファイアウォール60によって、公衆ネットワーク50から隔離されており、公衆ネットワーク50からは、拠点内システム10にアクセスすることはできない。一方、キッティングシステム1は、公衆ネットワーク50に存在する公衆クラウドシステム20の機能を利用して、キッティングルートサーバー210、キッティングデータベース220を構築し、キッティングに必要となる処理をキッティングルートサーバー210に実行させている。
【0015】
(1-1)拠点内システム10
拠点内システム10は、本社、支店、営業所などの事業拠点ごとに、対応する拠点業務を遂行するためのコンピュータシステムである。拠点内システム10は、キッティング専用装置110、業務用端末120を備える。
【0016】
業務用端末120は、拠点業務を遂行するために拠点内システム10に導入されたパーソナルコンピュータ(PC)であり、対応するユーザーが業務を行うためのキッティングがなされている。業務用端末120は、構内ネットワーク140に接続され、他の業務用端末120と連携して拠点業務を遂行する。業務用端末120は、構内ネットワーク140及び基幹ネットワーク40を介して、他の拠点内システム10の端末と通信可能である。
【0017】
キッティング専用装置110は、ネットワークインターフェイス110a、110b、ローカルストレージ115を備えるものの、キーボードやポインティングデバイス、ディスプレイをもたないUMPC(UltraMicroPC)である。ネットワークインターフェイス110aは、構内ネットワーク140に帰属するようネットワーク設定がなされており、ネットワークインターフェイス110aを介して拠点内システムの基点ハブ160と接続される。基点ハブ160とは、拠点内システム10において基幹ネットワーク40との接点となるハブである。
【0018】
キッティング専用装置110は、ネットワークインターフェイス110aを通じて、トンネリング型の通信を行うことで、キッティングルートサーバー210を相手側としたデータ処理を行う。トンネリング型の通信とは、データの暗号化、カプセル化等により、ファイアウォール60を跨いだコネクションを確立して、当該コネクションを用いて行うデータ通信のことである。
【0019】
ネットワークインターフェイス110bは、何れの拠点内ネットワークから隔離されていて、業務用端末からの認識しえないプライベートネットワーク(隔離ネットワーク150)に帰属するようネットワーク設定がなされている。ユーザーは、ネットワークインターフェイス110b、ハブ、ケーブルから構成される隔離ネットワーク150に、新規導入すべきPC(PC130)を接続することで、PC130を一時的に隔離ネットワークの配下に置くことができる。隔離ネットワーク150の構築は必須ではない。ネットワークインターフェイス110bを、隔離ネットワーク150に帰属させるというネットワーク設定がなされていれば、ケーブルを介して直接、ネットワークインターフェイス110bにPC130を接続した場合でも、PC130のキッティングを実行することができる。ネットワークインターフェイス110a,bに対するネットワークスィッチの設定により、構内ネットワーク140、隔離ネットワーク150は互いに独立しているものの、キッティング専用装置110のローカルストレージ115に設けられた共有ディレクトリは、隔離ネットワーク150に接続された何れのPCからもアクセス可能である。
【0020】
従って、隔離ネットワーク150に接続されたPC130に対するアプリケーションの引渡しは、ローカルストレージ115に設けられた共有ディレクトリを通じてなされる。
【0021】
キッティングの対象となるPCを直接、拠点内システム10の構内ネットワーク140に接続するようなことはせず、一旦、隔離ネットワーク150に接続してインストールを行うため、汚染されているPCを誤って導入しようとした場合でも、当該PCにおける汚染は、拠点内システム10の他の端末に波及することはない。こうした波及を防止することで、拠点内システム10の安全性を担保することができる。
【0022】
(1-2)キッティングルートサーバー210
キッティングルートサーバー210は、公衆クラウドシステム(例えば、AWSCloud)における複数のアベイラビリティゾーンの1つに設けられ、公衆クラウドシステムの計算資源サービス(例えば、Amazon EC2)のインスタンスとして動作する仮想管理サーバーであり、アプリケーションの配信やキッティング用のデータベース登録を行う。
【0023】
クラウドストレージ220は、公衆クラウドシステムにおいて、キッティングルートサーバー210の一部をなすストレージ装置であり、公衆クラウドサービスのストレージサービス(例えば、Amazon S3)を利用したアプリケーション群の蓄積部と、公衆クラウドサービスのデータベースサービス(例えば、Amazon RDS(Amazon AuroraMySQL))の利用によって実現されるリレーショナルデータベースとを含む。
【0024】
(1-3)オフサイトセンター30
オフサイトセンター30は、社内キッティングの管理者権限をもったユーザー(システム管理者)により操作される専用端末310を含む。システム管理者は、キッティングの申請があったときの申請の受け付けや証明書発行、PC130をモバイルデバイスマネジメントの対象にするための登録作業、PC130にインストールすべきアプリケーションについてのライセンス管理を一括して行う。システム管理者は、正規ユーザー(各拠点で業務を行う社員)の情報をクラウドストレージ220に登録する。また、キッティングやアップデートの申請があったときの承認を行い、配信するアプリケーションを管理する。
【0025】
[2]キッティングのための構成要素
(2-1)キッティング専用装置110、PC130におけるプログラム構成
図2は、キッティング専用装置110、PC130におけるプログラム構成を示す図である。
図2において、リモート制御プログラム112、制御手順書113及びインストーラー131は、単体のアプリケーションをインストールするための構成であり、単体のアプリケーションのインストールを実行する。これらに加え本実施形態では、キッティングを実現するための構成要素として、キッティングルートサーバークライアントプログラム111、キッティングマネージャー132、キッティングモニター133を含む。
【0026】
キッティング専用装置110の制御内容は、ハードウェア110H(CPU、RAM、ROM、SSD、周辺I/O等で構成される)、オペレーティングシステム(OS)110Sの上位に、キッティングルートサーバークライアントプログラム111、リモート制御プログラム112、制御手順書113が存在するという階層構造になっている。
【0027】
キッティングルートサーバークライアントプログラム111は、キッティングに必要な処理をキッティングルートサーバー210に要求するクライアントプログラムであり、クラウドストレージ220のリレーショナルデータベースに対するデータ登録や、クラウドストレージ220の蓄積部に蓄積されたアプリケーションの配信をキッティングルートサーバー210に要求する。こうして配信されたアプリケーションを受信し、ローカルストレージ115の共有ディレクトリに格納する。
【0028】
リモート制御プログラム112は、PC130が専用装置110のWebページにアクセスし、ログインして登録された申請が選択された場合、制御手順書113を実行することでPC130を対象としたリモート制御を開始し、アプリケーションのリモートインストールを実行する。
【0029】
制御手順書113は、対応するアプリケーションをインストールするためのタスクとその順序を規定したものである。ここでいうタスクは、キッティングの対象となるPCで実行されるタスクであり、ファイルのダウンロード、ファイルの所定の格納場所へのコピーや削除、所定のプログラムの実行、環境変数やレジストリの設定、端末再起動などを含む。
【0030】
PC130の制御構造は、ハードウェア130H(CPU、RAM、ROM、SSD、周辺I/O等で構成される)、オペレーティングシステム130Sの上位に、インストーラー131、キッティングマネージャー132、キッティングモニター133が存在するという階層構造になっている。
【0031】
インストーラー131は、テンポラリィディレクトリ135に一時的に保存され、アプリケーションを構成するアーカイブファイルにおいて、アプリケーションの主体である実行ファイル、データファイルと共にPC130に送り込まれるプログラムであり、アプリケーションを構成する実行ファイル、データファイルをPC130のシステムドライブ136にコピーして、格納先位置情報を環境変数やレジストリ130Rに登録する。
【0032】
キッティングマネージャー132は、インストーラー131の起動に先立ちPC130にてキッティング専用装置110からダウンロードされPC130によって起動されるプログラムである。インストーラー131がアプリケーションに固有となる単位であるのに対し、キッティングマネージャー132はキッティングに固有となるプログラムであり、インストーラー131の起動に先立ち、キッティング専用装置110をホストとしたリモート制御を有効にした上、アプリケーション毎のインストールの成否、及び、インストールを構成する個々のタスクの成否のモニタリングを行う。
【0033】
キッティングモニター133は、インストーラー131の起動に先立ちキッティング専用装置110からPC130に送り込まれ、PC130で起動される実行プログラムであり、キッティング作業の申請時にユーザーが入力した申請内容及びPC情報を表示するのと共に、インストール状況の表示を行う。インストール状況の表示には、以下のものがある。
【0034】
1.キッティングの進捗度をプログレスバーで表示する。
【0035】
2.カレントステップ数/最大ステップ数なる比率を表示する。
【0036】
3.アプリケーションインストールに必要なアーカイブファイルのコピーと展開、インストーラー実行等の処理数、現在の実行位置を数値で表示する。
【0037】
4.現在実行している処理を示すメッセージを表示する。
【0038】
5.全体工程に対する、カレント工程の比率により、キッティングの進捗状況を表示する。
【0039】
キッティングトークン134は、PC130のレジストリ130Rに格納されるデータであり、キッティング申請情報と、キッティングの対象となるPCの情報とを組み合わせることで構成される。キッティングトークン134は、PC130のレジストリ130Rに格納されることで、PC130が現在、キッティングの対象になっていることを示す。キッティングが終了すれば、キッティングトークン134は、PC130のレジストリ130Rから削除される。
【0040】
(2-2)アプリケーション群
図3は、クラウドストレージ220、ローカルストレージ115、PCのシステムドライブ136に格納されるアプリケーションの関係を模式的に示す図である。
【0041】
クラウドストレージ220の蓄積部には、配信アプリケーション群221が格納される。配信アプリケーション群221は、システム管理者が複数のアプリケーション供給プロバイダから入手したアプリケーションからなる集合である。本図では、アプリケーションA~Dのサービスプロバイダー501~504から収集されたアプリケーションA~Dが格納される。
【0042】
キッティング専用装置110のローカルストレージ115には、インストールアプリケーション群116が格納される。
【0043】
インストールアプリケーション群116は、配信アプリケーション群221に属するアプリケーションを母集合とするアプリケーションの集合であり、配信アプリケーション群221そのもの、又は、配信アプリケーション群221から指定された一部のアプリケーションからなる。配信アプリケーション群221、インストールアプリケーション群116において各アプリケーションはアーカイブファイルの形態で格納される。例えば、アーカイブファイルは、アプリケーションの実行ファイル、当該実行ファイルの実行時に参照されるデータファイル、インストーラーを所定の圧縮方式(例えばzipなど)で圧縮したものである。本図では、クラウドストレージ220に格納されたアプリケーションA~Dと、同じもの(アプリケーションA~D)が格納されている。
【0044】
PC130のローカルストレージにおけるシステムドライブ136には、インストールアプリケーション群116における個々のアプリケーションがインストールされ、実行可能な状態になっている。
【0045】
(2-3)クラウドストレージ220のデータベース
クラウドストレージ220のリレーショナルデータベースは、アプリケーションやキッティングに付随する情報要素のデータベースを含む。アプリケーションやキッティングに付随する情報要素のデータベースは、
図4に示すアプリケーション管理情報データベース222、配信済アプリケーション情報データベース223、ユーザー管理情報データベース224、端末管理情報データベース225、バージョン管理情報データベース226、キッティング申請情報データベース227を含む。
【0046】
アプリケーション管理情報データベース222は、配信アプリケーション群221として記憶されているアプリケーションのそれぞれに対応するレコードからなる。アプリケーション管理情報データベース222のレコードは、アプリケーションを一意に識別するID、ソフトウェア名、制御手順書のID、バージョンが異なる同一アプリケーションをグループ化するための文字列であるグループ名、用途が同じアプリケーションをグループ化するための文字列である排他キー名、標準にインストールすべきアプリケーションの名称である標準ソフトウェア名、アプリケーション一覧の価格部分に表示すべき任意文字列、プロダクトキーを示す。
【0047】
配信済アプリケーション情報データベース223は、各拠点に設置されているキッティング専用装置110に対応するレコードからなり、配信済みのアプリケーションのアプリケーションIDと未配信のアプリケーションのアプリケーションIDとを区別して示す。
ユーザー管理情報データベース224は、各拠点に在籍する社員のそれぞれに対応するレコードからなり、各レコードは、社員コードに、社員の氏名、社員パスワードを対応付けて示す。
【0048】
端末管理情報データベース225は、各拠点内システムで導入されている端末に対応するレコードからなり、各レコードは、資産管理番号、使用ユーザーの社員ID、端末ID、インストールされているアプリケーションのアプリケーションID、端末情報(OS、CPU、メモリ)、ネットワーク接続情報(IPアドレス)などを示す。
【0049】
バージョン管理情報データベース226は、アプリケーションIDに対応するレコードからなり、各レコードは、インストールすべきバージョンのアプリケーションIDを示す。インストールすべきバージョンのアプリケーションIDとして、最新バージョンのアプリケーションIDが記録されるとは限らず、安定動作するバージョンのアプリケーションIDが記録されることもあり得る。バージョン管理情報データベース226のレコードは、各端末にインストールされているアプリケーションのアプリケーションIDと比較して、アップデートの必要の有無を判断するために使用される。
【0050】
キッティング申請情報データベース227は、キッティング申請のそれぞれに対応するレコードからなり、各レコードは、キッティングの申請日、申請者の氏名コード、申請者氏名、PCの導入を申請するユーザーのメールアドレス、PC130の使用者が申請者と異なる場合の使用者の情報(使用者の氏名コード、使用者氏名、メールアドレス)、導入しようとするPCの種別が代替か新規かの区別、PC種別が代替である場合に、代替するPCの資産管理番号、対象となるPCの固定IPアドレス、固定IPアドレスのサブネットマスク、デフォルトゲートウェイのIPアドレス、コンピュータ名、ワークグループがある。また、キッティングの申請状態が未承認であるか、承認済みであるかを明示することができる。
【0051】
[3]キッティングシステム1でなされる処理の詳細
以下、キッティングシステム1でなされる処理について説明する。
【0052】
(3-1)配信アプリケーションの収集・配信
配信アプリケーションの収集は、専用端末310を用いたシステム管理者による手動操作でなされる。システム管理者は、社外のアプリケーションサービスプロバイダからアプリケーションのインストールやアップデートで必要になるファイル群を取得し、クラウドストレージ220に配信アプリケーション群221として格納する。そして、配信アプリケーション群221として格納されたアプリケーションに対応するアプリケーションID、アプリケーション名、グループ名等をアプリケーション管理情報データベース222に登録する。また、配信アプリケーション群221として格納されたアプリケーションに対応するアプリケーションIDを、各拠点のキッティング専用装置110ごとの配信済アプリケーション情報データベース223に未配信アプリケーションとして登録する。
【0053】
また、システム管理者は、アプリケーション利用者の要望やアプリケーションサービスプロバイダから提供される情報(推奨バージョンに関する情報や各バージョンの脆弱性に関する情報)などに基づいて、複数バージョンが存在するアプリケーションにおいてインストールすべきバージョンを決定し、バージョン管理情報データベース226を更新する。
【0054】
配信アプリケーションの配信は、キッティングルートサーバー210が、クラウドストレージ220を参照してなされる。
【0055】
キッティングルートサーバー210は、クラウドストレージ220の配信済アプリケーション情報データベース223を参照し、各拠点のキッティング専用装置110に対して、配信アプリケーション群221として格納されたアプリケーションのうち未配信のアプリケーションの検出を行う。そして、キッティングルートサーバー210がキッティング専用装置110へ配信(PUSH)するパターン、キッティング専用装置110が、キッティングルートサーバー210から取得(PULL)するパターンのどちらかでキッティング専用装置110は未配信アプリケーションを取得する。そうして取得した未配信アプリケーションをインストールアプリケーション群116として格納する。
【0056】
(3-2)キッティング申請
図5は、申請者が、キッティング対象となるPC130のキッティング申請を行う場合のフローチャートである。尚、以降の説明における「キッティング専用装置110」は、
キッティングルートサーバークライアントプログラム111が行うべき処理を意味する。
【0057】
あるユーザーが、量販店等からの購入により、新品のPC130を入手したとする。この場合ユーザーは、キッティング専用装置110のネットワークインターフェイス110bにPC130を接続して、PC130を起動し、ブラウザを起動した上、キッティング専用装置110のWebページのURLを入力する。こうすることでPC130は、キッティング専用装置110のWebページにアクセスする(ステップS101)。
【0058】
キッティング専用装置110は、PC130によりアクセスされると、PC130にログイン画面を表示させる(ステップS102)。
【0059】
ログイン画面は、社員コードと社員パスワードを入力するための入力フォームを含み、当該フォームに入力された内容がキッティングルートサーバー210に送信される。申請者は、ログイン画面に従って、社員コードと社員パスワードを入力する(ステップS103)。
【0060】
キッティングルートサーバー210は、申請者から入力された社員コードおよび社員パスワードと、クラウドストレージ220においてデータベースの一部をなすユーザー管理情報データベース224の社員コードおよび社員パスワードとを比較することにより、ユーザー認証を行う(ステップS104)。
【0061】
ユーザー認証に成功すると(ステップS104でYes)、キッティング専用装置110は、キッティングの申請画面を表示するためのページ定義ファイルをPC130に送信し(ステップS105)、キッティング申請情報に対応する申請項目及びインストールの対象としてデフォルトで決められた1以上のアプリケーションを示すキッティング申請画面をPC130の画面に表示させる(ステップS106)。
【0062】
キッティング申請画面における申請項目は、キッティング申請情報データベース227において、1回のキッティングに対応するレコードの個々の項目に対応する入力欄を有する。ユーザーが入力欄を対象とした入力操作により、キッティング申請情報データベース227のレコードに登録すべき、テキスト文字列を入力する。
【0063】
キッティング専用装置110は、アプリケーションをインストールするにあたって、アプリケーション管理情報データベース222をキッティングルートサーバー210から受け取り、アプリケーション管理情報データベース222の各レコードに記載された情報を用いてアプリケーションの一覧表示を行う。
【0064】
図6(a)は、PC130にインストール可能なアプリケーションを表示する申請画面501を示す図である。本図の申請画面501には、PC130にインストール可能なアプリケーション(アプリケーションA~D)を示す選択フォーム(フォーム501A~D)が含まれる。
図6(a)は、選択可能なアプリケーションが提示されている状態、
図6(b)は、アプリケーションAとアプリケーションCとをインストールすると指定されている状態を示す。フォームを操作(クリック、タップ等)することにより、指定されている状態と、指定されていない状態とを切り替えることができる。キッティング専用装置110は、申請項目に対する入力を受け付け(ステップS107)、キッティングルートサーバー210は、キッティング申請情報データベース227への登録を行う(ステップS109)。
【0065】
キッティング申請情報データベース227への登録がなされると、システム管理者は、専用端末310を操作してクラウドストレージ220のキッティング申請情報データベース227にアクセスし、キッティング申請情報データベース227における承認状態を「承認済」に更新する(ステップS110)。
【0066】
キッティング申請の申請画面で指定されたアプリケーションのレコードをアプリケーション管理情報データベース222に登録する(ステップS111)。
【0067】
(3-3)キッティングマネージャーの送信
図7を参照しながらステップS111の後のキッティング専用装置110、クラウドストレージ220、PC130の処理について説明する。
【0068】
キッティングルートサーバー210は、キッティングを行うユーザーが申請したキッティング申請情報データベース227に基づき、キッティングでインストールすべき複数アプリケーションのそれぞれに対応する制御手順書113を作成して、キッティング専用装置110に送信する(ステップS201)。一方、作成・送信した制御手順書113のIDをキッティング申請情報データベース227のレコードに追加する(ステップS202)。
【0069】
PC130では、キッティング専用装置110から受信したキッティングマネージャー132を起動する(ステップS204)。キッティングモニター133は、キッティングマネージャー132に付随するプログラムであり、キッティングマネージャー132と共にPC130に送り込まれる。
【0070】
(3-4)PC情報の収集と、PC情報を用いたキッティングトークンの作成
図8を参照しながらキッティングマネージャー132がクラウドストレージ220に登録された後のキッティング専用装置110、クラウドストレージ220の処理について説明する。
【0071】
キッティングマネージャー132は、キッティング対象PC130の情報を収集し、収集結果である情報(PC情報)をキッティング専用装置110に送信する(ステップS205)。PC130から収集するPCの情報としては、OSの製品名、OSアーキテクチャ(OSが32ビットであるか、64ビットであるかの区別)、OSのバージョン、シリアル番号、PCのベンダー名、PCのモデル、CPUにおける論理プロセッサ数(コア数)、物理メモリサイズ、物理ディスクの名前、サイズ、空きエリア、無線LANMACアドレス、インストールアプリ一覧がある。キッティングマネージャー132が収集したPC情報は、キッティング専用装置110を介してキッティングルートサーバー210に送信される(ステップS206)。キッティングルートサーバー210は、収集されたPC情報を、クラウドストレージ220における端末管理情報データベース225に登録するのと共に、収集したPC情報をキッティング申請情報に組み合わせて、キッティングがなされていることの区別を示すキッティングトークン134を作成しキッティング専用装置110に送信する(ステップS207)。キッティング専用装置110は、キッティングマネージャー132にキッティングトークン134を送信して引き渡し(ステップS208)、キッティングトークン134をPC130のレジストリ130Rに格納させる(ステップS209)。
【0072】
(3-5)キッティング用の端末設定とリモート制御プログラム112の起動
図9はキッティングマネージャー132及びキッティング専用装置110による処理内容を示すフローチャートである。本図におけるiは、キッティングの対象となる複数のアプリケーションのそれぞれを指示する変数である。
【0073】
キッティングマネージャー132は、キッティング対象PC130に対して、キッティング用端末設定を行う(ステップS302)。キッティング用端末設定とは、キッティングがなされている間に有効となる設定のことであり、自動ログイン設定、キッティングマネージャーの自動起動設定、リモートコントロール設定を含む。こうして、キッティング用の端末設定を行った後、リモート制御プログラム112が起動される。
【0074】
(3-6)リモート制御プログラム112、キッティングマネージャー132によるリモート制御
図10は、リモート制御プログラム112、キッティングマネージャー132によるリモート制御手順を示すフローチャートである。本図におけるiは、
図9同様、キッティングの対象となる複数のアプリケーションのそれぞれを指示する変数である。
【0075】
リモート制御プログラム112は、キッティングルートサーバー210により送信された制御手順書群の受信待ちを行い(ステップS501)、受信されれば(ステップS501でYes)、変数iを初期化して(ステップS502)、アプリケーションiに対応する制御手順書(制御手順書i)を実行する(ステップS503)。制御手順書で実行する手順としては、(1)レジストリ内容のチェックによる、アプリケーションiがインストール済みかどうかの判定、(2)キッティング専用装置110のローカルストレージ115における共有ディレクトリから、PC130のテンポラリディレクトリ135に、アーカイブファイルをコピーする処理、(3)コピーされたアーカイブファイルの展開、(4)サイレントインストールのオプションを付与した上でのインストーラー起動、(5)アーカイブファイル及び展開済みファイル一式の削除がある。
【0076】
制御手順書iの実行に失敗したか、或いは、一定時間が経過してもなお、制御手順書iが終了していないかを判定し(ステップS504)、判定結果が肯定的である場合(ステップS504がYes)、ステップS503に移行して制御手順書iの実行をリトライする。制御手順書iが正常終了すれば(ステップS504がNo)、変数iが総数n未満かどうかを判定する(ステップS505)。iがn未満である場合、変数iをインクリメントして(ステップS506)、ステップS503に戻る。以降、i<nの要件を満たす限り、ステップS503~S506のループを繰り返す。i=nになると、n番目のアプリケーションについてステップS503の処理を実行した後、リモート制御プログラム112は処理を終了する(ステップS505でNo)。
【0077】
キッティングモニター133は、アプリケーションiの進捗度xが変化したかどうかを判定し(ステップS511)、変化があれば(ステップS511でYes)、アプリケーションiにおけるインストールの進捗度x%を、キッティング全体の進捗度に変換して、プログレスバーにより表示する(ステップS512)。
【0078】
ステップS512における進捗度の変換は、アプリケーションiにおけるインストールの進捗度x%をnで割った値(x/n)に、1番目からi-1番目までのアプリケーションが完了したことによる進捗度(100・(i-1)/n)を足し合わせるという計算である。その他キッティングモニター133は、プログレスバー以外のインストール状況の表示、申請情報、PC情報の表示を行う。
【0079】
(3-7)インストールの成否、タスク成否のモニタリング
リモート制御プログラム112によるリモート制御がなされている間、キッティングマネージャー132は、
図9のステップS303~ステップS305のループに移行して、リモート制御プログラム112によるインストールの成否、タスク成否をモニタリングする。
【0080】
ステップS303~ステップS305のループは、アプリケーションiのインストールを構成するタスクが終了したかの判定(ステップS303)、アプリケーションiのインストールが終了したかの判定(ステップS304)、キッティングの対象となる全てのインストールが終了したかの判定(ステップS305)を順次実行するものである。インストールを構成する何れかのタスクが終了すると(ステップS303がYes)、その終了したタスクのSuccess/Falseを示す動作レポートをキッティング専用装置110に送信する(ステップS306)。
【0081】
何れかのアプリケーションのインストールが終了すると(ステップS304でYes)、インストールのSuccess/Falseを示す動作レポートをキッティング専用装置110に送信する(ステップS307)。
【0082】
キッティングの対象となる全てのインストールが終了すると(ステップS305でYes)、キッティング用の端末設定を解除して、業務用の端末設定を行う(ステップS308)。
【0083】
こうしたモニタリングがなされている間、キッティング専用装置110は、ローカルストレージ115にログ用のファイルをクリエイトして(ステップS401)、ステップS402~S404のループに移行する。ステップS402は、全てのアプリケーションのインストールが終了したかどうかの終了待ちであり、インストールが終了していない場合(ステップS402でNo)、インストールを構成する何れかのタスク、インストールの動作レポートを取得して(ステップS403)、インストール時に実行されたタスクのレポートを示すレコード、インストールの実行結果を示すレコードを、ローカルストレージ115にクリエイトしたログ用ファイルに追加する(ステップS404)処理を繰り返す。実行結果を示すレコードがログ用ファイルに順次追加されることで、ログが更新されてゆく。
【0084】
キッティングマネージャー132が作成するタスクの動作レポートは、対応するタスクのタスク名(タスクに対応する実行ファイルのファイル名が用いられる)、実行が開始した開始日時、実行が終了した終了日時を、Success/Falseに対応付けて示す。エラー、例外処理により実行が失敗している場合、エラーコード、例外処理コードが対応つけられる。
【0085】
インストールの動作レポートは、対応するインストーラー名(バッチファイル、実行ファイルのファイル名が用いられる)、実行が開始した開始日時、実行が終了した終了日時を、実行のSuccess/Falseに対応付けて示す。エラー、例外処理により実行が失敗している場合、エラーコード、例外処理コードが対応つけられる。これらの動作レポートがログ用ファイルに格納されるので、何れかのアプリケーションのインストールに失敗した場合、また、一度失敗したがリトライによりインストールに成功した場合、キッティングのログを参照することで、システム管理者はインストール失敗の原因を究明することができる。究明された失敗の原因に基づき、制御手順書113を改良することで、キッティングの成功率を高めることができる。
【0086】
全てのアプリケーションのインストールが完了すると(ステップS402でYes)、インストール完了をキッティングルートサーバー210に通知し(ステップS405)、ログをキッティングルートサーバー210に送信する(ステップS406)。キッティングルートサーバー210は、受信したログに基づいて、クラウドストレージ220の端末管理情報データベース225を更新する。以上、キッティング専用装置110、キッティングマネージャー132、キッティングモニター133が
図7~
図10に従って動作することにより、キッティング対象PC130のキッティングが行われる。
【0087】
ユーザーは、キッティング対象PCを隔離ネットワーク150から切り離し、構内ネットワーク140に接続する。以後、キッティング対象PC130は、業務用端末となり、業務に利用される。以上、本発明を実施の形態に基づいて説明してきたが本発明は上述の実施の形態に限定されないのは勿論であり以下の変形例が考えられる。
【0088】
(1)キッティングルートサーバー210と、キッティング専用装置110との通信は、VPN(Virtual Private Network)ゲートウェイを通じて実行することが望ましい。VPNの利用により、拠点内システムの機密性を維持することができる。またキッティングルートサーバー210に対する、キッティング専用装置110による処理要求は、webAPIを通じて実行することが望ましい。
【0089】
キッティングルートサーバー210のオペレーティングシステムとしては、Linux(登録商標)系統のRedHatを用いることが望ましい。また、キッティングルートサーバー210の機能は、リモート制御プログラム、Web、Redisを用いて実現してもよい。キッティング専用装置110のオペレーティングシステムについても、Linux系統のRedHatを用いることが望ましい。キッティングルートサーバークライアント111の機能は、リモート制御プログラムの他、DHCP、Nginx、DNS、Samba、NTP、Proxy、TFTPを用いて実現してもよい。更に、リモート制御プログラム112はAnsible、Chef、Puppetであってもよいし、リモート制御プログラムが実行する制御手順書113は、Playbookであってもよい。
【0090】
更に、キッティングルートサーバー210に対するキッティング専用装置110による処理要求は、リバースプロキシサーバー(例えば、Nginxによるリバースプロキシ機能)を用いることが望ましい。リバースプロキシサーバーの設定は、キッティングルートサーバー210へのリクエストが通過するという内容のものでよい。
【0091】
(2)配信アプリケーション群221は、所定の格納様式に従って格納することが望ましい。その格納様式とは、S3ストレージに、アプリケーション毎のサブディレクトリを設け、当該サブディレクトリに、スクリプトファイル、非分割のアーカイブファイルを格納するというものである。アーカイブファイルを分割した場合は、アプリケーション毎のサブディレクトリの配下に、分割用のサブディレクトリを設けて、分割用のサブディレクトリに、部分ファイルを格納する。
【0092】
(3)アプリケーション管理情報データベース222、配信済アプリケーション情報データベース223、ユーザー管理情報データベース224、端末管理情報データベース225、バージョン管理情報データベース226、キッティング申請情報データベース227は、他の用途で構築されたデータベースのマスタを利用して定義してもよい。
【0093】
(4)公衆クラウドシステムにおける複数のアベイラビリティゾーンの1つに、キッティングルートサーバー210、クラウドストレージ220を設け、別のアベイラビリティゾーンに、これらのバックアップを設けてもよい。かかるバックアップを利用することで、システムに異常が発生した際のリカバリーが可能になる。
【0094】
(5)リモート制御プログラムによるキッティング用端末設定、 デスクトップに表示するアイコンの設定、管理者ユーザーのアカウント無効化、アカウント作成、コンピュータ名の設定、コンピュータ名の説明の設定、ワークグループ/ドメインの設定、アカウントの種類変更、タスクバーへのアプリケーションのピン留め、タスクバーからのピン留め外し、ブラウザの各種設定、ログイン・ログオフ設定、IPアドレス設定、DNS設定、ブラウザのインターネット一時ファイル設定、ブラウザのプロキシサーバーの設定、ブラウザの信頼済みサイトのレベルカスタマイズ、ブラウザの互換表示設定、ブラウザのホームページ設定、ストアアプリの設定、スタート画面からのピン留めアイコンの外し、不要アプリのアンインストール、スタート画面における表示アプリの設定、ファイアウォール設定、リモート設定、UAC設定、NTP(Network Time Protocol)サーバー設定、WSUSクライアント側設定、クライアント証明書インストール、無線LANブリッジ接続設定、BitLockerによるドライブ暗号化設定、ゴミ箱内削除、クイックアクセスの指定解除の何れかを含んでいてもよい。
【0095】
(6)キッティングが終了した後の業務用端末設定は以下のものを含んでもよい。例えば、専用装置の接続を切断して、拠点内システムのネットワークに切り替える旨のメッセージを表示、キッティングマネージャー、キッティングモニターのアンインストールの何れかを含んでもよい。
【0096】
(7)キッティングの申請については、PCが事業所に届けられる前に実行してもよい。この場合、導入済み端末からキッティング申請を行う。こうして導入済み端末からキッティング申請がなされた場合、申請情報は、事前予約情報としてクラウドストレージ220に格納される。以降、PC130が届けられ、PC130がキッティング専用装置110に接続されると、既存の事前予約情報を一覧表示する。その他、新規のキッティング申請の受け付け、既存の事前予約情報に示されるキッティング申請の選択、既存の事前予約情報に示されるキッティング申請の内容更新を受け付ける。そうして、新規に受け付けたキッティング申請、既存の事前予約情報の中から選択されたキッティング申請、内容更新がなされた事前予約情報に示されるキッティング申請の何れかが確定されると、確定されたキッティング申請に基づき、キッティングを実行する。
【0097】
(8)制御手順書113によるリモート制御が正常になされているかどうかの監視をキッティングモニター133に実行させてもよい。一定期間通信がない場合、キッティングに問題が発生したとして、リトライのためPC130を再起動する。キッティング専用装置110は、PC130の再起動後に実施される自動的に起動するキッティングマネージャー132からのキッティング開始APIの呼び出しに応じて、キッティングをリトライする。
【0098】
(9)キッティングにおいてインストールすべきアプリケーションは1つであってもよい。また、キッティングシステムが対象とする業務は物流業務に限らない。工業的な業務、商業的な業務、事務手続きの業務、ソフトウェア作業の業務であってもよい。
【0099】
またキッティングシステムは、コンピュータシステムを指し、1つ以上のコンピュータから構成されれば足りる。例えば、クラウドサーバーが端末に対してゲストOSを起動し、かかるゲストOS上で起動したアプリケーションにより情報提供を行うクラウドコンピュータシステムのほか、クライアントからの要求に応じて、サーバーが情報提供を行うクライアント-サーバシステム、コンピュータ同士がピアツーピア接続を行うコンピュータシステム、コンピュータがグリッドとして機能し、分散処理を行うグリッドコンピュータシステムを広く含む。端末は、マウス、タッチパッド等のポインティングデバイスで操作するラップトップパソコン、ポインティングデバイス以外のタッチパネルによる操作が可能なノートパソコン、スマートフォン、タブレット端末、レジ機端末を広く含む。これらの全ての下位概念について実施の形態を述べると説明が煩雑になり望ましくない。そこで、上記の実施形態では、ラップトップコンピュータが端末であるとした。
【0100】
(10)キッティング専用装置110としては、1)小型で、各事務所に設置しても邪魔にならない、2)モータレスであり、物理故障のリスクが少ない、3)ネットワークポートを複数有するという、3つの要件を満たすパーソナルコンピュータを用いることが望ましい。
【産業上の利用可能性】
【0101】
複数の拠点で連携して業務を行う業務システムなどに有用である。
【符号の説明】
【0102】
1 キッティングシステム
10 拠点内システム
20 公衆クラウドシステム
30 オフサイトセンター
40 基幹ネットワーク
110 キッティング専用装置
111 キッティングルートサーバークライアントプログラム
115 ローカルストレージ
116 インストールアプリケーション群
120 業務用端末
130 PC
132 キッティングマネージャー
210 キッティングルートサーバー
220 クラウドストレージ