(57)【要約】  サードパーティ開発者により送信されるデータ要求が受信された後、サードパーティ開発者がメタデータ記述情報を基にサードパーティアプリケーションを開発するために、要求データのメタデータ記述情報がサードパーティ開発者に送信される。サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報が受信され、サードパーティアプリケーションはデータコンテナ環境で展開される。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータを記憶する。サードパーティアプリケーションはデータコンテナ環境内で実行される。本開示は、データセキュリティリスクと高価値データの公開との間の対立を解決する。
2017514218.tif 000002
【特許請求の範囲】
【請求項１】
データのためのデータ要求を受信することと、
前記データのメタデータ記述情報をサードパーティ開発者に送信することと、
前記サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報を受信することと、
前記サードパーティアプリケーションをデータコンテナ環境内で展開することと、
前記サードパーティアプリケーションを前記データコンテナ環境内で実行することと
を備える方法。
【請求項２】
前記メタデータ記述情報は、前記サードパーティ開発者が前記メタデータ記述情報を基に前記サードパーティアプリケーションを開発するためのものである、請求項１に記載の方法。
【請求項３】
前記データコンテナは、前記サードパーティアプリケーションの実行のために特定のデータを記憶する、請求項１に記載の方法。
【請求項４】
タスク依存性またはアプリケーションシナリオ要件に従って、前記サードパーティアプリケーションをスケジューリングすること
をさらに備える、請求項１に記載の方法。
【請求項５】
前記データコンテナ内で前記サードパーティアプリケーションを前記展開することは、前記スケジューリングの結果に従って、前記データコンテナ内で前記サードパーティアプリケーションを展開することを備える、請求項４に記載の方法。
【請求項６】
前記サードパーティ開発者により送信される前記サードパーティアプリケーションの前記プログラム情報が受信された後、前記サードパーティアプリケーションの動作のセキュリティ審査を前記データに行うこと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記開発されるサードパーティアプリケーションの論理を検証するために、サンプルデータを前記サードパーティ開発者に提供すること
をさらに備える、請求項１に記載の方法。
【請求項８】
サードパーティアプリケーションの様々なアプリケーションタイプは様々な開発ポータルに対応する、請求項１に記載の方法。
【請求項９】
前記サードパーティアプリケーションのアプリケーションタイプに対応するそれぞれの開発インターフェースを提供すること
をさらに備える、請求項８に記載の方法。
【請求項１０】
サードパーティアプリケーションの様々なアプリケーションタイプは様々なデータコンテナに対応する、請求項１に記載の方法。
【請求項１１】
前記サードパーティアプリケーションのアプリケーションタイプを識別することと、
前記サードパーティアプリケーションの前記アプリケーションタイプに対応する、それぞれのデータコンテナ内で前記サードパーティアプリケーションを展開することと
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記サードパーティアプリケーションのアプリケーションタイプは、計算型またはアルゴリズム型を含む、請求項１に記載の方法。
【請求項１３】
前記サードパーティアプリケーションを前記データコンテナ内で前記実行することは、前記サードパーティアプリケーションにより実行される予定のタスクのタイミング要件に従って、前記データコンテナ内で前記サードパーティアプリケーションの分散または同時処理を行うこと
を備える、請求項１に記載の方法。
【請求項１４】
出力データの識別に従って、インターフェースで前記実行の結果をカプセル化すること
をさらに備える、請求項１に記載の方法。
【請求項１５】
前記サードパーティアプリケーションのフォアグラウンドインターフェース論理を受信することと、
フォアグラウンドインターフェース内で前記実行の結果を表示するために、前記データコンテナ内で前記フォアグラウンドインターフェース論理を展開することと
をさらに備える、請求項１に記載の方法。
【請求項１６】
データのためのデータ要求を受信し、前記データのメタデータ記述情報をサードパーティ開発者に送信するメタデータ記述情報送信ユニットと、
前記サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報を受信し、データコンテナ内で前記サードパーティアプリケーションを展開するアプリケーション展開ユニットと、
前記データコンテナ内で前記サードパーティアプリケーションを実行するアプリケーション実行ユニットと
を備えるシステム。
【請求項１７】
前記メタデータ記述情報は、前記サードパーティ開発者が前記メタデータ記述情報を基に前記サードパーティアプリケーションを開発するためのものである、請求項１６に記載の方法。
【請求項１８】
前記データコンテナは、前記サードパーティアプリケーションの実行のための特定のデータを記憶する、請求項１６に記載の方法。
【請求項１９】
１つまたは複数のプロセッサによる、
データのためのデータ要求を受信することと、
前記データのメタデータ記述情報をサードパーティ開発者に送信することと、
前記サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報を受信することと、
前記サードパーティアプリケーションをデータコンテナ内で展開することと、
前記サードパーティアプリケーションを前記データコンテナ内で実行することと
を備える動作を行うことが実行可能なコンピュータ実行可能命令を内部に記憶する、
１つまたは複数のメモリ。
【請求項２０】
前記メタデータ記述情報は、前記サードパーティ開発者が前記メタデータ記述情報を基に前記サードパーティアプリケーションを開発するためのものである、請求項１９に記載の１つまたは複数のメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、参照によりその全体が本明細書に組み込まれる、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｅｘｅｃｕｔｉｎｇ  Ｔｈｉｒｄ−Ｐａｒｔｙ  Ａｐｐｌｉｃａｔｉｏｎ（サードパーティアプリケーションを実行する方法及びシステム）」を発明の名称とする、２０１４年４月２５日出願の中国特許出願第２０１４１０１７２３７３．７号への外国優先権を主張する。
【０００２】
本開示は、サードパーティアプリケーション開発の分野に関し、より詳細には、サードパーティアプリケーションを実行する方法及びシステムに関する。
【背景技術】
【０００３】
プラットフォーム型インターネットアプリケーション（例えば、ある電子商取引プラットフォーム）は、概して、ユーザ（例えば、電子商取引プラットフォームの販売者ユーザ）に、より詳細な及びより垂直のサービスを提供するために、サードパーティ開発者を導入する必要がある。例えば、サードパーティ開発者は、最終的に販売者ユーザに直観的な提案を提供するために、情報、例えば、クリック率、店舗横断クリック、注文伝送量、及び関連するインスタントメッセージツールのチャット記録さえも収集及び解析し得る。つまり、あるインターネットアプリケーションのユーザに関しては、インターネットアプリケーションのウェブページで閲覧されるデータ解析結果などの情報は、多くの場合、サードパーティサーバにより提供される。
【０００４】
先行技術では、インターネットアプリケーションは、オープンプラットフォームを通じて関連データをサードパーティ開発者に開示する必要があり、サードパーティ開発者は、取得したデータをサードパーティ開発者の記憶システムに記憶し、該データを使用することによりサービスの開発及び後続の操作を完了する。
【０００５】
しかしながら、係る実装は、少なくとも以下の欠点を有する。第一に、サードパーティ開発者によりデータが取得された後、データの漏洩、悪用、誤用などの高いリスクがある。これは、取得データにセキュリティ制御を行うことができないためである。第二に、係るセキュリティ上の欠点により、インターネットアプリケーションは、概して、高価値（プライバシー、セキュリティ、及び競争などのリスク）データをサードパーティ開発者に開示することができず、したがって、サードパーティ開発者により実装できる機能が制限される。さらに、サードパーティ開発者自身のソフトウェア及びハードウェアの処理能力が非常に制限されるため、マスデータに計算処理を実装することができない。
【０００６】
例えば、あるサードパーティ開発者が、ある電子商取引プラットフォームで販売者ユーザに商品補充予測サービスを提供しようとする。先行技術では、サードパーティ開発者は、オープンプラットフォームから必要なデータを取得する必要があり、処理及び計算のために、サードパーティ開発者の環境にデータをインプットする。補充に関しては、商品の販売量を予測する必要があるが、データセキュリティ上の問題により、オープンプラットフォームは、業界商品販売量（業界データプライバシーに関わる）、及び同じカテゴリの商品の取引を行う人の属性（業界及び消費者データプライバシーに関わる）などの予測モデルに必要なデータを直接提供することができない。さらに、販売者ユーザの補充経路及び補充戦略は中心的な競争力でもあり、サードパーティ開発者に直接提供されると信用上の問題がある。さらに、予測モデルは、業界ユーザ行動、商品取引商品等を考慮する必要があり、これは大量のデータ量をもたらし、サードパーティ開発者は必要なソフトウェア及びハードウェア開発環境を所有しない可能性がある。要するに、上記すべての要因により、サードパーティサーバが取引プラットフォームでユーザに関連サービスを提供することが妨げられる場合がある。
【発明の概要】
【０００７】
本概要は、以下の発明を実施するための形態でさらに説明する概念の選択を簡略化した形態で紹介するために提供される。本概要は、請求項の全ての主要な特徴または本質的な特徴を識別することを意図するものではなく、請求項の範囲を決定する助けとして単独で使用されることを意図するものでもない。上記のコンテキストにより、及び本開示の全体を通じて許容される場合、「技術」という用語は、例えば、装置（複数可）、システム（複数可）、方法（複数可）及び／またはコンピュータ可読命令を指しても良い。
【０００８】
本開示は、サードパーティアプリケーションを実行する方法及びシステムを提供し、データセキュリティリスクと開示高価値データとの間の対立を解決する。
【０００９】
本開示は、サードパーティアプリケーションを実行するための例示的な方法を提供する。
【００１０】
サードパーティ開発者により送信されるデータ要求が受信された後、サードパーティ開発者がメタデータ記述情報を基にサードパーティアプリケーションを開発するために、要求データのメタデータ記述情報がサードパーティ開発者に送信される。サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報が受信され、サードパーティアプリケーションはデータコンテナなどのデータコンテナ環境内で展開される。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータを記憶する。サードパーティアプリケーションは、データコンテナ環境内で実行される。
【００１１】
本開示は、サードパーティアプリケーションを実行するための例示的なシステムを提供する。システムは、以下のユニットを含んでも良い。
【００１２】
サードパーティ開発者により送信されるデータ要求が受信された後、メタデータ記述情報送信ユニットは、サードパーティ開発者がメタデータ記述情報を基にサードパーティアプリケーションを開発するために、要求データのメタデータ記述情報をサードパーティ開発者に送信する。アプリケーション展開ユニットは、サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報を受信し、データコンテナなどのデータコンテナ環境でサードパーティアプリケーションを展開する。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータを記憶する。アプリケーション実行ユニットは、データコンテナ環境内でサードパーティアプリケーションを実行する。
【００１３】
本開示に提供される例示的な実施形態において、本開示は以下の技術的効果を開示する。
【００１４】
本開示の例示的な実施形態は、サードパーティ開発者にデータコンテナシステムを提供し、サードパーティ開発者にデータを送信する代わりに、カテゴリに従ってシステムの内部のデータコンテナでの計算に必要なデータを記憶する。サードパーティ開発者は、サードパーティアプリケーションの計算論理またはアルゴリズム論理の開発を完了した後、データ及びデータの操作がすべてデータコンテナの内部で完了し、サードパーティ開発者が、特定のデータコンテンツを見ることなく、対応する計算論理またはアルゴリズムを提供しても良いように、このデータコンテナ内でサードパーティアプリケーションをさらに展開し、これによりデータセキュリティリスクと高価値データの公開との間の対立を解決する。
【００１５】
もちろん、本開示を実装するいかなる製品も上記の利点のすべてを同時に達成する必要はない。
【００１６】
本開示の例示的な実施形態でのまたは先行技術での技術的解決策を説明するために、以下では、例示的な実施形態に必要とされる添付図面を簡潔に紹介する。明らかに、以下の説明での添付図面は、本開示のいくつかの例示的な実施形態に過ぎず、当業者は、創造的な努力を用いることなく、これらの添付図面から他の図面をさらに取得しても良い。
【図面の簡単な説明】
【００１７】
【図１】本開示の例示的な実施形態により提供される例示的な方法のフローチャートである。
【図２】本開示の例示的な実施形態により提供されるシステムの模式図である。
【発明を実施するための形態】
【００１８】
以下では、本開示の実施形態の添付図面を参照して、本開示の例示的な実施形態の技術的解決策を説明する。明らかに、説明される例示的な実施形態は、本開示の実施形態のすべてよりもむしろ一部である。本開示の例示的な実施形態を基に当業者によって取得されるすべての他の実施形態は、本開示の保護範囲内に属するものとする。
【００１９】
本開示の例示的な実施形態は、データのセキュリティを保証し、サードパーティ開発者がより多岐にわたるサービスを提供することが可能になるデータコンテナシステムを提供し、サードパーティ開発者にデータを送信する代わりに、カテゴリに従ってシステムの内部のデータコンテナでの計算に必要なデータを記憶する。サードパーティ開発者は、サードパーティアプリケーションの計算論理またはアルゴリズム論理の開発を完了した後、データ及びデータの操作がすべてデータコンテナの内部で完了し、サードパーティ開発者が、特定のデータコンテンツを見ることなく、対応する計算論理またはアルゴリズムを提供するように、このデータコンテナ内でサードパーティアプリケーションをさらに展開し、これによりデータセキュリティリスクと高価値データの公開との間の対立を解決する。例示的な実装プロセスを以下に詳細に説明する。
【００２０】
まず、実装プロセスの全体において、データコンテンツがサードパーティ開発者に直接提供されることはないので、アプリケーションプラットフォームはサービス開発内でサードパーティサーバをサポートする必要があることに留意すべきである。開発が完了した後、アプリケーションプラットフォームは後続の展開等もサポートする必要がある。図１はサードパーティアプリケーションを実行するための例示的な方法を指し、以下の動作を含んでも良い。
【００２１】
１０２では、サードパーティ開発者により送信されるデータ要求が受信された後、サードパーティ開発者がメタデータ記述情報を基にサードパーティアプリケーションを開発するために、要求データのメタデータ記述情報がサードパーティ開発者に送信される。
【００２２】
サードパーティ開発者がコード編集、デバッグ等を行っても良い、バックグラウンド開発用のインターフェースがサードパーティ開発者に提供される。例えば、インターフェースはウェブページの形態でも良い。つまり、サードパーティ開発者はアプリケーションプラットフォームのシステムに直接ログインして、特定の開発動作を実行するためにバックグラウンド開発ページを入力しても良い。
【００２３】
データコンテナ内には大量のデータがあり、サードパーティ開発者は、多くの場合、一定の態様でサービスを提供するにすぎないため、概して、データの一部のみが使用されるだろう。したがって、データコンテナ内のデータは複数のカテゴリに事前に分類されても良く、各カテゴリのデータは１つのデータサブジェクトに対応する。例えば、ある電子商取引プラットフォームでは、データサブジェクトは、配達、受領、注文管理、及び顧客サービスなどのサブジェクトを含んでも良い。サードパーティ開発者が開発プラットフォームにアクセスした後、最初に、種々の選択可能なデータサブジェクトをサードパーティ開発者に表示しても良く、サードパーティサーバは、開発が必要なサービスに従って、対応するデータサブジェクトを選択しても良い。例えば、サードパーティ開発者が注文管理に関するサービスを開発しようとする場合、注文管理のデータサブジェクトが選択されても良い。
【００２４】
サードパーティ開発者があるデータサブジェクトを選択した後、サードパーティ開発者がアプリケーション開発を行うために、データサブジェクトに使用されても良いメタデータ記述情報をサードパーティ開発者に提供しても良い。オープンプラットフォーム内のデータは、概して、データテーブル（関係型データベースのテーブル）の形式で記憶されることに留意すべきである。したがって、メタデータ記述情報がサードパーティ開発者に提供される場合、情報はデータテーブルの名前及びデータテーブルのフィールド情報を含んでも良い。つまり、サードパーティ開発者は、どのフィールドがデータテーブル内にあるかを知っていても良い。例えば、ユーザ情報を記憶するテーブルＡに関しては、データテーブルＡのフィールドは年齢、性別等を含む。この場合、データテーブルＡの名前、ならびに年齢及び性別などのフィールド名をサードパーティ開発者に提供しても良い。このように、サードパーティ開発者は、これらのフィールド名に基づき、及びデータテーブルの基本操作方法と組み合わせて、サードパーティアプリケーション内に特定の論理を開発しても良い。データテーブルの基本操作は、種々のプログラミング言語をサポートしても良く、例えば、データのアクセス、ならびに関係データベースシステムの問い合わせ、更新及び管理に使用される、ＪＡＶＡ（登録商標）及びＳＱＬなどの言語をサポートし、データテーブル内の種々のフィールドのデータへの操作を実行しても良い。
【００２５】
つまり、本開示の例示的な実施形態は、データテーブル内の特定のデータをサードパーティ開発者に提供する必要はなく、その情報に関するフィールドがデータテーブル内にある情報のみをサードパーティ開発者に提供する。当然ながら、実際の実装では、サードパーティ開発者が特定のアプリケーションを開発した後で、アプリケーションの計算論理の検証動作を行うために、オープンプラットフォームは何らかのサンプルデータをサードパーティ開発者に提供しても良い。係るサンプルデータは何らかの例示的なデータであっても良く、例えば、ユーザの数年前の行動データを組み合わせることにより形成される。該データは数年前に取得され、データフラグメントを組み合わせて形成されるため、概して、情報漏洩などの問題は発生しないだろう。
【００２６】
いくつかの大型のサードパーティアプリケーションでは、概して、非常に大量のコードが必要となり、コードの編集プロセスは複雑になり、ミスを犯しやすくなる。本開示の例示的な実施形態では、開発プロセスを簡略化するために、サードパーティ開発者はアプリケーションを数個のサブアプリケーションに分割し、各サブアプリケーションのコードをそれぞれ開発環境で開発することが可能であり、最後に、オープンプラットフォームを使用して、各サブアプリケーションの間の依存性に従って各サブアプリケーションを互いに関連付け、対応するサードパーティアプリケーションを一緒に実現する。
【００２７】
さらに、サードパーティアプリケーションを様々なタイプに分類しても良い。種々のタイプのアプリケーション用に対応する開発インターフェース及び種々のタイプの開発ポータルがそれぞれ提供される。サードパーティ開発者があるタイプのアプリケーションを開発したい場合、サードパーティ開発者は係るタイプの開発ポータルを通じて入るだろう。開発ポータルを通じてユーザの要求を受信した後、オープンプラットフォームは対応する開発インターフェースを表示しても良く、サードパーティ開発者はインターフェースでコード編集及びデバッグなどの作業を行っても良い。例えば、サードパーティアプリケーションは、計算型アプリケーション及びアルゴリズム型アプリケーションに分類されても良い。この場合、特定の入られるインターフェースに従って、オープンプラットフォームは相応に開発されたサードパーティアプリケーションのタイプを識別し、後続のスケジューリングの間に、一致するデータコンテナに送信しても良い。
【００２８】
サードパーティ開発者により開発された同一のサードパーティアプリケーションは、複数のサブアプリケーションから構成されても良く、各サブアプリケーションは様々なタイプのアプリケーションであっても良いことに留意すべきである。さらに、サブアプリケーションは互いにデータ転送を行っても良い。
【００２９】
さらに、実際の実装では、あるサードパーティ開発者により送信されるデータ要求が受信されると、係るデータ要求の審査がさらに行われても良く、審査は、例えば、サードパーティ開発者の資格の審査を含んでも良いことに留意すべきである。さらに、ユーザデータに関わる場合、ユーザ認証も同様に確立されても良い。つまり、サードパーティ開発者によるユーザデータの使用を許可するかどうかをユーザに問い合わせる。ユーザが認証する場合、対応するメタデータ記述情報、サンプルデータ等がサードパーティ開発者に返されても良い。それ以外の場合、つまりユーザの認証を取得できない場合、対応する情報はサードパーティ開発者に返されないだろう。
【００３０】
１０４では、サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報が受信され、サードパーティアプリケーションがデータコンテナ環境内で展開される。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータをさらに記憶する。
【００３１】
あるサードパーティアプリケーションの開発が完了した後、サードパーティ開発者はサードパーティアプリケーションをオープンプラットフォームに送信しても良く、これに対応して、開発プラットフォームはサードパーティアプリケーションの論理をオープンプラットフォームの内部のデータコンテナ環境に展開しても良い。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータを記憶するため、サードパーティアプリケーションはデータコンテナ環境内で実行されても良い。このように、データ処理の特定プロセスはデータコンテナの内部で完了し、処理される予定のデータをサードパーティ開発者に開示する必要がない。
【００３２】
実際の実装では、サードパーティ開発者により送信されるサードパーティアプリケーションが受信された後、アプリケーションにセキュリティ審査をさらに行っても良い。例えば、本開示の技術は、機密データが存在するかどうか、データへの機密操作が存在するかどうかなどを判定する。次いで、機密データへの操作が存在する場合、または機密操作が存在する場合、データ出力中に遮断が行われても良く、これによりデータのセキュリティをさらに改善する。セキュリティ監査に使用されるモードは複数あっても良い。例えば、単純モードでは、キーワードなどを使用して直接フィルタリングを行っても良い。
【００３３】
代替的には、本開示の技術は、サードパーティアプリケーションがいくつかの特定の商品オブジェクトの取引情報を有するかどうかを判定する。代替的には、定量化可能なデータでは、本開示の技術は、総データ量に対する、サードパーティアプリケーションにより使用される、ある業界データのデータ量の割合を測定する。割合が一定値に達する場合、業界の他の情報がこれに応じて推定される可能性があり、これにより業界データの漏洩が発生し、セキュリティ上の問題があることを示す。
【００３４】
代替的には、サードパーティアプリケーションがいくつかのユーザＩＤなどの情報を含む場合、本開示の技術は、ユーザの正体などの機密情報が推定を通じて取得される可能性があるかどうかを判定する。取得される場合、それはセキュリティ上の問題があることをさらに示す。要するに、セキュリティ審査が行われる場合、複数の判定条件を事前にプリセットしても良い。あるサードパーティアプリケーションに関しては、判定条件を使用して判定が行われても良い。プリセットされた１つまたは複数の条件がヒットする場合、サードパーティアプリケーションはセキュリティ上の問題を有すると考えられる。
【００３５】
上記に説明する通り、サードパーティアプリケーションの中には、いくつかの依存関係を有しても良いものもある。例えば、あるアプリケーションは、別のアプリケーションの実行結果に依存しても良く、したがって、当該アプリケーションは別のアプリケーションの実行が完了した後に実行する必要がある。さらに、サードパーティアプリケーションの中には、特定のアプリケーションシナリオで実行する必要があるものもある。したがって、データコンテナに展開が送信される前に、現在実行する必要のあるサードパーティアプリケーションをデータコンテナに送信するために、依存性及びアプリケーションシナリオなどの情報に従って、送信される各サードパーティアプリケーションがスケジューリングされても良い。
【００３６】
実行する必要のあるアプリケーションがデータコンテナに送信される場合、例えば、アプリケーションの優先度及びリソース分散状態（例えば、一定の割合のＣＰＵ及びメモリリソースがアプリケーションに分散されるだろう）などの、いくつかの制御コマンドがさらに送信されても良く、これによりデータコンテナはこれらの制御コマンドに従って実行できる。リソース分散状態はデータの予測される入出力に基づき、何らかのアルゴリズムに従って計算されても良い。もちろん、実際の実装では、サードパーティ開発者により命令されたリソースの数などの情報に従って総合的に決定が行われても良い。
【００３７】
１０６では、サードパーティアプリケーションがデータコンテナ環境内で実行される。
【００３８】
サードパーティアプリケーションがデータコンテナ内で展開された後、サードパーティアプリケーションはデータコンテナ内で実行されても良い。詳細には、実行中、サードパーティアプリケーションのタスク特性に従って、同時処理または非同時処理を行っても良い。これに対応して、データコンテナは「分散処理コンテナ」または「同時処理コンテナ」に分類されても良い。前者は、別個の実行のために複数のコンテナにタスクを分散することに相当し、最後に組み合わせがあり、組み合わせは、概して、低いタイミング要件を有するタスクを処理する際に使用される。後者は、実行タスクの受信直後に処理を行い、概して、高いタイミング要件を有するタスクに対して使用される。したがって、タスク特性はタイミング要件と呼ばれても良い。タスク特性は、開発中にサードパーティ開発者により指定されても良い。
【００３９】
サードパーティアプリケーションの実行が完了した後、使用のために実行結果をユーザに提供しても良い。実行結果をユーザに提供する方法は複数ある。１つは、サードパーティ開発者が実行結果を取得し、サードパーティ開発者のインターフェースに実行結果を表示する方法である。サードパーティ開発者が実行結果を取得するためには、以下の動作が行われるだろう。サードパーティ開発者により開発されるサードパーティアプリケーションのコンピュータ実行可能命令またはコードは、出力データの識別に従って、インターフェース（ＵＲＬなど）でカプセル化されても良い。データコンテナが実行を完了した後、実行結果とＵＲＬとの対応関係が記録されても良い。サードパーティ開発者が実行結果を要求する場合、実行結果はＵＲＬに従って返されても良い。特定の実装では、多くの方法を使用しても良い。
【００４０】
例えば、１つの方法では、実行結果を一様に取得するためのポータルを各サードパーティ開発者に提供しても良く、つまり、各サードパーティ開発者が実行結果を要求する度に、同じＵＲＬに要求を送信しても良いが、サードパーティ開発者のＩＤ及びそのときに要求された出力データの識別などの識別情報を同時に送らなければならない。要求を受信した後、開発プラットフォームは、送られたＩＤ及び出力データの識別に従って、要求された実行結果に対応するＵＲＬを決定しても良く、次いで、実行結果をサードパーティ開発者に返しても良い。
【００４１】
代替的には、別の実装では、実行結果に対応するＵＲＬをサードパーティ開発者に直接提供しても良く、この方法では、サードパーティ開発者は、実際に対応するＵＲＬに従って、対応する実行結果の取得を要求しても良い。
【００４２】
さらに、実際の実装では、以下の状況、つまり、データコンテナ内での実行から取得された実行結果に機密情報が依然として存在する状況が存在し得る。係る状況下において、サードパーティ開発者が実行結果を直接取得すると、やはりユーザデータが漏洩するリスクがあり得る。例えば、ある種の情報の宣伝用にいくつかのユーザを選別するあるサードパーティアプリケーションを使用され、サードパーティアプリケーションの実行結果はユーザの連絡先情報などの情報を含み得る。この情報がサードパーティ開発者に提供されると、やはりリスクがあるだろう。したがって、係る状況下において、特定の実装では、サードパーティ開発者は、データコンテナ内でフォアグラウンドインターフェース表示論理を展開する必要がさらにあり得る。実行結果が取得された後、データコンテナ内のフォアグラウンドインターフェース表示論理に従って、ユーザに実行結果を直接提供しても良い。
【００４３】
理解を容易にするために、以下の例を通して詳細な説明を行う。
【００４４】
特定の実装は以下のステップを含んでも良い。
【００４５】
ステップ１：サードパーティ開発者は、オープンプラットフォームのバックグラウンドにログインし、このとき、インターフェースは選択可能な各データサブジェクトを表示しても良い。
【００４６】
ステップ２：サードパーティ開発者は、あるデータサブジェクトを要求する。
【００４７】
ステップ３：オープンプラットフォームはサードパーティ開発者の要求の審査を行い、審査はサードパーティ開発者がデータサブジェクトを要求する資格を有するかどうかを判定するために主に使用される。
【００４８】
ステップ４：データアプリケーションを審査で許可するかどうかの判定を行う。許可しない場合、失敗などの通知メッセージが返される。データアプリケーションが審査で許可される場合、ステップ５の動作が行われる。
【００４９】
ステップ５：サードパーティ開発者は、サンプルデータを要求する。
【００５０】
ステップ６：オープンプラットフォームは、認証審査メッセージをユーザに送信する。
【００５１】
ステップ７：認証を許可するかどうかの判定を行う。許可しない場合、失敗などの通知メッセージが返される。許可する場合、ステップ８の動作が行われる。
【００５２】
ステップ８：サードパーティ開発者は、開発インターフェースにアクセスし、サードパーティアプリケーションを開発する。
【００５３】
ステップ９：開発が完了した後、サードパーティアプリケーションは審査のためにオープンプラットフォームに送信される。
【００５４】
ステップ１０：オープンプラットフォームはサードパーティアプリケーションにデータセキュリティ審査を行う。
【００５５】
ステップ１１：データセキュリティ審査を許可するかどうかの判定を行う。許可しない場合、監査失敗などの通知メッセージが返される。許可する場合、ステップ１２の動作が行われる。
【００５６】
ステップ１２：サードパーティ開発者は、展開のために、サードパーティアプリケーションをオープンプラットフォームに送信する。
【００５７】
ステップ１３：オープンプラットフォームは、実行のために、サードパーティアプリケーションをデータコンテナに展開する。
【００５８】
ステップ１４：使用のために、実行結果をユーザに提供する。
【００５９】
本開示の実施形態の技術的解決策をより理解するために、開発プラットフォームは以下の通り、複数のモジュールに分割されるだろう。各モジュールの機能及びモジュール間の関連をそれぞれ説明する。例えば、オープンプラットフォームは以下のモジュールを含んでも良い。
【００６０】
ログイン検証モジュール：事前に登録したアカウント情報を使用することにより、サードパーティ開発者がオープンプラットフォームにログインした後、オープンプラットフォームはサードパーティ開発者の身元を検証しても良く、身元検証が完了した後、サードパーティ開発者にトークンを付与する。サードパーティ開発者は該トークンを用いてシステムにアクセスしても良い。
【００６１】
認証検証モジュール：オープンプラットフォームは、サードパーティ開発者のデータ権利及び操作権利をさらに検証しても良く、認証検証が完了した後、対応するデータ権利及びアプリケーション開発権利をサードパーティ開発者に付与する。
【００６２】
データアプリケーション開発モジュール：データアプリケーション開発環境を統合し、コード編集、デバッグなどを行っても良い開発インターフェースをサードパーティ開発者に提供する。例示的な実装では、データアプリケーション開発モジュールは、汎用計算型データアプリケーション開発サブモジュール及びアルゴリズム型データアプリケーション開発サブモジュールを含む２部により形成されても良い。サードパーティ開発者は、開発予定のサブプログラムのカテゴリに従って、対応するサブモジュールにアクセスすることを選択しても良い。開発インターフェースでは、２つのサブモジュールのポータルを提供しても良く、インターフェースにアクセスした後、２つのサブモジュールはそれぞれの開発インターフェースを有するだろう。あるサードパーティ開発者が計算型サブプログラムの開発を望む場合、該サードパーティ開発者は汎用計算型データアプリケーション開発サブモジュールのポータルから入っても良く、これにより汎用計算型データアプリケーション開発サブモジュールに対応する開発インターフェースを開く。同様に、該サードパーティ開発者がアルゴリズム型サブプログラムの開発を望む場合、サードパーティ開発者は汎用アルゴリズム型データアプリケーション開発サブモジュールのポータルから入っても良く、これにより汎用アルゴリズム型データアプリケーション開発サブモジュールの開発インターフェースを開く。
【００６３】
汎用計算型データアプリケーション開発サブモジュールの主な機能は、例えば、以下を含んでも良い。
【００６４】
ａ）アプリケーションアイテム管理：アプリケーションアイテムに関する追加、削除、修正、検索、共有、認証、連携などを含む。
【００６５】
ｂ）コード開発環境インターフェースは、例えば、以下を含む。
【００６６】
ｉ．コード開発エディタ
【００６７】
ｉｉ．コード強調表示及び文法チェックなどの補足的な効率ツール
【００６８】
ｉｉｉ．メタデータ管理：メタデータ詳細記述（テーブル識別、フィールド名などを含む）、データ依存性、及び対話管理
【００６９】
ｃ）コードサンドボックス環境管理インターフェースは、例えば、以下を含む。
【００７０】
ｉ．コードシミュレーション化実行（計算論理を検証するためにコードが開発された後にテストを行っても良い）
【００７１】
ｉｉ．データセット作成
【００７２】
ｄ）コード管理は、例えば、コードバージョン管理及びディレクトリ管理を含む。コードの開発が完了した後、オープンプラットフォームはコードをコードバージョン管理に記憶しても良い。後にコードを修正する必要がある場合には、新規バージョンが生成されても良い。コードのコピーが記憶されると、オープンプラットフォームは対応するプログラムパケットにコードをカプセル化しても良い。同じアプリケーション内の様々なサブプログラムに対応するプログラムパケットに関しては、各プログラムパケットのアプリケーションシナリオ要件などの情報、各プログラムパケットの開始条件（例えば、パケットは一定の時間ポイントで開始する必要がある、パケットはある指定プログラムの実行が完了した後で開始する必要がある、等）及びプログラムパケット間の依存性をさらに識別しても良い。
【００７３】
プログラムパケットの開始条件は、サードパーティ開発者により指定されても良い。プログラムパケット間の依存性はサードパーティ開発者により指定されるか、オープンプラットフォームにより自動的に取得されても良いかのいずれかであっても良い。例えば、各プログラムパケットのコードの解析を通じて、オープンプラットフォームは、プログラムパケット１の論理がテーブルｂ及びテーブルｃを生成するためにテーブルａを処理しようとし、プログラムパケット２の論理がテーブルｄを生成するためにテーブルｂを処理しようとすることを得る。その結果、プログラムパケット２はプログラムパケット１に依存すると判定され、したがって、依存性は自動的に識別されても良い。
【００７４】
ｅ）アプリケーション管理は、例えば、アプリケーション起動、アプリケーション削除、及びアプリケーション状態クエリを含む。
【００７５】
ｆ）費用管理は、例えば、支払、更改、決済、清算、及び残高管理を含む。
【００７６】
アルゴリズム型データアプリケーション開発サブモジュールの主な機能は以下を含んでも良い。
【００７７】
ａ）例えば、追加、削除、修正、検索、共有、認証、及び連携を含むアルゴリズムモデル管理
【００７８】
ｂ）基本モデルベース
【００７９】
ｃ）例えば、統計分布検証、機能抽出、及び検証を含むデータ機能解析環境
【００８０】
ｄ）例えば、モデルトレーニング及び結果検証を含むモデルトレーニング管理
【００８１】
サンドボックスデータコンテナ環境モジュールは、コード及びデータセットを検証するための計算環境を提供し、例えば、以下を含む。
【００８２】
ａ）例えば、以下を含むコード実行環境
【００８３】
ｉ．分散コード実行環境（マップリデュースプログラム、ＳＱＬプログラム）
【００８４】
ｉｉ．アルゴリズム実行環境
【００８５】
ｂ）データ環境：コード実行、必要なデータベース、データセット、データセット作成ツールなどのためのデータサポート環境を提供する。データはオープンプラットフォームにより提供されるサンプルデータでも良い。例えば、ユーザの数年前のデータを共に組み合わせ、依然として実データではない同じデータ構造を有するデータを生成する。係るデータは、サードパーティ開発者により開発されるコードを検証するために、サードパーティ開発者に提供される。
【００８６】
タスク・ワークフロー・スケジューリング・モジュール：タスク依存性及びアプリケーションシナリオ要件に従って、サードパーティ開発者により送信されるアプリケーションのスケジューリングを担い、データコンテナ環境に対して実行する必要のあるアプリケーションを送信する（データコンテナは、プリセットインターフェースを使用することにより、タスク・ワークフロー・スケジューリング・モジュールの送信された要求を監視し、したがって、タスク・ワークフロー・スケジューリング・モジュールが実行する必要のあるアプリケーションがあることを発見した場合、データコンテナのインターフェースを通じて要求が送信されても良い）。開発モジュールが計算型データアプリケーション開発サブモジュール及びアルゴリズム型データアプリケーション開発サブモジュールを含む場合、開発プロセス時に識別された計算型アプリケーションまたはアルゴリズム型アプリケーションに従って、スケジューリング中に、実行する必要のあるアプリケーションは、実行のために「汎用計算コンテナ環境」または「アルゴリズムコンテナ環境」に送信されても良い。さらに、実行する必要のあるアプリケーションをデータコンテナに送信する際に、タスク・ワークフロー・スケジューリング・モジュールは、１つまたは複数の制御コマンドをさらに送信しても良く、これによりデータコンテナはこれらの制御コマンドに従って実行できる。
【００８７】
汎用計算コンテナ環境
ａ）タスク・ワークフロー・スケジューリング・モジュールにより送信される汎用計算タスクを受信し、タスクの様々な特性に従って、対応する「分散処理コンテナ」または「同時処理コンテナ」に計算タスクを送信する。
【００８８】
ｂ）タスクの監視、追跡、及びデータ収集を行う。
【００８９】
ｃ）データクエリの機能を完成するために、「データクエリ中間層」と通信する。
【００９０】
アルゴリズムコンテナ環境
【００９１】
ａ）タスク・ワークフロー・スケジューリング・モジュールにより送信されるアルゴリズムタスクを受信し、様々な特性に従って、対応する「分散処理コンテナ」または「同時処理コンテナ」にアルゴリズムタスクを送信する。
【００９２】
ｂ）「基本アルゴリズムパケット」サブモジュール。アルゴリズム型データアプリケーション開発サブモジュールで開発する際に、サードパーティ開発者は、自己決定した要件に従って、アルゴリズムコードを編集しても良い。代替的には、オープンプラットフォームは、サードパーティ開発者にいくつかの基本アルゴリズムをさらに提供しても良く、サードパーティ開発者は、基本アルゴリズムに基づいて、要求された機能を選択し、アルゴリズムのパラメータを調整し、これにより開発効率を改善する。これに対応して、アルゴリズムコンテナ環境では、呼び出しモジュールを実行可能な基本アルゴリズムがさらに提供されても良い。基本アルゴリズムは、例えば、以下を含んでも良い。
【００９３】
ｉ．ソートアルゴリズム
【００９４】
ｉｉ．クラスタリングアルゴリズム
【００９５】
ｉｉｉ．回帰アルゴリズム
【００９６】
データセキュリティ審査エンジン：サードパーティ開発者がコードの開発を完了した後、及びデータコンテナ内でのコードの展開の前に、セキュリティ審査がさらに行われても良い。
【００９７】
本開示の例示的な実施形態において提供されるサードパーティアプリケーションを実行する方法に対応して、本開示の例示的な実施形態は、サードパーティアプリケーションを実行する例示的なシステムをさらに提供する。図２を参照すると、システム２００は１つまたは複数のプロセッサ（複数可）またはデータ処理ユニット（複数可）２０２、及びメモリ２０４を含んでも良い。システム２００は、１つまたは複数の入出力デバイス及びネットワークインターフェース（図２に図示せず）をさらに含んでも良い。メモリ２０４はコンピュータ可読媒体の一例である。
【００９８】
コンピュータ可読媒体は、情報記憶を実装する任意の方法または技術を使用しても良い、永続的及び非永続的な、取り外し可能及び取り外し不可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、ソフトウェアモジュール、または任意のデータであっても良い。コンピュータ記憶媒体の例としては、相変化メモリ（ＰＣＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のＲＡＭ、ＲＯＭ、電気的消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、内部メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、光メモリ、磁気テープ、磁気ディスク、他の任意の磁気ストレージデバイス、またはコンピューティングデバイスによりアクセス可能な情報を記憶しても良い任意の他の非伝送媒体を含んでも良いが、これらに限定されない。本明細書中で定義されるように、コンピュータ可読媒体は、変調されたデータ信号及び搬送波などの一時的な媒体を含まない。
【００９９】
メモリ２０４は、メタデータ記述情報送信ユニット２０６、アプリケーション展開ユニット２０８、及びアプリケーション実行ユニット２１０を含む、複数のモジュールまたはユニットを内部に記憶しても良い。
【０１００】
メタデータ記述情報送信ユニット２０６は、サードパーティ開発者により送信されるデータ要求を受信した後、サードパーティ開発者がメタデータ記述情報を基にサードパーティアプリケーションを開発するために、要求データのメタデータ記述情報をサードパーティ開発者に送信する。
【０１０１】
アプリケーション展開ユニット２０８は、サードパーティ開発者により送信されるサードパーティアプリケーションのプログラム情報を受信し、データコンテナ環境内でサードパーティアプリケーションを展開する。データコンテナ環境は、サードパーティアプリケーションの実行中に必要な特定のデータをさらに記憶する。
【０１０２】
アプリケーション実行ユニット２１０は、データコンテナ環境内でサードパーティアプリケーションを実行する。
【０１０３】
例えば、システム２００は、タスク依存性及び／またはアプリケーションシナリオ要件に従って、サードパーティアプリケーションをスケジューリングするスケジューリングユニット（図２に図示せず）をさらに含んでも良い。
【０１０４】
アプリケーション展開ユニット２０８は、スケジューリング結果に従って、データコンテナ環境内で現在実行する必要のあるサードパーティアプリケーションをさらに展開しても良い。
【０１０５】
さらに、システム２００は、サードパーティ開発者により送信されるサードパーティアプリケーションが受信された後、サードパーティアプリケーションの動作のセキュリティ審査をデータに行うセキュリティ審査ユニット（図２に図示せず）をさらに含んでも良い。
【０１０６】
サードパーティの開発を容易にするために、システム２００は、サードパーティ開発者によるデータ要求が受信された後、サードパーティ開発者が開発されたサードパーティアプリケーションの論理を検証するために、サンプルデータをサードパーティ開発者に提供する、サンプルデータ提供ユニット（図２に図示せず）をさらに含んでも良い。
【０１０７】
様々なアプリケーションタイプが様々な開発ポータルに対応するため、システム２００は、あるタイプの開発ポータルからユーザの開発要求が受信された後、対応するタイプのアプリケーションの開発インターフェースをユーザに提供する、インターフェース提供ユニット（図２に図示せず）をさらに含んでも良い。
【０１０８】
様々なアプリケーションタイプが様々なデータコンテナ環境に対応するため、システム２００は、あるタイプの開発ポータルからユーザの開発要求が受信された後、相応に開発されたサードパーティアプリケーションのタイプを識別する、識別ユニット（図２に図示せず）をさらに含んでも良い。
【０１０９】
アプリケーション展開ユニット２０８は、サードパーティアプリケーションのタイプに従って、該タイプに対応するデータコンテナ環境内でサードパーティアプリケーションをさらに展開しても良い。
【０１１０】
アプリケーションタイプは、計算型またはアルゴリズム型を含んでも良い。例えば、アプリケーション実行ユニット２１０は、サードパーティアプリケーションにより実行する必要のあるタスクのタイミング要件に従って、データコンテナ環境内でサードパーティアプリケーションに分散または同時処理をさらに行っても良い。
【０１１１】
さらに、システム２００は、サードパーティアプリケーションの実行が完了した後、サードパーティ開発者がインターフェースに従って、サードパーティアプリケーションの実行結果を取得できるよう、出力データの識別に従って、サードパーティアプリケーションをインターフェースにカプセル化する、カプセル化ユニット（図２に図示せず）をさらに含んでも良い。
【０１１２】
システム２００は、以下のユニット（図２に図示せず）をさらに含んでも良い。フォアグラウンドインターフェース論理受信ユニットは、サードパーティ開発者により送信されるサードパーティアプリケーションのフォアグラウンドインターフェース論理を受信する。インターフェース論理展開ユニットは、サードパーティアプリケーションの実行が完了した後、フォアグラウンドインターフェースに実行結果を表示できるよう、データコンテナ内でフォアグラウンドインターフェース論理を展開する。
【０１１３】
要するに、本開示の例示的な実施形態は、サードパーティ開発者のためのデータコンテナシステムを提供し、サードパーティ開発者にデータを送信する代わりに、カテゴリに従ってシステムの内部のデータコンテナでの計算に必要なデータを記憶し、サードパーティ開発者は、サードパーティアプリケーションの計算論理またはアルゴリズム論理の開発を完了した後、このデータコンテナ内でサードパーティアプリケーションをさらに展開する。したがって、データ及びデータの操作はすべてデータコンテナの内部で完了し、サードパーティ開発者は、特定のデータコンテンツを見ることなく、対応する計算論理またはアルゴリズムを提供し、これによりデータセキュリティリスクと高価値データの公開との間の対立を解決する。
【０１１４】
上述の説明に基づいて、当業者であれば、必要なユニバーサルハードウェアプラットフォームに加えてソフトウェアにより、本開示を実装しても良いことを明確に理解することができる。係る理解に基づいて、本質的にまたはその部分が先行技術に貢献する本開示の技術的解決策をソフトウェア製品の形態で実装しても良い。コンピュータソフトウェア製品は、コンピュータ記憶媒体、例えば、ＲＯＭ／ＲＡＭ、磁気ディスク、または光ディスクに記憶されても良く、本開示のそれぞれの例示的な実施形態のいくつかの部分またはすべてに記載の方法を行うための、コンピュータデバイス（パーソナルコンピュータ、サーバ、またはネットワークデバイスでも良い）を命令するコンピュータ実行可能命令を含んでも良い。
【０１１５】
本明細書における例示的な実施形態が漸進的に説明される。実施形態の同一または類似の要素を相互に参照して取得しても良く、各実施形態は、他の実施形態とは異なる要素を強調する。とりわけ、システムまたはシステム実施形態は、それが方法実施形態と基本的に類似するため、簡潔に説明され、関連部分は方法実施形態の説明を参照して取得されても良い。上記に説明されたシステム及びシステム実施形態は、例証に過ぎず、別個の要素として説明されたユニットは、物理的に別個であっても良く、別個でなくても良く、ユニットとして表示される要素は、物理的ユニットであっても良く、物理的ユニットでなくても良い、すなわち、１つの場所に位置しても良く、または、複数のネットワークユニット上に分散されても良い。実際のニーズに従って、ユニットまたはモジュールの一部またはすべてを選択し、本開示の実施形態の解決策の目的を達成しても良い。当業者は、創造的な努力を用いることなく、本開示を理解及び実装しても良い。
【０１１６】
本開示に提供されるサードパーティアプリケーションを実行する例示的な方法及びシステムを上記に詳細に説明する。本開示の例示的な実施形態は、本開示の概念及び実装操作を説明する。上記の例示的な実施形態の説明は、本開示の方法及び中心概念の理解を助ける目的だけに使用される。本開示の概念に従って、当業者は、特定の実装及び応用を変更しても良い。本明細書の説明は本開示の制限と解釈されるべきではない。
【図１】
2017514218.tif 000003
【図２】
2017514218.tif 000004
【国際調査報告】
2017514218.tif 000005