全文于2008年9月8日发布于TechTarget中文站上:http://www.searchsoa.com.cn/showContent_13437.htm?l=ok&d=365 摘要 如果应用逻辑是以服务的形式暴露出来的,那么你不用担心其下层语言或平台,你只要根据WSDL契约生成SOAP请求、或直接调用一个REST访问点即可访问服务。无论你用哪种方式访问服务,你都看不出服务背后是什么语言或平台,而且你用什么语言来访问它也无关紧要。然而,在某些环境下,你在客户端或服务端所使用的语言能够有助于服务的设计, 比方说并发环境。下面我将围绕并发环境、以及Erlang语言是如何致力于处理并发行为的进行讨论。 并发(concurrency)是计算机科学里的一个经典问题。实际上,它是编程基础课里较早讲到的一个概念,一般我们是通过“哲学家进餐”问题来讲解并发的。简单地说,如果同时执行两个逻辑序列或进程,而且它们有冲突的可能,那么就会出现并发问题。 这些情况在图形界面编程里很普遍:若没有考虑到并发,就有可能导致鼠标光标“锁死”或“乱晃”——因为鼠标移动与应用逻辑是同时执行的,这可能会导致潜在的冲突,因而造成上述问题。另外,面向多处理器或多核处理器(它跟多处理器具有同样的效果)的应用也同样存在并发问题。为了利用这些资源,应用在设计时就要把并发考虑进来。 <以下略>