問題タブ [client-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.

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

javascript - 同一のクライアント側とサーバー側のコードを生成するためにMVCからモデルを記述するMetalanaguage

オフラインモード(google-gears + javascript)およびサーバーサイドsqlite +(php / ruby​​ / javaなど)で使用する予定のアプリケーションの動作を説明するための強力なメタ言語を探しており、説明するのに適した形式を探していますターゲット言語に簡単に変換できるモデルの動作。私は完全に軌道に乗っていないのですか、そしてもっと良い方法がありますか?

0 投票する
5 に答える
3057 参照

database - GUI POS システムのデータベース、プログラミング言語、フレームワークに関する提案はありますか?

当社の POS システムには、受発注機能、販売履歴、注文履歴など、多くの追加機能があります。主な問題は、システムがゼロから適切に設計されていないため、修正に時間がかかりすぎて、お客様からのリクエストを処理します。また、現在使用しているテクノロジー (Progress データベース、言語用の Progress 4GL) では、データベース接続などのマルチユーザー ライセンス料金により、お客様にかなりのライセンス費用が発生します。

多くの議論の後、おそらくゼロからやり直すことになりそうです (少なくとも当面は現在の製品を維持しながら)。私たちはいくつかのことを探しています:

  1. 優れた GUI フロント エンドを備えたシステムを作成します (現在は CHUI であり、アプリケーションはフロント エンドを再設計できるように構築されていませんでした... ビジネス ロジックと GUI の階層化や分離はありません... 身震いします)。

  2. 製品にすべての機能を含める必要がないように、さまざまな機能をモジュール化できるシステムを作成します。これにより、基本的な機能と低価格を求める現在の顧客のコストを抑えることができます。ベルとホイッスルは、それらを必要とする人が利用できるようになります。

  3. 適切な設計パターンを使用して、製品をいつでも簡単に追加または変更できるようにします (つまり、アプリケーションまたはそのほとんどを書き直す必要なく、データベースを変更したり、フロント エンドを変更したりします)。これは、Progress 4GL コードがデータベースに対して直接コンパイルされるため、現在問題になっています。データベースの小さな変更には、多くのコードの再コンパイルが必要です。

私たちの新しいシステムは Linux ベースで、クライアント アプリケーションが 1 つまたは複数の Windows ボックスから機能を提供する可能性があります。

だから私が探しているのは、この種の製品に推奨されるデータベースやフレームワーク、またはプログラミング言語に関する提案です。この分野の経験がある人なら誰でも、私たちを正しい方向に向けることができるかもしれませんし、何を避けるべきかについての考えを持っているかもしれません. .NET と SQL Express を検討しましたが (エンタープライズ レベルの DB は必要ありません)、それでは Windows に限定されます (とにかく私が知る限り)。Linux 環境で .NET コードを書くための Mono については聞いたことがありますが、まだよく知りません。また、Java および MySql ベースの実装も検討しました。

要約すると、次のことを行う予定です。

  1. 製品の開発に使用するテクノロジーのライセンス コストを抑えてください (Oracle はいいですね! MySQL はいいですね)。

  2. 保守とサポートが容易なソリューションを提供します。

  3. CHUI フロント エンドを介して「古い」ハードウェアで実行できるコンポーネントを備えたソリューション。(一部のお客様は 40 台以上の端末を所有しており、PC に切り替えるには多額の現金が必要になります)。

提案をいただければ幸いです。

ありがとう

[更新] 現在、総コストの分析を行っていることにご注意ください。この質問は、分析に含めるか検討するための「教育を受けた」オプションをいくつか提供することを目的としています。クライアント/サーバーのセットアップに関する経験/提案を共有できる人なら誰でも歓迎します (POS システムの経験がある人だけではありません... それは単なるボーナスです)。

[アップデート]

興味のある方のために説明すると、最終的に Microsoft Dynamics NAV、LS Retail (POS およびその他のさまざまなプラグイン) を使用し、その上でいくつかのカスタマイズ作業を行いました (現在取り組んでいます)。この設定により、現在のシステムに欠けていた、完全に統合された g/l システムを持つという追加の利点が得られました。

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

c# - .Net 2.0 を使用して、サーバー上の変更されたデータについてクライアントにどのように通知しますか?

HTTPChannel を介した .Net Remoting を使用してサーバー アプリから取得したかなり複雑な計算データを表示する WinForms クライアント アプリを想像してみてください。
クライアント アプリは 1 日中実行されている可能性があるため、ユーザーが必要なときにデータの再読み込みを開始できるように、新しいデータが利用可能であることをクライアントに通知する方法が必要です。
現在、リモート .Net イベントを使用して、イベントをクライアントにシリアル化し、クライアント側でイベントを再スローしています。

私はこの設定にあまり満足しておらず、再実装する予定です。
私にとって重要なのは:

  • .Net 2.0 ベースのテクノロジー
  • 使いやすい
  • 低複雑性
  • サーバーまたはクライアントの再起動後も機能するのに十分な堅牢性

.Net 2.0 に制限されている場合、そのような機能をどのように実装しますか? どのテクノロジー/ライブラリを使用しますか?
問題に取り組む方法についてのインスピレーションを探しています。

編集:

クライアントとサーバーは同じ組織内に存在し、通常は LAN、おそらく WAN/VPN の状況です。
このメカニズムは、利用可能な新しいデータがあることをクライアントに認識させるだけです。クライアントに実際のデータを取得するためにリモート処理を続けたいと思います。これはかなりうまく機能しているためです。MSMQ には Windows が付属していますね。したがって、それを使用しても問題ないはずですが、私はあらゆる代替手段を受け入れます。

0 投票する
5 に答える
6281 参照

c# - クライアントアプリがC#でローカルネットワーク上のサーバーを見つけるための最良の方法は何ですか?

クライアントは、GenuineChannels を使用してサーバーに接続します (DotNetRemoting への切り替えを検討しています)。find とは、接続するサーバーの IP とポート番号を取得することです。

ネットワーク上のすべての IP を試してアクティブなポートを試すという総当りのアプローチのように思えますが (それが可能かどうかもわかりません)、もっと良い方法があるはずです。

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

c# - db4oクライアント/サーバーは一度に1つのクエリしか処理できないように見えますか?

私たちはdb4o(http://www.db4o.comのOO-DBMS )を評価しています。クライアント/サーバーモードのパフォーマンステストをまとめました。サーバーを起動してから、一度に複数のクライアントでハンマーで叩きます。サーバーは一度に1つのクライアントのクエリしか処理できないようです。

このシナリオを可能にする構成スイッチをどこかで見逃したことがありますか?サーバーの実装は以下のとおりです。クライアントは、操作ごとに接続、クエリ(読み取り専用)、および切断を行い、操作はクライアントプロセス内の複数のワーカースレッドから次々に実行されます。同じサーバーに対してそれぞれ1人のワーカーで1つのクライアントプロセスを起動した場合も、同じ動作が見られます。

助言がありますか?

編集:LazyおよびSnapshot QueryModesを発見して試してみました。これにより、サーバーのブロックの問題が(部分的に)軽減されますが、クライアント(1を待機する40の同時テストクライアントを実行)では、重大な同時実行の問題が発生します。 -サーバーでランダム操作要求)ハンマーを発行する前の300ms。LINQプロバイダーおよびIO内部から発生する例外があるようです:-(

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

c# - Telnet サーバーはどのようにクライアントと通信しますか?

telnet サーバーに接続してサーバーと通信する C# アプリケーションを作成したいと考えています。telnet サーバーがどのようにクライアントに情報を送信するのか疑問に思っていました。私はTelnet RFCを調べ (すくい取り) 、サーバーから着信するパケットを調べましたが、まだ少し混乱しています。サーバーが telnet クライアントでカーソルを移動する方法と、文字の色を変更する方法の例を誰か教えてもらえますか? (例を挙げていただければ幸いです)

アップデートⅠ

追加の VT100 リソースは次のとおりです。

  1. ANSI/VT100 端末制御
  2. vt100_codes_news.txt

アップデートⅡ

多くの調査と時間をかけて、ここで私が見つけたもの:C#を使用したTelnetプログラミング

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

c# - クライアントからサーバーへのスケジュールされたデータ バックアップ

クライアントからサーバーにデータをバックアップするアプリケーションに最適なテクノロジを指摘できる人はいますか?

クライアントは、バックアップするフォルダーを選択し、サーバーへのバックアップをスケジュールする必要があります

また、開発/設計をどのように開始するか、アプリケーションの初歩的なバージョンを最短時間で構築する方法にも興味があります。

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

c++ - (C ++)ゲームサーバー、(フラッシュ)クライアント

Flashをクライアントとして使用する最初のオンラインゲームをまとめ、実際のゲームの状態が保持されるC++でバックエンドアプリケーションを作成することに興味があります。

SDL、SFML、Allegroなどを使用する前に、C ++で多くのゲームを実行しましたが、ネットワークライブラリを使用することはできませんでした。私は、実際のサーバーにグラフィック表示がない(または必要ではないが、表示できる)ゲームサーバーにライブラリが最適であるという有用な方向性に興味がありました。正直なところ、答えはなんでもいいと思います。ソケットのコツをつかむと、データをやり取りするのが簡単になります...しかし、最初に尋ねるのは仕方がありません。

私はflashまたはas3の経験がほとんどありませんが、ブラウザーを介してゲームにアクセスできるという考えのように、flashを学ぶことは明らかに私が克服しなければならない難解なことになるでしょうが、私の主な関心はライブラリに関するヒントです。 、またはソース、またはソケットまたは最適に機能する方法を介してデータを送受信するのに適したチュートリアル。

TCP / UDP間の議論について読んだので、ここでそのような戦争を始めたくありません。一般的な役立つアドバイスをお願いします-私は私を立ち上げて実行するための簡単なものを探しているだけです:-p

ちなみに、私がC ++を選択する理由は、プレーヤーが実際にはミニチュア仮想マシンを備えたロボットであり、プレーヤー数が増えるにつれてすべてがサーバー上で実行されるため、すべてのvmをエミュレートする必要があるためです:-p

アップデート:

ゲームの世界はリアルタイムであることが意図されていますが、プレイヤーの相互作用はそうである必要はありません。ゲームの基本は、永続的な世界で相互作用し、ポイントを獲得するために毎日/毎週達成する目標と課題を持っている小さなロボットをプログラムすることです。

ロボットを直接制御できないため、プレイヤーはリアルタイムのビジュアルを必要としないため、表示データのバッファリングが可能になると考えていました。サーバーは、接続ごとに10秒程度のデータをバッファリングし、それを一度に送信します。このようにして、クライアントでデータが再生されている間、サーバーはさらにバッファリングでビジー状態になります。

プレーヤーがサーバーと行う一般的な操作は、新しいコードのアップロードと統計の取得です。また、ロボットを移動したり、開始位置にリセットしたりするための1回限りのコマンドが他にもある場合があります。リモートコントロールは通信チャネルを介して行われるため、バッファによって遅延されます。これは、永続的な世界が火星(惑星)のような場所にあり、信号が行き来するのに時間がかかるという事実によって簡単に説明できます。

ロボットをセットアップしてクライアントでリアルタイムにテストできる「ラボ」を計画していました。これは実際のゲームの世界とは関係がないため、ネットワーキングは必要ありません。両方の言語でVMを作成する:(

私はC++に完全に慣れており、永続的な世界の実用的なプロトタイプがすでにいくつか用意されています。ネットワーキングに関しては、私は完全な初心者なので、最初にアドバイスを得るのが最善だと考えました。

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

.net - WCFを使用して中央サーバーにデータをアップロードするクライアント、データがアップロードされたことを確認する方法は?

それぞれが独自にインストールされている10台未満のクライアントコンピューターは、中央サーバーにデータをアップロードする必要があります。

クライアントデータベースは次のようになります。

tblSales --rowGuid --randomNumber

中央サーバーデータベース:

  • rowGuid
  • randomNumber
  • dateInserted

WCFを使用してファイルを中央サーバーに送信する予定です。

行がサーバーに挿入されたことを確認するにはどうすればよいですか?どのような検証オプションがありますか?

挿入された行数を返し、送信された行数と比較することはできますが、他にもっと堅牢な方法はありますか?

0 投票する
5 に答える
10403 参照

python - クライアントサーバーアプリケーションのストレステスト/負荷テストをどのように行う必要がありますか?

私はクライアントサーバースタイルのデータベースベースのシステムを開発しており、システムにストレス/負荷テストを行う方法を考案する必要があります。顧客は必然的に次のようなことを知りたがります。

•サーバーはいくつのクライアントをサポートできますか?
•サーバーはいくつの同時検索をサポートできますか?
•データベースに保存できるデータの量は?
•その他

これらすべての質問の鍵は、応答時間です。新しい負荷が導入​​されると応答時間とパフォーマンスがどのように低下​​するかを測定できる必要があります。これにより、たとえば、クライアントにスローできるある種のきれいなグラフを作成して、特定のパフォーマンスでどのようなパフォーマンスが期待できるかをクライアントに示すことができます。ハードウェア構成。

今、私たちはただ指を空中に出し、経験からシステムについてすでに知っていることに基づいて知識に基づいた推測をします。製品がより厳しい条件に置かれるにつれて、これは私たちの今後のニーズには不十分であることが証明されています。

私はそのような答えを意味のある方法で得る方法を考案する仕事を与えられました。これは誰もが明確に答えることができる質問ではないことを私は理解していますが、私は人々が自分のシステムでそのような仕事をどのように行っているかについての提案を探しています。

注意すべき点の1つは、Python言語(SWIGの提供)を介してクライアントAPIに完全にアクセスできることです。これは、この種の作業ではC++よりもはるかに簡単に操作できます。

さあ、これを床に投げます。皆さんが思いつくアイデアを知りたいと思っています。