断言(Assertion)在IT技术中的确切含义— 基于四类典型场景的分析

当“断言”(Assertion)一词成为IT术语时,语义的混沌性和二义性也随之而生。那么,何为断言?断言何为?实际上,只需分析四种典型场景,确切答案和准确描述就将自然显现。
在SAML(Security Assertion Markup Language,安全断言标记语言)一词中,含有Assertion一词。
在SOA的服务质量(QoS)的策略中,有Policy Assertions(策略断言)这一专业术语。
当使用Visual Studio写C/C++代码时,在编译过程中,有时会遇到Assertion Failed对话框弹出的情况。
在SCCM服务器的日志中,有时会出现“SQL Server Assertion”的警告信息。
那么,断言(Assertion)在IT技术中的确切含义是什么?
简言之,断言(Assertion),或者是系统中实体的自我描述(声明),或者是对系统中实体的符合性检验(要求),或者是两者兼而有之。具体而言,如果系统中实体的自我描述通过了符合性型检验(即,声明符合要求),那么,就允许提供服务或者允许系统继续运行,反之,就拒绝提供服务或者使得系统中断运行。
应将“断言”(Assertion)理解为关键的因而是“强烈的”陈述,因为,与条件(condition)、要求(requirement)、准则(criteria)等词相比,断言(Assertion)具有更为强烈的强制性含义。
以下,基于Merriam-Webster字典中动词Assert和名词Assertion的原意,对上述四类场景作简要分析。

一、在字典中的原意
(1)Assert
① 强烈的陈述或声明
to state or declare positively and often forcefully or aggressively(积极主动地、通常是强有力的或带有侵略性的陈述或声明)
例句:The suspect continued to assert his innocence(嫌犯继续坚持自己的清白)
② 强制性的接受或承认
to compel or demand acceptance or recognition of (something, such as one's authority) — 迫使或要求接受或承认(某事,例如,某人的权威)
例句:… the confrontations that inevitably occur [between orangutans] when several males try to assert dominance …(……当几只雄性猩猩试图夺取统治地位时,[猩猩之间]不可避免地会发生冲突……)
③ 证明存在性
to demonstrate the existence of(证明某种事物或属性的存在)
例句:He wished to vindicate himself in some way, to assert his manhood(他希望以某种方式证明其正当性,以证明自己够男人)

(2)Assertion
1. insistent and positive affirming, maintaining, or defending (as of a right or attribute) — 坚持和积极的确认、维护或保卫(作为权利或属性)
2. a declaration that something is the case — 声明某事属实

二、IT技术中的引申含义
基于以上文字分析,可对Assertion在IT技术中的引申含义进行分析。

(1)SAML
在SAML(Security Assertion Markup Language,安全断言标记语言)中,Assertion意为“强制性的要求,必须完全实现的要求,必须毫无疑义地得到证明的要求”。正是因为SAML在安全性方面的高强度要求(认证交换、消息完整性、消息保密等),使得“Assertion”一词被选为用于表述的文字。
下图为SAML的工作原理图(截图引用)。

具体而言,一个系统实体(Entity,可理解为客户端)发送应用请求,其目的是访问正处于被保护状态的资源,此时,系统中的凭证收集器对与此系统实体相关联的认证断言、属性断言和授权断言进行认证,在成功确认有效性后,才决定将访问权限授予此系统实体(客户端)。策略实施点根据该授予的权限来处理具体的应用请求。在这个过程中,SAML断言(包括认证断言、属性断言和授权断言)被封装在 SAML 协议中在不同实体间传递。

(2)Policy Assertions(策略断言)
在SOA和微服务架构中,服务提供者都会要求服务消费者符合某种策略,比如,要求服务消费者提供Kerberos安全标识才能获得某项服务,这些要求,就被定义为Policy Assertions,而一项Policy(策略)可以包括多个Policy Assertions。
策略断言,就是对服务消费者的强制性的技术要求,通常与安全性密切相关,在被证明有效后方可获得服务提供者的服务

(3)在Visual Studio中的Assertion Failed对话框
An assertion statement specifies a condition that you expect to hold true at some particular point in your program. If that condition does not hold true, the assertion fails, execution of your program is interrupted, and this dialog box appears.
翻译如下:
断言语句指定了期望在程序中某个特定点上保持为真的条件。如果该条件不成立,则断言失败,程序的执行被中断,并出现此对话框。

在此种场景中,C/C++代码里的Assertion语句表达了预期为真的条件,即,代码编写者“期待”条件为真。运行时,若条件果然为真,则继续运行后续代码,否则(条件为假),就中断运行并弹出错误对话框。

(4)在警报中出现“SQL Server断言”
此种情况多出现在SCCM环境中,与运维相关。
:SCCM是微软的System Center Configuration Manager,现在,这一产品已更名为Endpoint Configuration Manager并属于Endpoint Manager suite。
① “源”为:CONFIGMGRSEC
“CONFIGMGRSEC”是在字符串“CONFIGuration ManaGeR SECondary”中取大写字母而形成。
具体而言,如果在SCCM环境中安装辅助站点(第2个Site站点,The secondary site),在安装过程中,可选择自动安装SQL Express版本并配置使用,而默认的SQL Instance名称就是“CONFIGMGRSEC”。
故此,这一警报来自于SCCM环境中的辅助站点中的SQL Server Express版本。
② 警报的源路径为:安装为SCCM第2个站点(The secondary site)的服务器。
③ 具体的警告信息为:
SQL Server Assertion: File: <%s>, line=%d Failed Assertion = '%s'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.
如下图所示:

微软对“Assert”的解释 -- 点击可打开连接。
Asserts are statements placed in the code of an application to ensure that certain conditions are satisfied.   In that respect an assert behaves similar to an error.   You can think of asserts as emphatic, firm errors.   The condition specified must be met for the program to continue regular execution.  If the condition isn't met, the assert is raised.
此段叙述意为:
断言是置于应用程序代码中的语句,以此,确保某些条件的满足性。就此而言,断言的行为类似于错误。可将断言视为被强调的无疑的错误。唯有被指定的条件满足,程序才可继续正常执行,否则就引发断言。
与上述场景(3)相似,满足条件就继续运行,不满足条件就中断。
对此类问题的解决,微软官方文档给出的建议是:尽可能地安装SQL Server的累计更新(Cumulative Update),再使用命令“DBCC CHECKDB”执行检查,若正常则保持观察。此后,若再次出现此类情况,应在搜集相关信息后向微软技术支持寻求帮助。
在具体的技术实践中,在安装累计更新之后,问题能得到解决。
即便此类报警仍然持续出现,只要没有其他异常情况出现,就可安全地忽略之,除非出现因assert而导致产生dump文件(很可能导致SQL Server失去响应)的现象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/562863.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浏览器主页被“绑架”了?按照这个可以修改。

前言 小白是一个很喜欢看新闻的人&#xff0c;浏览器的默认主页通常都是MSN和百度的新闻&#xff0c;这可以说是习惯吧。 电脑用得好好的&#xff0c;有一天浏览器的主页被“绑架”了&#xff0c;变成了“hao***”。我知道&#xff0c;新一轮的检查又准备开始了。 上一次是Wi…

Docker - WEB应用实例

原文地址&#xff0c;使用效果更佳&#xff01; Docker - WEB应用实例 | CoderMast编程桅杆Docker - WEB应用实例 在之前的章节中&#xff0c;仅对普通容器进行了演示&#xff0c;但在实际中常常使用到 Docker 容器中的 WEB 应用程序。 运行一个WEB应用 拉取镜像 创建一个容器…

小型架构实验模拟

一 实验需求 二 实验环境 22 机器&#xff1a; 做nginx 反向代理 做静态资源服务器 装 nginx keepalived filebeat 44机器&#xff1a; 做22 机器的备胎 装nginx keepalived 99机器&#xff1a;做mysql的主 装mysqld 装node 装filebeat 77机器&#xff1a;做mysq…

ROS机器人实战,对标古月老师HRMRP机器人(一)——机器人总体方案设计

咳咳&#xff01;这个是自己的毕业设计&#xff0c;内容比较多就拆开发。设计实现了一款SLAM移动机器人&#xff0c;加机械臂完成视觉识别抓取的&#xff0c;同时还有语音识别控制、QT上位机控制、Web网页控制。前几年看古月老师的视频&#xff0c;看到古月老师设计的HRMRP&…

Python exe 文件反编译为 Python 脚本

文章目录 前言版本反编译Python 可执行文件&#xff08;.exe&#xff09;反编译打包一个简单的 .exe 可执行文件提取 pyc 文件使用脚本提取使用工具提取 将 .pyc 文件转换为 Python 脚本入口运行类非入口运行类转换补全后的 pyc 文件uncompyle6 反编译在线工具 可能遇到的问题P…

Web前端框架/库/工具

前言 前端从步枪&#xff08;原生js&#xff09;到了半自动武器&#xff08;jQuery&#xff09;并进化为全自动武器&#xff08;三大框架&#xff08;angular&#xff0c;react&#xff0c;vue及其生态链&#xff09;&#xff09;。 常说工欲善其事必先利其器。对于那些想要提…

前端入门:HTML(CSS边框综合案例)

案例&#xff1a; 源代码&#xff1a; css-borders.html: <body> <div id"square"> </div> <br> <div id"triangle"> </div> <br> <div id"trapezium"> </div> <br> <div id…

开源项目-汽车租赁管理系统

哈喽,大家好,今天主要给大家带来一个开源项目-汽车租赁管理系统 汽车租赁管理系统的主要功能包括汽车管理,新闻管理,用户管理,订单管理,数据展示等模块 注:后续文章都会附上安装教程,有问题也欢迎大家评论私信。 登录 汽车管理 汽车管理可以查看所有汽车进行线上汽…

SpringCloud-搭建XXL-JOB任务调度平台教程

一、XXL-JOB任务调度平台介绍 XXL-JOB是一个轻量级分布式任务调度框架&#xff0c;旨在解决分布式系统中的任务调度问题&#xff0c;提高系统的处理效率和任务管理的便捷性。 1. XXL-JOB任务调度概念 XXL-JOB任务调度平台通过中心化管理方式&#xff0c;使得任务的调度更加高…

【Hadoop】- MapReduce YARN的部署[8]

目录 一、部署说明 二、集群规划 三、MapReduce配置文件 四、YARN配置文件 五、分发配置文件 六、集群启动命令 七、查看YARN的WEB UI 页面 一、部署说明 Hadoop HDFS分布式文件系统&#xff0c;我们会启动&#xff1a; NameNode进程作为管理节点DataNode进程作为工作节…

12.Hexo helpers类似函数和data folder数据文件夹

helper Hexo里的helper&#xff0c;或者说是函数 基本上就是小函数&#xff0c;可以在layout布局中使用&#xff0c;可以允许做一些事情 如字符串操作、检查true或false、检查是否在一个页面上、打印出某个页面中的日期或时间特定格式 打开index.ejs trim 可以通过 <%…

WordPress SQLite Docker 镜像封装细节

为了让大家用的放心&#xff0c;同时解答 GitHub 社区中的疑问。这篇文章聊聊上一篇文章的 Docker 容器封装细节。 写在前面 在前一篇文章《WordPress 告别 MySQL&#xff1a;Docker SQLite WordPress》中&#xff0c;如果你跟着文章实践&#xff0c;大概三分钟就能够启动一个…

智慧化转型赋能园区创新:科技创新引领产业智慧化,打造高效发展新格局

在全球化和信息化浪潮的推动下&#xff0c;园区作为区域经济发展的重要引擎&#xff0c;正面临着前所未有的机遇与挑战。为应对这些挑战并把握机遇&#xff0c;园区需积极拥抱智慧化转型&#xff0c;通过科技创新引领产业智慧化&#xff0c;打造高效发展的新格局。本文将深入探…

Cadence软件安装

Cadence软件 iscape 用于安装cadence家的安装软件 解压缩安装包tar -xvf IScape04.23.tar.gz运行bash IScape/iscape/bin/iscape.sh 设置默认安装路径(可选)IC618 这里使用的是IC618.320版本作为示例,其他版本安装过程差不多 安装 首先安装终端模拟器,不然安装之后会失败…

学习亚马逊云科技AWS云计算技术的三款官方免费3A游戏大作

玩3A大作免费电脑游戏&#xff0c;就能成为AWS云架构师、云开发大&#x1f42e;&#xff1f;这么好的事尊的假的&#xff1f;小李哥今天就来给大家介绍&#xff0c;如何通过玩AWS官方的定制版虚拟人生、炉石传说和密室逃脱游戏学习AWS。这三个游戏完全免费&#xff0c;没有任何…

PTA 龟兔赛跑 【C++】【Python】

记得很早之前刷这道题用的方法是&#xff1a;计算过了多少分钟局面会重新回到最开始&#xff0c;对输入的T取余&#xff0c;然后计算出每个时间段谁的路程更远&#xff0c;看取余后的T在哪个时间段&#xff0c;就是谁跑的快&#xff0c;然后有一些临界是路程相等的。只能说是个…

C# Solidworks二次开发:访问平面、曲面相关API详解

大家好&#xff0c;今天要介绍的是关于平面、曲面相关的API。 下面是相关的API: &#xff08;1&#xff09;第一个为ISurfacePlanarFeatureData&#xff0c;这个API的含义为允许访问平面表面特征&#xff0c;下面是官方的具体解释&#xff1a; 下面是官方使用的例子&#xff…

Docker - 镜像、容器、仓库

原文地址&#xff0c;使用效果更佳&#xff01; Docker - 镜像、容器、仓库 | CoderMast编程桅杆Docker - 镜像、容器、仓库 提示 这个章节涉及到 Docker 最核心的知识&#xff0c;也是在使用过程中最常使用到的&#xff0c;需要重点学习。 什么是Docker镜像、容器、仓库&…

【Linux】用户管理命令

Linux通常用于服务器,一个Linux服务器一般会有多个开发人员进行使用,这个时候就需要给不同的开发人员分配不同的用户,以便于权限的划分. useradd: 这个命令用于添加新用户。例如&#xff0c;要添加一个名为"zhangsan"的用户&#xff0c;可以使用以下命令&#xff1a…

强固型工业电脑在码头智能化,龙门吊/流机车载电脑的行业应用

码头智能化行业应用 对码头运营来说&#xff0c;如何优化集装箱从船上到码头堆场到出厂区的各个流程以及达到提高效率。 降低成本的目的&#xff0c;是码头营运获利最重要的议题。为了让集装箱码头客户能够安心使用TOS系统来调度指挥码头上各种吊车、叉车、拖车和人员&#xf…