按照我个人的理解ArcSDE客户端(ArcCatalog)和ArcSDE的应当是关系是Client/Server的关系。者通过分析它的连接机制就可以看出来一些端倪。
ArcSDE是服务端,完成所谓的空间数据库中间件功能,ArcSDE所在的机器是必须有DBMS的驱动的,就是必须装DBMS的客户端。ArcSDE服务器将会直接连接到DBMS(当然DBMS未必需要和ArcSDE在一台机器上,也可以是局域网内或者公网上的DBServer了)。
ArcCatalog之类的客户端(自己用SDE 的JavaAPI,或者C API写的程序也算客户端)通过Tcp/IP通信的机制连接到ArcSDE,所以ArcSDE的机器和客户端可以是异构的系统,即使一个Unix一个Windows也没关系。
如果是这样的话,等于ArcSDE本身的工作模式是标准的3层架构的,抛开二次应用开发的业务数据需要访问数据库来说的话,ArcSDE的客户端本质上连数据库运行时客户端都不需要安装。简单地说就是一个客户端EXE在网络连通条件下通过调用ArcSDE的API就可以完成对远程空间数据的浏览和编辑(当然如果你用AE作显示可是需要AE Runtime的哦),ArcSDE完全封装了对空间数据的访问。