0

次のリンクが示すように、NCBI (National Center for Biotechnology Information) は、C++、C#、Perl、および Java によるバイオインフォマティクス用の小さいながらも非常に便利な SOAP クライアントを提供していますが、残念ながら、この SOAP クライアントの PHP バージョンはありません。

ftp://lucid.bic.nus.edu.sg/biomirrors/blast/web_services/

以下は、遺伝子配列を BLAST するのに役立つ Perl SOAP クライアントの一部です。

    my $search_lite = SOAP::Data->value(
        SOAP::Data->name('options' => 
                         \SOAP::Data->value(
        SOAP::Data->name('Blast4-options-lite' =>
                         \SOAP::Data->name('task' => 'blastn'))
                         )))->uri(NCBI_XML_NAMESPACE);

    my $result = 
        $soap->call(SOAP::Data->name('Blast4-queue-search-request-lite')
                          ->uri(NCBI_XML_NAMESPACE)
                          => $search_lite);

PHPに変換しようとしましたが、うまくいきません。このガイドラインも使用しました: http://www.ncbi.nlm.nih.gov/books/NBK55699/

ここに私のPHPコードがあります:

try {
    $soapClient = new SoapClient($wsdlUrl);

    $result = $soapClient->SubmitSearchLite(array(
        //????
    ));
    echo $result;
}
catch {}

修正を手伝っていただけませんか?

4

2 に答える 2

1

PHP/Java Bridge の使用を検討しましたか? これにより、Java を介して Web サービスを利用し、PHP アプリケーションにあらゆる情報を送信できるようになります。

PHP/Java Bridge は、ストリーミングする XML ベースのネットワーク プロトコルの実装であり、PHP、Scheme、Python などのネイティブ スクリプト エンジンを Java 仮想マシンに接続するために使用できます。SOAP 経由のローカル RPC より最大 50 倍高速であり、Web サーバー側で必要なリソースが少なくて済みます。Java Native Interface を介した直接通信よりも高速で信頼性が高く、PHP から Java プロシージャーを呼び出したり、Java から PHP プロシージャーを呼び出したりするために追加のコンポーネントは必要ありません。

Web サービスと PHP アプリケーションの間のこの余分なレイヤーは、Web サービスに追加の変更が必要な場合に役立つことが証明されます。ほとんどの場合、PHP コードをそのまま維持して、Java レイヤーをいじるだけで済みます。

于 2012-04-20T07:12:33.020 に答える
-1

PHP には独自の SOAP クライアントがあることをご存知でしょうか。 http://www.php.net/manual/en/class.soapclient.php

于 2012-04-20T07:35:20.217 に答える