有关一个多产品设计问题。在线等!

wer2100 2005-03-17 06:16:27
如果我现在有一个产品,前台用asp支持WEB访问,后台为COM+组件,主要为业务组件,最后是一个数据库访问组件,主要是连接数据库。请问如果这样的一个产品,我想在服务器上装多套,也就是每一套产品要对应一个数据库,现在的问题是,组件名称都一样,也就是后台只注册了一套,怎么样让同一产品的不同实例都能访问他对应的数据库。注:安装盘是一摸一样的,实例是在安装时配置,也不希望在
各个组件中用参数来传递,这样产品灵活性太差,耦合的太紧。高手给个意见!
...全文
66 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fool_leave 2005-03-18
  • 打赏
  • 举报
回复
数据库要容易得多,一个库对应于一个端口嘛,实际上你在用的时候也是要指明端口的,这和传参数有什么区别?
wer2100 2005-03-17
  • 打赏
  • 举报
回复
是啊,我都快愁死了,组件不多也算,我们现在已经好几百组件了,这么改一轮,天啊!
你说SQlserver一台机器上多实例是怎么实现的,我不相信,微软会从头到尾的传参数!
fool_leave 2005-03-17
  • 打赏
  • 举报
回复
这样看来配置文件是少不了的。要么一个服务一个配置文件。要么所有的都公用一个配置表。通过不同的代号来区分。方法调用要提供调用者的服务代号,然后再在配置中找到对应的数据库等信息。我觉得也就这样传递的参数还能够相对少一些。其他的方法估计没有!
wer2100 2005-03-17
  • 打赏
  • 举报
回复
是这样,我们原来产品设计是一套产品只能在一个机器上装,前台是web页面,中间是业务组件
所有的数据库访问都是业务组件调用一个公用数据库访问组件来完成的。数据库访问组件会在初始化的时候读入配置文件,根据设置来和指定数据库连接。
现在客户要在一台机器上装几套我们一样的产品给不同部门使用。这样就带来一个问题,数据库组件如果不知道当前组件是被谁调用的,他就不知道该去访问哪个数据库。我们现在的解决方案是在每个调用
后台组件的页面把配置参数传进去,但是这样工作量太大,而且组件间有交叉调用的话,这个配置参数得传递很多次,最后才能进入数据库访问组件中,这样带来我们程序的灵活性很差,所有组件都和这个产品耦合太紧。这样说明白了吧!
fool_leave 2005-03-17
  • 打赏
  • 举报
回复
你还是没有说清楚。如果是一般的方法调用,为什么被调用者需要知道调用者的身份呢?最好把情况说清楚。

还有,怎么样让同一产品的不同实例都能访问他对应的数据库.不明白。在调用数据库组件的时候把数据库信息传进取就可以了。





我做过一个类似的东西。我是这样做的。
A是可以启动多个实例的服务
B是公共服务,只可以有一个实例。
B必须有A的详细信息来做记录。
A的配置里面添加一个ID,B有一个访问类的配置表,包括A的id列。这样也算是松耦合。
wer2100 2005-03-17
  • 打赏
  • 举报
回复
老大啊,我在说清除点,假入同时有两个产品同时被访问,数据库组件怎么能知道是哪个产品提交的请求啊。举例:
公用数据库访问组件为A,
业务组件b 方法B1,B2
业务组件c 方法c1,C2

现在两个产品同时被访问
第一个访问为:b业务组件的方法b1
第二个访问为:c业务组件的方法C1

而C1函数中实际用到了B组件的B2方法,我如果在ASp页面中把产品标识当参数传入他第一个调用的组件
而这个组件又要把这个参数继续传递下去,想想看,这种程序的结构该是什么样啊!
晨星 2005-03-17
  • 打赏
  • 举报
回复
那使用配置文件就是了。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧