米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> ヒューレット・パッカード・カンパニー

発明の名称 並行処理を制御するためのジョブチケットのブランチロッキングのための装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−99240(P2003−99240A)
公開日 平成15年4月4日(2003.4.4)
出願番号 特願2002−147988(P2002−147988)
出願日 平成14年5月22日(2002.5.22)
代理人 【識別番号】100081721
【弁理士】
【氏名又は名称】岡田 次生 (外2名)
【テーマコード(参考)】
2C061
5B021
5B045
【Fターム(参考)】
2C061 AP01 HQ12 
5B021 AA01 BB00 CC07 EE00
5B045 BB28 BB42 EE18 GG11
発明者 ワード・フォスター / ケネス・エル・オークソン / ブライアン・エー・ヴォルコフ / シェル・エス・シンプソン
要約 課題
ジョブチケットに対するアクセスを制御する。

解決手段
ジョブチケットが、通信ネットワークに連結された1つまたは複数のプロセッサ(80)によって実行されるジョブ要求(32)に関連するもので、通信ネットワークに連結され、ジョブ要求に対応する、1つまたは複数のブランチ(66)を備えたワークフローを定義することができ、前記ジョブチケットを定義することができるワークフローコントローラ(70)と、ジョブチケットを格納することができるジョブチケットサービス(60)とを具備し、前記ジョブチケットは、1つまたは複数のブランチを指定するフレームワーク(62)を備え、前記ジョブチケットサービスは、ブランチがプロセッサ(80)によってアクセスされるとブランチをロックする。
特許請求の範囲
【請求項1】 ジョブチケットに対するアクセスを制御する装置であって、該ジョブチケットが、通信ネットワークに連結された1つまたは複数のプロセッサによって実行されるジョブ要求に関連するものである装置であり、前記通信ネットワークに連結され、前記ジョブ要求に対応する、1つまたは複数のブランチを備えたワークフローを定義することができ、前記ジョブチケットを定義することができるワークフローコントローラと、前記ジョブチケットを格納することができるジョブチケットサービスとを具備し、前記ジョブチケットは、前記1つまたは複数のブランチを指定するフレームワークを備え、前記ジョブチケットサービスは、ブランチがプロセッサによってアクセスされるとブランチをロックする装置。
発明の詳細な説明
【0001】
【発明の属する技術分野】本技術分野は、ネットワーク環境におけるサービスの統合および制御である。
【0002】
【従来の技術】コンピュータベースのネットワークでは、1つまたは複数の動作ユニットによってサービスが提供される場合がある。ネットワークのユーザは、特定のタスクを生成し、それらタスクを、動作ユニットのうちの1つに割当てられたネットワーク内に送信することができる。たとえば、コンピュータ端末のユーザは、端末にインストールされたプリンタドライバを使用して印刷注文を生成することができる。プリンタドライバは、印刷要求を制御するために使用される。他の例では、コンピュータ端末のユーザは、印刷注文を生成しその印刷注文をコンピュータネットワークに送信することによって、印刷注文が印刷サービスによって完了されるようにすることができる。印刷注文は、会社案内と関連してよい。印刷注文は、用紙タイプ、フォントサイズ、レイアウト、グラフィクス、色および他の要件等、一意の要件を含んでよい。ユーザは、Kinkos等の特定の印刷サービスが会社案内を作成するよう指定することができる。代替的に、コンピュータネットワークは、ユーザに印刷サービスを提案するプログラムを含むことができる。
【0003】印刷ジョブを制御するために、ユーザのコンピュータ端末は、ジョブチケットを生成することができる。ジョブチケットは、上に列挙した要件等の要件と、ジョブステータスがコンピュータネットワークを通して追跡されることを可能にする特定ジョブの識別と、を含む。
【0004】
【発明が解決しようとする課題】ジョブチケットを使用することにより、印刷および同様のサービスが、サービスの完了に最も適したリソース(すなわち、動作ユニット)に割付けられることが可能になる。不都合なことに、現コンピュータシステムでは、インターネット等のネットワーク化されたコンピュータシステムに存在する多種多様のサービスに対するアクセスが可能ではない。さらに、現システムでは、ユーザが現存のリソースについて幾分かの知識を有することが必要であり、ユーザがサービスと通信するための適用可能なプログラミングを有することが必要である場合がある。さらに、現システムでは、ジョブ要求がいくつかのプロセッサ間で分割されることが可能でない。その結果、ジョブ要求の完了は、必要以上に時間がかかる可能性があり、最も効率的で最低コストの方法で完了されない可能性がある。最後に、現システムは、ジョブチケットに対して適当なセキュリティを提供しない。
【0005】
【課題を解決するための手段】ジョブチケットの使用に関するこれらおよび他の問題を解決するために、方法および装置は、クライアントが電子サービスセンタを使用してジョブ属性およびプロセスを管理することができるようにする。サービスセンタは、ネットワーク上の複数のユーザによるジョブチケットのアクセスおよび変更を可能にするジョブチケットサービスを含む。本方法および装置は、ネットワークアクセス可能ジョブチケットを使用して特定のジョブまたは内容に関連する。ジョブチケットは、ルーチンおよびデータを備えた、XMLオブジェクト等のオブジェクトであってよい。内容はネットワークに格納されてよく、複数のジョブチケットによってアクセスされてよい。ジョブチケットの格納および管理は、ユーザに対して透過的である。ジョブチケットは、ネットワークの共通の場所に格納される。ジョブチケットは、ネットワークの同じ場所にあり続け、ユーザは、指定されたプロセスを完了するために要求される、ジョブチケットのその部分のみにアクセスする。ジョブチケットとジョブファイルとにアクセスすることが許可されるように指定されたユーザにアクセスを制限するために、セキュリティ基準が追加されてよい。ジョブチケットは、ジョブチケットを発信元のジョブチケットサービスに関連付けるサービスIDを含んでよい。このように、ジョブチケットのすべてまたは一部を取得するユーザは、発信元ジョブチケットサービス(およびオリジナルかまたは変更されたジョブチケット)に参照し返すことにより、いかなる変更をも検証し、アクセスされているジョブチケットが最新のものであることを確実にする。また、ジョブチケットは、ジョブチケットを特定のジョブに参照させるジョブIDも含む。
【0006】サービスセンタは、通信ネットワークを通してフロントエンドサービスに連結される。フロントエンドサービスによって、ユーザは、サービスまたはジョブ要求を生成することができる。通信ネットワークは、たとえばインターネットまたはローカルエリアネットワークであってよい。
【0007】サービスセンタは、ジョブストア、ジョブチケットサービスおよびワークフローコントローラが連結されるサービスバスを含む。また、サービスセンタには、ジョブチケットにおいて定義されるプロセスおよびタスクを完了するために制御されてよい1つまたは複数のプロセッサが連結される。
【0008】ジョブチケットサービスは、ジョブチケットを生成し格納することができる。ジョブストアには、ジョブ内容(たとえば、PDFファイル)が格納される。この構造により、ユーザは、ジョブ内容の格納を管理すること、あるいはいずれのジョブストアがジョブ内容を保持するかを知ることを必要としない。ジョブチケットサービスは、ジョブチケットへのアクセスを制御し、また、ジョブチケットの使用により、ジョブストアかまたはネットワークの他の場所のジョブ内容へのアクセスを制御する。ジョブチケットサービスは、ジョブチケットへの参照を生成してよく、その参照を使用してジョブチケットへのアクセスを制御してよい。
【0009】サービスセンタを使用することにより、ユーザは、サービスセンタに連結され多種多様のサービス(プロセッサ)にアクセスすることができる。サービスセンタは、プロセッサ間で仲裁する(arbitrate)ことにより、ユーザのジョブ要求で指定されるタスクを完了するためのプロセッサの最適な選択を確定することができる。サービスセンタは、選択されたサービスによってタスク完了を可能にするために要求される必要なインタフェースとプログラム変換とを処理する。このように、ユーザは、プロセッサの動作要件に関するいかなる知識も有する必要がない。
【0010】並行アクセス問題を制御するために、ジョブチケットサービスは、ブランチロッキング機能、すなわち、ブランチレベルでジョブチケットをロックする機能を採用することができる。ブランチロッキングは、いくつかの方法のうちの1つによって達成されてよい。ワークフローコントローラは、ロックされるブランチで識別されるタスクを実行するように、1つまたは複数の特定のプロセッサを割当ててよい。複数のプロセッサに対し同じブランチへのアクセス権限が付与される場合、ジョブチケットサービスは、権限付与されたプロセッサのうちの1つが実際にブランチを取得するとそのブランチをロックしてよい。ブランチをロックすることにより、他のプロセッサがブランチを取得することができなくなってよい。
【0011】ワークフローコントローラが、ブランチにプロセッサを割当てなかった(すなわち、いずれのプロセッサもブランチにいつでもアクセスすることができる)場合、ジョブチケットサービスは、1つのプロセッサがブランチを取得するとそのブランチをロックしてよい。
【0012】ジョブチケットサービスは、各ブランチに対しロック/アンロックフラグを設定することによりブランチをロックしてよい。そして、ジョブチケットにアクセスしているプロセッサは、ロック/アンロックフラグステータスを検討することにより、ブランチがアクセス可能であるか否かを判断してよい。環境によっては、ジョブチケットサービスは、アンロックされているブランチに対してのみアクセスを許可してよい。ブランチによって定義されるタスクを完了したプロセッサは、ブランチを変更するためにブランチがアンロックされるようにする必要があってよい。
【0013】電子サービスセンタは、ジョブチケットへのアクセスを制御するコンポーネントを有し、ジョブチケットは、通信ネットワークに連結された1つまたは複数のプロセッサによって実行されるジョブ要求に関連する。実施形態では、コンポーネントは通信ネットワークに連結されたワークフローコントローラとジョブチケットを格納するジョブチケットサービスを含む。ワークフローコントローラは、ジョブ要求に対応するワークフローを定義しジョブチケットを定義する。ワークフローは、1つまたは複数のブランチを含む。ジョブチケットは、ブランチを指定するフレームワークを含む。ジョブチケットサービスは、ブランチがプロセッサによってアクセスされるとそのブランチをロックする。
【0014】実施形態では、ブランチはロック/アンロックフラグを含み、そのロック/アンロックフラグは、ブランチをロックするようにロックにセットされ、ブランチをロックすることにより、ブランチが変更されないようにする。ブランチがロックされると、別のプロセッサは、読込み専用モードでロックされたブランチにアクセスすることができる。
【0015】他の実施形態では、ブランチにアクセスするプロセッサに鍵が与えられる。ブランチをアンロックするために、プロセッサはジョブチケットサービスに対してその鍵を返す。
【0016】他の実施形態では、ブランチにアクセスするプロセッサには、そのブランチへのアクセス権限が付与され、かかる権限はジョブチケットと共に格納される。
【0017】さらに他の実施形態では、サービスセンタはジョブストアを含む。ジョブストアは、ブランチに対応する内容を格納する。ブランチがアンロックされると、プロセッサは、内容にアクセスすることができる。
【0018】さらに他の実施形態では、ロック/アンロックフラグは、ブランチのロックステータスの指示を提供する。
【0019】さらに他の実施形態では、ジョブチケットサービスは、ワークフローのブランチを列挙するデータテーブルを格納する。プロセッサがブランチにアクセスすると、ジョブチケットサービスは、ブランチが変更不可能であることを示すためにデータテーブルにマークする。
【0020】
【発明の実施の形態】図1は、ジョブチケットサービスの従来技術によるアプリケーションを示すブロック図である。ジョブチケットは、しばしば印刷規格、ジョブ定義フォーマット(job definition format(JDF))と関連する。JDFは、www.hp_opensource.comで入手可能なJDF Specification Draft Spiral 4.0に詳細に述べられており、その開示内容はすべて引用をもって本明細書内に包含されたものとする。図1において、ユーザ1は、ジョブ要求を生成し、そのジョブ要求をポータル(portal)4を介してプロセッサ5に送信する。ジョブ要求は、ジョブチケットデータファイル2と内容ファイル3とを含んでよい。ユーザ1は、ネットワークコンピュータシステムにおけるコンピュータ端末であってよく、プロセッサ5は、ネットワークプリンタであってよい。ジョブ要求は、ドキュメントを印刷することを含んでよい。ドキュメントは、印刷されるテキストおよび画像のデジタル表現である内容3によって表されてよい。印刷ドキュメントの意図されたフォーマットは、単に、プリンタがいかにドキュメントを印刷するかを指定するデジタルファイルである、ジョブチケットファイル2に述べられていてよい。たとえば、ジョブチケットファイル2は、ドキュメントが背合せページに印刷されることを要求してよい。
【0021】特定のアプリケーションでは、ジョブチケットファイル2の機能は、プリンタドライバによって実行されてよい。プリンタドライバは、ドキュメントの印刷に関連する制御データを符号化し、その制御データと内容3とをプリンタ(すなわち、プロセッサ5)に送信する。プリンタは、制御データと内容3とにアクセスすることによってドキュメントを印刷する。
【0022】図1に示すアプリケーションは、ドキュメントを印刷するためには正常に機能するが、多くの欠点を有する。特に、ドキュメントを製作するために複数のプロセッサが関連する場合、かかるプロセッサの各々は、ジョブチケットファイル2に対するアクセスを要求する。このアクセスは、セキュリティ、変更制御およびワークフロー制御に関連する問題をもたらす。たとえば、ジョブチケットファイル2へのアクセスを要求している各プロセッサは、先のプロセッサがジョブチケットファイル2の使用を完了するまで処理を待ち続けなければならない場合がある。このため、従来技術によるアプリケーションでは、ジョブ要求を完了するために望ましくない遅延がもたらされる可能性がある。
【0023】また、ジョブチケットサービスの従来技術によるアプリケーションでは、ユーザが、プロセッサの能力および可用性を含む、プロセッサに関することを何も、あるいはプロセッサが存在するか否かさえも知らない可能性があるため、問題が起こる。したがって、ユーザは、特定のプロセッサに接続するためにいずれのポータルを使用すべきかを知らない可能性がある。
【0024】これらおよび他の問題は、ジョブチケットサービスを使用してジョブチケットおよび関連する内容へのアクセスを制御する方法および装置によって解決される。ジョブチケットサービスは、ジョブチケットの複数のユーザ間でジョブチケットへのアクセスを仲裁(arbitrate)し、セキュリティ機能を組込むことによってジョブチケットへのアクセスを制限し、1つのプロセッサまたはユーザによって行われる変更がジョブチケットおよび内容に反映されることを確実にする機構を含む。実際には、装置は、ジョブ要求としてのクライアントからの入力データを、ジョブ要求を完了するためにタスクまたはプロセスを実行するプロセッサ等の出力サービスと連結する汎用データベースを含む。データベースは、拡張可能であるという点で、およびクライアントが実行される個々のプロセスあるいはプロセッサの内部プログラミング要件に関するいかなる知識も有する必要がないという点で、汎用XMLデータベースの特徴を有することができる。このため、クライアントは、ジョブ要求を完了するために適当な1つまたは複数のプロセッサが割当てられることを保証するサービスセンタに対し、ジョブ要求を提出することができる。
【0025】本装置および方法を詳細に説明する前に、ジョブチケットについて概説する。図2は、ジョブチケットにおいて定義される、パンフレットを印刷するためのプロセスを示すノード−ツリー図(または単にノードツリー)10である。パンフレットは、商業印刷で印刷されてよく、パンフレットを印刷するためのプレートを生成するためにデジタル内容を使用してよい。ノードツリー10内では、ノードは、製品、プロセスまたはプロセス群を指定する。各ノードは、リソースを変更、消費または作成してよい。各ノードは、さらにネスト化されたノードすなわちサブノードを含んでよい。ノードおよびサブノードの配置はツリーになぞらえることができ、各ノードおよびサブノードをブランチと呼ぶことができる。パンフレットノード11は、パンフレットの特徴およびパラメータを定義する。カバーノード12は、パンフレットカバーを製作するためのパラメータを定義する。内部ページノード13は、内部ページを製作するためのパラメータを含む。内部ページノード13は、デジタルプレート作成のためのサブノード14を含むいくつかのサブノードを有するように示されている。デジタルプレート作成サブノード14自体は、2つの追加のサブノード、すなわちリッピングサブノード16とプレート作成サブノード18とを含む。
【0026】図2に示すノードおよびサブノードの各々は、入力リソースと少なくとも1つの出力リソースとが関連付けられている。リソースは、パラメータまたは論理エンティティによって記述されてよい。リソースは、コンポーネント、処理リソースまたは消耗品等の物理エンティティであってよい。コンポーネントリソースは、印刷されたシート等、ノードまたはサブノードの出力であってよい。処理リソースは、プロセス中に使用されるが、プロセスによって消費されない。消耗リソースは、プロセスによって部分的にかまたは全体的に消費され得る。消耗リソースの例には、インク、プレートおよび接着剤が含まれる。他のリソースは、デジタルファイルかまたは物理的物体の表現であってよい。たとえば、リッピングサブノード16は、入力リソースとして、実行リスト、媒体、RIPパラメータおよびレイアウトを含んでよい。実行リストリソースは、ページがその中で発生するファイルを含むページと、いずれのページが使用されるかと、を記述する。媒体リソースは、プレートを作成するために使用される媒体を記述し、媒体の寸法を記述することが必要とされる。RIPパラメータリソースは、リッピングプロセスの装置特定パラメータのすべてを記述する。レイアウトリソースは、プレートに対する、最終的にはプレスシートに対するソースページの配置を記述する。出力リソースとして、リッピングサブノード16は、リッピングされた平面を提供してよい。他のリソースには、プロセスの詳細と共に、プロセスによって使用される他の非物理的コンピュータファイルを定義するパラメータリソースが含まれる。
【0027】図2に示すノードツリー10は、ドキュメントの印刷に適用することが意図されている。しかしながら、ノード−ツリー図は、印刷以外の他のサービスのためのジョブチケットを表すために使用されてよい。たとえば、ジョブチケットは、データ処理、画像処理、データベースの生成および保守、電子出版、電子メールおよびあらゆる電子商取引サービスに使用されてよい。さらに、ジョブチケットを使用して、異なる電子商取引サービスが互いに対話することができる。
【0028】図3はクライアントが提出したタスクを制御するためにサービスセンタとジョブチケットサービスとを組込んだデジタルイメージングワークフロー( Digitalimaging Workflow(DIW))ネットワーク20のブロック図である。サービスセンタは、単一ポータルとして動作してよく、クライアントはそれを通して、電子メールと、電子商取引およびオンラインショッピングと、電子印刷と、データベース検索ならびにデータベース構成、入力(population)および保守を含むデータサービスと、を含む1つまたは複数の電子サービスに接続する。代替実施形態では、サービスセンタは複数のポータルからなってよい。この代替実施形態では、その複数のポータルの各々は、特定の電子サービスに対して専用であってよい。代替的に、複数のポータルは、帯域幅を増大させるために提供されてよい。サービスセンタ等の単一ポータルを使用することにより、クライアントは、上に述べたような多種多様な電子サービスから、それらに関するいかなる事前の知識をも有する必要なく選択を行うことができる。
【0029】サービスセンタは、ジョブ要求の形態で情報を受取るコンポーネントと、その情報を使用して、タスクおよびリソースを指定するジョブチケットを生成するコンポーネントと、を有してよい。ジョブチケットは、ジョブチケットサービスに格納されてよく、ジョブチケットが利用可能な時を知らせる通知が登録(post)されてよい。サービスセンタに連結されたプロセッサは、ジョブチケットの完了時にビッド(bid)してよく、サービスセンタは、ビッドを評価するビディング(bidding)サービスを有してよい。サービスセンタは、クライアントが提供する基準に基づくかまたは業界標準基準を含む標準基準のセットに基づいてジョブチケットに割当てる1つまたは複数のプロセッサを選択してよい。サービスセンタは、ジョブチケットへかまたはジョブチケットの一部(ブランチ)へのアクセスを制御する機構を提供してよい。その機構には、ブランチロッキングと、公開鍵暗号化かまたは同様のプロセスを使用する権限付与サーバおよび認証サーバと、が含まれる。
【0030】サービスセンタは、上述した機能を実行するために要求される処理能力およびデータ記憶を提供する、サーバ、コンピュータ、中央処理装置、通信インタフェースおよびメモリ装置等のハードウェアコンポーネントを有してよい。
【0031】DIWネットワーク20は、クライアント31がサービスまたはジョブ要求を生成し提出することができるようにするフロントエンドサービス30を含む。実施形態では、フロントエンドサービス30は、インターネットェブブラウザであってよい。代替的に、フロントエンドサービス30は、ウェブアプリケーションまたはポートモニタであってよい。ジョブ要求は、ジョブがいかに実行されるかに関する詳細な情報を含んでよく、ジョブ定義フォーマット規格にしたがってフォーマットされてよい。代替的に、ジョブ要求は、他のコンポーネントによってジョブ定義を決定的にするために使用される基本的な情報、すなわちワークフローのみを有してよい。最後に、ジョブ要求は、処理される内容またはジョブを含んでよい。内容は、1つまたは複数のデジタルファイル、テキストファイルおよび他のファイルとすることができる。フロントエンドサービス30は、たとえばインターネットまたはローカルエリアネットワークであってよい通信ネットワーク35に連結される。通信ネットワーク35には、1つまたは複数のプロセッサ80iを通信ネットワーク35にリンクするサービスセンタ40が連結される。プロセッサ80iの各々は、ジョブチケットに関する情報を含むジョブ要求に関連する情報を格納するために使用されてよいキャッシュ81iを含んでよい。実施形態では、サービスセンタ40は、データ記憶および制御機能を含むインターネットェブサイトであってよい。他の実施形態では、サービスセンタ40は、ローカルエリアネットワークにおけるノードである。
【0032】サービスセンタ40は、サービスセンタ40に連結されたエンティティ間の通信の広い周波数域を可能にする。特に、サービスセンタ40は、異なる電子サービスが、特定のプロトコルと汎用プロトコル(たとえば、TCP/IP)とを使用することによりプログラムによって互いに対話することを可能にする。このプログラムによる対話により、ネットワークに連結されている異なるサービスおよびプロセスが、データおよびファイルを交換し、データおよびファイルを変更することができる。プログラムによる対話は、サービスセンタ40に連結されたエンティティ間におけるリモートプロシージャコール(RPC)を使用することによって完了されてよい。プログラムによる対話を提供する他の方法には、CORBA、UDDIおよびe−speakがある。
【0033】図4は、サービスセンタ40の図である。サービスセンタ40は、図3の通信ネットワーク35およびプロセッサ80iと通信するサービスバス41を有する。サービスバス41には、ジョブストア50と、ジョブチケットサービス60と、ワークフローコントローラ70と、オプションのビディングサービス90と、権限付与サーバ92と、認証サーバ94と、が連結されている。ジョブストア50は、1つまたは複数のジョブ内容ファイル51iを格納してよい。ジョブチケットサービス60は、1つまたは複数のジョブチケット61iを制御してよい。ワークフローコントローラ70は、1つまたは複数のエージェント71iを使用してサービスバス41上のプロセスを制御してよい。
【0034】ジョブストア50、ジョブチケットサービス60およびワークフローコントローラ70は、クライアント31から情報を受入れその情報を使用してプロセッサ80iの動作を制御するように機能する。プロセッサ80iは、サービスセンタ40によって確定されるように特定のタスクまたはプロセスを実行する。
【0035】ジョブストア50は、サービスバス41上のノードであってよく、ジョブストア50がその機能を実行することを可能にするプログラミングを含んでよい。ジョブストア50は、1つまたは複数の大型ファイルの形式であってよい内容51を格納するために使用されてよい。サービスバス41に連結されるサービスまたはプロセスを使用してドキュメントを印刷する状況では、ジョブストア50は、たとえば1つまたは複数のPDFファイルにドキュメント内容を格納してよい。内容51は、グラフィクスとテキストとを含んでよい。特定のドキュメントの内容51は、いくつかのファイルを有してよい。たとえば、パンフレットは、カバー用の別個のファイルと内部ページ用の他のファイルとを有してよい。内部ページ用のテキストは1つのファイルにあってよく、画像はさらに他のファイルにあってよい。また、内容51は、サービスバス41上の他のリソースまたはエンティティへのリンクを含んでよい。ジョブストア50は、ユーザ(クライアント31またはプロセッサ80)がジョブ内容51に対して要求される大容量記憶域を提供する必要がないように、内容51の大容量記憶域を提供する。ジョブストア50の大容量記憶能力を使用することにより、内容51を、ネットワーク20において存続するように作成することができ、ユーザがいつでもアクセス可能であるようにすることができる。また、ジョブストア50は、ユーザ(クライアント31またはプロセッサ80)が内容51を管理する必要がないように、内容を管理し制御する。管理機能は、内容51の構成保持またはバージョン制御、内容51へのアクセス制御および内容51の記憶域における保持を含む。
【0036】ジョブチケットサービス60は、ジョブチケット61を保持する。ジョブチケットサービス60は、ジョブチケット61へのアクセスを制御し、ジョブチケット61の構成を管理してよい。たとえば、ジョブチケットサービス60は、複数のユーザ間でジョブチケット61を回すのではなく、ユーザ(クライアント31およびプロセッサ80)がジョブチケット61の部分またはブランチにアクセスすることができるようにしてよい。ジョブチケット部分へのアクセスは、アプリケーションプログラミングインタフェース、スクリプタブルインタフェースまたは同様の機能を使用することによって実現されてよい。上述したように、ジョブチケット61は、内容51(たとえば、ドキュメントのグラフィカルおよびテキストファイル)を含まないが、ジョブストア50に格納される内容51(たとえば、PDFファイル)に関連する。ユーザは、ジョブ内容の記憶を管理すること、またはいずれのジョブストア50がジョブ内容を保持するかを知ることを必要としない。代りに、ジョブチケットサービス60が、ジョブチケット61における参照を渡す。これにより、複数のクライアント31およびプロセッサ80iが内容51にアクセスすることができる。さらに、内容51は、複数のジョブチケット61に関連してよい。ジョブチケットサービス60について、およびジョブチケットサービス60とサービスバス41に連結される他のエンティティとの相互関係とについては、後に詳細に説明する。
【0037】いくつかのジョブチケット61は、複数のプロセッサ80iにより、連続して、オーバラップしてまたは同時にアクセスされることが可能である。多重アクセス処理により、ジョブチケット61を使用する問題が発生する可能性がある。たとえば、第1のプロセッサが、ジョブチケット61(あるいはその一部またはブランチ)を取得し、ワークフローで指定されるプロセスを実行する場合があり、それによってブランチが変更される場合がある。かかる変更は、たとえば、ブランチを完了したものと示すこと、入力リソースを使い尽くすこと、または新たな出力リソースを生成すること、である可能性がある。第2のプロセッサは、そのブランチを取得しようと試みることができるが、第1のプロセッサがそのブランチを変更したことを知らない(not “know”)可能性がある。代替的に、2つのプロセッサが同じブランチに対して競合した場合、デッドロック状況が発生する可能性がある。
【0038】上記問題に対する1つの解決法は、プロセッサ80がジョブチケット61を取得すると必ずジョブチケット61をロックする、というものでもよい。不都合なことに、ジョブチケット61をロックすることで、並行または並列処理を妨げる可能性があり、ジョブ要求の完了が遅くなる可能性がある。
【0039】図4に示すジョブチケットサービス60は、ブランチレベルでジョブチケット61をロックする能力を有することにより、これらおよび他の問題を解決する。ブランチロッキングは、いくつかの方法のうちの1つによって達成されてよい。ワークフローコントローラ70は、ロックされるブランチで識別されるタスクを実行するために1つまたは複数の特定のプロセッサ80iを割当ててよい。1つのプロセッサ80のみがブランチにアクセスする権限が付与される場合、ブランチロッキングは必要とならない可能性がある。複数のプロセッサ80が同じブランチにアクセスする権限が付与される場合、権限付与されたプロセッサ80iのうちの1つが実際にブランチを取得した時、ジョブチケットサービス60はブランチをロックしてよい。
【0040】ワークフローコントローラ70がブランチにプロセッサ80iを割当てなかった(すなわち、いかなるプロセッサ80も常にブランチにアクセスすることができる)場合、ジョブチケットサービス60は、プロセッサ80がブランチを取得した時にブランチをロックしてよい。
【0041】ジョブチケットサービス60は、各ブランチに対してロック/アンロックフラグを設定することによってブランチをロックしてよい。そして、ジョブチケット61にアクセスしているプロセッサ80iは、ロック/アンロックフラグステータスを検討することにより、ブランチにアクセスすることができるか否かを判断することができる。環境によっては、ジョブチケットサービス60は、アンロックされているブランチのみに対するアクセスを許可してよい。ブランチによって定義されるタスクを完了したプロセッサ80は、ブランチを変更するためにブランチをアンロックする必要があってよい。
【0042】実施形態では、ブランチにアクセスし、それによってブランチがロックされるようにするプロセッサ80に、鍵が与えられてよい。(たとえば、ブランチを変更するために)後でブランチをアンロックするために、プロセッサ80は、ジョブチケットサービス60に鍵を戻さなければならない。
【0043】特定のブランチ66へのアクセス権限が付与されているプロセッサ80は、鍵を他の権限付与されたプロセッサ80に渡してよい。鍵の権限の無い使用を防止するために、鍵は暗号化されてよい。鍵暗号化システムについては後述する。権限付与されたプロセッサ80i間で鍵を回すことにより、サービスセンタとの通信が最小限にされ、動作の効率が向上する。
【0044】他の実施形態では、ロックされたブランチは、ブランチ変更のみを防止するためにロックされ、上述した鍵を保持するプロセッサ80か、または変更の目的のために他の方法で権限付与されたアクセスのみが、実際にブランチを変更することができる。しかしながら、他のプロセッサ80は、読取り専用モードでブランチにアクセスすることができる。ジョブチケット61へのアクセスをさらに制限するために、読取り専用モードでブランチにアクセスすることができる他のプロセッサ80が、ジョブチケット61のタスク部68に列挙されてよい。
【0045】他の実施形態では、ブランチロッキングは、ジョブチケットサービス60によって制御される。ジョブチケットサービスは、プロセッサ80iのいずれに特定のジョブチケット61かまたはブランチ66へのアクセス権限が付与されているかを示すデータテーブルを含んでよい。プロセッサ80がブランチ66を取得したとき、たとえば、ジョブチケットサービス60は、アクセスを示すようにデータテーブルにマークしてよい。同じブランチ66にアクセスしようとする後続するプロセッサ80iは、第1のプロセッサ80がブランチ66にアクセスしなくなったことを示すようにデータテーブルが変更されるまで、アクセスが拒否されてよい。代替的に、後続するプロセッサ80は、読取り専用でブランチ66にアクセスすることができる。
【0046】ワークフローコントローラ70は、ジョブチケットサービス60に格納されるジョブチケット61iを作成するために使用されてよい。ワークフローコントローラ70は、クライアント31によって提出されるジョブ要求32を検討してよく、その後、ジョブチケットテンプレートを使用してジョブチケット61を用意してよい。そして、ワークフローコントローラ70は、ジョブチケット61を、格納および処理するためにジョブチケットサービス60に送出してよい。
【0047】また、ワークフローコントローラ70は、プロセッサ80間におけるタスクの完了も制御する。実施形態では、ワークフローコントローラ70は、いずれのプロセッサ80が、特定のジョブチケット61にリスト化されたプロセスを開始するために必要かつ利用可能なリソースを有するかを判断する。そして、ワークフローコントローラ70は、ジョブチケット61によって参照されるタスクを完了するために適当なプロセッサ80iを指定する。たとえば、ジョブチケット611がカラー印刷を要求する場合、ワークフローコントローラ70は、プロセッサ803のみが、ジョブチケット611で指定されるジョブを開始する能力を備えたカラープリンタであると確定する場合がある。ワークフローコントローラ70が、いずれのプロセッサ80に特定のジョブチケット61を割当てるべきかを判断するこの実施形態は、特に、ネットワーク35がローカルエリアネットワークでありすべてのプロセッサ80がローカルエリアネットワーク35に直接連結されている場合に適当である可能性がある。
【0048】代替的に、ワークフローコントローラ70は、インターネット接続されたプロセッサ80iからビッド情報を受取ってよく、そのビッド情報を使用してジョブ要求32を完了するプロセッサ80iを選択してよい。
【0049】また、ワークフローコントローラ70は、種々のノードと、入力および出力リソースと、ジョブ要求を完了するために使用されるノードツリーの他の機能と、を指定するため使用されてもよい。すなわち、ワークフローコントローラ70は、図2に示すノードツリー10等、構成概念(construct)すなわちワークフローを作成するために使用されてよい。これらのタスクを達成するために、ワークフローコントローラ70は、ジョブ要求32に含まれる制御データに基づき、ジョブ定義ファイルを書く1つまたは複数のエージェント71を含んでよい。代替的に、ノードを作成し、プロセッサ80iおよび他のエンティティに対するタスクのフローを制御するために、別個の管理情報システム(図示せず)が使用されてよい。さらに他の実施形態では、ジョブ定義は、ジョブ要求32を発したクライアント31によって書かれてよい。
【0050】再び図2のノードツリー10を参照すると、個々のノードの多くの出力リソースが、他のノードに対する入力リソースとしての役割を果たす。これら他のノードは、すべての入力リソースが完了し利用可能となるまで実行を開始することができない可能性があり、それは、ノードが明確なシーケンスで実行する必要のある可能性があることを意味する。たとえば、プレートを作成するプロセスは、印刷プロセスによって要求される出力リソースとしてプレスプレートを製作する。ノードツリー10の階層構成では、ノードツリー10の高い方で発生するノードは、高位のより抽象的な動作を表し、低位レベルのノードは、より詳細な特定のプロセスを表す。さらに、ノードツリー10の最上位に近いノードは、製品を含むコンポーネントまたはアセンブリに関する意味のみを表してよく、より低レベルのノードは、特定のプロセスを実行するための詳細な命令をプロセッサ80に提供してよい。
【0051】2つのノードツリーが類似していない可能性があるため、ワークフローコントローラ70は、完了されるプロセスと、プロセスが完了される順序と、プロセスを完了するプロセッサ80iと、を確定してよい。ワークフローコントローラ70は、エージェント71iを使用して、たとえば、プロセスを完了するプロセッサの制御能力、プロセッサ間の移送距離、プロセッサの負荷能力およびジョブ要求における時間制約等の要素を考慮して、実際のワークフローを確定してよい。エージェント71は、プロセッサ80iによる後続するリソースの生産および消費を伴う逐次処理と、複数のプロセッサ80iによる同時のリソースの消費および生産を伴うオーバラップ処理と、プロセッサ80間のリソースの共有を伴う並列処理と、リソースを展開するための往復処理方式を伴う反復処理と、を使用してプロセス全体を定義してよい。
【0052】プロセッサ80iのうちのいずれを特定のジョブ要求を完了するために割当てるべきか確定する際、ワークフローコントローラ70は、サービスセンタ40に連結されているプロセッサ80iをポーリングしてよい。上述したように、プロセッサ80iは、サービスバス41に直接連結されてよく、あるいは、たとえばインターネット等の他の通信バスを通して間接的に連結されてよい。ポーリングは、ジョブチケット61がジョブチケットサービス60によって作成される度に発生してよい。代替的に、ポーリングおよび対応する情報収集は、定期的に発生してよく、ワークフローコントローラ70は、プロセッサ80iに関連する情報を格納してよい。
【0053】ポーリングに対する代替例として、サービスセンタ40に連結されたプロセッサ80iがジョブチケットサービス60を監視してよい。ジョブチケットサービス60は、たとえば、掲示板方式で、処理することができるジョブチケットに関する通知を定期的に登録(post)してよい。そして、プロセッサ80iは、ジョブチケット通知で定義されるタスクおよびプロセスに対しビッドを提出してよい。実施形態では、ビッドはデジタル署名されてよい。ワークフローコントローラ70かまたは別個のオプションのビディングサービス90は、ビッドを検討し、ジョブチケット通知で定義されるタスクおよびプロセスを完了するために、いずれの単一のプロセッサ80またはプロセッサ80iの組合せが最も適しているかを確定してよい。ワークフローコントローラ70は、ビッドを提出しているプロセッサ80のみがそこに含まれるビッド情報を検討することができるように、ビッドに対するアクセスを制御してよい。
【0054】サービスセンタ40は、セキュリティを提供するいくつかの機能とジョブチケット61に対するアクセスを制御するいくつかの機能とを有してよい。上述したように、ジョブチケットサービス60は、ブランチロッキングの提供を含んでよい。さらに、プロセッサ80に対し権限付与および認証を行い、ジョブ要求32の完了中に権限および認証を維持するように、サーバが使用されてよい。認証サーバ94は、プロセッサ80から認証情報を受取り、権限付与サーバ92は、その情報を権限チェック機能に対して使用する。プロセッサ80の権限またはアクセス権は、ジョブチケット61の一部として保持されてよい。サーバ92および94は、ハードウェア機器であってよいが、同じハードウェアプラットフォームに存在する必要はなく、緊密に連結される必要はない。代替的に、サーバ92および94の機能は、たとえばワークフローコントローラ70等、サービスセンタ40のコンポーネントのうちの1つに格納されたプログラミングにおいて実行されてよい。上述した機能を使用して、サービスセンタ40は、プロセッサ80に関する信頼された認証情報を権限付与サーバ92に提供してよく、その後権限付与サーバ92は、その権限チェック機能を実行する。
【0055】ジョブチケット61は、業界標準公開鍵暗号化メッセージダイジェスト(MD)署名によって署名されてよく、公開鍵暗号化システムによって保護されてよい。このため、公開鍵を有するいかなるユーザも、認証サーバ94と通信する必要なくジョブチケット61を検証することができる。これら機能により、分散サーバアプリケーション間の通信が低減する。また、それら機能により、サービスセンタ40と通信することなく、セキュリティを維持しながら、ジョブチケット61が1つのプロセッサ80から他のプロセッサ80に渡されることが可能となる。
【0056】代替実施形態では、ジョブチケット61は、サービスセンタ40インフラストラクチャ内の制御されたアクセスを可能にする、認証/アクセスデータを保持する。リソースは、パスワードおよび他の機構によって保護されてよい。ジョブチケット61へのアクセスは、同様に保護されてよい。さらに、アクセス権限を有するプロセッサ80iは、かかるアクセス権限が、ジョブチケットにおいてプロセッサをリスト化することによって発動されるようにしてよい。リスト化は、たとえば、プロセッサ80iのネットワークアドレスを記録することによって行われてよい。ネットワークアドレスは、ジョブチケット61に記録されたビッド情報に組込まれてよい。
【0057】上記説明はワークフローコントローラ70による展開に言及しているが、ワークフロー全体を展開してジョブ要求32を完了するように、ネットワーク20の他のコンポーネントが使用されてよい。たとえば、ワークフロー全体を展開するために、ジョブチケットサービス60が使用されてよい。
【0058】上述したように、サービスセンタ40に連結されたプロセッサ80iからビッド情報を受取るために、ビディングサービス90が使用されてよい。プロセッサ80iは、サービスセンタ40におけるジョブチケット通知の登録(posting)に応答してビッドを提出する。実施形態では、ジョブチケット通知は、サービスセンタ40に格納される別個のオブジェクトである。他の実施形態では、ジョブチケット61自体が通知機能を提供する。ワークフローコントローラ70は、ジョブ要求32の受取り後にジョブチケット通知を登録してよい。ビディングサービス90がビッドを受取る場合でもワークフローコントローラ70がビッドを受取る場合でも、ビッド評価および選択プロセスは同じであってよい。
【0059】ワークフローコントローラ70によって登録されるジョブチケット通知は、ジョブ要求32を完了するために完了されなければならない特定のタスクまたはプロセス(ブランチ)を含んでよい。単純なジョブ要求32はブランチを1つだけ有してよい。図2に示すジョブ要求等のより複雑なジョブ要求32(すなわち、パンフレットを印刷する)は、多くのブランチを有してよい。さらに、いくつかのブランチは、特定の順序でのみ完了することができるように相互に関係付けられてよく、他のブランチは、並列にかまたはオーバラップして完了することができる。この相互関係は、しばしば、1つのブランチが1つまたは複数の他のブランチの入力リソースである出力リソースをもたらす結果であってよい。ジョブチケット通知は、プロセッサ80iがブランチの完了に対してビッドすることができるために十分詳細に、特定のブランチとそれらの相互関係との記述を含んでよい。ジョブチケット通知は、サービスセンタ40において、プロセッサ80iがビッドを送出することができる指定された時間にわたって存続してよい。その時間は、設定値(たとえば、1時間)であってよく、あるいは、ジョブ要求32で指定される完了デッドラインに基づいてもよい。
【0060】ビディングサービス90は、設定基準に基づいてプロセッサ80からビッド91を選択してよい。たとえば、ジョブ要求32は、最低性能要件(たとえば、最大コストおよび完了デッドライン)を指定してよい。ビディングサービス90は、最低性能要件を満たさないいかなるビッドをも拒絶してよい。ワークフローコントローラ70が複数のブランチを確立した場合、かかるブランチの各々は、最低性能要件を有してよい。ブランチ特定の性能要件は、ジョブチケット61に対する全性能要件に基づいてワークフローコントローラ70によって確立されてよい。特定のブランチに対してビッドするプロセッサ80は、最低性能要件を満たさなかった場合ビディングサービス90によって拒絶されてよい。
【0061】クライアント31がいかなる最低性能要件も指定しない場合、ビディングサービス90は、基準の標準セット(たとえば、業界標準)を適用してよい。さらに、ビッドは、出力リソースをもたらすいかなる要件をも満たさなければならない。このように、間違って作成されたか、そうでなくとも拒絶される可能性のあるビッドを排除することができる。たとえば、パンフレットの内部ページを印刷するためのビッドは、1年完了日を指示するかもしれない。かかるビッドは、クライアント31からいかなる性能要件も指定されていない場合であっても拒絶されてよい。
【0062】性能要件を提出することに加えて、クライアント31は、ビッドを評価する評価アルゴリズムを指定してよい。たとえば、クライアント31は、コストが他のあらゆる性能要件の2倍に重み付けされるように指定してよい。
【0063】クライアント指定の評価アルゴリズムが無い場合、ビディングサービス90は、ワークフローの各ブランチに対してビッドをランク付けするために標準評価アルゴリズムを適用してよい。評価アルゴリズムは、重み付け基準を適用してよく、あるいはデフォルトルールを適用してよい。たとえば、ビッドは最大スコアに基づいてランク付けされてよく、その場合、最大より低いコスト推定に対しおよび最大より少ない完了時間に対しポイントが与えられる。評価アルゴリズムが適用されると、ビディングサービス90は、各ブランチに対しビッドをランク付けする。1つのプロセッサ80のみが当該プロセスに耐える場合、そのプロセッサ80は、自動的に選択されブランチに割当てられてよい。複数のプロセッサ80が生き残る場合、ビディングサービス90は、ワークフローコントローラ70に対してかかるプロセッサ80iのリストを提供してよく、その後ワークフローコントローラ70は、ブランチに割当てられるプロセッサ80を選択する。代替的に、そのリストがクライアント31に提供されてよく、クライアント31が、ワークフローで定義されるタスクを完了するプロセッサ80を選択してよい。
【0064】ワークフローコントローラ70は、落札(winning)ビッドを対応するブランチと関連付けてよく、ジョブチケット61と共にビッド情報を格納してよい。格納されたビッド情報は、権限付与サーバ92と認証サーバ94とに対してジョブチケットブランチかまたはジョブチケット61全体へのアクセスを許可することを可能にする識別情報を含んでよい。ビッド情報がジョブチケット61と共に格納されるため、プロセッサ80は、ジョブチケットサービス60と直接通信する必要なくアクセス権限が付与されたブランチにアクセスすることができる。この機能により、ジョブチケット61は、1つのプロセッサ80から他のプロセッサ80に渡されることが可能になり、それによって処理時間と効率とが向上する。
【0065】実施形態では、ワークフローコントローラ70は、ジョブチケット61の制御データにアクセスすることにより、いずれのプロセッサ80iがジョブチケットにおいて識別された特定のタスクに割当てられるべきであるかを確定する。また、ワークフローコントローラ70は、いずれのプロセッサ80が制御データで指定される基準を満たすことができるかを指定してよく、フロントエンドサービス30を通してかかるプロセッサ80のリストをクライアントに提供してよい。そして、クライアント31は、リストからプロセッサ80を選択してよい。
【0066】実施形態において、ジョブチケットサービスは、たとえばCD−ROM等の機械読取り可能装置に記録されるプログラミング命令のシーケンスとして実現されてよい。そして、機械読取り可能装置は、ジョブチケットサービスの機能を実行するプログラミングステップのシーケンスを実行するコンピュータプロセッサによって読出される。
【0067】図5Aは、例示的なジョブチケット61を示す。ジョブチケット61は、2つの部分を含んでよい。第1の部分は、フレームワーク62と任意のクライアントエクステンション64とを含む。フレームワーク62は、ジョブチケット61において定義されるタスクを制御するために必要な情報、ファイルおよびプログラミングを含む。クライアントエクステンション64は、特定のクライアント(マシン)とマシンのユーザとに関連する情報を含んでよい。第2の部分は、権限のないアクセスからジョブチケット61を保護するセキュリティモジュール67を含む。
【0068】フレームワーク62は、ジョブ識別(ID)63と、サービスID65と、タスク部68と、制御データ部69と、を含んでよい。ジョブID63は、特定のジョブすなわちジョブストア50に格納される内容51への参照を含む。また、ジョブID63は、内容51を格納するために使用される特定のジョブストア50への参照を含む。ジョブチケット61への参照を取得するエンティティは、ジョブID63を使用して対応する内容51にアクセスすることができる。このため、図3に示すネットワーク20は、複数のジョブストア50を含んでよく、ジョブID63は、ジョブチケット61を特定のジョブストア50に相関させるために使用されてよい。サービスID65は、ジョブチケット61を格納する特定のジョブチケットサービス60を識別する。たとえば、ネットワーク20は、複数のジョブチケットサービス60(図3には図示せず)を含んでよい。サービスID65は、ジョブチケット61を適当なジョブチケットサービス60に相関させるために使用される。
【0069】タスク部68(図5B)は、ブランチ定義と、ブランチの完了を制御するために必要な他の情報と、を含んでよい。タスク部68は、各ブランチまたはノードツリーのノードがタスク部の1つまたは複数のブランチ66iによって表されるように構成されてよい。この実施形態では、ノードツリーの各ノード(たとえば、図2のノードツリー10)には、記述95、リソース96、ロック/アンロックフラグ97およびセキュリティ機能99を関連付けることができる。このように、ジョブチケット61は、階層データベース構造を反映する。
【0070】制御データ部69は、ジョブチケット61によって指定されるタスクを完了するための特定の命令、パラメータおよび基準を含む。制御データ部69の制御データもまた、ノードツリーの各ノードに関連付けられてよい。
【0071】セキュリティモジュール67は、特定のジョブチケットへのアクセスを制御する。セキュリティモジュール67は、たとえば公開/秘密鍵インフラストラクチャを含む標準暗号化およびアクセス技術を使用して実現されてよい。
【0072】クライアントエクステンション64は、ユーザ年齢、クレジットカード番号および郵便番号等、「カスタム」情報を含んでよい。クライアントエクステンション64に提供される情報は、公開鍵署名または同様の機能を使用することによって保護されてよい。このため、すべてのクライアントエクステンション情報は、自動的にメッセージダイジェストプロトコル(Message Digest Protocol(MDP))に含まれ、ジョブチケット61の署名に影響する。上述したジョブチケットアーキテクチャによって、IPスプーフィング、時間制御されたセッション、ジョブチケット変更、変動する権限付与レベルおよびクライアント依存の永久的データ格納を含む多くのインターネット関連のセキュリティ問題が対処される。
【0073】図5Aに示すジョブチケット61は、ジョブストア50における特定の内容51を参照するために使用されてよい。代替的に、特定の内容51を参照するために複数のジョブチケット61が使用されてよく、あるいは、複数の内容51を参照するために1つのジョブチケット61が使用されてよい。このため、たとえば、1つのジョブチケット61が、各々が異なる内容51を有する同様のドキュメントに対して完了される繰返し型の印刷タスクを指定してよい。
【0074】図3に示すネットワーク20と、図5Aに示す対応するジョブチケットとを使用して、クライアント31は、多くの異なる電子サービスを要求し完了することができる。たとえば、クライアント31は、電子メールアプリケーションとしてネットワーク20を使用してよい。
【0075】図5Bは、タスク部68を詳細に示す。タスク部68は、そのブランチの処理に関連する情報を含む1つまたは複数のブランチ記述子66を含んでよい。記述セグメント95は、各ブランチに対して完了されるタスクを定義してよい。代替的に、記述セグメント95は、ブランチ記述を含むファイルに対するリンクまたはハンドルを提供してよい。リソースセグメント96は、ブランチに対して定義されるタスクに関連する入力および出力リソースをリスト化する。ロック/アンロックフラグセグメント97は、フラグが、ブランチをロックおよびアンロックするように設定されるようにする。ビッド情報セグメント98は、たとえばビディングサービス90によって収集されるビッド情報を含む。ビッド情報98は、ブランチへのアクセス権限が付与されたプロセッサのIPアドレス等の詳細な情報と、推定された性能情報(たとえば、推定されたコスト、引渡し時間)と、他の情報と、を含んでよい。代替的に、ビッド情報98は、詳細なビッド情報を含む他のファイルへのリンクを含んでよい。セキュリティセグメント99は、権限付与されたセキュリティレベルを示してよく、公開/秘密鍵インフラストラクチャの一部として使用されてよい。セキュリティ機能は、1つのプロセッサ80が他のいかなるプロセッサ80iからのビッド情報にもアクセスできなくできる。
【0076】図5Cは、制御データ部69の実施形態を示す。制御データ部69は、インターネットプロトコル(IP)アドレス等のマシンアドレスであってよいクライアントアドレスを含む。チケット61のアクティブステータスを終了させるために、満了日/時セグメントが使用されてよい。チケットは、終了すると、ジョブチケットサービス60から削除されてよく、対応する内容51は参照されなくてよい。この機能は、陳腐化したデータを排除し他のジョブ要求32(図7参照)のためにリソースを解放する助けとなる。特に、この機能により、特定のジョブ内容51は複数のジョブチケット61と共に使用可能とする。最後に、制御データ69は、たとえば、引渡しのコスト、保証、必要な資材、量に基づく値引きおよび他の要件等、特定の性能要件を含んでよい。
【0077】XMLオブジェクトとしてのジョブチケットを使用することにより、クライアントは、データベースを定義し、ジョブチケットサービス60およびジョブストア50を通してデータを格納することができる。データベースは、コンタクトリスト、アドレスおよび他のパーソナルデータを保持するために使用されてよい。また、データベースは、他のあらゆる汎用データを格納するために使用されてもよい。そして、データベースは、プロセッサ80iによって提供される種々の電子サービスと共に使用することができる。たとえば、電子メールサービスを提供する電子メールプロセッサ80は、電子メールメッセージを送信し、電子ファイルを転送し、またはチャットルームを確立するパーソナルコンタクトリストと共に使用されてよい。電子メールプロセッサ80は、所定の間隔でコンタクトリストにアクセスすることにより、電子メールアドレスの選択されたグループに電子メールメッセージを送信してよい。さらに、サービスセンタ40が、通信ネットワーク35に連結されたプロセッサ80に単一ポータルを提供するため、クライアント31は、データベース構造またはプロセッサ80の処理要件のいかなる知識も有する必要がない。
【0078】電子メールサービスに対する汎用XMLデータベースの特定のアプリケーションにおいて、クライアント31は、汎用データベースとして、電子メールコンタクトのリストを確立してよい。そして、コンタクトデータベースは、内容ファイル51としてジョブストア50に格納されてよい。対応するジョブチケット61は、ジョブチケットサービス60に格納されてよい。ジョブチケット61は、サービスセンタ40を通して電子メールを送受信するために必要な制御データを含む。さらに、ジョブチケット61は、内容ファイル51のデータに対するポインタとしての役割を果たす。特に、ジョブチケット61は、内容ファイル51に格納される他のデータに関連するXMLデータを格納してよい。
【0079】代替的に、ジョブチケット61は、コンタクトデータを格納してよい。この代替例では、ジョブチケット61が、コンタクトデータを含むように拡張することができる語彙を含み、コンタクトデータの各コンタクトのプロパティを含むようにその語彙をさらに拡張することができる、という事実を利用する。たとえば、ジョブチケット61は、コンタクトがビジネスコンタクトまたはパーソナルコンタクトであるということを指定してよい。また、コンタクトデータベース内のコンタクトが携帯電話、固定電話、ファクシミリ機および電子メールアドレスを使用するか否か等の他のプロパティが含まれてもよい。
【0080】また、ジョブチケット61の使用により、コンタクトデータベースの解析、探索および更新が可能になる。たとえば、クライアント31は、コンタクトデータベースにおいて、ファーストネームがジョーであるすべての人の電話番号を探索したい場合がある。この探索機能はジョブチケット61に含まれ、この機能によって、ジョブチケットサービス60が、コンタクトデータベースにおいてファーストネームがジョーであるすべてのエントリの電話番号のリストをクライアントに提供することができる。すなわち、コンタクトデータベースは、ジョーのプロパティを有するエントリを含み、ジョブチケットサービスは、コンタクトデータベースにおいてこのプロパティを探索することができ、クライアント31にそれらのエントリのリストを返すことができる。
【0081】また、ジョブチケット61のプロパティ機能により、ジョブチケットサービス60は、クライアント31によって望まれる特定のタスクを制御するか、またはクライアントに対し所望のタスクを完了することができないということを知らせることも可能である。コンタクトデータベースの実施例において、クライアント31は、コンタクトリストにおける特定の郵便番号を有するすべてのエントリに対し、ファクシミリ送信を行いたい場合がある。ジョブチケットサービス60は、郵便番号を捜しながら、プロパティによりコンタクトデータベースを探索することができる。また、ジョブチケットサービス60は、コンタクトデータベースを探索することにより、ファクシミリ機を有していないエントリがあるか否かを判断することができる。ファクシミリ機を有していないエントリに対し、ジョブチケットサービス60は、ファクシミリ送信が不可能であったことをクライアント31に通知するメッセージを、クライアント31に返信するために作成することができる。この機能を使用することにより、クライアント31は、ファクシミリ送信の目当ての受信者に関して何も知っている必要はない。
【0082】電子メールサービスの実施例に戻ると、クライアント31において、インターネットを使用して電子メールメッセージをコンタクトデータベースの1つまたは複数のコンタクトに送信するために、電子メールアプリケーションが起動されてよい。しかしながら、クライアント31は、いずれのインターネットサービスプロバイダにも加入する必要はない。代りに、サービスセンタ40が、電子メールメッセージを送信するというクライアントのニーズに、いずれのプロセッサ80が最も適しているかを判断する。すなわち、サービスセンタ40は、選択された宛先アドレスに電子メールメッセージを送信するために電子メールサービスプロバイダ(プロセッサ80)を選択してよい。さらに、サービスセンタ40は、コンタクトデータベースに維持される情報(すなわち、ジョブストア50内の内容51)に基づいて、宛先アドレスのユーザによっていずれの配信オプションが望まれるかを判断してよい。たとえば、宛先アドレスユーザは、すべての電子メールメッセージが電子メールボックスに送信されること、または電子メールメッセージが送信された時に警報が与えられることを望む場合がある。これらの配信機能は、コンタクトデータベースに格納されてよい。代替的に、配信機能は、ジョブストア50内の別個のデータベース(内容ファイル51)に格納されてよく、サービスセンタは、電子メールメッセージの配信方法を確定する時にこの別個のデータベースから情報を検索してよい。特に、別個のデータベースは、種々のユーザを、ユーザのインターネットアドレスと共に含んでよい。サービスセンタ40は、送信される電子メールに備わるインターネットアドレスを別個のデータベースのインターネットアドレスと比較することにより、当該アドレスの所望の配信オプションを確定することができる。配信オプションを確定するこのプロセスは、電子メールメッセージを発したクライアント31に対して透過的である。クライアント31が知る必要があるのは、コンタクト情報(たとえば、インターネットアドレス)のみである。
【0083】クライアント31は、ジョブチケットサービス60を使用して、電子メールサービスに関連する多数の性能機能を指定してよい。たとえば、クライアント31は、サービスセンタが指定された数の配信試行を行うよう望み、配信が行われない場合は、クライアント31に対し電子メールメッセージの非配信を示す戻りメッセージを送信するよう望む場合がある。
【0084】上述したように、ジョブチケット61は、サービスセンタ40の他のコンポーネントと共に、XMLデータベース等、永続的な汎用オブジェクト指向データ構造を作成するために使用されてよい。この目的のためのジョブチケット61の使用の実施例を図5Dに示す。ジョブチケット61は、XMLデータベースかまたは他の何らかの汎用データベースの形式であってよい、コンタクトリスト84を含む。コンタクトリスト84は、ビジネス85およびパーソナル86使用のためのエントリを有する構造を含んでよい。ビジネス85およびパーソナル86コンタクト構造は、示すように、個人87のエントリを含んでよい。上述したように、エントリ87の各々は、特定のプロパティを有してよい。さらにまたは代替的に、エントリ87の各々は、個人に関するさらなる情報およびプロパティを提供する他のデータベースへのリンクを含んでよい。
【0085】XMLデータベースとしてのジョブチケット61の使用を、電子メールおよびメッセージサービスに関連して説明したが、ジョブチケット61はそのように限定されない。データベースに格納されることが可能であるあらゆるデータに対し、ジョブチケット61を使用してアクセスおよび制御を行ってよい。
【0086】上述したおよび図5Aないし図5Dに示す機能は、特定のノードまたはブランチに関連するすべてのデータがそのノードまたはブランチと共に配置される、ジョブチケット61の他の実施形態において同様に行われてよい。図2に示すノードツリー10の例を使用することにより、各ノード(ブランチ)は、リソース、権限付与されたプロセッサ80i、ロック/アンロックフラグ、ビッド情報、ブランチ記述および他の情報等の詳細な情報および特徴を有してよい。
【0087】図6は、ジョブチケットサービス60の機能を示す図である。ジョブチケットサービス60の主な機能は、ジョブチケット61iを格納すること(73)と、クライアント31等のユーザとプロセッサ80iとに対しジョブチケット61iに対するアクセスを提供すること(75)と、である。これら格納およびアクセス機能を達成するために、ジョブチケットサービス60は、ジョブチケット参照72とジョブリソース参照74とを作成してよい。また、ジョブチケットサービス60は、ジョブ内容アクセス76を制御し、プロセスがプロセッサ80iによって完了され報告されるとジョブチケット61iを更新し(77)、ジョブチケット61iを完了し、特定のジョブチケット61に対してすべてのプロセスが完了した時に報告し(78)、クライアント31がジョブチケット61において指定されるタスクの完了を承認するのを可能にする承認プロセス79を提供する。
【0088】ジョブチケット参照72は、対応するジョブチケット61に対する特定の参照を含む。ジョブチケット参照72は、ジョブチケットサービス60により、1つまたは複数のプロセッサとクライアントとがジョブチケット61にアクセスすることを可能にするために使用されてもよい。すなわち、ジョブチケットサービス60は、ジョブチケット61をプロセッサ80に渡す代りに、ジョブチケット参照72を渡す。ジョブチケット参照72を用いて、プロセッサ80は、1つまたは複数のプロセスを完了することができるようにジョブチケット61のすべてかまたは一部にアクセスしてよい。従来のジョブチケットサービスと異なり、ジョブチケットサービス60は、ジョブチケットを記憶域に保持し73、ユーザ(クライアント31iおよびプロセッサ80i)に対し単にジョブチケット61へのアクセスを許可する。この機能により、複数のプロセッサ80が、ジョブチケット61に関連する特定のジョブ要求32に対し同時にプロセスを完了することができる。
【0089】また、ジョブチケットサービス60は、リソース参照74を作成してよく、ジョブチケット参照72と同様の方法で、プロセッサ80iおよびクライアント31iに対してリソース参照74を提供してよい。図2と共に上述したように、リソースは、物理的装置および資材を含んでよく、デジタルファイルを含んでよい。リソース参照74を使用することにより、ジョブチケット61に含まれるデータを簡略化することができる。
【0090】代替的に、リソース参照74に含まれる情報は、ジョブチケット61に含まれてよく、あるいは、クライアント31iおよびプロセッサ80iによってアクセスされる他のファイルに含まれてよい。
【0091】図7は、ジョブチケットサービス60の選択された機能の動作を示す図である。図7に示すように、ジョブチケットサービス60は、図2に示され上述したもの等のプログラミングオブジェクトであってよい、ジョブチケット611を含む。ジョブチケット611は、クライアント311によってジョブチケットサービス60に提供されるように示されている。クライアント311は、ジョブチケット611を表すデジタル情報をジョブチケットサービス60に送信することができるネットワークコンピュータまたは同様の装置であってよい。ジョブチケット61iがジョブチケットサービス60に到達することを確実にするために、ジョブチケット611は、図5Bに示すサービスID65等、ジョブチケットサービス60に対する参照を含んでよい。サービスID65は、ジョブチケットサービス60のネットワークアドレスを含んでよい。たとえば、サービスID65は、ジョブチケットサービス60がインターネットェブサイトである場合、ユニバーサルリソースロケータ(URL)を含んでよい。
【0092】図7にはまた、クライアント312とプロセッサ801〜80Nとを示す。プロセッサ801〜80Nは、ネットワークプリンタ等のネットワークリソースと、インターネットェブサイト等の電子商取引エンティティと、サービスバス41を使用してジョブチケットサービス60に連結されるローカル印刷ショップ等の「従来型の(brick and mortar)」エンティティと、を含んでよい。
【0093】クライアント31は、ジョブ要求32(内容51およびジョブチケットデータ)を生成する。フロントエンドサービス30(図7には図示せず)とサービスバス41とを使用して、クライアント311は、ジョブチケットサービス60にジョブチケットデータを送信しジョブストア50に内容51(図7には図示せず)を送信する。ジョブチケットサービス60は、ジョブチケットデータをワークフローコントローラ70に渡し、ワークフローコントローラ70はジョブチケット61を作成する。内容511とジョブチケット611とは、ジョブID63によって関連付けられる。ジョブID63はまた、ジョブストア50の識別と、内容511が格納されるジョブストア50内の位置と、も含む。代替実施形態では、内容511は、クライアント311において格納されてよく、その後、サービスバス41とフロントエンドサービス30とを通して他のユーザによってアクセスされてよい。
【0094】ジョブチケット611は、ジョブ要求32を終了するために完了されなければならないプロセスを指定する。上述したように、図2は、内部ページとカバーとを含むパンフレットを印刷するために要求されるプロセスを示す。かかるジョブ要求を完了するためかまたは最も費用効率のよいおよび/またはタイムリな方法でジョブ要求を完了するために、複数のプロセッサ80iが要求されてよい。ワークフローコントローラ70(図7には図示せず)は、プロセッサ801〜80Nのいずれが特定のプロセスを完了すべきか、および必要な場合はかかるプロセスが完了されるべき順序を確定することができる。ワークフローコントローラ70は、種々のプロセッサ80iをポーリングすることにより、ジョブ要求を完了するためにいずれを使用することができるかを確定してよい。そして、ワークフローコントローラ70は、選択されたプロセッサ80iに対し、ジョブ要求がジョブチケットサービス60内で登録されたことを通知してよい。
【0095】受取った各ジョブチケット61iに対し、ジョブチケットサービス60は、ジョブチケット61iに対する参照72iを作成する。プロセッサ801は、1つまたは複数のプロセスを完了するためにジョブチケット61に対するアクセスを要求してよい。これに応じて、ジョブチケットサービス60は、プロセッサ801に対しジョブチケット参照721を提供する。そして、ジョブチケット参照721は、ジョブチケット611に対するインデクスとして使用される。また、ジョブチケット参照721は、プロセッサ802等の他のプロセッサと、クライアント312等の他のクライアントと、に対して提供されてもよい。そして、プロセッサ802とクライアント312とは、プロセッサ801がジョブチケット611にアクセスする時と同時にジョブチケット611にアクセスしてよい。この同時アクセスにより、異なるプロセスが同時に完了することができる。図2に示す実施例では、プロセッサ801は、内部ページに対するいくつかまたはすべてのプロセスを完了してよく、プロセッサ802は、カバーに対するプロセスを完了してよい。
【0096】図8は、ジョブチケットサービス60の制御機能のアプリケーション例を示すブロック図である。ジョブチケット611は、ジョブチケットID63によってジョブ内容511への参照を付与され、ジョブチケット611とジョブ内容511とに関連する情報は、サービスバス41を介して渡される。プロセッサ80iは、サービスバス41を使用して、ジョブ内容511とジョブチケット611とにアクセスすることができる。例示する実施例では、ジョブチケット611は、図2において概略したプロセスを使用してパンフレットを印刷するためにジョブ要求32を参照する。プロセッサ801は、ワークフロープロセッサ70により、パンフレットの内部ページを製作するよう指定され、プロセッサ802は、パンフレットカバーを製作するように指定される。プロセッサ801は、ジョブチケットアクセス要求をジョブチケットサービス60に渡す。アクセス要求は、プロセッサ801がジョブチケット611と対応する内容511またはジョブとにアクセスすることができるようにするセキュリティ情報を含んでよい。これに応じて、ジョブチケットサービス60は、プロセッサ801がジョブチケット611にアクセスするために使用するジョブチケット参照621を提供する。プロセッサ801は、ジョブチケット611の情報を使用して、ジョブストア50に格納されている内容511にアクセスしてよい。プロセッサ801は、内部ページのみを作成するため、ジョブチケット611に含まれるすべての情報にアクセスする必要はない。さらに、ジョブチケット611がジョブチケットサービス60に残っているため、プロセッサ802等の他のエンティティがジョブチケットにアクセスし続けることができる。
【0097】プロセッサ801は、種々のプロセスを完了すると、内容511とジョブチケット611とを更新してよい。このため、ジョブチケット611は、ジョブ要求32の最新ステータスを反映してよい。ステータス報告は、ノードツリー10のノードが完了する時、暫定デッドラインが完了する時、プロセスを完了するために他のプロセッサが使用されてよい時、およびすべての処理が完了する時を示してよい。ステータス報告は、たとえば、ワークフローコントローラ70によって使用されるデジタルファイルに含まれてよい。また、ステータス報告は、コンピュータ表示画面上のポップアップウィンドウ等、人間が可読なフォーマットで含まれてもよい。プロセッサ801は、ジョブチケット参照721を受取ってよく、ジョブチケット参照721をジョブチケットサービス60に戻して、すべてのスケジュールされたプロセスを完了してよい。また、プロセッサ801は、ジョブチケット参照721のコピーをプロセッサ802に送信することにより、プロセッサ802がジョブチケット611と内容511とにアクセスしパンフレットカバーを製作することができるようにしてよい。
【0098】図9は、ジョブチケットサービス60の動作100を示すフローチャートである。動作100は、図2に示す内部ページノードを完了することに基づく。動作100は、少なくとも部分的に、ワークフローコントローラ70かまたはある等価の装置の制御の下で行われてよい。動作100は、ジョブ要求32(ジョブチケットデータおよび内容)がサービスセンタ40に渡され、ジョブチケットサービス60が作成されたと仮定する。動作100は、スタートブロック101で開始する。プロセッサの検討および割当てブロック105では、ワークフローコントローラ70は、いずれのプロセッサ80iがジョブを完了することができそのために利用可能であるかを判断する。ワークフローコントローラ70かまたはオプションのビディングサービス90は、ポーリング機能またはビディング機能を使用してその判断を行ってよい。複数のプロセッサ80が利用可能でありジョブチケット61の要件を満足させることができる場合、ワークフローコントローラ70は、ジョブに1つの特定のプロセッサ80を割当ててよい。代替的に、ワークフローコントローラ70は、クライアント31にプロセッサ80iのリストを提供し、クライアント31が1つまたは複数のプロセッサ80iを選択することができるようにしてよい。
【0099】ジョブチケット要求のブロック110では、ジョブチケット61へのアクセス権限が付与されたプロセッサ80が、サービスバス41を使用してアクセス要求をジョブチケットサービス60に送信する。ブロック115において、ジョブチケットサービスは、プロセッサ80がジョブチケット61にアクセスしてよいことを検証する。アクセスは、たとえば、パスワード、識別、公開鍵/秘密鍵セキュリティシステムによって制御されてよい。ブロック115において、プロセッサ80がアクセスを拒絶された場合、ブロック120において、プロセッサおよび/またはクライアント31に対しエラー信号が送信されてよい。
【0100】ブロック115において、アクセス権限が付与された場合、ジョブチケットサービス60はブロック125においてプロセッサ80に対し、ジョブチケット61に対応するジョブチケット参照72のコピーを提供する。ジョブチケット参照72により、プロセッサ80は、いかなる時にもジョブチケットにアクセスすることができる。いかなる時にもジョブチケット61にアクセスすることにより、プロセッサ80は、他のプロセッサ80を含む他のエンティティによりジョブチケット61に対する変更がなされる度にジョブチケット61の更新されたバージョンを見ることができる。
【0101】ブロック130において、ジョブストア50が、ジョブチケット61によって参照されるジョブ内容51へのアクセスを提供する。内容51のうちプロセッサ80によって必要とされる可能性のある部分のみが、ジョブストア50によって提供されてよい。たとえば、プロセッサ80がパンフレットの内部ページを生成するのみである場合、ジョブストア50は、パンフレットカバーを製作するために必要な内容へのアクセスを提供しなくてよい。プロセッサ80は、ジョブチケット参照72と内容51とを受取った後、入力リソースを使用して1つまたは複数のタスクを実行することにより、暫定的かまたは最終的な出力リソースをもたらしてよい。ノードツリー10における各ノードの完了により、プロセッサ80は、ブロック135において、ジョブチケットサービス60に入力を提供することによってジョブチケット61の変更を可能にしてよい。プロセッサ80は、すべての必要なプロセスを完了すると、ブロック140において、ジョブチケットサービス60に対して、ジョブチケット61に対するあらゆる最終的な変更と共に、最終的なステータス報告を提供してよい。
【0102】ブロック145において、ジョブチケットサービス60とワークフローコントローラ70とは、いずれかの追加のタスクが要求されている可能性があるか否かを判断する。追加のタスクが要求される場合、ワークフローコントローラ70は、適当なプロセス80が割当てられることを確実にし、動作はブロック110に戻る。追加のプロセスが要求されていない場合、動作はブロック150に移動して終了する。
【0103】図10は、ワークフローを展開しプロセッサをワークフローに割当てるルーチン105を示すフローチャートである。プロセスは、ブロック200で開始する。ブロック205において、サービスセンタ40は、ジョブ要求32を受取る。ジョブ要求32は、性能要件、リソースおよび他のパラメータを指定してよく、内容51かまたは内容51へのリンクを含んでよい。ブロック210において、ワークフローコントローラ70は、ジョブ要求32において指定されるタスクを達成するワークフローを定義する。ワークフローは、図2に示すノードツリー10等のノードツリーによって表されてよい。
【0104】ブロック230において、ワークフローコントローラ70は、ジョブ要求32によって提供される情報と、ブロック210において生成されたワークフローと、適当なジョブチケットテンプレートと、を使用してジョブチケット61を生成する。そして、ジョブチケット61は、ジョブチケットサービス60に格納される。いかなる内容51も、ジョブストア50に格納されてよい。
【0105】ワークフローコントローラ70またはジョブチケットサービス60は、ジョブチケット通知かまたは他のオブジェクトを生成してよく、ブロック250において、外部のエンティティ(たとえば、プロセッサ80)が、ジョブチケット61かまたはジョブチケット61のブランチ66の完了時にビッドするために十分な情報を取得することができるように、サービスセンタ40において当該通知を登録してよい。代替の実施形態では、サービスセンタ40においてジョブチケット61が登録されてよい。ジョブチケット61が登録される場合、そのジョブチケット61は、ジョブチケットへのアクセスを制限するかまたはジョブチケット61の所定部分に対するアクセスを制限する機構を含んでよい。たとえば、クライアントエクステンション64は、プロセッサ80にとってアクセス可能でなくてよい。
【0106】サービスセンタ40は、ブロック270において特定のプロセッサ80からビッドを受取り、ブロック290においてそれらビッドを評価する。ブロック295において、サービスセンタ40は、ジョブ要求32を提出しているクライアント31が落札ビッドを選択することを意図しているか、またはサービスセンタ40が選択を行うかを判断する。クライアントが選択を行う場合、ブロック300において、サービスセンタ40は、クライアント31に対してビッド情報を提供する。そして、ブロック305において、サービスセンタ40は、クライアント31から選択肢を受取る。サービスセンタ40が選択を行う場合、ブロック310において、サービスセンタ40は、落札ビッドを選択する。ブロック315において、サービスセンタは、落札したプロセッサに通知する。また、サービスセンタは、ビッド情報を対応するジョブチケット61と共に格納してもよい。ブロック320において、ルーチン105は終了する。
【0107】図11は、ワークフローを定義するサブルーチン210を示すフローチャートである。サブルーチン210は、ブロック350で開始する。ブロック355において、ワークフローコントローラ70は、ワークフローが複数のブランチを含むか否かを判断する。ワークフローが複数のブランチを含む場合、ワークフローコントローラ70は、ブロック360においてブランチを定義する。ブロック365において、ワークフローコントローラ70は、リソースおよびプロセスが定義されるブランチを選択する。ブロック370において、ワークフローコントローラ70は、最初のプロセスまたはノードの入力リソースを定義する。ブロック375において、ワークフローコントローラ70は、最初のプロセスのために完了されるタスクを定義する。ブロック380において、ワークフローコントローラ70は、最初のプロセスの出力リソースを確定する。ブロック385において、ワークフローコントローラ70は、ワークフローまたはブランチに対し他のプロセスが要求されているか否かを判断する。追加のプロセスが要求されていない場合、ワークフローコントローラ70は、ブロック390において、他のブランチが定義されるべきであるか否かを判断する。他のブランチが定義されるべきである場合、ワークフローコントローラ70は、ブロック365において、他のブランチを選択し、サブルーチン210は継続する。他のブランチが定義されるべきではない場合、サブルーチン210はブロック395において終了する。ワークフロー定義の結果は、ジョブチケット61に組込まれてよい(図10、ブロック230参照)。
【0108】図12は、ジョブチケット通知またはジョブチケットを登録するサブルーチン250を示すフローチャートである。サブルーチン250は、ブロック400で開始する。ブロック405において、ワークフローコントローラ70は、ジョブチケット61に関連するワークフローが複数のブランチを含むか否かを判断する。ワークフローが複数のブランチを含まない場合、ワークフローコントローラは、ブロック410において、単一ブランチをリスト化しているジョブチケット通知を登録する。ワークフローが複数のブランチを含む場合、ワークフローコントローラ70は、ブロック420において、複数のブランチを含むジョブチケット通知を登録する。そして、サブルーチン250は終了する。
【0109】図13は、ビッドを評価するサブルーチン290を示すフローチャートである。サブルーチンはブロック440で開始する。ブロック445において、ビディングサービス90は、分析のために第1のビッドを選択する。ブロック450において、ビディングサービス90は、クライアント31が何らかの評価基準または要件を提供したか否かを判断する。クライアントが評価要件を提供しなかった場合、ビディングサービス90は、ブロック455において、選択されたビッドを、業界標準要件であってよい標準の最低性能要件のセットと比較する。ブロック460において、ビディングサービス90は、ビッドが最低性能要件を満たすか否かを判断する。ビッドが最低性能要件を満たさない場合、ブロック475において、ビッドは拒絶される。ビッドが拒絶された場合、ビディングサービス90は、ブロック495において、追加のビッドが提出されたか否かを判断する。追加のビッドが提出された場合、ビディングプロセッサ90はブロック445に戻り、評価のために次のビッドを選択する。
【0110】ブロック450において、クライアント31が性能要件を提供した場合、ビディングサービス90は、ブロック465において、選択されたビッドをクライアントが提供した性能要件と比較する。ブロック470において、ビディングサービス90は、選択されたビッドがクライアントが提供した性能要件の最低基準を満たすか否かを判断する。最低基準が満たされない場合、ブロック475において、ビディングサービス90はビッドを拒絶する。
【0111】ブロック470およびブロック460において、最低基準が満たされる場合、ビディングサービス90は、クライアント31が評価アルゴリズムを提供したか否かを判断する。クライアント31が評価アルゴリズムを提供しなかった場合、ビディングサービスは、ブロック485において、業界標準アルゴリズムであってよい標準評価アルゴリズムを適用する。クライアントが評価アルゴリズムを提供した場合、ビディングサービス90は、ブロック490において、クライアントが提供した評価アルゴリズムを適用する。そして、ビディングサービス90は、すべてのビッドの評価が出るまでアルゴリズムの結果を格納してよい。
【0112】ブロック495において、ビディングサービス90は、評価すべきビッドが残っているか否かを判断する。追加のビッドが残っている場合、サブルーチン290はブロック445に戻り、ビディングサービスは、評価のために次のビッドを選択する。ブロック495において、評価のために追加のビッドが残っていない場合、ビディングサービス90は、ブロック500においてビッドをランク付けする。そして、ブロック505においてサブルーチン290が終了する。
【0113】図14は、ジョブチケット61へのアクセスを提供するルーチン130を示すフローチャートである。ルーチン130は、ブロック510で開始する。ブロック515において、ジョブチケットサービス60は、プロセッサ80からジョブチケット参照72を受取り、ブロック520において、対応するジョブチケット61を検索する。
【0114】ブロック525において、ジョブチケットサービス60は、プロセッサ識別を、ジョブチケット61またはジョブチケット61のブランチ66においてリスト化されたプロセッサと比較する。ジョブチケットサービス60は、ブロック530において、選択されたブランチ66がロックされているか否かを判断する。選択されたブランチ66がロックされていない場合、ジョブチケットサービス60は、ブロック535において、選択されたブランチ66をプロセッサ80にコピーする。そして、ブロック550において、ジョブチケットサービス60は、選択されたブランチ66がロッキングを要求するか否かを判断する。選択されたブランチがロッキングを要求しない場合、ブロック560においてルーチン130は終了する。選択されたブランチ66がロッキングを要求する場合、ジョブチケットサービス60は、ブロック555において選択されたブランチ66をロックする。そして、ルーチン130は、ブロック560において終了する。
【0115】ブロック530において、選択されたブランチ66がロックされている場合、ジョブチケットサービス60は、ブロック540において、プロセッサ80が選択されたブランチ66の情報を変更する予定であるか否かを判断する。プロセッサ80が選択されたブランチ66を変更しない場合、ジョブチケットサービス60は、ブロック545においてエラーメッセージを提供してよい。選択されたブランチ66が変更される場合、ジョブチケットサービス60は、選択されたブランチ66をアンロックしてよい。
【0116】図15は、ジョブチケット61へのアクセスを許可する方法のフローチャートである。本方法は、図9に示すルーチン115の一部として実行してよい。本方法は、ブロック600で開始する。ブロック605において、認証サーバ94は、プロセッサ80から認証情報を受取り、プロセッサ80が所有するジョブチケット参照72に対応するジョブチケット61を検索する。プロセスのこの段階では、ジョブチケット61(公開鍵署名フィールド67を除く)は、2つの情報フィールド、すなわちフレームワーク62とクライアントエクステンション64とを含む。フレームワーク62は、上述したように、サービスIDと、クライアントIPアドレスと、満了日および時と、プロセッサ権限と、を含む。クライアントエクステンション64は、同様に上述したクレジットカード番号および郵便番号等の情報を含む。そして、ジョブチケット61の情報(公開鍵署名フィールド67を除く)は、たとえばオプションとして、たとえばMD5プロトコルを使用してハッシュされ、ブロック610において公開鍵暗号化システムにより暗号化され、ブロック615においてハッシュ番号を生成する。また、他のハッシングまたは暗号化技術が使用されてもよい。ハッシュ番号は、ジョブチケット61に含まれる特定の情報を表す。そして、ブロック615において生成されるハッシュ番号は、ブロック620において、標準公開鍵暗号化システムを使用して暗号化される。秘密鍵を用いてハッシュ番号を暗号化することにより、公開鍵を知らないユーザはいずれもジョブ情報を変更することができなくなる。ブロック625において、ジョブチケット61および暗号化されたハッシュ番号は、完了したジョブチケット61を生成するために連結される。このため、完了したジョブチケット61情報フィールドは、1)フレームワーク62と、2)クライアントエクステンション64と、3)公開鍵署名(暗号化されたハッシュ番号)67と、である。そして、本方法はブロック630において終了する。
【0117】例示した実施形態では、サービスセンタ40と、たとえばワークフローコントローラ70およびジョブチケットサービス60を含むそのサブコンポーネントと、は、システムレベル制御全体に対するメインまたは中央プロセッサ部を有する単一の専用集積回路(たとえば、ASIC)と、中央プロセッサ部の制御下で種々の異なる計算、機能および他のプロセスの実行に専用の別個の回路として実現されてよい。当業者は、サービスセンタ40が、複数の別個の専用またはプログラム可能な、集積または他の電気回路またはデバイス(たとえば、個別素子回路等のハードワイヤードの電子または論理回路あるいはPLD、PLAまたはPAL等のプログラム可能論理デバイス)を使用して実現されてもよい、ということを認めるであろう。また、サービスセンタ40は、適当にプログラムされた汎用コンピュータ、たとえばマイクロプロセッサ、マイクロコントローラまたは他のプロセッサデバイス(CPUまたはMPU)を、単体でかまたは1つまたは複数の周辺(たとえば、集積回路)データおよび信号処理デバイスと共に使用して実現されてもよい。一般的に、サービスセンタ40またはそのサブコンポーネントとして、有限状態機械が図9ないし図15に示すフローチャートを実現することができるあらゆるデバイスまたはデバイスのアセンブリを使用することができる。
【0118】本明細書で使用する用語および記述は、例示の目的のみに示されており、限定するものとして意味されていない。当業者は、多くの変形が、特許請求の範囲とそれらの等価物とにおいて画定される、本発明の趣旨および範囲内において可能であり、すべての用語が他に示されていない限りそれらの最も広い可能な意味で理解されるべきである、ということを認識するであろう。
【0119】本発明の様態を以下に例示する。
【0120】1.ジョブチケット(61)に対するアクセスを制御する装置であって、該ジョブチケットが、通信ネットワークに連結された1つまたは複数のプロセッサ(80)によって実行されるジョブ要求(32)に関連するものである装置であり、前記通信ネットワークに連結され、前記ジョブ要求に対応する、1つまたは複数のブランチ(66)を備えたワークフローを定義することができ、前記ジョブチケットを定義することができるワークフローコントローラ(70)と、前記ジョブチケットを格納することができるジョブチケットサービス(60)とを具備し、前記ジョブチケットは、前記1つまたは複数のブランチを指定するフレームワーク(62)を備え、前記ジョブチケットサービスは、ブランチがプロセッサ(80)によってアクセスされるとブランチをロックする装置。
【0121】2.ブランチは、ロック/アンロックフラグ(97)を備え、該ロック/アンロックフラグは、前記ブランチ(66)をロックするようにロックにセットされる上記1記載の装置。
【0122】3.前記ロック/アンロックフラグは、ブランチが変更されないように該ブランチをロックし、別のプロセッサ(80)は、読込み専用モードで前記ロックされたブランチにアクセス可能である上記2記載の装置。
【0123】4.前記ブランチ(66)にアクセスするプロセッサ(80)に対して提供されるアクセス鍵をさらに具備し、前記プロセッサは、前記ロックされたブランチをアンロックするために前記ジョブチケットサービスに前記アクセス鍵を提供する上記1記載の装置。
【0124】5.前記ジョブチケットサービス(60)は、鍵暗号化システムを備え、前記アクセス鍵は、前記鍵暗号化システムを使用して暗号化される上記4記載の装置。
【0125】6.前記ブランチ(66)にアクセスする前記プロセッサ(80)には、前記ブランチへのアクセス権限が付与され、かかる権限は、前記ジョブチケットに格納される上記1記載の装置。
【0126】7.前記ブランチに対応する内容(51)を格納するジョブストア(50)をさらに具備し、前記ブランチがアンロックされている時、前記プロセッサは前記内容にアクセスする上記1記載の装置。
【0127】8.ジョブチケット(61)のブランチ(66)をロックすることにより前記ジョブチケットへのアクセスを制御する方法であって、前記ジョブチケットが、電子ネットワークにおける1つまたは複数のプロセッサ(80)によって実行されるジョブに関連するものである方法であり、前記ジョブチケットのブランチを識別すること(360)と、プロセッサからブランチアクセス要求を受取ること(515)と、前記プロセッサに前記ブランチへのアクセスを提供すること(525)と、該ブランチをロックすること(555)とを含む方法。
【0128】9.前記ブランチをロックする前記ステップは、ロックフラグを設定することを含む上記8記載の方法。
【0129】10.前記ブランチをロックする前記ステップは、データテーブルにロックエントリを作成することを含む上記8記載の方法。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013