中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > Java与XML
SOApbox @ JDJ
作者:未知 时间:2005-08-10 18:50 出处:Java频道 责编:chinaitpower
              摘要:SOApbox @ JDJ

Yes, I know it's corny, but I've had a few things on my mind regarding service-oriented architecture, component-based development, and even the infamous enterprise service bus. (Hey, at least the title isn't "Get on the Bus"). All of these have something to do with Web services. None of them are "Web services," at least not entirely. And yes, you guessed it, they're all part of this month's focus

So what's the difference between SOA, ESB, and Web services? For starters, Web services is mainly about technology. Service-oriented architecture is mainly about design (although it has to be based on some technology, and Web services is a very good fit for SOA). Enterprise service bus is halfway between technology and design, and focuses on the transmission of messages between applications within an enterprise. Sometimes it uses Web services, but just as often you see people talking about ESB while speaking of protocols such as JMS, without the use of WSDL or UDDI, or even XML.

The enterprise service bus concept hinges on the passing of messages, so it's not surprising that the leading message service software providers are the strongest advocates of an enterprise service bus. It ties into Web services in the sense that Web services provide the ideal API layer for describing messages without binding them to a particular transport (that gets done under the covers by the messaging software, of course). Frequently, ESB discussions will also include some form of business process management product, either a true BPM capability, a workflow engine, or even some sort of sophisticated routing and tracking mechanism. Or even a combination of all of the above.

Enterprise service bus concepts diverge from Web services in that they don't truly adopt the Web services standards throughout, and they have a message-centric approach to interaction that largely rules out the RPC style of communication that is also a part of Web services. You'll see the use of WSDL, but perhaps not SOAP. You may see BPEL, or you may see some proprietary BPM tool. You probably won't see WS-Transaction, or WS-Orchestration. A lot depends on the vendor. As I said, it's a similar idea, but it's not quite Web services.

Service-oriented architecture is even more divergent from Web services. In theory, you could create an SOA without any Web services technology. In fact, that's been done several times, with technologies such as DCE and CORBA. Service-oriented architecture is about software design centered on services. The goal is to reduce redundancy, increase software reuse, and loosely couple applications (the things the end user interacts with) to services (the things programs and computers interact with). SOA is not nearly as focused on interoperability and intercommunication, except as needed by the enterprise. For example, in an all Java shop there's no need to do SOAP and WSDL. Granted, those shops are few and far between - it's much more common to have a mixed environment, which usually leads to the adoption of Web services as the underlying technologies for implementation of a service-oriented architecture.

Service-oriented architecture provides an overall design philosophy that can be layered on top of Web services, to the benefit of all users. It leverages best practices and experiences from past attempts at distributed computing, and integrates the technologies of Web services into an overall design methodology that can be employed at the enterprise level.

Component-based development is the concept of assembling applications from pre-designed components rather than monolithic programs, or even from objects. Remarkably similar to the concept of services, but with the limitation of being bound to a particular platform, and possibly even language. In many cases, components can become the building blocks from which Web services are created.

So they all tie together in a nice little package. Build your components, put a Web services interface on them. Create the services based on a service-oriented architecture and utilize an enterprise service bus to ensure communication. Add water, stir, and simmer for several hours. Then let cool and serve.

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有