最近在做一个项目,刚好需要搭建一个UDDI注册中心,查了些资料,也请教了几个牛人,有了自己的一些理解,记录下来:
首先,什么是UDDI?
要理解UDDI,首先要知道SOA, Web Service这些概念,在现在广泛提倡采用面向服务架构的时代,公司、个人都可能开发出许多功能的Web Service出来,那么,这些Web Service怎么样被找到就成了一个问题,于是,MS,IBM等大公司就联合推动制定了UDDI的标准,也就是在互联网成部署了一个UDDI的注册中心,让不同公司的Web Service在上面按照一定的格式进行注册,以便更容易的被发现。当然,只要有了标准,具体是怎样实现并不重要。也就是说,UDDI注册中心不仅仅在互联网有,也不仅仅只能有MS等大公司来搭建,只要你有这样的需要,你也可以搭建自己的UDDI注册中心,来满足你单位内部的需要,只需要按照UDDI的相关标准来实现就可以了。当然了,实现的工具也有很多现成的,比如MS的UDDI Service3.0,及其他一些开源的UDDI工具包等。
说到这里,还有一个关键的问题,那就是UDDI注册中心实际上只是提供了一个注册表的功能,而不是一个数据库的功能!
为什么这么说呢?因为UDDI注册中心实际上只是保存的一些Web Service的描述信息,而具体的Web Service所在的位置,仍然是在服务提供者(就是开发服务的公司或个人)那边的。比如taobao提供了一个Web Service叫做FindGoods,用来查找商品信息,该Web Service的地址是http://www.taobao.com/FindGoods.asmx,那么taobao在UDDI注册这个Web Service时,只需提供一些基本的信息(比如,公司名是taobao,Web Service名是FindGoods,地址是http://www.taobao.com/FindGoods.asmx,以及改服务有哪些接口,哪些参数等等)就可以了,而服务消费者(就是使用服务的人或公司)在UDDI注册中心通过公司名、服务名或分类的相关方式找到改服务的名字和地址,以及相关的使用方法后,就可以直接来使用这个服务了。
所以,UDDI注册中心很像位于网络中的一个windows注册表,注册了各种程序的名字和程序在磁盘上的存放位置,至于你要使用程序,就去存放它的磁盘上执行它,而不是在注册表里执行它,这点一定要清楚!
下次再讲讲让人头晕的provider、bingding、tModel等概念吧!