- 浏览: 849197 次
- 性别:
- 来自: lanzhou
文章分类
最新评论
-
liu346435400:
楼主讲了实话啊,中国程序员的现状,也是只见中国程序员拼死拼活的 ...
中国的程序员为什么这么辛苦 -
qw8226718:
国内ASP.NET下功能比较完善,优化比较好的Spacebui ...
国内外开源sns源码大全 -
dotjar:
敢问兰州的大哥,Prism 现在在12.04LTS上可用么?我 ...
最佳 Ubuntu 下 WebQQ 聊天体验 -
coralsea:
兄弟,卫星通信不是这么简单的,单向接收卫星广播信号不需要太大的 ...
Google 上网 -
txin0814:
我成功安装chrome frame后 在IE地址栏前加上cf: ...
IE中使用Google Chrome Frame运行HTML 5
InfoQ's recent post on REST-*.org, which covered the announcement of REST-* and some of the community response to it, has drawn many responses. Changes have also been made to REST-*.org as a result of some of the feedback. Infoq had a chance to interview Bill Burke, a lead for the REST-* initiative, to learn more. InfoQ: Can you please tell us a bit about your background? I'm currently a Fellow at the JBoss division of Red Hat. In the past I've work on clustering, EJB containers, AOP implementations, and app server kernel development. I’m currently leading the RESTEasy project and am also driving REST-*.org. Finally, I've also published a few books and have a book on JAX-RS coming out by O'Reilly in November 2009. InfoQ: What brought you to embrace REST? It took me awhile to embrace REST as a viable way of implementing distributed systems. I see this same uphill battle whenever I evangelize REST to others at JBoss as well as the Java community in general. Initially I saw REST as a way to do true interoperability between platforms and languages in a very simple, lightweight way. As I learned more, I realized that beyond interoperability, the architectural principles of REST would allow app-developers to create a greater decoupling of interactions between services and applications. InfoQ: Can you elaborate on the last point? How, in your mind does REST provide better decoupling? I think the key principle is that RESTful systems are driven by media types and the hyperlinks between them. Clients can ask for the data structures they know how to interact with. The data returned contains all the information (hyperlinks) the client needs to know to interact with the server. New media types can provide additional links as new features of a system come online. This is how I want to structure the specifications we’re creating at REST-*.org. When defining interfaces to middleware services there are always a lot of edge cases that tend to bloat the API. What I want the core specifications of REST-* to focus on is core resource and link relationship definitions. Basically I want to define a framework and guidelines for specifying new media types for each of the domains REST-* is creating specifications for. This will give the community a lot of room to experiment with different data formats which will in turn will help us fine tune the core model. InfoQ: In your excellent presentation during JBoss World you tried to compare SOA with ROA. Can you elaborate on that? When I was putting together the first draft of my JBoss World presentation back in January (I’ve used iteration of this presentation at various conferences), I came across a nice presentation on InfoQ by Anne Thomas Manes talking about SOA Governance. In it she talked about the importance of constraints when deploying SOA to your organization. Without constraints it becomes exponentially hard to manage, integrate, and re-use services as more and more applications come online in your organization. REST is all about defining constraints on your distributed interface. Since it is such a powerful tool for decoupling it makes perfect sense to promote it within large organizations. If you combine this with the ubiquity of the HTTP protocol, you can add true, lightweight, interoperability in the mix as well. InfoQ: In many of your presentations and posts you emphasize the role of the HTTP protocol for REST. Do you consider unreliable connectionless HTTP the main service communication media going forward? As Roy hammers over and over, REST isn’t confined to HTTP. That being said, there is no other ubiquitous application protocol that can replace it at the moment to achieve true, lightweight, cross-platform interoperability. HTTP will have to be the workhorse until something new comes along. As REST evangelists say, the Web has done pretty well for itself. InfoQ: You have been arguing several times, that one of the main advantages of REST is the fact that it is much lighter then WS implementations. On another hand, as we raise the level of abstraction, using, for example, JAX-RS, it becomes significantly heavier. For example, Rest Easy is shipped as 38 jars. Do you think this trend is going to continue and the size of REST stack will catch uo with WS stack? Doing HTTP invocations within a RESTful environment is much lighter than a WS-* one. The main reason is that WS-* requires an envelope format in addition to HTTP just to send a request. In other words, WS-* tunnels an additional protocol over HTTP. This WS-* protocol needs to be defined using WSDL in addition to the definition of all your media types. With REST you’re just defining your media types. The operations and message format are already pre-defined. Although a REST stack may grow and catch up to a WS stack in size, it need not be too complex to implement from either an application perspective or a stack-provider perspective. The decoupling and dynamic nature of REST combined with HTTP content negotiation can provide a means to keep the base interactions and media types simple, but provide hooks for more complex protocols to be snapped on through the creation of new media types and link relationships. But, to be fair to RESTEasy, it’s core really only has a few dependencies that any other Java project might have: a servlet container, logging API, and a HTTP client library. The rest of the jars deal with how RESTEasy integrates with other component models (Spring, Guice, and EJB for example) as well as supports data formats like JSON, XML, Multipart, Atom, and XOP through the use of popular third-party libraries like Jettison, Jackson, James, Abdera, and JAXB. There’s absolutely no reason you can’t develop RESTful services using a vanilla servlet container, but I guarantee you’ll be using many of the third-party libraries we ship with. We’re pretty much mavenized anyways, so you can pick and choose the dependencies you want to pull in. InfoQ: Many argue that the foundation services interoperability up-front contracts and the early validation. What do you think REST answer to this? WADL? No, I do not think we need a WSDL equivalent. In REST, interactions are defined by the media types and link relationships that are exchanged between the client and server. In other words, the exchanged media type is the contract. InfoQ: Many argue that one of the main advantages of REST is the limited amount of methods, which means that the required action is often has to be “encoded” in the service payload. Do you think that 4 is an optimal number of methods? Firstly, actions should never be encoded within a payload in REST. Clients should be modeling actions as state. But, I think you’re talking more about the uniform interface constraint of REST? SQL only has 4 methods can model quite complex interactions and applications. But, to answer your question, are PUT, POST, GET, and DELETE enough? I think for most systems they are. I do think there is potential for OPTIONS, which could be used for service description. LINK and UNLINK might have interesting use cases when you have clients that just want to relate resources to one another through links. InfoQ: So what are the aims behind REST-*? Our goal is to figure out where traditional middleware services like Workflow Engines, Business Process Manage, Message Solutions, and even Transaction Managers fit into RESTful architecture and applications. We'll be doing this by defining a set of specifications and guidelines that define interfaces for these services. One thing we will not be doing is defining the meaning of REST or general RESTful guidelines. This is best left to the heavyweights in the REST community. We will be focusing on enterprise middleware because that is our area of expertise. InfoQ: Some in the REST community believe that everything you need to do enterprise distributed computing already exist within REST and HTTP. So why do we need REST-*? Much of REST has been described with using the Human Web as an example. By "Human Web", I mean browsers and the humans using these browsers. How machine-based clients interact with a REST architecture is, IMO, very much in its infancy. Enterprise IT is used to using specific sets of middleware technologies to implement their distributed applications. The advent of REST gives us a chance to rethink how traditional Enterprise IT development intersects with middleware. This is what REST-*.org is trying to solve. In the end we may discover that REST is the death of middleware, but my guess is that the answer is somewhere in the middle. InfoQ: How do you see REST-* evolving in the future? We'll first start out by defining a set of services we want to create RESTful interfaces for as well as what specific problems each of these services will solve. Out of this effort we'll also hopefully get a set of general guidelines that can be used across the domain we're defining specifically in areas like security. When we feel we have something solid enough to publish, we'll bring our work to standards body like IETF or the W3C. InfoQ: What's the process for getting involved? For instance, is it open to individuals or just vendors? REST-*.org is a set of open source projects whose goal is to define specifications and guidelines. Everything we publish will be open source licensed. Currently we've chose ASL 2.0, but we're open to change the license to something else. Since we're running REST-*.org as an open source project, everything we will do will be done in the open. Any individual or organization can participate. All they have to do is subscribe to our mailing lists. We also hope to get external companies and/or individuals to drive some of our specification efforts. While Red Hat is jump-starting this effort, we don't think it is appropriate for us to be the primary driver behind these efforts. InfoQ: What future do REST and REST-* have within JBoss? We've found that using traditional methods to define our distributed interfaces for management and tooling has been just too fragile and hard to manage as our products have evolved over time. Many engineers have been looking for a better way. I think REST can solve some of these problems. We're already seeing some benefits to applying REST to the management interfaces of some of our products. I hope to see it also have a positive effect on how we configure and provision our projects and products. As for REST-*, we'll be prototyping initial implementations of our specifications under the RESTEasy open source project. This will provide us with a valuable feedback loop by putting our ideas into action. InfoQ: Any final words you'd like to say? Distributed computing for years now has seemed like an endless repackaging of the same old ideas, patterns, and technology. Through REST, I finally feel like distributing computing is evolving and moving forward again. While REST won't solve world hunger, it will certainly give us a new perspective to practice software engineering.
发表评论
-
Creating PDF documents with PHP in 10 steps
2009-11-09 08:33 1609Step 1 - Install the PDFlib e ... -
26 Hints for Agile Software Development
2009-11-04 08:04 741I collect nuggets of wisdom on ... -
40个迹象表明你还是PHP菜鸟
2009-10-28 08:40 60340个迹象表明你还是PHP菜鸟 ... -
PHP performance tips
2009-10-21 09:15 741PHP performance tips Author: ... -
国外优秀开源PHP建站程序一览
2009-10-15 08:06 1330大量的PHP开源(开放源 ... -
十步让你成为一名优秀的Web开发人员
2009-10-15 08:03 845第一步:学好HTML HTML( ... -
What's Agile To You?
2009-10-09 08:34 792As a project manager, archite ... -
install Merb 1.0 on Windows
2009-10-05 17:25 925早期的Merb在Windows上安装是件很恶心的事,缺这少 ... -
WebWork敏捷开发尝试
2009-10-05 09:11 791WebWork是一个优秀的J2EE ... -
敏捷开发中常见的九大误解
2009-10-05 09:10 766一、敏捷是“一个” ... -
浅谈敏捷项目管理在软件开发中的应用
2009-10-05 09:09 1196一、使用传统项目管理技术管理软件开发项目的方法 按照 ... -
揭示PHP成功背后的秘密:PHP创始人访谈录
2009-10-01 12:47 920Rasmus Lerdorf可能是格陵兰最著名的电脑牛人,他1 ... -
GitHub: Speed matters
2009-09-29 22:25 869Impressions from the first arti ... -
PHP5 Database Iterators <2>
2009-09-29 22:15 1023Introducing the Db_Iterator Obj ... -
PHP5 Database Iterators <1>
2009-09-29 22:11 885One feature of PHP rarely seen ... -
REST-*组织
2009-09-29 11:10 850JBoss已在月初的JBoss世界大会上正式宣布了它的新项 ... -
Agile 2009 Conference Retrospective
2009-09-26 21:51 819A month has passed since Agile ... -
git is great 2
2009-09-26 15:11 1479Git梳妆我们可以利用Git的config命令或者直接编辑~/ ... -
git is great
2009-09-26 15:08 1668Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重 ... -
FindBugs 1.3.9发布了
2009-09-26 08:03 1380由马里兰大学Bill Pugh教 ...
相关推荐
- **GGA** / **VOSKOWN**:选择泛函类型,常用的有PBE(Perdew-Burke-Ernzerhof)、PBEsol等。 - **ISIF**:定义了结构优化时的自由度,例如是否允许体积变化、形状变化等。 - **ISMEAR** / **SIGMA**:控制电子...
- **报告发布者**:FCM Consulting全球团队,由Felicity Burke、Ashley Gutermuth及Juan Antonio Iglesias共同完成。 - **时间范围**:2023年10月至12月(第四季度)。 - **数据来源**:FCM和Flight Centre Travel ...
Burke-Litwin模型 - 描述了组织变革的复杂性和各个层面之间的相互作用。 #### 8. 力场模型 - 分析推动或阻碍变革的力量,以促进变革的成功实施。 以上内容涵盖了企业经营、战略规划与执行、组织与人才管理等多个...
Burke 和 Brian M. Coyner - **出版社**:O’Reilly & Associates, Inc. - **版权年份**:2003年 - **内容概述**:本书主要讲述了如何在实际项目中应用极限编程(Extreme Programming, XP)的原则和技术,并特别...
Burke-Litwin模型将组织视为一个受内外部因素共同影响的系统。它强调了从外部环境到个人层面的一系列转变过程,帮助组织更好地适应变化。 ##### 4. 个体和群体行为诊断模型 该模型关注个体和群体在组织中的行为...
- **Rob Burke**:作为讲师,他来自Esri公司总部Redlands。 - **Don Kemlage**:.NET SDK团队的产品工程师,同样来自Esri公司总部Redlands。 ##### 幻灯片4 - **目标受众**: - 任何想要了解ArcObjects的人。 -...
- **RESTeasy集成**:RESTeasy是由JBoss成员Bill Burke开发的一个REST实现,它也被集成到Seam 2.1中,进一步增强了框架对RESTful应用的支持。 - **RESTful应用示例**:通过集成JAX-RS和RESTeasy,Seam 2.1能够提供更...
《JBoss 3.2 Workbook for Enterprise JavaBeans™, 3rd Edition》是一本专门针对JBoss 3.2版本的EJB配置与部署的教程书籍,由Bill Burke和Sacha Labourey共同编写,出版于2003年。本书作为Richard Monson-Haefel所...
- **技术审稿人**:Bill Burke、Trevor L. Chandler、Aaron Kraus、Valerie Michelle Nelson、Brian T. O’Hara、Jordan Pike等人,他们都是各自领域的专家。 - **出版团队**:包括高级收购编辑Ken Brown、发展编辑...
- 排版:Impressions Book and Journal Services, Inc. - 索引编制:Carol Burbo - 封面设计:Karl Miyajima - **发行信息**: - 在美国由Springer-Verlag New York, Inc.发行 - 在美国以外地区由Springer-...
本书由多位知名作者共同编写,包括Angela Orebaugh、Gilbert Ramirez、Josh Burke、Larry Pesce、Joshua Wright和Greg Morris等。他们都是网络安全领域的专家,具有丰富的实践经验和技术背景。 #### 书籍内容概览 ...
- **Burke Porter**:这是一家美国公司,以其高度定制化的平衡机产品而闻名,特别是在重型机械制造领域具有很强的竞争力。 - **杭州集智**:作为中国平衡机行业的领军企业之一,杭州集智在技术创新和服务方面都...