ユニバーサルGUI

こんにちは 私の名前はハリトフキリルです。私はMGUDT(モスクワ州立工科大学(MGUDT))の大学院生です。 私の論文では、ローカルアプリケーションとWebアプリケーションのインターフェイスを作成するプロセスを簡素化するタスクが発生し、その結果、主題が得られました。



はじめに



現在、最新の監視システムには、データの視覚化のためのアプリケーションソフトウェア(ソフトウェア)が含まれています。 原則として、このソフトウェアの起動には、推奨されるオペレーティングシステム(OS)が必要です。そのほとんどの場合、Microsoft OSです。 ただし、ソフトウェア開発にはクロスプラットフォームツールを使用する傾向があります。 この結果、モバイルOSを含むさまざまなオペレーティングシステムで完成したソフトウェア製品を起動することが可能になります。



さらに、インターネットの急増に関連して、WebアプリケーションまたはWebサービスの開発は、ソフトウェア開発の一般的な分野になりました。 Webアプリケーションは、クライアントアプリケーションプログラム(アプリケーション)への便利な追加機能です。 通常、Webアプリケーションでは、監視システムをリモートで使用できます。 これは、ユーザーが監視システムのハードウェアの場所に縛られることなく、推奨されるインターネット接続がある世界のどこからでもそれを使用できることを意味します。 Webアプリケーションの開発は、クライアントアプリケーションの開発とは大きく異なるため、いくつかの問題が発生することに注意することが重要です。 特に、これはユニバーサルグラフィカルユーザーインターフェイス(GUI)を作成する際の問題です。 クライアントアプリケーションとWebアプリケーションを単一のグラフィックスタイルで実装するには、クライアントアプリケーションインターフェイスの開発者とWebアプリケーションインターフェイスの開発者の両方に十分な努力をする必要があります。 最終的に、1人または別の開発者の努力の大きさは、どのアプリケーションが全体的なスタイルを決定するかのインターフェースに依存します。



インターフェイスを構築する最新の方法



Microsoft Windows(MS Windows)およびLinuxのソフトウェア開発に最もよく使用される、C ++でクライアントアプリケーションインターフェイスを構築する現在最も一般的な方法を検討してください。 MS Windowsの主要なソフトウェア開発ツールはMS Visual Studio [1]です。 この統合開発環境(IDE)を使用すると、さまざまなプログラミング言語でソフトウェアを開発できますが、もちろん主要な言語はC ++およびC#です。 アプリケーションインターフェイスを開発するための主要なツールは、Windowsフォーム(WinForms)とWindows Presentation Foundation(WPF)の2つです。 MS Windows用の既存のアプリケーションのほとんどはWinFormsを使用して開発されていますが、OSの最新バージョン(MS Windows 7、8)の出現により、WPFはより一般的になっています。 さらに、MS Visual Studioの最新バージョンでは、HTML5マークアップ言語を使用して、ネイティブWebアプリケーションとスタイルが似たインターフェイスを構築できます。 ただし、MS Windowsのライセンスと同様に、MS Visual Studioの商用ライセンスが支払われることは注目に値します。これは間違いなく低予算プロジェクトの欠点です。



低予算プロジェクトについて話す場合、最も適切なオプションはLinux OSです。 このOSのほとんどのディストリビューションは、商用利用を含めて完全に無料であるという事実に加えて、Linux OS用の高品質ソフトウェアを開発するための多くの無料ツールもあります。 C ++でソフトウェアを開発するための最も一般的なツールは、クロスプラットフォームツールキットQtです[2]。 Qtを使用すると、Linuxだけでなく、MS Windows、Mac OS X、Android、およびその他のUNIXライクなオペレーティングシステム用のアプリケーションを開発できることを強調することが重要です。 Qt開発者は、無料で商用利用できるほか、追加機能付きの有料ライセンスも提供しています。 しかし、このツールキットを使用したソフトウェア開発の現在の慣行に基づいて、無料のライセンスで十分です。



MS Visual Studioに例えると、QtにはIDE Qt Creatorがあります。 ここで、WinFormsの代替は、いわゆるウィジェット(Qtウィジェット)であり、WPFの代替はQt Quickです。 Qt Creatorには、HTML5ベースのインターフェイスを作成する機能もあります。 しかし、ツールキットの最も興味深いモジュールは、組み込みのWebKit Webエンジンです。これは、最新のすべてのWebブラウザーの基礎になっています。 同様のモジュールがMS Visual Studioで利用できますが、いくつかの制限があり、ソフトウェア製品の作成コストを削減できる低予算のツールにさらに関心があります。 Webエンジンはブラウザの中核であり、Webページの正しい表示を担当します。 Qt WebKitモジュールを使用すると、Webアプリケーションインターフェイスを開発する手法を使用して、クライアントアプリケーションインターフェイスを作成できます。 Webアプリケーションインターフェイスを作成する中心となるのは、確立されたテクノロジースタックです。 HTMLマークアップ言語(HTML 4、5)、カスケードスタイルシート(CSS 2、3)、および追加のライブラリ(ワイヤフレーム)の豊富な選択を備えたJavaScriptスクリプト言語が含まれています。 特に注目すべきは、JavaScript言語用の新しい有用なフレームワークの出現速度が急速に成長していることです。これにより、機能が豊富なアプリケーションの開発がより迅速かつ便利になります。



現在、ユニバーサルGUIを作成する問題の解決策は表面にありますが、これは一見しただけです。



従来の方法:Qt WebKit + Qt-crutches



論文研究の一部として開発された音響モニタリングシステムのデータ視覚化モジュールの例を使用して、Qt WebKitモジュールを使用してユニバーサルGUIを作成する従来の方法を検討してください[3]。 音響監視システムとは、ハードウェアとソフトウェアを含むシステムを意味します。 システムのハードウェアは、音響センサーのセンサーネットワークで構成され、そのデータはマイクロコントローラーで処理され、任意のインターフェイス(UART、IEEE 802.Xなど)を介してパーソナルコンピューター(PC)に送信されます。 ソフトウェア部分は、ローカルPC(クライアントソフトウェア)とリモートサーバー(サーバーソフトウェア)の両方で実行される一連のアプリケーションで構成されます。



従来の方法では、プロセス間を使用します





図 1.ユニバーサルGUIを実装する従来の方法



組み込みのQtメカニズムを使用した対話。 これは、図1でデータハンドラーとして示されているクライアントアプリケーションのメインロジックとGUI要素の間の相互作用を意味します。 このアプローチの欠点の1つは、JavaScriptでGUIを実装するためのコードに、クライアントQtアプリケーションのみに関連する特定の機能があることです。 GUIを担当するサーバーアプリケーションには、別のサーバー固有のコードが必要です。 たとえば、PHPスクリプトを使用してサーバーアプリケーションの基本ロジックを実装する場合、他のテクノロジ(AJAXまたはWebSocket)を使用してプロセス間通信を実装する必要があります。 これは別の欠点、つまりサーバーアプリケーションのメインロジックを実装するための追加のプログラミング言語の使用と、新しいプロセス間通信アルゴリズムの開発を意味します。



より興味深いアプローチ:Qt WebKit + WebSocket



これらの問題を解決するために、上記のWebSocketテクノロジーの使用に基づいた新しい方法が提案されています。 このメソッドの本質は、クライアント側とサーバー側の両方で、メインアプリケーションロジックとGUIの間のプロセス間通信メソッドを統合することです。 この場合、JavaScriptコードを使用して、両側にユニバーサルGUIを実装することが可能になります。





図 2.ユニバーサルGUIを実装するための新しい方法



図 2.プロセス間通信では、クライアント部分とサーバー部分の両方がWebSocketテクノロジーを使用していることがわかります。 つまり、さまざまなアプリケーション用の1つのユニバーサルJavaScriptコードが作成されました。 この場合、前提条件はサーバーアプリケーションであり、その主なロジックはQtを使用してC ++言語で実装されていますが、Web開発者にはあまり馴染みがありません。 一方では、サーバーアプリケーションを実装するためのこのアプローチは、高度に専門化されたWeb開発者のタスクを複雑にします。 しかし一方で、コードの普遍的な部分があるため、異なる言語のアルゴリズムの意味で同じものを複製する時間を節約できます。 また、WebSocketテクノロジーを使用するには追加のライブラリが必要であることを強調することも重要です。このライブラリはインターネットで無料で利用できるか、Qtの以降のバージョンにデフォルトで含まれています。





図 3. Ubuntu 14.04で実行されるローカル(右)およびサーバー(左)アプリケーション



図 図3は、Ubuntu 14.04用のユニバーサルGUIを作成する新しい方法の実装例を示しています。 図からわかるように、最終的には、OS実行可能ファイルとして実行されるローカルアプリケーションと最新のWebブラウザーで実行されるサーバーアプリケーションの両方のユニバーサルインターフェイスが取得されます。 クロスプラットフォームツールはソフトウェア開発に使用されるため、これは将来ソフトウェア製品を他のオペレーティングシステムに簡単に移植できることを示唆しています。



参照資料



1. Qtドキュメント[電子リソース]。 アクセスモード: qt-project.org/doc

2. Visual Studio Library [電子リソース]。 アクセスモード: msdn.microsoft.com/en-us/library/vstudio

3.若手科学者-繊維および産業クラスターの開発(SEARCH-2014):大学院生および国際参加学生の大学間科学技術会議の資料のコレクション。 パート2.-Ivanovo:Ivanov。 状態 ポリテクニック Un-t、2014。-P. 25 [電子リソース]。 アクセスモード: ti.ivgpu.com/poisk/file/part_2.pdf



PSあなたの目を引く唯一のことは異なるフォントですが、正直なところ、私はそれらの時間を持っていませんでした。



PPSこの方法の特許を取得して、ソフトウェアの登録証明書以外に保護を切り抜ける何かがあるのでしょうか?



All Articles