根据我对N-Tier和SOA架构的理解.
N层
N-Tier意味着将应用程序分解成多个层次,例如,我正在asp.net中开发应用程序,并将总数据库层数据推送到WCF,然后称为N层.[紧耦合]
SOA [松散耦合]
根据我对SOA的理解,它是非常通用的术语,以及我们如何松散地结合我们的架构,然后称之为SOA. SOA服务的最佳示例 – 库存供稿/天气Feed.
我的结论:
即使如果我们使用WCF开发应用程序,并不意味着它的SOA,如果它与单个客户端/或.net应用程序紧密耦合,只能了解服务.
可以帮助我理解SOA VS N-Tier吗?
解决方法
这两个不能比较,因为每个描述不同的事情.还要注意层与层不一样.
层次过程边界.当您构建3层应用程序时,您将知道UI,BL和DB将分为3个不同的过程,可以在三个不同的机器上.
层 – 逻辑边界.单层可以包含多个层.这只是您构建应用程序以遵循OO原则的方式.
SOA – SOA应用程序可以是多层和多层,但通常它不必. SOA是一种在可重用的自主互操作的远程调用组件的意义上构建应用程序的方法. SOA服务必须遵循four tenets.
为了显示N-Tier和SOA之间的简单区别,我们假定您正在构建使用某些数据库的业务逻辑顶部的服务层.看起来你正在构建N层SOA应用,不是吗?不幸的是,暴露服务的每个应用都不符合这些原则.在这种情况下,最重要的可能是“显式服务边界”和“服务是自主的”.如果您的服务共享一些业务逻辑功能或数据库中的数据,则它们不具有明确的边界,并且它们不是自主的=>该应用程序不是设计为SOA.
小型SOA和大型SOA之间也存在差异.所提到的应用是小型SOA – 每个服务都必须遵循原则.大型SOA适用于企业集成,您可以将应用程序的所有服务作为单一单元进行计数,这些单位必须遵循原则.
最好的祝福,拉吉斯拉夫