現在、MS SQL Server 2005 の上に 2 層の Java Swing アプリケーションを配置しています。すべてのビジネス ロジックはデータベース内にあります。クライアントはかなり古く (そしてあまりフレンドリーではありません)、パフォーマンスとスケーラビリティの理由から、Java の中間層へのいくつかのサービスの移植を既に開始しています。
ただし、短期的および長期的な目標はまだいくつかあります。
新しいフロントエンドのテクノロジー スタックを選ぶ
これは簡単なことではありません。連続体の一方の端にある Web アプリから、もう一方の端にある従来のデスクトップ アプリまで、すべてが実行可能な選択肢であることがわかります。現在のフロントエンドはそれほど複雑ではない (ほとんどがフォームベース) ため、Web/AJAX のフィッティングはわかりますが、何がわからないか分からない領域です。
私のリストのスタックは次のとおりです。
- Eclipse RCP、Netbeans RCP
- Flex/Flash、Silverlight、JavaFX
- Pure Javascript フロントエンド (Sprout Core、Javascript MVC など)
- Java ベースの Web フレームワーク (Wicket、JSF など)
リモート環境で現在のアプリケーションを許容できるパフォーマンスにする方法を見つける
アプリを小規模なクライアントに転売し、リモートで展開できるようにする必要があるクライアントがいます。現在のアーキテクチャの 2 層の性質により、これはひどいパフォーマンスにつながります (たとえば、18 の結果セットを返すストアド プロシージャの呼び出し)。過去に Citrix ソリューションを使用したことがありますが、誰もそのアプローチを好みません。ポート 80 を介して JDBC をトンネリングすることも、悪い考えのように思えます。X-Windows のようなアプローチを使用して、GUI 部分だけをリモートにできるものがあるのではないかと考え始めていました。