断言(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失去响应)的现象。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scikit-Learn

机器学习中的重要角色 Scikit-Leran&#xff08;官网&#xff1a;https://scikit-learn.org/stable/&#xff09;&#xff0c;它是一个基于 Python 语言的机器学习算法库。Scikit-Learn 主要用 Python 语言开发&#xff0c;建立在 NumPy、Scipy 与 Matplotlib 之上&#xff0c;…

【python】使用python和selenium实现某平台自动化上传作品的全步骤

第一&#xff0c;我们需要下载python并安装 下载地址&#xff1a;https://www.python.org/downloads/release/python-3123/ 3.x版本的python自带pip工具&#xff0c;因此不需要额外下载。 ModuleNotFoundError: No module named seleniumpip用于下载python适用的各类模块&…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体&#xff1b;提供一个与Subject的接口相同的接口&#xff0c;使代理可以用来替代实体&#xff1b;控制实体的存取&#xff0c;并可能负责创建和删除它&#xff1b;其他功能依赖…

用户体验至上:独立站脱颖而出的关键要素解析

在数字化时代&#xff0c;独立站成为了许多品牌和企业展示自身形象、推广产品、建立客户联系的重要平台。然而&#xff0c;要想在众多的独立站中脱颖而出&#xff0c;吸引并留住用户&#xff0c;良好的用户体验至关重要。本文Nox聚星将和大家探讨如何做好独立站的用户体验&…

【Linux深造日志】运维工程师必会Linux常见命令以及周边知识!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位宝子们好啊&#xff01;我是博主鸽芷咕。日志这个东西我相信大家都不陌生&#xff0c;在 linxu/Windows 系统…

【自定义类型详解】完结篇——联合体(共用体)与枚举详解

先赞后看已成习惯&#xff01;&#xff01;&#xff01; 联合体 1. 联合体的定义 联合体又叫共用体&#xff0c;它是一种特殊的数据类型&#xff0c;允许您在相同的内存位置存储不同的数据类型。给联合体其中⼀个成员赋值&#xff0c;其他成员的值也会跟着变化。 联合体的结…

kaggle 房价预测 得分0.53492

流程 导入需要的包引入文件,查看内容数据处理调用模型准备训练输出结果 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.linear_model i…

适合各大资源网投稿html源码

源码介绍 适合各大资源网投稿html源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果预览 源码下载 适合各大资源…

数据分析(1)

数据分析基础&#xff08;1&#xff09; 为了让刚开始学习的朋友对数据分析有一个清晰的整体认识&#xff0c;因此笔者在此对数分进行一个较为详细的介绍有助于大家更好的在宏观层面进行理解&#xff0c;避免在后续学习中产生迷茫。 数据分析的概念 定义&#xff1a;数据分析…

Oracle体系结构初探:聊聊REDO

上一篇文章写了undo&#xff08;文章链接&#xff1a;聊聊UNDO&#xff09;&#xff0c;这篇和大家一起聊聊redo。redo如果按照我的傻瓜翻译&#xff0c;意为再次去做、重新去做。Oracle官方对于redo的描述是&#xff1a;记录对数据所做的所有更改&#xff0c;包括未提交和已提…

Vue3——组件基础

组件基础 1. 组件定义与使用 1.1 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>组件基础&l…

Docker - 镜像、容器、仓库

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

leetcode:438. 找到字符串中所有字母异位词

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p "…

前端工程化01-复习jQuery当中的AJAX

4.1、基础概念 什么是服务器 一台存储网站内容、网站文件的电脑 什么是资源 网站中使用的文件&#xff08;html、css、图片、…&#xff09;这些东西就叫做资源数据也是服务器上的资源&#xff0c;而且是一个网站的灵魂 客户端 客户端应该指上网的设备但是在前端开发中&a…

Web后端-请求响应

黑马程序员JavaWeb开发教程 文章目录 一、请求1、简单参数2、实体参数3、数组集合参数&#xff08;1&#xff09;数组参数&#xff08;2&#xff09;集合参数 4、日期参数5、json参数&#xff08;1&#xff09;在Postman中怎么发起请求来传递JSON格式的请求参数&#xff08;2&a…

精通MongoDB聚合操作API:深入探索高级技巧与实践

MongoDB 聚合操作API提供了强大的数据处理能力&#xff0c;能够对数据进行筛选、变换、分组、统计等复杂操作。本文介绍了MongoDB的基本用法和高级用法&#xff0c;高级用法涵盖了setWindowFields、merge、facet、expr、accumulator窗口函数、结果合并、多面聚合、查询表达式在…

卷王问卷考试系统/SurveyKing调查系统源码

SurveyKing是一个功能强大的开源调查问卷和考试系统&#xff0c;它能够快速部署并适用于各个行业。 这个系统提供了在线表单设计、数据收集、统计和分析等功能&#xff0c;支持20多种题型&#xff0c;提供多种创建问卷的方式和设置。 项 目 地 址 &#xff1a; runruncode.c…

C++相关概念和易错语法(7)(初始化列表、隐式类型转换、友元)

1.初始化列表 初始化列表是集成在构造函数里面的&#xff0c;对象在创建的时候一定会调用构造函数&#xff08;就算不显式定义&#xff0c;也会自动生成并调用&#xff09;。初始化列表就是这些对象的成员变量在创建的时候初始化的地方。 下面是使用的例子&#xff0c;可以先…

香港服务器_免备案服务器有哪些正规的?企业、建站方向

香港服务器&#xff0c;是最受欢迎的外贸、企业建站服务器&#xff0c;在个人建站领域&#xff0c;香港服务器、香港虚拟主机都是首选的网站服务器托管方案&#xff0c;不仅其具备免备案的特点&#xff0c;而且国内外地区访问速度都很快。那么&#xff0c;现今2024年个人和企业…

项目如何部署

我们平常写的项目通常只能在本机上运行&#xff0c;要想项目能被远程访问就不得不谈到项目部署的知识&#xff0c;接下来我通过实际操作的操作让大家来上线一个vuespringBoot项目。 1.在windows上将vue部署到nginx服务器上 介绍nginx Nginx是一款高性能的Web服务器和反向代理服…