架构设计笔记-20-补充知识
知识产权
我国没有专门针对知识产权制定统一的法律(知识产权法),而是在民法通则规定的原则下,根据知识产权的不同类型制定了不同的单项法律及法规,如著作权法、商标法、专利法、计算机软件保护条例等,这些法律、法规共同构成了我国保护知识产权的法律体系。
根据《中华人民共和国著作权法》第十二条规定,改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编、翻译、注释、整理人享有,但行使著作权时不得侵犯原作品的著作权。
著作权包括人身权和财产权。其中,人身权包括发表权、署名权、修改权和保护作品完整权。复制权、出租权和发行权均属于财产权。
根据《著作权法》第十八条,报社、期刊社、通讯社、广播电台、电视台的工作人员创作的职务作品,除特定情况外,著作权的其他权利由法人或组织享有,作者仅享有署名权。
根据《中华人民共和国商标法》第五十七条,有下列行为之一的,均属侵犯注册商标专用权:
(一)未经商标注册人的许可,在同一种商品上使用与其注册商标相同的商标的;
(二)未经商标注册人的许可,在同一种商品上使用与其注册商标近似的商标,或者在类似商品上使用与其注册商标相同或者近似的商标,容易导致混淆的;
(三)销售侵犯注册商标专用权的商品的;
(四)伪造、擅自制造他人注册商标标识或者销售伪造、擅自制造的注册商标标识的;
(五)未经商标注册人同意,更换其注册商标并将该更换商标的商品又投入市场的;
(六)故意为侵犯他人商标专用权行为提供便利条件,帮助他人实施侵犯商标专用权行为的;
(七)给他人的注册商标专用权造成其他损害的。
根据《软件产品管理办法》第四条,软件产品的开发、生产、销售、进出口等活动应遵守我国有关法律、法规和标准规范。任何单位和个人不得开发、生产、销售、进出口含有以下内容的软件产品:
(一)侵犯他人知识产权的;
(二)含有计算机病毒的;
(三)可能危害计算机系统安全的;
(四)含有国家规定禁止传播的内容的;
(五)不符合我国软件标准规范的。
法律法规
我国标准根据适用范围分类,分为国家标准、行业标准、地方标准和企业标准等四类;根据标准的法律约束性可分为强制性标准和推荐性标准:标准的编号由标准代号、标准发布顺序号和标准发布年号构成。
(1) 国家标准的代号由大写汉语拼音字母构成,强制性国家标准代号为GB,推荐性国家标准的代号为GB/T。
(2) 行业标准代号由汉字拼音大写字母组成,再加上斜杠T组成推荐性行业标准(如××/T)。行业标准代号由国务院各有关行政主管部门提出其所管理的行业标准范围的申请报告,国务院标准化行政主管部门审查确定并正式公布该行业标准代号。已正式公布的行业代号有QJ(航天)、SI(电子)、JB(机械)和JR(金融)等。
(3) 地方标准代号由大写汉字拼音DB加上省、自治区、直辖市行政区划代码的前两位数字(如北京市11、天津市12、上海市31等),再加上斜杠T组成推荐性地方标准DB××/T,不加斜杠T为强制性地方标准,如DB××。
(4) 企业标准的代号由汉字大写拼音字母Q加斜杠再加企业代号组成(如Q/×××),企业代号可用大写拼音字母或阿拉伯数字,或者两者兼用所组成。
新技术
数字孪生体的三项核心技术:建模、仿真、基于数据融合的数字线程。
RMS(Rate Monotonic Scheduling)调度算法根据任务周期确定优先级,周期越短,优先级越高。 详见架构设计笔记-16-嵌入式系统架构设计理论与实践
与传统数据库相比,嵌入式数据库系统有以下几个主要特点:
- - 嵌入式:嵌入式是嵌入式数据库的基本特性。嵌入式数据库不仅可以嵌入到其他的软件当中,也可以嵌入到硬件设备当中。
- - 实时性:实时性和嵌入式是分不开的。只有具有了实时性的数据库才能够第一时间得到系统的资源,对系统的请求在第一时间内做出响应。但是,并不是具有嵌入式就一定具有实时性。要想嵌入式数据库具有很好的实时性,必须做很多额外的工作。
- - 移动性:移动性是目前在国内提得比较多的一个说法,这和目前国内移动设备的大规模应用有关。可以这么说,具有嵌入式的数据库一定具有比较好的移动性,但是具有比较好的移动性的数据库,不一定具有嵌入式。
- - 伸缩性:伸缩性在嵌入式场合显得尤为重要。首先嵌入式场合硬件和软件的平台都是千差万别,基本都是客户根据需要自己选择的结果。
嵌入式数据库中,SQLite和Berkeley DB是文件型数据库,Firebird是网络型数据库,eXtremeDB则是内存型数据库。Oracle是大型数据库,不是嵌入式数据库。(官方教材第二版P565)
宏内核和微内核的主要区别在于它们的架构和设计哲学。宏内核将所有系统服务(包括设备驱动程序、内存管理、进程管理等)都集成在单一的内核空间中,这通常能提供较高的性能,但降低了模块化和可维护性。相反,微内核只包含最基本的操作系统服务(如进程调度和通信),将其他服务(如设备驱动程序)放在用户空间或作为服务器进程运行,这提供了更高的模块化和安全性,但可能牺牲一些性能。 在微内核架构中,由于大部分系统服务都运行在用户空间,进程间通信(IPC)通常通过消息传递机制来实现。这种机制允许进程通过发送和接收消息来进行通信,而不需要直接访问对方的内存空间,从而提高了系统的安全性和模块化。
边缘计算的特点包括联接性、数据第一入口、约束性和分布性。实时性虽然是边缘计算的一个重要优势,但不是其特点的定义之一。(官方教材第二版P386)
边缘计算与云计算的协同包括资源协同、数据协同、智能协同、应用管理协同、业务管理协同和服务协同。网络安全协同不是直接列举的协同方面。(官方教材第二版P386)
信息物理系统(CPS)通过集成先进的感知、计算、通信、控制等信息技术和自动控制技术,构建了物理空间与信息空间中人、机、物、环境、信息等要素相互映射、适时交互、高效协同的复杂系统,实现系统内资源配置和运行的按需响应、快速迭代、动态优化。(官方教材第二版P369)
人工智能的关键技术包括自然语言处理、计算机视觉、知识图谱、人机交互和机器学习等,不包括区块链。(官方教材第二版P376)
专业英语
A system's architecture is a representation of a system in which there is a mapping of functionality onto hardware and software components, a mapping of the (请作答此空) onto the hardware architecture, and a concern for the human interaction with these components. That is, system architecture is concerned with a total system, including hardware, software, and humans. Software architectural structures can be divided into three major categories, depending on the broad nature of the elements they show. 1) (请作答此空) embody decisions as a set of code or data units that have to be constructed or procured. 2) (请作答此空) embody decisions as to how the system is to be structured as a set of elements that have runtime behavior and interactions. 3) (请作答此空) embody decisions as to how the system will relate to nonsoftware structures in its environment (such as CPUs, file systems, networks, development teams, etc.).
系统架构是一个系统的一种表示,包含了功能到软硬件构件的映射、软件架构到硬件架构的映射以及对于这些组件人机交互的关注。也就是说,系统架构关注于整个系统,包括硬件、软件和使用者。软件架构结构根据其所展示元素的广义性质,可以被分为三个主要类别。①模块结构将决策体现为一组需要被构建或采购的代码或数据单元。②构件连接器结构将决策体现为系统如何被结构化成为一组具有运行时行为和交互的元素。③分配结构将决策体现为系统如何在其环境中关联到非软件结构,如CPU、文件系统、网络、开发团队等。
During the systems analysis phase, you must decide how data will be organized, stored, and managed. A data structure is a framework for organizing, storing, and managing data. Each file or table contains data about people, places, things, or events. One of the potential problems existing in a file processing environment is data redundency, which means that data common to two or more information systems is stored in several places. In a DBMS, the linked tables form a unified data structure that greatly improves data quality and access. A(n) entity-relationship diagram is a model that shows the logical relationships and interaction among system entities. It provides an overall view of the system and a blueprint for creating the physical data structures. Normalization is the process of creating table designs by assigning specific fields or attributes to each table in the database. A table design specifies the fields and identifies the primary key in a particular table or file. The three normal forms constitute a progression in which third nomal form represents the best design. Most business - related data bases must be designed in that form.
在系统分析阶段,必须决定如何组织、存储和管理数据。数据结构是组织、存储和管理数据的一个框架。每个文件或表都包含有关人物、地点、事物或事件的数据。文件处理环境中存在的潜在问题之一是数据冗余,这意味着两个或多个信息系统共用的数据存储在多个不同位置。 在数据库管理系统(DBMS)中,相互连接的表形成了一个统一的数据结构,极大地提高了数据质量和访问能力。实体关系图是显示系统实体之间的逻辑关系和交互的模型。它提供了系统的总体视图和用于创建物理数据结构的蓝图。规范化是通过为数据库中的每个表分配特定字段或属性来创建表设计的过程。表设计指定字段并标识特定表或文件中的主键。三种范式构成了一个渐进过程,其中第三范式代表了好的设计。大部分与业务相关的数据库都必须以这种形式设计。
System analysis is traditionally done top - down using structured analysis based on functional decomposition. Object - oriented analysis focuses on creation of models. The three types of the analysis model are class model / interaction model / state model. There are two substages of object - oriented analysis. Domain analysis focuses on real - world things whose semantics the application captures. The object constructedin the requirement analysis shows the static structure of the real - world system and organizes it intoworkable pieces. Application analysis addresses the computer aspects of the applicati on that are visible tousers. The objects are those which can be expected to vary from time to time quite rapidly.
传统的系统分析以功能分解为基础,利用结构化分析自顶向下完成。面向对象分析关注于模型的创建。该分析模型有三种类型:类模型、交互模型和状态模型。面向对象分析有两个子阶段。领域分析侧重于现实世界中那些语义被应用程序获取的事物。在需求分析中所构造的对象说明了现实世界系统的静态结构并将其组织为可用的片段。应用分析处理应用系统中用户可见的计算机问题。所分析的对象可能会被预计时不时地发生较快的变化。
A simple but essential architectural style used in high - quality architecture involves the separation of the domain and technical building blocks, according to the tenets of Quasar (Quality - Driven Software Architecture). Business building blocks are those that contain source code for the application domain, such as business rules, calculations, validations, and so on. Technical building blocks s olve purely technical problems, such as database connections, user interfaces, and so on. The basic principle of this architec tural style is that each building block contained in an architecture may only be responsible for either of these two aspects. This s eparation is postulated by Quasar because the domain and technical aspects of software systems usually have very different change cycles. If this separation can be maintained, the result will be a well modularized system. This Quasar - based idea became manageable with the introduction of “blood types” for software components. I think this mode l has not really become established because the blood - type analogy for software is pretty far-fetched. Nevertheless, this style pro vides some very important hints that should be obvious to every software architect.
根据Quasar(质量驱动软件架构)的原则,高质量架构中使用的一种简单但必不可少的架构风格涉及领域和技术构建块的分离。业务构建块是包含应用程序域源代码的构建块,如业务规则、计算、验证等。技术构建块解决纯粹的技术问题,如数据库连接、用户界面等。这种架构风格的基本原则是,架构中包含的每个构建块可能只负责这两个方面中的任何一个。这种分离是由Quasar提出的,因为软件系统的领域和技术方面通常具有非常不同的变更周期。如果能够保持这种分离,结果将是一个模块化良好的系统。 随着软件组件“血型”的引入,这种基于Quasar的想法变得易于管理。我认为这个模型还没有真正建立起来,因为软件的血型类比是相当牵强的。然而,这种风格提供了一些对每个软件架构师来说都应该显而易见的非常重要的提示。
The core purpose of architecture design is to ascertain the allocation of application software segments to respective hardware platforms. T his necessitates the identification of the key software components under development, followed by their assignment to the div erse hardware elements upon which the system will reside. All software systems can be categorized into four fundamental rol es. The initial role pertains to data storage. The majority of information systems necessitate the storage and retrieval of data, be it a miniscule file, akin to a word processor's memo, or an extensive database housing an organization's financial records. The su bsequent function is the data access logic, encompassing the procedures necessary for data access, often executed through Structured Query Language database queries. The third function revolves around the application logic, which encapsulates the logic articulated in DFDs, use cases, and functional specifications. Lastly, the presentation logic oversees the display of information to the user a nd the reception of user commands. The three fundamental hardware constituents of a system encompass clients、servers and network.
系统架构的核心目的是架构设计,以确定应用软件的哪些部分将被分配给哪些硬件。这需要对正在开发的系统的主要软件组件进行识别,然后将它们分配给系统将在其上运行的各种硬件。所有软件系统都可以分为四个基本角色。第一个角色涉及数据存储。大多数信息系统都需要存储和检索数据,无论是小到如文字处理器产生的备忘录文件,还是大到如存储组织会计记录的大型数据库。接下来的功能是数据访问逻辑,包括访问数据所需的过程,这通常通过结构化查询语言(SQL)的数据库查询来执行。第三个功能围绕应用逻辑展开,它封装了在数据流图(DFD)、用例和功能需求中阐述的逻辑。最后,表示逻辑负责向用户显示信息并接收用户的命令。系统的三个基本硬件组成部分包括客户端、服务器和网络。
In the context of designing robust and adaptable software systems, one of the key principles is the separation of concerns bet ween the domain and infrastructure aspects of the system. According to the principles of Domain - Driven Design (DDD), the core domain logic, wh ich includes business rules, processes, and data manipulation, should be separated from the technical? functionalities, such as data persistence, user interface, and external services integration. This separation ensures that the core domain logic remains f ocused and free from the complexities of infrastructure concerns. By adhering to this principle, developers can achieve a syst em that is more loosely coupled?, allowing for easier maintenance, scalability, and adaptability to changing requirements. However, impl ementing this separation effectively requires a clear understanding of the domain and technical boundaries, as well as the abil ity to define these boundaries in a way that minimizes coupling and maximizes cohesion. Despite the challenges, this approac h has been proven in many successful software projects.
在设计稳健且适应性强的软件系统时,一个关键原则是系统领域和技术方面之间的分离。根据领域驱动设计(DDD)的原则,核心领域逻辑(包括业务规则、流程和数据操作)应与基础设施功能(如数据持久化、用户界面和外部服务集成)分离。这种分离确保了核心领域逻辑保持专注,不受基础设施复杂性的影响。通过遵循这一原则,开发人员可以实现一个更加模块化的系统,从而更容易维护、扩展,并适应需求的变化。然而,有效实施这种分离需要对领域和技术边界有清晰的理解,以及在减少耦合和最大化内聚的同时明确定义这些边界的技能。尽管存在挑战,这种方法已在许多成功的软件项目中得到了验证。
相关文章:
架构设计笔记-20-补充知识
知识产权 我国没有专门针对知识产权制定统一的法律(知识产权法),而是在民法通则规定的原则下,根据知识产权的不同类型制定了不同的单项法律及法规,如著作权法、商标法、专利法、计算机软件保护条例等,这些法律、法规共同构成了我…...

scrapy 爬虫学习之【中医药材】爬虫
本项目纯学习使用。 1 scrapy 代码 爬取逻辑非常简单,根据url来处理翻页,然后获取到详情页面的链接,再去爬取详情页面的内容即可,最终数据落地到excel中。 经测试,总计获取 11299条中医药材数据。 import pandas as…...
PDH稳频技术粗谈
PDH(Plesiochronous Digital Hierarchy)是一种传输技术,主要用于数字通信中的传输系统。PDH稳频技术是指在PDH传输系统中,通过稳定频率来实现传输系统的稳定性和可靠性。 PDH传输系统中,时钟同步是非常重要的。传输系…...

[LeetCode] 130. 被围绕的区域
题目描述: 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O 组成,捕获 所有 被围绕的区域: 连接:一个单元格与水平或垂直方向上相邻的单元格连接。区域:连接所有 O 的单元格来形成一个区域。围绕&#x…...
C语言位运算
目录 1.C语言位运算符表 2.C语言移位运算符详解(配实例作业) 3.C语言&按位与运算符详解 4.C语言|按位或运算符详解 5.C语言^按位异或运算符详解 6.C语言~取反运算符详解 C语言位运算这一章主要介绍C语言位运算符表、C语言移位运算符、C语言&按…...
Go 语言中格式化动词
当然,我很乐意为你提供 Go 语言中所有的格式化动词的完整列表。Go 语言的格式化动词非常丰富,可以满足各种打印和格式化需求。以下是完整的列表: 通用: %v - 以默认格式打印值 %v - 类似 %v,但对结构体会添加字段名 %#…...

CSS3 动画相关属性实例大全(四)(font、height、left、letter-spacing、line-height 属性)
CSS3 动画相关属性实例大全(四) (font、height、left、letter-spacing、line-height 属性) 本文目录: 一、font 属性(所有字体属性) 1.1、font-size属性(指定字体的大小) 1.2、f…...

大模型涌现判定
什么是大模型? 大模型:是“规模足够大,训练足够充分,出现了涌现”的深度学习系统; 大模型技术的革命性:延申了人的器官的功能,带来了生产效率量级提升,展现了AGI的可行路径&#x…...
LeetCode 1456.定长子串中元音的最大数目
题目: 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 思路:定长滑动窗口 入 更新 出 代码: class Solution {pub…...
freeswitch-esl 三方设备实现监听功能
使用场景: A和B在通话中,C想监听A和B通话内容 方法一: 修改拨号计划<extension name="global" continue="true"><condition><action application="info"/>...

【LeetCode】123.买卖股票的最佳时间
清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题,就是我们需要考虑的。 1. 题目 2. 思想 这道题虽然是难题,但是思想比较简单。 题目要求说至多买卖两次,也就是说,也可以买卖一次,这种情况…...

elk部署安装
elk部署 前提准备1、elasticsearch2、kibana3、logstash 前提准备 1、提前装好docker docker-compose相关命令 2、替换docker仓库地址国内镜像源 cd /etc/docker vi daemon.json # 替换内容 {"registry-mirrors": [ "https://docker.1panel.dev", "ht…...

使用 JAX 进行 LLM 分布式监督微调
LLM distributed supervised fine-tuning with JAX — ROCm Blogs (amd.com) 24年1月25日,Douglas Jia 发布在AMD ROCm 博客上的文章。 在这篇文章中,我们回顾了使用 JAX 对基于双向编码器表示(BERT)的大型语言模型(LL…...

【简单版】通过 Window.performance 实现前端页面(性能)监控
1 背景 前端监控系统告警xx接口fetchError 问题:前端监控系统没有更多的错误信息,查询该fetch请求对应的接口日志返回200状态码、无请求异常记录,且后台能查到通过该fetch请求成功发送的数据。那是前端页面的错误还是前端监控系统的问题&…...

微信小程序考试系统(lw+演示+源码+运行)
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序考试系统的开发全过程。通过分析微信小程序考试系统管理的不足,创建了一个计算机管理微信小程序考试系统的方案。文章介绍了微信小程序考…...

手机摄影入门
感觉会摄影的人是能够从生活中发现美的人。 我不太会拍照,觉得拍好的照片比较浪费时间,而且缺乏审美也缺乏技巧,所以拍照的时候总是拍不好。但有时候还是需要拍一些好看的照片的。 心态和审美可能需要比较长时间提升,但一些基础…...
微信小程序手机号授权获取(aes加密手机号)
<view class="container"> <view class=topTabSwiper> <view class=tab {{currentData == 0 ? "tabBorer" : ""}} data-current = "0" bindtap=checkCurrent>一键授权<span class="tab_bor"><…...

asyn queueRequest使用实例
使用queueRequest读写端口驱动的示例,驱动驱动程序使用一个基于asyn实现了asynCommon和asynOctet的驱动程序-CSDN博客中编写的驱动程序,本程序的C代码如下: #include <stdlib.h> #include <stdio.h> #include <string.h>#…...

关于jmeter设置为中文问题之后无法保存设置的若干问题
1、jemeter如何设置中文模式 Options--->Choose Language--->Chinese(Simplifies), 如此设置后就可显示中文模式(缺点:下次打开还是英文);如下图所示: 操作完成之后: 但是下次重启之后依旧是英文; 2、在jmeter.…...

基于FPGA的信号发生器verilog实现,可以输出方波,脉冲波,m序列以及正弦波,可调整输出信号频率
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 输出方波 输出脉冲波 输出m随机序列 输出正弦波 2.算法运行软件版本 vivado2019.2 3.部分核心程序 (完整…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...

小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...