BizTalk内部和外部架构 [英] BizTalk Internal and External schemas

查看:60
本文介绍了BizTalk内部和外部架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在网上阅读的内容是,您将外部模式"与内部模​​式"分开,并且从未将内部模式"暴露给任何外部参与者.

I'm reading all over the net that you your separate your "external schemas" from your "internal schemas" and never expose the "internal schemas" to any external actor.

如果我的解决方案仅用作在两个现有系统之间创建松散耦合的消息总线,那么我真的需要任何内部模式吗?

If my solution only acts as a messagebus to create a loose coupling between 2 existing systems, will I really need any internal schemas?

System A makes a Request(Message with SchemaA) to Biztalk

Biztalk Maps SchemaA to SchemaB 

Biztalk forwards request of type SchemaB to SystemB

SystemB returns ResponseB 

Biztalk maps ResponeB to ResponeA

Biztalk routes the result back to System A

我看不到具有内部架构和映射的专业人士:

I can't see the pro's of having an internal schema and map:

SchemaA-> SchemaInternal-> SchemaB

SchemaA -> SchemaInternal -> SchemaB

?

推荐答案

术语 canonical schema 通常用于描述在诸如BizTalk之类的集成机制内部(在上一个示例中为SchemaInternal)架构的创建.

使用规范架构被广泛认为是最佳做法,因为它使BizTalk流控制映射与任何其他"系统的模式脱钩(此处的其他系统可以在组织内部,也可以在组织外部,例如,供应商,客户或合作伙伴系统).这样,如果通过BizTalk集成的任何系统发生更改,则仅仅是外部模式,并映射到需要更改的规范模式.它还可以防止外部模式中固有的外来约定,命名和层次结构差异泄漏到您的内部BizTalk工件中.

Use of canonical schemas is widely regarded as a best practice, as it decouples your BizTalk flow control mapping from any 'other' system's schemas (other system here could be internal to your organisation or external to it, e.g. a supplier, customer or partner system). This way, if any of the systems integrated via BizTalk change, it is just the external schemas, and maps to the canonical schemas which need to be changed. It also prevents foreign conventions, naming and hierarchy differences inherent in external schemas from leaking into your internal BizTalk artefacts.

通常,传入消息到规范模式的转换要尽早完成,例如在接收时,并且类似地,尽可能晚地从规范完成的转换,例如在发送端口图上.

Generally, transformation of incoming messages to a canonical schema is done as early as possible e.g. on a receive, and similarly, transformation out of canonical done as late as possible, e.g. on a send port map.

规范模式(CS)的一种常见情况是,单个编排或消息流对于多个贸易方是通用的(例如,您可能有许多供应商使用不同的系统,但是,所有供应商都提交发票进行处理).在这种情况下,每个新的供应商系统只需要与您的CS集成-无需添加或复制新的处理逻辑-在这种情况下,CS实际上可以减少总体工作量. (在此处 ). CS在其中至关重要的另一个示例是您的企业在交换消息的地方-例如一个医疗行业的交换机将有许多医生和实践系统发送授权请求和发票,这些需要映射并路由到多个医疗基金(医疗救助)系统.

A common scenario for Canonical Schemas (CS) is where a single orchestration or message flow is common to multiple trading parties (e.g. you may have many suppliers with different systems, however, all of them submit invoices for processing). In this case, each new supplier system just needs to be integrated with your CS - no new processing logic needs to be added or duplicated - CS can actually reduce the overall effort in such instances. (The n x m problem is explained in detail here). Another example of where CS are vital is where your business IS switching of messages - e.g. a Medical industry switch will have many doctor and practice systems sending authorisation requests and invoices and these need to be mapped and routed to multiple medical fund (medical aid) systems.

还有FWIW:

    在BizTalk是EAI或ESB方案中的终端解决方案时,例如,IMO CS最有意义.直接集成2个或更多业务系统.否则,如果BizTalk只是大型公司ESB上的一个端点,则可能在内部 使用公司ESB模式,从而将外部模式直接映射到ESB模式(即不需要<如果您在整个企业中拥有良好的变更管理/版本控制机制,则可以在BizTalk中使用另一套CS .
  • 如果您所在行业存在标准架构(例如 EDIFACT ),是否将这些作为内部CS的目标.通常,这些可能与 Canonical 的简单"含义冲突,因为行业模型通常需要冗长才能对文档的所有样式和边缘情况"进行建模.就个人而言,我将确保与上述行业模式之间有一个映射,但会在内部使用自定义模式.
  • IMO CS make most sense in an when BizTalk is the end-end solution in an EAI or ESB scenario, e.g. direct integration of 2 or more line of business systems. Otherwise, if BizTalk is just one endpoint on a larger corporate ESB, then it probably makes sense to use the corporate ESB schemas internally, and hence map external schemas directly to the ESB schemas (i.e. no need for another set of CS within BizTalk, provided that you have a good change management / version control mechanism across your enterprise).
  • If standard schemas (e.g. EDIFACT) exist for your industry, it is moot as to whether it is a goal to adopt these as internal CS. In general these may conflict with the meaning of Canonical as being 'simple', as industry schemas often need to be verbose in order to model all flavours and 'edge cases' of the document). Personally I would ensure that I have a mapping to / from said industry schemas, but would use a custom schema internally.

这篇关于BizTalk内部和外部架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆