JP6458133B2 - アプリケーションプログラムの修復方法、装置及び記録媒体 - Google Patents

アプリケーションプログラムの修復方法、装置及び記録媒体 Download PDF

Info

Publication number
JP6458133B2
JP6458133B2 JP2017508621A JP2017508621A JP6458133B2 JP 6458133 B2 JP6458133 B2 JP 6458133B2 JP 2017508621 A JP2017508621 A JP 2017508621A JP 2017508621 A JP2017508621 A JP 2017508621A JP 6458133 B2 JP6458133 B2 JP 6458133B2
Authority
JP
Japan
Prior art keywords
application program
script plug
script
valid
plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017508621A
Other languages
English (en)
Other versions
JP2017526069A (ja
Inventor
趙暉
劉思音
雷志海
Original Assignee
バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド, バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド filed Critical バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
Publication of JP2017526069A publication Critical patent/JP2017526069A/ja
Application granted granted Critical
Publication of JP6458133B2 publication Critical patent/JP6458133B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

優先権主張
本願は、2015年5月14日に提出された、出願番号が201510246297.4で、出願人が百度在線網絡技術(北京)有限公司で、発明の名称が「アプリケーションプログラム修復方法、装置及び記録媒体」である中国特許出願に基づく優先権を主張し、当該特許出願の全文を引用により本願に組み込む。
本発明は、コンピュータ技術分野に関し、特にアプリケーションプログラムの修復方法、装置及び記録媒体に関する。
iOSシステムは、アメリカのアップル社により提供された現在最も流行しているモバイルオペレーティングシステムであり、iOSシステムに基づいて開発されたiOSアプリケーションプログラムの数量が百万を超えており、製品間の競争が激しく、ユーザが商品の品質に対する要求もだんだん高まってきている。特に、ユーザの多いアプリケーションプログラムについて、製品の品質がアプリケーション開発者にとって大きなチャレンジになる。
既存のiOSアプリケーションプログラムが比較的大きな問題、又は早急に修復することが必要な問題に遭遇した場合、通常は、アプリケーションプログラムを修正して、改めてパケッジにしてアップル社のアプリストア(App Store)に提出し、審査されてから更新される必要があり、或いは、一部のアプリケーションプログラムでは、問題があった機能に対し、サーバ側により停止させるように制御することができる。審査に要する時間は通常予測困難であるため、問題があったアプリケーションプログラム、又は一部機能の使用停止は、ユーザの使用に影響を与え、且つ比較的大きな損失をもたらすことになる。
従来の解決手段では、下記のような複数の欠点が存在する。
(1) 限界:サーバ側にだけアプリケーションプログラムの全ての問題の解決を頼ることは不可能で、かかる問題の存在は重大な損失をもたらすおそれがある。
(2) 実効性が低い:アプリストア(App Store)の審査に要する時間を予測することができないため、審査の再度の提出は、往々にして、タイムリーにアプリケーションプログラムのオンライン上の問題の解決にならない。
(3) ユーザ体験への影響:オンライン上問題が存在するために、ユーザがアプリケーションプログラムのクライアント側の機能を正常に使用することができなくなる。
(4) 開発量の増加:オンラインでの問題の修復は、開発者の作業量が増加することになる。
かかる事情に鑑みてなされた本発明の主な目的は、アプリケーションプログラムの修復方法、装置及び記録媒体を提供することで、タイムリーでかつ便利にアプリケーションプログラムの問題を修復することを実現することである。
本願に係る実施形態による具体的な解決手段は以下の通りになる。
第1態様において、本実施形態はアプリケーションプログラムの修復方法を提供し、この修復方法は、
サーバ側により配信(distribute)されたスクリプトプラグイン(script plug-in)の設定情報を受信するステップと、
前記設定情報に基づいて、対応する有効なスクリプトプラグインを取得するステップと、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップと、を含む。
第2態様において、本実施形態はアプリケーションプログラム修復装置をさらに提供し、この修復装置は、
サーバ側により配信されたスクリプトプラグインの設定情報を受信する設定受信モジュールと、
前記設定情報に基づいて、対応する有効なスクリプトプラグインを取得するスクリプト取得モジュールと、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するアプリケーションプログラム修復モジュールと、を備える。
第3態様において、本実施形態は不揮発性コンピュータ記録媒体を提供し、前記コンピュータの記録媒体には一つ以上のモジュールが保存され、前記一つ以上のモジュールがアプリケーションプログラムの修復方法を実行する機器により実行されると、前記機器は次の動作をする。すなわち、
サーバ側により配信されたスクリプトプラグインの設定情報を受信し、
前記設定情報に基づいて対応する有効なスクリプトプラグインを取得し、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復する。
本実施形態によって提供されたアプリケーションプログラム修復方法、装置及び記録媒体は、クライアント側のアプリケーションプログラムの問題に対して、サーバ側が問題を修復するためのスクリプトプラグインの設定情報をクライアント側に送信し、クライアント側が設定情報に基づいて、自動的に対応するスクリプトプラグインを取得し、起動し、そして実行することができ、ユーザの使用に影響を与えず問題を修復することができる。
以下、本発明に係る実施例をより詳しく説明するために、実施例に用いられる図面を簡単に説明し、勿論、以下の図面は本発明に係る一部の実施形態に過ぎず、当業者にとって、創造的労働をすることなく、これらの図面に対する修正や置き換えは可能である。
本発明の実施例1に係るアプリケーションプログラムの修復方法のフローチャートである。 本発明の実施例2に係るアプリケーションプログラムの修復方法のフローチャートである。 本発明の実施例3に係るアプリケーションプログラムの修復方法のフローチャートである。 本発明の実施例4に係るアプリケーションプログラムの修復方法のフローチャートである。 本発明の実施例5に係るアプリケーションプログラムの修復装置の構成の概略図である。
以下、図面を参照しながら本発明に係る実施例をより明確、かつ完全に説明する。勿論、後述する実施例は本発明に係る実施形態の一部であり、全部の実施例ではなく、本発明の原理を説明するためのものに過ぎず、本発明を制限するものではないことは明らかである。本発明の実施例に基づいて、当業者が創造的な労働をすることなく取得するほかの実施例はいずれも本発明の保護範囲に属するものとする。
実施例1
図1は、本発明の実施例1に係るアプリケーションプログラムの修復方法のフローチャートであり、本実施例は、インストールされた、実行しているアプリケーションプログラムに動的に修復を行う場合に適用することが可能である。具体的には、サーバ側がクライアント側で実行しているユーザアプリケーションプログラムを制御して動的に修正を行う。この方法はアプリケーションプログラムの修復装置が実行し、当該装置はソフトウェアにより実現されることができ、ユーザ側が所属するクライアント側に設置される。図1に示すように、この方法は以下のステップを含む。
S110:サーバ側により配信されたスクリプトプラグインの設定情報を受信する。
スクリプトプラグインは、クライアント側のアプリケーションプログラムの問題を修復するために用いられるもので、通常、開発者がアプリケーションプログラムに問題があることを発見した場合、修復するためのスクリプトプラグインを開発し、或いは現在のスクリプトプラグインを更新するようにする。サーバ側は、問題を修復する必要がある場合に、先ず、クライアント側にスクリプトプラグインの設定情報を配信することになる。クライアント側に設定情報を自発的に配信してスクリプトプラグインの更新があることを知らせてもよく、クライアント側により発送された更新リクエストに応じて設定情報を送信してもよい。設定情報は、スクリプトプラグインの基本情報を含み、例えは、少なくともスクリプトプラグインのバージョン番号を含んでもよく、ダウンロードアドレス及び認証情報などを更に含んでもよい。毎回更新されるスクリプトプラグインは一つでもよく、複数でもよいため、一回に配信される設定情報は一つまたは複数のバージョン番号が含まれてもよい。サーバ側は、クライアント側のバージョンに基づいて、対応するスクリプトプラグインのバージョン番号をクライアント側に配信してもよい。
S120:前記設定情報に基づいて、対応する有効なスクリプトプラグインを取得する。
クライアント側は、設定情報を受信すると、更新されるスクリプトプラグインがどれかを知ることができ、それに基づいて、対応する有効なスクリプトプラグインを取得する。具体的に、クライアント側から対応するスクリプトプラグインをダウンロードしてもよく、或いは、ローガルにおいてスクリプトプラグインが存在しているか否かを探索するようにしてもよい。即ち、S120の操作は、具体的に、前記設定情報の中から前記スクリプトプラグインのバージョン番号を取得するステップと、ローガルに前記バージョン番号に対応するスクリプトプラグインが格納されていることを検出した場合、有効なスクリプトプラグインとするステップと、ローガルに前記バージョン番号に対応するスクリプトプラグインが格納されていることを検出していなかった場合、サーバ側から対応する有効なスクリプトプラグインをダウンロードするステップと、を含む。
クライアント側は、複数のスクリプトプラグインを格納することができ、サーバ側の設定情報に基づいて、現在どのスクリプトプラグインが有効なのかを特定することにより、有効なスクリプトプラグインを起動して問題を修復する。このようにすれば、クライアント側がスクリプトプラグインを再びダウンロードすることを防止できるとともに、サーバ側も必要に応じてクライアント側における既存のスクリプトプラグインを用いて問題を修復することが可能になり、より柔軟的になる。サーバ側は、クライアント側に既存のスクリプトプラグイン及び新たに配信されたスクリプトプラグインを同時に有効にするように設定することができ、このようにすると、新しいスクリプトプラグインのサイズを小さくすることができ、伝送すべきデータ量を削減することもできる。
S130:アプリケーションプログラムが実行されているプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復する。
スクリプトプラグインとは、アプリケーションプログラムの問題を動的に修復することができるパッチファィルであって、アプリケーションプログラムによってサポートされるプログラミング環境において実行することができ、かつアプリケーションプログラムのオリジナルコードを変更することなく、アプリケーションプログラムの実行中に発生する問題を動的に修復することができる。
S130では、以下のステップによりアプリケーションプログラムの修復を行うことが好ましい。即ち、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数プッシュ操作を監視するステップと、
前記有効なスクリプトプラグインにおいて設定された目的関数のプッシュ要求を監視により発見した場合、前記有効なスクリプトプラグインにおける置換え関数が前記目的関数の代わりにプッシュ操作を実行し、前記置換え関数を実行して前記アプリケーションプログラムを修復するステップと、を含む。
スクリプトプラグインにおいて置換えるべき目的関数があることの確認は、当該目的関数の関数名称を確認することができ、かつスクリプトプラグインにおいては、目的関数の代わりに実行する置換え関数が提供されている。目的関数は、通常問題のある関数であり、目的関数の代わりに置換え関数を実行することにより、アプリケーションプログラムに存在する問題を修復することができる。又は、この方法を用いて、アプリケーションプログラムの機能を増やしてもよい。
前記アプリケーションプログラムの修復方法は、特に、iOSシステムに基づいて開発されたクローズドコード(closed code)プログラムのアプリケーションプログラムに適用される。アプリケーションプログラムに問題があった場合、開発者はスクリプトプラグインという形で、オリジナルのアプリケーションプログラムを変えることなく問題を修復することができるため、iOSシステムのアプリスドアによる審査を経る必要がない。スクリプトプラグインに用いられるプログラミング言語は、アプリケーションプログラムがその実行環境をサポートすることができ、かつその関数の代わりに実行できる言語にすることができ、好ましくは、前記スクリプトプラグインのプログラミング言語がLua言語である。Lua言語は、重さの軽い言語であって、サイズが小さく、起動速度が速く、他のアプリケーションプログラムに簡単に埋め込んで実行し、かつ、優れた拡張性を有し、ホスト言語が提供する機能を、まるで内蔵された(built-in)機能のような便利さで利用することができる。Lua言語のスクリプトプラグインがクライアント側にダウンロードされた後に、クライアント側のアプリケーションプログラムを実行する時に、クライアント側は、Luaエンジンを自動的に起動して実行環境を有効にするとともに、スクリプトプラグインのコードを有効にすることで、クライアント側のアプリケーションプログラムの問題を修復する目的を達成する。
本発明の実施例に係る発明によって、クライアント側のアプリケーションプログラムにおける問題に対して、サーバ側が問題を修復するためのスクリプトプラグインの設定情報をクライアント側に配信し、クライアント側が設定情報に基づいて、自動的に対応するスクリプトプラグインを取得し、起動し、実行することができるため、ユーザの使用に影響を与えずに、問題を修復することができる。
クライアント側は、さらに、実行ログを報告してもよく、例えば、スクリプトプラグインのダウンロードが成功した後に、又は、スクリプトプラグインの実行が成功した後に、実行ログをサーバ側に報告することにより、開発者がスクリプトプラグインのリクエスト、ダウンロード及び実行などの全プロセスを知ることができ、統計、問題の特定及びスクリプトプラグインのコード最適化が容易になる。
前述した解決手段を元に設定情報に基づいてスクリプトプラグインに有効性の認証を行うことにより、問題修復の信頼性を向上させるので好ましい。有効性の認証は、多岐にわたって行われてもよく、好ましくは、スクリプトプラグインのバージョン番号及び認証情報によって実現される。
実施例2
図2は、本発明の実施例2に係るアプリケーションプログラムの修復方法のフローチャートである。本実施例は上記の実施例を元に、前記設定情報に基づいて対応する有効なスクリプトプラグインを取得する動作を具体的に最適化した。本実施例の方法は、
サーバ側により配信されたスクリプトプラグインの設定情報を受信するステップ210(S210)と、
前記設定情報からスクリプトプラグインの第1バージョン番号を取得するステップ220(S220)と、
ローガルに現在使用されている有効なスクリプトプラグインの第2バージョン番号を取得するステップ230(S230)と、
前記第1バージョン番号と前記2バージョン番号とを比較して、前記第1バージョン番号の有効性を認証するステップ240(S240)と、
前記第1バージョン番号が有効である場合、対応する有効なスクリプトプラグインを取得するステップ250(S250)と、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップ260(S260)と、を含む。
上記解決手段において、第1バージョン番号は、サーバ側によって設定され、有効にして使用することが必要であるスクリプトプラグインのバージョン番号であり、クライアント側のローガルの第2バージョン番号は、クライアント側で既に有効になっており用いられるスクリプトプラグインのバージョン番号である。二つのバージョン番号を比較することによって、現在設定するスクリプトプラグインの有効性を認証することができる。例えば、第1バージョン番号の順位が第2バージョン番号の順位により高い場合は、第1バージョン番号が有効であると判断する。そうでなければ、クライアント側は、実際に比較的新しいバージョンに更新されており、スクリプトプラグインを再度更新する必要がない。
実施例3
図3は、本発明の実施例3に係るアプリケーションプログラムの修復方法に関するフローチャートであり、本実施例では上記の実施例を元にし、かつ、ダウンロードする方法によって有効なスクリプトプラグインを取得する解決手段をより具体的に最適化する。本実施例の方法は、
サーバ側により配信されたスクリプトプラグインの設定情報を受信するステップ310(S310)と、
前記設定情報に基づいて、対応する有効なスクリプトプラグインをダウンロードするステップ320(S320)と、
前記設定情報から前記スクリプトプラグインの第1ダイジェストアルゴリズム値を取得するステップ330(S330)と、
ダウンロード済みの前記スクリプトプラグインの第2ダイジェストアルゴリズム値を算出するステップ340(S340)と、
第1ダイジェストアルゴリズム値と第2ダイジェストアルゴリズム値とを比較して、ダウンロードされた前記スクリプトプラグインの有効性を認証し、有効である場合、S360を実行し、無効である場合、S320を繰り返して実行し、または、今回の動作を終了し、異常があることを知らせるステップ350(S350)と、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップ360(S360)と、を含む。
上記解決手段において、MD5のダイジェストアルゴリズムを用いることができる。第1ダイジェストアルゴリズム値は、サーバ側がスクリプトプラグイン全体に対して計算して取得したダイジェストアルゴリズム値であり、認証情報とする。第2ダイジェストアルゴリズム値は、クライアント側がスクリプトプラグインをダウンロードした後に、そのスクリプトプラグインに対して計算して取得したダイジェストアルゴリズム値であり、スクリプトプラグインのダウンロードが完全かつ正確であれば、二つのダイジェストアルゴリズム値は同一であり、ダウンロードされたスクリプトプラグインが有効である。ダイジェストアルゴリズムに基づいてスクリプトプラグインに対して認証を行うことにより、ダウンロードの完全性を確保することができる。
実施例4
図4は本発明の実施例4に係るアプリケーションプログラムの修復方法に関するフローチャートであり、本実施例は前述した実施例を基礎とする応用例を提供する。該方法は、次のステップを含む。
S401、開発者はクライアント側の問題を修復するためのLuaスクリプトプラグインを作成し、サーバ側に配置するステップ401と、
S402、上記Luaスクリプトプラグインに対応する設定情報(前記設定情報には、該スクリプトプラグインのバージョン番号と、サーバ側のダウンロードアドレスと、MD5値と、を含む)を生成し、サーバ側に格納するステップ402と、
S403、サーバ側がクライアント側のバージョンに応じて、該クライアント側に適用するスクリプトプラグインの設定情報を配信するステップ403と、
S404、クライアント側はサーバ側により配信された設定情報を受信するステップ404と、
S405、クライアント側はスクリプトプラグインのバージョン情報を検証し、配信されたバージョン番号が現在有効なバージョン番号より高いか否かを判断し、現在有効なバージョン番号がより高い場合は有効であり、S406を実行する、そうでなければ、このプロセスを終了するステップ405と、
S406、設定情報が有効である場合、クライアント側が有効になった設定情報をリセットするステップ406と、
具体的には、クライアント側が現在有効なスクリプトプラグインのバージョン番号を置換える。クライアント側が、既に存在する他のスクリプトプラグインを削除してもよく、後の使用に備えて記憶してもよい。
クライアント側は、設定情報を受信した後に、直接有効性の検証及びダウンロード操作を実行してもよく、設定情報を受信して有効であることを検証した後に、ユーザに通知し、ユーザのコマンドに応じてダウンロード操作を実行してもよい。
S407、クライアント側は改めて設定されたスクリプトプラグインをダウンロードし、ダウンロードが成功した場合に、S408を実行し、そうでなければ、プロセスを終了するステップ407と、
S408、ダウンロードが成功し後に、クライアント側はサーバ側にログを報告するステップ408と、
S409、クライアント側はダウンロードしたスクリプトプラグインのMD5値を検証し、即ち、設定情報中のMD5値と、スクリプトプラグインをダウンロードし計算して得られたMD5値とが一致するかどうかを比較し、設定情報のMD5値とスクリプトプラグインをダウンロードし計算して得られたMD5値とが一致する場合、有効なスクリプトプラグインであり、S410を実行し、そうでなければ、プロセスを終了するステップ409と、
S410、スクリプトプラグインが有効である場合、Luaエンジンを起動し、Luaスクリプトプラグインの実行環境を有効にし、起動が成功した場合、S411を実行し、そうでなければ、プロセスを終了するステップ410と、
S411、Luaエンジンの起動が成功した後に、クライアント側はログをサーバ側に報告するステップ411と、
S412、クライアント側は、問題がある部分を実行する時に、Luaスクリプトプラグインの実行をトリガーして有効にし、問題を修復するステップ412。
本実施例に係る解決手段において、Lua+Waxフレームを使用してもよく、クライアント側とサーバ側とが協働して、動的にiOSクライアント側に存在する問題を動的にかつ素早く修復することで、新バージョンの提出或いはユーザの正常使用に影響を与えることを避け、製品には以下のメリットをもたらす。
1.動的に、素早く、柔軟的に一部のiOSアプリケーションプログラムの問題を修復し、再度パッケージにして審査に提出することが不要で、かつユーザの使用に影響を与えない。
2.修復プロセスの全体が制御可能であり、リスクが低い。
3.Luaスクリプトのサイズが小さく、ユーザのデータ通信量を節約することができる。
4.拡張性に優れ、複数の問題を並行して、効率の高い修復ができる。
実施例5
図5は本実施例5に係るアプリケーションプログラムの修復装置の構成に関する概略図であり、該装置は、設定受信モジュール510と、スクリプト取得モジュール520と、アプリケーションプログラム修復モジュール530と、を備える。
設定受信モジュール510は、サーバ側により配信されたスクリプトプラグインの設定情報を受信し、スクリプト取得モジュール520は、前記設定情報に基づいて対応する有効なスクリプトプラグインを取得し、アプリケーションプログラム修復モジュール530は、アプリケーションプログラムが実行されているプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復する。
具体的に、プログラム修復モジュール530は、プッシュ監視ユニット531と、アプログラム置換えユニット532と、を備える。
プッシュ監視ユニット531は、アプリケーションプログラムが実行されているプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数プッシュ操作を監視し、プログラム置換えユニット532は、前記スクリプトプラグインにおいて設置された目的関数のプッシュ要求を監視して発見した時に、前記目的関数の代わりに前記有効なスクリプトプラグインにおける置換え関数がプッシュ操作を実行し、前記置換え関数を実行して前記アプリケーションプログラムを修復する。
本実施例に係る解決手段において、前記アプリケーションプログラムはiOSシステムに基づいて開発されたクローズドコードプログラムであり、好ましくは、前記スクリプトプラグインのプログラミング言語はLua言語である。
上記解決手段において、好ましくは、さらに、スクリプトプラグインに対して有効性の検証を行う。
スクリプト取得モジュールは、具体的に、第1バージョン番号取得ユニットと、第2バージョン番号取得ユニットと、有効性検証ユニットと、スクリプト取得ユニットと、を備える。
第1バージョン番号取得ユニットは、前記設定情報からスクリプトプラグインの第1バージョン番号を取得し、第2バージョン番号取得ユニットは、現在ローカルに使われている有効なスクリプトプラグインの第2バージョン番号を取得し、有効性検証ユニットは、第1バージョン番号と第2バージョン番号とを比較し、前記第1バージョン番号の有効性を検証し、スクリプト取得ユニットは、前記第1バージョン番号が有効である場合、対応する有効なスクリプトプラグインを取得する。
また、スクリプト取得モジュールは、バージョン番号取得ユニットと、ローカル取得ユニットと、ダウンロード取得ユニットと、をさらに備える。ここで、バージョン番号取得ユニットは、前記設定情報から前記スクリプトプラグインのバージョン番号を取得し、ローカル取得ユニットは、ローガルに前記バージョン番号に対応するスクリプトプラグインが格納されていることを検出した場合、有効なスクリプトプラグインとし、ダウンロード取得ユニットは、ローガルに前記バージョン番号に対応するスクリプトプラグインが格納されていることを検出していない場合、前記サーバ側から対応する有効なスクリプトプラグインをダウンロードする。
さらに、該装置は要約検証モジュールをさらに備え、前記要約検証モジュールは、前記サーバ側から対応する有効なスクリプトプラグインをダウンロードした後に、前記設定情報から前記スクリプトプラグインの第1ダイジェストアルゴリズム値を取得し、ダウンロード済みの前記スクリプトプラグインの第2ダイジェストアルゴリズム値を算出し、前記第1ダイジェストアルゴリズム値と第2ダイジェストアルゴリズム値とを比較することにより、ダウンロードした前記スクリプトプラグインの有効性を検証する。
上記アプリケーションプログラム修復装置は、本発明の任意の実施例により提供されたアプリケーションプログラムの修復方法を実行することができ、実行方法に対応する機能モジュールと有益な効果とを有する。
本発明の実施例に係る解決手段を用いることにより、クライアント側のアプリケーションプログラムに存在する問題に対し、サーバ側によりクライアント側に問題を修復するためのスクリプトプラグインの設定情報を配信し、クライアント側が設定情報に基づいて、自動的に対応するスクリプトプラグインを取得し、起動し、実行することができるため、ユーザに影響を与えず、問題を修復することができる。
実施例6
本実施例は不揮発性コンピュータ記録媒体を提供し、前記コンピュータ記録媒体に一つ以上のモジュールが格納され、前記一つ以上のモジュールがアプリケーションプログラム修復方法の機器により実行される時に、前記機器は、次の動作をする。すなわち、
サーバ側により配信されたスクリプトプラグインの設定情報を受信し、
前記設定情報に基づいて対応する有効なスクリプトプラグインを取得し、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復する。
上記記録媒体に格納されているモジュールが前記機器により実行される時に、アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップには、
アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数プッシュ操作を監視するステップと、
前記有効なスクリプトプラグインにおいて設置された目的関数のプッシュ要求を監視により発見した場合、前記有効なスクリプトプラグインにおける置換え関数が、前記目的関数の代わりに、プッシュ操作を実行することにより、前記置換え関数を実行して前記アプリケーションプログラムを修復するステップと、をさらに含んでもよい。


上記記録媒体に格納されているモジュールが前記機器によって実行される時に、前記アプリケーションプログラムはiOSシステムに基づいて開発されたクローズドコードプログラムであり、前記スクリプトプラグインのプログラミング言語はLua言語であることを含むことができる。
上記記録媒体に格納されているモジュールが前記機器によって実行される時に、前記設定情報に基づいて対応する有効なスクリプトプラグインを取得するステップにおいては、
前記設定情報からスクリプトプラグインの第1バージョン番号を取得するステップと、
ローガルに現在使用されている有効なスクリプトプラグインの第2バージョン番号を取得するステップと、
前記第1バージョン番号と前記第2バージョン番号とを比較し、前記第1バージョン番号の有効性を検証するステップと、
上記第1バージョン番号は有効である場合、対応する有効なスクリプトプラグインを取得するステップと、を含むことができる。
上記記録媒体に格納されているモジュールが前記機器によって実行される時に、前記設定情報に基づいて対応する有効なスクリプトプラグインを取得するステップにおいては、
前記設定情報から前記スクリプトプラグインのバージョン番号を取得するステップと、
ローガルに前記バージョン番号対応するスクリプトプラグインが記憶されていることを検出した場合、有効なスクリプトプラグインとするステップと、
ローガルに前記バージョン番号対応するスクリプトプラグインが記憶されていることを検出していない場合、サーバ側から対応する有効なスクリプトプラグインをダウンロードするステップと、を含むことができる。
前記記録媒体の中に格納されているモジュールが前記機器に実行される場合、サーバ側から対応する有効なスクリプトプラグインをダウンロードした後に、
前記設定情報から前記スクリプトプラグインの第1ダイジェストアルゴリズム値を取得するステップと、
ダウンロード済みの前記スクリプトプラグインの第2ダイジェストアルゴリズム値を算出するステップと、
前記第1ダイジェストアルゴリズム値と前記第2ダイジェストアルゴリズム値とを比較することにより、ダウンロードされた前記スクリプトプラグインの有効性を検証するステップと、をさらに含むことができる。
当業者は以上の実施形態についての説明により次のことを明確に理解することができる。本発明がソフトウェア及び必要な汎用ハードウェアにより実現することができ、勿論、ハードウェアにより実現することもできるが、多くの場合に、前者の実施形態がより好適である。このような理解を踏まえて、本発明の解決手段が実質的に又は従来技術に対して貢献している部分がソフトウェア製品の態様で実現することができる。該コンピュータソフトウェア製品は、コンピュータ読み取り可能な記録媒体、例えばコンピュータのフロッピーディスク、読み出し専用メモリ(Read−Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、フラッシュ(FLASH)、ハードディスクや光ディスク等に格納することができる。該コンピュータソフトウェア製品には、コンピュータ関連機器(パソコン、サーバ、又はネットワーク機器等が挙げられる)に本発明の各実施例に係る方法を実行させる複数の命令を含む。
注意されたいのは、上記アプリケーションプログラム修復装置に係る実施例において、各ユニット及びモジュールが機能ロジックによって分割されたものであるに過ぎず、前記の分割を制限するものではなく、対応する機能を実現することができれば足り、また、各機能ユニットの具体の名称は、互いに区別するためのものに過ぎず、本発明の保護範囲を制限するものではない。
以上に述べたものは、本発明の具体的な実施形態に過ぎず、本発明の技術的範囲を制限するものではなく、本発明が公開した技術範囲内に当業者が容易に変更または置換えるものについては、本発明の技術的範囲内に含まれることを理解されるべきである。よって、本発明の技術的範囲は、特許の請求の範囲に記載された内容を基準とする。

Claims (12)

  1. クライアント側が、サーバ側により配信されたスクリプトプラグインの設定情報を受信するステップと、
    クライアント側が、前記設定情報に基づいて、対応する有効なスクリプトプラグインを取得するステップと、
    クライアント側が、アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップと、を含み、
    前記アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するステップは、
    アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数のプッシュ操作を監視するステップと、
    前記有効なスクリプトプラグインにおいて設定された目的関数のプッシュ要求を監視により発見した場合、前記有効なスクリプトプラグインにおける置換え関数が、前記目的関数の代わりにプッシュ操作を実行することにより、前記置換え関数を実行して前記アプリケーションプログラムを修復するステップと、を含む
    ことを特徴とするアプリケーションプログラムの修復方法。
  2. 前記アプリケーションプログラムは、iOSシステムに基づいて開発されたクローズドコードプログラムであり、前記スクリプトプラグインのプログラミング言語はLua言語であること
    を特徴とする請求項1に記載のアプリケーションプログラムの修復方法。
  3. 前記設定情報に基づいて、対応する有効なスクリプトプラグインを取得するステップは
    前記設定情報からスクリプトプラグインの第1バージョン番号を取得するステップと、
    ローカルに現在使用されている有効なスクリプトプラグインの第2バージョン番号を取得するステップと、
    前記第1バージョン番号と前記第2バージョン番号とを比較して、前記第1バージョン番号の有効性を検証するステップと、
    前記第1バージョンが有効である場合、対応する有効なスクリプトプラグインを取得するステップと、を含む
    ことを特徴とする請求項1または2に記載のアプリケーションプログラムの修復方法。
  4. 前記設定情報に基づいて対応する有効なスクリプトプラグインを取得するステップは
    前記設定情報から前記スクリプトプラグインのバージョン番号を取得するステップと、
    ローカルに前記バージョン番号に対応するスクリプトプラグインが記憶されていることを検出した場合、有効なスクリプトプラグインとするステップと、
    ローカルに前記バージョン番号に対応するスクリプトが記憶されていることを検出していない場合、前記サーバ側から対応する有効なスクリプトプラグインをダウンロードするステップと、を含む
    ことを特徴とする請求項1〜のいずれか1項に記載のアプリケーションプログラムの修復方法。
  5. 前記サーバ側から対応する有効なスクリプトプラグインをダウンロードした後に、
    前記設定情報から前記スクリプトプラグインの第1ダイジェストアルゴリズム値を取得するステップと、
    ダウンロード済みの前記スクリプトプラグインの第2ダイジェストアルゴリズム値を算出するステップと、
    前記第1ダイジェストアルゴリズム値と前記第2ダイジェストアルゴリズム値とを比較して、ダウンロードされた前記スクリプトプラグインの有効性を検証するステップと、をさらに含む
    ことを特徴とする請求項1〜のいずれか1項に記載のアプリケーションプログラムの修復方法。
  6. クライアント側が、サーバ側により配信されたスクリプトプラグインの設定情報を受信する設定受信モジュールと、
    クライアント側が、前記設定情報に基づいて対応する有効なスクリプトプラグインを取得するスクリプト取得モジュールと、
    クライアント側が、アプリケーションプログラムが実行されるプロセスにおいて、有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復するアプリケーションプログラム修復モジュールと、を備え
    前記プログラム修復モジュールは、
    アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数のプッシュ操作を監視するプッシュ監視ユニットと、
    前記有効なスクリプトプラグインにおいて設定された目的関数のプッシュ要求を監視した場合、前記有効なスクリプトプラグインにおける置換え関数を前記目的関数に置換えて前記置換え関数にプッシュ操作を実行することにより、前記置換え関数を実行し前記アプリケーションプログラムを修復するプログラム置換えユニットと、を備える
    ことを特徴とするアプリケーションプログラムの修復装置。
  7. 前記アプリケーションプログラムは、iOSシステムに基づいて開発されたクローズドコードプログラムであり、前記スクリプトプラグインのプログラミング言語はLua言語である
    ことを特徴とする請求項に記載のアプリケーションプログラムの修復装置。
  8. 前記スクリプト取得モジュールは、
    前記設定情報からスクリプトプラグインの第1バージョン番号を取得する第1バージョン番号取得ユニットと、
    ローカルに現在使用されている有効なスクリプトプラグインの第2バージョン番号を取得する第2バージョン番号取得ユニットと、
    前記第1バージョン番号と前記第2バージョン番号とを比較し、前記第1バージョン番号の有効性を検証する有効性検証ユニットと、
    前記第1バージョン番号が有効である場合、対応する有効なスクリプトプラグインを取得するスクリプト取得ユニットと、を備える
    ことを特徴とする請求項6または7に記載のアプリケーションプログラムの修復装置。
  9. 前記スクリプト取得モジュールは、
    前記設定情報から前記スクリプトプラグインのバージョン番号を取得するバージョン番号取得ユニットと、
    ローカルに前記バージョン番号に対応するスクリプトプラグインが記憶されていることを検出した場合、有効なスクリプトプラグインとするローカル取得ユニットと、
    ローカルに前記バージョン番号に対応するスクリプトプラグインが記憶されていることを検出していない場合、前記サーバ側から対応する有効なスクリプトプラグインをダウンロードするダウンロード取得ユニットと、を備える
    ことを特徴とする請求項6〜8のいずれか1項に記載のアプリケーションプログラムの修復装置。
  10. 前記サーバ側から対応する有効なスクリプトプラグインをダウンロードした後に、前記設定情報から前記スクリプトプラグインの第1ダイジェストアルゴリズム値を取得し、ダウンロード済みの前記スクリプトプラグインの第2ダイジェストアルゴリズム値を算出し、前記第1ダイジェストアルゴリズム値と第2ダイジェストアルゴリズム値とを比較して、ダウンロードされた前記スクリプトプラグインの有効性を検証するダイジェスト検証モジュール、をさらに備える
    ことを特徴とする請求項6〜9のいずれか1項に記載のアプリケーションプログラムの修復装置。
  11. 不揮発性コンピュータ記録媒体であって、一つ以上のモジュールが記憶され、前記一つ以上のモジュールが1つのアプリケーションプログラムの修復方法を実行する機器により実行される時に、前記機器は、次の動作を実行し、すなわち、
    サーバ側により配信されたスクリプトプラグインの設定情報を受信し、
    前記設定情報に基づいて対応する有効なスクリプトプラグインを取得し、
    アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復し
    アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムを修復することは、
    アプリケーションプログラムが実行されるプロセスにおいて、前記有効なスクリプトプラグインを起動して前記アプリケーションプログラムの関数のプッシュ操作を監視し、
    前記有効なスクリプトプラグインにおいて設定された目的関数のプッシュ要求を監視により発見した場合、前記有効なスクリプトプラグインにおける置換え関数が、前記目的関数の代わりにプッシュ操作を実行することにより、前記置換え関数を実行して前記アプリケーションプログラムを修復することを含む
    ことを特徴とする不揮発性コンピュータ記録媒体。
  12. 請求項1乃至のいずれか1項に記載のアプリケーションプログラムの修復方法を実行するためのコンピュータプログラム。
JP2017508621A 2015-05-14 2015-10-16 アプリケーションプログラムの修復方法、装置及び記録媒体 Active JP6458133B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510246297.4A CN104866307B (zh) 2015-05-14 2015-05-14 一种应用程序的修复方法和装置
CN201510246297.4 2015-05-14
PCT/CN2015/092066 WO2016179957A1 (zh) 2015-05-14 2015-10-16 一种应用程序的修复方法、装置和存储介质

Publications (2)

Publication Number Publication Date
JP2017526069A JP2017526069A (ja) 2017-09-07
JP6458133B2 true JP6458133B2 (ja) 2019-01-23

Family

ID=53912158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017508621A Active JP6458133B2 (ja) 2015-05-14 2015-10-16 アプリケーションプログラムの修復方法、装置及び記録媒体

Country Status (4)

Country Link
JP (1) JP6458133B2 (ja)
KR (1) KR101952225B1 (ja)
CN (1) CN104866307B (ja)
WO (1) WO2016179957A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866307B (zh) * 2015-05-14 2018-04-27 百度在线网络技术(北京)有限公司 一种应用程序的修复方法和装置
CN106020786A (zh) * 2015-11-02 2016-10-12 广州市动景计算机科技有限公司 一种动态修复应用程序的方法、装置及相关系统
CN107239267A (zh) * 2016-03-29 2017-10-10 百度在线网络技术(北京)有限公司 应用程序的修复扩展方法和装置
CN106021043A (zh) * 2016-05-10 2016-10-12 浪潮电子信息产业股份有限公司 一种获取服务器配置信息的方法及装置
CN106372005B (zh) * 2016-09-20 2019-10-11 深圳市华美兴泰科技股份有限公司 使用外接存储器在ios系统中存取图像数据的方法及装置
CN106897095B (zh) * 2017-02-24 2020-10-13 网易(杭州)网络有限公司 应用程序热修复的方法、装置、可读存储介质和计算设备
CN108829431A (zh) * 2018-06-27 2018-11-16 杭州贝购科技有限公司 iOS应用程序的更新方法、装置、设备及存储介质
CN109725923A (zh) * 2018-12-27 2019-05-07 广州华多网络科技有限公司 一种软件轻量更新方法、装置及设备
CN110362330B (zh) * 2019-07-18 2023-09-01 腾讯科技(深圳)有限公司 应用程序更新方法、装置、终端及存储介质
CN110543323A (zh) * 2019-09-11 2019-12-06 北京搜狐新动力信息技术有限公司 一种应用程序修复方法及装置
CN113110864B (zh) * 2021-03-19 2023-01-20 深圳市腾讯网络信息技术有限公司 应用程序更新方法、装置及存储介质
CN114025037B (zh) * 2021-10-28 2024-04-30 北京百度网讯科技有限公司 一种云手机的检修方法、装置、电子设备和存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745385B1 (en) * 1999-09-01 2004-06-01 Microsoft Corporation Fixing incompatible applications by providing stubs for APIs
JP3960961B2 (ja) * 2003-09-19 2007-08-15 富士通株式会社 ソフトウェアに修正情報を適用する装置および方法
JP5499584B2 (ja) * 2009-09-09 2014-05-21 株式会社リコー 印刷制御プログラム、情報処理装置、及び記録媒体
JP2011164916A (ja) * 2010-02-09 2011-08-25 Noria Co Ltd ソフトウェアパッチダウンロードソリューション
CN102622241B (zh) * 2011-01-26 2016-06-15 腾讯科技(深圳)有限公司 一种软件升级方法及装置
CN102253850A (zh) * 2011-07-08 2011-11-23 烽火通信科技股份有限公司 Iptv机顶盒增量式软件升级方法
CN102955700A (zh) * 2011-08-18 2013-03-06 腾讯科技(深圳)有限公司 软件升级系统及方法
CN103176809B (zh) * 2011-12-23 2016-04-13 腾讯科技(深圳)有限公司 应用升级方法及系统
CN103246528A (zh) * 2012-02-10 2013-08-14 中兴通讯股份有限公司 软件升级方法和装置
JP5330565B2 (ja) * 2012-04-24 2013-10-30 株式会社東芝 コンピュータ
JP6209854B2 (ja) * 2013-05-10 2017-10-11 株式会社リコー 情報処理システム
CN104407889B (zh) * 2014-11-11 2018-09-07 百度在线网络技术(北京)有限公司 应用程序的修复方法和装置
CN104504341B (zh) * 2015-01-21 2018-01-23 联想(北京)有限公司 一种操作系统漏洞修复方法及装置
CN104866307B (zh) * 2015-05-14 2018-04-27 百度在线网络技术(北京)有限公司 一种应用程序的修复方法和装置

Also Published As

Publication number Publication date
CN104866307A (zh) 2015-08-26
JP2017526069A (ja) 2017-09-07
CN104866307B (zh) 2018-04-27
KR101952225B1 (ko) 2019-02-26
KR20170034901A (ko) 2017-03-29
WO2016179957A1 (zh) 2016-11-17

Similar Documents

Publication Publication Date Title
JP6458133B2 (ja) アプリケーションプログラムの修復方法、装置及び記録媒体
CN107329741B (zh) 一种基于指纹识别的软件分布式升级方法与装置
US7937699B2 (en) Unattended upgrade for a network appliance
US8572679B1 (en) Automatic system upgrade orchestrator
CN106843957A (zh) 系统固件升级方法及装置
CN107547239B (zh) 配置对象的更新方法及装置
US20170161502A1 (en) Secure remote kernel module signing
WO2017166446A1 (zh) 漏洞修复方法和装置
KR101937933B1 (ko) 오픈 소스 소프트웨어 패키지의 안전성 정량화 장치, 최적화 장치 및 최적화 방법
JP5572573B2 (ja) 携帯端末、プログラム、および通信システム
US10212034B1 (en) Automated network change management
US10432613B2 (en) HTTPS enabled client tool
CN111538517B (zh) 一种服务器固件升级方法、系统及电子设备和存储介质
CA2875828C (en) Auto-update while running client interface with handshake
KR101512611B1 (ko) 시스템 파일을 수리하기 위한 시스템 및 방법
CN109358888A (zh) 服务器固件升级方法、装置、系统及计算机可读存储介质
US20150381467A1 (en) System and method thereof for dynamically testing networked target systems through simulation by a mobile device
CN110879713B (zh) 一种android端强加密插件热更新管理方法
CN107294924B (zh) 漏洞的检测方法、装置和系统
CN110943860A (zh) 一种bmc固件更新方法、系统、电子设备及存储介质
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN105786636B (zh) 一种系统修复方法及装置
CN106708494B (zh) Jar升级方法及装置
US11449324B2 (en) Automatic updating of an application executing on an application server
US9686310B2 (en) Method and apparatus for repairing a file

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181221

R150 Certificate of patent or registration of utility model

Ref document number: 6458133

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250