首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

api跟spi,oracle的jdbc驱动为什么不开源

2013-01-26 
api和spi,oracle的jdbc驱动为什么不开源今天下班后在看jdbc的规范,一不小心又走神,胡思乱想起来我想到一个

api和spi,oracle的jdbc驱动为什么不开源
今天下班后在看jdbc的规范,一不小心又走神,胡思乱想起来

我想到一个规范,其实既是API,也是SPI,只是看从哪个角度来看而已

API是Application Program Interface,应用编程接口

SPI是Service Provide Interface,服务提供接口

API是针对规范使用者来说的,调用



TCP端口默认是1521,这个是公开的。但是具体客户端和server通讯的协议格式是什么,这个是保密的。用户也不用关心,Oracle已经将连接的方法封装好了,提供给用户,比如针对java平台,就提供了ojdbc.jar(同时,也实现了jdbc的规范)

如果ojdbc.jar是开源的,那只要读一下源码,不就知道oracle开放接口的协议细节了吗。这是不必要的,而且也是不安全的

而MySQL当然也是类似的道理,但是MySQL自身都是开源的,所以驱动也没有道理不开源吧

从这个模式我想到,对于C/S架构的应用,其实server-api也就是这么回事:把怎么连接server、提供什么服务封装好,提供给客户端开发者

一般server-api都有2个部分:

1、公开的部分,规范一点的还配有详细的文档,让客户端开发者来调用
2、私有的部分,是用来处理底层细节的,如建立连接,处理协议等等,这部分不是提供给客户端开发者调用的,但是又必须包含在server-api里

热点排行