NGOSS是什么?

09-05-23 banq
                   

NGOSS是电信行业的所谓至高标准和方法论,关于背景网上可以查到,我不多说。

NGOSS的Business Contract来自OO领域的一个BPC设计思想,这个我已经在另外一个帖子说了,并阐述了它和Evans DDD这些真正设计方法思想的区别和联系。

http://www.jdon.com/jivejdon/thread/36303.html

其实如果掌握本站推荐的四色原型(有颜色的UML)和Evans DDD,对NGOSS理解会相当容易,可以说NGOSS就是这两个方法论的融合,当然又进行具化模板化,结合架构平台的一个中间东东。

这里,我们需要掌握逻辑哲学的一个基本原理,如果一个学问具化了,那么就在泛化上有缺陷,如果一个学问有模板了,就会在抽象灵活性上有所丧失,这个其实从OO基本概念的接口与继承区别看出来,也就是GoF设计模式中模板模式的局限,也就是Java中抽象类的局限,所以,我们都是尽量用接口替代抽象继承。

NGOSS试图在走模板 具化 继承这样的逻辑思路。虽然它宣称自己是框架的框架,元数据的元数据,实体的根实体,看到这些名词,你是否想到原来还有比如来佛更神通广大的佛啊?如果一个理论宣称到可能四海之内皆准的地步,你是否要有所怀疑了?它为何要如此强势?

其实,框架的框架就是人,实体的根,就是实体的设计者本身,我们人类的智慧,到现在,我们人类还没有设计出一个与我们自己智慧平齐的智慧理论体系来,所以,NGOSS有些忽悠大师之嫌哦。

首先我们用现有的人类智慧的思想方法来解剖NGOSS,这些就是OO理论典范:MF的分析模式 四色原型 和DDD以及DBC等等。

MF分析模式对Party组织人进行了特别建模分析,认为可以总结出一种抽象模型,所以,我们容易对NGOSS中的Party有一个认识。

Party在四色模型中可以演变为一个系统的参与角色Role,四色模型认为,任何一个软件系统都可以分解为四种颜色,这四种模型其实表达了业务交互的一种需求,也就是NGOSS中的BusinessInteraction,BusinessInteraction认为:服务、商品、规格Specification和角色发生业务互动,在四色图中,我们可以认为服务就是MI,而商品 规格可以认为是Thing或DES,四色图是告诉我们:什么人对什么事在什么地方做了什么行为,产生什么结果,BusinessInteraction就是明确地具化告诉你:什么人对什么商品在什么地方提供了什么服务。

至于NGOSS中根实体模型,我们就不必太在意,我前面说过,实体的根就是Evans DDD的实体模型,通过DDD建模方式,我们就可以把实体一个建立出来,就像Java中有一个抽象Object,每个对象都要继承实现,你觉得它有意义吗?用了它你就掌握OO分析设计了?

NGOSS中常提的Aggregate Business Entities (ABE),这个聚合和DDD的聚合是类似的,可以认为是通过DDD建模后的聚合实体,但是DDD在聚合基础上,指出聚合根和边界的重要性,这个对于NGOSS的ABE中那么多实体重要性界定也是有指导作用的。下图是ABE图:

NGOSS还展现了市场销售 商品服务具体子领域的建模,这些其实都是四色原型和DDD在具体应用领域的应用,可以看到四色原型原书中在ERP等领域具体应用,那么你做ERP设计开发的,这个书籍你就要看,同样,如果你做电信移动运营软件OSS/BSS等开发,那么NGOSS也需要看看,但是因为它具化到OSS/BSS这个与ERP同级的应用领域,必然有其因为具化带来的缺乏灵活性。就不能妄自再称为框架的框架。一个不灵活的框架的框架真的会成为框死你的架子。最后一张图是我结合四色模型和DDD画出的货运系统的简单领域图,如果再复杂起来,就成为一个物流行业的标杆图了。

无论如何,我们一定要坚持每个具体业务不能被任何所谓伟大的思想方法限制,这些思想方法框架都是我们用来分析设计自己业务的工具,而不能凌驾于我们的独特的业务之上。

[该贴被banq于2009-05-23 10:27修改过]



                   

banq
2009-05-27 14:31

学习NGOSS,如果直接从产品 服务入手,那么很容易范数据和行为分离的问题,导致服务庞大,而资源 产品变成数据实体,变成失血模型,这是对象大师Martin Fowler反对的。

由于NGOSS不同于DDD,不是一种直接将分析模型和设计模型和实现模型统一的方法论,而NGOSS本身肯定来自对象路线,如前面讲的SIP的Business Contract,来自DBC,是十分注重对象的行为的,并且对对象行为进行分类:义务和权力,通过不变性来维持聚合体生命周期。

banq
2009-07-21 15:22

很多人认为NGOSS最佳实践是SOA,我认为最佳实践是REST,因为NGOSS重视状态和业务流程,而REST也是状态和流程为擅长,而SOA只是侧重组件整合。