(57)【要約】      （修正有）【課題】２言語以上の複数言語で開発されたソースコードに対してＷｅｂアプリケーション開発を可能とする。【解決手段】ローカル環境で動くソフトウェアのソースコードをもとに、ソフトウェアをＷｅｂアプリケーション化するＷｅｂアプリケーションの作成運用支援システム１は、ソースコードの解析を行うソースコード解析部１１と、ソースコード解析部が解析したソースコードに基づきＷｅｂアプリケーションのＧＵＩの生成を行い、Ｗｅｂアプリケーションを生成するＷｅｂアプリケーション生成部１２と、ルーティング処理を行うサーバ上公開処理部１３と、生成したＷｅｂアプリケーションをアクセス可能な状態にし、運用支援を行うプラットフォーム部１４と、を備える。ソースコード解析部は、ソースコードのプログラミング言語を判定する言語判定部３１と、少なくとも２言語以上のプログラミング言語を解析する各言語対応解析部３２と、を備える。【選択図】図１
2020170453.tif 000002
【特許請求の範囲】
【請求項１】
ローカル環境で動くソフトウェアのソースコードをもとに、前記ソフトウェアをＷｅｂアプリケーション化するＷｅｂアプリケーションの作成運用支援システムにおいて、
ソースコードの解析を行うソースコード解析部と、
前記ソースコード解析部が解析したソースコードに基づきＷｅｂアプリケーションのＧＵＩの生成を行い、Ｗｅｂアプリケーションを生成するＷｅｂアプリケーション生成部と、
ルーティング処理を行うサーバ上公開処理部と、
前記Ｗｅｂアプリケーション生成部が生成したＷｅｂアプリケーションをアクセス可能な状態にし、運用支援を行うプラットフォーム部と、
を備え、
前記ソースコード解析部は、ソースコードのプログラミング言語を判定する言語判定部と、
少なくとも２言語以上のプログラミング言語を解析する各言語対応解析部と、
を備えることを特徴とするＷｅｂアプリケーションの作成運用支援システム。
【請求項２】
前記言語判定部は、ソースコードの拡張子をもとに、プログラミング言語を判定する、請求項１に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項３】
前記各言語対応解析部は、少なくとも２言語以上のプログラミング言語に対し、使用されるＷｅｂアプリケーションのＧＵＩの要素を生成する必要のある関数のリストとソースコード内で用いられている関数を照合することにより解析する、請求項１または２に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項４】
前記各言語対応解析部は、解析対象の言語の数だけ、その言語に対応する解析部を備えている、請求項１乃至３のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項５】
前記各言語対応解析部は、ソースコード中の関数のファイルパスに関する引数を認識し、未知の関数を含むソースコードの解析を可能とする、請求項１乃至４のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項６】
前記Ｗｅｂアプリケーション生成部は、プログラミング言語の関数の処理内容と処理内容に対して生成するＷｅｂアプリケーションの要素の対応関係を示すリストをもとに、Ｗｅｂアプリケーションの要素を生成する請求項１乃至５のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項７】
前記Ｗｅｂアプリケーション生成部は、前記言語判定部が判定可能なプログラミング言語のうち、コンパイル言語の数以上の、該プログラミング言語に対応するコンパイラを備え、コンパイル言語により記述されたソースコードに対してはコンパイルを実施する、請求項１乃至６のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項８】
前記サーバ上公開処理部は、生成したＷｅｂアプリケーションを所定のディレクトリに格納し、アクセス可能な状態にする時のルーティング処理を実施する、請求項１乃至７のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項９】
前記プラットフォーム部は、あらかじめ保持しているアクセス可能なＷｅｂページにＷｅｂアプリケーションを掲載する、請求項１乃至８のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項１０】
前記プラットフォーム部は、インタプリタ言語のソースコードをもとに生成したＷｅｂアプリケーションを実行するため、対応するインタプリタ言語の数以上の、対応言語のインタプリタを備える、請求項１乃至９のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項１１】
前記プラットフォーム部は、Ｗｅｂアプリケーションの実行結果を収集するデータ収集部とその実行結果を格納する実行結果データベースとを備える、請求項１乃至１０のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【請求項１２】
前記プラットフォーム部は、生成したＷｅｂアプリケーションの動作に必要な処理をサーバの持つＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、主記憶装置、補助記憶装置を活用し行うことにより運用支援する、請求項１乃至１１のいずれか一項に記載のＷｅｂアプリケーションの作成運用支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションの作成運用支援システムに関する。
【背景技術】
【０００２】
本技術の背景技術として特開２０１６−６６３５５号公報がある。本文献によれば「クライアントアプリケーションで処理を行うシステムを、Ｗｅｂアプリケーションからも処理を行えるようにするために、クライアントアプリケーションからＷｅｂアプリケーションを構築する場合、クライアントアプリケーションの処理をＷｅｂアプリケーション用に変換することなく、Ｗｅｂアプリケーションを生成する。」という目的に対して「Ｗｅｂアプリケーション生成装置は、クライアントアプリケーションの設計情報であるデータ構造情報を受信しデータモデル定義として保持し、データモデル定義と、提供されるＷｅｂサービスにより使用可能な既存の処理情報を処理可能にするための定義情報と、を用いることにより、Ｗｅｂアプリケーションを生成する」技術が公開されている。また、同様の技術として、特開２００２−３６６３５２号公報がある。本文献によれば「マルチプラットフォームに適用する機能の開発や変更に柔軟な仕組みの開発、エンドユーザに易しいカスタマイズ方法の開発をそれぞれ実現することができ、ＷＥＢアプリケーションの開発の支援を容易に行うことができるようにする。」という目的に対して「ソースプログラムジェネレータにより、独自のフォーマットに従って記述されたＸＭＬプログラムのファイルと、画面のデザインを司るプログラムのファイルとがまとめられることで、ＷＥＢサーバ上で実行できるソースプログラムが生成されるようにする。」技術が公開されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０６６３５５号公報
【特許文献２】特開２００２−３６６３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＵＩを備えるまたはＣＵＩから起動されるローカル環境で動くソフトウェアを複数個Ｗｅｂアプリケーション化し、Ｗｅｂアプリケーションを集約したプラットフォームとする場合、ソフトウェアのすべてが同一の言語で開発されているとは限らない。そのため、複数のソフトウェアをＷｅｂアプリケーション化しプラットフォームに集約する場合、Ｗｅｂアプリケーションを生成するシステムは複数の言語に対応している必要がある。しかし、先行技術（特許文献１、２）は、特定の１言語で開発されたソフトウェアのみでしか、Ｗｅｂアプリケーション開発に適用できないという課題がある。そこで本発明は少なくとも２言語以上の複数言語で開発されたソースコードに対してもＷｅｂアプリケーション開発が可能となるシステムを提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、ローカル環境で動くソフトウェアのソースコードをもとに、そのソフトウェアをＷｅｂアプリケーション化するＷｅｂアプリケーションの作成運用支援システムにおいて、ソースコードの解析を行うソースコード解析部と、ソースコード解析部が解析したソースコードに基づきＷｅｂアプリケーションのＧＵＩの生成を行い、Ｗｅｂアプリケーションを生成するＷｅｂアプリケーション生成部と、ルーティング処理を行うサーバ上公開処理部と、Ｗｅｂアプリケーション生成部が生成したＷｅｂアプリケーションをアクセス可能な状態にし、運用支援を行うプラットフォーム部と、を備え、ソースコード解析部は、ソースコードのプログラミング言語を判定する言語判定部と、少なくとも２言語以上のプログラミング言語を解析する各言語対応解析部と、を備えることを特徴とするＷｅｂアプリケーションの作成運用支援システムを提供する。
【発明の効果】
【０００６】
少なくとも２言語以上の言語で開発されたソフトウェアのソースコードに対して、Ｗｅｂアプリケーション開発の際に、追加のプログラミング作業を必要とせずにＷｅｂアプリケーションを開発することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】Ｗｅｂアプリケーションの作成運用支援システムの一実施例を示す図である。
【図２Ａ】関数リストの一例（Ｐｙｔｈｏｎの場合）を示す図である。
【図２Ｂ】関数リストの一例（Ｒ言語の場合）を示す図である。
【図３】入出力リストの一例を示す図である。
【図４】各言語対応解析部におけるデータのフローを示したデータフロー図である。
【図５】Ｗｅｂアプリケーション要素データベースの一例を示す図である。
【図６】Ｗｅｂアプリケーション要素生成部におけるデータのフローを示したデータフロー図である。
【図７】コンパイル言語により記述されたソースコードを処理する場合の、アセンブリ部におけるデータのフローを示したデータフロー図である。
【図８】インタプリタ言語により記述されたソースコードを処理する場合の、アセンブリ部におけるデータのフローを示したデータフロー図である。
【図９】図１のＷｅｂアプリケーションの作成運用支援システムによるＷｅｂアプリケーションの開発フローを示したフローチャート図である。
【図１０】ソースコードアップロードページのユーザインターフェースの一例を示す図である。
【図１１】プラットフォーム公開部の一例を示す図である。
【図１２Ａ】ソースコードの一例（Ｐｙｔｈｏｎの場合）を示す図である。
【図１２Ｂ】ソースコードの一例（Ｒの場合）を示す図である。
【図１３】図１２のソースコードをＷｅｂアプリケーション化した際のユーザインターフェースの一例を示す図である。
【図１４】Ｗｅｂアプリケーションの作成運用支援システムの一実施例の変形例を示す図表である。
【発明を実施するための形態】
【０００８】
＜実施例１＞
＜＜基本構成＞＞
以下、図面を参照して本発明の一実施形態によるＷｅｂアプリケーションの作成運用支援システム１について詳細に説明する。
図１は、本発明の一実施形態によるＷｅｂアプリケーションの作成運用支援システム１のシステム概要を示す概略図である。図１に示す通り、Ｗｅｂアプリケーションの作成運用支援システム１は、サーバ２上で動作するシステムであり、大きく分けてソースコード解析部１１、Ｗｅｂアプリケーション生成部１２、サーバ上公開処理部１３、プラットフォーム部１４の４要素から成るシステムである。
【０００９】
この４要素は、それぞれ更に細かい要素を含んでおり、ソースコード解析部１１は、ソースコードアップロードページ３０と言語判定部３１と各言語対応解析部３２（解析部［ｐｙｔｈｏｎ］と解析部［Ｒ言語］と解析部［Ｃ言語］とを総称）により構成される。Ｗｅｂアプリケーション生成部１２は、Ｗｅｂアプリケーション要素生成部４１とＷｅｂアプリケーション要素データベース４２とコンパイル部４３とアセンブリ部４４により構成される。サーバ上公開処理部１３は、Ｗｅｂアプリケーション格納処理部５１とルーティング処理部５２とを備える。プラットフォーム部１４は、プラットフォーム掲載処理部６１とプラットフォーム公開部６２とを備えている。
サーバ２内のＷｅｂアプリケーションの作成運用支援システム１には、開発者ＰＣ３、ユーザＰＣ４からインターネット５を経由して接続できるように構成されている。なお、開発者ＰＣ３やユーザＰＣ４とサーバ２を接続するのはインターネット５に限らず、社内ネットワークを含むイントラネットであってもよい。
【００１０】
＜＜＜ハードウェア＞＞＞
次に、Ｗｅｂアプリケーションの作成運用支援システム１と開発者ＰＣ３とユーザＰＣ４とのハードウェア構成について説明する。
Ｗｅｂアプリケーションの作成運用支援システム１はサーバ２上で動作するシステムである。ここでいうサーバとは、入力装置（キーボードやマウスなど）、記憶装置（メモリやハードディスクなど）、制御装置（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）など）、演算装置（ＣＰＵやＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）など）、出力装置（ディスプレイやプリンタなど）、通信装置（コミュニケーションインタフェースなど）と、を備えたシステムである。これらの装置は、内部バスや外部バス等を含むシステムバスといった伝送路を介して互いに接続されている。記憶装置の内、メインの内部バスに直接接続されているものを主記憶装置、外部バスに接続されているものを補助記憶装置という。主記憶装置にはＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）やＬＩＮＵＸ（登録商標）などのオペレーティングシステムが常駐し、サーバ２全体を制御する。Ｗｅｂアプリケーションの作成運用支援システム１を構成するソフトウェアは、補助記憶装置に格納され、起動されると主記憶装置にロードされて後述するように機能する。Ｗｅｂアプリケーションの作成運用支援システム１は、生成したＷｅｂアプリケーションの動作に必要な処理をサーバ２の持つＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、主記憶装置、補助記憶装置を活用し行うことにより運用支援する。また、開発者ＰＣ３／ユーザＰＣ４は、パーソナルコンピュータであり、入力装置、記憶装置、制御装置、演算装置、出力装置、通信装置とを備えたシステムである。なお、本発明の実施において、上記サーバまたは上記ＰＣに不要な装置が含まれていた場合、その装置はサーバもしくはＰＣに取り付けなくてもよい。
【００１１】
＜＜機能＞＞
次に、Ｗｅｂアプリケーションの作成運用支援システム１の構成要素の機能を説明する前に、Ｗｅｂアプリケーションの作成運用支援システム１を利用するのに用いる開発者ＰＣ３の説明を行う。図１に示すように、開発者ＰＣ３はブラウザ２０を備える。ブラウザとはＷｅｂサイトを閲覧する機能や、Ｗｅｂアプリケーションを操作する機能を有するソフトウェアを指す。
ソースコード２１の送信は、開発者ＰＣ３からブラウザ２０を介して行う。なお、ソースコード２１を送信することが別の手段で可能であれば必ずしもブラウザ２０を備えている必要が無い。別の手段とは例えば、ＦＴＰまたはＦＴＰＳまたはＳＦＴＰ等の、サーバ２に直接送信する手段を指す。
開発者ＰＣ３とブラウザ２０とソースコード２１は特定の開発者のパーソナルコンピュータ、ブラウザ、ソースコードを指しているのではなく、複数の開発者のパーソナルコンピュータ、ブラウザ、ソースコードを代表して図示している。
ソースコード２１は、Ｗｅｂアプリケーションでなく、ローカル環境において動作し、さらにＣＵＩを備えまたはＣＵＩから起動される、文字の入出力や、ファイルの入出力を行うソフトウェアのソースコードである。なお、ソースコード２１は本発明内で作成されるものではなく、あらかじめ作成されている。ファイルは、例えばテキストファイルや画像ファイルである。ローカル環境とは、開発者ＰＣ３だけでなく、インターネット５に繋がった他の資源、たとえばＬＡＮに接続されたライブラリサーバなども含む環境を言う。また、Ｗｅｂアプリケーションは、ブラウザをユーザインターフェースとしてＨＴＭＬを出力し、ブラウザとサーバ２との間はＨＴＴＰ／ＨＴＴＰＳなどで通信を行う。
【００１２】
次に、Ｗｅｂアプリケーションの作成運用支援システム１の構成要素の機能を説明する。
ソースコード解析部１１は、ソースコードアップロードページ３０と言語判定部３１と各言語対応解析部３２とを備える。ソースコードアップロードページ３０は、ソースコード２１をアップロードするＨＴＭＬやＣＳＳ、ｊａｖａｓｃｒｉｐｔにより記述されたＷｅｂページであり、開発者ＰＣ３からソースコード２１を受け取り、言語判定部３１へソースコード２１を受け渡す機能を有する。
【００１３】
言語判定部３１はソースコードアップロードページ３０から受け渡されたソースコード２１の拡張子から、ソースコード２１の言語を判定する機能を有する。例えば、「ｔｅｓｔ．ｐｙ」というファイル名を持つソースコード２１に対しては、プログラミング言語「ｐｙｔｈｏｎ」により記述されているソースコードであると判定し、「ｔｅｓｔ．ｃ」というファイル名を持つソースコード２１に対しては、プログラミング言語「Ｃ言語」により記述されているソースコードであると判定する。なお、言語の判定方法はこれに限定されず、たとえばソースコード２１の内容や文法に基づき言語の特徴的な部分から言語の種類の判定を行ってもよい。さらに、言語判定部３１での判定結果をもとにＷｅｂアプリケーションの生成に対応しているか、否かを言語判定部３１において判定する。なお、Ｗｅｂアプリケーション生成の判定処理はＷｅｂアプリケーション化の可否が記述されたリストと照合することにより行う。本実施例では、判定のためのリストは予め、言語判定部３１に格納しているが、判定のためのリストを外部ファイルから読み込む形で実装しても良い。
【００１４】
各言語対応解析部３２は複数種類の言語に対応するため、各言語解析用の解析部を備え、解析対象の言語の数だけ、その言語に対応する解析部を備える。本実施例では、プログラミング言語であるｐｙｔｈｏｎに対応するための解析部［ｐｙｔｈｏｎ］３２Ａと、プログラミング言語であるＲ言語に対応するための解析部［Ｒ言語］３２Ｂと、プログラミング言語であるＣ言語に対応するための解析部［Ｃ言語］３２Ｃと、を各言語対応解析部３２は備えている。さらに他の言語に対応する解析部を備えてもよい。各言語対応解析部［ｐｙｔｈｏｎ］３２Ａや各言語対応解析部［Ｒ言語］３２Ｂ、各言語対応解析部［Ｃ言語］３２Ｃを総称して各言語対応解析部３２と以下では呼称する。
各言語対応解析部３２は、３つの機能を有する。第一にソースコードを解析する機能、第二に入出力リストを生成する機能、第三にソースコードを書き換える機能である。第一のソースコードを解析する機能は、ソースコード２１を読み込み、文字列の入出力や、ファイルの入出力を行う関数の使用を検知する機能である。この関数の使用の検知は、各言語対応解析部３２が予め保有する図２Ａと図２Ｂに例として示す関数リスト３４と照合することにより実施する。
【００１５】
関数リスト３４は、文字列の入出力やファイルの入出力を行う、代表的な関数名とその処理の内容を記載したリストであり、プログラミング言語ごとに用意するリストである。図２Ａに示すｐｙｔｈｏｎ用の関数リスト３４により、例えば、「ｐｒｉｎｔ」という名称を持つ関数は「ｐｒｉｎｔ」（表示）という機能を持つと関連付け、その機能に対し「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」と呼ばれる番号を付ける（「ｐｒｉｎｔ」の場合は「１」）。Ｒ言語では、「ｐｒｉｎｔ」（表示）の機能を持つ関数は「ｃａｔ」であるが、図２Ｂに示すＲ言語用の関数リスト３４により、「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」は「１」と割り振られるため、ｐｙｔｈｏｎにおける「ｐｒｉｎｔ」と、Ｒ言語における「ｃａｔ」が同様の機能を持つ関数であると判別でき、同一の処理することが可能となる。そのため、プログラミング言語の関数の処理内容とその処理内容に対して生成するＷｅｂアプリケーションの要素の対応関係を示す関数リスト３４の存在により、言語により名称の異なる同一機能の関数に対して、後のＷｅｂアプリケーション要素生成部４１の工程にて、言語に依らず同一のプログラムを用いた処理を行うことが可能となる。なお、本実施例では、関数リスト３４は各言語対応解析部３２が備えているが、関数リスト３４は外部ファイルとして各言語対応解析部３２が読み込む形式でも良い。
検知された関数のうち、ファイルの入出力に関連するものであって、引数にディレクトリ情報（ファイルパス）を持つものは、ディレクトリ情報も同時に検知し、認識する。
【００１６】
第二の入出力リストを生成する機能は、第一のソースコード解析機能により検知された関数の処理の内容をリストや配列として保持し、図３に示す入出力リスト３３として生成する機能である。入出力リスト３３においては、既に関数リスト３４に基づき機能の判別が行われ、「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」による関連付けが実施されているため言語の依存を除去することができている。各言語で関数名は異なるが、同じ機能を有する関数には同じ識別番号である「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」を割り当てることで、複数言語で開発されたソフトウェアであっても追加のプログラミングを必要とせずＷｅｂアプリケーション化が可能となる。さらに入出力リスト３３の「ｔａｒｇｅｔ＿ｄｉｒ」列には、第一のソースコードを解析する機能において検知された、ディレクトリ情報を格納する。なお、格納されるディレクトリ情報が絶対パスの場合は、ルートディレクトリの階層をカレントディレクトリ「．／」に書き換え処理を行う。書き換え処理により、Ｗｅｂアプリケーション実行する度に、カレントディレクトリを変更することにより、Ｗｅｂアプリケーション一実行ごとのデータを継続的に保持することが可能となる。ディレクトリ情報が相対パスの場合は、書き換え処理は実施せず、そのまま、入出力リスト３３の「ｔａｒｇｅｔ＿ｄｉｒ」列に格納される。なお、入出力リスト３３をデータとして保持する替わりに、ファイルとして入出力リスト３３を生成し、Ｗｅｂアプリケーション生成部１２に渡してもよい。
【００１７】
第三のソースコードを書き換える機能は、ディレクトリ情報の書き換え処理をソースコード２１に対しても実施する機能である。ディレクトリ情報が相対パスの場合は、書き換え処理は実施しない。なお、本実施例ではソースコード２１に対して直接、ディレクトリの書き換え処理を実施するが、書き換え処理の前にソースコード２１のコピーを作成し、保持してもよい。
各言語対応解析部３２に関するデータのフローを示した図が図４である。各言語対応解析部３２は、ソースコード２１を入力として、書き換え済みのソースコード２１と入出力リスト３３を出力する。なお、関数リスト３４は、各言語対応解析部３２に内包されているため、図４では図示されない。
以上、ソースコード解析部１１の機能の説明をしたが、ソースコード２１が複数ファイルにより構成される場合は、ソースコード解析部１１の処理は一ファイルずつ順に処理を行う。
【００１８】
Ｗｅｂアプリケーション生成部１２は、Ｗｅｂアプリケーション要素生成部４１、Ｗｅｂアプリケーション要素データベース４２、コンパイル部４３、アセンブリ部４４と、を備える。
Ｗｅｂアプリケーション要素生成部４１は、２つの機能を有する。第一に、Ｗｅｂアプリケーション要素を生成する機能、第二に、Ｗｅｂアプリケーション要素を組み合わせる機能である。
【００１９】
第一のＷｅｂアプリケーション要素を生成する機能とは、各言語対応解析部３２により生成された入出力リスト３３と、図５に示すＷｅｂアプリケーション要素データベース４２とを照合し、Ｗｅｂアプリケーション要素を生成する機能である。なお、Ｗｅｂアプリケーション要素とはテキストボックスや、ファイル選択ボックス、ＵＲＬリンク等のＧＵＩの要素を指す。Ｗｅｂアプリケーション要素データベース４２は、入出力リスト３３の処理の内容とＷｅｂアプリケーション要素を関連付けるデータのデータベースである。Ｗｅｂアプリケーション要素データベース４２において、入出力リスト３３に記述されている機能に対して付けられる番号である「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」と生成されるＧＵＩ要素である「ｏｂｊｅｃｔ＿ｎａｍｅ」は関連付られ、主にＨＴＭＬにより記述されたＧＵＩ要素のコード「ｃｏｄｅ」を取り出すことが可能となる。なお、ＧＵＩ要素のコードは、ＨＴＭＬのみで記述されるのではなく、独自記法「｛｛  ｝｝」を組み合わせたもので、独自記法の導入により、入出力リスト３３の「ｔａｒｇｅｔ＿ｄｉｒ」に相当する引数をＧＵＩ要素に組み込むことが可能となる。なお、独自記法は、「｛｛  ｝｝」の形式に限らず、引数を取り込める形であればどのように記述しても良い。
【００２０】
第二のＷｅｂアプリケーション要素を組み合わせる機能とは、Ｗｅｂアプリケーション要素を組み合わせることにより、ＷｅｂアプリケーションＧＵＩ４７を生成する機能である。Ｗｅｂアプリケーション要素生成部４１に関するデータのフローを示した図が図６である。Ｗｅｂアプリケーション要素生成部４１は、入出力リスト３３とＷｅｂアプリケーション要素データベース４２を入力として、ＷｅｂアプリケーションＧＵＩ４７を出力する。
コンパイル部４３はコンパイラを備え、コンパイル言語により記述されたソースコード２１をコンパイラによりコンパイルし実行可能ファイル４５を生成する機能を有する。ただし、コンパイル部４３でコンパイルされるのは、コンパイル言語により記述されたソースコード２１のみであり、インタプリタ言語により記述されたソースコード２１はコンパイル部４３を経由せず、ソースコード２１に変更はない。コンパイル部４３は、言語判定部３１が判定可能なプログラミング言語のうち、一言語について複数の種類のコンパイラ、たとえば、異なるバージョンや異なる提供元のコンパイラを有することが好ましい。
アセンブリ部４４では、コンパイル言語の場合、実行可能ファイル４５とＷｅｂアプリケーションＧＵＩ４７を具備したＷｅｂアプリケーション４６を生成し、インタプリタ言語の場合、ソースコード２１とＷｅｂアプリケーションＧＵＩ４７を具備したＷｅｂアプリケーション４６を生成する。アセンブリ部４４に関するデータのフローを示した図が図７と図８である。図７がコンパイル言語の場合で、図８がインタプリタ言語の場合である。
【００２１】
サーバ上公開処理部１３はＷｅｂアプリケーション格納処理部５１とルーティング処理部５２とを備える。
Ｗｅｂアプリケーション格納処理部５１は、Ｗｅｂアプリケーション生成部１２で生成されたＷｅｂアプリケーション４６をＷｅｂアプリケーションの作成運用支援システム１が指定したサーバ２上の所定のディレクトリに配置する機能を有する。この所定のディレクトリは、生成されるＷｅｂアプリケーションごとに異なるディレクトリとなるように、Ｗｅｂアプリケーション格納処理部５１が自動的に決定する。
【００２２】
ルーティング処理部５２は、Ｗｅｂアプリケーション４６を配置したディレクトリと、Ｗｅｂアプリケーション４６をインターネットなどの上で公開する際のＵＲＬの関連付けを行う機能を有する。なお、上記インターネット５上で公開する際のＵＲＬは同じくルーティング処理部５２により自動生成される。
【００２３】
プラットフォーム部１４はプラットフォーム掲載処理部６１とプラットフォーム公開部６２とを備えている。プラットフォーム掲載処理部６１は、プラットフォーム公開部６２にＷｅｂアプリケーション４６を掲載する処理を行う機能を有する。ここで、掲載する処理とは、プラットフォーム部１４が予め保有しているプラットフォーム公開部６２のソースコード（Ｗｅｂページ）を書き換え、ルーティング処理部５２により生成したＷｅｂアプリケーション４６へのＵＲＬを掲載することである。
【００２４】
プラットフォーム公開部６２は生成したＷｅｂアプリケーション４６へのＵＲＬリンクを掲載する機能を有する。プラットフォーム公開部６２は、Ｗｅｂアプリケーションの作成運用支援システム１により生成されたＷｅｂアプリケーションへのＵＲＬリンクを永続的に掲載し、Ｗｅｂアプリケーションを集約する機能を持つ。なお、プラットフォーム公開部６２は、Ｗｅｂアプリケーション４６へのＵＲＬがクリックされたタイミングで、Ｗｅｂアプリケーション格納処理部５１においてＷｅｂアプリケーション４６を格納したディレクトリの階下に、新規ディレクトリを作成し、カレントディレクトリに設定し、Ｗｅｂアプリケーション４６を実行する。なお、プラットフォーム公開部６２はインタプリタ言語のソースコード２１の実行のために、インタプリタを備える。プラットフォーム公開部６２は、一言語について複数の種類の対応言語のインタプリタ、対応するインタプリタ言語の数以上の、たとえば、異なるバージョンや異なる提供元のインタプリタを有することが好ましい。
【００２５】
次に、Ｗｅｂアプリケーションの作成運用支援システム１において生成されたＷｅｂアプリケーション４６を利用するのに用いるユーザＰＣ４の説明を行う。
ユーザＰＣ４はブラウザ７１を備える。Ｗｅｂアプリケーションのユーザは、ブラウザ７１、インターネット５を通して、プラットフォーム公開部６２にアクセスし、Ｗｅｂアプリケーション４６を利用する。
【００２６】
＜＜フロー＞＞
次に以上に説明したような、Ｗｅｂアプリケーションの作成運用支援システム１によるＷｅｂアプリケーション開発手順について説明する。
図９に示すように、はじめに、言語判定部３１が開発者ＰＣ３よりアップロードされたソースコード２１を受け取る（Ｓ５０１）。次に、同じく言語判定部３１がソースコード２１の拡張子をもとに記述されている言語の判定を行う（Ｓ５０２）。その判定された言語情報をもとに同じく言語判定部３１がＷｅｂアプリケーション化可能か判断する（Ｓ５０３）。Ｓ５０３でＷｅｂアプリケーション化不可能と判定された場合は、Ｗｅｂアプリケーション化不可の表示がされ（Ｓ５５１）、処理は終了し、Ｗｅｂアプリケーション化されない。Ｓ５０３でＷｅｂアプリケーション化可能と判定された場合は、各言語対応解析部３２がソースコードの解析を実施する（Ｓ５０４）。
次にＳ５０４における解析結果をもとに同じく各言語対応解析部３２が入出力リスト３３を生成する（Ｓ５０５）。次に同じく各言語対応解析部３２がソースコード２１の書き換えを実行する（Ｓ５０６）。次にＳ５０５において生成された入出力リスト３３をもとにＷｅｂアプリケーション要素生成部４１がＷｅｂアプリケーションの要素の生成を行う（Ｓ５０７）。Ｓ５０７において生成されたＷｅｂアプリケーションの要素を同じくＷｅｂアプリケーション要素生成部４１が組み合わせることによりＷｅｂアプリケーションＧＵＩ４７を生成する（Ｓ５０８）。
続いて、コンパイル部４３がＳ５０２において判定された言語情報をもとにコンパイル言語か判定する（Ｓ５０９）。コンパイル可能である場合（コンパイル言語の場合）、同じくコンパイル部４３の備えるコンパイラがコンパイルを実施し、実行可能ファイル４５を生成する（Ｓ５１０）。コンパイラ言語でない（インタプリタ言語）場合、Ｓ５１０はスキップし、Ｓ５１１へと進む。アセンブリ部４４が、コンパイル言語の場合、実行可能ファイル４５とＷｅｂアプリケーションＧＵＩ４７とを組み合わせて、インタプリタ言語の場合、ソースコード２１とＷｅｂアプリケーションＧＵＩ４７とを組み合わせてＷｅｂアプリケーション４６を生成する（Ｓ５１１）。
次に、Ｗｅｂアプリケーション格納処理部５１がＳ５１１で生成されたＷｅｂアプリケーション４６を指定のディレクトリに格納する（Ｓ５１２）。次に、ルーティング処理部５２がルーティング処理を行い、Ｗｅｂアプリケーション４６へのＵＲＬを決定し（Ｓ５１３）、プラットフォーム掲載処理部６１がプラットフォーム公開部６２に掲載する処理を行う（Ｓ５１４）。以上で、ＷＥＢアプリケーション開発の一連の作業が終了する。
【００２７】
＜＜＜ユーザインターフェース（ＵＩ）＞＞＞
次にユーザインターフェースについて説明する。図１０にソースコードアップロードページ３０のユーザインターフェースを示す。ソースコードアップロードページ３０は開発者ＰＣ３のブラウザ２０からアクセスし、表示を行う。ソースコードアップロードページ３０の存在の目的は、Ｗｅｂアプリケーションの作成運用支援システム１がソフトウェアの開発者からソースコードを受け取ることにある。ソースコードを受け取るため、開発者がソースコードを送信する手段をソースコードアップロードページ３０は二種類用意している。
一つ目は、ＰＣ３の中のソースコード２１を選択し、送信する方法である。ファイル選択ボタン８１（ｓｅｌｅｃｔ８１）を押下することによりファイル選択画面が表示され、Ｗｅｂアプリケーション化したいソフトウェアのソースコードを選択することが可能になる。ソースコード選択後、パス表示ボックス８２にソースコード２１へのパスが表示されるが、この要素は必ずしも必要ではない。最後に、送信ボタン８３（ｓｕｂｍｉｔ８３）を押下することによりソースコード２１はＷｅｂアプリケーションの作成運用支援システム１へ送信される。
二つ目は、ＰＣ３の中のソースコード２１をドラッグアンドドロップし、送信する方法である。開発者はドラッグアンドドロップ領域８４にソースコード２１をドラッグアンドドロップすることにより自動的にＷｅｂアプリケーションの作成運用支援システム１へ送信される。なお、図８の中ではドラッグアンドドロップ領域８４は黒線で囲まれた一部領域であるが、ソースコードアップロードページ３０全域にまたがるように、ドラッグアンドドロップ領域８４を設定してもよい。
図１１にプラットフォーム公開部６２を示す。プラットフォーム公開部６２はユーザＰＣ４のブラウザ７１からアクセスし、表示を行う。プラットフォーム公開部６２は、Ｗｅｂアプリケーションの作成運用支援システム１により生成されたＷｅｂアプリケーション４６へのＵＲＬを掲載する。例としてＷｅｂアプリケーション４６Ａから４６Ｆを掲載した様子を示している。Ｗｅｂアプリケーション４６Ａから４６Ｆをクリックすることにより、クリックしたＷｅｂアプリケーションが利用可能な画面へと遷移する。
【００２８】
＜＜＜効果＞＞＞
Ｗｅｂアプリケーションの作成運用支援システム１がソースコード解析部１１とＷｅｂアプリケーション生成部１２を有することにより、ソースコード２１の開発を行った開発者自身が、Ｗｅｂアプリケーション化をすることができる。すなわち、その開発者は、別途Ｗｅｂアプリケーション開発のために追加のプログラミング作業をせずに、Ｗｅｂアプリケーションでなく、ローカル環境において動作し、さらにＣＵＩを備えまたはＣＵＩから起動される、文字の入出力や、ファイルの入出力を行うプログラムをＷｅｂアプリケーション化することができる。プログラミング作業を必要としないことは、Ｗｅｂアプリケーション開発の工数を削減する効果を有する。
Ｗｅｂアプリケーションの作成運用支援システム１がサーバ上公開処理部１３を有することにより、自動でＷｅｂアプリケーションの公開処理を実施することができる。これはＷｅｂアプリケーションの公開に際する、ネットワーク関連の処理の工数を削減することができることを意味する。なお、Ｗｅｂアプリケーション４６ＡのユーザインターフェースがＷｅｂアプリケーションＧＵＩ４７であるため、見た目は同一である。
【００２９】
＜＜＜Ｗｅｂアプリケーションの作成運用支援システムの使用例＞＞＞
最後にＷｅｂアプリケーションの作成運用支援システム１の使用例について説明する。図１２Ａにサンプルソースコード２１Ａを示す。サンプルソースコード２１Ａの機能はｓｉｎ関数を描写し画像出力する。なお、サンプルソースコード２１Ａの実行中にコマンドライン入力にて振幅を指定する必要がある。
始めに、言語判定部３１において図１２Ａに示すサンプルソースコード２１Ａのファイル名の拡張子「．ｐｙ」からｐｙｔｈｏｎにより記述されていると判別する。さらにｐｙｔｈｏｎにより記述されたソースコードであるためＷｅｂアプリケーションとすることが可能であると判定される。次に、解析部［ｐｙｔｈｏｎ］３２Ａがサンプルソースコード２１Ａを図２Ａに示す関数リスト３４を用いて解析し、Ｗｅｂアプリケーション化する関数９１Ａから９５Ａを検知した上で図３に示す入出力リスト３３の形式でリストアップする。関数９１Ａは”print”、関数９２Ａは”print”、関数９３Ａは”input”、関数９４Ａは”savefig”、関数９５Ａは”print”である。これらそれぞれの「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」は、図２Ａに示すように、「１」、「１」、「２」、「３」、「１」である。その結果とＷｅｂアプリケーション要素データベース４２を用いてＷｅｂアプリケーション要素生成部４１がＷｅｂアプリケーションＧＵＩ４７を生成する。ｐｙｔｈｏｎはインタプリタ言語であるのでコンパイル部４３は通過し、アセンブリ部４４においてＷｅｂアプリケーション４６Ａを生成する。Ｗｅｂアプリケーション４６Ａを図１３に示す。Ｗｅｂアプリケーション要素９１から９５は関数９１Ａから９５ＡをＷｅｂアプリケーション要素化したものである。
続いて、Ｗｅｂアプリケーション格納処理部５１によって、特定のディレクトリにＷｅｂアプリケーション４６Ａを格納する。次に、ルーティング処理部５２において、ディレクトリとＵＲＬを関連付け、Ｗｅｂアプリケーション４６Ａへのリンク「ｈｔｔｐｓ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｐｏｒｔａｌ／ａｐｐ００１．ｈｔｍｌ」を生成する。最後に、プラットフォーム掲載処理部６１において、プラットフォーム公開部６２にＷｅｂアプリケーション４６Ａへのリンクを掲載する処理を行い、図１１の４６Ａに示すように掲載を行う。以上でＷｅｂアプリケーションの生成と公開が終了する。公開が終了した後も、プラットフォーム公開部６２への掲載は永続的に行われ、Ｗｅｂアプリケーションの作成運用支援システム１による運用支援が実施される。
また、図１２Ｂにサンプルソースコード２１Ｂを示す。サンプルソースコード２１Ｂは、サンプルソースコード２１Ａと同じの機能を有しており、ｓｉｎ関数を描写し画像出力する。言語判定部３１は、サンプルソースコード２１Ｂのファイル名の拡張子「．Ｒ」からＲ言語により記述されていると判別する。さらにＲ言語により記述されたソースコードであるためＷｅｂアプリケーションとすることが可能であると判定される。解析部［Ｒ言語］３２Ｂがサンプルソースコード２１Ｂを図２Ｂに示す関数リスト３４を用いて解析し、Ｗｅｂアプリケーション化する関数９１Ｂから９５Ｂを検知した上で図３に示す入出力リスト３３の形式でリストアップする。関数９１Ｂは”cat”、関数９２Ｂは”cat”、関数９３Ｂは”scan”、関数９４Ｂは”png”、関数９５Ｂは”cat”である。これらそれぞれの「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」は、図２ＢＡに示すように、「１」、「１」、「２」、「３」、「１」である。このように、複数のプログラミング言語において、各言語で関数名は異なるが、同じ機能を有する関数には同じ識別番号（「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」）を割り当てることで、複数言語で開発されたソフトウェアであっても追加のプログラミングを必要とせずＷｅｂアプリケーション化が可能となる。
以上、本発明の一実施形態について詳細に説明したが、本発明は、前述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、本発明の各機能を分割し、それぞれ別のサーバに機能を実現させてもよい。また、本発明の各機能の一部または全てを個別にプロセッサ化、または集積回路化させてもよい。また、将来的に一部または全ての機能を実現できる技術が発明された場合はその技術を用いても良い。
【００３０】
＜実施例２＞
続いて第２の実施例の説明をする。第１の実施例と第２の実施例は、各言語対応解析部３２を除きすべて共通であるため、各言語対応解析部３２以外の説明は省略し、各言語対応解析部３２の説明のみを行う。
第１の実施例では、各言語対応解析部３２におけるソースコード２１の解析は、関数リスト３４とソースコード２１において使用されている関数を照合する方法により実施した。本実施例では、実施例１の方法に加えて、ソースコード２１において使用され、かつ関数リスト３４にも登録されていない未知の関数である新出関数に対して、その新出関数の引数を取得し、ディレクトリのパスの形式であれば、新出関数の定義部分までさかのぼり、定義部に対して関数リスト３４を用いた照合を実施し、使用されている関数のリストアップを行う。リストアップの結果を新出関数の処理として採用し、入出力リスト３３に掲載する。このように、未知の関数であってもその定義部で照合を実施し、照合された既知の関数と同じ機能を有する関数には同じ識別番号（「ｐｒｏｃｅｓｓｉｎｇ＿ｎｕｍｂｅｒ」）を割り当てることで、複数言語で開発されたソフトウェアであっても追加のプログラミングを必要とせずＷｅｂアプリケーション化が可能となる。
以上、本発明の第二の実施形態について詳細に説明したが、本発明は、前述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、本発明の各機能を分割し、それぞれ別のサーバに機能を実現させてもよい。また、本発明の各機能の一部または全てを個別にプロセッサ化、または集積回路化させてもよい。また、将来的に一部または全ての機能を実現できる技術が発明された場合はその技術を用いても良い。
【００３１】
＜実施例３＞
続いて第３の実施例の説明をする。第３の実施例を図１４に示す。第１の実施例と第３の実施例は、プラットフォーム部１４の構成を除きすべて共通である。そのため、プラットフォーム部１４以外の説明は省略し、プラットフォーム部１４の説明のみを行う。
第３の実施例において、プラットフォーム部１４はプラットフォーム掲載処理部６１とプラットフォーム公開部６２とデータ収集部６３と実行結果データベース６４とを備える。
プラットフォーム掲載処理部６１とプラットフォーム公開部６２の機能は実施例１と同じである。
データ収集部６３は、ユーザＰＣ４から指示が送られＷｅｂアプリケーション４６が実行された結果、Ｗｅｂアプリケーション４６が生成した文字列およびファイルなどの実行結果を収集し、実行結果データベース６４に格納する機能を有する。実行結果データベース６４は、リレーショナルデータベースであっても、ＮｏＳＱＬであっても、または他の形式であっても、実行結果を格納可能なものであれば、どのような形式でも良い。このように、Ｗｅｂアプリケーションの実行結果を収集しそのデータを格納しておくことで、後日実行結果を参照したり共有化することが可能になる。
以上、本発明の第三の実施形態について詳細に説明したが、本発明は、前述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、本発明の各機能を分割し、それぞれ別のサーバに機能を実現させてもよい。また、本発明の各機能の一部または全てを個別にプロセッサ化、または集積回路化させてもよい。また、将来的に一部または全ての機能を実現できる技術が発明された場合はその技術を用いても良い。
【符号の説明】
【００３２】
１      Ｗｅｂアプリケーションの作成および運用支援システム
２      サーバ
３      開発者ＰＣ
４      ユーザＰＣ
５      インターネット
１１    ソースコード解析部
１２    Ｗｅｂアプリケーション生成部
１３    サーバ上公開処理部
１４    プラットフォーム部
２０    ブラウザ
２１    ソースコード
２１Ａ  サンプルソースコード
２１Ｂ  サンプルソースコード
３１    言語判定部
３２    各言語対応解析部
３２Ａ  解析部［ｐｙｔｈｏｎ］
３２Ｂ  解析部［Ｒ言語］
３２Ｃ  解析部［Ｃ言語］
３３    入出力リスト
３４    関数リスト
４１    Ｗｅｂアプリケーション要素生成部
４２    Ｗｅｂアプリケーション要素データベース
４３    コンパイル部
４４    アセンブリ部
４５    実行可能ファイル
４６    Ｗｅｂアプリケーション
４７    ＷｅｂアプリケーションＧＵＩ
５１    Ｗｅｂアプリケーション格納処理部
５２    ルーティング処理部
６１    プラットフォーム掲載処理部
６２    プラットフォーム公開部
６３    データ収集部
６４    実行結果データベース
７１    ブラウザ
８１    ファイル選択ボタン
８２    パス表示ボックス
８３    送信ボタン
８４    ドラッグアンドドロップ領域
９１Ａ  関数
９２Ａ  関数
９３Ａ  関数
９４Ａ  関数
９５Ａ  関数
９１Ｂ  関数
９２Ｂ  関数
９３Ｂ  関数
９４Ｂ  関数
９５Ｂ  関数
９１    Ｗｅｂアプリケーション要素
９２    Ｗｅｂアプリケーション要素
９３    Ｗｅｂアプリケーション要素
９４    Ｗｅｂアプリケーション要素
９５    Ｗｅｂアプリケーション要素
【図１】
2020170453.tif 000003
【図２Ａ】
2020170453.tif 000004
【図２Ｂ】
2020170453.tif 000005
【図３】
2020170453.tif 000006
【図４】
2020170453.tif 000007
【図５】
2020170453.tif 000008
【図６】
2020170453.tif 000009
【図７】
2020170453.tif 000010
【図８】
2020170453.tif 000011
【図９】
2020170453.tif 000012
【図１０】
2020170453.tif 000013
【図１１】
2020170453.tif 000014
【図１２Ａ】
2020170453.tif 000015
【図１２Ｂ】
2020170453.tif 000016
【図１３】
2020170453.tif 000017
【図１４】
2020170453.tif 000018