基于SOA的操作系统

        这天清早我在一个面包店吃早餐。由于某种原因,我的笔记本电脑运行得不是很好,我首先想到的就是它的操作系统有问题。突然,我意识到:要构建一个操作系统,就像要试着预料以后将安装在其上的各种应用程序的行为。这实在是一项艰巨的任务!

  这引发了我对服务基础架构(Service Infrastructure)与应用基础架构(Application Infrastructure)的一些思考。我们经常用城市规划来比喻服务基础架构与应用基础架构之间的区别和联系。应用基础架构就像是要建一座摩天大楼,人们关注的是让这座大楼不会倒塌以及水暖管道、电线布局合理等等。而服务基础架构则更类似于城市规划中的交通控制、房屋拆迁、治安维护等与建筑之间的相互作用相关的方面。这个比喻清晰地描述了服务基础架构与应用基础架构之间的区别。不过,经过仔细考虑,我意识到这个比喻也同样适用于操作系统与应用程序。

  只是操作系统的作用更重要一些,底层操作系统是任何应用程序运行良好的基础。我们可以在一个偏远的地方建一座摩天大楼,并保证它不会倒塌。当然了,肯定会需要铺设一些电缆将它与城市的电网连接起来,还有一些其它的工作,但这些都是可以做到的。而操作系统需要提供一些关键性的服务,比如监控、事件管理之类的共享服务。更为重要的是,要以一种应用程序提供商可以利用这些服务来增值的方式提供这些服务。从这个角度来说,操作系统触及了一个基本的问题,一个对面向服务的架构(SOA)来说极为重要的概念,即,通过开放标准获得灵活性。如果我在Windows上构建一个应用程序,我拥有用于日志记录、打印等功能的特定API(操作系统领域的构件块进程);但是在OSX或*Unix上,这些构件块虽然存在,却是以不同的方式公开的。正是由此而造成了Java以及虚拟机的出现,但是这实际上仍然不够灵活。如果能够在计算机中安装应用程序“块”或服务,然后通过某种组合方式将它们连接在一起,从而构建一个应用程序(比如说,一个图像呈现应用程序),那岂不是很好?设想一下,如果我发现一个很酷的编辑服务,我喜欢它从照片中消除红眼的方式,但是不喜欢它的缩略图视图。我只需从另一个供应商那里获得我喜欢的缩略图视图,然后将其作为服务安装到我的操作系统中,然后通过一个组合向导将二者结合起来,就构成了我想要的应用程序,这是多么美妙的前景啊!

  这正是人们努力实现的SOA天堂:互相交织的结构,灵活得远远超过提供者最初的设想,足以用于完全不同的方法中。现在一些制造商已经开始沿着这个方向努力了,他们掌握了以一种全球的芯片制造商都可能无法想象的方式将服务(如电池、硬盘驱动器)集成到用于笔记本和台式机的实时自动配置系统的技艺。软件灵活性很难实现,但是没有灵活性就无法适应可能发生的变化。

  正如Geoffrey James在Tao of Programming(中文译名:《编程之道》)中所说:

  如果道是完美的,那么操作系统就是完美的;

  如果操作系统是完美的,那么编译器就是完美的;

  如果编译器是完美的,那么应用程序就是完美的;

  当用户心满意足时,整个世界因此而变得和谐。

  (If the Tao is great, then the operating system is great.

  If the operating system is great, then the compiler is great.

  If the compiler is great, then the application is great.

  The user is pleased, and there is harmony in the world.)

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值