1996年的美国,互联网已经很发达了。但是互联网技术并没有跟上。企业仍然封闭在自己的信息化世界。虽然有CORBA、COM+、RMI/EJB这些技术模型在支撑,但向互联网公众提供信息服务,而非上下游合作伙伴提供信息服务,CORBA、COM+、RIM/EJB仍然在穿透防火墙和通用数据格式传输上
未来SOA时代计算环境
应用软件运行需要基础设施。首先是基础硬件设施,几十万台PC的集群如何虚拟文件系统和计算资源分配,这就是云计算(Cloud Computing)要解决的问题。现在云计算是个热门,Yahoo、Google、IBM、微软都在研究和建设。但微软慢了一步(微软在互联网计算上一直不敏感,总是用传统软件的方式看互联网),所以WFS没有出来(可能没想通作为集群中的一个节点资源,如何加入集群,与集群同构,还能符合个人桌面计算管理)。
有了云计算硬件基础,还需要数据存取软件基础。有了分布式文件系统,文件存取应该没什么问题,但关系数据的存取,这是现在所有数据库产品都没有解决的。Amazon看到了机会,推出了S3服务。全球互联网就是个超级计算机,而S3就是这个计算机上的数据库。
而所有的SOA应用,都必须在一个容器中运行,否则,有外界调用这些服务,这些服务运行中使用的资源谁来管理呢。很多人不明白容器是干什么用的,不明白中间件的来历,也不明白为什么JAVA和.NET都要做容器。如果你做应用,你自己还要负责那么多底层的分配与释放与并发,那么你做的既不专业,也累,也不稳定,不如交给系统商去管理。容器负责内存、资源的分配、调度、回收,负责安全,负责事务,负责并发,负责池化。而这些SOA服务,也必须能随时升级,就必须具备软件热插拔的功能。现在热的OSGi研究就属此类。
有了这些基础设施,我们的应用就必须SOA化,成为软件服务,让所有人来使用。使用者一方可能是一个C#写的客户端,可能是一个PHP网站,可能是一个JAVA网站,也可能是一个FLASH。
全球大大小小的公司提供了这么多Open API,如何调用。用各自的语言:JAVA?C#?PHP?Javascript?
我想会产生一种新的语言来组织这些Open API,而不是这么技术化的程序员使用的开发编码语言。它,会是DSL,即Domain Specific language。它可能会高于Javascript,但和Javascript类似,但又低于JAVA、C#这些重型开发语言。但它肯定是动态语言。这样随时改变流程,随时改变应用。这就是业务敏捷。这就是我预想中的未来SOA时代计算环境。
你还在用传统的业务基础平台思路搭建企业管理软件架构吗? 未来SOA时代,未来软件服务化时代,你,准备好了吗?
后记
20%的企业在上第一代系统,不需要SOA。但软件产品提供商需要考虑SOA,以防未来的集成。但现在对于企业没有需求,不会因为SOA加分买单。
30%的企业在全部替掉第一代系统,不需要SOA。但软件产品提供商需要考虑SOA,以防未来的集成。但现在对于企业没有需求,不会因为SOA加分买单。
30%的企业在整合自己内部的第二代系统,可能需要SOA,但实质上采用的少。但软件产品提供商需要考虑SOA,以防未来的集成。客户可能会因为SOA加分买单。
10%的企业在整合自己的上下游,需要SOA。
10%的企业开始为最终客户提供信息交互服务,如同我们看到的Google API一样,需要SOA。
现在关注和编写SOA时机正确吗?正确,因为你看上面的比例,有50%的企业有SOA需求。
但如果你面临的客户市场恰恰不是这50%,而是另外的50%,那么奉劝你继续做好现在的产品,SOA还不需要。
网友评论