問題タブ [application-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - データ レイヤーとビジネス オブジェクト レイヤーを分割する方法、それぞれの適切な役割は何ですか?
このように階層化された基幹業務アプリケーションがあった場合、これは適切な分業でしょうか。
データアクセス
ストアド プロシージャのみを呼び出し、 DTOのプロパティをハッシュ テーブルにマップします。ハッシュ テーブルは、ADO.NET コマンドのパラメーター コレクションを設定するために使用されます。
SqlDataClient を参照するアセンブリのみ。
- マッピングコードで空白、null、および空を意味するものを扱う重要なロジックですが、それ以外の場合は検証やその他のドメイン固有のロジックはありません。
いわゆるビジネスロジック
複数の結果セットを個々の DataTable に分割します。
public void ReturnNthRecordSetFromStoredProcFoo()
データセットのデータアクセスへのパススルー。
public void ReturnDataSet(string name){ return (new PersonController).GetAnotherDataSet(name);}
DataTable の 1 行を 1 つのDTOにマップします
- マッピング コードで空白、null、および空を意味するものを扱う重要なロジック。
- 単一のストアド プロシージャ呼び出しをラップするためにのみ使用されますが、トランザクション オブジェクトを保持します。
- SqlDataClient への参照がないため、SqlDataReaders を使用して DTO を埋めることはできません
- System.Web.UI への参照なし
- 承認規則、それ以外のドメイン固有のロジックはありません。
UI
- ASP.NET フォームへの DTO の双方向データ バインディング。
- コントロールのプロパティの検証 - 通常、DTO に対して直接検証を行うことはありません
- 「コレクション」は、DataSet をグリッドにバインドすることによってナビゲートされます。実際、コレクションで何かをしようとすると、UI が DataTables の DataRows を反復処理し、適切な列名が何であるかを知る必要があります (通常、DTO に似ているだけです)。
最後に質問ですが、このアプリケーションでは、データ アクセス レイヤーは、いわゆるビジネス レイヤーの役割を引き受けるべきでしょうか? これは、余分なアセンブリの不都合を除けば、すでに 2 層 (ほぼ 1 層!) のアプリケーションではありませんか?
追加情報: わかりました。アプリケーション サーバーは、ユーザー数の少ないイントラネット アプリであるため、おそらく永遠に 1 台のマシンであることがわかっています。したがって、物理的に分離されたアプリケーション層を設計するべきではないことを私は知っています。また、おそらく 1 つの UI のみをサポートし、ASP.NET 以外のものをサポートする必要がある場合は完全に破棄されます。これは、層/レイヤーのもう 1 つの理由としてよく引用されます。
java - Java アプリケーションの Web ユーザー インターフェイス
Java アプリケーション用の Web ユーザー インターフェイスを作成しようとしています。ユーザー インターフェイスは非常にシンプルで、ユーザーがクエリを入力するためのフォームを含む 1 つのページと、Google の検索エンジンや Ask.com のような結果ページで構成されます。
私は Java の基本 API についてはよく知っていますが、Web 環境で Java を使用した経験はあまりないので (ASP.NET は使用したことがあります)、アドバイスを求めています。
どのWeb アプリケーション サーバーを使用すればよいですか? 私のインターフェイスは非常に軽いことに注意してください。高速で、アプリケーションの開始/リセット/停止と (再) 展開が簡単なものが必要です。また、 GNU/Linux、Mac OS X、Windows XP/Vista などの複数の環境で動作する必要があります。さらに、私は と を使用
ant
しているので、サーバー管理用のターゲットを簡単に追加したり、IDE を使用してサーバーを管理したりEclipse
できれば素晴らしいと思います。ant
私はTomcatとJettyを調べました、後者は非常に軽量で、インストールと展開が簡単なようです。GUI はデモンストレーションのみを目的としており、おそらく別のコンピューターに展開する必要があるため、これは理想的です。ただし、Tomcat は非常に長い間存在しており、より成熟しているように見えます。Web ページに関しては、Java Server Pages は、私が達成しようとしていること (フォームを処理して結果を出力する) には十分に単純であるように見えるので、ぴったりのように見えますが、私はすべて提案に耳を傾けています。
- また、アプリケーションの「基本的な」ワークフローを説明する必要がある別の要件もあります。基本的に、ユーザーの入力を処理し、表示する結果を返す
Engine
メソッドを持つクラスがあります。run(String)
このクラスは、アプリケーションのコアです。ここで、このクラスを1 回だけインスタンス化したいと思います。大量のメモリが必要で、起動に非常に時間がかかるため、アプリケーション/サーバーの起動時に作成し、その参照を保存したいと考えています。アプリケーションの全スパン (つまり、サーバーを停止するまで)。次に、ユーザーの要求ごとに、インスタンスのメソッドを呼び出して、その結果を表示するだけです。run
Engine
Javaでこれをどのように達成できますか?
java - Weblogic 10.3内でOSGiコンポーネントを実行することは可能ですか?
Weblogic 10.3内でOSGiコンポーネントを実行することは可能ですか?私が読んだことからそれは不可能ですが、100%確実であることを求めています。WL 10.3を交換するオプションはないため、他のアプリケーションサーバーやOSGiコンテナを一覧表示する必要はありません。
ありがとう
java - キューに入れられたジョブを処理するために、Spring Batchに代わるものは何ですか?
私はSpringBatchを調べて、各ジョブに大量のデータが含まれるバッチ処理シナリオを解決しています。SpringBatchと競合する他のソリューションはありますか?JavaEE環境で使用されます。
deployment - Warファイルに依存関係を含めるのではなく、Webサーバーのlibディレクトリに依存関係を配置する理由はありますか?
アプリケーションの依存関係Jarがある場合は、warファイルのlibディレクトリに配置するか、グローバルアプリケーションサーバー(Tomcatなど)のlibディレクトリに配置する方がよいでしょうか。あるアプローチを別のアプローチよりも使用することで何が得られますか?
ディスクスペースが頭に浮かびますが、私たちはディスクスペースが安い時代に生きています。メモリ使用量に違いはありますか?私よりも経験豊富な人が両方のオプションの長所と短所をリストできますか?
java - アプリケーションサーバーの起動時間の比較?
数か月前、さまざまな(Java)アプリケーションサーバーを比較したブログ投稿を読みました。新しい/変更されたコードをデプロイしてからサーバーを起動/再起動するのにかかった時間と、失われた開発者についての議論に焦点を当てています。このすべての再起動が引き起こした生産性。
ブログ投稿をブックマークするのを忘れました。Googleを試しましたが、元の記事が見つかりません。
他の誰かがこの記事を見たり読んだりしたことがありますか、または同様の記事/統計へのリンクがありますか?
json - JSON 非同期アプリケーション サーバー?
まず、必要なデータ フローについて説明します。
これはすべて手動で簡単かつ簡単に行うことができますが、何らかのサーバーを利用して、すべての接続、キープアライブ、デッドクライアントなどを処理したいと考えています.
この種のことを行う前例はありますか?クライアントが接続し、サーバーから JSON メッセージを非同期的に受信する場所は? 手動ソケットプログラミングを使用せずに?
java - 夏時間を有効にしてサーバー側アプリを実行してみませんか?
レコードが作成および更新されたときにタイムスタンプを記録するサーバー側アプリケーションを実装しました。アプリは、サーバー クロックで夏時間が有効になっていないことを前提としています。(a) これがベスト プラクティスであると読んだため、(b) 発生するあいまいさを処理するのは (不可能ではないにしても) 難しいと思うためです。たとえば、10 月に時計が 1 時間戻る場合などです。
安全のため、起動時に DST が有効になっていることをアプリが検出すると、エラーがログに記録され、アプリが終了します。アプリ サーバーのクロックで DST が有効になっている場合でも、アプリケーションを動作させるように内部関係者から請願を受けています。
これは無謀なことだと思いますが、経営陣を説得する必要があります。実装がよりトリッキーになるだけなのか、それとも根本的な欠陥により、そのようなアプリ (タイムスタンプを記録する) が 1 年中いつでも 100% 正しく機能することは不可能なのでしょうか? DST を有効にしてそのようなアプリを実行しないための最良の議論は何ですか?
私が思いついた最高のものは次のとおりです。
夏時間が有効になっている場合、年に 2 回の時間の不連続があります。サーバーが英国で実行されており、時計が現地時間に設定され、夏時間が有効になっている場合を考えてみましょう。2009 年 10 月 25 日の午前 2 時に、時計は 1 時間戻り午前 1 時になります。 レコードは午前 1 時 30 分に作成されます アプリ (タイムスタンプを UTC で保存する必要があります) は、これが午前 1 時 30 分で、時計が戻る前か後かを判断できないため、UTC への調整に余分な時間を含めるかどうかを判断できません。
これは本当ですか?10 月 25 日の午前 1 時 30 分に発生するイベントが時計調整の前か後かを (Java Web アプリで) 実際に判断することは可能ですか?
DST を回避するより良い理由はありますか?
アップデート
明確にするために、アプリが時刻を UTC として保存する必要があるのは当然のことです。問題は、これを実行しようとするときに、サーバー マシンで DST を有効にするのがなぜ悪い考えなのかということです。
asp.net - 負荷分散によって生じる問題
1 つのサーバーで正常に動作する ASP.NET 3.0 アプリケーションがあります。アプリケーション変数を使用して、ユーザーがファイルをチェックアウトしたかどうかを確認し、他のすべてのユーザーに対してファイルをロックします。アプリケーションを負荷分散サーバーに配置すると、複数のユーザーが複数のサーバーに送信され、各ユーザーが必要なファイルをチェックアウトできるため、アプリケーションは期待どおりに動作しませんでした。
重要な点は、アプリケーションが複数のサーバーに分散されている場合でも、アプリケーションでアプリケーション変数を共有できる方法があるということです。グローバル変数を取得するより良い方法はありますか?
webserver - アプリケーションサーバーとウェブサーバーの違いは何ですか?
重複の可能性:
アプリケーション サーバーと Web サーバーの違いは何ですか?
アプリケーションサーバーとウェブサーバーの違いは何ですか?