CAS是一个多义词,以下是CAS在不同领域中的定义及其特性:
一、CAS在化学领域的定义及特性
在化学领域,CAS是Chemical Abstracts Service(化学文摘服务社)的缩写,它是一个非营利性的组织,致力于为化学物质提供唯一的识别号码和相关信息。
-
CAS登记号:
- CAS最著名的产品是CAS登记号,也被称为CAS号。它是一个由数字和字母组成的唯一标识符,用于识别特定的化学物质。
- CAS号通常由7位数字组成,有时还会附加一个字母或字母组合。例如,水(H2O)的CAS号为7732-18-5,乙醇(C2H5OH)的CAS号为64-17-5。
-
CAS数据库:
- CAS数据库包含了数千万种化学物质的信息,包括化学名称、结构式、物理化学性质、制备方法、用途、毒性等。
- CAS是化学物质信息的重要来源,在化学、材料科学、生物学、医学、农业、环境科学等领域有着广泛的应用。
二、CAS在计算机科学领域的定义及特性
在计算机科学领域,CAS通常指Compare-And-Swap(比较并交换),是一种非阻塞式锁,也称为乐观锁。
-
工作原理:
- 采用CAS的方式修改共享资源时会读取共享资源作为一个预期值,然后进行比较。
- 如果预期值和当前值一样,那么就会更新成功。
- 如果不一样,会采用自旋的方式再次获取共享资源的值尝试完成更新。
- 当自旋次数达到一定阈值时还没有完成更新,那么就更新失败。
-
特性:
- 无锁操作:CAS操作无需加锁,线程不会进入阻塞状态,提高了性能。
- 适合多读场景:在多读少写的场景下,CAS能够显著提高系统的并发性能。
- 竞争激烈时效率低:如果竞争激烈,重试频繁,CAS的效率会受到影响。
-
应用:
- CAS在计算机科学领域有广泛的应用,如Java中的Atomic类就使用了CAS操作来实现线程安全的无锁更新。
三、CAS在单点登录系统中的定义及特性
在单点登录(SSO)系统中,CAS是Central Authentication Service(中央认证服务)的缩写。
-
开源项目:
- CAS是耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法。
- 在2004年12月,CAS正式成为JA-SIG的一个项目。
-
特性:
- 开源性:CAS是一个开源的解决方案,用户可以自由使用和修改。
- 多协议支持:CAS Server和CAS Client通信支持多协议,如CAS、Oauth、OpenID、SAML等。
- 多种认证机制:支持Active Directory、JAAS、JDBC、LDAP等多种认证机制。
- 安全性:使用票据(Ticket)来实现支持的认证协议,并通过SSL协议确保ST和TGC的安全性。
- 高可用性:通过把认证过的状态数据存储在TicketRegistry组件中,这些组件有很多支持分布式环境的实现。
-
工作流程:
- 用户登录时,CAS Server会验证用户的身份并随机产生一个唯一、不可伪造的Service Ticket(ST),并缓存以待将来验证。
- 之后系统自动重定向到Service所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC)。
- CAS Client在拿到Service和新产生的Ticket过后,会与CAS Server进行身份核实,以确保Service Ticket的合法性。
综上所述,CAS在不同领域中有不同的定义和特性。在化学领域,CAS是化学文摘服务社的缩写;在计算机科学领域,CAS是比较并交换的非阻塞式锁;在单点登录系统中,CAS是中央认证服务的缩写。