??xml version="1.0" encoding="utf-8" standalone="yes"?> 在螺旋上升的q程中升?/span> --初涉SOA学习心得Q箋Q?/p> SOA的概念范畴之内,service是其核心的部分。那么,什么是serviceQ它与组件有什么不同呢Q?/span>service从本质上来说是一U新的抽象手D,它通过契约描述的方式声明了对外提供的功能接口。与lg相比Q组件注重于自n内部的结构与属性,?/span>service更注重于对外的接口和功能Q组件粒度较?yu),更多的是pȝ技术视图中x的焦点;service_度较大Q通常是系l业务视图中x的焦炏V从lg?/span>service我们实现了抽象层ơ的提升Q我们的开发方式也从编E式向声明式演进?/span> "提纲挈领Q纲丄?Q架构的力量来自抽象和分沅R?/span>SOA的架构方法学虽然可以有着U种不同的实现方式,但是Q以下的架构层次却应该是每一个具体架构中都不可缺的部分?/span>SOA分层架构分ؓ5个主要的层次Q最底层的是q营pȝ层,中间是企业组件层Q?/span>SOA接入层)Q其上是包含了服务、业务编排优化和表示3个子层的SOA层,此外是两个诏通了各个层次的集成架构层?/span>QoS安全监控理层。架构底层的q营pȝ层包括了大部分的企业应用子模块,各个模块有可能是已有的遗留系l,也有可能是待建的pȝQ甚x外购的某U服务。运营系l层之上是用于包装它们的企业lg层。通过包装Q企业组件层企业应用子模块的各功能以service的Ş式发布给SOA层用?/span>SOA层是SOA架构的核心。在服务子层Q各U细_度的服务被l合为富有业务语义的_粒度服务。服务子层之上是业务~排优化子层Q这一子层是实C务流E随需应变Q快速更新的关键Q服务层提供的种U服务在q里按照业务的要求组合成不同的流E,实现对各U企业业务的完善支持。最上面的则是直接和l端用户打交道的表示子层。此外还有纵向诏通各个层ơ的两个层次。其中,集成架构层通过企业服务ȝESB为整个架构提供了l一的集成环境,?/span>QoS安全监控层则在此基础上进一步ؓ架构提供了服务质量、安全、监控和理的基设施?/span> "Z往往只看到美好的前景Q却忽略了道路的艰辛"Q?/span>SOA为我们勾d了一个健壮的、高度可扩展、可伸羃的企业信息系l,它是灉|的,能够快速的适应企业业务的发展和业务程的更新变化。然而,构徏ZSOA的系l本w却不是单易行的Q如果缺审慎的分析、全面的考量和相应的企业理上的支持Q美好的前景很Ҏ(gu)成ؓ市蜃楼、空中楼阁。我们必dSOA的实施作出战略性的规划Q对SOA架构实施q程中的各种角色予以界定和管理,严格的注册登?/span>SOApȝ的核?/span> - serviceq管理其发布与更新?牵一发而动全n"对于复杂的企业系l,理永远是最为重要的环节。(待箋Q?/span> 王青 2006-7-6
参加IBM大赛两月余,我从一个完全的SOA门外汉走入了五光十色、繁华似锦的SOA世界。虽然璀璨的皇冠Ҏ(gu)来说依然是遥不可及,但是Q一路走来,旖旎的风光和自己的心得还是颇值得记录下来与大家分享的。于是,不敢藏私专美Q撰文共享之?/p>
一、SOA论道 "SOA既不是一U语aQ也不是一U具体的技术,它是一U新的Y件系l架构模型,它主要应用于解决在Internet环境下的不同商业应用之间的业务集成问题?企业应用集成的问题由来已久,历经技术的变迁Q其核心的问题依然是以下的两点:一是如何解决不同企业应用系l的数据一致性问题,二是如何实现不同企业应用pȝ之间的互操作Q而最为重要的U束也依然保持ؓ要求在集成的q程中尽可能的保持原有的企业应用pȝ不变。于是,针对q一需求各UEIA技术日新月异、层ZISOA之所以能够成为眼下最为流行的解决Ҏ(gu)有着U种原因Q可是最为关键的原因在下认ؓ在于其抽象层ơ更高,装的粒度更大。在软g设计的领域中Q有着一个颠扑不破的设计原则Q那是Dependency Inverse PrincipleQ当我们的设计所依赖的类或者接口越是抽象,设计的可扩展性和可维护性就好Q能够被复用的能力也p强。更q一步,我们的抽象层ơ越高,对于问题的描q和认识也就远L器的范畴而更加接qhcL常思维的范_q有利于我们更好的设计、实现、调整、维护和升pȝ?/p>
SOA的应用当中,ZWeb Service的解x案得天独厚。SOA架构是一U分布式架构Q如同Q何分布式架构一P其实现的核心在于对于接口的描q语a和系l之间的通信协议。Web Service的WSDL、SOAP以及UDDI为SOA的实现提供了一U完的契合Q基于Web Service实现SOA不仅易于实现SOA的松耦合性和位置透明性,更ؓ重要的是QW(xu)eb Service是基于HTTP协议的,q对于在Internet环境下顺利地I越防火墙实现远E调用格外关键?/p>
"复用和自动化是Y件的生存之道"。SOA的开发是CBD的gl,SOA的粗_度服务lg代表着软g开发粒度不断增大的势Q而SOA中集成架构和基础架构部分更是应用服务器的一U分布式扩展。通过q样的架构分层,使得应用E序设计开发h员和pȝ集成设计开发h员能够把_֊集中在对业务逻辑的分析、徏模和处理上,使得大家无需重新发明轮子?术业有专?Q通过q样的复用,SOA事实上实C软g设计开发的分工。(待箋Q?/p>
王青 2006-7-05
二?/span>SOA论术
--初涉SOA学习心得
Tim听到我的哀嚎,大有同感Q而Linkman也附和到q个"各有Q而e-book无"的感慨当中来了。一片哀鸉K野中Q偶H发奇想Q我们是不是应当l织一个读书会呢?是不是可以在Mq个业务程上发挥团队的力量Q优化流E,提高复用Q变个h知识为团队知识,使得单线E操作ؓ为多U程q发Q来提高我们的效率呢Q?/p>
于是Q立d大伙提出了这个动议。哈哈,大家都十分赞同,q决定由我来负责赯BlackstoneM会的要章E。That's great! 考试一完成Q我来搞定他?/p>
王青
2006-6-27
首先Q由IBM RSA的菜单下“帮?>教程囑ֺ->边学边做”进入,选“Create a WS-I compliant Web service and Java bean skeleton from a WSDL file”开始教E。我在我们的ftp同目录下也附了相同的PDF。教E在讄目参数的时候无法调到前収ͼ参照此doc文档或PDF卛_?br />教程大概分ؓ4个步骤:
Create a Web project
Create, validate and test a WSDL file
Create a Web service and Web service client from a WSDL file
Test a Web service
1.1讄工作环境和创建Web目
在“帮助”菜单下选择“欢q”打开Ƣ迎使用界面。在界面的右下角h的地方单击,昄如图界面Q选择Web Service Developer退出?br />
q样用于创徏WebService的工兯启用?/p>
创徏一个Web目
1、 选择“文?>新徏->其他->动态Web目Q点下一步?br />2、 在弹出对话框中按下图设|参敎ͼ
3、 直接点完成?br />上面已完成了Project的创建?/p>
把项目加入Server
在“服务器”视图下右键单击Websphere Application Server V6.0Q在菜单中选“添加和去除目”,讄如下图:
点击完成?/p>
切换到J2EE透视?br />在窗口菜单下选择“打开透视?>其他”,在列表中选“J2EE”确定?/p>
1.2讄WS-I兼容U别
在“项目资源管理器”视图中右键点击AddressBook目Q选择“属性”,在对话框中选择W合“WS-I”,选择W合U别Q设|如下:
1.3导入WSDL文g
在“项目资源管理器”中AddressBook->WebContent目录中新建文件夹Q命名ؓ“WSDL”。右键单L建的WSDL文g夹,选择“导入”,从弹出列表中选“文件系l”,下一步。在目录中选择RSA的安装目录,在安装目录下扑ֈ以下路径Q假讑֮装在C:\Program Files\QC:\Program Files\IBM\Rational\SDP\6.0\rwd\eclipse\plugins\com.ibm.etools.webservice.tdjava.simple.tutorial.doc_6.0.0\resourcesQ只选择.wsdl文gQ完成。如图:
d后打开AddressBook.wsdl文g应如下图所C:
1.4验W(xu)SDL文g有效?br />右键单击AddressBook.wsdl文gQ选择“验证WSDL文g”。此处ؓpȝ的sampleQ所以直接显C“验证通过”?/p>
2.1创徏AddressBook的Web Service
q一步首先要启动Websphere Application Server。在服务器视图中选择Websphere Application Server V6.0Q点d动。注意:开启服务器需要很长的旉Q且希望不要在启动时出错?br />
创徏Web Service
右键单击刚刚d的AddressBook.wsdl文gQ选“新?>其他->Web Service”,弹出对话框设|如下:
选“没有安全性”下一步?br />在最后一,把WebService 发布到UDDI注册表的选项LQ把所有Check box的勾都去掉。点d成?br />现在QW(xu)eb service和Java bean框架都加q来了。Java框架cdJavaSource文g夹,l定client和W(xu)eb service的配|描q在WEB-INF文g夹中?/p>
2.2dJava Bean框架代码
在JavaSource文g夹中右键点击AddressBookBindingImpl.java源文Ӟ重名名ؓAddressBookBindingImpl_bak.java。这旉目会有文件名与类名不一致错误,不用它?br />同样Q右键选择导入com.ibm.etools.webservice.tdjava.simple.tutorial.doc\resources\AddressBookBindingImpl.java文g替换原来的文件。此目录在上面wsdl文g同一个文件夹中?/p>
2.3试Web Service
我只成功做到q里Q按照教E上的说法, test JSP面可以自动由Web Services向导生成Q如果没有则在生成的AddressBookClient目中选择WebContent/sample/TestClient.jsp文gQ右键选择在Server上运行?br />我没有找到生成的q个jsp面Q所以下面的工作无法q行下去?br />如果启动试Q将会在TCP/IP监视器视图中有所展示Q?br />
希望If会有更顺利地l果?/p>
先到q里
需要注意的是在q里操作时请量关闭其他应用E序Q只开pdf或wordQ最好在另一台电(sh)脑打开文档?br />?sh)脑配置Q?12M内存Q开启Server后大概用?00M以上Q电(sh)脑操作极慢?/p>
田晟
2006-5-13
ESB / In Production
ServiceMix
An open source ESB and SOA toolkit built on the semantics and APIs of the Java Business Integration (JBI) specification JSR 208.
ESB / In Production
Celtix
A Java ESB runtime and set of extensible APIs to simplify the construction, integration and reuse of business components using a standards-based SOA. IONA Technologies is a contributor.
ESB / In Development
open-esb
open-esb.dev.java.net Sponsored by SUN, this will be an ESB runtime based on JSR-208, Java Business Integration technology.
ESB / In Development
JEMS
JBoss Enterprise Middleware System (JEMS) is an extensible and scalable suite of products for creating and deploying e-business applications.
Suite of SOA tools / In Production
ActiveMQ
A fast Java Message Service (JMS) provider supporting clustering, peer networks, discovery, TCP, SSL, multicast, persistence, XA and integrates seamlessly into Java and J2EE containers.
Message Queue / In Production
JORAM
An implementation of JMS. It provides access to a MOM (Message Oriented Middleware), built on top of the ScalAgent platform.
Message Queue / In Production
AMQ
A financial industry focused open-source alternative to proprietary message queuing technology using web services. Sponsored by JPMorgan Chase & Co.
Message Queue / A Proposal
OSMQ
Open Source Message Queue (OSMQ) is a pure Java asynchronous messaging middleware framework with an interface that is less complex than JMS.
Message Queue / In Production
JBoss Messaging/ JBossMQ
JBoss Messaging is a re-implementation of JBossMQ. JBossMQ, which evolved from SpyderMQ, is the current production-ready JBoss JMS provider.
Message Queue / In Production
Axis
A reliable and stable base on which to implement Java Web Services.
Web Services Connector / In Production
Synapse
A service mediation framework built on web services specifications. Contributed to by IONA Technologies Sonic Software, Infravio, Blue Titan, and will be supported by WS02.
Web Services Connector / A Proposal
Sandesha
Allows a reliable communication between web services and clients. An implementation adhering to the WS-ReliableMessaging specification authored by BEA, IBM, Microsoft and TIBCO.
Web Services Reliable Messaging Connector / In Production
RM4GS
RM4GS (Reliable Messaging for Grid Services) provides reliable messaging for web services following the Web Services-Reliability specification supported by Fujitsu Limited, Hitachi Ltd., and NEC Corporation.
Web Services Reliability Connector / In Production
openadaptor
A Java/XML-based software platform which allows for rapid business system integration with little or no custom programming.
Services Connector / In Production
jUDDI
jUDDI (pronounced "Judy") is an open source Java implementation of the Universal Description, Discovery, and Integration (UDDI) specification for Web Services.
Discovery Service/ Pre Production
UDDI4J
UDDI4J is a Java class library that provides an API to interact with a UDDI registry contributed by IBM
Discovery Service Client / In Production
more detail:
http://www.optaros.com/wp/wp_2_soa_oss.shtml
以下是结合了OOAD,BPM和EA的SOAD重要的概念:
Service categorization and aggregation 服务分类与聚?br />服务有不同的用处和目的,SOAD中可以通过executable modelsQ如BPELQ来化其服务的组合?br />Policies and aspects {略与方?/strong>
在徏模过E中服务是具有语法,语义和QosҎ(gu)的。正式的接口合约不单单包括WSDL(Web Services Description Language)Q还包括Ws-Policy{等。同时还d义些非技术的领域专家也可以理解的语言来描q系l的l构?br />Process: meet-in-the-middle 程:上下双管齐下
在处理真实世界的pȝQ包括遗留系l)用上下双齐下的Ҏ(gu)会比单U的自顶向下或者由下向上的Ҏ(gu)更有优势。由下至上的Ҏ(gu)会导致不良的商业服务抽象Q其设计更多是听从于现有系l,而不是去实现现有pȝ或者未来需要的需求。而有向下将会脱ȝ有的pȝ而生不适合的需求?br />Semantic brokering 语义代理
调用语法和语义是在接口定义中十分重要的?br />Service harvesting and knowledge brokering 攉服务和知识代?br />所有服务都是被定义用于重用的。所有服务的是被设计成超q?位用h使用的?br />
q些会是我们在以后设计所需注意的原则?br />