PAAS平台学习笔记

原创 2013年11月11日 14:52:02
一、PAAS平台概念
    PAAS平台即(Platform-as-a-Service:平台即服务),把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了 PaaS(Platform as a Service)。
1、aPaaS

    Application PaaS(aPaaS)应用平台服务是指用来托管与管理每一个应用程序服务和数据的平台。服务功能包括:为多租户应用软件运行优化的容器服务、持久性和内存数据管理、同类环境下服务的独立管理与独立安全、多语言开发工具、编程模型、内部编配与编排、元数据管理和以计费与优化为目的监控。

2、iPaaS

    Integration PaaS (iPaaS)集成平台服务是指用来中介和集成aPaaS所托管与独立管理的应用服务的平台。服务功能包括多种可应用于异构分布部署服务环境的中介功能, 包括:注册和存储、策略管理、安全、应用和数据的集成、适配器、编排、编配、流程管理、合作伙伴社区管理、事件代理等等。集成平台既服务可以用来支持SaaS应用程序、云服务、基于aPaaS的应用程序之间以及在用户自己环境里的定制/套装应用程序与B2B集成等场景的集成。


二、SOA REST接口Restful WebService
    围绕面向服务的体系结构SOA(Service Oriented Architecture,SOA)的讨论很多,围绕如何正确实现SOA的讨论很多。如何构建灵活的异构系统,如何集成现有的系统,如何让异构系统进行通信?虽然当前主流的方式明显地集中在基于SOAP、WSDL和WS-*规范的Web Services领域,但也有少数人主张更好的方式是REST,Restful WebService,或者RESTful HTTP。那什么是REST?

   REST是 Representational State Transfer (表述性状态转移)的缩写。为什么提这个名字?

   Client application transfers state with each resource representation. This is REST.

   通过超文本传输协议(HTTP)发送简单的消息来实现 SOA,这基本上就是 REST 式 Web 服务 (RESTful Web services) 的工作方式。REST并不是一个协议或技术;它是一种体系结构风格。

   REST 是 SOAP 的轻量型替代品,它是面向资源的,而不是面向操作的。它常常被归结为远程过程使用 HTTP 调用 GET、POST、PUT 和 DELETE 语句。我认为,这只是第二个重要的步骤。 (第一个(也是最重要的)步骤是把所有资源建模为 URL 形式。)

    (*) REST比较简单朴素,在安全性,可靠消息传输,或标准化的业务过程自动化上还没有定义。(REST很适合面向数据的应用,但对于面向服务/面向方法的应用,比如需要事务、严密的安全性等等这些更高级的操作的应用来说,采用基于WS-*的方案显得更有道理。)

    从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod:string GetCityWether(string city)。而RESTful WebService暴露的不是方法,而是对象(资源),通过Http GET, PUT, POST 或者 DELETE来对请求的资源进行操作。在 REST 的定义中,一个 Web Service总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。

    RESTful HTTP核心操作包括:

    GET - 该操作返回已标识资源的状态表示。您可以通过大量的上下文要素来确定状态,例如谁正在提交请求、操作的参数(传入的参数如 HTTP 头或者查询字符串参数)和服务提供方维护的当前会话状态。
POST - 该操作执行对已标识资源的一些特定于应用程序形式的更新。该操作行为完全依赖于实现它的服务。由该操作返回的数据也完全依赖于应用程序。举例来说,像 GET 操作一样,它可以返回一个状态表示,它还可以选择根本不返回任何数据。
    PUT - 该操作在已标识位置(URI)创建新资源。操作输入必须包括一个资源的状态表示。它完全依赖服务来创建基于这个状态表示的资源。
    DELETE - DELETE 操作销毁已标识位置(URI)的资源。
    REST是无状态的,服务器无需知道当前操作的上下文,或者上一次操作的情况。这能够提高系统的可伸缩性,是因为它强制所有操作都是stateless的,这样就没有context的约束,如果要做分布式、做集群,就不需要考虑context的问题了。同时,它令系统可以有效地使用pool。REST对性能的另一个提升来自其对client和server任务的分配: server只负责提供resource以及操作resource的服务,而client要根据resource中的data和 representation自己做render。这就减少了服务器的开销。

    在设计 REST 式 WebService时,可以采用以下四个步骤:

    决定资源及其描述性 URL。(通过url来设计系统的结构则整个系统就是由这些resource组成的,注意设计思维方式的不同)
    为每个 URL 上的通信选择一种数据格式。
    指定每个资源上的方法。
    指定返回的数据和状态码。

三、java端RESTful web services的几种实现方式【来源: BlogJava   作者:叱咤红人】

1、 利用JAX-WSDispatch/Provider

  在JAX-WS中,我们可以跳过SOAP栈的处理,直 接调用Service Endpoint,这样我们就可以传输POXRaw xml)或者JSONService Endpoint处理,并可以通过MessageContext拿到HTTP method,从而进行判断,调用不同的逻辑。需要注意的是将Endpoint@WebService替换成@WebServiceProvider, 需要实现Provider<Source>接口。接着将BindingType改为(value = HTTPBinding.HTTP_BINDING),表明直接处理的是HTTP,而不是SOAP

  DispatchProvider分别对应于客户端和服务端,他们当然是可以脱离使用的。

  Provider脱离Dispatch

  GetDelete不需要通过HTTP body,本身就支持任意client

  通过HTTP Headerpostput的内容,支持任意client

  通过HTTP bodyPostPut的内容,需要模拟Dispatch传的HTTP body格式

  Dispatch脱离Provider

  自己生成SOAP包,服务端可以是SOAP-based web service

2、 RESTful HTTPServlets

   所谓万变不离其中,REST本身就是HTTP的架构,我们可以直接通过HTTP servlet操控HTTP RequestResponse,而且HTTP servlet本身就提供了doGet doPost doPut doDelete doHeader, doOptions方法,通过重写这些方法,我们可以实现基于HTTP servletRESTful web services

3、 JAX-RS

   JAX-RSJSR 311Java API for XML-RESTful Web Services)是基于annotation的实现方式,我们通过annotation的方式把一个java class标注成RESTful web service,并把它的方法标注成HTTPCRUD。相关的annotation@path, @Produces,@GET, @POST, @DELETE, @PUT, @PathParam等,

  目前已经有很多现成的实现,比如Jersey, Apache CXF, JBoss RESTEasy, Apache Wink.  Triaxrs

4、 其他的一些framework

  还有一些其他的第三方的framework,可以方便我们发布RESTful web services,编写web client,比如Restlet。


四、服务的使用


    在Spring Context中配置服务,按单例使用,避免频繁使用new,例如4A服务。



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoyw/article/details/15338409

PaaS基础学习(1)

PaaS基础学习(1)PaaS学习笔记目录PaaS基础学习(1)在PaaS上开发Web、移动应用(2)PaaS优点与限制(3) 基础单元,一个基础单元就是所研究实体的最小的不可分割的单元。 PaaS与...
  • dream_an
  • dream_an
  • 2016-03-19 08:50:57
  • 1525

分享一些学习资料-大量PDF电子书

分享一些学习用的电子书籍,给那些喜欢看书而不一定有机会买书的童鞋。 反对积分下载,提倡自由分享。 Android: 玩转Android手机.pdf:    https://u16392482...
  • u012062193
  • u012062193
  • 2018-01-15 11:27:57
  • 291

PaaS优点与限制(3)

PaaS优点与限制(3)PaaS学习笔记目录PaaS基础学习(1)在PaaS上开发Web、移动应用(2)PaaS优点与限制(3)13. PaaS的核心服务核心服务是指提供数据存储、SQl、NoSQL、...
  • dream_an
  • dream_an
  • 2016-03-19 09:04:08
  • 1933

毕业工作五年的总结和感悟(中)-公有PAAS平台

上一篇文章介绍到云存储项目,下一个做的项目就是统一日志。这一个项目前前后后做了一年多,版本迭代更新了很多版本,架构升级都做了3次以上。做这一个项目是收获最大的,我在这一个项目中锻炼了大型分布式系统的架...
  • wanweiaiaqiang
  • wanweiaiaqiang
  • 2016-11-05 23:36:48
  • 1964

PaaS 平台学习(开源力量OSF)构建千万级大规模、高可靠PaaS平台的技术挑战 学习笔记

感谢许志强老师的辛苦付出。2015年1月13日 参加云通讯PaaS平台学习,特作此记录。 大纲: 选择Paas平台的考量(我的企业是否适合选PaaS平台,我应该选怎么样的PaaS平台)基于PaaS...
  • xundh
  • xundh
  • 2015-01-13 22:07:49
  • 2901

PaaS简介及国内PaaS平台

PaaS(平台即服务),是指将一个完整的软件研发和部署平台,包括应用设计、应用开发、应用测试和应用托管,都作为一种服务提供给客户。在这种服务模式中,客户不需要购买硬件和软件,只需要利用PaaS平台,就...
  • preterhuman_peak
  • preterhuman_peak
  • 2012-06-12 22:12:29
  • 19898

PAAS平台学习笔记

一、PAAS平台概念     PAAS平台即(Platform-as-a-Service:平台即服务),把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Softwar...
  • xiaoyw
  • xiaoyw
  • 2013-11-11 14:52:02
  • 1223

Docker学习笔记 --- Iaas,Paas,SaaS详解

Docker学习笔记 --- Iaas,Paas,SaaS详解
  • u012965373
  • u012965373
  • 2016-11-25 23:37:19
  • 1334

PaaS平台的尴尬与变革

当今时代只要提到云计算这个词语,一定会提到云计算分为IaaS、PaaS、SaaS 这三个层面,现阶段云环境中IaaS和SaaS都实现了商品化。但是,PaaS作为云计算的服务模式之一,既不像IaaS那样...
  • aeaiesb
  • aeaiesb
  • 2017-06-13 10:46:47
  • 880

有容云:容器驱动的PaaS平台实现方案(下)

本文基于上海容器大会现场演讲内容,立足于实战跟大家分享了新一代PaaS平台构建中遇到的问题、当下主流PaaS平台解析、企业交付经验及心得体会等。文章较长,分为上、下两个部分,本文为下篇。...
  • yourun_cloud
  • yourun_cloud
  • 2016-07-01 14:32:20
  • 3929
收藏助手
不良信息举报
您举报文章:PAAS平台学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)