阅读有关SOA,Web服务和客户端 - 服务器架构主题的一些文献。我对这些术语感到困惑,因为看不出它们之间的真正区别。有人能解释一下SOA和Client-Server之间的实际区别是什么吗?我可以使用Client-Server来实现SOA,还是前者是一个不同的概念?客户端服务器现在已经过时了吗?这里的网络服务在哪里? Web服务只是一个客户端 - 服务器架构吗?
如果有人帮助我澄清这些概念之间的所有这些术语和差异,我将非常感激。
答案 0 :(得分:14)
SOA和客户端 - 服务器之间的最大区别在于层之间的耦合。在SOA中,服务器端非常独立于客户端。许多不同的客户端类型使用相同的服想想一个Web服务器。无论您使用哪种浏览器连接它,它都会做同样的事情。通过这种方式,SOA服务可以重用。 http://en.wikipedia.org/wiki/Service-oriented_architecture
另一方面,客户端服务器通常更加耦合。服务器存在于特定客户端,无需重新使用。想想Microsoft Exchange。它旨在与Microsoft电子邮件客户端一起使用。它实际上只是将一个过程分成两个部分,在不同的机器上运行它们。话虽如此,从技术上讲,SOA服务是客户端 - 服务器,只有多个客户端。
因此,所有SOA服务都是客户端 - 服务器,但并非所有客户端 - 服务器进程都是SOA。
答案 1 :(得分:2)
让我们举个例子。
你已经用任何语言(java,c,c ++等)编写了一个计算器代码,它执行加法,减法,乘法和分离的4个操作。可以说,我们在服务器上部署此代码。现在,您希望在互联网上发布此代码,以便世界上任何已连接到互联网的人都可以使用您的代码。现在webservice将发挥作用。根据您的服务器,您需要遵循实现技术将代码转换为Web服务。例如,您正在使用Apache轴服务器,并且已使用jax-ws(用于xml Web服务的java api)实现了代码。您的代码将作为网络服务发布在网址上(例如http://www.myserver/calculator)。
现在您打算如何访问此网络服务?现在客户将发挥作用。假设您已经设计了一个网站www.calculation.com。从那里你需要2个整数输入并使用http://www.myserver/calculator/add进行加法调用你的web服务,http://www.myserver/calculator/subtract用于减法,http://www.myserver/calculator/multiply用于乘法,http://www.myserver/calculator/multiply用于除法。
现在你可以看到你的每个webservices操作addidtion,减法,乘法和除法作为一项服务工作,并且将来可以说你需要在你的网站上放置一个方程求解服务然后你可以重复使用你的加法,减法使用这些链接进行另一项服务的乘法和除法Web服务。在这里,您已经实现了面向服务的体系结构,即SOA。