两个不同的软件系统,如何相互提供数据?

cngkqy 2008-02-21 04:57:03
情况是这样的
现在有两套软件,一套我们研发的软件(b/s),一套是另一家公司研究的软件(c/s)。如果我们的软件需要对方的软件提供它们系统里的数据供我们查询,那么用什么方法好呢?

我想了几种方法:
1、一个是对方直接给出它们的表,标明表字段的详细说明,我们自己去查;缺点:我们不知道提取数据的业务规则是什么,虽然数据库里有数据,但是很可能跟它们软件上最后显示的数据不一样。因为显示之前要经过一些业务规则的运算,我们不知道。
2、提供WebService封装好提取数据的方法,供我们调用;缺点:对方还得写WebService接口供我们调用,另外小弟我水平低,只知道WebService是.Net里的,其它非.Net的软件有办法写么?或是它们有自己的类似WebSevice的东西。
3、如果不想让我们知道它们数据库的情况,为了保密,就提供视图,视图里是计算好的数据;缺点:这个好像没啥缺点吧,我是想不出来有啥缺点。
4、我们建好几张表,里边列出想要的数据字段,让对方往里边填。缺点:好像比较费劲,比如说它们的软件里新添了一些数据,那就需要同步往我们提供好的表里也计算好数据插进去。

各位高手们有没有碰到这些情况,你们都采用了什么解决方案呢?希望各位高手不吝赐教,谢谢大家。另外小弟我水平低,如果上边的解决方案很弱智,望各位高手多多包涵。
...全文
429 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxoo2007 2008-02-22
  • 打赏
  • 举报
回复
webservice 是不错的选择,封装性很好.最好结果集使用xml格式返回. 非.net的程序只要可以发送HTTP请求,应该都可以调用webservice的.

开放数据库的办法,如果后期别人的系统修改了数据结构,恐怕改代码会很痛苦.

开放自己的表给别人,一是有风险,二是出错了, 扯皮的机会就会大大的增加.
jfan288 2008-02-22
  • 打赏
  • 举报
回复
当然,通过数据库的开放是最简单的,但是安全性,移植性和业务逻辑会是一个麻烦,以后维护起来很麻烦的。
jfan288 2008-02-22
  • 打赏
  • 举报
回复
相信我,大部分情况下,系统集成webservice是最好的选择。
并一定要.net才可以,什么语言都可以的,webservice只是实现了soap协议,其他语言也有相应的技术,通信的时候只是xml信息,跟语言没关系。
Animatrix 2008-02-22
  • 打赏
  • 举报
回复
用WEBSERVICE
后期维护起来也会方便
yangtzeu 2008-02-22
  • 打赏
  • 举报
回复
1.通过数据库一级的调用应该比较省事(通过对方数据库的存储过程,视图)
2.另外:WebService也可以(与什么语言开发,运行在什么平台上似乎都没有关系),只提供接口,你按照它的借口说明调用就行了
给它参数,它怎么运行就不管了,也管不了
zyug 2008-02-22
  • 打赏
  • 举报
回复
要想省事,就直接把数据库连接.表字段含义告诉它.
给相应的权限比如只读.

折中就给webservic

想要对方便利就写一个dll,
给他引用.通过这个dll来取数据
阿云ivan 2008-02-21
  • 打赏
  • 举报
回复
用webService是最好的
优点:
1、XML通讯,通用
2、成本低
3、后期好维护
4、不破坏架构
5、面向对象,封装性好
。。。
大正他爹 2008-02-21
  • 打赏
  • 举报
回复
用一个中间的数据库
冷月孤峰 2008-02-21
  • 打赏
  • 举报
回复
把需求整理出来,让对方提供存储过程或者视图都可以。
也可以让对方在数据库上加个只有查询权限的用户(权限可以根据情况来定)
winner2050 2008-02-21
  • 打赏
  • 举报
回复
当然是数据库了。

只有数据库才能灵活的应付各种需求。

接口是不可能的,人家根本不知道你要什么功能,客户和你自己都不知道具体需求,一般都是开发过程随时修改。
LGame 2008-02-21
  • 打赏
  • 举报
回复
花钱,
重做,
cngkqy 2008-02-21
  • 打赏
  • 举报
回复
9楼的高手,请问你所说的“通用的模板”是指比如说XML格式的文档么,它存到XML文件里,然后我再查,这样的话,如果数据量一大速度跟数据库比是不是很慢?
feng5799 2008-02-21
  • 打赏
  • 举报
回复
2.WebService封装 ...都可以使用.

4.写一个服务程序,定时将对方数据库里的新数据更新到你的数据库中
wxdxy 2008-02-21
  • 打赏
  • 举报
回复
双方协商罗,不管是xml,数据库双方都要知道
qioudong 2008-02-21
  • 打赏
  • 举报
回复
用一个数据库可以吗,假如你b/s的程序把数据保存进去了,你c/s的程序去读这个数据库的数据
Cherish20 2008-02-21
  • 打赏
  • 举报
回复
前段时间正好做过这方面的工作。
两套软件共享数据,可以通过通用的模板。所谓通用的模板就是你们两家软件提供商,把所需要的数据以某种一致认可的格式存储,而后共用,但一定要注意实时更新。
或者通过数据库,让对方写存储过程,你只要提供相应的参数调用就可以了。
这个和软件是什么语言写的没有关系。
lovehongyun 2008-02-21
  • 打赏
  • 举报
回复
可以通过数据库
也可以通过web service

似乎web service是种不错的选择.
vrhero 2008-02-21
  • 打赏
  • 举报
回复
4楼...此接口非彼接口...完全是两码事...
feng5799 2008-02-21
  • 打赏
  • 举报
回复
2.WebService封装 ...都可以使用.

4.写一个服务程序,定时将对方数据库里的新数据更新到你的数据库中
vrhero 2008-02-21
  • 打赏
  • 举报
回复
约定接口...Web Service只是其中一种选择...对你是最合适的...

对方提供的接口你只管遵守...他如何实现跟你没关系...不必考虑...
加载更多回复(4)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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