2

現在の PHP (ugh) AMF サービス フレームワークを置き換えるために PyAMF を評価していますが、切り替えのための説得力のあるユース ケースを提供できる重要な情報が 1 つ見つかりません。

現在、新しい PHP AMF サービスは、.php ファイルをファイル システムに配置するだけでデプロイできます。次にアクセスしたときに、新しいサービスが有効になります。サービスの削除は、それを提供した .php ファイルを削除するのと同じくらい簡単で、それに応じて更新も簡単です。私は、PyAMF から同じように簡単にデプロイできる必要があります。これらのサービスを展開するためにインストーラーを書き直す必要がある場合、それは非スターターになります。

したがって、私が知る必要があるのは、PyAMF がファイルシステムを介して新しいサービスの検出をサポートできるか、同じ方法でサービスのアップグレードと削除をサポートできるかということです。

私は、さまざまなサーバー オプションのいずれにもオープンです。私は簡単にcherrypy、djangoなどをインストールして単独で実行することができます。

4

2 に答える 2

2

web2py には pyamf サポートが含まれています。それが機能する方法は、次のような関数を作成することです

def add(a,b): return a+b

そして、それらを @service.amfrpc3('domain') で装飾します

@service.amfrpc3('domain')
def add(a,b): return a+b

Web サーバーを再起動したり、他に何もする必要はありません。コントローラー ファイル (サービスを定義するファイル) で関数を追加および削除するだけで、サービスが使用可能になるか削除されます。複数のデコレーターを使用して、他のプロトコル (xmlrpc、jsonrpc、rss、csv、xml、json) を使用して同じ機能を提供することもできます。

@service.xmlrpc
@service.jsonrpc
@service.amfrpc3('domain')
def add(a,b): return a+b

ゲートウェイをインスタンス化する必要はありません (他のフレームワークと同様です。装飾されたすべての関数は、単一のアクションを介して公開されます。これは、既に scaffolding アプリケーションにあるため、記述する必要はありません (web2py によって作成されます)。

def call(): return service()

関数は、web2py データベース アブストラクション レイヤー (DAL) と (いくつかの制限付きで) web2py 認証メカニズムにアクセスできます。

シェル (emacs/vi/etc) を使用して関数を含むコントローラーを編集できますが、web2py Web ベースの IDE (「admin」と呼ばれる) を使用して、ブラウザーを使用してサービスを追加することもできます。

Web2py にはチケット発行システムが含まれているため、Web サービスのデバッグは簡単です。サーバー側のエラーはチケットになります。admin には、すべてのチケットを一覧表示する Web ページがあります。いずれかをクリックすると、問題の原因となったコードと完全なトレースバックが表示されます。

サードパーティの Python モジュールをインポートして使用できます。pyamf が事前にインストールされている必要があります。

これは、本の第 9 章で詳しく説明されています。

http://web2py.com/book/default/section/9/2

web2py アプリは非常に簡単にデプロイできます。1 つの方法は、admin を使用してポイント アンド クリックすることです。もう 1 つの方法は、あるマシンから別のマシンにファイルを単純にコピーすることです。メタデータも、インストール手順も (web2py 自体も) も、設定も、構成ファイルもありません。後者のプロセスについては、次のように説明されています。

http://gluonframework.wordpress.com/2010/03/02/shell-only-web2py/

web2py は WSGI に基づいています。考えられる任意の Web サーバー (apache+mod_wsgi/mod_python/mod_proxy;lighttpd/cheorkeey/ngnix+fcgi/wsgi.py;cherrypy;etc) で実行されます。いくつかのオプションは、ここで詳細に文書化されています:

http://www.web2py.com/book/default/section/11/0

その他のオプションは、http://web2pyslices.comにあります。

web2py には、https をサポートする非常に高速な独自の Web サーバーである Rocket も付属しています。web2py コードは、Google App Engine にもデプロイできます。

web2py google グループでの活動を確認してください。

于 2010-04-22T05:05:40.180 に答える
0

私はPyAMFをDjangoと一緒に使用しています。考えられる解決策は、おおまかに次のようになります。

  1. さまざまなAMFサービスのpyファイルをすべて含むPythonモジュールを作成します
  2. DjangoGatewayをラップするビューを作成し、すべてのサービスを初期化します。このビュー内で、次のことができます。
    • サービスモジュールをreload()
    • つまり、ファイル名に基づいて辞書にデータを入力します({SERVICE_NAME:SERVICE_INSTANCE})
    • このディクショナリを使用してDjangoGatewayをインスタンス化し、着信要求を処理できるようにします。

これは、サーバーの再起動などの追加のアクションなしでのみファイルをデプロイできるという事実に基づくハックなソリューションです。

于 2010-04-21T15:57:31.257 に答える