問題タブ [application-layer]
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.
java - ビジネス ロジック、AppLayer または DataLayer をどこに置くか?
この投稿(ビジネス ロジック データベースまたはアプリケーション レイヤー) を読んだ後でも、「データベース内のビジネス ロジック」のトピックと戦う十分な理由がありません。
私の現在の仕事では、多くのデータベース トランザクションが (実際には) あり、すべてのくだらないコードは維持するのが難しく、ストアド プロシージャに多くの重複があるため、テーブルの値を少し変更したい場合は、これらの手順をすべて見つけて、必要なものに変更する必要があります。テーブルのデザインを少し変更する必要がある場合も同様です。
現在のすべての開発者は SQL をよく知っていますが、エンジンとしてのデータベースの専門家ではありません (8 人の開発者)。
現在、コア全体を新しいバージョンに移行する予定です (データベース設計を含む)。そして、次の例が必要です。
- データベースのビジネス ロジックが時々 EVIL になるのはなぜですか?
- データベースでのビジネス ロジックは、いつ、どのくらいの頻度で使用するのが適切ですか?
- アプリケーション層のビジネス ロジックがエンタープライズ アプリケーションに適している理由。?
アプリケーション言語: Java
データベース: Oracle11g
アプリケーションにはサービスがあり、HTTP ページおよび Web サービスとして提供されます。
network-protocols - TCPでアプリケーション層プロトコルを知る方法は?
私はwiresharkで、アプリケーション層プロトコルを識別するための専用フィールドがないことを確認しましたが、wiresharkはどのようにそれを行いますか?
codeigniter - CodeIgniter のアプリケーション レベルのキャッシュ
codeIgniter でアプリケーション レベルのキャッシュ オブジェクトを呼び出すものはありますか? Spring (Java EE) Web アプリケーションと同じように? さらにSpringでehcacheを使用すると、FIFO、LIFOなどのオプションがさらに増えます。
domain-driven-design - どのレイヤーで仕様パターンオブジェクトを「新しく」する必要がありますか?
それで、私はここで仕様パターンに関するいくつかの投稿を見ましたが、これに対する答えはまだ見つかりませんでした。
私の質問は、n層アーキテクチャでは、仕様を正確にどこで「更新」する必要があるのかということです。
それらをサービス層(別名、アプリケーション層と呼ばれることもあります...基本的には.aspxコードビハインドが通信するもの)に配置することはできますが、そうすることで、ビジネスルールを漏らしてしまうような気がします。ドメイン。ドメインオブジェクトが(サービスレイヤー以外の)他の方法でアクセスされる場合、ドメインオブジェクトは独自のビジネスルールを適用できません。
コンストラクターインジェクションを介して、仕様をModelクラスにインジェクトできます。しかし、繰り返しますが、これは「間違っている」と感じます。モデルクラスに注入する必要があるのは、キャッシング、ロギング、ダーティフラグトラッキングなどの「サービス」だけだと思います。それを回避できる場合は、モデルのコンストラクターを散らかす代わりにアスペクトを使用します。大量のサービスインターフェイスを備えたクラス。
メソッドインジェクション(「ダブルディスパッチ」と呼ばれることもあります???)を介して仕様を注入し、そのメソッドに注入された仕様を明示的にカプセル化して、ビジネスルールを適用することができます。
「ドメインサービス」クラスを作成します。このクラスは、コンストラクターインジェクションを介して仕様を取得し、サービスレイヤーがドメインサービスを使用してドメインオブジェクトを調整できるようにします。仕様によって適用されるルールはまだ「ドメイン」にあり、ドメインサービスクラスは、調整しているドメインオブジェクトと非常によく似た名前を付けることができるため、これは私には問題ないようです。ここで重要なのは、仕様パターンを「適切に」実装するためだけに、たくさんのクラスとコードを書いているような気がすることです。
これに加えて、問題の仕様は、それが「満たされている」かどうかを判断するためにリポジトリを必要とします。
これにより、特にパフォーマンスの問題が発生する可能性があります。コンストラクタインジェクションを使用する場合、b / cを消費するコードは、おそらく仕様をラップするプロパティを呼び出す可能性があり、それがデータベースを呼び出します。
それで、何かアイデア/考え/記事へのリンクはありますか?
仕様を更新して使用するのに最適な場所はどこですか?
java - Terracotta と Quartz スケジューラ ノードはどのプロトコルを使用しますか?
私は TerracottaJobStore で Quartz Scheduler を使用しており、Scheduler ノードとサーバーが通信に使用するプロトコルを把握しようとしています。
別の言い方をすれば、Web アプリケーションのセットアップでは、ブラウザ (クライアント) は HTTP または HTTPS over TCP/IP を使用して Apache (サーバー) と通信します。クォーツとテラコッタに相当するものは何ですか?
Quartz Scheduler と Terracotta Server が TCP/IP を使用していることは知っていますが、HTTP などのアプリケーション層プロトコルも使用されていますか?
recording - スニッフィング/録音アプリケーション層のみ
UDP トラフィックを傍受し、アプリケーション層のみをファイルに記録できるツール (できれば Linux) を探しています。
tcpdump/wiresharkは常に下層のヘッダーも書き込むため、そうすることができませんでした。Snort (./snort -qd -l ./logs ) を使用してみましたが、パケットにアプリケーション層のデータがなくても、データをファイルに保存し続けました。
おそらく誰かがそのようなツールを知っている...
ああ、UDP トラフィックもマルチキャストです...
multicat (VideoLAN's)も試してみました。彼らは、それがマルチキャストのネットキャットだと主張しています。しかし、netcatを使用して手動で送信するペイロードに加えて、他のバイナリガベージも保存します(私にとって)... multicatに精通している人はいますか?
c - 機能の動作を選択 - マルチ クライアント クイズ
クイズ アプリケーションを作成する必要があります。
アプリケーションに関する詳細:
1. 各クライアントは、クイズに参加する前にサーバーに登録する必要があります。サーバーは各ユーザーにユーザー名を尋ね、各ユーザーの一時 ID を生成します。
2. 登録プロセスの後、サーバーに正常に接続されたクライアントは、サーバーから質問を受け取ります。
3. クライアントは回答を返します。
4. サーバーはタイムスタンプ付きの異なるクライアントから応答を受信し、Δt と呼ばれる各クライアントの時間差を計算します。
- サーバーは、Δt が最小のクライアントを選択し、クライアントが獲得したスコアで応答し、スコアを獲得しません。
- 質問を送信した後、サーバーは (T) と呼ばれる特定の期間、回答を待ちます。クライアントが「T」期間内に応答しなかった場合、サーバーはその質問をスキップして次の質問に進みます。
サーバーコードのメインループの疑似コード
問題:
単一のクライアントにのみ接続すると、コードはいくつの質問に対しても正常に機能します。
しかし、同じクライアント コードを使用して複数のクライアントでこのコードをテストすると、次のようになります。
- どなたでもログインOKです。
- 最初の質問を全員に送信しても問題ありません。
- その後、回答を待っている間に、1 人のクライアントからのみ回答を受け取りました。各クライアントは、回答が送信されたことを示しています。2 番目のクライアントの場合、2 番目の
select
関数は読み取り可能なデータの可用性を返しません。
マルチクライアントでコードが機能しないのはなぜですか。(私によると、エラーは答えを得るためのどこかにあります)。
My Code :
送信されるパケットの構造は、変数名から簡単に理解できます。
Server.c :
Client.c :
python - パケット ISO/OSI レイヤーから PCAP ファイルをフィルタリングする
PCAP ファイルを 2 つの異なるファイルに分割する必要があります。最初のファイルには ISO/OSI モデルのアプリケーション層に向けられたすべての (そして唯一の) パケットを含め、2 番目のファイルには他のすべてのパケットを含めます。
Scapy を使用してフィルターを適用しています。
その層は、pkt.haslayer(Raw)
アプリケーション層に向けられたパケットにのみ含める必要があるためです。
どうしたの?applayerfilename
+の合計lowlayersfilename
(ファイル サイズ) が のファイル サイズとは異なる (小さい)ことに気付きましたinfile
。
infile
報告された方法は、 2 回解析されるため、計算コストも高くなります (それぞれ 1.5 GB までの PCAP のリストを取得しています) 。
入力 PCAP を 1 回解析して、別のフィルターを適用したいと思います。クラスを使用しPcapReader
て PCAP を手動で解析できましたが、PCAP を生成してメソッドに渡す方法がわかりませんwrpcap(...)
。
編集:私もこの解決策を試しました:
しかし、入力 PCAP のサイズが原因でメモリを消費しすぎるため、機能しません...
append_to_pcap(filename, packet)
like 関数は存在しますか(wrpcap(...)
関数は追加として機能しません)?
dns - DNS プロトコル、メッセージ
DNS メッセージ形式には、ヘッダー フィールドに加えて、次の 4 つのセクションがあります。
-質問 -回答 -権限 -追加情報。
DNS サーバー、誰または何がセクションに入力するか: 権限と追加情報?
routing - インターネット経由で 2 台の PC 間の直接ネットワーク接続をシミュレートする方法は?
イーサネット、OSI モデル、TCP、UDP、ルーティング (新しいユーザー制限のためリンクなし)などの wiki 記事のトピックについて読みましたが、特定の問題に答えてもらうことができませんでした。
状況: 4 台のコンピューター (AD)
これらは、イーサネットを使用して次のように相互に接続されています: A <-LAN-> B <-Internet-> C <-LAN-> D (新しいユーザー制限のため、画像ではなくリンクのみです。申し訳ありません)
私が達成しようとしていること:コンピューターAは、コンピューターDに直接接続されていると思うようにだまされる必要があります(逆も同様です)。それを達成するためのソフトウェアは、コンピューター B と C でのみ実行する必要があります。
私の問題は何ですか:目標を達成するために何をしなければならないかを詳しく言えません。コンピューター B と C の最新のオペレーティング システムで実行されるソフトウェアを使用して、A と D が互いに接続されていると思わせることはまったく可能ですか?
私が理解しているのは、その接続を実際にシミュレートする場合、物理層で情報を転送する必要があるということです。同じことを達成するために、B/C のオペレーティング システムのアプリケーション層からどの程度のことができるでしょうか? それはまったく可能ですか?
私の知識の点から私がすでにできること: データグラムまたはバイトストリームをBに送信するクライアントソフトウェアをAに持つこと(Bがインターネット経由でCに送信し、次にデータを送信することを知っている) Dに)。DからAへの方向も同様です。
そのソリューションに関する私の問題: そのソリューションには、2つのソフトウェアソリューション(A / D用、B / C用)が必要であるという意味で欠陥があり、さらに、TCPおよびUDPプロトコルへの接続を制限します。接続を実際にシミュレートするわけではありません。これは、A から D に情報をルーティングするための回避策であり、ピアツーピア接続のシミュレーションではありません。
これは、タイトルからの質問に私を導きます:
インターネット経由で 2 台の PC 間の直接ネットワーク接続をシミュレートするにはどうすればよいですか?
また、私が完全に見落とした可能性のある提案、または部分的な解決策や提案も受け入れます。