問題タブ [web-architecture]
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.
asp.net - マスター ページを削除して Web サイトのパフォーマンスを向上させる
Asp.net Web フォーム駆動型アプリケーションのパフォーマンスとユーザー エクスペリエンスを改善することを考えています。単一のマスター ページを実装する aspx ページがあります。マスターページのレイアウトは次のとおりです。
現在、エリア 1 のツリー コントロールは、エリア 2 とエリア 3 の更新を駆動しています。ツリーのノードに基づいて、さまざまな aspx ページが読み込まれます。しかし、それではページ全体がリロードされ、ユーザー エクスペリエンスが向上しません。
マスター ページを削除し、ツリー ノードの選択に基づいて更新パネルを使用して、Area2 と Area3 にユーザー コントロールを動的にロードすることを考えています。
おすすめはありますか?
c++ - Web サーバーでの画像処理
Web アプリと簡単にやり取りできるサーバー上で画像処理アルゴリズムを実行したいと考えています。画像処理アルゴリズムは計算負荷が高く、カスタム ビルド ライブラリでは使用できません。現在、私は自分のウェブサイトに Heroku で Ruby on Rails を使用しています。
これを達成するための最良のアーキテクチャは何でしょうか? ウェブサイトから画像を取得 - 画像処理アルゴリズムを実行 - ウェブサイトに表示
私の画像処理コードのほとんどは C/C++ です。
Ruby on Rails から C/C++ コードを直接呼び出すことはできますか? これは Heroku で可能ですか?
または、Ruby on Rails サーバーから呼び出せる API を C/C++ コードで公開するシステムを設計する必要がありますか?
spring-mvc - REST API を使用した Web サーバー - Spring Boot - 複数のサーブレット コンテナー
私のアーキテクチャでは、Spring を Web サーバーとして使用し、静的な html および javascript ページを提供し、残りの API として使用しています。現在、Spring アプリはポート 8080 でリッスンしています。ポート 80 に簡単に変更できますが、API と Web サーバーは別のポートに配置する必要があり、静的コンテンツを提供するためだけに別のアプリを作成する理由はないと思います。どの春が簡単にできるか。
私はオンラインでいくつかの他の質問を調べましたが、Spring は複数のサーブレット コンテナーを使用して 2 つの異なるポートでリッスンできることがわかりました。複数のアプリケーション コンテキストを作成するだけでよいという質問さえありました。
ただし、特にSpring Bootを使用する場合、少なくとも私にとっては簡単ではありません。
- 複数のポート (80 および 8080) でリッスンするために、複数のサーブレット コンテナーまたは複数のアプリケーション コンテキストを作成するにはどうすればよいですか?
- それらを設定した後、どのサーブレットが何をするかを制御するにはどうすればよいですか? つまり、どちらが静的ページを提供し、どれが残りの API を提供するのでしょうか?
-
編集
次の質問は私自身のものと一致しているようですが、前述のように、特に xml 構成ではなく Spring Boot/Annotations を使用する場合、これを実装する方法がわかりません。
スプリング ブートで複数のサーブレット コンテナ/サーブレットを構成する
編集 (2)
そのようなことの良い使用例は、サイトを SSL 対応にすることですが、必須ではありません。つまり、potr 443 経由で ssl を有効にしながら、ユーザーがポート 80 経由で安全でないアクセスを使用できるようにする必要があります。
編集 (3)
Dave Syer の回答が最適かどうかはわかりませんが、うまくいくようです。彼の方法とは異なり、私はサーブレット コンテナー カスタマイザーを使用してポートを変更していますが、それでも 2 番目のスレッドを使用して 2 番目のスプリング アプリケーションを作成していることに注意してください。
編集(回答)
Dave Syer の元の回答は機能していますが、私が探していたものではありませんでした。彼のコメントの 1 つに記載されているように、Tomcat サーブレット コンテナー (Spring のデフォルト)、または jetty の Handler を使用している場合、答えは 2 番目の Connector オブジェクトを作成することです。
私は次のようなものを使用しました:
amazon-web-services - REST API サーバーを実行していますが、インフラストラクチャについてよくわかりません。また、速度をベンチマークして改善するにはどうすればよいですか?
私のインフラストラクチャは次のとおりです。gandi ドメイン、aws dns、route53 api.domain cname は、自己署名の ssl 対応 elb を指しています (elasticbeanstalk インスタンスが 1 つあります)。Elasticbeanstalk インスタンスは Docker ベースです。つまり、nginx は docker インスタンスに転送されます。Docker インスタンスには、静的ファイルを提供する nginx と、golang へのリバース プロキシ (ポート 3000 への fastcgi) があります。データは Amazon RDS に保存され、go-sql-driver を使用してアクセスされます。
複雑すぎるように見えますが、単純化するための最良の方法は何ですか?
django - セッション キーを介したリクエスト間の pandas データフレーム オブジェクトへのアクセス
django/DRF アプリケーションのメタデータを提供する緩いラッパー クラスを持つ pandas データフレームがあります。このアプリケーションは、基本的に、データ分析と検証を行うユーザーフレンドリーな (非プログラマー) 方法です。リクエスト間でデータフレームの状態を保存できるようにしたいので、データと一連のやり取りを行うことができますが、データベースに保存する必要はありません(ブラウザセッションの間だけ存続する必要があります)。このことから、django のセッション フレームワークをチェックアウトするのは論理的でしたが、私が聞いたことから、セッション データは軽量である必要があり、データフレーム オブジェクトは json シリアル化されません。
大量のユーザーがいないため、アプリをデスクトップ サイトのように感じさせたいので、データフレーム オブジェクトをメモリに保持する方法として django キャッシュを使用することを考えていました。したがって、データをキャッシュに入れると、次のようになります
そして、次のアクセス要求で get を使用する以外は同じです。これはこのワークフローを処理するための良い方法ですか、それともかなり大きなデータ (5mb から 100mb) をメモリに保持するために使用すべき別のシステムはありますか?
android - クライアントがアプリケーションからログアウトしたときに、クライアントへのプッシュ通知の送信を停止するタイミング
プライバシーに関心があるため、ユーザーがモバイル クライアントからログアウトした場合に、クライアントのプッシュ通知トークンをバックエンドに忘れさせたいと考えています。
最も単純な使用例は次のとおりです。
ジョージは自分の Facebook を見たいと思っていますが、電話を持っていません。George は Matt の電話で Facebook アプリにログインします。
終了後、ジョージは Facebook アプリからログアウトします。
ここでは、サーバーが「Mira があなたのフレンド リクエストを受け入れました」というメッセージを Matt の電話に送信しないことを期待しています。この通知は明らかに、Matt ではなく George に向けられたものです。
クライアントに「ログアウト」リクエストをサーバーに送信させることはできますが、ログアウト リクエストをヒットしたときにジョージがバンカーにいて、サーバーに到達しなかった場合はどうなりますか?
この問題に関するいくつかの追加の考え:
ユーザーがアクティブにログアウトしていない限り、通知をプッシュし続けたい (そのため、アイドル時間のシステム ログアウトは問題外です)。
たとえば、Facebook は、インターネットに接続されていない場合、アプリケーションからユーザーをログアウトしません。ジョージが注意しないと、ログアウトに失敗したことに気付かず、ログインしたままの状態で電話をマットに戻してしまう可能性があるため、この問題のある解決策はありません。