2012-10-15 32 views
33

Tôi phải viết một loạt các dịch vụ web nhỏ. Chúng phải được định nghĩa bởi một WSDL và làm việc thông qua SOAP-RPC, để làm việc với một khung công tác và khung công tác đăng ký dịch vụ hiện có. Tuy nhiên, tôi có thể phục vụ họ trên một nền tảng/nền tảng dịch vụ do tôi lựa chọn.Dịch vụ web SOAP trong Haskell?

Tôi hiện đang viết chúng bằng Java và không quá tệ. Nhưng tôi nghĩ cuộc sống của tôi có thể dễ dàng hơn nếu tôi có thể viết những dịch vụ này trong Haskell. Tìm kiếm trên Google, có vẻ như, đã từng có một lần, một người khác có cùng ý tưởng và bắt đầu một dự án có tên là "HAIFA". Tuy nhiên, có vẻ như HAIFA đã không được duy trì trong một vài năm và tôi không thể tìm thấy bất kỳ khung công tác nào khác hỗ trợ phục vụ các dịch vụ được viết bằng Haskell như các dịch vụ web SOAP.

Có ai biết về bất kỳ khung công tác nào khác cho phép tôi dễ dàng viết các dịch vụ web dựa trên SOAP bằng Haskell không?

Nếu không, có ai thực hiện việc này theo cách thủ công hay không (tức là, sử dụng thư viện XML từ hackage để xử lý yêu cầu xà phòng-rpc đến và tạo phản hồi tuân thủ xà phòng-rpc)? Có khó không? Bất kỳ gotchas? Có đáng để nỗ lực không?

+0

câu hỏi liên quan: http://stackoverflow.com/questions/9931410/haskell-which-soap-client-lib-to-use Có vẻ như bạn không gặp may ở đây ... – florent

+1

Tại sao bạn muốn di chuyển ra khỏi Java, nó có hỗ trợ tuyệt vời và các thư viện cho các dịch vụ web (từ chối trách nhiệm, tôi không sử dụng Java hoặc thậm chí thực sự thích nó, nhưng đối với WS nó lên đó với C#). – johnharris85

Trả lời

6

Vì HAIFA đã chết nên hiện tại không có khung tương đương cho dịch vụ web SOAP trong Haskell. Vì vậy, tôi khuyên bạn nên sử dụng một số khung công tác. Có thể là Yesod + shoap sẽ phù hợp. Tôi nghĩ xu hướng như vậy trong miền của khung công tác SOAP WS trong Haskell do chuyển đổi suôn sẻ sang các công nghệ REST/JSON. Cũng có thể hai bài báo này sẽ có ích cho bạn http://www.cin.ufpe.br/~haskell/hwsproxygen/files/HWSProxyGen.pdfhttp://www.jofcis.com/publishedpapers/2010_6_9_2859_2867.pdf

-1

Nếu bạn chỉ cần gửi tin nhắn vani XML/SOAP sau đó bạn có thể có lẽ chỉ kết nối mở và đọc/viết Aeson. Nhưng nếu các dịch vụ SOAP cần WS-Security, WS-Addressing, vv, hỗ trợ, bạn sẽ tốt hơn khi sử dụng một khung công tác hiện có. Ví dụ: https://metro.java.net/

Tuyên bố từ chối trách nhiệm: Tôi đã tham gia Metro.

Thật tuyệt vời khi có khung SOAP trong Haskell.