34

I have to write a bunch of small web services. They must be defined by a WSDL and work via SOAP-RPC, in order to work with an existing workflow engine and service registry framework. I can, however, serve them on a service stack/platform of my choice.

I'm presently writing them in Java, and it's not too bad. But I'm thinking my life might be easier if I was able to write these services in Haskell. Searching on Google, it looks like, once upon a time, someone else had the same idea and started a project called "HAIFA". However, it looks like HAIFA hasn't been maintained for some years, and I couldn't find any other frameworks supporting serving up services written in Haskell as SOAP web services.

Does anyone know of any other frameworks that will allow me to easily write SOAP-based web services using Haskell?

If not, has anyone done this manually (i.e., use XML libraries from hackage to process the incoming soap-rpc requests, and create soap-rpc compliant replies)? Was it difficult to do? Any gotchas? Was it worth the effort?

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
Dave
  • 341
  • 2
  • 3
  • Related question: http://stackoverflow.com/questions/9931410/haskell-which-soap-client-lib-to-use It seems you're out of luck here... – florent Oct 19 '12 at 10:16
  • 1
    Why do you want to move away from Java, it has excellent support and libraries for web services (disclaimer, I don't use Java or even really like it, but for WS it's up there with C#). – johnharris85 Oct 24 '12 at 20:32

2 Answers2

6

Since HAIFA is dead now there are no equivalent frameworks for SOAP web services in Haskell now. So I would advise you to use some bunch of frameworks. May be Yesod + shoap will be suitable. I think such a tendency in domain of SOAP WS frameworks in Haskell because of smooth transition to REST/JSON technologies. Also may be these two articles will be useful for you http://www.cin.ufpe.br/~haskell/hwsproxygen/files/HWSProxyGen.pdf and http://www.jofcis.com/publishedpapers/2010_6_9_2859_2867.pdf

BenMorel
  • 34,448
  • 50
  • 182
  • 322
Oleksandr Karaberov
  • 12,573
  • 10
  • 43
  • 70
-1

If you just need to send vanilla XML/SOAP messages then you could probably just open connections and read/write Aeson. But if the SOAP services need WS-Security, WS-Addressing, etc., support, you would be better off using an existing framework. For example: https://metro.java.net/

Disclaimer: I have been involved in Metro.

It would be great to have a SOAP framework in Haskell though.

haroldcarr
  • 1,523
  • 15
  • 17