問題タブ [isolation]

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.

0 投票する
1 に答える
75 参照

windows - Windows の他のアプリケーションによる直接アクセスからデータを保護する

Windows で自分以外のアプリケーションから一部の暗号化データを保護する方法はありますか? ユーザーからの保護については心配していません-これは明らかに不可能です-むしろ、私自身以外の昇格されていないアプリケーションからです。

システム アカウントのみがアクセスできるデータを使用して、アプリケーションのコア コードをサービスとして単純に実行できることは承知していますが、ユーザーの通常のトークンよりもはるかに許容度の低いトークンでアプリケーションを実行し続けることができればよいと考えています。

さらに、可能であれば .NET に依存しないようにしたいと考えています。

0 投票する
1 に答える
65 参照

unit-testing - Windows サービスの API を使用するにはどうすればよいですか?

大きな Windows サービス アプリケーションがあります。時間制限ベースでアクションを実行します。場合によっては、その機能の一部をアプリケーションの残りの部分から分離して使用できるようにする必要があります。現在、さまざまなソースを呼び出して目的の機能を実行する一連の「単体テスト」があります。私の問題は、これらが単体テストではなく、API を公開する方法であることです。プロジェクトですべての単体テストを実行すると、本番データの一部が破損します。

私の質問は、単体テストなしでアプリケーションの機能の一部にアクセスするにはどうすればよいですか? おそらく、機能のさまざまな部分を呼び出すことができるインタープリターのようなものを考えていましたが、どこから始めればよいかわかりません。

コードの単体テストの例は次のとおりです。

これを単体テストから外して、このようなコードを実行できるようにするにはどうすればよいでしょうか?

0 投票する
3 に答える
1326 参照

java - Java EE でユーザー セッションを分離する方法は?

私たちは Java EE でのミッション クリティカルなアプリケーションの開発を検討しています。私が本当に感銘を受けたことの 1 つは、プラットフォームにセッション分離がないことです。シナリオを説明しましょう。

私たちはネイティブ Windows アプリケーション (完全な ERP ソリューション) を持っており、まばらな貢献者から毎月約 2,000 の LoC と 50 のバグ修正を受け取ります。スクリプトもサポートしているため、顧客は独自のロジックを追加できますが、そのようなロジックが何をするかについてはわかりません. スレッド プールを使用する代わりに、各サーバー ノードにはブローカーとプロセス プールがあります。ブローカはクライアントのリクエストを受信し、プールされたインスタンスが解放されるまでそれをキューに入れ、そのインスタンスにリクエストを送信し、クライアントにレスポンスを配信して、インスタンスをプロセス プールに解放します。

非常に多くのまばらなコントリビューションとカスタム スクリプトにより、展開されたバージョンに無限ループ、長時間待機する悲観的ロック、メモリ破損、メモリ リークなどの深刻なバグが発生することは珍しくありません。メモリ制限、リクエストのタイムアウト、シンプルなウォッチドッグを実装しました。一部のプロセスが時間通りに正しく応答しない場合は常に、ブローカーは単純にそのプロセスを強制終了するため、ウォッチドッグは別のインスタンスを検出して開始します。プロセスがリクエストへの応答を開始する前にクラッシュした場合、ブローカーは同じリクエストを別のプールされたインスタンスに送信し、ユーザーはサーバー側での障害について知りません (管理者ログを除く)。一部のインスタンスは、リクエストを処理するときに偽のコードによってゆっくりと破棄されるため、これは便利です。

現在、Java EE への移行を検討していますが、Glassfish や JBoss などの仕様や一般的なアプリケーション サーバーで同様のものを見つけることができませんでした。はい、ほとんどのクラスター実装がセッション レプリケーションを使用して透過的なフェールオーバーを行うことは知っていますが、単純な 2 ノード クラスターでシステムを使用する小さな会社があります (また、1 ノード サーバーでシステムを使用する冒険家もいます)。 . スレッドプールを使用すると、バグのあるスレッドがノード全体をダウンさせる可能性があることを理解しています。これは、サーバーがスレッドを検出して安全に強制終了できないためです。ノード全体をダウンさせることは、単一のプロセスを強制終了することよりもはるかに最悪です。各ノードに約 100 のプールされたプロセス インスタンスがある展開があります。

私は、IBM と SAP がこの問題を認識していることを知っています。

、 それぞれ。しかし、最近の JSR、フォーラム、およびオープンソース ツールに基づくと、コミュニティでの活動はあまりありません。

それでは質問です!

  1. 同様のシナリオで Java EE を使用している場合、どのように解決しましたか?

  2. この問題に対処できる、今後のオープンソース製品または Java EE 仕様の変更について知っていますか?

  3. .NET にも同じ問題がありますか? 参考文献を説明または引用できますか?

  4. この問題に対処でき、ERP ビジネス ロジックを実行する価値のある最新のオープン プラットフォームについて知っていますか?

お願いしますが、これ以上のテストや QA への投資については言わないでください。なぜなら、私たちはお客様に独自のスクリプトでこれを行うように強制することはできないからです. また、緊急のバグ修正が QA をバイパスしなければならない場合もあり、顧客にこれを受け入れるように強制しますが、バグのあるソフトウェア部分がさまざまな無関係な機能に影響を与える可能性があることを顧客に受け入れさせることはできません. これは、開発プロセスではなく、堅牢なアーキテクチャに関する問題です。

ご清聴ありがとうございました!

0 投票する
1 に答える
279 参照

google-app-engine - Google App Engine での分離

Google App Engine でアプリケーションを実行すると、どのような分離が得られますか? かなり高密度な環境であることは明らかです。自分のスレッドを取得できますか? それとも、リクエストの処理に使用しているスレッドが別の会社によって使用された可能性がありますか?

彼らがセキュリティを正しく持っているのであれば、これは私の心配ではないことを私は理解しています. 私は主にそれがどのように機能するかを知りたいと思っています。

0 投票する
1 に答える
297 参照

erlang - Erlang digraph の原子性と分離の保証

有向グラフの原子性と分離の保証はどこにでも記載されていますか?

特に:

  1. del_vertex の途中で別のプロセス (vertices()、out_neighbours() など) にアクセスしようとした場合、別のプロセスは digraph をどのような状態で参照しますか?エッジは削除され、頂点は削除されない) または del_vertex の後 (つまり、操作が終了するまで別のプロセスがブロックされる)?
  2. del_vertices に関する同じ質問。

私の理解が正しければ、ダイグラフは3つのetsテーブルを使用して実装されています。結果を一貫させるために、それらの間に追加のロックメカニズムはありますか?

0 投票する
4 に答える
2557 参照

php - PHPで分離?

ここで、しばらく考えたことがあります。
ユーザーが独自のカスタム テーマをアップロードするアプリケーションを作成しています。つまり、基本的な PHP/XSS/その他のスキルを持っている人にとっては、多くの頭痛の種になる可能性があります。

アップロードされたファイルは、必要なもの (変数) のみにアクセスでき、他には何もアクセスできない、一種のサンドボックス化された閉じた環境で実行したいと考えています。

これは良い習慣であり、どのように行われますか?

0 投票する
2 に答える
1046 参照

haskell - 信頼できない Haskell コードの安全な実行

任意の Haskell コードを安全に実行する (または安全でないコードの実行を拒否する) 方法を探しています。

持つ必要があります:

  • モジュール/関数のホワイトリスト
  • 実行時のタイムアウト
  • メモリ使用制限

私が見たい機能:

  • スレッドを殺す能力
  • モジュールをネイティブコードにコンパイルする
  • コンパイル済みコードのキャッシュ
  • 複数のインタープリターを同時に実行する
  • コンパイラ エラーの複雑なデータ型 (単純なメッセージを文字列に挿入)

この種の機能を使用すると、任意の Haskell コードを実行できるブラウザー プラグインを実装することが可能になります。これは、私が念頭に置いているアイデアです。

編集:私は2つの答えを持っています。どちらも素晴らしいです。ありがとう!悲しいことに、すぐに使えるライブラリはなく、似たようなプログラムしかないようです。しかし、それは有用なリソースです。とにかく、7.2.1 がリリースされるのを待って、自分のプログラムで SafeHaskell を使ってみようと思います。

0 投票する
4 に答える
2955 参照

java - APIと実装を完全に分離する必要がありますか?

大規模なソフトウェア実装では、API設計とその実装を分離することが推奨されることがよくあります。しかし、どこかで、それらを再接続する必要があります(つまり、実装をAPIに再接続する必要があります)。

次の例は、APIデザインと、INSTANCEオブジェクトを介したその実装の呼び出しを示しています。

APIは実装コードを参照すべきではないと主張する人もいます。APIコードを個別のファイルを介して実装から分離する場合でも、多くの場合、APIに実装コード(少なくともクラス名)をインポートする必要があります。

完全修飾名の文字列表現を使用して、このような参照を回避する手法があります。クラスにはその文字列がロードされてからインスタンス化されます。コードがより複雑になります。

私の質問:APIコードを実装コードから完全に分離または分離する利点はありますか?それとも、これは実用的なメリットがほとんどない完璧に到達するための純粋主義者の試みですか?

0 投票する
4 に答える
4549 参照

oracle - Oracle PL/SQL のテスト分離テストを実行するにはどうすればよいですか?

Java プロジェクトでは、JUnit テストがセットアップ、テスト、破棄を行います。インメモリ データベースを使用して実際のデータベースをモック アウトする場合でも、通常は、トランザクションをロールバックするか、データベースをメモリから削除して、各テストの間に再作成します。これにより、1 つのテストが次のテストに影響を与える可能性のある環境にアーティファクトを残さないため、テストを分離できます。各テストは既知の状態で開始され、別の状態に移行することはありません。

これで、1100 個のテーブルと 400K のコード (多数の pl/sql パッケージ) を作成する Oracle db ビルドができました。データベースのインストールをテストするだけでなく(完全 - スクラッチから作成、部分 - 以前のデータベースからのアップグレードなど)、すべてのテーブルと他のオブジェクトがインストール後に期待どおりの状態であることを確認したいのですが、 pl/sqlでテストを実行します(前者を正確に行う方法がわかりません-提案?)。

これをすべてJenkins for CIから実行して、回帰テストで開発エラーをキャッチできるようにしたいと考えています。

まず、XE は Java SP をサポートしておらず、Oracle Web Flow に依存しているため、XE の代わりにエンタープライズ バージョンを使用する必要があります。これらの依存関係を排除したとしても、通常、ビルドは読み込みだけで 1.5 時間かかります (フル ビルド)。

では、この環境でテストの分離を実現するにはどうすればよいでしょうか。テストごとにトランザクションを使用してロールバックしますか? OK、コミットを含む pl/sql プロシージャはどうですか?

各テストの後にデータベースをリセットするか、各テストの間にデータベース全体を再作成するためのバックアップとリカバリについて考えました(抜本的すぎます)。どちらもインストールに 1 時間以上かかるため、実用的ではありません。テストごとにこれを行うのは、やり過ぎで正気ではありません。

データベーススキーマの砂に線を引き、その時点にロールバックする方法はありますか? 大きな「元に戻す」機能のようなものです。expdp/impdp または rman 以外の何か。おそらく、アプローチ全体がオフになっています。提案?他の人はこれをどのように行っていますか?

CI または小規模な本番アップグレード ウィンドウの場合、テスト スイート全体を妥当な時間 (30 分が理想的) で実行する必要があります。

この「元に戻す」機能を実現するのに役立つ製品はありますか?

0 投票する
3 に答える
1068 参照

php - URLの一部をphpで分離し、html要素に出力する

WordPress でギャラリーを作成しています。URL の特定の部分を取得して、div の ID にエコーしようとしています。

これは私の URL です:

常に数字になるギャラリーのIDを分離したい(この場合は1)。それから、おそらく関数の形で、どこかに印刷する方法が欲しいです。