3

私は現在、(非常に) 小規模なデータベース アプリケーションの研究段階にあります。

これは、システムを実行する 3 台または 4 台のクライアント マシンしかない地元の慈善団体のためのものです。クライアントが知る必要のない、常に読み通し、必要に応じて更新する)

つまり、クライアント <-> サーバー ロジック <-> データベース

私はJava自体といくつかのフレームワーク/ライブラリに精通していますが、ここでどのフレームワークが役立つかについては特に詳しくありません. 明らかに、データベースの半分に JDBC を使用しますが、クライアントとサーバー間の通信が現時点で障害になっています。たとえば、生のソケットの近くには行きたくありません (やり過ぎ、または少なくとも別のソリューションが存在する必要があります)

知っている何人かの開発者に、どの API を使用するかについての意見を聞いてみました。彼らは非常に役に立ちましたが、どこに行けばいいのかまだよくわかりません。これまでのところ、RESTful や SOAP、COBRA など、さまざまなテクノロジについて聞いてきました。SOAP は私の注意を引いた主なものです (Web だけでなく、通常のアプリケーションで使用する良い例がいくつかあるため) が、どこに行けばよいかまだわかりません。一般的なアプリケーションには特に適していないようです。このような目的のアプリ (EJB もポップアップしましたが、それを狙った憎しみがたくさんあると聞きました - これは当然のことですか?)

「仕事に最適なツール」を見つけるには、実際にそれぞれを完全に学習して「取得」する必要があるように感じます (これは明らかに非現実的です)。

これらのような API を選択する方法について (以前に使用したことがない場合)、またはいくつかの一般的な API についての情報を教えてもらえますか、それとも実際に多くの API を試してどれが適しているかを確認するだけの場合ですか?一番?

それとも、私は完全に的を外しており、明らかな短所のないこの正確な状況を目的としたフレームワークがあるのでしょうか?

助けてくれてありがとう。

編集:

それが実際に何をするかについて言及するのを完全に忘れていました: それはそれほど複雑ではありません - 慈善団体は輸送スキームを運営しているので、ドライバー、クライアント、ドライバーの走行記録などの詳細を表示および編集するために保持しています.ドライバーは、予測可能な「永遠に」続く可能性のある繰り返し (進行中の) ドライブに割り当てることができるためです。ただし、進行中のドライブの各インスタンスは、個別にキャンセルまたは編集できるため、一意である必要があります

私が 3 層に挑戦している主な理由は、慈善団体であるためです (多くの年配のボランティア コンピューター ユーザーはそれほど「精通していない」) ので、UI をかなり頻繁に更新して、バグや問題を解決している可能性があります。初心者ユーザーには非常に明確です。したがって、私の計画は、まずサーバーと DB の間のバックエンドを完全に「防弾」にすることです。次に、UI にすべての焦点を当てて、バックエンドを気にせずに開発と反復を続けることができるようにします。その一部をリモートで開発し、更新をクライアント側に集中させる方が少し簡単です)

これらすべての属性は、おそらく「Web ベースのシステムを実行してください」と叫んでいます。ここでの問題は、既に実行されているいくつかのアプリケーションとのあらゆる種類のトリッキーな統合の後であるということです。ウェブアプリ。

4

2 に答える 2

2

サーバー自体には、ある種の JavaEE サーバーが必要です。

ここでの一般的な実装は、GlassFish (参照実装) とApache Tomcatです。ただし、サーブレット コンテナーよりも高度なものは必要ないとします。Web サービスだけを使用している場合は、そうではない可能性があります。

クライアントについては、おそらく Swing または SWF を使用する GUI アプリケーションを使用することになると思います。すでに Web サーバーが含まれているため、Web アプリケーションを作成することもできます。

クライアントからサーバーへの通信には、JAX-WS(SOAP Web サービス) またはJAX-RS(RESTful サービス) の実装を使用できます。

JAX-WS 実装には、Sun のMetro ( Java 6 SE の一部として出荷される) またはApache CXFが含まれます。

JAX-RS 実装には、JerseyApache CXFが含まれます。

データベース層に関しては、JDBC が唯一の選択肢ではありません。Java にはJava Persistence API (JPA、現在はバージョン 2.0) もあります。

JPA は通常、データベース層を簡素化するために J2EE アプリ (特に Web アプリ) で使用されます。一般的な実装は、EclipseLink JPA (廃止された Oracle TopLink) とHibernateAnnotationsです。

これらはすべて、JavaEE を構成するさまざまな標準 (Servlet 2.5、JAX-WS 2.0、JAX-RS 1.1、および JPA 2.0) に基づいています。

于 2010-06-29T19:56:52.350 に答える
1

EJBもポップアップしましたが、それに向けられた多くの憎しみを聞きました-これは当然のことですか?

これは、EJB仕様のバージョン1および2に完全に値するものでした。しかし、EJB v3は非常に単純化されており、非常に使いやすくなっています。実際、手動のJDBCの代わりにエンティティBeanを使用することを良心的に推奨できます。

通信プロトコルに関しては、EJBをRESTまたはSOAPサービスとして公開することは、最新のEJB 3.1仕様ではとてつもなく単純です。必要なのは、いくつかのアノテーションを追加することだけです。

于 2010-06-29T19:32:25.180 に答える