通过Web服务处理批量数据的简便方法?

时间:2009-10-02 21:38:58

标签: web-services

您建议使用哪些简单的工具来读取地址文本文件,将每条记录单独发送到Web服务以进行地理编码,并将该批结果另存为文本文件?

寻找带有使用示例的简洁组件,从最小的代码开始。只要dev环境易于安装,语言就无关紧要。

要求   - 可供不熟练的程序员使用   - 低成本或无成本   - 在Windows下运行。


第二个想法: 在使用JavaScript和一两个库的浏览器中进行操作有多容易?

3 个答案:

答案 0 :(得分:1)

我会选择Java并使用像jFFPFlatworm这样的平面文件解析库 这些库很容易理解和使用(过去我曾与它们合作过)并且它们都提供了代码示例。

Spring Integration将是另一个不错的选择,但如果您不熟悉Spring,那么学习曲线可能太大,而且对于您的简单工作流程来说可能有点过分。

实际上,在您的情况下,我认为我会选择Flatworm进行解析。您可以在其网站或How to read and parse flat files in Java中找到代码示例。您甚至可以使用它来编写输出文件,如Writing flat files in Java with Flatworm)。

对于SOAP部分,我将使用JAX-WS Reference Implementation(JDK 6中为included,因此如果您使用的是Java 6)和Netbeans IDE,则不必添加任何库。 Netbeans IDE非常支持开发JAX-WS Web Services Client(或here以用于更高版本的Netbeans)并且应该真正简化这一过程。生成各种类后,调用Web服务只需3行代码,如提供的链接示例所示:

// Call Web Service Operation
com.cdyne.ws.Check service = new com.cdyne.ws.Check();
com.cdyne.ws.CheckSoap port = service.getCheckSoap();

// TODO initialize WS operation arguments here
java.lang.String bodyText = "";
java.lang.String licenseKey = "";

// TODO process result here
com.cdyne.ws.DocumentSummary result = port.checkTextBody(bodyText, licenseKey);

答案 1 :(得分:0)

鉴于需求的通用性,相对简单的工作流程,但其潜在的设计带来一些曲折(例如,需要使用https而不是http为webservices,需要产生一些奇怪的用于身份验证的令牌,或一些花哨的编组或转换等。)最好使用现代脚本语言。一个非常基本的计划可能是使用普通shell脚本(bat文件),基于curl和一些其他命令行实用程序,但这种方法可能不够灵活,无法处理某些需求;而是更喜欢Perl,PHP,Python,Ruby等语言。

这将提供一个低入门门槛,能够在将应用程序元素放入正式脚本之前以交互方式测试应用程序元素,并利用大量库来处理可能出现的各种要求,例如配置参数的存储,解析细节,输出格式,网络服务,与地理位置相关的数学等等。

我倾向于使用 Python ,但正如大多数其他现代动态语言所说的那样。

答案 2 :(得分:0)

我会将XMLunit与Eclipse IDE,+ JUnit和JDK1.6一起使用。完成此程序的完成程序可能只有100行代码。这对新手程序员来说是可行的......

程序完成后,您可以编译为.exe文件以备将来使用。

我会选择“Strawberry Perl”作为编程语言的第二选择。我认为Python有点难以使用。