(57)【要約】  ｉＯＳアプリケーションの自動コンパイル方法が提供され、その方法は、ｉＯＳアプリケーションを構築するためのクライアントから受け取った要求に従って、少なくとも一つのウェブサーバにより、クライアントが構築サービス情報に基づいて入力情報を返送することができるように、対応する構築サービス情報をクライアントに返送し、返送された入力情報に従って、ウェブサーバにより、対応するプログラムコードを取得すると共にプログラムコードの構成情報を変更し、対応するプログラムコードは、ウェブサーバ内において予め保存されており、ウェブサーバにより、変更された構成情報に従ってプログラムコードをパッケージングし、且つ、パッケージングされたプログラムコードをバックアップし、且つ、ウェブサーバにより、ｉＯＳアプリケーション構築を完了させるためのメッセージをクライアントに送信し、且つ、ダウンロード可能なパッケージングされたプログラムコードをクライアントに提供することを含む。又、ｉＯＳアプリケーションの自動コンパイルシステムも提供される。
2016533592.tif 000002
【特許請求の範囲】
【請求項１】
ｉＯＳアプリケーションの自動コンパイルを実装する方法であって、
ｉＯＳアプリケーションを構築するためのクライアントから受け取った要求に従って、少なくとも一つのウェブサーバにより、該クライアントが構築サービス情報に基づいて入力情報を返送することができるように、対応する該構築サービス情報を該クライアントに返送するステップと、
該返送された入力情報に従って、該ウェブサーバにより、対応するプログラムコードを取得すると共に該プログラムコードの構成情報を変更するステップであって、該対応するプログラムコードは、該ウェブサーバ内において予め保存されている、ステップと、
該ウェブサーバにより、該変更された構成情報に従って該プログラムコードをパッケージングすると共に該パッケージングされたプログラムコードをバックアップするステップと、
該ウェブサーバにより、該ｉＯＳアプリケーション構築の完了の通知情報を該クライアントに送信し、且つ、該ダウンロード可能なパッケージングされたプログラムコードを該クライアントに提供するステップと、
を具備する方法。
【請求項２】
該ウェブサーバにより、対応するプログラムコードを取得すると共に該プログラムコードの該構成情報を変更する該ステップは、
該クライアントからの該返送された入力情報に従って新しい構築タスクを生成するステップと、
該構築タスクに従って対応するプログラムコードを取得し、且つ、該プログラムコードの該構成情報を変更するステップと、
を具備する、請求項１に記載の方法。
【請求項３】
該ウェブサーバにより、該プログラムコードをパッケージングすると共に該パッケージングされたプログラムコードをバックアップする該ステップは、
該構築タスクに従って該プログラムコードをコンパイル及び署名するステップと、
該コンパイル及び署名されたプログラムコードをパッケージングするステップと、
該パッケージングされたプログラムコードをバックアップするステップと、
該構築タスクの状態を完了に変更するステップと、
を具備する、請求項２に記載の方法。
【請求項４】
該構築サービス情報は、構築リスト情報、構築進捗情報、構築結果情報、及び新しく生成された構築情報のうちの少なくとも一つを含む、請求項１に記載の方法。
【請求項５】
該入力情報は、構築名称、コードＵＲＬ、構築タイプ、バージョン番号、コンパイル証明書、及びコンパイル証明書キーワードのうちの少なくとも一つを含む、請求項１に記載の方法。
【請求項６】
複数のウェブサーバが存在する場合に、該新しい構築タスクを生成するステップと該構築タスクに従って対応するプログラムコードを取得するステップとの間において、該方法は、
該生成された構築タスクを該複数のウェブサーバのうちのアイドル状態にある該ウェブサーバに対して割り当てるステップ、
を更に具備する、請求項２又は請求項３に記載の方法。
【請求項７】
ｉＯＳアプリケーションの自動コンパイルを実装するシステムであって、
少なくとも一つのクライアントと、
少なくとも一つのウェブサーバと、
を具備し、該ウェブサーバは、
該ウェブサーバにより、該返送された構築サービス情報に基づいて、ｉＯＳアプリケーションを構築するための要求と該クライアントによって返送された入力情報とを該クライアントから受信する受信モジュールと、
該入力情報に従って新しい構築タスクを生成するタスク生成モジュールと、
該構築タスクに従って対応するプログラムコードを取得し、且つ、該プログラムコードの該構成情報を変更するタスク処理モジュールであって、該変更ステップの後に、該タスク処理モジュールは、該構築タスクに従って該プログラムコードをパッケージングし、且つ、該構築タスクの状態を完了に変更しつつ、該パッケージングされたプログラムコードをバックアップする、タスク処理モジュールと、
対応する構築サービス情報を該クライアントに返送し、該ｉＯＳアプリケーション構築の完了の通知情報を送信し、且つ、該ダウンロード可能なパッケージングプログラムコードを該クライアントに提供する送信モジュールと、
を具備する、システム。
【請求項８】
該構築サービス情報は、構築リスト情報、構築進捗情報、構築結果情報、及び新しく生成された構築情報のうちの少なくとも一つを含む、請求項７に記載のシステム。
【請求項９】
該入力情報は、構築名称、コードＵＲＬ、構築タイプ、バージョン番号、コンパイル証明書、及びコンパイル証明書キーワードのうちの少なくとも一つを含む、請求項７に記載のシステム。
【請求項１０】
該ウェブサーバは、該生成された構築タスクを該複数のウェブサーバのうちのアイドル状態にある該ウェブサーバに割り当てるタスクスケジューリングモジュール、を更に具備する、請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ｉＯＳアプリケーションのコンパイル及び構築の分野に関し、且つ、更に詳しくは、ｉＯＳアプリケーションの自動コンパイルを実装する方法及びシステムに関する。
【背景技術】
【０００２】
ｉＯＳは、ハンドヘルド型装置のために APPLE INC. によって開発されたオペレーティングシステムである。（ｉＰｈｏｎｅやｉＰａｄなどの）ハンドヘルド型装置の人気に伴って、ｉＯＳオペレーティングシステム用のアプリケーションが急速に増加している。但し、従来のコンパイル方式を使用したｉＯＳアプリケーションのコンパイル及び構築は、非常に面倒であり、且つ、誤りが発生しやすい。例えば、ｉＯＳアプリケーションを構築するための従来の手順は、コードライブラリ内においてコンパイル対象のアプリケーションのアドレスを見出し、コマンドラインにおいてコマンドを使用することにより、コードを設計し、プロジェクトをオープンし、現在のコードライブラリのバージョン番号を見出し、構成情報を見出すと共に変更し、コンパイルターゲットを選択し、コンパイルタイプを変更し、クリーンコマンドを実行し、構築コマンドを実行し、パッケージングコマンドを実行し、変更をコードライブラリにサブミットし、且つ、これらに類似した内容を実行するというものである。この従来の手順は、反復的な仕事を実行するための多数の作業を必要としている。更には、送信が、ウェブを介してではなく、ホスト内においてのみ実行されている。更には、送信を実現するためには、アプリケーションの構築において署名するべく必要とされる証明書をそれぞれのコンピュータに送信する必要がある。従って、従来の手順は、証明書のセキュリティにとって不都合であり、且つ、証明書の不正使用を防止することができない。
【０００３】
本明細書におけるすべての従来技術に関する説明は、いずれかの請求項の出願日又は優先日の前において、本明細書の内容が、周知であるか、或いは、当技術分野における技術常識に属することを承認又は意味するものとして解釈してはならない。
【発明の概要】
【０００４】
本発明は、上述の従来技術に存在している欠陥の少なくとも一部分を克服する能力を有するｉＯＳアプリケーションの自動コンパイルを実装する方法及びシステムを提供する。
【０００５】
本発明の一態様によれば、ｉＯＳアプリケーションの自動コンパイルを実装する方法が提供され、方法は、ｉＯＳアプリケーションを構築するためのクライアントから受け取った要求に従って、少なくとも一つのウェブサーバにより、クライアントが構築サービス情報に基づいて入力情報を返送することができるように、対応する構築サービス情報をクライアントに返送するステップと、返送された入力情報に従って、ウェブサーバにより、対応するプログラムコードを取得すると共にプログラムコードの構成情報を変更するステップであって、対応するプログラムコードは、ウェブサーバ内において予め保存されている、ステップと、ウェブサーバにより、変更された構成情報に従ってプログラムコードをパッケージングすると共にパッケージングされたプログラムコードをバックアップするステップと、ウェブサーバにより、ｉＯＳアプリケーション構築の完了の通知情報をクライアントに送信するステップと、ダウンロード可能なパッケージングされたプログラムコードをクライアントに提供するステップと、を有する。
【０００６】
本発明の別の態様によれば、ｉＯＳアプリケーションの自動コンパイルを実装するシステムが提供され、システムは、少なくとも一つのクライアントと、少なくとも一つのウェブサーバと、を有し、ウェブサーバは、受信モジュールと、タスク生成モジュールと、タスク処理モジュールと、送信モジュールと、を有する。ウェブサーバ内において、受信モジュールは、ウェブサーバにより、返送された構築サービス情報に基づいて、ｉＯＳアプリケーションを構築するための要求及びクライアントから返送された入力情報をクライアントから受信するべく構成されており、タスク生成モジュールは、入力情報に従って新しい構築タスクを生成するべく構成されており、タスク処理モジュールは、構築タスクに従って対応するプログラムコードを取得し、且つ、プログラムコードの構成情報を変更し、ここで、変更の後に、タスク処理モジュールは、構築タスクに従ってプログラムコードをパッケージングしており、且つ、構築タスクの状態を完了に変更しつつ、パッケージングされたプログラムコードをバックアップするべく、構成されており、且つ、送信モジュールは、対応する構築サービス情報をクライアントに返送し、ｉＯＳアプリケーション構築の完了の通知情報を送信し、且つ、ダウンロード可能なパッケージングされたプログラムコードをクライアントに提供するべく、構成されている。
【０００７】
上述のように、本発明によって提供されるｉＯＳアプリケーションの自動コンパイルを実装する方法及びシステムを使用することにより、すべてのコンパイル及び構築情報がウェブを介してサブミット又は変更される。ユーザは、基礎をなす層において特定のコンパイル構成を変更する方法について理解する必要はない。ユーザは、グラフィカルインタフェース、情報入力、又はチェックボックスにより、必要なコンパイル情報をウェブページのみを介してサブミットしており、且つ、従って、ユーザの専門知識に対する要件が低減される。更には、コンパイルの際に、毎回、証明書を手作業で結合するための作業が不要であり、コンパイラを手作業で動作させる際に又は構成情報を変更する際に、作業が不要である。この結果、コンパイルの流れ全体の自動化が実現される。
【図面の簡単な説明】
【０００８】
【図１】本発明の例示用の一実施形態によるｉＯＳアプリケーションの自動コンパイルを実装するシステムの例示用の図である。
【図２】本発明の例示用の一実施形態によるウェブサーバの例示用の図である。
【図３】本発明の例示用の一実施形態によるｉＯＳアプリケーションの自動コンパイルを実装する方法のフローチャートである。
【発明を実施するための形態】
【０００９】
本発明に関する更に十分な理解のために、本発明の様々な態様の更に詳細な説明のための添付図面を参照されたい。添付図面及び詳細な説明は、本発明の好適な実施形態を例示するものに過ぎず、且つ、あらゆる意味において本発明の範囲の限定として解釈されてはならないことを理解されたい。そうではない旨が明示的に示されていない限り、これらの実施形態において記述されているコンポーネント及びステップの相対的な構成、数学的表現、及び数値は、本発明の保護範囲の限定を意図したものではないことに留意されたい。
【００１０】
当業者には既知である技術、方法、及び装置については、詳述されていないが、これらの技術、方法、及び装置は、適宜、付与されている仕様の一部分を構成するものと見なされたい。
【００１１】
本明細書において図示及び記述されているすべての例においては、すべての具体的な値は、限定ではなく、例示を目的としているものと解釈されたい。従って、例示用の実施形態のその他の例は、異なる値を有してもよい。
【００１２】
図１は、本発明の例示用の一実施形態によるｉＯＳアプリケーションの自動コンパイルを実装するシステム１０００を例示している。図１に示されているように、システム１０００は、少なくとも一つのクライアント１００と、少なくとも一つのウェブサーバ２００と、を含む。
【００１３】
一実施形態においては、ウェブサーバ２００は、ｉＯＳアプリケーションを構築するための要求をクライアント１００から受け取ってもよく、且つ、対応する構築サービス情報をクライアント１００に返送してもよい。クライアント１００は、例えば、アクセスＵＲＬ（Uniform Resource Locator）により、構築要求をウェブサーバ２００に送信してもよい。ウェブサーバ２００は、対応する構築サービス情報を、ウェブページを介してクライアント１００に返送してもよく、この場合に、構築サービス情報は、少なくとも、構築リスト情報、構築進捗情報、構築結果情報、新たに生成された構築情報、及びこれらに類似したものを含んでもよい。ウェブサーバ２００は、構築サービス情報に基づいてクライアント１００による返送された入力情報に従って、対応するプログラムコードを取得してもよく、且つ、プログラムコードの構成情報を変更してもよい。対応するプログラムコードは、ウェブサーバ２００内において予め保存されてもよい。一実施形態によれば、入力情報は、少なくとも、構築名称、コードＵＲＬ、構築タイプ、バージョン番号、コンパイル証明書、コンパイル証明書キーワード、及びこれらに類似したものを含んでもよく、この場合に、構築タイプは、エンタープライズエディション構築及び AppStore 構築を含んでもよい。
【００１４】
一実施形態によれば、ウェブサーバ２００は、更に、変更された構成情報に従って、プログラムコードをコンパイル、署名、及びパッケージングしてもよく、且つ、パッケージングされたプログラムコードをバックアップしてもよい。ウェブサーバ２００は、例えば、パッケージングされたプログラムコードをコードライブラリにバックアップしてもよい。パッケージングされたプログラムコードがバックアップされた後に、ウェブサーバ２００は、ｉＯＳアプリケーション構築の完了の通知情報をクライアント１００に送信してもよく、且つ、例えば、コードライブラリにより、ダウンロード可能なパッケージングされたプログラムコードをクライアント１００に提供してもよい。パッケージングされたプログラムコードは、例えば、ＩＰＡパケットであってもよい。
【００１５】
以下、図２との関係において、ウェブサーバ２００について更に説明する。図２に示されているように、ウェブサーバ２００は、受信モジュール２０１と、タスク生成モジュール２０２と、タスク処理モジュール２０３と、送信モジュール２０４と、を含む。
【００１６】
一実施形態においては、受信モジュール２０１は、構築サービス情報に基づいてｉＯＳアプリケーションを構築するための要求及びクライアント１００によって返送された入力情報をクライアント１００から受信するべく構成されており、この場合に、受信された要求及び入力情報は、データベース内において保存されてもよい。タスク生成モジュール２０２は、入力情報に従って新しい構築タスクを生成するべく構成されている。新しい構築タスクも、タスクのスケジューリングのためにデータベース内において保存されてもよい。タスク処理モジュール２０３は、構築タスクに従って対応するプログラムを取得すると共にプログラムコードの構成情報を変更するべく構成されている。変更の後に、タスク処理モジュール２０３は、更に、構築タスクに従ってコンパイラを起動してもよく、且つ、プログラムコードをコンパイル、署名、及びパッケージングするように、署名してもよく、且つ、構築タスクの状態を完了に変更しつつ、パッケージングされたプログラムコードをバックアップしてもよい。送信モジュール２０４は、対応する構築サービス情報をクライアント１００に返送し、ｉＯＳアプリケーション構築の完了の通知情報を送信し、且つ、ダウンロード可能なパッケージングされたプログラムコードをクライアント１００に提供するべく、構成されている。
【００１７】
更には、別の実施形態によれば、複数のウェブサーバ２００−１、２００−２、・・・、２００−ｎが存在している場合には（ｎは、自然数であり、且つ、「ウェブサーバ２００」と集合的に呼称される）、ウェブサーバ２００は、生成された構築タスクを複数のウェブサーバのうちのアイドル状態にある一つ又は複数のウェブサーバに割り当てるタスクスケジューリングモジュール２０５を更に有する。
【００１８】
以下、図３との関係において、ｉＯＳアプリケーションの自動コンパイルを実装する方法３０００について詳細に説明する。
【００１９】
一実施形態においては、ステップＳ３０１において、少なくとも一つのウェブサーバ２００は、ｉＯＳアプリケーションを構築するためのクライアント１００から受け取った要求に従って、クライアント１００が構築サービス情報に基づいて入力情報を返送することができるように、対応する構築サービス情報をクライアント１００に返送してもよい。ステップＳ３０２において、ウェブサーバ２００は、返送された入力情報に従って、対応するプログラムを取得してもよく、且つ、プログラムコードの構成情報を変更してもよく、対応するプログラムコードは、ウェブサーバ２００内において予め保存されている。ウェブサーバ２００は、クライアント１００からの返送された入力情報に従って、一つ又は複数の新しい構築タスクを生成してもよく、且つ、構築タスクに従って対応するプログラムコードを取得してもよく、且つ、プログラムコードの構成情報を変更してもよい。そして、その後に、ステップＳ３０３において、ウェブサーバ２００は、変更された構成情報に従ってプログラムコードをパッケージングしてもよく、且つ、パッケージングされたプログラムコードをバックアップしてもよい。ウェブサーバ２００は、構築タスクに従ってプログラムコードをコンパイル及び署名してもよく、コンパイル及び署名されたプログラムコードをパッケージングしてもよく、次いで、構築タスクの状態を完了に変更しつつ、パッケージングされたプログラムコードをバックアップしてもよい。ステップＳ３０４において、ウェブサーバ２００は、ｉＯＳアプリケーション構築の完了の通知情報をクライアント１００に送信してもよく、且つ、ダウンロード可能なパッケージングされたプログラムコードをクライアント１００に提供してもよい。
【００２０】
更には、別の実施形態によれば、複数のウェブサーバ２００−１、２００−２、・・・、２００−ｎが存在する場合には（ｎは、自然数であり、且つ、「ウェブサーバ２００」と集合的に呼称される）、新しい構築タスクを生成した後に、且つ、構築タスクに従って対応するプログラムコードを取得する前に、ウェブサーバ２００は、更に、生成された構築タスクを複数のウェブサーバのうちのアイドル状態にある一つ又は複数のウェブサーバに割り当ててもよい。
【００２１】
又、本開示は、コンピュータ実行可能命令が埋め込まれた一つ又は複数のコンピュータ可読媒体をも提供する。コンピュータによって実行された際に、命令は、ｉＯＳアプリケーションの自動コンパイルを実装する方法を実行し、方法は、ｉＯＳアプリケーションを構築するためにクライアントから受け取った要求に従って、少なくとも一つのウェブサーバにより、クライアントが構築サービス情報に基づいて入力情報を返送することができるように、対応する構築サービス情報をクライアントに返送するステップと、返送された入力情報に従って、ウェブサーバにより、対応するプログラムコードを取得し、且つ、プログラムコードの構成情報を変更するステップであって、対応するプログラムコードは、ウェブサーバ内において予め保存されている、ステップと、ウェブサーバにより、変更された構成情報に従ってプログラムコードをパッケージングすると共にパッケージングされたプログラムコードをバックアップするステップと、ウェブサーバにより、ｉＯＳアプリケーション構築の完了の通知情報をクライアントに送信し、且つ、ダウンロード可能なパッケージングされたプログラムコードをクライアントに提供するステップと、を有する。
【００２２】
又、本開示は、コンピュータ実行可能命令が埋め込まれた一つ又は複数のコンピュータ可読媒体を含むコンピュータをも提供する。コンピュータによって実行された際に、命令は、分散環境において保護された通信認証方法を実行する。
【００２３】
例示用の動作環境
本明細書において記述されているものなどの演算装置は、一つ又は複数のプロセッサ又は処理ユニット、システムストレージ、又はなんらかの形態のコンピュータ可読媒体を含むハードウェアを有する。限定ではなく、一例として、コンピュータ可読媒体は、コンピュータストレージ媒体と、通信媒体と、を含む。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータなどの情報を保存するための任意の方法及び技術を使用して実装される揮発性及び不揮発性の、着脱自在の、且つ、非着脱自在の、媒体を含む。通信媒体は、一般に、搬送波又はその他の送信メカニズムなどによる変調されたデータ信号を使用することにより、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータによって実施されており、且つ、任意の情報搬送媒体を含む。又、上述の媒体の組合せのいずれもが、コンピュータ可読媒体の範囲に含まれる。
【００２４】
コンピュータは、動作するべくネットワーク接続された環境内において接続されたリモートコンピュータのロジックなどの一つ又は複数のリモートコンピュータを使用することができる。本発明は、例示用の演算システム環境との関係において記述されているが、本発明の個々の実施形態は、多数のその他の一般的な又はプライベートな演算システム環境又は構成において使用することができる。演算システム環境は、本発明の任意の態様のアプリケーションの範囲又は機能に対してなんらかの限定を設定するべく意図されたものではない。更には、演算環境は、例示用の動作環境において示されている何らかのコンポーネント又はその組合せに対する何らかの依存性又はその要件が存在するものとして解釈するべきでない。本発明の個々の態様に適した周知の演算システム、環境、及び／又は構成の例は、限定を伴うことなしに、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド型又はラップトップ型装置、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な消費者電子製品、携帯電話機、ネットワークＰＣ、マイクロコンピュータ、マクロコンピュータ、上述のシステム又は装置のうちのいずれかを含む分散演算環境、並びに、これらに類似したものを含む。
【００２５】
本発明の実施形態については、プログラムモジュールなどの一つ又は複数の演算装置上において実行されるコンピュータ実行可能命令の一般的な環境において記述することができる。コンピュータ実行可能命令は、ソフトウェアにより、一つ又は複数の実行可能コンポーネント又はモジュールとして編成することができる。一般に、プログラムモジュールは、限定を伴うことなしに、特定のタスクを実行する又は特定の抽象的データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造を含む。本発明の態様は、任意の数のこのようなコンポーネント又はモジュール又はその編成を使用することより、実装することができる。例えば、本発明の態様は、図面において示されると共に本明細書において記述されている特定のコンピュータ実行可能命令又は特定のコンポーネント若しくはモジュールに限定されるものではない。本発明のその他の実施形態は、本明細書において図示及び記述されている機能を上回る又は下回る機能を有する異なるコンピュータ実行可能命令又はコンポーネントを含んでもよい。本発明の態様は、タスクが通信ネットワークリンクを介してリモート処理装置によって実行される分散演算環境において実装することができる。分散演算環境においては、プログラムモジュールは、メモリストレージを含むローカル及びリモートコンピュータストレージ媒体内において配置することができる。
【００２６】
当業者は、本発明の方法及びシステムの説明は、本明細書において開示されている特定の実施形態などの実施形態に限定されるものではないことを理解するであろう。上述の説明は、本発明の例示を目的として提示されたものであり、決して本発明の限定を意図したものではない。又、当業者によって本発明の技術的解決策から導出されるその他の実装形態も、本発明による発明的且つ新規の技術の範囲に含まれる。本発明の保護範囲は、添付の請求項及びその均等物によって定義されている。
【図１】
2016533592.tif 000003
【図２】
2016533592.tif 000004
【図３】
2016533592.tif 000005
【国際調査報告】
2016533592.tif 000006
2016533592.tif 000007
2016533592.tif 000008
2016533592.tif 000009