使用基于Java的客户端实现的最简单的应用程序服务器是什么?

时间:2010-09-24 15:44:14

标签: java ruby-on-rails jboss glassfish application-server

简介

我们有一个项目来设计和实施这个学期。对于我们的项目,我们选择创建一个为客户使用Android手机的库存系统。 More information on that portion of the project

问题

我们遇到的下一个问题是我们要设计某种中介服务器来验证用户并管理向数据库发出的命令 - 换句话说,就是应用服务器。

我们有点时间限制(特别是这个项目的学期)我们意识到这种问题已经被比我们更聪明的人解决了。

我们的想法到目前为止

正如标题所说,使用基于Java的客户端实现的最简单的应用服务器是什么?我们目前为这个项目有3个独立的客户端:工作站(运行Windows XP),Android手机和网络界面。

Ruby on Rails服务器已经用于Web界面。在与我的一位教授交谈后,他提到我们实际上可以通过HTTP和XML进行通信来使用RoR作为应用服务器。这只是整个应用程序的开发,因为我们可以将Web界面和应用程序服务器相互编码。

我们的另一个选择是像JBoss或GlassFish(或者是它?我们真的没有这方面的经验)。虽然我们很乐意创建Java客户端,但我们还没有尝试过像JBoss / GlassFish这样的东西。

我们愿意花时间学习这项技术,但我们想知道在我们使用错误的应用程序服务器之前一个月才发现使用哪种技术。

非常感谢任何指导,谢谢你。

2 个答案:

答案 0 :(得分:2)

我建议使用RoR建立JSON或XML以及REST风格的API。 XML是JSON的正确替代品。我不打扰JBOSS等 - 这太过分了。有时当人们说HTTP和XML时,他们也意味着SOAP,我认为这也是过度的。如果它是基于REST的XML,那就没关系。

只需一个基于URL的简单API即可轻松实现,并且足以满足学校项目的需要。

答案 1 :(得分:1)

使用像Glassfish这样的EJB 3.1容器,实际上amazingly easy通过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);
    }
}

基本上,容器会为您完成所有工作。唯一的问题是窗帘背后会出现很多非常复杂的东西,如果出现任何问题,或者你需要的不仅仅是简单的功能,那么你的学习曲线会相当陡峭。但是,关于Ruby on Rails背后的所有元编程魔术,也可以这么说。