这是一个面向服务的架构吗?

时间:2011-10-20 13:44:55

标签: java soa

我在大型J2EE Web应用程序和高事务性核心Java应用程序方面拥有多年经验,但从未有过任何SOA经验。

目前我正在开发一个新项目,但架构已经完成。我们(Java开发人员)开发EJB服务,最终将基于JAXB的Java对象发送到C#.net客户端,以呈现仅在公司11000用户中使用的UI。我们的想法是,未来可能会有全球互联网用户,我们将开发一个基于J2EE的Web应用程序,它将使用相同的服务。

这是一个真正的面向服务的架构吗? SOA是否可以使用JAXB绑定的Java对象以这种方式完成,这些Java对象可以从许多平台上使用?

我从未做过任何SOA工作,所以我希望得到一些正确的术语。谢谢。

5 个答案:

答案 0 :(得分:6)

SOA架构必须遵守以下规则:

SOA组件松散耦合。当我们说松散耦合意味着每个服务都是自包含的并且在逻辑上单独存在。例如,我们采用“支付网关”服务并将其附加到其他系统。

SOA服务是黑盒子。在SOA服务中隐藏着内在的复杂性。它们仅根据这些消息使用消息进行交互并发送服务。通过将服务视为黑盒子,服务变得更加松散耦合。

SOA服务应该是自定义的: - SOA服务应该能够自己定义。

SOA服务在列表中维护: - SOA服务在中心维护 库。应用程序可以搜索中央存储库中的服务并相应地使用它们。

可以编排和链接SOA组件以实现特定功能。可以以即插即用的方式使用/编排SOA服务。

只要您不违反任何上述规则,使用哪种技术/语言无关紧要

了解更多信息:

http://www.codeproject.com/KB/aspnet/SoftArch7.aspx

答案 1 :(得分:1)

所有SOA意味着“外部”组件可以使用功能。通常SOA指的是XML / RESTful接口,但这只是惯例。

http://en.wikipedia.org/wiki/Service-oriented_architecture

答案 2 :(得分:1)

SOA与EJB或JAXB等实现细节没有任何关系。 SOA就是创建松散耦合的,谨慎的服务(通常是Web服务)。然后,这些服务可以由任何业务逻辑层运行,以满足业务需求。

然后,您可以将UI图层(例如Java Swing或SWT)添加到业务逻辑层以创建客户端应用程序,类似地,您可以创建Web应用程序。在每种情况下,您使用相同的Web服务。这是SOA。

答案 3 :(得分:1)

  • 这是一个真正的面向服务架构吗?

SOA是一个时髦词汇。您也可以将其视为RBMDC => “可由许多不同的客户端重用”架构

它与实际数据类型(XML,JSON,二进制等)无关,也与协议(HTTP,TCP / IP,SOAP等)无关。

它真正归结为您拥有X“业务功能”,您可以通过外部或内部客户端使用这些功能。这些业务功能在技术上标记为 services ,因此您的架构是 Service Oriented。

您在示例中描述的是buzz架构师称之为SOA =>答案是肯定的。

答案 4 :(得分:1)

是。这正是SOA的含义。问自己这些问题:

  1. 您是否正在开发一个封装业务逻辑的层......可能会在执行此操作时与数据库进行交互?
  2. 该图层的设计是否可以调用多个视图或其他图层来获取信息?
  3. 如果你的答案是肯定的,那就是SOA。您将拥有多个客户 - >呼叫网关(可能是您的网络服务器) - >它将请求定向到您的服务。然后返回数据。

    一旦开发了网关,那么您需要专注的是开发服务,而其他一些模块可以使用它。

    松散耦合的妙处不是吗?

    我参与的项目正是你正在做的事情。后端的C#SOA和Java EJB .. :)