(57)【要約】      （修正有）【課題】４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム及びデータ処理方法を提供する。【解決手段】元のアプリケーション層とサービス層との間にルーティング層を追加し、フロントエンドアプリケーションとバックエンドのデータ処理サービスを物理的に分離させ、フロントエンドとバックエンドとのロジック関係の密接性を減らす。アプリケーション層において統合的なフロントエンド開発インタフェースを利用する。ルーティング層においてさらにフロントエンドアプリケーション要求に対してキュー処理を行うとともに、バックエンドサービス応答を受信する。【選択図】図５
2020109613.tif 000002
【特許請求の範囲】
【請求項１】
４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームであって、
ユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、前記要求に応じて指定されたページを呼び出して、対応するコントローラーを配置することで操作インタフェースを形成して、配置した操作インタフェースに対してロード・表示を行うために用いられるアプリケーション層（１）と、
前記アプリケーション層（１）から前記起動要求を取得し、イベントキューに入れて、順番に応じて処理して、処理結果を前記アプリケーション層（１）にフィードバックするために用いられるルーティング層（２）と、
ルーティング層（２）から出したサービス呼び出し要求とデータインタラクション要求を受信・応答して、データ層（４）とのデータのインタラクションを行うために用いられるサービス層（３）と、
データベースを構築することでフロントエンドとバックエンドの全てのデータを保存して、前記データインタラクション要求を受信・応答するために用いられるデータ層（４）とを含む
ことを特徴とする４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項２】
前記アプリケーション層（１）は、
システムにおける全ての機能モジュールに操作ページのページテンプレートを提供して、要求に応じて対応するページテンプレートを呼び出すために用いられるページライブラリ（１１）と、
前記操作ページに前記ページテンプレートを配置するためのツールと素材を提供して、前記ツールと素材を用いて前記ページテンプレートに対して配置を行い、前記操作ページを得るために用いられるアプリケーションコンテナ（１２）とを含む
請求項１に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項３】
前記アプリケーションコンテナ（１２）は、
フロントエンドのアプリケーションモジュールが正常に表示されることを保証するように、全ての前記機能モジュールの操作インタフェースにシステムプラットフォームの全体的なレイアウト、機能モジュールのレイアウト、プラットフォームフレームのスタイル及び前記機能モジュールに関する全てのコントローラーのスタイルを含むレイアウトとスタイルへのサポートを提供するために用いられるスタイルライブラリ（１２１）と、
全ての前記機能モジュールの操作インタフェースにアクセサリとツールを提供するために用いられるコントローラーライブラリ（１２２）と、
前記システムプラットフォームに関する全てのパターン、グラフ、ピクチャ及び文字などの形のリソースを統合・保存して、リソースの呼び出し方を明確にするために用いられるリソースライブラリ（１２３）と、
前記機能モジュールがフロントエンドの機能操作を実現する時に呼び出されるように、フロントエンドに関するパブリック操作メソッドに対して統合的に分類とカプセル化を行うために用いられるメソッドライブラリ（１２４）と、
配置を提供しかつ前記操作インタフェースのスペースをロードするために用いられるアプリケーションスペース（１２５）とを含む
請求項２に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項４】
前記ルーティング層（２）は、
前記アプリケーション層（１）が送信した前記起動要求をＣＰＵにより実行されるマシンコードをコンパイルし、イベント駆動プログラム（２３）に送信して処理させ、処理結果を逆コンパイルしてから前記アプリケーション層（１）に応答するために用いられるＶ８エンジン（２１）と、
前記マシンコードをイベント駆動プログラム（２３）に転送して処理させて、前記処理結果を前記Ｖ８エンジン（２１）に返信するために用いられるランタイム（２２）と、
受信した前記マシンコードをイベントキューに入れて、順番に応じて前記イベントキューにおけるイベントをワーカースレッドに渡して、前記サービス層（３）にサービス呼び出し要求とデータインタラクション要求を送信して、非同期の呼び出しを行い、処理結果をイベントキューに返信し、前記ランタイム（２２）により前記Ｖ８エンジン（２１）に返信するために用いられるイベント駆動プログラム（２３）とを含む
請求項１に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項５】
前記非同期の呼び出しの方法は、
前記イベント駆動プログラム（２３）が非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、前記要求オブジェクトにパラメータとコールバック関数を設定し、前記要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップとを含む
請求項４に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項６】
前記サービス層（３）は、
前記ルーティング層（２）が送信したサービス呼び出し要求とデータインタラクション要求を受信して応答し、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層（３２）に送信するために用いられるＲＥＳＴＦＵＬ層（３１）と、
前記データインタラクション要求を処理して、処理結果を前記ＲＥＳＴＦＵＬ層（３１）に返信するために用いられるＤＡＯ層（３２）と、
前記データ層（４）と接続してアクセスするために用いられるデータベースアクセスインタフェース（３３）とを含む
請求項１に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム。
【請求項７】
４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法であって、
Ｓ１：アプリケーション層（１）はユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、ルーティング層（２）に転送するステップと、
Ｓ２：前記ルーティング層（２）は前記起動要求をイベントキューに入れて、順番に応じて処理して、前記起動要求に応じてサービス層（３）にサービス呼び出し要求を送信するステップと、
Ｓ３：前記サービス層（３）は前記ルーティング層（２）が送信したサービス呼び出し要求とデータインタラクション要求を受信し、前記サービス呼び出し要求を処理して、前記データインタラクション要求に応じてデータ層（４）からデータを呼び出すことを要求するステップと、
Ｓ４：前記サービス層（３）は処理結果を前記ルーティング層（２）に返信し、さらに前記アプリケーション層（１）に応答するステップと、
Ｓ５：前記アプリケーション層（１）は前記処理結果に応じて指定されたページを呼び出し、対応するコントローラーを配置することで操作インタフェースを形成し、配置した操作インタフェースに対してロード・表示を行うステップとを含む
ことを特徴とする４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法。
【請求項８】
ステップＳ２の具体的な方法は、
Ｓ２．１：前記ルーティング層（２）は前記起動要求を受信した後、Ｖ８エンジン（２１）によって前記起動要求をＣＰＵに実行可能なマシンコードにコンパイルして、ランタイム（２２）によってイベント駆動プログラム（２３）に送信して処理させるステップと、
Ｓ２．２：前記イベント駆動プログラム（２３）は前記マシンコードをイベントキューに入れて、順番に応じて前記イベントキューにおけるイベントをワーカースレッドに渡して、前記サービス層（３）にサービス呼び出し要求を送信して、非同期の呼び出しを行うステップとを含む
請求項１に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法。
【請求項９】
ステップＳ２．２の具体的な方法は、
前記イベント駆動プログラム（２３）が非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、前記要求オブジェクトにパラメータとコールバック関数を設定し、前記要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップとを含む
請求項８に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法。
【請求項１０】
ステップＳ３の具体的な方法は、
Ｓ３．１：前記サービス層（３）はＲＥＳＴＦＵＬ層（３１）によって前記ルーティング層（２）から出したサービス呼び出し要求とデータインタラクション要求を受信して、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層（３２）に転送するステップと、
Ｓ３．２：前記ＲＥＳＴＦＵＬ層（３１）は前記サービス呼び出し要求を処理するステップと、
Ｓ３．３：前記ＤＡＯ層（３２）はデータベースアクセスインタフェース（３３）を介してデータ層（４）にアクセスして、前記データインタラクション要求に応じて前記データ層（４）から対応するデータを呼び出して、処理結果を前記ＲＥＳＴＦＵＬ層（３１）に返信するステップとを含む
請求項８に記載の４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は水利情報化技術分野に属し、特に４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム及びデータ処理方法に関する。
【背景技術】
【０００２】
現在、アプリケーションシステムの開発、特にＷｅｂアプリケーションシステムの開発は、システムの技術アーキテクチャの設計において、伝統的な３層のフルスタックアーキテクチャモード、即ち、プレゼンテーション層（ＵＩ）、ビジネスロジック層（ＢＬＬ）、データアクセス層（ＤＡＬ）を採用することが多い。３層アーキテクチャの技術上の主な利点は下記の５つが挙げられ、
１）開発メンバーに対する要求が低く、一種の開発言語を把握して専念できていれば、フロントエンドからバックエンドまでの全ての開発を行うことができること、
２）開発者は構造全体の中のいずれもかの一層だけに専念すればよいこと、
３）各層のロジックの再利用に有利であること、
４）安全性が高い。クライアント側はロジック層を通してデータ層にアクセスすることしかできなく、エントリーを減少させ、多くの危険なシステム機能を無効にさせること、
５）プロジェクト構造がより明らかで、役割分担がより明確で、後期のメンテナンスとグレードアップに有利であること。
【０００３】
３層アーキテクチャモードは、上記複数の利点があるが、長期間にわたる利用の深化に伴い、多くの問題と欠点が明らかになる。例として下記の３つが挙げられ、
１）言うまでもなくシステム性能を低下させる。階層を分けないと、多くのビジネスが直接データベースにアクセスすることで、対応するデータを取得することができるが、現在、中間階層を通さないと完了できないこと、
２）カスケードの修正となることがある。この修正は、特に上から下への方向に体現し、プレゼンテーション層に機能を追加する必要である場合、その設計を階層構造に合わせるため、対応するビジネスロジック層とデータアクセス層にも対応するコードを追加する必要がある可能性があること、
３）コード量が多くなり、作業量が増えること。
【０００４】
上記のような問題があるので、フロントエンドとバックエンドのプログラムの結合度が高く、システム変更・アップデートしにくく、拡張可能性が高くなく、モジュールの動的アセンブルを実現することができない。また、ロードバランシングの能力が低く、大量のコンカレントアクセスを処理することができない。特にインターネット、クラウド技術が急速に発展している今日では、このようなアーキテクチャは大規模集中型のクラウド側のデプロイの要求を満たすことができない。その背景の中で、インターネット、ビッグデータとクラウドコンピューティングなどのソフトウエア開発技術の発展傾向に適合し、プラットフォーム化、標準化のソフトウエア製品要求を満たし、大量のコンカレントアクセスと処理の要求をよりよく満足できる新規なソフトウエアテクノロジアーキテクチャモード、即ち“４層アーキテクチャ”への転換が切実に求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記技術的問題を解決するため、本発明は、４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム及びデータ処理方法を提供する。
【課題を解決するための手段】
【０００６】
本発明の具体的な技術的解決手段は、以下のとおりである。
【０００７】
本発明にて提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームは、
ユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、前記要求に応じて指定されたページを呼び出して、対応するコントローラーを配置することで操作インタフェースを形成して、配置した操作インタフェースに対してロード・表示を行うために用いられるアプリケーション層と、
前記アプリケーション層から前記起動要求を取得し、イベントキューに入れて、順番に応じて処理して、処理結果を前記アプリケーション層にフィードバックするために用いられるルーティング層と、
ルーティング層から出したサービス呼び出し要求とデータインタラクション要求を受信・応答して、データ層とのデータのインタラクションを行うために用いられるサービス層と、
データベースを構築することでフロントエンドとバックエンドの全てのデータを保存して、前記データインタラクション要求を受信・応答するために用いられるデータ層と、を含む。
【０００８】
さらに、前記アプリケーション層は、
システムにおける全ての機能モジュールに操作ページのページテンプレートを提供して、要求に応じて対応するページテンプレートを呼び出すために用いられるページライブラリと、
前記操作ページに前記ページテンプレートを配置するためのツールと素材を提供して、前記ツールと素材を用いて前記ページテンプレートに対して配置を行い、前記操作ページを得るために用いられるアプリケーションコンテナと、を含む。
【０００９】
さらに、前記アプリケーションコンテナは、
フロントエンドのアプリケーションモジュールが正常に表示されることを保証するように、全ての前記機能モジュールの操作インタフェースにシステムプラットフォームの全体的なレイアウト、機能モジュールのレイアウト、プラットフォームフレームのスタイル及び前記機能モジュールに関する全てのコントローラーのスタイルを含むレイアウトとスタイルへのサポートを提供するために用いられるスタイルライブラリと、
全ての前記機能モジュールの操作インタフェースにアクセサリとツールを提供するために用いられるコントローラーライブラリと、
前記システムプラットフォームに関する全てのパターン、グラフ、ピクチャ及び文字などの形のリソースを統合・保存して、リソースの呼び出し方を明確にするために用いられるリソースライブラリと、
前記機能モジュールがフロントエンドの機能操作を実現する時に呼び出されるように、フロントエンドに関するパブリック操作メソッドに対して統合的に分類とカプセル化を行うために用いられるメソッドライブラリと、
配置を提供しかつ前記操作インタフェースのスペースをロードするために用いられるアプリケーションスペースと、を含む。
【００１０】
さらに、前記ルーティング層は、
前記アプリケーション層が送信した前記起動要求をＣＰＵにより実行されるマシンコードをコンパイルし、イベント駆動プログラムに送信して処理させ、処理結果を逆コンパイルしてから前記アプリケーション層に応答するために用いられるＶ８エンジンと、
前記マシンコードをイベント駆動プログラムに転送して処理させて、前記処理結果を前記Ｖ８エンジンに返信するために用いられるランタイムと、
受信した前記マシンコードをイベントキューに入れて、順番に応じて前記イベントキューにおけるイベントをワーカースレッドに渡して、前記サービス層にサービス呼び出し要求とデータインタラクション要求を送信して、非同期の呼び出しを行い、処理結果をイベントキューに返信し、前記ランタイムにより前記Ｖ８エンジンに返信するために用いられるイベント駆動プログラムと、を含む。
【００１１】
さらに、前記非同期の呼び出しの方法は、
前記イベント駆動プログラムが非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、前記要求オブジェクトにパラメータとコールバック関数を設定し、前記要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップと、を含む。
【００１２】
さらに、前記サービス層は、
前記ルーティング層が送信したサービス呼び出し要求とデータインタラクション要求を受信して応答し、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層に送信するために用いられるＲＥＳＴＦＵＬ層と、
前記データインタラクション要求を処理して、処理結果を前記ＲＥＳＴＦＵＬ層に返信するために用いられるＤＡＯ層と、
前記データ層と接続してアクセスするために用いられるデータベースアクセスインタフェースと、を含む。
【００１３】
本発明にてさらに提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法は、
Ｓ１：アプリケーション層はユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、ルーティング層に転送するステップと、
Ｓ２：前記ルーティング層は前記起動要求をイベントキューに入れて、順番に応じて処理して、前記起動要求に応じてサービス層にサービス呼び出し要求を送信するステップと、
Ｓ３：前記サービス層は前記ルーティング層が送信したサービス呼び出し要求とデータインタラクション要求を受信し、前記サービス呼び出し要求を処理して、前記データインタラクション要求に応じてデータ層からデータを呼び出すことを要求するステップと、
Ｓ４：前記サービス層は処理結果を前記ルーティング層に返信し、さらに前記アプリケーション層に応答するステップと、
Ｓ５：前記アプリケーション層は前記処理結果に応じて指定されたページを呼び出し、対応するコントローラーを配置することで操作インタフェースを形成し、配置した操作インタフェースに対してロード・表示を行うステップと、を含むことを特徴とする。
【００１４】
さらに、ステップＳ２の具体的な方法は、
Ｓ２．１：前記ルーティング層は前記起動要求を受信した後、Ｖ８エンジンによって前記起動要求をＣＰＵに実行可能なマシンコードにコンパイルして、ランタイムによってイベント駆動プログラムに送信して処理させるステップと、
Ｓ２．２：前記イベント駆動プログラムは前記マシンコードをイベントキューに入れて、順番に応じて前記イベントキューにおけるイベントをワーカースレッドに渡して、前記サービス層にサービス呼び出し要求を送信して、非同期の呼び出しを行うステップと、を含む。
【００１５】
さらに、ステップＳ２．２の具体的な方法は、
前記イベント駆動プログラムが非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、前記要求オブジェクトにパラメータとコールバック関数を設定し、前記要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップと、を含む。
【００１６】
さらに、ステップＳ３の具体的な方法は、
Ｓ３．１：前記サービス層はＲＥＳＴＦＵＬ層によって前記ルーティング層から出したサービス呼び出し要求とデータインタラクション要求を受信して、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層に転送するステップと、
Ｓ３．２：前記ＲＥＳＴＦＵＬ層は前記サービス呼び出し要求を処理するステップと、
Ｓ３．３：前記ＤＡＯ層はデータベースアクセスインタフェースを介してデータ層にアクセスして、前記データインタラクション要求に応じて前記データ層から対応するデータを呼び出して、処理結果を前記ＲＥＳＴＦＵＬ層に返信するステップと、を含む。
【発明の効果】
【００１７】
本発明の有利な効果は、本発明にて提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォーム及びデータ処理方法は、従来の３層アーキテクチャに比較して、元のプレゼンテーション層（即ちアプリケーション層１）とビジネスロジック層（即ちサービス層３）との間にルーティング層２を追加し、フロントエンドアプリケーションとバックエンドのデータ処理サービスを物理的に分離させ、フロントエンドとバックエンドとのロジック関係の密接性を減らすことで、プログラムの拡張可能性を向上させるとともに、システムプラットフォームはデータ層４に異なるメーカーのデータベースを両立させる機能を追加することで、異なるユーザの様々な要求を満たすように、システムプラットフォームのデータソースに対する記憶方法がより柔軟になる。アプリケーション層１において統合的なフロントエンド開発インタフェースを利用することで、フロントエンドのページに同じレイアウト、統合的なスタイル、完全な機能操作と関連資料を持つようにさせ、フロントエンドアプリケーションの開発効率を向上させることとともに、フロントエンドページの統合性を効果的に向上させ、フロントエンド開発がさらに標準化になることを実現することができ、また、ルーティング層２の追加のため、フロントエンドとバックエンドのプログラムの結合度を大幅に低下させ、プラットフォームの拡張性を高め、ユーザ要求の満足・実現に有利であり、しかも、ルーティング層２においてさらにフロントエンドアプリケーション要求に対してキュー処理を行うとともに、バックエンドサービス応答を受信することができ、それによりフロントエンドアプリケーション要求に対する応答と処理の効率を効果的に向上させ、時間のかかる要求に対して分割処理を行って、短時間で終わる要求をリアルタイム処理することで、プラットフォームに高い同期処理能力を備えさせ、ユーザにより良いアクセス体験を可能にすることである。
【図面の簡単な説明】
【００１８】
【図１】実施例１に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームの構造を示す説明図
【図２】実施例２に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームにおけるアプリケーション層の構造を示す説明図
【図３】実施例３に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームにおけるルーティング層の構造を示す説明図
【図４】実施例４に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームにおけるサービス層の構造を示す説明図
【図５】実施例４に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームの全体的な構造を示す説明図
【図６】実施例５に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法のフローチャート
【図７】実施例６に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法におけるステップＳ２のフローチャート
【図８】実施例７に記載した４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法におけるステップＳ３のフローチャート
【発明を実施するための形態】
【００１９】
以下、図面と下記実施例を組み合わせて本発明について詳しく説明する。
【実施例１】
【００２０】
図１に示すように、本発明の実施例１に提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームは、
ユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、前記要求に応じて指定されたページを呼び出して、対応するコントローラーを配置することで操作インタフェースを形成して、配置した操作インタフェースに対してロード・表示を行うために用いられるアプリケーション層１と、
アプリケーション層１から起動要求を取得し、イベントキューに入れて、順番に応じて処理して、処理結果をアプリケーション層１にフィードバックするために用いられるルーティング層２と、
ルーティング層２から出したサービス呼び出し要求とデータインタラクション要求を受信・応答して、データ層４とのデータのインタラクションを行うために用いられるサービス層３と、
データベースを構築することでフロントエンドとバックエンドの全てのデータを保存して、ＯＲＡＣＬＥデータベースとＳＱＬ  ＳＥＲＶＥＲデータベースがＭｙｂａｔｉｓを用いて多種類のリレーショナルデータベースをサポートし、異なる操作システム及び異なるフォーマットを両立させるデータを含む、データインタラクション要求を受信・応答するために用いられるデータ層４と、を含む。
【００２１】
本実施例にて提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームは、従来の３層アーキテクチャに比較して、元のプレゼンテーション層（即ちアプリケーション層１）とビジネスロジック層（即ちサービス層３）との間にルーティング層２を追加し、フロントエンドアプリケーションとバックエンドのデータ処理サービスを物理的に分離させ、フロントエンドとバックエンドとのロジック関係の密接性を減らすことで、プログラムの拡張可能性を向上させるとともに、システムプラットフォームはデータ層４に異なるメーカーのデータベースを両立させる機能を追加することで、異なるユーザの様々な要求を満たすように、システムプラットフォームのデータソースに対する記憶方法がより柔軟になる。アプリケーション層１において統合的なフロントエンド開発インタフェースを利用することで、フロントエンドのページに同じレイアウト、統合的なスタイル、完全な機能操作と関連資料を持つようにさせ、フロントエンドアプリケーションの開発効率を向上させることとともに、フロントエンドページの統合性を効果的に向上させ、フロントエンド開発がさらに標準化になることを実現することができ、また、ルーティング層２の追加のため、プラットフォーム全体のフロントエンドとバックエンドを物理的に分離させ、フロントエンドが機能アプリケーション、バックエンドがデータ処理に重点を置いて、それぞれアプリケーションとビジネスデータに向けて、それぞれの役割を果たすようにさせることで、フロントエンドとバックエンドのアプリケーション効果と処理効率が大幅に向上し、。フロントエンドとバックエンドが完全に分離されるため、フロントエンドとバックエンドのプログラムの結合度を大幅に低下させ、プラットフォームの拡張性を高め、ユーザ要求の満足・実現に有利であり、しかも、ルーティング層２においてさらに自主開発したＷｉｎｄｏｗｓ操作システムのメッセージキューに類似したフロントエンド要求処理キュープログラムを組み込んで、フロントエンドアプリケーション要求を受信して処理しかつバックエンドのサービス応答を受信するために用いられ、それによりフロントエンドアプリケーション要求の応答と処理の効率を効果的に向上させ、処理に時間のかかる要求に対して分割処理を行って、短時間で終わる要求をリアルタイム処理することで、プラットフォームに高い同期処理能力を備えさせ、ユーザにより良いアクセス体験を可能にすることである。
【実施例２】
【００２２】
図２に示すように、実施例１を基に、実施例２は４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームを提供し、当該実施例２によりさらに制限されるアプリケーション層（１）は、
システムにおける全ての機能モジュールに操作ページのページテンプレートを提供して、要求に応じて対応するページテンプレートを呼び出すために用いられるページライブラリ１１と、
操作ページにページテンプレートを配置するためのツールと素材を提供して、ツールと素材を用いてページテンプレートに対して配置を行い、操作ページを得るために用いられるアプリケーションコンテナ１２と、を含む。
【００２３】
アプリケーションコンテナ１２は、
フロントエンドのアプリケーションモジュールが正常に表示されることを保証するように、全ての機能モジュールの操作インタフェースにシステムプラットフォームの全体的なレイアウト、機能モジュールのレイアウト、プラットフォームフレームのスタイル及び機能モジュールに関する全てのコントローラーのスタイルを含むレイアウトとスタイルへのサポートを提供するために用いられるスタイルライブラリ１２１と、
全ての機能モジュールの操作インタフェースにアクセサリとツールを提供するために用いられるコントローラーライブラリ１２２と、
アクセサリとツールはプラットフォームにおける各機能モジュールの使用する各種類のテーブル、チャート、メニュー、ツールバー、ボタン、テキストフレーム及び一部のビジネス機能を含むツリーメニュー（観測ポイントツリー、水使用単位ツリー、管理機関ツリーなど）などを備える。アプリケーション機能と効果の面において、灌漑エリアのビジネスニーズをよりよく満足させるように、プラットフォームはＥａｓｙＵＩをコントローラーベースとする上、二次カプセル化を行い、かつ、当該コントローラライブラリにおける全てのコントローラーを灌漑エリアのビジネス開発の基礎となって、スマートな灌漑エリアｅプラットフォーム特有の機能コントローラーになるように、プラットフォームアプリケーションに適応する属性とメソッドを追加し、
システムプラットフォームに関する全てのパターン、グラフ、ピクチャ及び文字などの形のリソースを統合的に整理して、プラットフォームにより指定された位置に記憶するとともに、リソースの呼び出し方を明確にすることで、プラットフォームのリソースデータを容易に統合的に管理するために用いられるリソースライブラリ１２３と、
フロントエンドに関するパブリック操作メソッドを統合的に分類しカプセル化し、各メソッドにおける特別性をなくして、メソッドの汎用性を増加させることで、フロントエンドの機能モジュールはフロントエンドの機能操作を実現する時に対応するメソッドを呼び出すことができ、それによりプラットフォーム全体のフロントエンドアプリケーションの統合性を向上させるために用いられるメソッドライブラリ１２４と、
現在、メソッドライブラリ１２４には主に水量ゲージ作成メソッド、画像拡大メソッド、マウスホイールスクロールメソッド、自動的にメニューを非表示にするメソッド及び時間軸生成メソッドなどのパブリック操作メソッドを含み、
配置を提供しかつ操作インタフェースのスペースをロードするために用いられるアプリケーションスペース１２５と、を含む。
【００２４】
ユーザからシステムのある機能モジュールに要求を求める時、ユーザからの要求をアプリケーション層１により受信してから、ルーティング層２に送信して、ルーティング層２の応答を待ち、ルーティング層２からの応答を受信した後、アプリケーション層１は応答要求に応じて、ページライブラリ１１から指定されたページを呼び出してアプリケーションスペース１２５にロードし、表示スタイルの正確性、コントローラー機能の使用可能性、リソース表示の正常性、メソッドの正確な呼び出しを保証するように、スタイルライブラリ１２１、コントローラーライブラリ１２２、リソースライブラリ１２３とメソッドライブラリ１３４はアプリケーションスペースで実行されるページにサポートを提供し、最後はユーザから要求されたインタフェースをブラウザに表示させ、ユーザに使用される。
【実施例３】
【００２５】
図３に示すように、実施例２を基に、実施例３は４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームを提供し、当該実施例３によりさらに制限されるルーティング層２は、
アプリケーション層１が送信した起動要求をＣＰＵにより実行されるマシンコードをコンパイルし、イベント駆動プログラムに送信して処理させ、処理結果を逆コンパイルしてからアプリケーション層に応答するために用いられるＶ８エンジン２１と、
Ｖ８  ＪａｖａＳｃｒｉｐｔ（登録商標）エンジンはＧｏｏｇｌｅのＣｈｒｏｍｅブラウザ用の下位層ＪａｖａＳｃｒｉｐｔ（登録商標）エンジンで、ウェブブラウザ内部のＪａｖａＳｃｒｉｐｔ（登録商標）の実行性能を向上させるためのものである。その目的を実現するため、Ｖ８エンジンはインタープリターの実行に依存することなく、ＪａｖａＳｃｒｉｐｔ（登録商標）コードを高効率のマシンコードに変換する。Ｖ８エンジンはＪＩＴの運転時にＪａｖａＳｃｒｉｐｔ（登録商標）コードをマシンコードに変換することを導入し、その主な違いはＶ８エンジンのバイトコード又は任意の中間コードを生成せず、直接マシンコードに変換することであり、
マシンコードをイベント駆動プログラムに転送して処理させて、処理結果をＶ８エンジン２１に返信するために用いられるランタイム２２と、
Ｎｏｄｅｊｓをランタイム（ｒｕｎｔｉｍｅ）として用い、ｊａｖａｓｃｒｉｐｔ（登録商標）コードがサーバー側で実行されるようにし、ルーティング層２がアプリケーション層１から出した要求を受信した後、まずＶ８エンジン２１により要求をＣＰＵに実行可能なマシンコードにコンパイルしてから、ＮｏｄｅｊｓのＢｉｎｇｄｉｎｇプログラムによりコンパイルしたマシンコードをＮｏｄｅｊｓのイベント駆動プログラム３（ＬＩＢＵＶ）に渡して実行させ、
受信したマシンコードをイベントキューに入れて、順番に応じてイベントキューにおけるイベントをワーカースレッドに渡して、サービス層３にサービス呼び出し要求とデータインタラクション要求を送信して、非同期の呼び出しを行い、処理結果をイベントキューに返信し、ランタイム２２によりＶ８エンジン２１に返信するために用いられるイベント駆動プログラム２３と、を含む。
【００２６】
イベント駆動プログラム２３の原理は受信したマシンコードをイベントキュー（ｅｖｅｎｔ  ｑｕｅｕｅ）に入れて、実行プログラムが順番に応じてイベントキューにおけるイベントをワーカースレッド（ｗｏｒｋｅｒ  ｔｈｅａｄｓ）に渡して、サービス層３を非同期的に呼び出して、処理結果をイベントキューに返信してから、実行プログラムによりイベントキューにおける処理結果をＶ８エンジン２１に返信し、最後にＶ８エンジン２１で逆コンパイルしてからアプリケーション層１に応答する。
【００２７】
非同期の呼び出しの方法は、
イベント駆動プログラム２３が非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、要求オブジェクトにパラメータとコールバック関数を設定し、要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップと、を含む。
【００２８】
イベント駆動プログラム２３の主な思想はイベント又は状態の変化によってアプリケーションプログラムに対してフロー制御を行い、一般にイベントモニタリングにより完了させ、一旦イベントが検出されると、対応するコールバック関数を呼び出し、イベント駆動の主な実行過程としては新規な要求が入ってきたら、その要求がキューに入れられ、ループを使ってキューにおけるイベントの状態の変化を検出し、状態が変化したイベントを検出したら、当該イベントに対応する処理コードを実行し、一般にコールバック関数である。
【００２９】
スレッド駆動は要求を受信した時、当該要求に新規なスレッドを動かして要求を処理する。スレッドは主にスレッドプールにより管理されるものである。スレッドプールに空いているスレッドがあれば、スレッドプールからスレッドを出して処理するが、スレッドプールに空いているスレッドがなければ、スレッドプールにスレッドが空くまで、新規な要求がキューに入れられる。
【実施例４】
【００３０】
図４〜５に示すように、実施例３を基に、実施例４は４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームを提供し、当該実施例４によりさらに制限されるサービス層２は、
ルーティング層２が送信したサービス呼び出し要求とデータインタラクション要求を受信して応答し、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層に送信するために用いられるＲＥＳＴＦＵＬ層３１と、
データインタラクション要求を処理して、処理結果をＲＥＳＴＦＵＬ層に返信するために用いられるＤＡＯ層３２と、
データ層と接続してアクセスするために用いられるデータベースアクセスインタフェース３３と、を含む。
【００３１】
サービス層としては主にｊａｖａを開発技術とし、ＲＥＳＴＦＵＬ層３１はＪｅｒｓｅｙフレームにより受信と対応するルーティング層からの要求を実現し、またＳｐｒｉｎｇフレームを使用してＲＥＳＴＦＵＬ層３１とＤＡＯ層３２のプログラムの共有を実現し、最後にＤＡＯ層４２はデータベースアクセスインタフェース３３（ＪＤＢＣ）を介してリレーショナルデータベースへのアクセスを実現する。標準的なインタフェースを定義することで、ＪｅｒｓｅｙフレームとＳｐｒｉｎｇフレートを結合させ、Ｊｅｒｓｅｙはフロントエンドアプリケーションから送信した要求を受信してから、標準的なインタフェース（ベースインタフェース、データフォーマット化処理インタフェース、フレームインタフェース、パブリックサーチインタフェース及びモバイルデバイスインタフェースを含む）を介して、データベースが完了必要なデータインタラクション要求をＳｐｒｉｎｇのＤＡＯ層３２に渡して処理させて、処理結果をＪｓｏｎの形でＪｅｒｓｅｙのＲｅｓｔｆｕｌ層３１に返信し、さらにバックエンドサービスのデータ操作ロジックを実現する。
【実施例５】
【００３２】
図６に示すように、本発明の実施例５にて提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法は、
Ｓ１：アプリケーション層1はユーザからのシステムにおける任意の機能モジュールに求める起動要求を受信して、ルーティング層２に転送するステップと、
Ｓ２：ルーティング層２は起動要求をイベントキューに入れて、順番に応じて処理して、起動要求に応じてサービス層３にサービス呼び出し要求を送信するステップと、
Ｓ３：サービス層３はルーティング層２が送信したサービス呼び出し要求とデータインタラクション要求を受信し、サービス呼び出し要求を処理して、データインタラクション要求に応じてデータ層４からデータを呼び出すことを要求するステップと、
Ｓ４：サービス層３は処理結果をルーティング層２に返信し、さらにアプリケーション層１に応答するステップと、
Ｓ５：アプリケーション層１は処理結果に応じて指定されたページを呼び出し、対応するコントローラーを配置することで操作インタフェースを形成し、配置した操作インタフェースに対してロード・表示を行うステップと、を含む。
【００３３】
本実施例にて提供される４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ分析方法は、ルーティング層２を介してアプリケーション層１とサービス層３との間に情報を転送することを実現し、フロントエンドアプリケーションとバックエンドのデータ処理サービスを物理的に分離させ、フロントエンドとバックエンドとのロジック関係の密接性を減らすことで、プログラムの拡張可能性を向上させ、メッセージキューのフロントエンドはキュープログラムの処理を要求し、フロントエンドのアプリケーション要求を受信・処理しかつバックエンドのサービス応答を受信するために用いられ、それによりフロントエンドアプリケーション要求に対する応答と処理の効率を効果的に向上させ、時間のかかる要求に対して分割処理を行って、短時間で終わる要求をリアルタイム処理することで、データ処理に高い同期処理能力を備えさせ、データ分析と処理の効率を大幅に向上させる。
【実施例６】
【００３４】
図７に示すように、実施例５を基に、実施例６は４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法を提供し、当該実施例６によりさらに制限されるステップＳ２は、
Ｓ２．１：ルーティング層２は起動要求を受信した後、Ｖ８エンジン２１によって起動要求をＣＰＵに実行可能なマシンコードにコンパイルして、ランタイム２２によってイベント駆動プログラム２３に送信して処理させるステップと、
Ｓ２．２：イベント駆動プログラム２３はマシンコードをイベントキューに入れて、順番に応じてイベントキューにおけるイベントをワーカースレッドに渡して、サービス層３にサービス呼び出し要求を送信して、非同期の呼び出しを行うステップと、を含む。
【００３５】
イベント駆動プログラム２３が非同期の要求を出した後、要求を要求オブジェクトにカプセル化するステップと、要求オブジェクトにパラメータとコールバック関数を設定し、要求オブジェクトをスレッドプールに入れるステップと、スレッドプールにおいて使用可能なスレッドがあるかを確認し、使用可能なスレッドがあれば、要求オブジェクトのＩ／Ｏ操作を実行して、実行が完了した結果を要求オブジェクトに入れて、ポートに呼び出し完了を通知するステップと、を含む。
【００３６】
イベント又は状態の変化によってアプリケーションプログラムに対してフロー制御を行い、一般にイベントモニタリングにより完了させ、一旦イベントが検出されると、対応するコールバック関数を呼び出し、新規な要求が入ってきたら、その要求がキューに入れられ、ループを使ってキューにおけるイベントの状態の変化を検出し、状態が変化したイベントを検出したら、当該イベントに対応する処理コードを実行し、一般にコールバック関数であり、スレッド駆動は要求を受信した時、当該要求に新規なスレッドを動かして要求を処理する。スレッドは主にスレッドプールにより管理されるものである。スレッドプールに空いているスレッドがあれば、スレッドプールからスレッドを出して処理するが、スレッドプールに空いているスレッドがなければ、スレッドプールにスレッドが空くまで、新規な要求がキューに入れられる。
【実施例７】
【００３７】
図８に示すように、実施例５を基に、実施例７は４層アーキテクチャに基づくスマートな灌漑エリアｅプラットフォームのデータ処理方法を提供し、当該実施例７によりさらに制限されるステップＳ３の具体的な方法は、
Ｓ３．１：サービス層３はＲＥＳＴＦＵＬ層３１によってルーティング層２から出したサービス呼び出し要求とデータインタラクション要求を受信して、そのうちデータベースに関するデータインタラクション要求をＤＡＯ層３２に転送するステップと、
Ｓ３．２：ＲＥＳＴＦＵＬ層３１はサービス呼び出し要求を処理するステップと、
Ｓ３．３：ＤＡＯ層３２はデータベースアクセスインタフェース３３を介してデータ層４にアクセスして、データインタラクション要求に応じてデータ層４から対応するデータを呼び出して、処理結果をＲＥＳＴＦＵＬ層３１に返信するステップと、を含む。
【００３８】
上記実施例は本発明の幾つかの実施形態のみを表現し、それについての記述は詳しいが、本発明の特許範囲に制限するものではない。当然ながら、当業者であれば、本発明の思想を逸脱せずに、複数の変更と改善が行われ、これらは全て本発明の保護範囲に属する。そのため、本発明の特許の保護範囲は添付している特許範囲に準じる。
【図１】
2020109613.tif 000003
【図２】
2020109613.tif 000004
【図３】
2020109613.tif 000005
【図４】
2020109613.tif 000006
【図５】
2020109613.tif 000007
【図６】
2020109613.tif 000008
【図７】
2020109613.tif 000009
【図８】
2020109613.tif 000010