cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

soa杂感系列一:色解SCA(reference to qqgroup & articles on network)

米布(8101690) 23:08:08

大家有没有想把 axis 嵌到自己产品中去的?

 

我有一个理想(24332715) 23:08:13

如果SCA构件分布式的部署在多个应用服务器上,那么在装配中

 

我有一个理想(24332715) 23:08:24

SCA的服务结构

 

我有一个理想(24332715) 23:08:35

接口

 

我有一个理想(24332715) 23:08:43

使用WS定义

 

我有一个理想(24332715) 23:08:57

那么装配出来的应用效率是不是很低

 

david(172171) 23:09:12

可以认为SCA的容器是一个bean

 

我有一个理想(24332715) 23:09:47

没懂

 

david(172171) 23:10:52

sca容器宿主在Tomcat,通过sca可以引用其它分布的应用

 

david(172171) 23:11:40

SCA宿主:启动SCA装配过程的系统


米布

(8101690) 23:11:24

 

我能否用 bpel 流程来引用SCA呢?

 

david(172171) 23:11:42

可以

 

david(172171) 23:12:02

这个问题在那个群里已经讨论过了

 

我有一个理想(24332715) 23:12:23

通过宿主进行的引用?

 

david(172171) 23:12:28

 

david(172171) 23:12:30

http://blog.csdn.net/teamlet/archive/2007/03/22/1537510.aspx

 

我有一个理想(24332715) 23:12:37

谢谢

 

david(172171) 23:12:56

从这个图中可以看出 SCA中的componentbpel的关系

 

david(172171) 23:13:52

scacomponent/(composite: cuiyi add)对外提供粗粒度的接口,bpel通过implementation提供细粒度的实现

 

david(172171) 23:14:09

scabpel更高层次的抽象(bpel is implement technology, sca is a component, compent is interfaces, one for expose, another for reference,就是下面的棍/坑说啦,cuiyi add)。

 

我有一个理想(24332715) 23:14:38

bpelSCA的服务实现

 

我有一个理想(24332715) 23:14:45

是一种

 

我有一个理想(24332715) 23:14:50

这么理解对吗?


david(172171) 23:15:10

是的,是其中的一种

 

david(172171) 23:14:57

component只不过是sca装配模型中最基本的组件单元,上面还有compositedomain

 

david(172171) 23:15:36

想用bpel调用sca是可以的,但是大才小用了

 

david(172171) 23:16:45

实现包括 , C++, PHP, Java Script, BPEL, SQL, XQuery, Compositeruby

 

david(172171) 23:17:12

当然还有java

 

我有一个理想(24332715) 23:49:42

SCA Component 它有一个壳上ServiceReference,property壳里边包含的东西连接着ServiceReference,property,壳里边的东西就是这个Componentimplementation(not exactly, cuiyi add)implementation可以是很多东西,javac++等等什么都行,这么理解对不对。

 

两块田(7739638) 23:52:39

很对

 

我有一个理想(24332715) 23:56:40

壳上的Service就是指出来的棍(凹进去的坑,引用找服务,就像棍插坑,cuiyi add),Reference就是凹进去的坑(凸出来的棍),棍插坑,坑插棍,几个连一起,还有坑还有棍这时候是合成组件(Composite),对不?

 

两块田(7739638) 23:57:14

说得有点色了~:)

 

我有一个理想(24332715) 23:57:23

哈哈

 

我有一个理想(24332715) 23:58:33

再整几个只有棍的,还有只有坑的,把Composite的棍和坑插满,就是系统域(Domain)

 

两块田(7739638) 00:11:24

兄弟研究棍和坑研究得挺深啊.

 

我有一个理想(24332715) 00:11:38

 

两块田(7739638) 00:12:02

重要的是可以插进去,插出来又可以用到别的坑里~:)

 

我有一个理想(24332715) 00:13:48



the following add by cuiyi, 系引用


开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段和工具。 

“开-闭”原则的定义

定义:一个软件实体应当对扩展开放,对修改关闭。
( Software entities should be open for extension,but closed for modification)。

在设计一个软件系统模块的时候,应该使这个模块可以在不被修改的前提下被扩展,或者说,可以在不必修改原来代码的情况下改变这个模块的行为。

满足“开-闭”原则的系统的优点

1)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性。
2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性。
具有这样两个优点的系统是一个在高层次上实现了复用的系统,也是一个易于维护的系统。

“开-闭”原则的实现——抽象化

面向对象编程语言可以使用抽象的方法,为系统定义一个不再更改的抽象设计来作为系统的抽象层。这个抽象层覆盖了所有未来可能扩展,因此在任何情况都不会改变。这样使系统的抽象层保持不变,从而满足了开闭原则的第二点:对修改关闭。

由于从抽象层导出的一个或多个具体类可以改变系统的行为,因为系统的设计对扩展是开放的,从而满足了开闭原则的第一点:对扩展开放。

在SCA框架中,无论在commonj还是SPI;无论是composite还是component,都可以看到开闭原则的应用。

remark by cuiyi

I feel Component in SCA just a restriction according to DP, so exposed as interface or web service description language (XML), just made DP a restriction to developers, meanwile, the systems developed on it can be more extensice and integratable; 即:
SCA 提供一个以与技术无关的方式定义接口、实现和引用的模型,从而使技术人员能够将这些元素绑定到所选择的某一技术的特定实现。

例如,我们可以用 Java 定义我们的接口,将我们的实现作为 BPEL 流程加以应用,或者将接口作为一个 WSDL 文档,而且我们的实现可以是一个 Java™ 类。下图 演示了如何在 IBM WebSphere Process Server 中使用 SCA。
图. WebSphere Process Server 中的 SCA




SCA的目的是使用户在构建企业应用时有一个不再直接面对具体的技术细节的层次,而是通过服务组件的方式来构建应用。这种方式也使得客户的企业应用具有良好的分层架构,能够很好的分离应用的业务逻辑和IT逻辑,不但易于应用的构建,也易于应用的更改和部署。 

○分离业务逻辑和技术实现逻辑
○业务过程由松散耦合、可重用的组件或服务组成
○组件或服务与平台和实现无关



实际上呢,其就是对现有技术的再一次包装,达到真正的屏蔽语言,我们来看看SOA规范理念,是如何达到屏蔽和包装的:
The image “http://gocom.primeton.com/uploads/FCKUserFiles/Image/1.JPG” cannot be displayed, because it contains errors.
SCA规范包括了Assemble Model和Client Model两部分。
前者约定了如何将异种组件(Java类,BPEL,WebService)组装并发布成SOA服务,这也是SCA最大的特点和最核心的概念;
后者则约定了如何在异种语言环境中调用SOA服务。
那么,通过这两部分的规范,就可以完全解决了服务从服务端到客户端的跨语言、跨实现技术的问题。

其即将推出的DAS规范,也无非是我们现有技术的再次包装,理念图如下:
The image “http://gocom.primeton.com/uploads/FCKUserFiles/Image/9.JPG” cannot be displayed, because it contains errors.
这样,客户端看到的只是DataGraph中的DataObject就是我们说的SDO,而不再需要去关注或者操作所谓的JDBC等连接数据库的、以及JCA等连接手段获得的数据入口了。

于是我们看到了,SOA通过SCA、SDO对现有技术进行了再次包装或者屏蔽,从而达到了一个 大一统 的局面,但是尚未知对于大多的开发者来说这是否是一个好的消息。

不过通过如下,我们发现并不是如此的悲观:
goCom SCA规范综述


posted on 2007-05-06 00:35 crazycy 阅读(1229) 评论(2)  编辑  收藏 所属分类: SOA、WebService、BPEL

评论

# re: 色解SCA(reference to qqgroup & articles on network)  回复  更多评论   

SCA对于开发人员来说应该也是个非常不错的东西,至少在基于SCA这样的产品上实现企业应用集成会更加的实际..
2007-05-06 17:07 | BlueDavy

# re: 色解SCA(reference to qqgroup & articles on network)  回复  更多评论   

@BlueDavy

尚未接触到企业应用集成的需求,针对目前项目和需求,用开源产品spring等已经足以胜任,呵呵
2007-05-06 20:09 | crazycy

只有注册用户登录后才能发表评论。


网站导航: