1

イントロ

今学期を設計して実施するプロジェクトがあります。私たちのプロジェクトでは、クライアントにAndroidフォンを使用する在庫システムを作成することを選択しました。プロジェクトのその部分に関する詳細情報

問題

私たちが遭遇した次の問題は、ユーザーを認証し、データベースに発行されるコマンドを規制するある種の中間サーバー、つまりアプリケーションサーバーを設計することです。

私たちは時間に少し制約があり(特にこのプロジェクトの今学期)、この種の問題は私たちよりもはるかに賢い人々によってすでに解決されていることを認識しています。

これまでのアイデア

タイトルが示すように、Javaベースのクライアントで実装するのに最も簡単なアプリケーションサーバーは何ですか?現在、このプロジェクトには、ワークステーション(Windows XPを実行)、Android電話、およびWebインターフェイスの3つの個別のクライアントがあります。

RubyonRailsサーバーはすでにWebインターフェースに使用されます。私の教授の一人と話をした後、彼は、HTTPとXMLを介して通信することで、実際にRoRを使用してアプリケーションサーバーとして機能できると述べました。Webインターフェイスとアプリケーションサーバーを並べてコーディングできるため、これは単にアプリケーション全体の開発になります。

他のオプションは、JBossやGlassFishのようなものです(またはそうですか?私たちはこの分野で実際に経験を積んでいません)。Javaクライアントの作成には慣れていますが、JBoss/GlassFishのようなものについては少しも掘り下げていません。

私たちはテクノロジーを学ぶために時間を費やすことをいとわないが、間違ったアプリケーションサーバーを使用したことが原因である1か月前に、どのテクノロジーを使用するかを知りたい。

ご指導をよろしくお願いいたします。よろしくお願いいたします。

4

2 に答える 2

2

JSONまたはXMLとRoRを使用したRESTスタイルのAPIをお勧めします。XMLはJSONの代わりに使用できます。私はJBOSSなどを気にしません-それはやり過ぎです。HTTPやXMLと言うときは、SOAPを意味することもありますが、これもやり過ぎだと思います。XML over RESTの場合は、それで問題ありません。

単純なURLベースのAPIは実装が簡単で、学校のプロジェクトには十分です。

于 2010-09-24T15:50:58.973 に答える
1

GlassfishのようなEJB3.1コンテナを使用すると、REST/JSONインターフェースを介してEJBメソッドを公開するのは実際には驚くほど簡単です。

@Path("/orders/")
@Stateless public class OrderService {

    @EJB BillingService billing;
    @EJB DeliveryService delivery;
    @EJB Warehouse warehouse;

    @PUT
    @Produces({"application/xml","application/json"})
    @Consumes({"application/xml","application/json"})
    public Order order(Order newOrder){
        Order order = warehouse.checkout(newOrder);
        billing.payForOrder(order);
        delivery.deliver(order);
        return order;
    }

    @GET
    @Path("{orderid}/")
    @Produces({"application/xml","application/json"})
    public Order status(@PathParam("orderid") long orderId){
       return delivery.status(orderId);
    }
}

基本的に、コンテナがすべての作業を行います。唯一の問題は、非常に複雑なことが多く行われていることです。何か問題が発生した場合や、単純な機能以上のものが必要な場合は、かなり急な学習曲線になります。しかし、RubyonRailsの背後にあるすべてのメタプログラミングの魔法についても同じことが言えます。

于 2010-09-24T16:10:19.577 に答える