JavaEE与云服务知识概括

JavaEE与云服务知识概括

  • 文件、块、对象存储
  • IaaS、SaaS 和 PaaS
  • IDaaS
  • 中台
  • 服务器、域名、端口、备案
  • 低代码与引擎
  • java沙箱
  • 私有化和公有化部署
  • LICENSE与LICENSE服务器
  • 组件、套件、 中间件、插件

文件、块、对象存储

存储简介:

  • 根据不同的分类形式,存储也会被分为不同的类型,但用途是一致的:存储的最终目的是存放数据。
  • 对于这种第三方存储,我们也可以叫他中介库。
  • 存储的分类有很多种形式:
    本地存储外置存储:
    <1>本地存储:就是使用内存或者硬盘进行存储。
    <2>外置存储:就是会用U盘或移动硬盘进行存储。
    DAS(Direct Attach STorage)SAN(Storage Area Network)NAS(Network Attached Storage):
    <1>DAS:是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。
    <2>SAN:是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。它采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
    <3>NAS:NAS(Network Attached Storage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
    块存储文件存储对象存储
    <1>块存储:是块设备,一切磁盘形式存在的存储都是块设备,即块存储。
    1、块存储强调裸磁盘。
    2、所有以磁盘形式直接提供给主机的或服务器访问的存储都是块存储。
    3、块存储使用时文件系统在客户端。
    <2>文件存储文件存储的存储端多了一层文件系统,通过文件系统的调度后再对外提供存储资源。
    1、文件存储易于共享。
    2、块存储加文件系统打包后对外提供存储服务(NAS)。
    <3>对象存储:是一种全新的存储架构,综合了块存储和文件存储的优点
    1、特点:速度快,易于共享扩展性强。
    2、文件存储是以传统的目录架构存储的而对象存储是二层结构的文件系统。
  • 注意:
    一般来说SAN和DAS形式存储的都是用块存储。
    而文件存储和对象存储一般都是NAS形式。

DAS、NAS、SAN三种技术的比较和分析:

  • 针对Linux集群对存储系统高性能和数据共享的需求,国际上已开始研究全新的存储架构和新型文件系统,希望能有效结合SAN和NAS系统的优点,支持直接访问磁盘以提高性能,通过共享的文件和元数据以简化管理,
  • 目前对象存储系统已成为Linux集群系统高性能存储系统的研究热点,如Panasas公司的Object Base Storage Cluster System系统和Cluster File Systems公司的Lustre等。
    JavaEE与云服务知识概括_第1张图片

对象存储服务OSS:

  • 无论是基于C/S架构(部分资源在本地),还是B/S架构(全部资源在服务器)的应用,都要面临一个文件存储的问题。
  • 对于文件存储最常见的有两种解决方案:
    直接存储到应用服务器的本地中
    <1>存储到服务器本地,小的应用程序,是没有什么问题的。
    <2>但是如果文件多了,大了,本地存储的速率、安全性都受到极大的挑战。I/O吞吐会让系统不堪重负。
    处理后直接存入到数据库中:
    <1>存储到数据库中,数量少的时候,还能解决一点问题,同样的对于大数据量,是灾难性的。
  • 新的解决方案:OBS对象存储,让海量小文件存储变得轻而易举。存储速度上很有保障,同时对于数据的备份和安全,云产品都有比较完美的考虑。价格也是白菜价,可谓物美价廉。现在已经成为团队内部的备选组件。
    ①对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。
    ②核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
  • 代码的接口方法,也比较简单,直接根据SDK接入即可。
  • 主要用来解决如下的几种业务场景:
    小图片的存储。APP开发过程中,小图片的上传和展示频率很高。
    编辑器(例如UEditor)中的图片存储,此处需要单独书写点代码,完成存储工作。

OSS使用中的基本概念:

  • Bucket(存储空间):
    ①Bucket是用户用来管理所存储0bject的存储空间。每个用户可以拥有多个Bucket。Bucket的名称在0SS的范围内必须是全局唯一的,一旦创建之后无法修改名称。Bucket内部的Object数目是没有限制的。
    ②Bucket对于用户来说是一个管理Object的单元,所有的Object都必须隶属于某个Bucket。Bucket有一些属性用来控制Region、0bject的访问控制、Object的生命周期等,这些属性是作用在该Bucket下所有的Object上的,因此用户可以灵活创建不同的Bucket来完成不同的管理功能。
    ③Bucket命名规范:
    <1>只能包括小写字母,数字和短横线(-)
    <2>必须以小写字母或者数字开头
    <3>长度必须在3-63字节之间
  • Object(对象,文件):
    ①Object是OSS存储数据的基本单元,称为OSS的对象,也被称为OSS的文件。
    ②Object命名规范:
    <1>使用UTF-8编码
    <2>长度必须在1-1023字节之间
    <3>不能以“/”或者“”字符开头
    <4>注意:Object的名字是大小写敏感的
  • Region (区域):
    ①Region表示OSS的数据中心所在的区域,物理位置。用户可以根据费用、请求来源等综合选择数据存储的Region。一般来说,距离用户更近的Region访问速度更快。目前已经开通的Region有杭州,上海,深圳,北京,青岛,香港,美国,新加坡。
    ②Region是在创建Bucket的时候指定的,一旦指定之后就不允许更改,该Bucket下所有的0bject都存储在对应的数据中心,目前不支持Object级别的Region设置。
  • Endpoint(访问域名):
    ①Endpoint表示OSS对外服务的访问域名。 OSS以HTTP REST API的形式对外提供服务,当访问不同的Region的时候,需要不同的域名。通过内网和外网访问同一个Region所需要的Endpoint也是不同的。
  • AccessKey(访问密钥):
    ①AccessKey,简称AK,指的是访问身份验证中用到的Accesskeyld和AccessKeySecret. OSSitt aAccessKeyIdHAccessKeySecretxf FKIU密的方法来验证某个请求的发送者身份。
    ②AccesskeyId用于标示用户,AccessKeySecret是用户用于加密签名字符串和0SS用来验证签名字符串的密钥,其中AccesskeySecret必须保密。

通过API/SDK上传文件:

  • 概述:用户可遍历所有需上传的文件,通过API/SDK中的PutObjectPostObjectMultipartUpload三个接口完成上传操作。
  • 区别:
    PutObject:是可用于服务器端上传不易太大的文件;
    Post0bject适合于通过html表单直接上传文件到bucket,不经过用户的应用服务器:
    MultipartUpload支持断点上传,适合于网络质量较差或者文件大小较大的情况下的上传。
  • 优缺点:
    ①优点:适用场景广泛、使用灵活:
    ②缺点:操作复杂、速度较慢。
  • 步骤:
    ①打开OSS网站的帮助与文档,点击SDK开发包下载,点击JAVA/SDK开发包下载。
    ②导入JAVA/SDK开发包中的JAR包。
    ③编写方法
    ④PutObject注意事项:
    <1>用户在metaData中指定Content-MD5请求头,0SS会计算body的Content-MD5并检查一致性:
    <2>如果Head中没有加入Content length参数,会返回411 Length Required错误:
    <3>ID/KEY/ENDPOINT设置有误会报403,错误码:AccessDenied。
public class OSSObjectSample{
	//访问id	
	private static final String ACCESS_ID ="your access key id";
	//访问密钥
	private static final String ACCESS_KEY ="your access key secret";
	//访问地址
	private static final String Endpoint="http://oss-cn-guangzhou.aliyuncs.com";
	
	public static void main(String[] args) throws Exception{
		//桶地址
		String bucketName = "bucketName";
		//桶上的对象地址
		String key = "aliyuntest/photo1.jpg";
		//本地文件地址
		String fileName= "d:/temp/photo1.jpg";

		//OSS客户端
		OSSClient client = new OSSClient(ACCESS_ID,ACCESS_KEY,Endpoint);
		//文件形式
		File file = new File(fileName);
		
		//对象元数据
		ObjecMetadata objectMeta = new ObjecMetadata ();
		objectMeta.setContentLength(file.length());
		objectMeta.setContentType("image.jpeg");
		//流形式
		InputStream input = new FileInputStream(file);
		//方式一:流形式
		client.putObject(bucketName,key,input,objectMeta);
		//方式二:文件形式
		client.putObject(bucketName,key,new File(fileName));
		
}

通过API/SDK拷贝文件:

  • 概述:将同一数据中心的bucket上的数据进行迁移可使用CopyObject和 UploadPartCopy .
  • 区别:
    ①如果是1GB以下文件采用CopyObject (超过该大小会返回400和错误提示:EntityToolarge)。
    ②超过该大小的则使用UploadPartCopy
  • 优缺点:
    ①优点:速度较快;
    ②缺点:操作复杂;
  • 注意:通过OSSCMD可方便实现。

对象存储结构组成部分:

  • 对象
    ①对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。
  • 对象存储设备:对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统,OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问。目前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:
    ①数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
    ②智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能。
    ③每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销。
  • 元数据服务器(Metadata Server,MDS):MDS控制Client与OSD对象的交互,主要提供以下几个功能:
    ① 对象存储访问。MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问。
    ②文件和目录访问管理。MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。
    ③Client Cache一致性。为了提高Client性能,在对象存储系统设计时通常支持Client方的Cache。由于引入Client方的Cache,带来了Cache一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cache,从而防止Cache不一致引发的问题。
  • 对象存储系统的客户端Client:为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。

IaaS、SaaS 和 PaaS

IaaS、SaaS 和 PaaS简介:

  • SaaS、PaaS、IaaS简单的说都属于云计算服务,也就是云计算+服务。
  • 云计算就是一种按照需求通过Internet获取计算资源的形态。这些计算资源被包装成为服务,提供给用户。而提供这些服务的主体,我们称之为云服务供应商(Cloud Service Provider)。

IaaS(Infrastructure as a service – 基础设施即服务):

  • 用户可以在云服务提供商提供的基础设施上部署和运行任何软件,包括操作系统和应用软件。
  • 用户没有权限管理和访问底层的基础设施,如服务器、交换机、硬盘等,但是有权管理操作系统、存储内容,可以安装管理应用程序,甚至是有权管理网络组件。
  • 简单的说用户使用IaaS,有权管理操作系统之上的一切功能。
  • 我们常见的IaaS服务有虚拟机、虚拟网络、以及存储。

PaaS(Platform as a service – 平台即服务):

  • PaaS给用户提供的能力是使用由云服务提供商支持的编程语言、库、服务以及开发工具来创建、开发应用程序并部署在相关的基础设施上。
  • 用户无需管理底层的基础设施,包括网络、服务器,操作系统或者存储。他们只能控制部署在基础设施中操作系统上的应用程序,配置应用程序所托管的环境的可配置参数。
  • 常见的PaaS服务有数据库服务、web应用以及容器服务。
  • 成熟的PaaS服务会简化开发人员,提供完备的PC端和移动端软件开发套件(SDK),拥有丰富的开发环境(Inteli、Eclipse、VS等),完全可托管的数据库服务,可配置式的应用程序构建,支持多语言的开发,面向应用市场。

SaaS(Software as a Service – 软件即服务):

  • SaaS给用户提供的能力是使用在云基础架构上运行的云服务提供商的应用程序。可以通过轻量的客户端接口(诸如web浏览器(例如,基于web的电子邮件))或程序接口从各种客户端设备访问应用程序。
  • 用户无需管理或控制底层云基础架构,包括网络,服务器,操作系统,存储甚至单独的应用程序功能,可能的例外是有限的用户特定应用程序配置设置。
  • 类似的服务有:各类的网盘(Dropbox、百度网盘等),JIRA,GitLab等服务。而这些应用的提供者不仅仅是云服务提供商,还有众多的第三方提供商(ISV:
    independent software provider)。

简单来说:

  • 如果你是一个网站站长,想要建立一个网站。不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序。
  • 现在你追随潮流,采用流行的云计算。
  • 如果你采用IaaS服务,那么意味着你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件。
  • 而如果你采用PaaS的服务,那么意味着你既不需要买服务器,也不需要自己装服务器软件,只需要自己开发网站程序。
  • 如果你再进一步,购买某些在线论坛或者在线网店的服务,这意味着你也不用自己开发网站程序,只需要使用它们开发好的程序,而且他们会负责程序的升级、维护、增加服务器等,而你只需要专心运营即可,此即为SaaS。
    JavaEE与云服务知识概括_第2张图片

IDaaS

什么是 IAM、EIAM 和 CIAM和IDaaS :

  • IAM:Identity and Access Managetment,身份和访问管理,或者简称身份管理。
    ①其实回顾过去二十年,当我们讨论 IAM 时,其实大多数人想到的都是针对企业内部员工、合作伙伴、临时人员等提供统一身份认证和权限管理能力的内部产品(Enterprise Identity & Access Management 或 EIAM)。然而,这是缺乏想象力的,不能因为 EIAM 传统而简单,就只谈论、只研发 EIAM。
    ②随着软件的边界拓展到我们生活的方方面面,统一管理身份的需求也不断拓展边界,以企业为核心,由内而外,企业也开始容纳外部的海量顾客身份,由此诞生了针对互联网用户的顾客身份管理(Customer Identity & Access Management 或 CIAM)。举个例子,京东企业内部的工程师、快递员的身份管理均属于 EIAM,而电商平台中的卖家、买家的身份管理属于 CIAM。
  • IDaaS 是什么?
    ①2015 年开始,开始有 Accenture、AWS 等国外服务商率先将 CIAM 作为一个独立的、必须的产品来看待。完全不同于以内部效率为核心的 EIAM 产品,CIAM 的目标是协助企业完成全局的信息化转型,在所有对外服务中统一用户的身份,在以体验为核心的用户争夺战中,为终端用户提供完整的身份自助服务、为不同平台用户提供统一而流畅的使用、注册体验,以此来提高用户的留存、黏性,进一步创造价值,在行业竞争中取得先机。
    ②所以今天的 IDaaS 是什么?它不仅仅是只将二十年前的 EIAM 上云,而是应该将 EIAM & CIAM 都上云,以完善的 IDaaS 帮助中国企业迈向全局的数字化转型。

IDaaS 详解:

  • IDaaS=SaaS+IAM
  • IT 服务中的「X 即服务(XaaS)」模型很容易理解,这意味着某些功能是通过供应商以云服务交付或提供给客户的,而不是在现场服务或由内部人员开发、运维的功能,这种差别就好比 —— 云电子邮件服务(例如 Gmail)和 PC 本地的电子邮件服务(例如 Thunderbird)的差别。身份、安全和其他功能也可以以类似的云服务模式提供。
  • 以往的信息系统建设对账号、认证、权限缺少平台级的统一规划,IDaaS将提供统一的身份管理的服务,可以支持不同应用、业务的身份认证和用户管理诉求,包括:
    ①需要单点登录提高生产率;
    ②需要基于标准的解决方案来完成身份证,例如SAML、OAuth、OIDC等;
    ③企业信息系统账号多源的问题一直存在,如AD/LDAP、钉钉/微信、HRM系统等,但缺少平台或完整的服务来整合这些不同源的身份账户间的关联;
    ④由于合规性的要求,对信息系统要求增加多因素认证(MFA),需要支出较大的开发成本和管理成本;
    ⑤使开发工作聚焦在业务上,而不是重复的构建和维护不同业务系统的身份管理和身份认证的问题;
    ⑥科学的账号管理需求,对账号的创建、更新、删除整个账号生命周期实现跨应用的统一管理;
    应用权限统一管理和访问控制的需要。
  • IDaaS 的主要优势是节省:
    ①对于面向客户/用户的开发者,使用 IDaaS,可以更快地实现身份认证,不浪费宝贵的开发时间,使开发人员能够快速响应用户需求。在 http://authing.cn 中,开发者只需使用几行代码,就可以将身份认证、用户管理服务集成到以任何语言、任何框架编写的任何应用程序中,Authing 提供了 30 多种 SDK 和快速入门指南,可帮助您成功部署。
    ②对于面向员工的组织 IT 管理,使用诸如 Active Directory(AD)服务之类的软件在配置人员应用身份时,会很麻烦。使用类似 AD 的这种传统服务,您的团队必须时刻保持服务的可用性;购买、升级和安装软件;定期备份数据;支付托管费用;设置 VPN……以及更多。而使用 IDaaS,成本将降低到只剩订阅费用,以及日常的简单管理工作就可以了。
    ③除了节省费用外,IDaaS 的投资回报(ROI)还包括优化的网络安全性、更快的登录体验和更少的密码重置,从而节省了运维、管理的时间。无论用户是在家登录、在办公室登录或者是在楼下餐馆里登录,此过程都是无缝且安全的。改进的安全性可使开发者和企业免受黑客的入侵或破坏。

中台

中台简介:

  • 中台更多是因为公司业务在发展到某一阶段时,遇到瓶颈与障碍后,为解决实际问题而提出的解决方案。
  • 为什么需要中台?
    ①中台的产生,并非完全是自顶向下的战略设计,也并非是为了追随某种行业风口,而是随着公司业务高速发展、组织不断膨胀的过程中暴露的种种问题需要被解决。
  • 随着公司发展会产生许多问题:
    ①许多业务需求或功能需求高度类似、通用化程度很高,但是由于没有专门的团队负责规划和开发,大量的系统重复开发、重复建设,导致复用性低、效率低、产研资源浪费、用户体验不统一。
    ②早期业务发展过程中,为了解决一些当下的业务问题,垂直的、个性化的业务逻辑与基础系统耦合太深,由于没有平台性质的规划,横向系统之间、上下游系统之间的交叉逻辑也非常多,这样导致在新业务、新市场的拓展过程中,系统没法直接复用,甚至没法快速迭代。
  • 中台能解决什么问题?
    中台作为一种产品设计思路,或者系统架构思路,并不受限于公司的规模,理论上讲,任何一家即将或者正在面临业务高速增长的状态时,都很值得利用和借鉴中台的思路,将目前业务当中大量可复用的功能和场景进行梳理,为业务的高速增长做好准备。
  • 链接:互联网公司中所谓中台是怎么定义的?

服务器、域名、端口、备案

服务器简介:

  • 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。
  • 根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。
  • 服务器分类:
    ①云服务器
    ②实体服务器

域名简介:

  • 域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
  • 由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
  • 域名购买只能够选择一定的年限,没有永久拥有的情况。目前域名注册时间最少一年,最长10年,用户可以在域名到期前及时续费,确保自己对该域名的拥有权和使用权。而注册一个域名多少钱,具体要看域名名称和域名后缀。名称好的热门后缀,现在很难注册到,从别人手里购买的话,价格都非常高。
  • 域名有常见的五种分类方式。

按照域名级别分类:

  • 顶级域名,顶级域名又分为两类:
    ①是国家顶级域名(national top-level domainnames,简称nTLDs),目前200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等;
    ②是国际顶级域名(international top-level domain names,简称iTDs),例如表示工商企业的 .Com,表示网络提供商的.net,表示非盈利组织的.org等。目前大多数域名争议都发生在com的顶级域名下,因为多数公司上网的目的都是为了赢利。为加强域名管理,解决域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过广泛协商, 在原来三个国际通用顶级域名:(com)的基础上,增设了新通用顶级域名(New GTLD)。
    <1>新通用顶级域名是ICANN出台的一个新的开放政策,任何个人和公司都可以申请自己的域名后缀。截止到目前为止,已有上千个新后缀域名被申请,其中全球注册量最大的新通用顶级域名包括.xyz、.top、.wang、.win、.club、.party等。
  • 二级域名:
    二级域名是指顶级域名之下的域名在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm,yahoo,microsoft等在国家顶级域名下,它是表示注册企业类别的符号,例如com,edu,gov,net等
  • 三级域名:
    三级域名用字母( A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成,各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名(或者缩写)作为三级域名,以保持域名的清晰性和简洁性。
  • 总结:一般来说网站域名由二到三个域名组成。

按域名语种不同划分:

  • 域名按语言种类可划分为两大类:
    一类是英文域名,由26个英文字母、数字和中划线(-)构成;
    另一种即为国际化域名,即IDN (InternationalizedDomain Names)也称多语种域名,是指非英语国家为推广本国语言的域名系统的一个总称。含有中文的域名为中文域名,比如中文顶级域名有.中国、.商店、.广东、.世界等,含有日文的为日文域名,如日文域名コム.com,含有阿拉伯文的为阿拉伯域名,含有韩文的为韩文域名等等。顶级域名、二级域名、三级域名等均可以为IDN。

按域名管理机构分类:

  • 从域名的管理机构来划分,总体上可把域名分成两类:一类为为“国际顶级域名”(简称“国际域名”),另一类为“国内顶级域名”(简称“国内域名”)。
    国际域名由非营利性国际组织ICANN(The Internet Corporation for Assigned Names and Numbers)运营管理—以.com、.net、.org、.cc 、.tv等根域为后缀的域名。
    国家域名—在的后面再加上国家代码(如中国为.CN,日本为.JP,英国为.UK)后缀的域名。

按域名后缀的不同分类:

  • 域名后缀是指代表一个域名类型的符号。 不同后缀的域名有不同的含义,申请单位可根据自身的属性,选择相应后缀的域名。比如以下几种:
    ①.com:国际通用顶级域名,一般代表商业性的机构或公司。 个人和公司都可以注册,并且操作简单,只需要在域名注册商网站上注册用户,填写真实有效的信息,个人注册填写个人信息,公司注册则填写公司信息。之后充值就可以立即拥有该域名,解析一般是2小时生效。 
    ②.net:国际域名,最初用于网络机构。注册步骤同.com域名。 
    ③.org:国际域名,一般代表非盈利的组织、团体。注册方法步骤同.com域名。 
    ④.cn:国内域名,代表中国网站。由我国国际互联网络信息中心(Inter NIC)正式注册并运行。 个人和公司都可注册,只是cn域名注册比较严格,需要提交一些资料审核通过后才可以解锁。

按照域名组成分类:

  • 纯数字:其中又包括区号,邮政编码和一般的数字域名,目前4位数以内(含四位数)在几年前就被抢注一空,现在任何一个4数字的流通价格都在4位数(千)以上。数字域名还有顺子域名,豹子域名等等,这一类域名的价格会比较高。
  • 英文单词:大众都熟悉的单词域名目前也被注册一空了,而且英文单词域名在国内比较少见,不利于记忆和输入,一般不建议做单词域名。
  • 双拼域名:其实也有单拼域名,但是单拼的太少了,也就400个左右,双拼是数量大,而且也是国内大多数企业的选择,所以投资双拼比较好,但是含义比较好的双拼也被注册完了,还剩下一半的双拼含义都勉勉强强。不过也具有投资价值,说不定哪家企业就用这样的名字作为品牌呢。
  • 组合域名,比如城市+单词/简写,这一类域名销路比较好,终端比较喜欢,而且也适合建站。
  • 声母/字母域名,这一类一般是拼音或者是英文单词的首字母组合域名,这一类域名的价值也非常高,终端建站都合适。
  • 杂米/创意米:例如51,91,开头后面加上拼音或者字母的,或者是666,888结尾的域名。国人也比较喜欢。

端口简介:

  • 端口号标识了一个主机上进行通信的不同的应用程序。
  • 注意:
    http的默认端口是80端口,是网页服务器的访问端口,用于网页浏览;而80端口是为HTTP开放的,HTTP是上网冲浪使用最多的协议,是主要用于在WWW服务上传输信息的协议。
    Tomcat服务器默认是8080端口。
    HTTPS的443端口在访问时不需要加端口号,相当于http的80。
    如果设置为8443端口在访问时需要加端口号。
  • 端口分类:端口可以按端口号可分为3大类:
    公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
    注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
    动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
  • 详细:
1.HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098

2.SOCKS代理协议服务器常用端口号:1080

3.FTP(文件传输)协议代理服务器常用端口号:21

4.Telnet(远程登录)协议代理服务器常用端口号:23

HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)

HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp  443/udp

Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)

FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)

TFTP(Trivial File Transfer Protocol),默认端口号为69/udp

SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp

SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)

POP3 Post Office Protocol(E-mail),默认端口号为110/tcp

Webshpere应用程序,默认端口号为9080

webshpere管理工具,默认端口号9090

JBOSS,默认端口号为8080

TOMCAT,默认端口号为8080

WIN2003远程登录,默认端口号为3389

Symantec AV/Filter for MSE,默认端口号为 8081

Oracle 数据库,默认的端口号为1521

ORACLE EMCTL,默认的端口号为1158

Oracle XDB(XML 数据库),默认的端口号为8080

Oracle XDB FTP服务,默认的端口号为2100

MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp

MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp

备案:

  • 关于备案:
    ①备案号是什么呢?
    <1>所谓的备案号就是网站底部的一个“粤ICP备12345678号”这样一个文字,大型网站的底部都有。
    ②备案号有什么用?
    <1>实际经营中,备案号一般没什么作用,就是挂到网站的底部展示,你的网站已经备案过了,至少获得了工信部的认可。
    <2>个人网站备案号在申请一些联盟广告时(例如:百度联盟、淘宝联盟、360联盟等)网站必须要备案号。
    <3>企业完整申请支付宝、银联等在线支付接口时,网站必须要备案号。(注意:经营性网站需要经营性备案。)
    ③如何查到网站是否备案了?
    <1>在工信部网站首页的右下角可以点击备案查询,然后在打开的页面输入你的域名、或者网址、或者公司备案名称即可查询到,链接:工信部网站。
    <2>但是由于这个网站系统不怎么好,经常会有查不到的现象,所以需要你耐心的多输入几次,或者多换几次查询的方式进行。
    ④备案需要多久?
    <1>这个每个地方都不一定,目前:广东省内是约20天左右,上海约3天左右,其他地方请具体咨询您的服务器空间商。
    ⑤可以不备案吗?
    <1>完全可以,不备案没有任何影响,不备案,浏览器输入域名可以立即访问您的网站,节约时间。
    <2>但是你的网站服务器机房不在大陆,就可以不用备案,一般来说不备案的服务器机房可以放到香港、台湾、美国、日本、韩国等地方,这样来说,就可以不用考虑备案的问题了,但是如果在美国或者日本等较远的地方,理论上来说,访问速度会有一定的延迟,也就是通俗的说:访问速度会慢,但是这个慢,只是毫秒级别上面的,一般正常人使用感受不到这个速度的,但是基于综合考虑:比较推荐选择港台服务器机房,毕竟物理距离较近。
  • 链接:阿里云备案流程

服务器、域名、备案总结:

  • 在我理解看来,备案是一种结对关系:
    是否需要备案取决于服务器位置
    ②满足国内服务器+域名,这个域名想解析到服务器上就要对这个服务器备案。否则80.443端口不开。
    ③如果服务器境外,随便怎么折腾都不存在备案一词。
  • 域名需要备案,服务器无需备案!服务器没有备案一说,不绑定域名的服务器国内一般只需要实名认证即可拥有和使用!域名是必须要备案的!否则是无法使用国内服务器的哦!
  • 如何完成域名和ip地址的绑定?
    一般的空间服务商都会提供空间的管理控制面板,其中有一项功能,就是绑定域名,绑定好域名后,再将域名的解析指向服务器的固定IP地址。

低代码与引擎

计算机学科中的引擎:

  • 一套稳固核心算法的封装,提供上层需求的底层驱动。
  • 引擎分类:
    第三方开源或商业引擎:润乾,思迈特等等。
    自家公司开发引擎。(Java开发)

什么是表单引擎?

  • 表单引擎系统是在完全WEB界面上可视化编辑的系统,可设置数据库的字段、属性,设置模块的配置。为企业信息管理人员或软件开发人员提供简单、快捷、高效的WEB表单设计和制作工具,无须书写任何程序代码即可轻松的与数据绑定并实现表单信息的储存和流转。
  • 对比传统的开发方式,每一个系统都通过编写代码去实现,比如公文管理、文件管理、人事档案、资产管理、采购审批等信息管理系统。虽然有了固定的开发模式,开发起来相对模板化,但是重复编写代码也是需要熟悉系统的开发人员。而每个客户对系统的要求千变万化,固定的系统已无法满足客户的需求,系统修改和后期的维护都需要熟悉系统代码的开发人员。结果是代码不好维护、人员流动性大、开发人员工资待遇又高,而又不得不满足客户的要求,造成了软件行业看似造价费用很高,而实际上大部分软件公司的利润不高,甚至花大价钱开发的系统不好使!
  • 如果你遭遇了传统开发方式的这些不幸,请看看表单定义系统带来的好处!
    1.非专业的软件开发人员也可以完成用户个性化要求的系统。
    2.提高工作效率。个性化系统定制,十分钟就可以完成程序员一天的开发量。
    3.可随时根据用户的要求增加、删除字段及统计、汇总、数据导进导出,不需要修改任何一行代码。
    4.快速定制。半小时可定制一个Demo,赢得客户的信任。
    5.轻松维护系统。卖了千万套系统,也只需要维护一个系统的代码。
    6.个性DIY系统。用表单引擎系统快速定义出其他系统,如:公文管理、进销存、客户关系、采购审批、请假单、通讯录、人事档案等。
    7.表单名称汇总:表单引擎、表单工具、java表单、jsp表单、自定义表单、自定义表单工具、表单自定义、深圳表单、数飞表单、数飞表单引擎、DIY表单系统、用户自定义表单、OA表单、自定义OA表单、表单OA、表单管理、表单系统、字段调整、自定义字段、字段修改、字段权限、OA字段修改、表单自定义字段、自定义表单字段、数飞java表单等、报表表单、报表工具、自定义系统、表单流程定义系统、流程表单、流程加表单等。

什么是数飞表单引擎?

  • 数飞表单引擎V2.1版本,采用javascript技术实现html表单,将表单属性、控件属性保存到XML中,用JAVA技术驱动XML来实现数据表的自动创建和修改,实现程序的添加、删除、修改、查询、统计等功能。界面友好,操作方便,各种属性、控件的操作窗口都可以自由拖动。
  • 系统基于tomcat6、JDK6,数据库一般采用SQLSERVER,也可以使用Mysql,Oracle等关系型数据库。开发技术采用了JAVA、JSP、HTML、Mootools、AJAX等。
  • 最终的目的是由实施人员或者客户在可视化的界面上添加功能,实现不用编写任何代码就能完成软件功能的修改以及新功能的开发。

什么是报表引擎?

  • 引用工作流引擎的流程运转原理,在原始数据的基础上,定义报表的格式、报表的算法,根据定义的算法自动执行计算,并输出计算后的结果,再根据定义的报表格式显示报表的内容。
  • 报表引擎根据报表格式,从数据库的原始数据的基础上,提取原始的数据,依据定义的报表算法,进行自动计算;在提取报表主题及算法运算的过程中,报表引擎依据定义各种参数,实现所需的运算。用户自定义数据源,根据实际的情况,连接数据库,进行数据采集。提供快速集成各种类型数据库接口,完成数据的接入与采集。
  • 报表引擎的作用:
    1、分离报表实际业务数据和展现形式,只需准备源数据,后续数据展现工作由报表引擎来完成。比如一些小计行,字段合并,大小写等都不应该写在SQL语句中;
    2、采用多源分片和动态格间计算技术能够高效的完成复杂报表工作,缩短产品开发周期,提高产品质量;
    3、通过提供的业务对象和简单的SQL语句构造向导,可以让业务人员制作简易报表;
    4、考虑数据上报功能,系统解决项目和公司的数据来往业务,不需要给每个公司报表另单独做一个模块;
    5、原来单据中编码会夹杂报表功能代码,报表引擎可以分离报表和实际单据业务功能,使得模块功能更清晰,可维护性更高;
    6、提供报表推拉模式,可以由用户订阅关心的报表,使得能够方便的查看需要的数据;
    7、通过提供保存查询条件的功能,可以使得公司负责人员打开报表就能看到预期的结果,免去重复性的输入。

什么是流程引擎?

  • 流程引擎说白了就是用来驱动业务按照我设定的固定流程去流转的东西,在复杂多变的业务情况下,使用既定的流程能够大大降低我们设计业务的成本,并且保证了我们业务执行的准确性。
  • 为什么选择activiti?
    ①activiti是java实现了工业领域BPMN2.0的规范标准框架,老牌、成熟稳定
    ②目前用户众多、社区活跃、趋势较好
    ③易于上手,基于Spring、MyBatis常用互联网技术堆栈
技术组成 Activiti jBPM5
数据库持久层ORM MyBatis3 Hibernate3
持久化标准 JPA规范
事务管理 MyBatis机制/Spring事务控制 Bitronix,基于JTA事务管理
数据库连接方式 Jdbc/DataSource Jdbc/DataSource
支持数据库 Oracle、SQL Server、MySQL等多数数据库 Oracle、SQL Server、MySQL等多数数据库
设计模式 Command模式、观察者模式等
内部服务通讯 Service间通过API调用 O基于Apache Mina异步通讯
集成接口 SOAP、Mule、RESTful 消息通讯
支持的流程格式 BPMN2、xPDL、jPDL等 目前仅只支持BPMN2 xml
引擎核心 PVM(流程虚拟机) Drools
技术前身 jBPM3、jBPM4 Drools Flow
所属公司 Alfresco jBoss.org
  • 工作流其实就是工作的流转,工作流引擎是用来开发工作流转的框架,基本来说,就是定义了一个任务分为几个步骤,每个步骤都有输入、前置步骤和后续步骤,步骤之间是根据一定的条件进行跳转,这种工作定义一般是写在XML文件中的,这方面有一个规范,BPM2.0,可以图形化编辑流程。我接触过的是Java的工作流引擎,Activiti,其他的没接触过。

规则引擎:

  • Java规则引擎主要有JRules/Drools/JLisa/QuickRules等。我们以开源项目Drools进行介绍。
  • Drools是用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值。Drools允许使用声明方式表达业务逻辑。可以使用非XML的本地语言编写规则,从而便于学习和理解。
  • 但是引入规则引擎太重太复杂。

引擎总结:

  • 链接:表单引擎与流程引擎的关系

什么是低代码?

  • 低代码是英文“Low Code”的翻译,当然,此“Low”非彼“Low”,它意指一种快速开发的方式,使用最少的代码、以最快的速度来交付应用程序。
  • 低代码开发平台本身也是一种软件,它为开发者提供了一个创建应用软件的开发环境。对于程序员而言,低代码开发平台的性质与IDEA、VS等代码IDE(集成开发环境)几乎一样,都是服务于开发者的生产力工具。
  • 与传统代码IDE不同的是,低代码开发平台提供的是更高维和易用的可视化IDE。大多数情况下,开发者并不需要使用传统的手写代码方式进行编程,而是可以通过图形化拖拽、参数配置等更高效的方式完成开发工作。

低代码的应用场景:

  • 定制化开发
  • 没有现成的配置,需要自己开发
  • 需简化的业务流程,减少实现复杂度

低代码实现逻辑:

  • 低代码的持久化过程:低代码模型封装–>功能校验–>持久化到MongoDB
    JavaEE与云服务知识概括_第3张图片
  • 低代码引擎的调用流程:通过低代码脚本id获取低代码模型对象–>调用引擎管理器–>-解析函数库->解析
  • 并执行脚本–>持久化到MongoDB:
    ①七巧系统函数库
    ②编写函数

java沙箱

简介:

  • 我们都知道,程序员编写一个Java程序,默认的情况下可以访问该机器的任意资源,比如读取,删除一些文件或者网络操作等。当你把程序部署到正式的服务器上,系统管理员要为服务器的安全承担责任,那么他可能不敢确定你的程序会不会访问不该访问的资源,为了消除潜在的安全隐患,他可能有两种办法:
    ①让你的程序在一个限定权限的帐号下运行。
    ②利用Java的沙箱机制来限定你的程序不能为非作歹。以下用于介绍该机制。

  • 什么是沙箱?
    ①Java安全模型的核心就是Java沙箱(sandbox),什么是沙箱?沙箱是一个限制程序运行的环境。沙箱机制就是将 Java 代码限定在虚拟机(JVM)特定的运行范围中,并且严格限制代码对本地系统资源访问,通过这样的措施来保证对代码的有效隔离,防止对本地系统造成破坏。沙箱主要限制系统资源访问,那系统资源包括什么?——CPU、内存、文件系统、网络。不同级别的沙箱对这些资源访问的限制也可以不一样。
    ②所有的Java程序运行都可以指定沙箱,可以定制安全策略。

  • 沙箱的安全检查点非常多,下面列举一些常见的场景:
    ①文件操作
    ②套接字操作
    ③线程和线程组
    ④类加载器控制
    ⑤反射控制
    ⑥线程堆栈信息获取
    ⑦网络代理控制
    ⑧Cookie 读写控制

  • 链接:java中的安全模型(沙箱机制)

支付宝沙箱环境:

  • 沙箱是一个测试环境,可以模拟真正在线上使用支付宝支付的效果,又不会对真实财产产生影响。
  • 链接:沙箱支付宝------简单实现支付

私有化和公有化部署

私有化部署的好处:

  • 我们知道很多大型企业在使用企业微信时,都进行了私有化部署,那么进行私有化部署对于企业来说有什么好处呢?企业为什么要进行私有化部署呢?
    1、安全可控。进行私有化部署后,系统部署到企业自己的服务器上,数据直接保存在本地中,更加的安全。
    2、拓展性强。企业可以进行二次开发,进行自主升级。
    3、支持个性化定制。在进行私有化部署时,可以根据自己企业的需求与情况进行个性化定制,让产品能更好被企业所使用。

私有化部署与公有化部署的区别是什么呢?

  • 私有化部署与公有化部署最大的区别就是数据保存的地方不同,私有化部署后,使用产生的数据会保存在本地中,采用公有化部署时,产生的数据保存在应用云端,相比之下,私有化部署的数据会更加安全可控。
  • 虽然私有化部署更加的安全,但是公有化也有它的优势,那就是成本更低。
  • 私有化部署需要企业拥有自己的服务器,如果没有服务器则需要租用服务器,而公有化部署则不需要服务器,成本更低。并且私有化部署后,需要有专业人士进行维护,而采用公有化部署时,产品方会每天进行维护,不需要企业进行维护,又减少了一些开支。
  • 在使用时,企业不需要过度追求私有化部署,而应该看企业更适合哪一种,如果企业有足够的实力,并注重数据安全,就采用私有化部署,如果企业觉得私有化成本太高,公有化就足以保障数据安全,就可以采用公有化部署。

LICENSE与LICENSE服务器

License详解:

  • 为什么使用License:
    ①许多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码。而各种开源社区就是因为这个原因而充满活力。开源软件可以用于你能想象得到的任何应用程序,许多web设计人员使用开源软件作为开发基础(例如WordPress,Drupal等等许多CMS系统都是开源的)。
    ②但是许多开发者和设计者并没有对开源License有清楚的了解,不清楚当他们选择开发自己的源代码时,他们有什么权利。如果不知道明确的License的内容,他们就不知道如何做出最明智的选择,如何做对他们最有利。
    ③对于中国的开发者来说,因为中国发达的盗版文化,泛滥的盗版软件,大部分人恐怕都完全没有License或者版权这个概念,都是奉行拿来主义。如果我们一直都是这样的话,中国软件何来进步。所以对于国内的开发者来说,第一课就是应该学习如何使用和遵守License。
  • 什么是License:
    ①许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品。
    ②License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。
    ③开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不 为别人所剽窃。
  • License示例:
    ①GNU General Public License(GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件。 这意味着你可以:
    <1>复制软件:复制软件到自己的服务器,客户端的服务器,你自己的电脑,几乎任何你想要的地方,而且没有数量限制。
    <2>发布软件:发布你想要的软件,例如,在你的网站提供下载链接,刻成光盘,打印出来等等。
    <3>收取费用:如果你想在向别人提供软件时收费,如设置在别人的网站上或者其他用途时。GPL允许你这么做,但是你必须给客户提供一个GPL副本,告诉 他们可以在其他地方得到免费版本。当然最好在此之前,告诉客户,你为什么收费。
    <4>可以任意修改:如果你想添加或删除功能,没问题。如果想在其他项目中使用部分代码,也是可以的,但是唯一的限制是此项目也必须按GPL发布。
  • 链接:各种LICENSE的作用–GET

LICENSE服务器(许可证服务器):

  • 这是一个用于托管“许可管理器”软件并分发许可的系统。
  • 链接:DevOps5分钟搭建一个license服务器

组件、套件、 中间件、插件

概念:

  • 组件:
    ①位于框架最底层,是由重复的代码提取出来合并而成。
    ②组件的本质是一件产品,独立性很强;组件的核心是复用,与其它功能又有强依赖关系。
  • 模块:
    ①在中台产品和非中台产品中,都会把具有同一功能价值的,或具有同一业务属性的,按不同粒度定义为一个模块。
    ②不同的是,在非中台产品中,主应用与模块、模块与模块间是强耦合关系,模块不可以独立运行;而在中台产品中,主应用与模块间的耦合变为主应用与接口、接口与模块的耦合;这样,降低了模块间的耦合,模块是可以独立运行的。
  • 套件:
    ①技术中台产品化的过程,也是确定套件组成的过程,如:套件中有哪些模块?各模块有哪些组件或功能?
  • 中间件:
    ①是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
    ②它位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。
    ③这样相连接的系统,即使具有不同的接口,但通过中间件相互之间仍能交换信息;典型的云化中间件包括分布式消息队列、分布式缓存、分布式锁、分布式ID等。
  • 插件:
    ①是一种遵循一定规范的应用程序接口编写出来的程序。
    ②很多软件都有插件,例如:在IE中安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件,如Flash插件、RealPlayer插件、ActiveX插件等。

关系:

  • 相同点:组件、套件、中间件、插件的设计思想是复用,把通用的、不变的、主控制流程的逻辑框架封装起来,把变化的部分通过各种方式暴露出去。
  • 不同点:
    ①组件:封装的是一个独立的功能,可以作为一个产品输出。
    ②模块:是由一个或多个组件组成,模块与模块之间的逻辑关系并不会在中台产品中体现,它们之间的逻辑关系是在新的产品或解决方案中。
    ③套件:可以是由一个多个组件,也可以是一个或多个模块组成,是一个或多个产品的组合,它最初为解决某一特定问题制定解决方案,再将其产品化。
    ④插件:将主控制流程封装在内部后,需要扩展的点让开发者去扩展。插件就是插到程序所暴露出的扩展点上的。
    JavaEE与云服务知识概括_第4张图片

你可能感兴趣的:(JavaEE,云)