0

I'm developing a java application which reads a continuously written a file of recordsets (800.000.000 records per month), bulk reading data from files and calls a web service to read also data. These data should be stored in a database (a huge database). The next feature I'm going to add is a web service, which can be called from other applications to add or receive (predefined queries [maybe the running time of the method/query is about 1 or 2 minutes]) records. Additionally to web service I want other application written in c#, c++, etc. to be able to connect (I thought about protocol buffers or apache thrift). And at least it should offer a way to administrate the application (i though about a web site)

In my opinion it should be a server application. But should I develop a server on my own (opening sockets, etc.), a Java EE or are there any other "server frameworks" (may be a combination of jetty, sockets, etc.)?

4

2 回答 2

2

只是分而治之:一种解决方案是使用tomcat:

功能1)创建一个读取文件的线程。然后你可以在 web.xml 中定义一个上下文监听器

功能 2) 查看 java.util.Timer,或者,为了更强大的功能,查看 Quartz 等第三方产品。

功能 3a) 有很多可用的 WS 框架。用google找教程

功能 3b) Google for Asynchronous Web Service 或 Servlet 中的异步支持

功能 4) AFAIK Thrift 有一个内置的 TServlet。我认为 Tomcat 和 Google Protokoll Buffers 也是可能的

功能5)提供网站是tomcats的主要功能之一

于 2012-07-19T14:17:14.747 回答
1

如果它将成为用户可以部署的东西——客户将购买的产品,或者供人们下载的开源工具——那么我建议最好的方法是以与容器无关的方式开发它,越远越好。

我的意思是,专注于应用程序的功能,并将诸如启动和连接到服务之类的事情抽象出来。如果你做对了,你就可以编写容器特定的元素,以允许你的用户将应用程序部署在他们选择的应用服务器中,或者作为一个独立的应用程序。

另一方面,如果是内部项目,您可以完全控制应用程序的使用方式的所有方面,您可以避免上述部分或全部;尽管在任何情况下您可能会更好地使用这种抽象。

当然,Eric Leschinski 是对的,因为您不想开发 Tomcat 或 IIS 之类的东西。

于 2012-07-19T13:23:25.787 回答