需要开发一些“服务”程序来接收和处理来自Oracle DB服务器的BLOB数据。客户将使用Delphi 2010编写。我可以自由选择使用哪些技术来生成此项目的服务器部分。这就是为什么我在这里发布这个问题。你们能否指点我一些博客文章,文章,论坛,我可以获得有关创建此类服务的各种信息?我有微软WCF服务的经验,但它通过WSDL与Delphi客户端进行了一体化。现在我停止使用C#编写的ASMX Web服务,并且需要获取一些示例,如何在服务器和客户端之间传输BLOB数据。如果服务器和客户端通过原始套接字进行通信,而不是封装SOAP中的所有数据,那将会更好。在此先感谢您,并且非常希望您能提供帮助,伙计们!处理BLOB数据的Web服务
回答
这是相当高级的,但如此这样的问题:
如果它是一个“原始套接字”,它是不是一个真正的“网络服务”;虽然当然有REST或HTTP POST的中间立场。
如果你正在寻找一个web服务,并且数据是不平凡的,那么你可能想要看看MTOM以避免base-64开销(这在WSE 3中支持,或者(简单的)WCF通过basicHttpBinding)。我希望大多数工具能够合理理解使用MTOM的基本Web服务。
我会建议你使用RemObjects SDK用于开发服务器端& Web服务应用程序,它具有德尔福&净没有的许多功能,也支持他们不同的消息,这样你就可以使用二进制消息而不是SOAP来传输BLOB数据更快,更紧凑。
它们也是.Net版本的服务器和客户端,所以你可以在它们之间进行混合。
处理BLOB字段的好方法是REST协议。
感谢REST协议,您可以从其URI获取,POST,放置或删除二进制BLOB。也就是说,如果您的URI专用于BLOB字段,则可以使用原始二进制传输,而不需要MTOM或Base64传输。
举例来说,你可以在这样一个URI得到BLOB内容与ID = 123用GET:
http://servername/service/123/blob
它会从一个标准的Web浏览器也行。所以如果BLOB是一张图片,它应该直接在浏览器中显示。
使用同一个URI的POST,添加一个新的blob,或者使用PUT更新blob。用DELETE动词...删除它。这就是RESTful通过HTTP的含义。例如,这是我们的mORMot框架的工作原理。它也能够fast have direct access to the Oracle database on the server side,以及一些专门的课程。这种基于ORM的框架的好处在于,高级客户可以使用对象,并且处理的不仅仅是BLOB,而且它可以处理URL-level security and authentication。
但是你可以很容易地使用一些mORMot可用的单位,如果你不需要整个REST风格的ORM功能,编写自己的服务:
- 对于一个快速HTTP.SYS基于HTTP/1.1服务器,take a look at SynCrtSock ;
- 对于HTTP/1。1个客户端访问,the same SynCrtSock unit defines some client classes;
- 对于非常快速的直接访问Oracle,see SynOracle。
这是所有开放源代码,从Delphi 5和更高版本开始工作。有a lot of documentation available (more than 600 pages),其中包括REST,ORM或n-Tier等概念的高级表示。
如果您想将数据库中的某些数据(本例中为Oracle中的blob数据)公开为Web服务WSO2 DSS [1]提供了一种更简单的解决方案。这是在Apache许可下的,它是免费的。由于所有WSO2产品都基于WSO2碳平台,因此您创建的服务也支持MTOM,WS-Security和其他Web服务相关功能。
- 1. web服务处理protobuf
- 2. Web服务异常处理
- 3. 处理动态Web服务
- 4. Web服务异常处理
- 5. 处理来自Web服务
- 6. 处理/清理Web服务代理
- 7. 的Grails:在不同格式的RESTful Web服务数据处理
- 8. MVC3门户网站处理来自Web服务的JSON数据
- 9. 春天RESTful Web服务 - 高容量的数据处理
- 10. 用于处理数据的MySQL vs Web服务器
- 11. Flex中的服务处理数据
- 12. 处理大量的服务器数据
- 13. 处理来自服务器的数据
- 14. Web服务未处理的异常
- 15. Web服务中的错误处理
- 16. Web服务的全局错误处理
- 17. ASP.Net web服务同步调用来处理数据库队列
- 18. 如何处理Web服务和数据模型/控制器
- 19. 我正在处理数据同步服务,使用web api
- 20. 如何连接wsdl soap web服务并处理数据
- 21. 在碎片中处理web服务调用和缓存数据
- 22. 用REST Web服务处理大量数据
- 23. 从Web服务处理数据库 - 如何提高性能?
- 24. 通过ContentValues处理Blob数据类型
- 25. 处理微服务架构中的Web服务的API网关
- 26. 处理需要Web服务的应用程序 - 处理EndpointNotFoundExceptions
- 27. 数据表服务器端处理
- 28. 数据库与服务器端处理
- 29. 数据表服务器端处理
- 30. 微服务顺序数据处理
感谢您的回答Marc!基本上我需要Web服务,因为会有另一种内部方法来提供额外的数据。你能给我发送一些我应该阅读的链接吗? – kseen
使用REST风格的方法,使用Base-64或MTOM不是必需的。您可以为主RESTful URI内的blob字段指定一个sub-url地址。 HTTP喜欢二进制。如果您可以使用URI,则不必使其变得更加复杂。 –