如何进行子系统间的接口设计和实施

子系统间,例如电信的营业和帐务之间接口的设计如何实施
WTC?
JCA?
SOAP?

有很多整合方案,需要具体分析。

规范子系统间数据调用的重要性

------从子系统间数据交换的角度看软件的效率和代码的可维护性及其他
http://www.csdn.net/develop/author/netauthor/accesine960/

首先请原谅我并不知道WTC、JCA和SOAP是什么,虽然我在讨论这个问题。

我们要明白,现代软件系统一直在不断追求的一个目标就是把系统的实现策略和实现机制尽可能的分离――仔细研究一下现存的那些设计模式,几乎都在遵循这一思想,这个思想才是设计模式不断涌现的动力。所以千万不能为了模式而模式,这样只能陷入设计模式的怪圈之中。

策略和机制分离思想的重要性在于,它指导我们在分析项目的时候应该尽可能的分辨出那些属于策略,那些属于机制,然后再用设计模式来好好的组织这些策略和机制,这样的结果才是设计模式最终想要达到的目标。否则虽然套用了设计模式,但是模式中的策略和机制混杂在一起,模式也将失去它本来的效用,反而会使事情变得异常复杂。

所以,不能一来什么都没有仔细分析就开始想到怎么去套用这些框架了。

sorry,上一贴好像有些偏题了。

子系统接口的设计其实就是子系统之间通信协议的设计。所谓通信协议,它所要达到的设计目标就是当在不同的子系统之间进行通信时不能让通信的双方对通信的内容产生不同的理解,即通信的两方对通信内容的解释必须是精确的、一致的。通信协议要达到这样的设计目标,最重要的是详细分析双方的通信需求,然后最好能得到一个通信原语集合(通信原语这里指那些在语义上经过周密、精确定义的通信规则的文字描述,而不管是谁使用这些语义来实现通信协议,只要他严格按照语义的定义来实现,通信的双方就一定不会对通信内容产生歧义)――这个集合所包含的信息不多也不少,正好能够充分满足通信双方的需要而又不会包含很多其他无用的冗余信息。当然,在实际中没有什么协议是一点缺陷都没有的,上面的要求只是一种理想状态,应该是设计者应该努力追求的目标。

有了通信原语集合之后,接口的设计就基本不成问题了。因为有了通信原语集合之后,接口的形式就已经固定了(因为接口的形式必须符合通信协议的语义要求,而通信原语的语义是原子性的,固定不变的,所以接口的形式也必然是固定不变的),接口设计就不必再费心去考虑各种复杂的边界问题,以便好确定接口形式,而只需要致力于具体的实现即可。

对一个通用、灵活、健壮的系统来说,接口的通用性非常重要,接口的适用面越广,系统越容易升级和维护。而接口的通用性往往和接口语义(通信原语)的完备程度、简洁程度高度相关。所以通信原语的分析就相当重要了。

有了一个定义良好的接口,剩下的实现相对而言就是一个简单得多的工作了。

3Q