两个系统之间以什么方式交互数据?

arles7 2014-03-02 11:36:59
加精
问题背景:客户单位现有两个系统:一个是我们A公司开发的BS架构的体检系统。另一个是B公司开发的体检仪器设备数据管理系统(架构不知,可能是CS架构,也可能是BS架构);
需要解决的问题:
1:他们读取我们的数据;在我们体检系统中登记体检人信息的时候,想将部分数据提交到对方的数据库中(不一定要直接提交到对方系统的数据中,只要对方能读取到我们提交的部分数据就行);
2:我们读取他们的数据;因为他们是体检仪器设备数据管理软件,体检人通过仪器检测的数据都在他们的系统中,我们想要将这部分信息读取到我们系统中;


目前自己设想的解决方案:
1:对方提供他们的数据库访问方式、相关表字段,我们在提交时,直接将数据插入到对方的数据库中。我们也可以直接读取对方存储体检数据的表获取数据。(是否存在数据安全性问题?好像直接暴露系统的数据库给别人不好)

2:通过webservice实现。这个方式没用过,网上找过相关资料,但不清楚具体在项目上怎么实现。如果要通过这种方式,我们该提供什么给B公司?B公司提供什么给我们?


希望做过相关的大神给予指导,小弟在此先谢过!
...全文
55710 68 打赏 收藏 转发到动态 举报
写回复
用AI写文章
68 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jinnor 2016-10-31
  • 打赏
  • 举报
回复
最近我也遇到了差不多需求的业务,进来看看大神有什么好的思路!
cmontxgt 2016-10-29
  • 打赏
  • 举报
回复
路过学习了,遇到同样问题了。目前想的到的解决方案如下 1:接口方式 可实现(省上保留下边所有市的数据,数据库压力) 2:中间库方式 3:直接操作对方数据库、不安全,链接不可靠
sichanlanda 2016-10-19
  • 打赏
  • 举报
回复
真心学习了!太谢谢了
cheng0828 2015-10-21
  • 打赏
  • 举报
回复
路过学习一下
才能换薪 2014-09-21
  • 打赏
  • 举报
回复
引用 5 楼 huxiweng 的回复:
1楼大神回复都十分严谨。 针对你的方案: 1、弄个中间数据库C,B他们负责把数据同步到C,你们访问C的数据库。 2、你们将B需要的数据同步到C,B自己去访问C。
版主! 我现在也遇到一个问题,跟您说的的解决方式差不多! 2个系统,可以说是一个老系统A,一个新系统B,同时运行。在A系统注册的用户。在B系统直接可以登陆了。 我的解决方法是:将2个系统间新建一个表。访问用户的时候就访问它! 可是我不知道具体步骤该怎么去做这个事情! 您给分析下步骤如何?
  • 打赏
  • 举报
回复
chenjinghjc 2014-03-12
  • 打赏
  • 举报
回复
大家都是牛人啊!我是来学习的。
999朵玫瑰 2014-03-11
  • 打赏
  • 举报
回复
这个写的不错啊,学习下
wyk7208 2014-03-11
  • 打赏
  • 举报
回复
思路明确,坚决不能对外开放数据库,那怕自己麻烦点,写个中间控制软件提取数据,这个应该不复杂的。
pigpigappleapple 2014-03-10
  • 打赏
  • 举报
回复
,路过学习一下
两点多 2014-03-09
  • 打赏
  • 举报
回复
大神说的很好啊 。
caoqinghua 2014-03-08
  • 打赏
  • 举报
回复
路过学习 两个系统松散连接比较好.用webservice吧.这样双方都开发系统接口.互相影响降到最低.
wad12302 2014-03-08
  • 打赏
  • 举报
回复
接口吧 你们是数据的提供方,但是通过哪种方式提供数据给对方? 是主动推送过去还是等待对方请求
diaoluodexue 2014-03-08
  • 打赏
  • 举报
回复
webservice,wcf,之类的接口服务是正道。 webservice 即web 服务。服务是用来满足他人的需求和功能的劳动,也就是说,你用web服务让其他的系统调用,来满足他们的需求,
MiceRice 2014-03-06
  • 打赏
  • 举报
回复
引用 45 楼 olafo7 的回复:
1:不允许数据的丢失。若体检数据丢失。会给单位带来不良的影响 2:发生的业务必须达到分钟级及以上速度。1个小时客户无法接受; 3:两个系统同机房不同服务器。单位是同一个局域网。网速可以保证;我们是J2EE框架。他们未知 4:两个系统都属于局域网内部使用的系统,不连接外网且数据对于黑客来说没有任何价值。所以安全性不需要考虑。只要能相互传递数据就行。 5:今天我发现B公司以前跟别的系统交互数据都是通过互相往中间表插入数据、获取数据来交互的。这些表我也通过别的途径得到了。但是他们的表字段都是以拼音首字母命名的。完全无法猜测到底代表什么意思,这是目前最郁闷的事情了
不需要考虑安全性,这个节约了不少工作量,但是可能楼主还是过分低估了安全性,我举例:   如果医院的某员工,直接用程序访问服务器(或你开放的WebSerivce接口),然后把数据全都Load出来卖给其它机构,有无问题? 当然,也许你会考虑只允许特定IP或MAC访问之类的防火墙机制来防范,这个再内网也许就差不多足够了。 拼音首字母命名,这个比较符合中国政务信息化系统的建设规范,所以没啥好抱怨的了,只是你接触少而已,看多了自己就能翻译了。但是对方如果不提供数据字典,就显得有点过份了。 跨系统集成,比较推荐非同步接口的集成方案,因为同步接口意味着可能发生故障传播。也就是无论你是WebService还是啥的,调用过去后,人家速度如果慢点点,卡你1分钟你就在那儿等1分钟,直到超时。 所以理想的情况是通过 JMS 或 数据库 层面的这种集成方式;我没啥特别偏好,不过如果用数据库的话,优势是更容易记录状态、审计、时间戳之类的信息,劣势是要设法避免数据交换表无限扩大。 宏观建议的话:交换数据量低、实时性要求高,用JMS(之类的消息队列);交换数据量高、实时性要求低,用数据库。
无情天下 2014-03-05
  • 打赏
  • 举报
回复
引用 5 楼 huxiweng 的回复:
1楼大神回复都十分严谨。 针对你的方案: 1、弄个中间数据库C,B他们负责把数据同步到C,你们访问C的数据库。 2、你们将B需要的数据同步到C,B自己去访问C。
个人觉得这个好一点,没有直接暴露你们各自双方的数据库,没有直接联系,而是通过第三方数据库来交互...也避免了对方系统或者数据库万一出了什么问题,也影响不了你本身系统的运营...
ldw344694003 2014-03-05
  • 打赏
  • 举报
回复
路过学习一下
houshen13828468384 2014-03-05
  • 打赏
  • 举报
回复
引用 43 楼 olafo7 的回复:
[quote=引用 11 楼 houshen13828468384 的回复:] 1、同步有很多种方式,如果你现在急,可以使用文件同步程序。主要看你数据有多大。数据百万左右还行,你生成同步文件。给他们暴露一个linux端口自己来取文件,他们写同步daemon进行同步。 2、webserivce企业级开发比较繁琐,需要一定的经验和时长,如果只是使用简单方法,业务拓展后很难维护。 3、网络交互有很多种方式,hessian也行,rmi也行,甚至直接使用socket,但是这些都有些类似webservice的,要双方企业配合的,沟通成本都比较高,如果有比较大的业务扩展,前期设计要想好。
我们互相交互的数据比较简单,主要是体检编号、体检人姓名、体检结果。所以我当时考虑在URL后跟参数的形式来做,这样我就可以获取到他的数据。问题出在我不知道怎么给他们系统传递数据[/quote] 竟然是内网那安全问题都比较有保障了。实际是这样的,我们提供的方案都是处理数据交换的,你的意思是你不知道怎么弄,这个才是最终问题。我的建议是你先上网弄个daemon试试,简单的如果是内网想速度和稍微安全的话我建议你可以使用hessian,这个就简单,下个包搞定,这是采用二进制 RPC 协议的。用起来很简单。还有数据少,又内网,get方式也行啊。不需要搞的那么麻烦。除非你想学点新内容。
xb12369 2014-03-05
  • 打赏
  • 举报
回复
做接口
陆荃 2014-03-05
  • 打赏
  • 举报
回复
异构系统信息交流可用方式(一般是通过互联网):http,ftp,jms,ws。 数据格式:xml,json,自定义文件。 不建议暴露数据库给外部系统操作。
加载更多回复(47)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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