服务定义描述了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可以展现出一个图形化服务配置界面。可以很人性化进行配置。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐