|
知识路径: > 系统开发和运行维护知识 > 软件工程基础知识 > 软件开发方法 > 软件开发方法新进展 >
|
相关知识点:5个
|
|
|
|
|
随着以互联网为主干、电信网、移动网、传感网等多种网络正在不断渗透融合,软件系统的运行环境正在逐步从静态、封闭、固定的单机环境转变为动态、开放、多变的网络环境。
|
|
|
软件服务是指将软件的功能以服务的形式通过互联网来交付,可以被使用者(最终用户或者第三方客户端程序)直接使用的独立的基本单元。就其形态而言,软件服务一般基于可共享和集成的应用系统和资源来构建,对外则表现为一组相对独立的业务功能单元(通常是可供外部直接调用的应用编程接口,即API),更加方便使用者使用。软件服务的一个重要目标是屏蔽开放网络环境带来的异构性问题,因而一般具有较高的抽象级别和独立性。这种独立性也带来了软件服务之间更加松散的耦合关系,从而使得使用者可以灵活选择服务并进行组装来生成增值服务。
|
|
|
|
一般而言,基于服务的软件开发包含3类主要角色,即服务提供者、服务使用者和服务代理。其中:
|
|
|
服务提供者按照服务契约实现了提供业务功能的软件模块。从业务角度看,它是服务的拥有者;从体系结构看,它是访问服务的平台。对于提供同一业务功能的服务,可以有多种不同的服务提供者。
|
|
|
服务使用者(即服务的用户)调用服务提供者所实现的服务,以完成特定的业务需求。从业务角度看,它是请求特定功能的业务;从系统体系看,它是寻找并调用服务或启动与服务交互的应用。服务请求者可以是用户通过客户端应用程序(如浏览器或智能手机)实现,也可以是没有用户界面的程序实现(如另一个服务)。
|
|
|
服务代理是一个可搜索的第三方注册机构,如UDDI等。服务提供者将服务描述发布给服务代理,服务请求者在服务代理处查找服务并进行绑定(可分为静态绑定和动态绑定)和调用。
|
|
|
|
微服务是一种基于一组独立部署运行的小型服务来构建应用的方法。与传统的面向服务体系结构SOA应用相比,这些小型服务主要围绕应用系统业务能力来构建,采用尽量去中心化的机制管理,使用不同技术栈开发,通过轻量级通信机制交互。
|
|
|