(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025078009
(43)【公開日】2025-05-19
(54)【発明の名称】プライバシーを維持しながら3次元オブジェクトファイルを処理する技術
(51)【国際特許分類】
G09C 1/00 20060101AFI20250512BHJP
B33Y 50/00 20150101ALI20250512BHJP
H04L 9/32 20060101ALI20250512BHJP
【FI】
G09C1/00 650Z
B33Y50/00
H04L9/32 200A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024175562
(22)【出願日】2024-10-07
(31)【優先権主張番号】18/501,892
(32)【優先日】2023-11-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】596170170
【氏名又は名称】ゼロックス コーポレイション
【氏名又は名称原語表記】XEROX CORPORATION
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100119013
【弁理士】
【氏名又は名称】山崎 一夫
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【弁理士】
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】シャンタヌ ラネ
(72)【発明者】
【氏名】アレハンドロ イー.ブリト
(72)【発明者】
【氏名】モラド ベハンディッシュ
(57)【要約】 (修正有)
【課題】プライバシーを保護する方式で3次元(3D)オブジェクトファイル又はオブジェクトモデルを処理する方法、システム及び記憶媒体を提供する。
【解決手段】方法は、リモートコンピューティングデバイスから、3D印刷可能オブジェクトの仕様を含む暗号化されたオブジェクトファイルを受信することと、暗号化されたオブジェクトファイルを処理して3D印刷可能オブジェクトの特性を識別する要求を受信することと、暗号化された比較ファイルを取得することと、暗号化されたオブジェクトファイル及び暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、特性に関する情報を含む暗号化された結果ファイルを生成することと、を含む。暗号化されたミンコフスキー和の計算は、暗号化されたオブジェクトファイルを復号することなく実行される。方法はまた、暗号化された結果ファイルをリモートコンピューティングデバイスに送信することを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プライバシーが保護される方式で3次元(3D)オブジェクトファイルを処理する方法であって、
リモートコンピューティングデバイスから、3D印刷可能オブジェクトの仕様を含む暗号化されたオブジェクトファイルを受信し、前記暗号化されたオブジェクトファイルを処理して前記3D印刷可能オブジェクトの特性を識別する要求を受信することと、
前記要求に応答して、
暗号化された比較ファイルを取得することと、
処理デバイスによって、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、前記特性に関する情報を含む暗号化された結果ファイルを生成することであって、前記暗号化されたミンコフスキー和を計算することが、前記暗号化されたオブジェクトファイルを復号することなく実行される、生成することと、
前記暗号化された結果ファイルを前記リモートコンピューティングデバイスに送信することと、
を含む、方法。
【請求項2】
前記暗号化されたミンコフスキー和を計算することは、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算することを含み、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された周波数領域表現である、請求項1に記載の方法。
【請求項3】
前記暗号化されたミンコフスキー和を計算することは、
前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算することと、
前記暗号化されたミンコフスキー和を空間領域表現に変換することであって、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された空間領域表現である、変換することと、
を含む、請求項1に記載の方法。
【請求項4】
前記暗号化されたミンコフスキー和を計算することは、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの空間領域要素ごとの和を計算することを含む、請求項1に記載の方法。
【請求項5】
前記暗号化された比較ファイルを取得することは、別のリモートコンピューティングデバイスから前記暗号化された比較ファイルを暗号化された形式で受信することを含む、請求項1に記載の方法。
【請求項6】
前記暗号化された比較ファイルを取得することは、
前記リモートコンピューティングデバイスから暗号鍵を受信することと、
別のリモートコンピューティングデバイスから暗号化されていない比較ファイルを受信することと、
前記暗号化されていない比較ファイルを前記暗号鍵を使用して暗号化して、前記暗号化された比較ファイルを生成することと、
を含む、
請求項1に記載の方法。
【請求項7】
前記暗号化された比較ファイルを取得することは、
前記リモートコンピューティングデバイスから暗号鍵及びファイル識別子を受信することと、
前記ファイル識別子に対応する暗号化されていない比較ファイルをローカルストレージデバイスから受信することと、
前記暗号化されていない比較ファイルを前記暗号鍵を使用して暗号化して、前記暗号化された比較ファイルを生成することと、
を含む、
請求項1に記載の方法。
【請求項8】
前記暗号化されたオブジェクトファイルは、オブジェクトモデルによって指定される3Dオブジェクトを表すボクセルの3Dアレイの暗号化された周波数領域表現又は空間領域表現である、請求項1に記載の方法。
【請求項9】
前記暗号化された比較ファイルは、最小印刷可能特徴を表すボクセルの暗号化された3Dアレイであり、前記特性は、前記最小印刷可能特徴よりも小さい前記3D印刷可能オブジェクトの特徴を識別する、請求項1に記載の方法。
【請求項10】
前記暗号化された比較ファイルは、ツールの仕様を表すボクセルの暗号化された3Dアレイであり、前記特性は、前記ツールによってアクセス可能な前記3D印刷可能オブジェクトの外部領域を識別する、請求項1に記載の方法。
【請求項11】
プライバシーが保護される方式で3次元(3D)オブジェクトファイルを処理するためのシステムであって、
メモリと、
前記メモリに動作可能に結合された処理デバイスであって、前記処理デバイスは、
リモートコンピューティングデバイスから、3D印刷可能オブジェクトの仕様を含む暗号化されたオブジェクトファイルを受信し、前記暗号化されたオブジェクトファイルを処理して前記3D印刷可能オブジェクトの特性を識別する要求を受信し、
前記要求に応答して、
暗号化された比較ファイルを取得し、
前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、前記特性に関する情報を含む暗号化された結果ファイルを生成し、前記暗号化されたミンコフスキー和は、前記暗号化されたオブジェクトファイルを復号することなく計算され、
前記暗号化された結果ファイルを前記リモートコンピューティングデバイスに送信する、
処理デバイスと、
を備える、システム。
【請求項12】
前記暗号化されたミンコフスキー和を計算するために、前記処理デバイスは、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算し、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された周波数領域表現である、請求項11に記載のシステム。
【請求項13】
前記暗号化されたミンコフスキー和を計算するために、前記処理デバイスは、
前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算することと、
前記暗号化されたミンコフスキー和を空間領域表現に変換することであって、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された空間領域表現である、変換することと、
を行う、
請求項11に記載のシステム。
【請求項14】
前記暗号化された比較ファイルを取得するために、前記処理デバイスは、別のリモートコンピューティングデバイスから前記暗号化された比較ファイルを暗号化された形式で受信する、請求項11に記載のシステム。
【請求項15】
前記暗号化された比較ファイルを取得するために、前記処理デバイスは、
前記リモートコンピューティングデバイスから暗号鍵及びファイル識別子を受信することと、
前記ファイル識別子に対応する暗号化されていない比較ファイルをローカルストレージデバイスから受信することと、
前記暗号化されていない比較ファイルを前記暗号鍵を使用して暗号化して、前記暗号化された比較ファイルを生成することと、
を行う、
請求項11に記載のシステム。
【請求項16】
命令が記憶された非一時的コンピュータ可読媒体であって、前記命令は、処理デバイスによって実行されると、前記処理デバイスに、
リモートコンピューティングデバイスから、3D印刷可能オブジェクトの仕様を含む暗号化されたオブジェクトファイルを受信し、前記暗号化されたオブジェクトファイルを処理して前記3D印刷可能オブジェクトの特性を識別する要求を受信することと、
前記要求に応答して、
暗号化された比較ファイルを取得することと、
前記処理デバイスによって、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、前記特性に関する情報を含む暗号化された結果ファイルを生成することであって、前記暗号化されたミンコフスキー和は、前記暗号化されたオブジェクトファイルを復号することなく計算される、生成することと、
前記暗号化された結果ファイルを前記リモートコンピューティングデバイスに送信することと、
を行わせる、
非一時的コンピュータ可読媒体。
【請求項17】
前記暗号化されたミンコフスキー和を計算するために、前記命令は、前記処理デバイスに、前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算させ、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された周波数領域表現である、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記暗号化されたミンコフスキー和を計算するために、前記命令は、前記処理デバイスに、
前記暗号化されたオブジェクトファイル及び前記暗号化された比較ファイルの周波数領域要素ごとの積を計算することと、
前記暗号化されたミンコフスキー和を空間領域表現に変換することであって、前記暗号化された結果ファイルは、前記暗号化されたミンコフスキー和の暗号化された空間領域表現である、変換することと、
を行わせる、
請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記暗号化された比較ファイルを取得するために、前記命令は、前記処理デバイスに、前記暗号化された比較ファイルを別のリモートコンピューティングデバイスから暗号化された形式で受信させる、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記暗号化された比較ファイルを取得するために、前記命令は、前記処理デバイスに、
前記リモートコンピューティングデバイスから暗号鍵及びファイル識別子を受信することと、
前記ファイル識別子に対応する暗号化されていない比較ファイルをローカルストレージデバイスから受信することと、
前記暗号化されていない比較ファイルを前記暗号鍵を使用して暗号化して、前記暗号化された比較ファイルを生成することと、
を行わせる、
請求項16に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実装形態は、付加製造に関するものである。
【背景技術】
【0002】
付加製造(しばしば、3D印刷として既知である)は、形状が複雑であり、減算製造法によって達成可能ではない構造体の生産を可能にする。例えば、機械加工プロセスでの達成(すなわち、旋盤加工、ドリル加工、及びフライス加工による材料の除去)が高価又は困難である中空構造は、付加製造において層ごとに作成され得る。多くの形態の付加製造は、化学反応によって、又は加熱(例えば、特定の場所で材料を溶融して、冷却するときに凝固させること)によって、液体から固体などの、ある状態から別の状態への物質の形質転換を利用する。ハイブリッド製造(Hybrid Manufacturing、HM)は、付加製造技術及び減算製造技術を、両方の製造プロセスの利点を組み合わせるマルチモーダル製造プロセスに組み込む。
【0003】
場合によっては、設計者は、オブジェクトモデルが印刷可能であり、設計者の目的が達成されることを確実にしたい場合がある。例えば、オブジェクトモデルが非常に小さい特徴を含む場合、それらの特徴のうちのいくつかは、部品を製作するために使用される3Dプリンタの仕様に応じて印刷可能でない場合がある。加えて、場合によっては、部品は、部品が3D印刷された後に追加のプロセスを受けるように意図されることがある。そのような場合、設計者は、これらの印刷後プロセスで使用される製造ツールが部品の特定の外部領域にアクセス可能であることを確認したい場合がある。また、設計者は、印刷された部品がより大きなアセンブリの他の部品とうまく接合又は嵌合することを確認したい場合もある。
【図面の簡単な説明】
【0004】
記載された実施形態及びその利点は、添付図面と併せて以下の説明を参照することによって最も良好に理解され得る。これらの図面は、記載された実施形態の趣旨及び範囲から逸脱することなく、記載された実施形態に当業者によって加えられ得る形態及び細部のいかなる変更も、決して限定するものではない。
【
図1】本開示のいくつかの実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理するためのプロトコルを実装するためのシステムのブロック図を示す。
【
図2】本開示のいくつかの実施形態による、クライアントデバイスとサービスプロバイダコンピューティングシステムとの間のミンコフスキー和プロトコルを示した図である。
【
図3】本開示のいくつかの実施形態による、クライアントデバイスと、サービスプロバイダコンピューティングシステムと、サードパーティコンピューティングデバイスとの間のミンコフスキー和プロトコルを示した図である。
【
図4】本開示のいくつかの実施形態による、ミンコフスキー和プロトコルを使用して、ツールによってアクセス可能な3D印刷可能部品の外部領域を識別するプロセスを示す図である。
【
図5】本開示のいくつかの実施形態による、ミンコフスキー和プロトコルを使用して部品の印刷不可能な特徴を見つけるプロセスを示す図である。
【
図6】本開示の実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理する方法のプロセスフロー図である。
【
図7】本開示の実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理する方法のプロセスフロー図である。
【
図8】本開示の実施形態による、ツールによってアクセス可能な、3D印刷可能部品の外部領域を識別する方法のプロセスフロー図である。
【
図9】本開示の実施形態による、3D印刷可能部品の印刷不可能な特徴を識別する方法のプロセスフロー図である。
【
図10】本明細書で考察される方法論のうちのいずれか1つ又は複数を機械に行わせるための命令のセット又は処理ロジックが実行され得る、コンピュータシステムの例示的な形態における機械の図表現を示す。
【0005】
同様の数字は、同様の要素を示す。
【発明を実施するための形態】
【0006】
本開示は、3D印刷で使用される3Dオブジェクトモデルの特性を識別するための様々な技法を提供する。3Dオブジェクトモデルは、処理され、本明細書で3D印刷部品又は単に部品と呼ばれるオブジェクトを製作するように3Dプリンタに指示する命令に変換され得るデジタルファイルである。識別される特性は、設計者が、オブジェクトモデルが正しく印刷され得るかどうか、及び結果として得られる3D印刷部品が設計者の目的を満たすかどうかを判定するのに役立つ任意の特性であり得る。例えば、設計者は、部品がより大きなアセンブリの他の部品とうまく接合又は嵌合することを確実にすること、又は部品の特定の外部領域がツールによってアクセス可能であることを確認することを望む場合がある。実行される分析のタイプに応じて、ユーザのコンピューティングデバイスは、関与する多数の計算を実行するための処理リソースを有しない場合がある。この理由及び他の理由のために、オブジェクトモデルをサービスプロバイダに送信することが有用であり得、サービスプロバイダは、オブジェクトモデルを処理して、意図された特性を識別し、ユーザに返すことができる結果を生成することができる。しかしながら、オブジェクトモデルが独自の情報を含む場合、ユーザは、信頼できないサービスプロバイダとオブジェクトモデルを共有することに不安を感じる場合がある。
【0007】
場合によっては、ユーザは、自身の3Dモデルを、第三者によって所有される3Dモデルと比較したい場合がある。例えば、ツール又は他の部品の設計は、特定のプロジェクトにおいてユーザと協力している第三者の知的財産であることがある。そのような状況では、両方の当事者は、互換性の問題を識別するためにそれぞれの3Dモデルを比較することが依然として可能である一方で、それぞれの3Dモデルを互いに秘密に保つことを望む場合がある。
【0008】
本開示は、サービスプロバイダが3Dオブジェクトモデルによって表されるオブジェクトの特性へのアクセスを有さないように、プライバシーが保護される方式でユーザがサービスプロバイダから3Dオブジェクトモデルの分析を取得することを可能にする技法を説明する。ユーザは、3Dオブジェクトモデルから導出されたオブジェクトファイルをサービスプロバイダに送信することができ、サービスプロバイダは、3Dオブジェクトモデルの何らかのタイプの評価又は分析を提供する、プライバシーが保護される計算を実行する。サービスプロバイダコンピューティングシステムは、サービスプロバイダによってオブジェクトファイルに対して実行される計算が暗号化領域内で実行されるように、準同型暗号化を使用し、これは、サービスプロバイダが、基礎となる暗号化されていないデータへのアクセスを有することを防止する。サービスプロバイダに提供されるオブジェクトファイルとユーザに返される結果ファイルの両方は暗号化され、ユーザが所有する秘密鍵によってのみ復号することができる。
【0009】
準同型暗号化は、暗号化されたデータを最初に復号することなく、暗号化されたデータに対して計算を実行することを可能にするタイプの暗号化である。結果として得られる計算は暗号化された形式であり、復号されると、暗号化されていないデータに対して演算が実行された場合に生成されるのと同じ出力を生成する。準同型暗号化技術には様々な種類がある。暗号化された領域において無限数の乗算及び加算演算をサポートする準同型暗号化技法は、完全準同型と呼ばれる。暗号化された領域において1つのタイプの演算、例えば乗算又は加算のみをサポートする準同型暗号化技法は、部分準同型と呼ばれる。暗号化された領域における乗算演算及び加算演算の両方をサポートするが、限られた数の演算のみをサポートする準同型暗号化技法は、Somewhat準同型(somewhat homomorphic)と呼ばれる。一例として、暗号化されたデータに対する低次多項式の計算を可能にする、Somewhat準同型の暗号化方式が存在する。
【0010】
サービスプロバイダコンピューティングシステムに送信されるファイルは、本明細書ではオブジェクトファイルと呼ばれることがある。いくつかの実施形態では、オブジェクトファイルは、
図1に関連してさらに説明されるように、STLファイルなどの3Dオブジェクトモデルから導出されてもよい。オブジェクトファイルの操作は、ユーザのオブジェクトファイルを、本明細書において比較ファイルと呼ばれる別のファイルと比較することを含むことができる。例えば、比較ファイルは、アセンブリ内のツール又は他の部品を表す3Dオブジェクトモデルから導出されてもよい。いくつかの実施形態では、サービスプロバイダは、ユーザのオブジェクトファイルと比較される比較ファイルの集合を記憶してもよい。他の実施形態では、比較ファイルは、第三者からサービスプロバイダによって受信されてもよく、第三者は、比較ファイルをサービスプロバイダ及び/又はユーザから秘密にしておくことを望み得る。例えば、ユーザは、ユーザのオブジェクトファイルと第三者が所有するツール仕様との間の比較を実行したい場合がある。そのような実施形態では、サービスプロバイダは、ユーザのオブジェクトファイル及び比較ファイルの両方を暗号化された形式で受信し、それによって、両方の当事者のプライバシーを維持する。これにより、当事者が互いに又はサービスプロバイダと設計を共有することを必要とせずに当事者間の協力が可能になる。
【0011】
ユーザは、距離比較、衝突又は重複検出、距離検出、印刷不可能な特徴検出など、実行される比較のタイプを指定することができる。これらの比較の各々は、異なるタイプの数学的操作を含んでもよい。いくつかの実施形態では、ユーザ及びサービスプロバイダは、ミンコフスキー和プロトコルを実行して、所望の結果を達成する。ミンコフスキー和プロトコルは、サービスプロバイダがオブジェクトファイル及び比較ファイルのミンコフスキー和を通じて様々な比較を提供できるように動作する。実行される比較のタイプに応じて、所望の結果を達成するために追加の動作が(ユーザのコンピューティングデバイス、サービスプロバイダコンピューティングシステム、又はサードパーティコンピューティングデバイスによって)実行されてもよく、ミンコフスキー和プロトコルは、様々なタイプの比較動作の基礎として機能するプリミティブプロトコルとして機能する。言い換えれば、これらの様々なタイプの比較の各々は、ミンコフスキー和がサービスプロバイダコンピューティングシステムによって実行されるプリミティブプロトコルである手順のセットとして定式化される。他のプリミティブプロトコルもこのフレームワーク内で可能である。
【0012】
本明細書で説明される技法は、サービスプロバイダのコンピューティングシステムが、顧客の所有知的財産のプライバシーを保ちながら、様々な目的(印刷可能性、ツールアクセス、部品互換性)のために顧客の3Dオブジェクトファイルを評価することを可能にすることによって、コンピューティングシステムの動作を改善する。ユーザのコンピューティングデバイス上で実行することが実際的でなかった可能性がある動作は、ここで、妥当な時間量でタスクを完了するために必要とされる処理リソースを有するサービスプロバイダのシステムにオフロードすることができる。
【0013】
図1は、本開示のいくつかの実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理するためのプロトコルを実装するためのシステムのブロック図を示す。
図1に示されるように、システム100は、ネットワーク108を介してクライアントデバイス104及びサードパーティデバイス106などの1つ又は複数のコンピューティングデバイスに結合されたサービスプロバイダコンピューティングシステム102を含む。
【0014】
サービスプロバイダコンピューティングシステム102は、処理デバイス、揮発性メモリ、永続データ記憶デバイス、ネットワーキング機器、及び他のハードウェアデバイスなどのハードウェアを含むことができる。サービスプロバイダコンピューティングシステム102は、例えば、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどを含む、プログラム可能な処理リソースを有する任意の好適なタイプのコンピューティングデバイス又は機械を含む、デバイスの分散セットであってもよい。サービスプロバイダコンピューティングシステム102は、単一の機械を備えてもよく、又は複数の相互接続された機械(例えば、クラスタ内に構成される複数のサーバ)を含んでもよい。例えば、サービスプロバイダコンピューティングシステム102は、クラウドコンピューティングシステムにおいて実装され得る。同様に、クライアントコンピューティングデバイス104及びサードパーティコンピューティングデバイス106は、処理デバイス、揮発性メモリ、永続的データ記憶デバイス、ネットワーキング機器、及び他のハードウェアデバイスなどのハードウェアを含んでもよい。
【0015】
クライアントデバイス104は、オブジェクトモデル110を含むことができる。オブジェクトモデル110は、3Dプリンタ112によって印刷されることが可能であり得る3Dオブジェクトを記述する。オブジェクトモデル110は、(例えば、AutoCAD(商標)、Solidworks(商標)、STEP、VRML、IGES、又はDXFフォーマットの)コンピュータ支援設計(computer-aided design、CAD)モデル、STLモデル、又は他のポイントクラウドモデル(例えば、.obj、.x3d、ファイルなど)などの任意の適切なファイルタイプであってもよい。いくつかの実施形態では、クライアントコンピューティングデバイス104は、ユーザがオブジェクトモデル110を生成及び/又は操作することを可能にする3Dモデリングソフトウェアを含み得る。クライアントコンピューティングデバイス104はまた、3Dモデリングソフトウェアを介してダウンロードされ、閲覧され、変更され得るオブジェクトモデルの集合を記憶するか、又はそうでなければ集合へのアクセスを有し得る。
【0016】
クライアントデバイス104はまた、オブジェクトモデル110の特性を識別するために、サービスプロバイダコンピューティングシステム102を通じて利用可能な処理サービスにユーザがアクセスすることを可能にする、比較ソフトウェア114を含むことができる。比較ソフトウェア114は、サービスプロバイダコンピューティングシステム102に処理要求を送信し、ファイルを暗号化し、サービスプロバイダコンピューティングシステム102と協調して計算を実行して、要求された処理結果を達成することができる。
【0017】
いくつかの実施形態では、比較ソフトウェア114は、オブジェクトモデル110を、本明細書に記載されるさらなる処理に適したデータフォーマットを有するオブジェクトファイル116に変換してもよい。いくつかの実施形態では、オブジェクトファイル116は、オブジェクトモデル110によって指定された3Dオブジェクトを表すボクセルの3Dアレイである。ボクセルの3Dアレイは、3次テンソルと呼ばれることもある。本技法の実施形態はまた、一次テンソル(1次元アレイ)及び二次テンソル(2次元アレイ)を用いて実装することもできる。1次元アレイ又は多次元アレイにおける数は、テンソルの成分と呼ばれることがある。
【0018】
オブジェクトモデル110が許容可能なフォーマットでない場合、オブジェクトモデル110を処理してオブジェクトファイル116を生成することができる。例えば、オブジェクトモデル110がSTLファイルである場合、オブジェクトモデル110は、オブジェクトの三角形分割された面に対応する頂点のリストによって表される。オブジェクトモデル110は、ファイル名、作成者、修正データなどのメタデータも含むことができる。オブジェクトファイル116を生成するためにオブジェクトモデル110を処理することは、オブジェクト表現を等価テンソル表現に変換することと、メタデータを除去することとを含み得る。いくつかの実施形態では、オブジェクトファイル116は、ユーザによって開始された処理要求に応答して、比較ソフトウェア114によって生成され得る。
【0019】
サービスプロバイダコンピューティングシステム102は、ハードウェア、又はハードウェアとソフトウェアの組合せ(例えば、本明細書に記載される機能を実行するようにプログラムされた1つ又は複数の処理デバイス)として実装され得る比較エンジン118を含む。比較エンジン118は、クライアントコンピューティングデバイス104から受信された要求に従ってオブジェクトファイル116を処理するように構成されている。比較エンジン118は、オブジェクトファイル116を処理するために使用される処理プロトコルを実装し、クライアントのデータのプライバシーを維持しながら、プリミティブプロトコルの基礎を形成する暗号化された計算を実行する。比較エンジン118は、オブジェクトファイル116を、本明細書では比較ファイル120と呼ばれる別のファイルと比較することによって、オブジェクトファイル116を処理する。オブジェクトファイル116を比較ファイル120と比較することは、オブジェクトファイル116及び比較ファイル120の関数、例えば、オブジェクトファイル116及び比較ファイル120のミンコフスキー和を計算することを意味する。
【0020】
比較ファイル120は、オブジェクトファイル116と同じ次数のテンソル、例えば、別の3Dテンソル又はボクセルのアレイであってもよい。比較ファイル120は、同様に、サービスプロバイダコンピューティングシステム102又はサードパーティデバイス106によって3Dオブジェクトモデルから導出され得る。
【0021】
サービスプロバイダコンピューティングシステム102は、設計ライブラリ114を維持する記憶デバイス116を含むか、又はそれにアクセスすることができる。設計ライブラリ114は、クライアントデバイス104から受信したオブジェクトファイル116を処理するための比較ファイル120として使用することができる様々なオブジェクト仕様を含むことができる。例えば、設計ライブラリ114は、様々な3D部品、製造ツール、又は様々な3Dプリンタの仕様を表す比較ファイル120を含むことができる。いくつかの実施形態では、比較ファイル120は、サードパーティコンピューティングデバイス106によって提供され得る。
【0022】
クライアントコンピューティングシステム104は、処理要求をサービスプロバイダコンピューティングシステム102に送信することができる。サービスプロバイダがオブジェクトファイル116に含まれるオブジェクト仕様にアクセスできないことを確実にするために、クライアントコンピューティングシステム104は、最初に、オブジェクトファイル116を暗号化してから、それをサービスプロバイダコンピューティングシステム102に送信する。オブジェクトファイル116は、完全準同型暗号化、部分準同型暗号化、及びSomewhat準同型暗号化を含む、任意の好適な準同型暗号化技法を使用して暗号化することができる。Somewhat準同型暗号化技法は、一般に、完全準同型暗号化と比較してより少ない処理リソースを使用し、したがって、暗号化されたファイルに対して実行される計算のタイプに応じて、場合によっては好ましいことがある。暗号化方式は、公開鍵及び秘密鍵と呼ばれる一対の暗号鍵120を使用する。ファイルは、公開鍵を使用して暗号化することができるが、対応する秘密鍵を使用してのみ復号することができる。したがって、公開鍵はプライバシーを失うことなく共有することができるが、秘密鍵はクライアントデバイス104によって保持され、共有されない。
【0023】
オブジェクトファイル116の暗号化、要求のパッケージング、及びサービスプロバイダコンピューティングシステム102との通信は、比較ソフトウェア114によって実行することができる。さらに、処理プロトコルに従ってクライアントデバイス104によって実行される数学的計算は、比較ソフトウェア114によって実行され得る。
図2~
図5に関連してさらに説明するように、クライアントデバイス104によって実行される計算は、サービスプロバイダコンピューティングシステム102上の比較エンジン118によって実行される計算と調整される。計算のタイプ及び順序は、実行される比較のタイプに応じて変化し得る。いくつかの実施形態では、比較ソフトウェア114は、サービスプロバイダコンピューティングシステム102からダウンロードされてもよい。
【0024】
クライアントデバイス104から送信される処理要求は、暗号化されたオブジェクトファイル116、オブジェクトファイル116を暗号化するために使用された公開鍵、及び実行される比較のタイプを記述するプロセス識別情報を含むことができる。例えば、プロセス識別情報は、3Dプリンタ112によって印刷するには小さすぎる部品があるかどうかを判定するようにオブジェクトファイル116を処理する要求を記述することができる。要求はまた、最小印刷可能サイズ、又は最小印刷可能サイズを決定するために使用され得る特定のプリンタモデルを示すこともできる。いくつかの実施形態では、プロセス指示情報は、印刷されたオブジェクトのどの領域が減算製造ツールなどのツールによってアクセス可能であるかを判定するようにオブジェクトファイル116を処理する要求を記述することができる。要求は、比較のために使用される特定のツールを識別することもできる。印刷されたオブジェクトが同じアセンブリの別の部品と衝突するかどうかを判定すること、部品間のクリアランスの量を決定することなど、他のタイプのプロセスも要求することができる。比較ファイル120は、クライアントデバイス104から受信されたプロセス識別情報に基づいて取得され得る。例えば、プロセス識別情報は、設計ライブラリ114内に対応する設計仕様を有する特定のツールを識別することができ、この設計仕様は、ストレージから検索して比較ファイル120として使用することができる。
【0025】
いくつかの実施形態では、比較ファイル120は、サードパーティコンピューティングデバイス106から受信される。例えば、ユーザは、例えばツール又はアセンブリの別の部品など、サードパーティによって設計された1つ又は複数のオブジェクトを含む共同プロジェクトにおいてサードパーティと協働することを望む場合がある。そのような例では、クライアントデバイス104は、公開鍵をサードパーティデバイス106に送信することができ、サードパーティデバイス120は、比較ファイル120をサービスプロバイダコンピューティングシステム102に送信する前に、比較ファイル120を暗号化する。このようにして、サードパーティは、サービスプロバイダが暗号化された比較ファイル120をクライアントデバイス104に提供しない限り、サードパーティの設計のプライバシーを維持することもできる。場合によっては、サードパーティは、設計のプライバシーを保護することに関心がない場合があり、その場合、比較ファイル120は、暗号化されずにサードパーティデバイスから送信されてもよく、サービスプロバイダコンピューティングシステム102は、比較ファイル120を暗号化して、暗号化領域において計算が実行されることを可能にすることができる。
【0026】
要求がサービスプロバイダコンピューティングシステム102によって受信されると、処理プロトコルが開始される。処理プロトコルは、クライアントデバイス104と協力して比較エンジン118によって実行される様々な計算を含み得る。比較ファイル120がまだ暗号化されていない場合、サービスプロバイダコンピューティングシステム102は、最初に、クライアントデバイス104によって提供された公開鍵を使用して比較ファイル120を暗号化する。
【0027】
可能な動作の中でも特に、比較エンジン118は、暗号化されたオブジェクトファイル116と暗号化された比較ファイル120との暗号化されたミンコフスキー和を計算することができる。ミンコフスキー和は、暗号化領域において、すなわちファイルを復号することなく計算される。いくつかの実施形態では、すべての要求は、計算の基本単位としてミンコフスキー和を使用して処理される。したがって、各要求は、クライアントデバイス104又はサービスプロバイダコンピューティングシステム102によって実行され得る1つ又は複数の追加の操作に加えてミンコフスキー和を使用するように定式化される。例えば、処理プロトコルは、最終結果が得られる前に、クライアントデバイス104とサービスプロバイダコンピューティングシステム102との間で中間データセットをやり取りすることを含んでもよい。例示的な処理プロトコルは、
図2~
図5に関連して説明される。
【0028】
2つのテンソルファイルA及びBのミンコフスキー和(A及びBの拡張(dilation)又は畳み込みとも呼ばれる)は、A内の各要素をB内の各要素に加算することによって形成することができる。ミンコフスキー和はまた、各テンソルファイルを周波数領域に変換し、テンソルの要素ごとの積を計算することによって算出することもできる。実施形態では、比較エンジン118は、空間領域又は周波数領域においてミンコフスキー和を計算することができる。ミンコフスキー和が周波数領域において計算される場合、オブジェクトファイル116及び比較ファイル120を、フーリエ変換アルゴリズム、例えば、離散フーリエ変換(Discrete Fourier Transform、DFT)、高速フーリエ変換(Fast Fourier Transform、FFT)などを使用して周波数領域に変換することができる。変換されたオブジェクトファイル116及び変換された比較ファイル120は、指定された有効桁数までの浮動小数点精度を有するテンソルであり得る。オブジェクトファイル116の周波数領域バージョンは、使用される準同型暗号化のタイプなどの特定の実装の詳細に応じて、クライアントデバイス104によって(例えば、暗号化される前に)、又は暗号化領域内のサービスプロバイダコンピューティングシステム102によって、計算することができる。
【0029】
処理要求の最終結果は、暗号化された結果ファイルの形式でクライアント装置104によって受信される。結果ファイルは、次いで、クライアントデバイス104によって解読されてもよく、さらなる処理を受けてもよい。例えば、復号された結果ファイルが周波数領域にある場合、クライアントデバイス104は、逆フーリエ変換を使用してファイルを空間領域に変換することができる。加えて、復号された結果ファイルは、オブジェクトの3D表現を生成するために使用されてもよく、これはグラフィカルユーザインターフェース(GUI)を介してユーザに表示され得る。3Dオブジェクトの特徴は、処理要求のタイプに応じて異なって表現され得る。例えば、3Dオブジェクトの印刷不可能な特徴が強調表示されてもよく、又はツールによってアクセス可能な特徴が強調表示されてもよい。
【0030】
ユーザは、結果を受け取ると、対応する3Dオブジェクトモデル110を修正して、潜在的な印刷問題に対処する、かつ/又は3Dプリンタ112による印刷のために対応するオブジェクトモデル110を選択することができる。3Dオブジェクトモデル110を特定のタイプの3Dプリンタ112によって使用される形態に変換するために、追加の処理が必要とされる場合があることも理解されよう。例えば、スライサと呼ばれるプログラムは、3Dオブジェクトモデル110をCAD又はSTLファイルからGコードファイルに変換することができる。
【0031】
図2は、本開示のいくつかの実施形態による、クライアントデバイスとサービスプロバイダコンピューティングシステムとの間のミンコフスキー和プロトコルを示した図である。
図1を参照すると、クライアントデバイス104によって実行されるこれらのプロセスは、比較ソフトウェア114によって実行されてもよく、サービスプロバイダコンピューティングシステム102によって実行されるプロセスは、比較エンジン118によって実行されてもよい。ミンコフスキー和プロトコルの実際の実装は、計算される特定の特性に依存して追加の計算を含み得ることが理解されるであろう。より詳細なプロトコルは、
図3及び
図4に関連して説明される。プロセスは、ブロック202から開始することができる。
【0032】
ブロック202においては、クライアントデバイス104がオブジェクトファイルを取得する。オブジェクトファイルは、3Dプリンタによって製作することができるオブジェクトを表すボクセルの3次元アレイであり得る。いくつかの実施形態では、クライアントデバイス104は、ブロック204において、オブジェクトファイルを周波数領域表現に変換する。例えば、クライアントデバイス104は、高速フーリエ変換(FFT)などのフーリエ変換を使用して、オブジェクトファイルを周波数領域表現に変換することができる。
【0033】
ブロック206においては、オブジェクトファイルを、公開鍵-秘密鍵ペアの公開鍵を使用して暗号化する。任意の適切な準同型暗号化技術を使用することができる。
【0034】
次いで、クライアントデバイス104が、処理要求をサービスプロバイダコンピューティングシステム102に送信する。処理要求は、実行されるプロセスのタイプ、又は識別される特性のタイプを識別することができる。要求とともに、クライアントデバイス104はまた、暗号化されたオブジェクトファイルと、オブジェクトファイルを暗号化するために使用された公開鍵を送信する。
【0035】
要求に応答して、サービスプロバイダコンピューティングシステム102が、ブロック208において、要求に基づいて関連する比較ファイルを取得する。比較ファイルは、要求の詳細に基づいて、サービスプロバイダコンピューティングシステム102のストレージデバイスから取得され得る。比較ファイルは、ツール仕様、アセンブリ内の別の部品の部品仕様、最小印刷可能特徴などを記述することができる。
【0036】
ブロック212においては、サービスプロバイダコンピューティングシステム102が、クライアントデバイス104から受信された公開鍵を使用して比較ファイルを暗号化する。ブロック214においては、サービスプロバイダコンピューティングシステム102が、暗号化されたオブジェクトファイル及び暗号化された比較ファイルの暗号化されたミンコフスキー和を計算する。
図2に示す実施形態では、暗号化されたオブジェクトファイルE[C]及び暗号化された比較ファイルE[D]の要素ごとの積を計算することによって、暗号化されたミンコフスキー和E[G]が周波数領域において計算され、これは以下の式1で表される。
【0037】
【0038】
式中、i,j,kは、割り当てられた座標空間内のすべての許容値を想定する。これは、周波数領域における乗算が空間領域における計算と等価であるという事実、及び暗号化関数E(・)が乗法的に準同型であるという事実を利用する。なおE(・)は加法的にも準同型であるが、その特性は上述の関係において利用されない。暗号化されたミンコフスキー和E[G](本明細書では結果ファイルと呼ばれる)が、次いでクライアントデバイス104に送信される。
【0039】
ブロック216においては、クライアントデバイスが、秘密鍵を使用して結果ファイルを復号する。ブロック218においては、クライアントデバイスが、復号された結果ファイルを空間領域に変換し、これはオブジェクトファイルと比較ファイルとの畳み込みである。
【0040】
プロトコル200の実施形態は、
図2に示されない追加のブロックを含んでもよく、
図2に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。加えて、ブロック202~216に関連付けられるプロセスは、
図2に示されている順序とは異なる順序で実行されてもよい。例えば、上述の実施形態では、ミンコフスキー和は周波数領域で計算され、周波数領域での計算は、空間領域でミンコフスキー和を計算するよりも計算効率が高い。しかしながら、本技術の実施形態は、空間領域においてミンコフスキー和を計算することも含むことが理解されるであろう。そのような実施形態では、ブロック204、210、及び216をスキップすることができ、暗号化されたミンコフスキー和E[G]は、暗号化されたオブジェクトファイルE[C]及び暗号化された比較ファイルE[D]の要素ごとの総和を計算することによって、空間領域において計算され、これは以下の式2で表される。
【0041】
【0042】
上記の関係において、座標i,j,k,x,y,zはすべて、割り当てられた座標空間内のすべての許容値を想定する。この関係は、C及びDによって表されるオブジェクトの空間領域畳み込みと同一である。この関係は、暗号化関数E(・)が加法的及び乗法的に準同型であるという事実を利用する。ミンコフスキー和を計算するこの方法は、式1によって教示されるものの代替であるが、数学的により複雑である可能性が高い。
【0043】
加えて、いくつかの実施形態では、オブジェクトファイルは、クライアントデバイス104によってではなく、サービスプロバイダコンピューティングシステム102によって(暗号化領域内で)周波数領域に変換され得る。そのような実施形態では、ブロック204及びブロック216をスキップすることができ、サービスプロバイダコンピューティングシステム102は、ミンコフスキー和を計算する前に、暗号化されたオブジェクトファイルを周波数領域に変換し、暗号化された結果ファイルをクライアントデバイス102に送信する前に、結果を空間領域に変換する。
【0044】
図3は、本開示のいくつかの実施形態による、クライアントデバイスと、サービスプロバイダコンピューティングシステムと、サードパーティコンピューティングデバイスとの間のミンコフスキー和プロトコルを示した図である。
図1を参照すると、クライアントデバイス104によって実行されるこれらのプロセスは、比較ソフトウェア114によって実行され得、サービスプロバイダコンピューティングシステムによって実行されるプロセスは、比較エンジン118によって実行され得る。ミンコフスキー和プロトコルの実際の実装は、計算される特定の特性に依存して追加の計算を含み得ることが理解されるであろう。より詳細なプロトコルは、
図3及び
図4に関連して説明される。プロセスは、ブロック302から開始することができる。
【0045】
ブロック302においては、クライアントデバイス104がオブジェクトファイルを取得する。オブジェクトファイルは、3Dプリンタによって製造することができるオブジェクトを表すボクセルの3次元アレイであり得る。いくつかの実施形態では、クライアントデバイス104は、ブロック304において、例えば、FFTアルゴリズムを使用して、オブジェクトファイルを周波数領域表現に変換する。
【0046】
同様に、サードパーティデバイス106は、ブロック306において比較ファイルを取得する。比較ファイルは、ツール仕様、アセンブリ内の別の部品の部品仕様、最小印刷可能特徴サイズなどを記述することができる。比較ファイルは、同じ次数のテンソル、例えば、ボクセルの3次元アレイであり得る。さらに、サードパーティデバイス106は、ブロック308において、比較ファイルを周波数領域表現に変換する。
【0047】
ブロック310においては、オブジェクトファイルを、公開鍵-秘密鍵ペアの公開鍵を使用して暗号化する。任意の適切な準同型暗号化技術を使用することができる。加えて、クライアントデバイス104はまた、同じ公開鍵をサードパーティデバイス106に送信する。ブロック312において、比較ファイルが、クライアントデバイス104から受信された公開鍵を使用してサードパーティデバイス106によって暗号化される。
【0048】
暗号化されたオブジェクトファイル及び暗号化された比較ファイルの両方が、サービスプロバイダコンピューティングシステム102に送信される。クライアントデバイス104は、サービスプロバイダコンピューティングシステム102に処理要求も送信することができる。処理要求は、実行されるプロセスのタイプ、又は識別される特性のタイプを識別することができる。加えて、クライアントデバイス104は、サードパーティデバイス106及び/又はサードパーティデバイス106によって提供された比較ファイルを識別することができる。
【0049】
要求に応答して、サービスプロバイダコンピューティングシステム102は、ブロック314において、暗号化されたオブジェクトファイル及び暗号化された比較ファイルの暗号化されたミンコフスキー和を計算する。暗号化されたミンコフスキー和は、
図2に関連して上述したように、周波数領域において計算され得る。次いで、暗号化されたミンコフスキー和が、結果ファイルとしてクライアントデバイス104に送信される。
【0050】
ブロック316においては、クライアントデバイスが、秘密鍵を使用して結果ファイルを復号する。ブロック318において、クライアントデバイス104が、復号された結果ファイルを空間領域に変換し、これはオブジェクトファイルと比較ファイルとの畳み込みである。
【0051】
プロトコル200の実施形態は、
図3に示されない追加のブロックを含んでもよく、
図3に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。加えて、ブロック302~318に関連付けられるプロセスは、
図3に示される順序とは異なる順序で実行されてもよい。例えば、
図2に関連して上述したように、ミンコフスキー和は空間領域において計算されてもよい。加えて、オブジェクトファイル及び比較ファイルは、クライアントデバイス104及びサードパーティデバイスによってではなく、(暗号化領域において)サービスプロバイダコンピューティングシステム102によって周波数領域に変換されてもよい。
【0052】
図4は、本開示のいくつかの実施形態による、ミンコフスキー和プロトコルを使用してツールによってアクセス可能な3D印刷可能部品の外部領域を識別するプロセスを示す図である。
図1を参照すると、クライアントデバイス104によって実行されるプロセスは、比較ソフトウェア114によって実行することができ、サービスプロバイダコンピューティングシステム102によって実行されるプロセスは、比較エンジン118によって実行することができる。
図4のプロセスは、
図2及び
図3に示すミンコフスキー和プロトコルをプリミティブプロトコルとして使用し、このプリミティブプロトコルは、要求において識別される処理目標を達成するために追加の演算と組み合わされる。プロセスは、ブロック402から開始することができる。
【0053】
ブロック402においては、クライアントデバイス104が、ブロック402においてオブジェクトファイルを取得する。オブジェクトファイルは、3Dプリンタによって製造することができるオブジェクトを表すボクセルの3次元アレイであり得る。いくつかの実施形態では、クライアントデバイス104又はサービスプロバイダコンピューティングシステム102は、オブジェクトファイルを周波数領域表現に変換することができる。簡潔さのために、空間領域と周波数領域との間の変換に関与するステップは、
図4に示されていない。しかしながら、ミンコフスキー和は、
図2及び
図3に関連して説明されるように、空間領域又は周波数領域において計算され得ることが理解されるであろう。
【0054】
ブロック404においては、オブジェクトファイルを、公開鍵-秘密鍵ペアの公開鍵を使用して暗号化する。任意の適切な準同型暗号化技術を使用することができる。
【0055】
次いで、クライアントデバイス104が、処理要求をサービスプロバイダコンピューティングシステム102に送信する。処理要求は、ツールによってアクセス可能になるオブジェクトファイルの外部領域を見つける要求として要求を識別する識別子を含むことができる。要求はまた、ツールを表す比較ファイルを識別する識別子を含むことができる。例えば、識別子は、特定のツール、特定の比較ファイル、又は比較ファイルが受信される特定のサードパーティデバイスを識別することができる。要求とともに、クライアントデバイス104はまた、暗号化されたオブジェクトファイルと、オブジェクトファイルを暗号化するために使用された公開鍵とを送信する。
【0056】
要求に応答して、サービスプロバイダコンピューティングシステム102は、ブロック406において、ツール仕様、すなわち、要求において識別された関連ツールのためのツール仕様を記述する比較ファイルを取得する。例えば、ツールは、ドリル、旋盤、ドレメル(Dremel)キットなどとすることができる。
図1を参照すると、ツール仕様は、サービスプロバイダコンピューティングシステム102のデータストレージデバイス116から、又はサードパーティコンピューティングデバイス106から取得され得る。
【0057】
ブロック408においては、サービスプロバイダコンピューティングシステム102が、ツール仕様の補集合(complement)、すなわち、ツール仕様の逆数を計算する。例えば、ツール仕様における満たされたボクセルは、補集合において空であり、ツール仕様における空のボクセルは、補集合において満たされる。
【0058】
ブロック410においては、サービスプロバイダコンピューティングシステム102が、クライアントデバイス104から受信した公開鍵を使用してツール仕様の補集合を暗号化する。
【0059】
ブロック412においては、サービスプロバイダコンピューティングシステム102が、暗号化されたオブジェクトファイルとツール仕様の暗号化された補集合との暗号化されたミンコフスキー和を計算する。上記で説明したように、暗号化されたミンコフスキー和は、周波数領域又は空間領域において計算され得る。周波数領域で計算される場合、オブジェクトファイルは、クライアントデバイス104又はサービスプロバイダコンピューティングシステム102によって周波数領域に変換され得る。次いで、暗号化されたミンコフスキー和(本明細書では結果ファイルと呼ぶ)がクライアントデバイス104に送信される。
【0060】
ブロック414においては、クライアントデバイス104が、秘密鍵を使用して結果ファイルを復号する。いくつかの実施形態では、クライアントデバイス104は、まだ空間領域にない場合、復号された結果ファイルを空間領域に変換することもできる。この実施形態では、結果ファイルは、ツール仕様によって記述されたツールによってアクセス可能な、3Dオブジェクトファイルによって記述された部品の外部の領域を識別する。
【0061】
ブロック416においては、クライアントデバイス104が結果を表示する。例えば、3Dオブジェクトモデルは、クライアントデバイスのGUIに表示されてもよい。いくつかの実施形態では、結果ファイルを使用して、表示される3Dオブジェクトモデルを修正し、ツールによってアクセス可能又はアクセス不可能な領域を強調表示するか、又は他の方法で識別することができる。
【0062】
プロトコル400の実施形態は、
図4に示されない追加のブロックを含んでもよく、
図4に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。加えて、ブロック402~416に関連付けられるプロセスは、
図4に示される順序とは異なる順序で実行されてもよい。
【0063】
図5は、本開示のいくつかの実施形態による、ミンコフスキー和プロトコルを使用して部品の印刷不可能な特徴を見つけるプロセスを示す図である。
図1を参照すると、クライアントデバイス104によって実行されるプロセスは、比較ソフトウェア114によって実行することができ、サービスプロバイダコンピューティングシステム102によって実行されるプロセスは、比較エンジン118によって実行することができる。
図5のプロセスは、プリミティブプロトコルとして
図2及び
図3に示されるミンコフスキー和プロトコルを使用し、これは、要求において識別される処理目標を達成するために追加の動作と組み合わされる。プロセスは、ブロック502から開始することができる。
【0064】
ブロック502においては、クライアントデバイス104がオブジェクトファイルを取得する。オブジェクトファイルは、3Dプリンタによって製造することができるオブジェクトを表すボクセルの3次元アレイであり得る。いくつかの実施形態では、クライアントデバイス104又はサービスプロバイダコンピューティングシステム102は、オブジェクトファイルを周波数領域表現に変換することができる。簡潔さのために、空間領域と周波数領域との間の変換に関与するステップは、
図4に示されていない。しかしながら、ミンコフスキー和は、
図2及び
図3に関連して説明されるように、空間領域又は周波数領域において計算され得ることが理解されるであろう。
【0065】
ブロック504においては、クライアントデバイス104が、オブジェクトファイルの補集合を計算する。
【0066】
ブロック506においては、クライアントデバイス104が、公開鍵-秘密鍵ペアのうちの公開鍵を使用してオブジェクトファイルの補集合を暗号化する。任意の適切な準同型暗号化技術を使用することができる。
【0067】
次いで、クライアントデバイス104が、処理要求をサービスプロバイダコンピューティングシステム102に送信する。処理要求は、オブジェクトファイル内の印刷不可能な特徴、すなわち、印刷するには小さすぎるオブジェクトファイルの領域を見つける要求として要求を識別する識別子を含むことができる。この実施形態では、比較ファイルは最小印刷可能特徴ファイルと呼ばれることがあり、最小印刷可能特徴ファイルは、識別された3Dプリンタに適用可能な仕様に従って最小印刷可能特徴を記述する。したがって、要求はまた、特定の3Dプリンタの識別又は最小印刷可能特徴サイズを含むことができる。要求とともに、クライアントデバイス104は、オブジェクトファイルの暗号化された補集合(
図5では第1の暗号化ファイルと呼ばれる)も送信し、ファイルを暗号化するために使用される公開鍵も送信することができる。
【0068】
要求に応答して、サービスプロバイダコンピューティングシステム102は、ブロック508において、最小印刷可能特徴ファイル、すなわち、要求において識別された3Dプリンタの最小印刷可能特徴を記述する比較ファイルを取得する。最小印刷可能特徴ファイルは、原点を中心とし、最小印刷可能特徴のサイズに等しい直径を有する形状(例えば、円、球、正方形、立方体など)を形成するように構成要素が配置されたテンソルであってもよい。
図1を参照すると、最小印刷可能特徴ファイルは、サービスプロバイダコンピューティングシステム102のデータストレージデバイス116から、又はサードパーティコンピューティングデバイス106から取得することができる。さらに、最小印刷可能特徴ファイルは、最小印刷可能特徴サイズの記述に基づいて生成することができる。例えば、最小印刷可能特徴サイズが1ミリメートルである場合、最小印刷可能特徴ファイルは、原点を中心とする直径1ミリメートルの球を記述するテンソルを作成することによって生成することができる。
【0069】
ブロック510においては、サービスプロバイダコンピューティングシステム102が、クライアントデバイス104から受信された公開鍵を使用して最小特徴ファイルを暗号化する。
【0070】
ブロック512においては、サービスプロバイダコンピューティングシステム102が、第1の暗号化ファイル及び暗号化された最小特徴ファイルの暗号化されたミンコフスキー和を計算する。上記で説明したように、暗号化されたミンコフスキー和は、周波数領域又は空間領域において計算され得る。周波数領域において計算される場合、第1の暗号化ファイルは、クライアントデバイス104又はサービスプロバイダコンピューティングシステム102によって周波数領域に変換され得る。ブロック512で生成される暗号化されたミンコフスキー和は、本明細書では中間結果と呼ばれる。中間結果はクライアントデバイス104に送信される。
【0071】
ブロック514においては、クライアントデバイス104が、秘密鍵を使用して中間結果を復号する。いくつかの実施形態では、クライアントデバイス104は、まだ空間領域にない場合、復号された中間結果を空間領域に変換することもできる。
【0072】
ブロック516においては、クライアントデバイス104が、復号された中間結果の補集合を計算する。
【0073】
ブロック518においては、クライアントデバイス104が、復号された中間結果の補集合を暗号化して、本明細書において第2の暗号化ファイルと呼ばれる追加ファイルを生成する。第2の暗号化ファイルは、サービスプロバイダコンピューティングシステム102に送信される。
【0074】
ブロック520においては、サービスプロバイダコンピューティングシステム102が、第2の暗号化ファイル及び暗号化された最小特徴ファイルの暗号化されたミンコフスキー和を計算する。上記で説明したように、暗号化されたミンコフスキー和は、周波数領域又は空間領域において計算することができる。ブロック520で生成される暗号化されたミンコフスキー和は、本明細書では結果ファイルと呼ばれる。暗号化された結果ファイルは、クライアントデバイス104に送信される。
【0075】
ブロック522においては、クライアントデバイス104が、秘密鍵を使用して結果ファイルを復号する。いくつかの実施形態では、クライアントデバイス104は、まだ空間領域にない場合、復号された結果ファイルを空間領域に変換することもできる。この実施形態では、結果ファイルは、特定の3Dプリンタに適用可能な最小印刷可能特徴サイズよりも小さい、3Dオブジェクトファイルによって記述される部品の特徴を識別する。
【0076】
ブロック524においては、クライアントデバイス104が結果を表示する。例えば、3Dオブジェクトモデルを、クライアントデバイスのGUIに表示することができる。いくつかの実施形態では、結果ファイルを使用して、表示される3Dオブジェクトモデルを修正して、最小印刷可能特徴サイズより小さい特徴を強調表示するか、又は他の方法で識別することができる。
【0077】
プロトコル500の実施形態は、
図5に示されない追加のブロックを含んでもよく、
図5に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。加えて、ブロック502~524に関連付けられるプロセスは、
図5に示される順序とは異なる順序で実行されてもよい。
【0078】
図6は、本開示の実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理する方法のプロセスフロー図である。方法600は、ハードウェア、又はハードウェアとソフトウェアの組合せによって実行され得る。例えば、
図1を参照すると、方法600は、サービスプロバイダコンピューティングシステム102上に存在する比較エンジン118によって実行され得る。本方法は、ブロック602から開始することができる。
【0079】
ブロック602においては、暗号化されたオブジェクトファイル及び暗号化されたオブジェクトファイルを処理する要求を、リモートコンピューティングデバイスから受信する。暗号化されたオブジェクトファイルは、3次元テンソル(例えば、ボクセルのアレイ)の形態であり得る3D印刷可能オブジェクトの仕様を含む。要求は、暗号化されたオブジェクトファイルを処理して、3D印刷可能オブジェクトの特性を識別することである。ブロック604、ブロック606、及びブロック608が、要求に応答して実行され得る。
【0080】
ブロック604においては、暗号化された比較ファイルを取得する。比較ファイルは、ローカルストレージデバイス又はサードパーティのリモートコンピューティングデバイスから受信され得る。比較ファイルは、要求を送信したリモートコンピューティングデバイスから受信された準同型暗号鍵を使用して暗号化され得る。比較ファイルは、第三者から暗号化された形式で受信されてもよい。いくつかの実施形態では、比較ファイルはまた、暗号化される前又は後に周波数領域表現に変換される。
【0081】
ブロック606においては、暗号化されたオブジェクトファイル及び暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、特性についての情報を含む暗号化された結果ファイルを生成し、暗号化されたミンコフスキー和の計算は、暗号化されたオブジェクトファイルを復号することなく実行する。ミンコフスキー和は、空間領域又は周波数領域において実行され得る。特性は、比較ファイルの性質、及び一実施形態に従って実行される他の計算に応じて変化し得る。
【0082】
ブロック608においては、暗号化された結果ファイルをリモートコンピューティングデバイスに送信する。
【0083】
さらに、特定の実装の詳細に応じて、暗号化された結果ファイルを、リモートコンピューティングデバイスに返される前に空間領域に変換してもよい。
【0084】
方法600の実施形態は、
図6に示されない追加のブロックを含んでもよく、
図6に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。例えば、実行される分析のタイプに応じて、方法600は、最終結果が得られる前に、リモートコンピューティングデバイスからファイルを受信して結果を返す1つ又は複数の追加のラウンドを含むことができる。ブロック602~ブロック608に関連付けられるプロセスは、
図6に示される順序とは異なる順序で実行されてもよい。
【0085】
図7は、本開示の実施形態による、プライバシーが保護される方式で3Dオブジェクトモデルを処理する方法のプロセスフロー図である。方法700は、ハードウェア、又はハードウェアとソフトウェアの組合せによって実行され得る。例えば、
図7を参照すると、方法700は、クライアントデバイス104上に存在する比較ソフトウェア114によって実行することができる。本方法は、ブロック702から開始することができる。
【0086】
ブロック702においては、3D印刷可能オブジェクトの仕様を含むオブジェクトファイルを取得する。暗号化されたオブジェクトファイルは、3次元テンソル(例えば、ボクセルのアレイ)の形態であり得る3D印刷可能オブジェクトの仕様を含む。オブジェクトファイルは、例えば、ストレージから取得してもよいし、オブジェクトモデルから生成してもよい。オブジェクトファイルはまた、特定の実装のプロトコル詳細に応じて周波数領域表現に変換してもよい。
【0087】
ブロック704においては、公開鍵を使用してオブジェクトファイルを暗号化し、暗号化されたオブジェクトファイルを生成する。公開鍵は、準同型暗号化技術に従って生成された公開鍵-秘密鍵ペアの一部であってよい。公開鍵は秘密に保たれ、リモートコンピューティングシステムと共有されない。
【0088】
ブロック706においては、暗号化されたオブジェクトファイルと、3D印刷可能オブジェクトの特性を識別するために暗号化されたオブジェクトファイルを処理する要求とを、リモートコンピューティングシステムに送信する。さらに、いくつかの実施形態では、リモートコンピューティングシステムが、ミンコフスキー和の計算に使用される比較ファイルを暗号化することができるように、公開鍵もリモートコンピューティングシステムに送信する。いくつかの実施形態では、公開鍵をサードパーティコンピューティングデバイスに送信し、サードパーティコンピューティングデバイスは、暗号化された比較ファイルをリモートコンピューティングシステムに提供する。
【0089】
ブロック708においては、暗号化された結果ファイルをリモートコンピューティングシステムから受信する。暗号化された結果ファイルは、暗号化されたオブジェクトファイルと暗号化された比較ファイルとの暗号化されたミンコフスキー和を含む。さらに、暗号化された結果ファイルは、暗号化領域においてリモートコンピューティングシステムによって生成される。
【0090】
ブロック710においては、暗号化された結果ファイルを、公開鍵に対応する秘密鍵を使用して復号して、暗号化されていない結果ファイルを生成する。
【0091】
ブロック712においては、暗号化されていない結果ファイルを処理して、3D印刷可能オブジェクトの特性を決定する。暗号化されていない結果ファイルを処理することは、結果ファイルを周波数領域から空間領域に変換することを含んでもよい。暗号化されていない結果ファイルを処理することはまた、結果ファイルに含まれる情報を表示すること、結果ファイルの3D視覚表示を生成すること、及び/又は、結果ファイルを使用して対応するオブジェクトモデルの3D視覚表示を変更することを含んでもよい。
【0092】
方法700の実施形態は、
図7に示されない追加のブロックを含んでもよく、
図7に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。例えば、実行される分析のタイプに応じて、方法700は、最終結果が得られる前に、リモートコンピューティングシステムとの間でファイルを送受信する1つ又は複数の追加のラウンドを含むことができる。ブロック702~ブロック712に関連付けられるプロセスは、
図7に示される順序とは異なる順序で実行されてもよい。
【0093】
図8は、本開示の実施形態による、ツールによってアクセス可能な3D印刷可能部品の外部領域を識別する方法のプロセスフロー図である。方法800は、ハードウェア、又はハードウェアとソフトウェアの組合せによって実行され得る。例えば、
図1を参照すると、方法800は、サービスプロバイダコンピューティングシステム102上に存在する比較エンジン118によって実行され得る。さらに、方法800は、プリミティブプロトコルとして、
図6及び
図7に関連して説明したミンコフスキー和プロトコルを使用することができることが理解されよう。したがって、
図6及び
図7に関連して説明される詳細はまた、特定の実装の設計詳細に応じて、方法800にも適用され得る。本方法は、ブロック802から開始することができる。
【0094】
ブロック802においては、暗号化されたオブジェクトファイルと、暗号化されたオブジェクトファイルを処理する要求とを、リモートコンピューティングデバイスから受信する。暗号化されたオブジェクトファイルは、3D印刷可能オブジェクトの仕様を含む。要求は、暗号化されたオブジェクトファイルを処理して、ツールによってアクセス可能な3D印刷可能オブジェクトの領域を識別することである。ブロック804、ブロック806、及びブロック808は、要求に応答して実行され得る。
【0095】
ブロック804においては、ツール仕様を取得し、ツール仕様の補集合を計算し、ツール仕様の補集合を暗号化して暗号化された比較ファイルを生成する。
【0096】
ブロック806においては、暗号化されたオブジェクトファイル及び暗号化された比較ファイルの暗号化されたミンコフスキー和を計算して、ツールによってアクセス可能な3D印刷可能オブジェクトの領域を記述する暗号化された結果ファイルを生成する。暗号化されたミンコフスキー和の計算は、暗号化されたオブジェクトファイルを復号することなく実行される。
【0097】
ブロック808においては、暗号化された結果ファイルをリモートコンピューティングデバイスに送信する。
【0098】
方法800の実施形態は、
図8に示されない追加のブロックを含んでもよく、
図8に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。ブロック802~ブロック808に関連付けられるプロセスは、
図8に示される順序とは異なる順序で実行されてもよい。
【0099】
図9は、本開示の実施形態による、3D印刷可能部品の印刷不可能な特徴を識別する方法のプロセスフロー図である。方法900は、ハードウェア、又はハードウェアとソフトウェアの組合せによって実行され得る。例えば、
図1を参照すると、方法900は、サービスプロバイダコンピューティングシステム102上に存在する比較エンジン118によって実行され得る。さらに、方法900は、プリミティブプロトコルとして、
図6及び
図7に関連して説明したミンコフスキー和プロトコルを使用することができることが理解されよう。したがって、
図6及び
図7に関連して説明される詳細はまた、特定の実装の設計詳細に応じて、方法900にも適用され得る。本方法は、ブロック902から開始することができる。
【0100】
ブロック902においては、第1の暗号化されたファイル及び要求をリモートコンピューティングデバイスから受信する。第1の暗号化されたファイルは、3D印刷可能オブジェクトの仕様を含むオブジェクトファイルの暗号化された補集合である。要求は、第1の暗号化されたファイルを処理して、3D印刷可能オブジェクトの印刷不可能な特徴を識別することである。ブロック906~ブロック912は、要求に応答して実行され得る。
【0101】
ブロック904においては、3Dプリンタの最小印刷可能特徴を記述する暗号化された最小特徴ファイルを取得する。
【0102】
ブロック906においては、第1の暗号化されたファイル及び暗号化された最小特徴ファイルの第1の暗号化されたミンコフスキー和を計算して、暗号化された中間ファイルを生成し、暗号化された中間ファイルをリモートコンピューティングデバイスに送信する。
【0103】
ブロック908においては、第2の暗号化されたファイルをリモートコンピューティングデバイスから受信する。第2の暗号化されたファイルは、暗号化された中間ファイルの暗号化された補集合を含む。
【0104】
ブロック910においては、第2の暗号化されたファイル及び暗号化された最小特徴ファイルの第2の暗号化されたミンコフスキー和を計算して、暗号化された結果ファイルを生成する。
【0105】
ブロック912においては、暗号化された結果ファイルをリモートコンピューティングデバイスに送信する。暗号化された結果ファイルは、3D印刷可能オブジェクトの印刷不可能な特徴を記述する暗号化された情報を含む。
【0106】
方法900の実施形態は、
図9に示されない追加のブロックを含んでもよく、
図9に示されるブロックのいくつかが省略されてもよいことが理解されるであろう。ブロック902~ブロック908に関連付けられるプロセスは、
図9に示される順序とは異なる順序で実行されてもよい。
【0107】
図10は、本明細書で考察される方法論のうちのいずれか1つ以上を機械に行わせるための命令のセット1022又は処理ロジック1026が実行され得る、コンピュータシステム1000の例示的な形態における機械の図表現を示す。様々な実施形態では、機械は、ローカルエリアネットワーク(local area network、LAN)、イントラネット、エクストラネット、又はインターネット内の他の機械に接続(例えば、ネットワーク化)され得る。機械は、クライアント-サーバネットワーク環境内のサーバもしくはクライアントの機械として動作し得るか、又はピアツーピア(又は分散)ネットワーク環境内のピア機械として動作し得る。機械は、パーソナルコンピュータ(personal computer、PC)、タブレットPC、携帯情報端末(Personal Digital Assistant、PDA)、携帯電話、ウェブ機器、サーバ、ネットワークルータ、スイッチもしくはブリッジ、ハブ、アクセスポイント、ネットワークアクセス制御デバイス、又はその機械によってなされるべきアクションを指定する命令のセット(逐次的又はその他)を実行することができる任意の機械であり得る。さらに、単一の機械のみが例解されているが、「機械」という用語はまた、本明細書で考察される方法論のうちのいずれか1つ以上を実行するために命令のセット又は複数のセットを個別に又は共同して実行する機械の任意の集合体も含むものと解釈されるべきである。実施形態では、コンピュータシステム1000は、サービスプロバイダコンピューティングシステム102、クライアントコンピューティングデバイス104、又は他のコンピューティングデバイスもしくはシステムを表し得る。
【0108】
例示的なコンピュータシステム1000は、バス1030を介して互いに通信する、処理デバイス1002と、メインメモリ1004(例えば、リードオンリーメモリ(read-only memory、ROM)と、フラッシュメモリ、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)と、スタティックメモリ1006(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(static random access memory、SRAM)など)と、データ記憶デバイス1018と、を含む。本明細書に記載される様々なバスを通じて提供される信号のいずれかは、他の信号と時分割されて、1つ以上の共有バスを通じて提供され得る。加えて、回路構成要素又はブロック間の相互接続は、バスとして、又は単一の信号線として示され得る。バスの各々は、代替的に、1つ以上の単一の信号線あり得、単一の信号線の各々は、代替的に、バスであり得る。
【0109】
処理デバイス1002は、マイクロプロセッサ、中央処理ユニットなどの1つ以上の汎用処理デバイスを表す。より具体的には、処理デバイスは、複合命令セットコンピューティング(complex instruction set computing、CISC)マイクロプロセッサ、縮小命令セットコンピュータ(reduced instruction set computer、RISC)マイクロプロセッサ、超長命令語(very long instruction word、VLIW)マイクロプロセッサ、又は他の命令セットを実装するプロセッサ、又は命令セットの組み合わせを実装するプロセッサであり得る。処理デバイス1002はまた、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、デジタル信号プロセッサ(digital signal processor、DSP)、ネットワークプロセッサなどの、1つ以上の専用処理デバイスであり得る。処理デバイス1002は、本明細書で説明される動作及びプロセスのいずれかを実行するための処理ロジック1026を実行し得る。
【0110】
データ記憶デバイス1018は、機械可読記憶媒体1028を含み得、そこには、本明細書に記載された動作及びプロセスのうちのいずれか1つ以上を具現化する命令の1つ以上のセット1022(例えば、ソフトウェア)が記憶される。命令1022はまた、コンピュータシステム1000によるその実行中に、メインメモリ1004内又は処理デバイス1002内にも、完全に又は少なくとも部分的に存在し得、メインメモリ1004及び処理デバイス1002はまた、機械可読記憶媒体も構成する。命令1022は、ネットワークインターフェースデバイス1008を介して、ネットワーク1020を通じてさらに送信又は受信され得る。処理ロジック1026及び/又は命令1022は、比較ソフトウェア114及び/又は比較エンジン118を含んでもよく、これらは、処理デバイス1002が、プライバシーが保護される方法でオブジェクトモデル又はオブジェクトファイルを処理するために本明細書に記載されるタスクのいずれかを実行することを可能にするように構成されている。
【0111】
機械可読記憶媒体1028は、例示的な実施形態では単一の媒体であるように示されているが、「機械可読記憶媒体」という用語は、命令の1つ以上のセットを記憶する単一の媒体又は複数の媒体(例えば、集中型もしくは分散型データベース、又は関連するキャッシュ及びサーバ)を含むものと解釈されるべきである。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態(例えば、ソフトウェア、処理アプリケーション)で情報を記憶するための任意の機構を含む。機械可読媒体としては、限定されないが、磁気記憶媒体(例えば、フロッピーディスケット)、光記憶媒体(例えば、CD-ROM)、光磁気記憶媒体、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(random-access memory、RAM)、消去可能なプログラマブルメモリ(例えば、erasable programmable memory、EPROM及びEEPROM)、フラッシュメモリ、又は電子的命令を記憶するのに好適な別のタイプの媒体が挙げられ得る。
【0112】
前述の説明は、本開示のいくつかの実施形態の良好な理解を提供するために、具体的なシステム、構成要素、方法などの例などの多数の具体的な詳細を記載する。しかしながら、本開示の少なくともいくつかの実施形態は、これらの具体的な詳細を伴わずに実行され得ることが、当業者には明らかであろう。他の事例では、本開示を不必要に不明瞭にすることを回避するために、周知の構成要素もしくは方法は詳細に説明されないか、又は単純なブロック図形式で提示される。したがって、記載される具体的な詳細は、単なる例示である。特定の実施形態は、これらの例示的な詳細から変化してもよく、依然として本開示の範囲内であると考えられる。
【0113】
加えて、いくつかの実施形態は、機械可読媒体が、2つ以上のコンピュータシステム上に記憶され、又はそれによって実行される、分散コンピューティング環境において実施され得る。加えて、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を介して引かれるか、又は押され得る。
【0114】
特許請求される主題の実施形態は、本明細書に記載される様々な操作を含むが、これらに限定されない。これらの操作は、ハードウェア構成要素、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実行され得る。
【0115】
本明細書における方法の操作は、特定の順序で示され説明されるが、各方法の操作の順序は、特定の操作が逆順序で実行され得るように、又は特定の操作が他の操作と少なくとも部分的に同時に実行され得るように変更され得る。別の実施形態では、別個の操作の指示又はサブ操作は、断続的又は交互の様式であり得る。
【0116】
要約書に記載されているものを含む、本発明の例解された実装形態の上記の説明は、網羅的であること、又は開示された正確な形態に本発明を限定することを意図するものではない。本発明の特定の実装形態及びその実施例は、例解目的で本明細書に記載されているが、当業者が認識するように、本開示の範囲内で様々な等価の修正が可能である。本明細書で使用される「例」又は「例示的な」という語は、例、事例、又は例解としての役割を果たすことを意味する。「例」又は「例示的な」として本明細書で記載される任意の態様又は設計は、必ずしも他の態様又は設計に比べて好ましい又は有利であると解釈されない。むしろ、「例」又は「例示的な」という語の使用は、具体的な様式で概念を提示することが意図される。本出願で使用される場合、「又は」という用語は、排他的な「又は」ではなく包括的な「又は」を意味することが意図される。すなわち、別段の指定がない限り、又は文脈から明らかでない限り、「Xは、A又はBを含む」は、自然な包括的な順列のうちのいずれかを意味することが意図される。すなわち、XがAを含む場合、XがBを含む場合、又はXがA及びBの両方を含む場合、「XがA又はBを含む」は、前述の例のいずれかの下で満たされる。加えて、本出願及び添付の特許請求の範囲で使用される冠詞「a」及び「an」は、一般に、別段の指定がない限り、又は文脈から単数形を対象とすることから明らかでない限り、「1つ以上」を意味すると解釈されるべきである。さらに、「一実施形態(an embodiment)」又は「一実施形態(one embodiment)」又は「一実装形態(an implementation)」又は「一実装形態(one implementation)」を通しての用語の使用は、そのように記載されない限り、同じ実施形態又は実装形態を意味するとは意図されない。さらに、本明細書で使用される場合、用語「第1」、「第2」、「第3」、「第4」などの用語は、異なる要素を区別するための表示として意味され、必ずしもそれらの数値表記に従った順序の意味を有し得ない。
【0117】
上で開示された、並びに他の特徴及び機能の変形物、又はそれらの代替物は、多くの他の異なるシステム又はアプリケーションに組み合わされ得ることが理解されるであろう。様々な現在予見されない、又は予期されない代替物、修正、変形、又は改善が、その後に当業者によってなされ得、それらも以下の特許請求の範囲によって包含されることを意図している。特許請求の範囲は、ハードウェア、ソフトウェア、又はそれらの組み合わせの実施形態を包含し得る。
【外国語明細書】