1

介绍

我们有一个项目要设计和实施这个学期。对于我们的项目,我们选择为客户创建一个使用 Android 手机的库存系统。有关该项目部分的更多信息

问题

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

我们的时间有点紧张(尤其是这个学期的这个项目),我们意识到这种问题已经被比我们聪明得多的人解决了。

到目前为止我们的想法

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

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

我们的另一个选择是 JBoss 或 GlassFish 之类的(或者是吗?我们在这方面真的没有经验)。虽然我们很乐意创建 Java 客户端,但我们还没有深入研究过 JBoss/GlassFish 之类的东西。

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

任何指导将不胜感激,在此先感谢您。

4

2 回答 2

2

我建议使用 JSON 或 XML 以及使用 RoR 的 REST 样式的 API。XML 可以很好地替代 JSON。我不会为 JBOSS 等而烦恼——这太过分了。有时当人们说 HTTP 和 XML 时,他们也指的是 SOAP,我也认为这有点过头了。如果它是基于 REST 的 XML,那很好。

只需一个简单的基于 URL 的 API 就很容易实现,并且足以满足学校项目的需要。

于 2010-09-24T15:50:58.973 回答
1

使用 Glassfish 之类的 EJB 3.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);
    }
}

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

于 2010-09-24T16:10:19.577 回答