根据基于模型的系统工程方法和以下面向服务架构建模语言(SoaML)提供了用于面向服务和软件架构建模的各种元模型的详细信息。SOA和软件层元模型可以大致分为两类:核心建模(数据)和图表(可视化)。 车载SOA软件架构:建模语言(SoaML)_服务提供者


一、SOA设计-核心模型设计


SoaML为每个特性或系统建模提供核心元模型,来构建统一的服务构件,增强服务的复用性,具体如下:

 

服务:服务可以通过定义的接口提供可用的功能。每个服务都有一个用于服务注册和发现的唯一ID。服务使用者应使用此ID识别服务,并根据define接口使用功能。尽管服务定义不一定要有使用者。

 

服务提供者:服务提供者是具有提供服务功能的特定角色的服务的实例。服务提供商根据定义的服务接口(合同)提供服务。

 

服务使用者:服务使用者是具有使用服务功能的特定角色的服务的实例。服务使用者需要确保从提供者获得定义的服务接口(契约)。

 

服务端口:服务端口是服务提供者或使用者之间相互通信的接口点。

 

服务接口:服务接口是服务提供者和使用者之间数据交换的定义。它定义了向使用者公开的服务的属性。服务接口应包括以下内容:

 

·使用getter和setter将字段转换为属性。

·方法(请求和响应)

·Fire-and-Forget方法(请求无需响应)

·事件和事件组

 

方法-请求和响应:这是服务接口的一部分,在客户端或服务器中调用方法并期望得到确认。

 

Fire-and-Forget方法:这是服务接口的一部分,在服务接口中,客户机在不等待服务器确认的情况下调用分法。

 

事件:这是服务接口的一部分,服务角色在其中更新数据或传递操作。服务使用者可以订阅事件或事件组。

 

属性或字段:这是表示服务服务器中某些数据的服务接口的一部分。服务器应通过公开getter和setter方法向使用者提供对该数据的访问。

 

参数:它定义一个方法的输入或返回参数(请求/响应和fire-and-forget方法)。

 

面向服务的体系结构:每个特性或系统的SOA包括具有id的服务定义、服务角色(提供者和使用者)服务器接口定义以及与定义的服务接口相关的相互接口的服务角色。

 

组合:用于按层次结构组织软件组件。

 

应用软件组件(SWC):它表示在软件体系结构层具有足够粒度的给定功能。它应该足够细化,可以部署在单个硬件组件上。SWC应为AUTOSAR经典或自适应或非AUTOSAR软件组件。如果是AUTOSAR经典或自适应则必须按照标准AUTOSAR定义遵循类型-原型-实例结构。

 

 软件端口:软件端口存在于软件组件上表示操作(如果是客户端服务通信) 或数据元素(如果是发送方一接收方通信),提供或订阅的数据。发送方接收方接口或客户端服务接口被分配给软件端口。

 

软件组装连接器:通过使用软件组装连接器(软件级数据流)连接软件端口使软件组件相互连接。

 

客户机服务接口、操作和参数:如果软件端口以客户机和服务器模式交换数据,则分配给它们的接口称为客户机服务接口。这个接口需要包括每个操作的操作和参数(输入和返回)。

 

发送方-接收方接口和数据元素:如果软件端口以双向模式交换数据,则分配的接口称为发送方一接收方接口。此接口需要包括数据元素(表示交换的数据)和数据类型分配。数据类型应为应用数据类型和实现数据类型。应根据这些数据类型定义计算方法。

 

二、SOA设计-图表设计

 

SOA设计和软件架构(architecture)数据应以表格格式或图表形式可视化。应使用定制的表格格式来可视化SOA设计数据和软件架构定义。

 

面向服务的体系结构图XSOAD):该图应可视化给定功能或服务、服务角色(服务提供者和服务使用者)服务端口和服务接口。下面是SOA图的示例视图:

 车载SOA软件架构:建模语言(SoaML)_数据_02


软件架构图(SWAD):一旦SOA定义完成,就应该定义软件组件方面的服务部署。此图显示了用于数据交换的软件组件、软件端口及其之间的连接(软件程序集连接器)。还应显示每个软件组件上部署的逻辑功能。下面是软件架构图示例:

车载SOA软件架构:建模语言(SoaML)_数据类型_03