Windows.NET下的UDDI开发指南
小气的神
2002.02.28
Article Type: In-Depth
难度等级:5/9
版本:2.03
现在还不能确定下一场争论的焦点是否是Windows.NET,不过从最近的BBS和技术网站上,许多人试图看到这种痕迹。尽管Microsoft的律师信被张贴在许多个人网站上,但似乎有关XP和Office XP的细节已经变得索然无味了。许多个人网站和BBS已不再提供它们的Download和联接,甚至连算号器和激活都被认为是落后和灌水的C类帖。除了有关8in1的XP刻录技巧外,可以看到更多的人群在讨论有关Windows.NET的秘密,相比起来他们更愿意交流相互之间的安装和使用技巧,其实狂热的背后是被号称这个世纪最好的操作系统目前所表现的奇特性能震赫。无论你是否怀旧于九十年代Win98的蓝天白云,但对于上个世纪Win2000 Server的平稳和性能提升给予尊重是我们起码的选择。Windows 2000 SP3的默默无声,使我们感到这个属于上个世纪的软件已快成为过去,继续等待将又是一次可爱而不可信的浪漫复兴,我们固执的以为:这是一个需要了结上个世纪Windows几乎所有不安全因素的终结版本。再多几个补丁显现出的高性能宣传无疑是亡羊补牢似的回光返照。在未来的幻影和真实之间,我们更愿意选择现时的安全,我们怀疑的立场不能改变目前我们对安全的认识方式,所以Windows 2000最后必须不负众望。可以看到从混乱到平安还有很长的路,中途Windows.NET带来了IIS6和 UDDI Service,虽然有些迂阔不经,还是很喜欢其中的dotNET特性,很乐意在上面消磨几个上午或下午,毕竟这是另一个环境的另一种体验。
下面的操作被设定在这样的环境中:Windows.NET 3604 Server, Visual Studio.NET RTM,dotNET UDDI SDK 2.0 Beta,MS SQL 2000 SP2,IE 6.0 2813。有两部机器,一台安装着Windows.NET 3604,我们叫它Datacenter;一台是Windows 2000 ADV Server,上面有Visual Studio.NET和UDDI SDK,我们叫它VSDOTNET。
而我们会陆续做下面的操作:
1. 在VSDOTNET上生成一个WebServices。
2. 在Datacenter上的UDDI Server上登记这个WebService.
3. 我们回到VSDOTNET上验证这个这个登记。
整个的过程我们可以发生在局域网中,当然不可避免的是我们需要阅读一些有关的在线文档(会列在最后)。
我们几乎不会讨论什么是UDDI,tModels,WSDL等等一些概念和名词。
第一个操作是最简单的,可以是你做的一个Hello的WebService,也可以是A+B=C的WebServices,事实上UDDI并不代表会最终调用这个WebServices,最后你会发现我使用ASP.NET生成了一个Hello World作为例子,这样这个操作几乎可以跳过去了,不再多说了。
最后我们需要记录下来我们的链接和准备的WSDL文件(tModel),链接是http://vsdotnet/SOAP/UDDI/RegistUDDI.asmx?WSDL,不过我要对我的命名表示抱歉RegistUDDI太容易让人引起歧义的联想。
第二个操作是向UDDI登记的过程,这里我们遵从[JaN 01]的建议,用手工的方式来进行登记。编程实现将是为了程序化和大量操作的需要,一方面我认为篇幅有限,可以放到目前这个主题之后,另一方面我要责怪Microsoft目前SDK中糟糕的文档说明,整个文档中目前还没有任何组件和API的文档说明。
Windows.NET 3604缺省安装是没有IIS和UDDI Services的,你需要自己在控制面板中进行单独安装,有计划的安装是先安装MS SQL 2000 ,然后安装IIS 6,最后安装UDDI Services(需要说明Windows.NET已自带dotNET V1.0,另外如果没有安装SQL 2000,UDDI的安装程序会自动安装一个精简版本的SQL Server)。安装成功后UDDI被注册到IIS中,并且需要的数据结构会安装在SQL 2000中,另外它会提供一个Client端的SDK,这个Windows.NET中是1.76版。安装完成后,键入http://Datacenter/uddi,你会看到一个和目前Microsoft网站上几乎差不多的界面。不知你是否做过电话薄的程序,从现在开始你可以这样程序的看UDDI过程,整个UDDI Services是一个Web Services,它靠核心的dotNET组件完成对UDDI数据库的操作和交互,用户可以通过Client SDK来进行交互完成登记和查询的需求。而操作上就象一个电话薄应用,可以查询电话薄、在电话薄中加一个条目,修改某个电话登记、删除等操作。只不过我们采用手工的方式来做这些。至于里面电话薄的规格,每条电话登记的格式、查询要求的细节条件和方式,这些都是由UDDI规范定义的。
根据[JaN 01]或[SeE 01]的建议,我们也列出一个同样的登记步骤:
1. Add Providers
2. Add tModel
3. Add Service
4. Add Binding
5. Add Instance
比起[SeE 01]中描述的登记步骤:
1. 添加公司(business)
2. 添加联系信息(Contact)
3. 公司分类
4. 添加tModel
5. 定义服务
的步骤看来,同样的5步,我省略了他不是必要的2,3步,增加了另外必须的两步。这个版本的Add Service有些复杂,所以我决定多用一些图片来说明这些。
第一步Add Providers 相当与[SeE 01]中Add business(目前我们还不能判断最后统一的说法,姑且按各自目前的描述为准),具体的你可以参照[SeE 01]中的描述进行下去,对于Add Contact我忽略了。注意我们需要使用右键功能,点中My UDDI按右键,我们起名叫ccBoy
第二步Add tModel ,这个[SeE 01]也说得很清楚了,照做就可以了,主要是把我们第一个操作准备的WSDL登记进去。同样点中tModel然后使用右键。我们起名叫 Hello
第三步 Add Service ,这里和[SeE 01]说的已经有些不同了,Add Service之后我们需要继续第四步,这里是有些特别的。你需要点击 Providers节点然后右键。我们也起名叫 Hello
第四步 Add Binding,点击上面我们加的Service按右键,添入相应的选项
第五步 Add Instance ,点击上面我们叫的Binding按右键,点击后会弹出一个窗口,用两种方式中的任一种我们都将发现第二步增加的tModel->Hello,选中它确定。
完成这些操作之后我们可以看到一个这样的树形图:
这样基本上我们完成了将第一步生成的WebService注册到Datacenter的UDDI数据库中,我们可以选择Search的菜单然后找到我们登记的一个条目。
未完