私はいくつかのビジネスロジックを行うErlang/OTPアプリケーションを持っています。システムのクラッシュしたコンポーネントの1つを簡単に再起動できるので、Erlangで書かれています(高い稼働時間が最も重要な要件です)。 それぞれのコンポーネントは、ある種の特定の「並列」計算を行います。Webアプリケーションのコンポーネントベースのアーキテクチャの一部としてOTP/Erlangを使用する
1回の作業サイクルの結果、アプリケーションは値のリストを生成します。このErlang/OTPアプリケーションを「バックエンド」と呼ぶことにしましょう。
このErlang/OTPアプリケーションでは、PostgreSQLサーバを使用して結果を永続ストレージに保存し、計算に必要な追加のメタ情報(まだ実装されていません)を保存します。
次へ私はこのErlang/OTPアプリケーションにフロントエンドを追加する必要があります。これはウェブユーザーに役立つシンプルなWebベースのソリューションです。そのユーザーからの計算要求を受け入れ、バックエンドに計算を行い、バックエンドからの結果をユーザーに返します。何のスケーラビリティの要件はありません
、私は一日あたりのユーザーの最大数がこれ以上
1000よりだから私の現在のタスクが今、私のバックエンドのErlangのための共通のフロントエンドを実装することであることができると思います/ OTPアプリケーション(私は典型的なユースケースを持っていることを意味します:サイトを訪問し、登録し、ログインし、アプリケーションを使用して、素晴らしいajax'yのWebページを見て、ログアウトします)。
私は、コードの再利用により多くの時間を節約できることを知っています。例えば、Ruby on Railsでは、ユーザー認証、パスワードストレージ、Ajaxインターフェイスなど多くのものを無料で手に入れることができます。
私はErlang/OTP + PostgreSQL dbサーバのバックエンドとフロントエンドとしてのWebフレームワーク(RoR、Djangoなど)で構成されるアプリケーションの設計については何も知らない。
私は多くの質問が湧き出ます:Erlang/OTPとWebフレームワークは同じPostgreSQLデータベースを使用して結果を共有する必要がありますか? WebフレームワークからErlang/OTPアプリケーションに計算リクエストを送信して戻す最良の方法は何ですか? PostgreSQLサーバをどのように監督しますか?OTPのフォールトトレランスの対象にはなりません。
一般に、私はいくつかの異種ソフトウェアコンポーネントを持っており、それらから作業システムを構築したいと考えています( 'チーフ'コンポーネントはErlang/OTPアプリケーションです)。
ここから始めてください。どのようなアドバイスやヒントを読んでもらえますか?
P.S.私はthisを読んで、リンクをたどろうとしましたが、あまり理解しませんでした。
UPD:私はシカゴのボスや他のErlangのWebフレームワークが存在しないことを知っているが、私はそれらのいずれかがこのような成熟した環境、活気に満ちた地域社会例えばルビーのようなさまざまなプラグインやライブラリの巨大な多様性を持っていることを疑いますRails、Django、またはPHPベースのMVCフレームワークです。右?
UPD2:おそらく私はこのことについて詳しく説明しなければならないかもしれません。フロントエンドができるだけ保守可能である必要があります。 Erlangでそれを行うということは、それを維持するための適切な開発者を見つける際に問題に直面する可能性があることを意味します。 RoR、Djangoなどでやっていることは、フロントエンドを維持して成長させるための作業力を簡単に見つけることができることを意味します。
私は私の答えも編集しました。回答の更新を確認してください。ありがとうございました –