简体版  |  繁体版   推荐信息: 阅读排行 | 滚动 | 微软SOA高峰会 | 中型企业创新社区 | 随心所欲发新闻
企业软件

使用XML实现REST式的SOA

出处:比特网 作者:Adriaan de Jonge 2008-03-17 15:40 评论
字体大小: | |
面向服务体系结构常常意味着大型企业所用的重型技术。SOA 体系结构模式的优点也适用于比较小的环境。在采用 SOA 原理时,不必承担大型环境所需的所有开销。可以使用 REST 这样的轻量型技术实现 SOA。本文讲解实现的方法。

  客户机上的应用程序

  到目前为止,本文已经讨论了服务器端的实现。客户端上的代码非常相似。客户机可以共享数据类 Flight、Traveller 和 Bag,并使用 XStream API 对 XML 进行序列化和去序列化。客户机上惟一的新部分是连接 URL 并读取内容或发送内容。通过使用 Java 类库提供的 URL 连接,很容易完成这个任务:

  String xml = "input";

  URL url = new URL("http://luggagetracking.airlinecompany.com/bags/1/newmethod");

  URLConnection connection = url.openConnection();

  // set POST

  connection.setDoOutput(true);

  Writer output = new OutputStreamWriter(connectiongetOutputStream());

  output.write(xml);

  output.close();

  // display result

  BufferedReader input = new BufferedReader(

  new InputStreamReader(connection.getInputStream()));

  String decodedString;

  while ((decodedString = input.readLine()) != null) {

  System.out.println(decodedString);

  }

  input.close();

  与 Ruby on Rails 等技术的互操作性

  尽管 REST 并没有明确的规范来规定如何实现它,但是对 REST 的开箱即用支持越来越多了。因此,虽然没有需要遵循的标准,但是您需要遵守一些约定。例如,Ruby on Rails 提供 ActiveResource。如果遵守 Rails 对 URL 和输出格式的约定,就很容易用最小的开销把 Rails Web 客户机连接到 Java REST 式 Web 服务。

  可伸缩性和向重型 SOA 的迁移

  随着应用程序环境的增长,很可能会对越来越多的 REST 实现细节进行抽象。当增长和抽象发展到一定程度之后,从轻量型技术迁移到重型的 SOA 技术可能会节省成本。这需要把服务背后的实际业务逻辑提取出来,并重新包装在新环境中的一个 SOAP 包中,这个过程应该不是太难。

  寻找应用 REST 式 SOA 的机会

  航空公司只是本文使用的一个示例。实际的航空公司规模都比较大,它们应该直接使用重型技术。如果您为小公司工作,可能需要发挥想像力,寻找到在实践中应用 SOA 和 REST 原则的最佳方式。花些时间考虑这个问题,这会带来长远的回报!

共3页。 9 1 2 3
  • 本文关键字:
  • 应用(2162)
  • 网友关注
    热门产品
    编辑推荐
    推荐专题
    更多
    思科
  • 打开网络创新之门
  • 思科公司于北京嘉里中心饭店成功举办了主题为“创新网络,绿色引擎”的思科创新日暨思科新品发布会。
  • 论坛热贴
    更多
    博客精选
    更多
    视频推荐
    更多
  • 杜青松:对IT人员要求别具一格
  • 在对杜青松的采访中,他透露出目前在中粮包装有限公司信息化建设的工作中的一个难点——IT人力资源短缺。
  • TMG

    Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络

    渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868

    版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i

    经营性网站备案信息 网警备案 中国网站排名