《Windows Azure Platform 系列文章目录

  一.服务运行时API简介

  微软的Windows Azure服务总线提供了一整套REST风格的API,其中包括服务运行时API(Service Runtime API)和服务管理API(Service Management API),分别用于运行时操作和管理操作。

  那么,什么是REST呢?REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,它可以降低开发的复杂性,提高系统的可伸缩性。使用REST API,意味着我们可以使用任意的编程语言来开发应用程序,它只有一个前提,我们使用的编程语言必须要能够支持HTTP协议。使用REST API,我们就不再需要客户端的SDK。

  二.服务运行时API和服务管理API的区别

  服务运行时API和服务管理API有什么区别呢?

  首先,要从两者运行的“位置”进行比较。服务运行时API运行于Windows Azure云的内部,API代码与云交互环境相勾连;而服务管理API运行于Windows Azure云的外部,可以通过调用服务管理API来操纵正在运行的服务。

  其次,两者的功能也大不相同。服务运行时API主要用于动态查看服务信息;而服务管理API则用于Azure授权用户能够以编程的方式管理其部署、托管的服务以及存储账户。授权用户可以管理存储服务的生命周期,包括新建存储服务、更新存储服务、删除存储服务等。

  服务运行时API有时也被认为是服务托管API

  三.服务运行时API的作用

  服务运行时API有哪些作用呢?

  1.WindowsAzure云上的Adapter服务可以通过调用服务运行时API来动态查询服务信息。比如可以访问应用的服务信息和用户的角色信息。还可以用于访问服务的拓扑信息,比如正在运行哪些角色、每个角色包含了多少个实例等等。

  2.可以从配置文件中读取最新的设置。比如访问服务定义和服务配置文件中各项设置的最新的值,即使是服务配置正在更新,服务运行时API也能确保取得的值为最新状态。要注意,对于工作者角色,它与角色的生命周期是紧密绑定在一起的。

  3.可以在配置文件更新后获取通知。

  四.服务运行时API的访问方式

  服务运行时API有两种访问方式:

  1.对于托管代码,SDK封装了整个Microsoft.WindowsAzure.ServiceRuntime.dll库。只要用Visual Studio创建了一个新的云服务项目后,服务运行时API就可以自动引用。

  2.对于本地代码,头文件和库文件都被封装在SDK中,可以使用C语言调用服务运行时API。

  要说明一点,本地库和托管库两者的功能是完全相同的,你可以选择任意一种访问方式,而且两者间的代码转换也是很容易的。

  五.服务运行时API的命名空间

  Microsoft.WindowsAzure.ServiceRuntime的命名空间详见下表所述。

描述

LocalResource

表示本地存储资源,托管服务所保留。

Role

表示定义的角色,作为托管服务的一部分。

RoleEntryPoint

在角色实例进行初始化、运行、停止时,提供运行代码的方法。

RoleEnvironment

提供运行角色实例的配置、端点和状态的信息。

RoleEnvironmentCharge

表示托管服务的配置发生了变化。

RoleEnvironmentChangedEventArgs

表示已更改事件的参数,当配置修改被应用到角色实例后使用。

RoleEnvironmentChangingEventArgs

表示待更改事件的参数,当配置修改被应用到角色实例前使用。

RoleEnvironmentConfigurationSettingChange

表示一个角色配置的修改。

RoleEnvironmentException

在访问RoleEnvironment类的属性和方法发生错误时所抛出的异常。

RoleEnvironmentStoppingEventArgs

表示停止事件的参数,当一个角色实例被停止时使用。

RoleEnvironmentTopologyChange

表示某个角色的拓扑结构发生变化。

RoleInstance

表示一个角色实例。

RoleInstanceEndpoint

表示一个角色实例相关联的端点。

RoleInstanceStatusCheckEventArgs

表示StatusCheck事件的参数,用于在内部定期时间间隔来指示一个角色实例的状态。

参考资料:http://blog.csdn.net/chszs/article/details/7851794

  

Azure REST API (1) 前言的更多相关文章

  1. Windows Azure Mangement API 之 更方便的使用Mangement API

    许多.Net 程序员在使用Azure Management API的时候都选择参考微软官方示例,通过创建HttpWebRequest来创建. 或者自己创建类库来封装这些API,使之调用起来更加方便. ...

  2. C#码农的大数据之路 - 使用Azure Management API创建HDInsight集群

    Azure平台提供了几乎全线产品的API,可以使用第三方工具来进行管理.对于.NET更是提供封装好了的库方便使用C#等语言实现Azure的管理. 我们使用创建HDInsight集群为例来介绍使用C#管 ...

  3. Azure REST API (3) 使用REST API,操作Azure ARM VM

    <Windows Azure Platform 系列文章目录> 笔者之前遇到一个客户,需求是当发生某一个特定条件的时候,对多台Azure ARM VM执行开机或者关机操作,这个时候就需要使 ...

  4. Azure EA (3) 使用Postman访问海外Azure Billing API

    <Windows Azure Platform 系列文章目录> 本文介绍的是海外版的Azure Global服务,因为跨境内境外网络,访问速度会比较慢 在开始使用Azure Billing ...

  5. Azure EA (2) 使用Postman访问国内Azure Billing API

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 请读者先看一下之前的文档内容:Azure EA (1) 查看国内Az ...

  6. 使用Azure Rest API获得Access Token介绍

    背景 本文主要介绍如何获取如何获取Azure Rest API的访问token,所采用的是v2.0版本的Microsoft标识平台,关于1.0和2.0的区别可以参考 https://docs.azur ...

  7. 使用Azure人脸API对图片进行人脸识别

    人脸识别是人工智能机器学习比较成熟的一个领域.人脸识别已经应用到了很多生产场景.比如生物认证,人脸考勤,人流监控等场景.对于很多中小功能由于技术门槛问题很难自己实现人脸识别的算法.Azure人脸API ...

  8. 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)

    问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...

  9. 使用Azure REST API创建虚拟机

    Hollis Yao, Shihao Rong  使用REST API创建虚拟机之前,首先要确保Azure订阅中已经建好了"云服务"和"存储账号".如果没有的话 ...

随机推荐

  1. MySQL 升级详细步骤 (包括 Percona)

    MySQL 升级步骤 MySQL 5.1.72 升级到 MySQL 5.5.36 鉴于我在升级的时候遇到的麻烦问题,我觉得有必要把一些细节说清楚,免得引起误解了.感觉官方文档上的升级步骤写的比较简单, ...

  2. sql语句:插入的时候判断是否有重复项

    把t_table1中数据插入到t_table中,同时确保t_table中不会有重复的项 insert into t_table  (column1,column2,column3) select co ...

  3. ENode 1.0 - Staged Event-Driven Architecture思想的运用

    开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架的command service api设计思路.本文介绍一下enode框架对St ...

  4. require、module、exports dojo中的三个特殊模块标识

    查看dojo源码过程中,发现这三个模块名并不以dojo.dijit.dojox开头,在dojo加载器中属于特殊模块名. require 这是一个上下文智能的加载器. 我们通过dojoConfig配置了 ...

  5. 【吉光片羽】js横向滚动与浮动导航

    1.横向滚动,这个方法是见过最简洁的了. #demo { background: #FFF; overflow: hidden; border: 1px dashed #CCC; width: 117 ...

  6. 淘宝code—— 最给力的国内免费SVN(不限语言),异地团队开发、打造个人开源项目不再是梦

    相信大家都听说过GitHub,也有很多人在用,但是GitHub毕竟在国外,速度不是很给力,而且安装过程也是很漫长.今天来给大家介绍一个国内的免费的开源项目平台,当然也是一个SVN版本控制器,名字叫ta ...

  7. 一个简单的通用Makefile实现

    一个简单的通用Makefile实现   Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新ma ...

  8. [PCB制作] 1、记录一个简单的电路板的制作过程——四线二项步进电机驱动模块(L6219)

    前言 现在,很多人手上都有一两个电子设备,但是却很少有人清楚其中比较关键的部分(PCB电路板)是如何制作出来的.我虽然懂点硬件,但是之前设计的简单系统都是自己在万能板上用导线自己焊接的(如下图左),复 ...

  9. Redis教程(十一):虚拟内存介绍:

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/138.html 一.简介: 和大多NoSQL数据库一样,Redis同样遵循 ...

  10. 移动端基于HTML模板和JSON数据的JavaScript交互

    写本文之前,我正在做一个基于Tab页的订单中心: 每点击一个TAB标签,会请求对应状态的订单列表.之前的项目,我会在js里使用 +  连接符连接多个html内容: var html = ''; htm ...