<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鐵手劍譜

    上善若水
    數(shù)據(jù)加載中……
    Web和Services, 能混為一談嗎?
    以下是Ted Neward的一個(gè)blog,旨在陳清多年來一直可能混淆的概念,即“Web Services”是一個(gè)東西嗎?
    他認(rèn)為,其實(shí)人們可能都混淆了,Web代表的是互操作性,而Services則是代表一種設(shè)計(jì)理念,即獨(dú)立的、自治的、無耦合的組件模型。而“Web Service”僅是其中的一種結(jié)合方案而已。
    頗有見地。
    下面是摘錄的原文,其中精彩之處予以標(biāo)出:原文可訪問 http://www.neward.net/ted/weblog/index.jsp?date=20050525#1117011754831

    Web + Services

    A lot has been written recently about Service-Orientation and Web services and REST and the massive amounts of confusion that seem to be surrounding the whole subject. After much navel-contemplation, I'm convinced that the root of the problem is that there's two entirely orthogonal concepts that are being tangled up together, and that we need to tease them apart if we're to make any sense whatsoever out of the whole mess. (And it's necessary, I think, to make sense out of it, or else we're going to find ourselves making a LOT of bad decisions that will come to haunt us over the next five to ten years.)

    The gist of the idea is simple: that in the term "Web services", there are two basic concepts we keep mixing up and confusing. "Web", meaning interoperability across languages, tools and platforms, and "services", meaning a design philosophy seeking to correct for the flaws we've discovered with distributed objects and components. These two ideas, while definitely complementary, stand alone, and a quick examination of each reveals this.

    Interoperability, as an idea, only requires that programs be written with an eye towards doing things that don't exclude any one platform, tool or technology from playing on the playground with the other kids. For example, interoperability is easy if we use text-based protocols, since everybody knows how to read and write text; hence, HTTP and SMTP and POP3 are highly-interoperable protocols, but DCOM's MEOW or Java's JRMP protocols aren't, since each relies on sending binary little-endian or big-endian-encoded data. Interoperability isn't necessarily a hard thing to achieve, but it requires an attention to low-level detail that most developers want to avoid. (This desire to avoid low-level details isn't a criticism--it's our ability to avoid that kind of detail that allows us to write larger- and larger-scale systems in the first place.)

    This "seeking to avoid exclusion" requirement for interoperability is why we like using XML so much. Not only is it rooted in plain-text encoding, which makes it relatively easy to pass around multiple platforms, but its ubiquity makes it something that we can reasonably expect to be easily consumed in any given language or platform. Coupled with recent additions to build higher-order constructs on top of XML, we have a pretty good way of representing data elements in a way that lots of platforms can consume. Does interoperability require XML to work? Of course not. We've managed for the better part of forty years to interoperate without XML, and we probably could have kept on doing quite well without it; XML makes things easier, nothing more.

    Services, on the other hand, is a design philosophy that seeks to correct for the major failures in distributed object and distributed component design. It's an attempt to create "things" that are more reliable to outages, more secure, and more easily versioned and evolvable, things that objects/components never really addressed or solved.

    For example, building services to be autonomous (as per the "Second Tenet of Service-Orientation", as coined by Mr. Box) means that the service has to recognize that it stands alone, and minimize its dependencies on other "things" where possible. Too much dependency in distributed object systems meant that if any one cog in the machine were to go out for some reason, the entire thing came grinding to a halt, a particularly wasteful exercise when over three-quarters of the rest of the code really had nothing to do with the cog that failed. But, because everything was synchronous RPC client/server calls, one piece down somewhere on the back-end meant the whole e-commerce front-end system comes to a shuddering, screeching pause while we figure out why the logging system can't write any more log messages to disk.

    Or, as another example, the First Tenet states that "Boundaries are explicit"; this is a well-recognized flaw with any distributed system, as documented back in 1993 by Wolrath and Waldo in their paper "A Note on Distributed Computing". Thanks to the fact that traversing across the network is an expensive and potentially error-prone action, past attempts to abstract away the details of the network ("Just pretend it's a local call") eventually result in nothing but abject failure. Performance failure, scalability failure, data failure, you name it, they're all consequences of treating distributed communication as local. It's enough to draw the conclusion "well-designed distributed objects are just a contradiction in terms".

    There's obviously more that can be said of both the "Web" angle as well as the "Services" angle, but hopefully enough is here to recognize the distinction between the two. We have a long ways to go with both ideas, by the way. Interoperability isn't finished just because we have XML, and clearly questions still loom with respect to services, such as the appropriate granularity of a service, and so on. Work remains. Moreover, the larger question still looms: if there is distinction between them, why bring them together into the same space? And the short answer is, "Because individually, each are interesting; collectively, they represent a powerful means for designing future systems." By combining interoperability with services, we create "things" that can effectively stand alone for the forseeable future.

    And in the end, isn't that what we're supposed to be doing?



    posted on 2005-05-30 13:16 鐵手 閱讀(912) 評論(0)  編輯  收藏 所屬分類: 企業(yè)架構(gòu)WS/SOA/ESB

    主站蜘蛛池模板: 久久久亚洲精品国产| 全黄a免费一级毛片人人爱| 亚洲国产精品无码成人片久久| 美女羞羞视频免费网站| 国产色婷婷精品免费视频| 亚洲人成色在线观看| 卡1卡2卡3卡4卡5免费视频| 亚洲一本一道一区二区三区| 午夜视频免费成人| 亚洲A∨精品一区二区三区下载| 噜噜嘿在线视频免费观看| 18禁亚洲深夜福利人口| 亚洲AV无码一区二三区| 二区久久国产乱子伦免费精品| 在线亚洲精品福利网址导航| 在线免费播放一级毛片| 亚洲人成电影在线天堂| 4hu四虎最新免费地址| 中文有码亚洲制服av片| 国产免费资源高清小视频在线观看| 婷婷亚洲综合五月天小说在线| 亚洲熟妇少妇任你躁在线观看无码| 久久高潮一级毛片免费| 久久久国产精品亚洲一区| 9久9久女女免费精品视频在线观看| 亚洲精品无码久久久久久| 亚洲av中文无码| 久久成人免费电影| 国产精品亚洲自在线播放页码| 国产免费观看青青草原网站| 国产免费无码AV片在线观看不卡| 亚洲黄色三级视频| 日韩一区二区免费视频| 成人免费av一区二区三区| 亚洲无砖砖区免费| 国产成人精品免费视频大全五级 | 亚洲一区无码中文字幕乱码| 国产免费观看黄AV片| 无码免费一区二区三区免费播放 | 91九色老熟女免费资源站| 毛片亚洲AV无码精品国产午夜|