我们正在建造其他系统可以使用的产品。当我们拥有SOA时,我们只开发服务(WCF)。关于如何设计该服务的界面,我们进行了一些有争议的讨论。我们正在选择服务和OO设计之间的服务。

由于我们的服务将从.NET和Java中使用,有人说如果它具有OO设计,很难与服务集成。其他人认为服务桅杆不使用OO方法。有人说oo完全可以。结果,我们没有明显的抑郁症。

WCF提供了使用这两种设计的简便方法,但是最好的是什么?

有帮助吗?

解决方案

我假设您正在使用的“面向对象”的定义是程序管理“对象”的概念,这些单个对象管理其内部状态并揭示调用函数。

最接近的WCF Parralel是基于会话的服务,每个服务实例的寿命都由客户端控制。

如果您希望Java调用此服务,则必须使用basichtpbinding,因为这使用经典的Web服务协议。

这种绑定不能为基于会话的服务提供支持,因此您实际上无法使用基于会话的服务。

因此,您无法就服务本身应用“面向对象的”范式。

其他提示

您可以通过说:“我的问题是关于服务的方法应该收到复杂类型而不是标量参数的方法吗?”

您应该问自己以下内容:

A)是否有可能使用非OOO客户使用该服务? Dunno,Cobol批次?即使您的公司已经对OO Tech(Java/.net)进行了标准化,也有可能在将来某些外部实体(客户,PHP网站,任何内容)使用此特定服务

b)您过去是否已经创建了许多这样的服务(因此,您完全确定没有带有复杂类型的编组/序列化/进行序列化问题,或者至少知道您可以安全地使用什么)?

如果您对这两个要点充满信心,请随时使用“ OO”方法在设计服务的输入和输出时。否则,请采用最安全的(如果更原始)的方法,并将“对象”分解为标量组。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top