Windows Azure 计算服务中的服务定义

        服务定义描述了Windows Azure在部署用户服务时首先需要准备的环境要求。Fabric控制器会根据服务定义的描述来为服务实例准备相应的虚拟机环境。服务定义中包括了所有在服务部署时一开始就需要的信息,这些信息被统一定义在服务定义文件ServiceDefinition.csdef中。下面是常见的包含在服务定义文件中的信息。

        1、服务角色类型和名称:

        2、服务端点。包括服务协议和端口;

        3、升级域的数量;

        4、角色运行时的权限,比如完全新人或部分信任;

        5、服务角色实例的规格/对应虚拟机的大小;

        6、本地文件存储需要的磁盘控件;

        7、用户自定义的一些属性;

        由于在服务定义文件中的信息基本上都是在服务部署之前需要确定的信息,而且这些信息直接影响服务的具体部署的拓扑结构和资源分配文件,那么对应服务就需要重新打包和部署。这与服务配置文件不同,后者可以被动态的修改。正因如此ServiceDefinition.csdef文件与服务代码打包一起成为一个ZIP格式的压缩文件(*.cspkg),而ServiceConfiguration.csdef文件是独立作为一个XML服务配置文件存在。显然把服务配置文件单独存放主要是为了方便更新服务配置。

        ServiceDefinition.csdef文件是一个XML格式的文件,其主要内容包括角色定义和网络通信规则。其最上层的结构如下:

        <ServiceDefiniton...>

         <WebRole...>        ...       </WebRole>

        <WorkerRole>      .....       </WorkerRole>

        <VirtualMachineRole>   ...      </VirtualMachineRole>

        <NetworkTrafficRules>   ...   </NetworkTrafficRules>

        </ServiceDefiniton...>

         由于服务定义文件是XML格式的,因此可以使用任何文本编辑器对它进行修改和创建。为了保证语法的正确性和编辑效率,建议通过Visual Studio来修改。如果使用Visual Studio的项目创建向导生成一个Windows Azure服务项目,那么基本的服务定义文件和服务配置文件会自动生成。

         Visual Studio生成的Windows Azure项目主要包含一些服务定义及配置信息,服务的主要逻辑实现都是在具体各个角色所对相应的项目中。从项目中的依赖项中可以看到 Windows Azure项目依赖于它所包含的不同角色项目。

         在Visual Studio中打开ServiceDefinition.csdef可以展现出一个图形化服务配置界面。可以很人性化进行配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章