web-dev-qa-db-ja.com

Javaベースのクライアント/サーバーアプリケーションの開発にどのように取り組みますか?

企業のクライアントサーバーアプリケーション(データベースが必要)の開発を依頼されました。

私は、Javaで非常に便利です。それを使いたいと思います。アプリケーションの開発方法は私次第です。JSPWebアプリケーションまたはJava = Swing GUIベースのアプリケーション。

次のクエリ/疑問があります。

したがって、Webアプリケーションを開発する場合、会社の担当者に教える必要があります。

  1. Tomcatのインストール方法
  2. WebアプリケーションTomcatをロードする方法
  3. サーバーを起動してアプリケーションを起動する方法。

Java Swing GUIベースのアプリケーションを開発し続けると、

  1. コンピュータの起動時に開始する必要があります。つまり、インストール時にOSのサービス起動に自動的に追加されます。
  2. クイック起動でのアプリケーションショートカット、インストール時のトレイバー。

データベース部分:

DBのようなMSアクセスが欲しいのですが、無料です。それの訳は、

  1. DBエンジンのインストールについて心配する必要はありません(MySQLの場合は注意が必要です)。
  2. OSがクラッシュしても、DBは一部のドライブ(MS-Acessの場合は.mdbファイルなど)で無害に維持されます。

ソフトウェアの開発で私がどのように取り組むべきかを教えてください。

2
Venkattesh B

この質問に適切に回答するには、提供するよりもはるかに詳細な情報が必要です。

使用するテクノロジーは、機能的および非機能的の両方の特定の要件によって推進されます。したがって、ニーズに最適なものを知るには、要件エンジニアリングを実行する必要があります。エンドユーザーが何を望んでいるかを正確に把握すると、現在の場所から必要な場所に到達するために使用できるツールについて、より適切に把握できます。ただし、機能要件であるため、品質属性と非機能要件の両方に焦点を当てることが重要です。

これまで要件エンジニアリングを行ったことがない場合は、カールウィーガースの作品を読むことを強くお勧めします。彼は2冊の重要な本 ソフトウェア要件 および ソフトウェア要件の詳細 を発行しています。最初の本は、ソフトウェア要件エンジニアリングを受講したコースで読む必要がありました。 Wiegersには Process Impact というWebサイトもあり、役立つリソースや情報が含まれている場合があります。

要件が揃ったら、問題を解決するのに最適なテクノロジースタックを簡単に判断できます。

ただし、暫定的にいくつかの提案があります。

Javaの経験があるので、Java環境に固執することはおそらく安全な賭けです。慣れ親しんでいて安全だと思っているからといって、遭遇するすべての問題を解決するためにテクノロジーを使用しないでください。しかし、それが実際に解決しようとしている問題を解決できることを確認してください。

どちらのソリューションを選択しても、会社はドキュメントを期待しています。作業条件にもよりますが、少なくともソフトウェアの展開方法についての説明と、エンドユーザーが構築したシステムを実際に使用する方法についての説明を提供することが求められます。ただし、合意された要件、設計または実装時の最終的な実装状態、不具合レポート、時間レポートなど、文書化する必要のある他の多くの事項があります。動作するソフトウェア以外に、何を提供する必要があるかを確認してください。

データベースに関しては、データベースサーバー(MySQLやPostgresSQLなど)と埋め込みデータベース(SQLiteやHSQLDBなど)から選択できます。データストア用のNoSQL(Hadoopなど)ソリューションもあります。それぞれの機能を調べて、要件をどのように満たすことができるかを確認することをお勧めします。特定の要件によっては、両方を展開する必要がある場合もあります。ただし、要件があるまで選択することはできません。

使用するデータベースに関係なく、JDBCやさまざまなORMレイヤーなどに慣れる必要があります。 Webアプリのルートを選択する場合は、慣れ親しんで、Struts、Spring、およびその他の多数のWebアプリケーションフレームワークから選択する必要があります。競合する多数のツール、ライブラリ、フレームワークを要件に照らして評価する準備をします。そして、物を捨てることを恐れないでください。 The Pragmatic Programmerのヒントだったと思います-捨てる計画です。あなたは間違いを犯すつもりであり、あなたはこのプロジェクトを通してそれらの間違いから学ぶ必要があります。それは長期的にあなたを助けるでしょう。

要するに、テクノロジーについて考え始める前に、何を構築する必要があるかを正確に把握してください。あなたの投稿を考えると、合理的なエンジニアが提案をするのに十分な情報を提供していません。また、他のエンジニアに何を構築するのかわからない、または指定できない場合、それを構築する方法はありません。

4
Thomas Owens

JavaでWeb開発を行う場合、人気のあるMVCフレームワークのいずれかを使用することをお勧めします。私のお気に入りはSTRUTS2です。

Struts Apache

Javaサーブレットを使用した開発は時間がかかり効率が悪いため、フレームワークを使用する理由。

ここで、データベースが必要です。モデル指向の設計に基づいてコードを整理することをお勧めします。モデルをWebアプリケーションから分離し、オブジェクト-リレーションマッパーを使用して、そのモデルをリレーションデータベースにマップする場所。私のお気に入りORマッパーはHibernateです。

冬眠ツロリアル

基本的に、XMLマッピング、またはJavaアノテーションを使用できますが、私は通常、Javaアノテーションを使用します。

モデルをマップしたら、antファイル(Webにチュートリアルがあります)を作成して、選択したデータベースにスキーマをエクスポートします。 mysqlをお勧めします。使いやすく、機能も充実しています。

クライアント側には、JSP、AJAX、JavaScript、jQueryがあり、必要に応じてこれらすべてを使用できます。

サーバーには、Tomcat、jbossなどを使用できます。Eclipsejeeをダウンロードしてサーバーをインポートし(Eclipseにはウィザード用のウィザードがあります)、作成したWebアプリをTomcatにインポートします。 Tomcatを起動し、Webアプリケーションにアクセスします。

これは、JavaベースのWebアプリケーションの短いクックブックです。ほとんどのことをカバーしたいと思います。

1
shake

基本的に、経験豊富な開発者が指導することなく、ゼロから始めているようです。これは時間とお金の点で最適なソリューションではない可能性があります。

JDBCを使用してJavaからデータベースと通信する方法を学習する必要があり、Accessをデータベースとして使用するには、AccessのJDBCドライバーが必要です。

0
user1249

J2EE技術スタックの使用は非常に優れたソリューションです。ただし、他のテクノロジーも使用する必要があります。

私は次のことをアドバイスします...

  1. Linux上のApache-Tomcat
  2. Maven-アプリケーションの構築とライブラリの依存関係の管理用
  3. Spring 3-すべてのアプリケーションのフレームワーク
  4. Wicket 1.4-高速でシンプルなWebフレームワーク
  5. Hibernate-データベースアクセス用のORM
  6. Postgres 9.0

適切な技術スタックを選択したら、モジュールの設計とアプリケーションのレイヤー化を開始します。

0
initmax

Java Web開発への最新のアプローチを選択することもできます。
たとえば Play framework を選択した場合、Tomcatは必要ありません。通常のアプリとして起動します(コース:A pythonランチャー)。

データベースに接続するために簡単に変更できる構成ファイルが付属しています。単純なclient-server-dbアプリの場合、すべての依存関係はすでに対処されています。

私は2012年を開始しません、編集はこれが古い質問だったのを見ましたが、あなたが推奨されているので、2011年のプロジェクトをSTRUTS2で開始しません:変化を恐れています。しかし、あなたはこのバックパックから解放されます。

0
Farmor

JVMでホストされるWebアプリを作成する場合は、GroovyとGrailsを使用することをお勧めします。 GSPの記述は、JSPの記述よりもはるかに簡単です。 [〜#〜] haml [〜#〜] を使用することもできます。約20%のコード行でアプリケーションが完成します。

0
kevin cline