** 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 的菜单然后找到我们登记的一个条目。
未完