简体   繁体   English

两个应用程序之间的通信,SSIS是否可行?

[英]Communication between two apps, is SSIS the way to go?

working with a team of more traditional developers we came across this situation: 在与更多传统开发商的团队合作中,我们遇到了这种情况:

We have a growing number (two right now) of apps that will be accessing some common data inserted via the ui of one of the apps, which could be called the main administrative app. 我们有越来越多的应用程序(目前有两个),这些应用程序将访问通过其中一个应用程序的ui插入的一些通用数据,这可以称为主管理应用程序。 Since the other apps just need some of the data or needed formatted with a different schema, one of the solutions brought forward is to have a database per app and a sync job running with a certain frequency that updates the data from one db to the another. 由于其他应用仅需要一些数据或需要使用不同的模式进行格式化,因此提出的解决方案之一是每个应用都有一个数据库,并以一定的频率运行同步作业,以将数据从一个数据库更新到另一个数据库。 。 Being this a common SOA scenario I was too quick to discard this solution in favor of a service oriented one where the data is stored in one main repository and accessed via exposed services. 在这种常见的SOA场景中,我太快放弃这种解决方案,而转向面向服务的解决方案,该解决方案中的数据存储在一个主存储库中,并可以通过公开的服务进行访问。

So, I'd like to read your thoughts as I think I could be biased in favor of relative new technologies and might not be appreciating the value in more traditional solutions. 因此,我想读一下您的想法,因为我认为我可能偏向于相对的新技术,而可能不会欣赏更传统的解决方案中的价值。

My advice when choosing a technology is to really weigh the pro's and con's. 在选择技术时,我的建议是真正权衡利弊。 "New" vs "Old" can get you in traps all of the time. “新”还是“旧”可以让您始终处于陷阱之中。 There's always going to be a hot new buzzword for something or other out there at any given time and it may or may not be a good way to go. 在任何给定时间,总是会有一些新事物成为热门词汇,这可能是也可能不是一个好方法。 So let's analyze: 因此,让我们分析一下:

Pro's of an SSIS package vs. a Service: SSIS软件包与服务的专业版:

  • You can transform your data into your destination databases to conform to your referential integrity relationships. 您可以将数据转换为目标数据库,以符合参照完整性关系。
  • It's easy to access and modify your existing applications to access this data. 访问和修改现有应用程序以访问此数据很容易。
  • If you have a small amount of data to transform, this job will run quickly. 如果您要转换的数据量很少,此作业将很快运行。
  • The SSIS package is a nice, centralized place to debug data transformation problems. SSIS包是调试数据转换问题的好地方。
  • Security can be easier by transforming the data with SSIS. 通过使用SSIS转换数据,可以使安全性更加容易。 You don't have to worry about potential issues such as Kerberos delegation between service to service. 您不必担心潜在的问题,例如服务之间的Kerberos委派。
  • Accessing the data itself at the destinations will be much faster because you don't have to make another service request. 在访问目的地的数据本身会快很多 ,因为你不必再拍服务请求。 You can just join to the data already in your database. 您可以只加入数据库中已有的数据。

Con's of an SSIS package vs. a Service: SSIS包与服务的缺点:

  • You don't have real-time access to your source data at your destinations. 您无法在目标位置实时访问源数据。
  • If there's a large amount of data, or if this package is poorly written, it can take a long time. 如果有大量数据,或者此程序包的编写不正确,则可能需要很长时间。
  • If you have a rapidly growing number of destination databases, you will have to modify the SSIS package often. 如果目标数据库的数量迅速增长,则必须经常修改SSIS包。
  • You can set up your own security mechanism with the service, such that you can control and audit access to its information. 您可以使用服务设置自己的安全性机制,以便可以控制和审核对其信息的访问。
  • If your destination systems need to write back to a central source, merging all of this back together with SSIS can be a real pain. 如果您的目标系统需要写回中央源,那么将所有这些与SSIS合并在一起可能会非常麻烦。

So I boil it down to this: 所以我将其归结为:

If you're writing back to the centralized source, or you can't have any significant latency between updates, a service makes a lot of sense. 如果您要写回集中式源,或者两次更新之间没有任何明显的延迟,则从某种意义上说,服务是有意义的。 Otherwise, favor copying the data with SSIS. 否则,建议使用SSIS复制数据。 At my place, we use SSIS to transform our user data and import it into our systems' databases, but we use services to implement a organization-wide logging infrastructure. 在我这儿,我们使用SSIS转换用户数据并将其导入到系统的数据库中,但是我们使用服务来实现组织范围的日志记录基础结构。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM