2

私の主な目標は、solrに基づくjqueryで記述された検索アプリケーションを提供することです。(solrに慣れていない場合は、検索結果を返すことができるREST APIを想定してください。)この目標のために、それぞれがアドホックタスクを実行する多くの小さなアプリケーションとサーブレットを作成しました。例えば:

  1. SearchApp-エンドユーザーが検索を実行できるjqueryアプリ。
  2. SolrProxy-SearchAppとsolrの間でプロキシの役割を果たすJavaサーブレット。それが行うことの1つは、後で分析するためにユーザー要求をログに記録することです。
  3. StatsApp-ユーザーアクティビティの分析を実行し、データとともにjsonを返すサーブレット。
  4. インデクサー-私の要件に従ってデータをsolrにインデックス付けするJavaアプリケーション。このプロセスでは、SQLServer DBもフェッチし、DBに対していくつかの更新コマンドを実行します。
  5. IndexerServlet-インデクサーを使用してhttpリクエストでインデックスを実行する機能を提供する非同期サーブレット。
  6. Nutch-Indexer(3)では達成されない他の要件のためにデータをsolrにインデックス付けするオープンソースプロジェクト。
  7. (MAYBE)-スケジュールされたNutchの実行を実行するサービス。

さらに、コンポーネントが追加される可能性があります。

ほとんどのコンポーネントを処理する1つのプロジェクトではなく、それぞれが1つのタスクを実行する複数のJavaプロジェクトがあるのは少し間違っているようです。これに関するアイデアや洞察はありますか?すべてのJavaアプリを1つのプロジェクトに結合する必要がありますか?これにはある種のフレームワークを使用する必要がありますか?それとも今のままで生きるべきですか?

4

1 に答える 1

2

これらの個別のアプリケーションをすべて持っていることは悪い考えではないと思います。彼らは皆、一つのことをしていて、それをうまくやっているようです。あなたができることは、統一されたインターフェースを介してそれらを公開することです。つまり、基本的には、抽象的で統一されたインターフェイスを提供する、これらすべての異なるサービスの前にあるファサードがあります。このサービスの利用者は、そのファサードの背後に何があるのか​​わかりません。これも同様です。他のコンポーネントに影響を与えることなく、個々のコンポーネントを個別に更新および置換できるようになったためです。それらすべてを1つにまとめた場合、コンポーネントの1つを変更するたびに、新しいリリースをプッシュする必要があります。

于 2013-03-12T17:44:44.613 に答える