SOA 的无状态 ORM

Posted

技术标签:

【中文标题】SOA 的无状态 ORM【英文标题】:Stateless ORM for SOA 【发布时间】:2010-10-29 11:56:41 【问题描述】:

我们需要实现一个 .NET WCF 服务,它将成为 SOA 解决方案的一部分,这意味着它的实体将通过基于 Java 和 .NET 的服务以及桌面客户端(尽管它们会可能是 .NET,但没关系)。

为了实现这种灵活性,所有对象都必须是无状态的,因为我们不能传递包含实体实现和更改跟踪逻辑的 .dll(所有对象定义都将由 wsdl 获取)。

将被通信的实体将在一个图中,例如,一些主根,然后它们每个都有一个集合,它有自己的集合,等等......集合的每个部分都可以修改/删除/插入。

我知道我们可以使用 DTO,但这是一种开销(尤其是对象图、循环指针等),我现在想避免使用它。但如果没有其他方法证明是正确的,我们可能不得不走那条路……

我以前用过Entity Framework & LLBLGenPro,但我想听听你的意见。所以,最后:

您对 SOA 环境中的 ORM 有何选择?

谢谢

【问题讨论】:

我不认为“哪个 ORM”会因为环境是 SOA 而改变的基本问题。体面的 ORM 可以很好地处理 SOA。 嗯,它确实 - LLBL 实体要求你有它们的 dll 来反序列化,实体框架实体都继承自 system.data.entity,因此它们不能在 Java 上正常“工作”。当然有解决方法,但这就是我问这个问题的原因 - 也许有些东西不需要解决方法 【参考方案1】:

我会为此编写一个OData 服务(事实上,am 为它编写一个 OData 服务)。使用实体框架执行此操作是 very easy,但也有 plenty of other choices。然后您可以从just about anything 使用它。

【讨论】:

以上是关于SOA 的无状态 ORM的主要内容,如果未能解决你的问题,请参考以下文章

http的无状态无连接

Web中的无状态含义

Java中的无状态函数

REST 的无状态原则究竟意味着啥?

Wicket 中的无状态模态对话框

HTTP的无状态是什么意思?