室见「本单元终于带来第五回。询问的来信也日渐增多,感谢大家的支持。」
工兵「我怎么觉得大部分是抗议的明信片……『你们不要说云端的坏话啊』、『难道我们公司不算SIer吗?』、『我来把你变成外派员工吧(配音:Demon阁下)』。」
室见「各种询问的来信也日渐增多,感谢大家的支持。」
工兵「转移话题!这个人居然想转移话题!」
室见「那么,本次的问题『请问中间软体(Micddleware)是什么』。来工兵,请回答。」
工兵「咦?中……什么的?粒线体(Mitochondria)?」
室见「IT类的问题单元,怎么会跑出那种细胞器官的问题…我是说中间软体。有时候不是会在案件里出现吗?中介要装什么啦,中介的运用监视项目要放那些啦之类的。」
工兵「……啊啊,这么一讲的确实有印象。梢他们经常在运用业务启动时提到这个字眼呢。」
室见「对对。然后呢?是什么意思?就算是自己想象的也好,说说看吧。」
工兵「嗯……?Middle就是正中间吧?不高也不低。Hightware好像太高级,Loware又变得太廉价了……啊,我知道了!就是中等价格的软件!」
室见「扣一千分。」
工兵「连零分都没有?」
室见「……你的脑袋还停留在背单字的中学阶段吗?真是的,来对照答案吧。先看看这个这张表。」
工兵「嗯嗯?OS和应用程序中间夹了一个中介软件……哈哈,也就是功能上的区隔对吧?如果高阶(近人类)的运算以应用程序处理,而低阶(近机器)的运算则由OS处理,那么中介软体就是用来撮合两者的东西了。」
室见「对对,你很会举一反三嘛。那么另一个问题,为什么要制作这一类的软体呢?既然是重要的功能,直接做在应用程序或者OS里不就好了?为何还要特地独立出来?」
工兵「……还真的一口气跳到这么难的问题……嗯——分离出来的意义吗?分离的话比较能卖钱,工程师的收入也会提高……啊,我懂了。假装成OS的追加功能,然后打算多收一笔钱!可恶,雷德蒙德(注:软件共色所在的,位于华盛顿州)的那群铁公鸡!太卑鄙了!所以我才讨厌大人的世界!」
室见「……你啊,一定超喜欢《锡安长老议定书》货阿波罗计划骗局之类的阴谋论吧。」
工兵「咦,你怎么知道?」
室见「有种直觉……算了,所谓中介软体,就是将企业及其伺服器使用的基本功能模组化的东西如DBMS(Database Manaqement Systems)、分散式运算、资料连结的结构等,价格昂贵,但一般消费者并不会用到,于是从OS当中分离出来。到这里为止听得懂吗?」
工兵「是……」
室见「至于不放在应用程式里的理由很简单。假设你是一个软体开发者。制作两种软体时,你要分别准备两种资料库的结构吗?每当制作心软体时,你都会从头开始编写资料库功能吗?」
工兵「啊……原来如此。也就是说,将常用到的功能分离出来,包装成一个独立软体是吗?大规模的资料管理就交给DBMS分散式运算则交给专用的中介软体。至于应用程式,就专心处理应用程式本身的运算。」
室见「对对,那么,说道这里你有没有联想到另一种很相似的概念?」
工兵「相似的……吗……啊!莫非是——网路的通信阶层?」
室见「没错。那也分为实体层,资料连接层(MAC位址通信)、IP层(IP位址通信)等阶层对吧?各个通信环境分工合作,处理自己所擅长的运算,仅通过特定的参数来交换资讯。虽然领域不同,但是概念都是一样的。」
工兵「哈哈……好像彼此抄来抄去的呢。」
室见「与其说抄袭,这些其实都是人类思考出来的架构。持续不断追求效率的结果,就产生了殊途同归的现象。例如协定组(Protocol suite)和软体架构(Software framework)。所以我才说无论任何事情,基础的学习是很重要的。熟悉一个领域后再加以应用,就很容易就能够了解其他领域了。」
工兵「原来如此。」
室见「那么,为了解阶层化的思考方式,我们用样品来实际学习一下把。把硬体和应用程式比喻为面包、OS是生菜、中介软体是鲔鱼,然后叠起来试试看。樱坂,快去买教材回来。」
工兵「室见你只是想吃鲔鱼三明治吧?」
今天的SE小常识
中介软体为协调OS与应用程式之间的软体。
中介软体的功能仅限于企业和伺服器用途。故并未包含在OS的标准元件内,并且由于功能共通的关系,独立于各应用程式之外、
其分工合作与阶层化的概念,与网络路的阶层区分相似。
学习先放一边,室见似乎肚子饿了。