信息系统项目管理教程(第4版):第二章 信息技术及其发展

请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!!

第二章 信息技术及其发展

2.1信息技术及其发展

信息技术是以微电子学为基础的计算机技术和电信技术的结合而形成的,对声音的、图像的、文字的、数字的和各种传感信号的信息进行获取、加工、处理、存储、传播和使用的技术按表现形态的不同,信息技术可分为硬技术(物化技术)与软技术(非物化技术)。前者指各种信息设备及其功能,如传感器、服务器、智能手机、通信卫星、笔记本电脑。后者指有关信息获取与处理的各种知识、方法与技能,如语言文字技术、数据统计分析技术、规划决策技术计算机软件技术等。

2.1.1计算机软硬件

计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体,为计算机软件运行提供物质基础。计算机软件(Computer Software)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。程序必须安装入机器内部才能工作,文档一般是给人看的,不一定安装入机器。

硬件和软件互相依存。硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的重要途径。计算机系统必须要配备完善的软件系统才能正常工作,从而充分发挥其硬件的各种功能。硬件和软件协同发展,计算机软件随硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切交织发展,缺一不可。随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此硬件与软件在一定意义上来说没有绝对严格的界线。

2.1.2计算机网络

在计算机领域中,网络就是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。凡将地理位置不同,并具有独立功能的多个计算机系统通过通信设备和线路连接起来,且以功能完善的网络软件 (网络协议、信息交换方式及网络操作系统等)实现网络资源共享的系统,均可称为计算机网络。从网络的作用范围可将网络类别划分为个人局域网(PersonalArea Network,PAN)、局域网(LocalArca Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网 (Wide Area Network,WAN)、公用网 (PublicNetwork)、专用网(Private Network)

1.网络标准协议

网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议由三个要素组成,分别是语义、语法和时序。语义是解释控制信息每个部分的含义,它规定了需要发出何种控制信息,完成的动作以及做出什么样的响应;语法是用户数据与控制信息的结构与格式,以及数据出现的顺序;时序是对事件发生顺序的详细说明。人们形象地将这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。

1) OSI

国际标准化组织 (ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型(Open System Interconnect,OSI),其目的是为异种计算机互连提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。OSI采用了分层的结构化技术,从下到上共分物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。广域网协议是在 OSI参考模型的最下面三层操作,定义了在不同的广域网介质上的通信广域网协议主要包括: PPP 点对点协议、ISDN综合业务数字网、XDSL(DSL数字用户线路的统称:HDSL、SDSL、MVL、ADSL)、DDN数字专线、x.25、FR 中继、ATM 异步传输模式。

2)IEEE802协议族

IEEE 802 规范定义了网卡如何访问传输介质 (如光缆、双绞线、无线等),以及如何在传输介质上传输数据的方法,还定义了传输信息的网络设备之间连接的建立、维护和拆除的途径遵循IEEE 802 标准的产品包括网卡、桥接器、路由器以及其他一些用来建立局域网络的组件。IEEE 802 规范包括: 802.1 (802 协议概论)、802.2(逻链路控制层LLC 协议)、802.3 (以太网的CSMA/CD 载波监听多路访问/冲突检测协议)、802.4 (令牌总线 Tken Bus 协议)、8025(令牌环 Token Ring 协议)、802.6 (城域网MAN 协议)、802.7 (FDDI宽带技术协议)、802.8光纤技术协议)、802.9(局域网上的语音/数据集成规范)、802.10(局域网安全互操作标准).802.11(无线局域网WLAN 标准协议)。

3 ) TCP/IP

Internet 是一个包括成千上万相互协作的组织和网络的集合体。TCP/IP是Internet 的核心。

TCP/P 在一定程度上参考了OSI,它将 OSI的七层简化为四层:①应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在 TCP/IP 中,它们被合并为应用层一个层次。②由于传输层和网络层在网络协议中的地位十分重要,所以在 TCP/IP 中它们被作为独立的两个层次。③因为数据链路层和物理层的内容相差不多,所以在 TCP/IP 中它们被归并在网络接口层一个层次里。

在应用层中,定义了很多面向应用的协议,应用程序通过本层协议利用网络完成数据交互的任务。这些协议主要有 FTP (File Transfer Protocol,文件传输协议)、TFTP(Trivial FileTransfer Protocol,简单文件传输协议)、HTTP (Hpertext Transfer Protocol,超文本传输协议)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、DHCP (Dynamic Host ConfigurationProtocol,动态主机配置协议)、Telnet(远程登录协议)DNS(Domain Name System,域名系统)、SNMP(Simple Network Management Protocol,简单网络管理协议)等。

传输层主要有两个传输协议,分别是 TCP 和UDP(User Datagram Protocol,用户数据报协议),这些协议负责提供流量控制、错误校验和排序服务。网络层中的协议主要有IP、ICMP (Internet Control Message Protocol,网际控制报文协议)、IGMP (Internet Group Management Protocol,网际组管理协议)、ARP (Address ResolutionProtocol,地址解析协议)和 RARP (Reverse Address Resolution Protocol,反向地址解析协议)等,这些协议处理信息的路由和主机地址解析。

由于网络接口层兼并了物理层和数据链路层,所以网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。

2.软件定义网络

软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,是网络虚拟化的一种实现方式,它可通过软件编程的形式定义和控制网络,其通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络变得更加智能,为核心网络及应用的创新提供了良好的平台。

利用分层的思想,SDN将数据与控制相分离。在控制层,包括具有逻辑中心化和可编程的控制器,可掌握全局网络信息,方便运营商和科研人员管理配置网络和部署新协议等。在数据层,包括哑交换机(与传统的二层交换机不同,专指用于转发数据的设备),仅提供简单的数据转发功能,可以快速处理匹配的数据包,适应流量日益增长的需求。两层之间采用开放的统一接口(如OpenFlow等)进行交互。控制器通过标准接口向交换机下发统一标准规则,交换机仅需按照这些规则执行相应的动作即可。SDN 打破了传统网络设备的封闭性。此外,南北向和东西向的开放接口及可编程性,也使得网络管理变得更加简单、动态和灵活。

SDN 的整体架构由下到上(由南到北) 分为数据平面、控制平面和应用平面,具体如图 2-1所示。其中,数据平面由交换机等网络通用硬件组成,各个网络设备之间通过不同规则形成的SDN数据通路连接;控制平面包含了逻辑上为中心的 SDN 控制器,它掌握着全局网络信息,负责各种转发规则的控制;应用平面包含着各种基于 SDN 的网络应用,用户无须关心底层细节就可以编程、部署新应用。

图 2-1 SDN体系架构图

控制平面与数据平面之间通过SDN 控制数据平面接口(Contro-Data-Plane Interface,CDPI)进行通信,它具有统一的通信标准,主要负责将控制器中的转发规则下发至转发设备,最主要应用的是OpenFlow协议。控制平面与应用平面之间通过 SDN北向接口 (NorthBound Interface,NBI)进行通信,而 NBI 并非统一标准,它允许用户根据自身需求定制开发各种网络管理应用。

SDN中的接口具有开放性,以控制器为逻辑中心,南向接口负责与数据平面进行通信,北向接口负责与应用平面进行通信,东西向接口负责多控制器之间的通信。最主流的南向接口CDPI采用的是 OpenFlow 协议。OpenFlow 最基本的特点是基于流 (Flow) 的概念来匹配转发规则,每一个交换机都维护一个流表 (Flow Table),依据流表中的转发规则进行转发,而流表的建立、维护和下发都是由控制器完成的。针对北向接口,应用程序通过北向接口编程来调用所需的各种网络资源,实现对网络的快速配置和部署。东西向接口使控制器具有可扩展性,为负载均衡和性能提升提供了技术保障。

3.第五代移动通信技术

第五代移动通信技术(5th Generation Mobile Communication Technology,5G)是具有高速率、低时延和大连接特点的新一代移动通信技术。

国际电信联盟(ITU)定义了5G的八大指标,与4G的对比如表2-1所示。

表 2-1 4G与5G主要指标对标

5G国际技术标准重点满足灵活多样的物联网需要。在正交颜分多址(Orthogonal Frequency Division Multiple Access,OFDMA) 和多入多出(Multiple Input Multiple Output,MIMO)基础技术上,5G 为支持三大应用场景,采用了灵活的全新系统设计。在频段方面,与4G 支持中低频不同,考虑到中低频资源有限,5G 同时支持中低频和高频频段,其中中低频满足覆盖和容量需求,高频满足在热点区域提升容量的需求,5G 针对中低频和高频设计了统一的技术方案,并支持百MHz的基础带宽。为了支持高速率传输和更优覆盖,5G采用LDPC (一种具有稀疏校验矩阵的分组纠错码)、Polar (一种基于信道极化理论的线性分组码)新型信道编码方案、性能更强的大规模天线技术等。为了支持低时延、高可靠,5G 采用短、快速反馈、多层/多站数据重传等技术。

国际电信联盟 (ITU)定义了5G的三大类应用场景,即增强移动宽带 (eMBB)、超高可靠低时延通信 (uRLLC)和海量机器类通信 (mMTC)。增强移动宽带主要面向移动互联网流量爆炸式增长,为移动互联网用户提供更加极致的应用体验;超高可靠低时延通信主要面向工业控制、远程医疗、自动驾驶等对时延和可靠性具有极高要求的垂直行业应用需求;海量机器类通信主要面向智慧城市、智能家居、环境监测等以传感和数据采集为目标的应用需求。

2.1.3 存储和数据库

1.存储技术

存储分类根据服务器类型分为:封闭系统的存储和开放系统的存储。封闭系统主要指大型机等服务器。开放系统指基于包括麒麟、欧拉、UNIX、Linux 等操作系统的服务器。开放系统的存储分为:内置存储和外挂存储。外挂存储根据连接的方式分为直连式存储(Direct-AttachedStorage,DAS)和网络化存储 (Fabric-Attached Storage,FAS)。网络化存储根据传输协议又分为网络接入存储(Network-Attached Storage,NAS)和存储区域网络 (Storage Area NetworkSAN)。DAS、NAS、SAN 等存储模式之间的技术与应用对比如表 2-2 所示。

表 2-2 常用存储模式的技术与应用对比

存储虚拟化(Storage Virtualization)是“云存储”的核心技术之一,它把来自一个或多个网络的存储资源整合起来,向用户提供一个抽象的逻辑视图,用户可以通过这个视图中的统一逻辑接口来访问被整合的存储资源。用户在访问数据时并不知道真实的物理位置。它带给人们直接的好处是提高了存储利用率,降低了存储成本,简化了大型、复杂、异构的存储环境的管理工作。

存储虚拟化使存储设备能够转换为逻辑数据存储。虚拟机作为一组文件存储在数据存储的目录中。数据存储是类似于文件系统的逻辑容器。它隐藏了每个存储设备的特性,形成一个统一的模型,为虚拟机提供磁盘。存储虚拟化技术帮助系统管理虚拟基础架构存储资源,提高资源利用率和灵活性,提高应用正常运行时间。

绿色存储(Green Storage) 技术是指从节能环保的角度出发,用来设计生产能效更佳的存储产品,降低数据存储设备的功耗,提高存储设备每瓦性能的技术。绿色存储是一个系统设计方案,贯穿于整个存储设计过程,包含存储系统的外部环境、存储架构、存储产品、存储技术文件系统和软件配置等多方面因素。

绿色存储技术的核心是设计运行温度更低的处理器和更有效率的系统,生产更低能耗的存储系统或组件,降低产品所产生的电子碳化合物,其最终目的是提高所有网络存储设备的能源效率,用最少的存储容量来满足业务需求,从而消耗最低的能源。以绿色理念为指导的存储系统最终是存储容量、性能、能耗三者的平衡。

绿色存储技术涉及所有存储分享技术,包括磁盘和磁带系统、服务器连接、存储设备、网络架构及其他存储网络架构、文件服务和存储应用软件、重复数据删除、自动精简配置和基于磁带的备份技术等可以提高存储利用率、降低建设成本和运行成本的存储技术,其目的是提高所有网络存储技术的能源效率。

2.数据结构模型

数据结构模型是数据库系统的核心。数据结构模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如树、表等)。模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序和更新等操作。

常见的数据结构模型有三种:层次模型网状模型关系模型,层次模型和网状模型又统称为格式化数据模型

    1)层次模型

层次模型是数据库系统最早使用的一种模型,它用“树”结构表示实体集之间的关联,其中实体集(用矩形框表示) 为结点,而树中各结点之间的连线表示它们之间的关联。在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。这就使得层次数据库系统只能处理一对多的实体联系。每个记录类型可包含若干个字段,这里记录类型描述的是实体,字段描述实体的属性。每个记录类型及其字段都必须命名。各个记录类型、同一记录类型中各个字段不能同名。每个记录类型可以定义一个排序字段,也称码字段,如果定义该排序字段的值是唯一的,则它能唯一地标识一个记录值。

一个层次模型在理论上可以包含任意有限个记录类型和字段,但任何实际的系统都会因为存储容量或实现复杂度而限制层次模型中包含的记录类型个数和字段个数。在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。层次模型的一个基本的特点是任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

    2)网状模型

网状数据库系统采用网状模型作为数据的组织方式。网状模型用网状结构表示实体类型及其实体之间的联系。网状模型是一种可以灵活地描述事物及其之间关系的数据库模型。

现实世界中事物之间的联系更多的是非层次关系的,一个事物和另外的几个都有联系,用层次模型表示这种关系很不直观,网状模型克服了这一弊病,可以清晰地表示这种非层次关系。用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型。网状模型取消了层次模型的不能表示非树状结构的限制,两个或两个以上的结点都可以有多个双亲结点,则此有向树变成了有向图,该有向图描述了网状模型。

网状模型中以记录为数据的存储单位。记录包含若干数据项。网状数据库的数据项可以是多值的和复合的数据。每个记录有一个唯一标识它的内部标识符,称为码 (DatabaseKey,DBK),它在一个记录存入数据库时由数据库管理系统(Database Management System,DBMS)自动赋予。DBK 可以看作记录的逻辑地址,可作记录的替身或用于寻找记录。网状数据库是导航式(Navigation)数据库,用户在操作数据库时不但说明要做什么,还要说明怎么做。例如在查找语句中不但要说明查找的对象,而且要规定存取路径。

    3)关系模型

关系模型是在关系结构的数据库中用二维表格的形式表示实体以及实体之间的联系的模型关系模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型关系来表示。

关系模型的基本假定是所有数据都表示为数学上的关系,就是说 n 个集合的笛卡儿积的一个子集,有关这种数据的推理通过二值的谓词逻辑来进行,这意味着对每个命题都只有两种可能的值:要么是真,要么是假。数据通过关系演算和关系代数的一种方式来操作。关系模型是采用二维表格结构表达实体类型及实体间联系的数据模型。

关系模型允许设计者通过数据库规范化的提炼,去建立一个信息的一致性的模型。访问计划和其他实现与操作细节由 DBMS 引擎来处理,而不应该反映在逻辑模型中。这与 SQL DBMS普遍的实践是对立的,在它们那里性能调整经常需要改变逻辑模型。

基本的关系建造块是域或者叫数据类型。元组是属性的有序多重集 (Multiset),属性是域和值的有序对。关系变量 (Relvar) 是域和名字的有序对(序偶)的集合,它充当关系的表头(Header)。关系是元组的集合。尽管这些关系概念是在数学上的定义的,它们可以宽松地映射到传统数据库概念上。表是关系公认的可视表示;元组类似于行的概念。

关系模型的基本原理是信息原理,即所有信息都表示为关系中的数据值。所以,关系变量在设计时是相互无关联的;反而,设计者在多个关系变量中使用相同的域,如果一个属性依赖于另一个属性,则通过参照完整性来强制这种依赖性。

3.常用数据库类型

数据库根据存储方式可以分为关系型数据库 (SQL) 非关系型数据库(Not Only SQL NoSOL)

    1)关系型数据库

网状数据库(以网状数据模型为基础建立的数据库) 和层次数据库(采用层次模型作为数据组织方式的数据库) 已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系数据库系统采用关系模型作为数据的组织方式。关系数据库是在一个给定的应用领域中,所有实体及实体之间联系的集合。关系型数据库支持事务的ACID 原则,即原子性 (Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),这四种原则保证在事务过程当中数据的正确性。

    2)非关系型数据库

非关系型数据库是分布式的、非关系型的、不保证遵循ACID 原则的数据存储系统NOSOL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。

常见的非关系数据库分为:

    • 键值数据库:类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,会获得很高的性能及扩展性。Key/Value模型对于信息系统来说,其优势在于简单、易部署、高并发。

    • 列存储(Column-oriented)数据库将数据存储在列族中,一个列族存储经常被一起查询,比如人们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。这种数据库通常用来应对分布式存储海量数据

    • 面向文档(Document-Oriented)数据库文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高。面向文档数据库会将数据以文档形式存储。

    • 图形数据库允许人们将数据以图的方式存储。实体会作为顶点,而实体之间的关系则会作为边。比如有三个实体: Steve Jobs、Apple和Next,则会有两个Founded by的边将Apple和Next连接到Steve Jobs。

3)不同存储方式数据库的优缺点

关系型数据库和非关系型数据库的优缺点,如表 2-3 所示。

表 2-3 常用存储数据库类型优缺点

4.数据仓库

传统的数据库系统中缺乏决策分析所需的大量历史数据信息,因为传统的数据库一般只保留当前或近期的数据信息。为了满足中高层管理人员预测、决策分析的需要,在传统数据库的基础上产生了能够满足预测、决策分析需要的数据环境一数据仓库。数据仓库相关的基础概念包括:

    • 清洗/转换/加载(Extract/Transformation/Load,ETL)用户从数据源抽取出所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

    • 元数据关于数据的数据,指在数据仓库建设过程中所产生的有关数据源定义、目标定义、转换规则等相关的关键数据。同时元数据还包含关于数据含义的商业信息。典型的元数据包括:数据仓库表的结构、数据仓库表的属性、数据仓库的源数据(记录系统)、从记录系统到数据仓库的映射、数据模型的规格说明、抽取日志和访问数据的公用例行程序等。

    • 粒度数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。

    • 分割结构相同的数据被分成多个数据物理单元。任何给定的数据单元属于且仅属于一个分割。

    • 数据集市小型的,面向部门或工作组级的数据仓库。

    • 操作数据存储(Operation Data Store,ODS)能支持组织日常的全局应用的数据集合,是不同于DB的一种新的数据环境,是DW扩展后得到的一个混合形式。它具有四个基本特点:面向主题的、集成的、可变的、当前或接近当前的。

    • 数据模型逻辑数据结构,包括由数据库管理系统为有效进行数据库处理提供的操作和约束;用于表示数据的系统。

    • 人工关系在决策支持系统环境中用于表示参照完整性的一种设计技术。

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用于支持管理决策。常见的数据仓库的体系结构如图 2-2 所示。

图 2-2 数据仓库体系结构

(1)数据源。它是数据仓库系统的基础,是整个系统的数据源泉。通常包括组织内部信息和外部信息。内部信息包括存放于关系型数据库管理系统中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等。

(2)数据的存储与管理。它是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为组织级数据仓库和部门级数据仓库(通常称为数据集市)。

(3)联机分析处理(On-Line Analytic Processing,OLAP)服务器。OLAP 对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:基于关系数据库的OLAP (Relational OLAP,ROLAP)、基于多维数据组织的OLAP(Multidimensional OLAP,MOLAP)和基于混合数据组织的OLAP (Hybrid OLAPHOLAP)。ROLAP基本数据和聚合数据均存放在RDBMS之中MOLAP基本数据和聚合数据均存放于多维数据库中HOLAP 基本数据存放于关系数据库管理系统(Relational Database Management System,RDBMS)之中,聚合数据存放于多维数据库中。

(4)前端工具。前端工具主要包括各种查询工具、报表工具、分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对 OLAP 服务器报表工具、数据挖掘工具主要针对数据仓库。

2.1.4信息安全

常见的信息安全问题主要表现为: 计算机病毒泛滥、恶意软件的入侵、黑客攻击、利用计算机犯罪、网络有害信息泛滥、个人隐私泄露等。随着物联网、云计算、人工智能、大数据等新一代信息技术的广泛应用,信息安全也面临着新的问题和挑战。

1.信息安全基础

信息安全强调信息(数据)本身的安全属性,主要包括以下内容。

l保密性(Confdentiality):信息不被未授权者知晓的属性。

l完整性 (Integrity):信息是正确的、真实的、未被篡改的、完整无缺的属性。

l可用性(Availability):信息可以随时正常使用的属性。

信息必须依赖其存储、传输、处理及应用的载体(媒介)而存在,因此针对信息系统,安全可以划分为四个层次:设备安全、数据安全、内容安全、行为安全

信息系统一般由计算机系统、网络系统、操作系统、数据库系统和应用系统组成。与此对应,信息系统安全主要包括计算机设备安全、网络安全、操作系统安全、数据库系统安全和应用系统安全等。

网络安全技术主要包括:防火墙、入侵检测与防护、VPN、安全扫描、网络蜜罐技术、用户和实体行为分析技术等。

2.加密解密

为了保证信息的安全性,就需要采用信息加密技术对信息进行伪装,使得信息非法窃取者无法理解信息的真实含义;需要采用加密算法提取信息的特征码(校验码)或特征矢量,并与有关信息封装在一起,信息的合法拥有者可以利用特征码对信息的完整性进行校验:;需要采用加密算法对信息使用者的身份进行认证、识别和确认,以对信息的使用进行控制。

发信者将明文数据加密成密文,然后将密文数据送入网络传输或存入计算机文件,而且只给合法收信者分配密钥。合法收信者接收到密文后,实行与加密变换相逆的变换,去掉密文的伪装并恢复出明文,这一过程称为解密 (Decryption)。解密在解密密钥控制下进行。用于解密的一组数学变换称为解密算法。

加密技术包括两个元素:算法和密钥。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密) 和非对称加密(公开密钥加密)。对称加密以数据加密标准(Data Encryption Standard,DES)算法为典型代表,非对称加密通常以RSA (Rivest Shamir Adleman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密

3.安全行为分析技术

传统安全产品、技术、方案基本上都是基于已知特征进行规则匹配来进行分析和检测。基于特征、规则和人工分析,以“特征”为核心的检测分析存在安全可见性盲区,有滞后效应无力检测未知攻击、容易被绕过,以及难以适应攻防对抗的网络现实和快速变化的组织环境.外部威胁等问题。另一方面,虽然大多数的攻击可能来自组织以外,但最严重的损害往往是由内部人员造成的,只有管理好内部威胁,才能保证信息和网络安全。

用户和实体行为分析 (User and Entity Behavior Analytics,UEBA)提供了用户画像及基于各种分析方法的异常检测,结合基本分析方法(利用签名的规则、模式匹配、简单统计、闽值等)和高级分析方法(监督和无监督的机器学习等),用打包分析来评估用户和其他实体(主机、应用程序、网络、数据库等),发现与用户或实体标准画像或行为异常的活动所相关的潜在事件。UEBA 以用户和实体为对象,利用大数据,结合规则以及机器学习模型,并通过定义此类基线,对用户和实体行为进行分析和异常检测,尽可能快速地感知内部用户和实体的可疑或非法行为。

UEBA 是一个完整的系统,涉及算法、工程等检测部分,以及用户与实体风险评分排序调查等用户交换和反馈。从架构上来看,UEBA 系统通常包括数据获取层、算法分析层和场景应用层。

4.网络安全态势感知

网络安全态势感知(Network Security Situation Awareness)是在大规模网络环境中,对能够引起网络态势发生变化的安全要素进行获取、理解、显示,并据此预测未来的网络安全发展趋势。安全态势感知不仅是一种安全技术,也是一种新兴的安全概念。它是一种基于环境的、动态的、整体的洞悉安全风险的能力。安全态势感知的前提是安全大数据,其在安全大数据的基础上进行数据整合、特征提取等,然后应用一系列态势评估算法生成网络的整体态势状况,应用态势预测算法预测态势的发展状况,并使用数据可视化技术,将态势状况和预测情况展示给安全人员,方便安全人员直观便捷地了解网络当前状态及预期的风险。

网络安全态势感知的关键技术主要包括: 海量多元异构数据的汇聚融合技术、面向多类型的网络安全威胁评估技术、网络安全态势评估与决策支撑技术、网络安全态势可视化等。

2.1.5信息技术的发展

作为信息技术的基础,计算机软硬件、网络、存储和数据库、信息安全等都在不断的发展创新,引领着当前信息技术发展的潮流。

在计算机软硬件方面,计算机硬件技术将向超高速、超小型、平行处理、智能化的方向发展,计算机硬件设备的体积越来越小、速度越来越高、容量越来越大、功耗越来越低、可靠性越来越高。计算机软件越来越丰富,功能越来越强大,“软件定义一切”概念成为当前发展的主流。

在网络技术方面,计算机网络与通信技术之间的联系日益密切,甚至是已经融为一体。作为国家最重要的基础设施之一,5G 成为当前的主流,面向物联网、低时延场景的窄带物联网(Narrow BandInternet of Things,NB-IoT)和增强型机器类型通信 (enhanced Machine-TypeCommunication,eMTC)、工业物联网(Industrial Internet of Things,IloT)和低延时高可靠通信(Ultra Reliable Low Latency Communication,URLLC)等技术,将进一步得到充分发展。

在存储和数据库方面,随着数据量的不断爆炸式增长,数据存储结构也越来越灵活多样,日益变革的新兴业务需求驱使数据库及应用系统的存在形式愈发丰富,这些变化均对各类数据库的架构和存储模式提出了挑战,推动数据库技术不断向着模型拓展、架构解耦的方向演进。

在信息安全方面,传统计算机安全理念将过渡到以可信计算理念为核心的计算机安全,由网络普及应用引发的技术与应用模式的变革,正在进一步推动信息安全网络化关键技术的创新:同时信息安全标准的研究与制定,信息安全产品和服务的集成和融合,正引领着当前信息安全技术朝着标准化和集成化的方向发展。

2.2新一代信息技术及应用

信息技术在智能化、系统化、微型化、云端化的基础上不断融合创新,促进了物联网、云计算、大数据、区块链、人工智能、虚拟现实等新一代信息技术的诞生。新一代信息技术与信息资源充分开发利用形成的新模式、新业态等,是信息化发展的主要趋势,也是信息系统集成领域未来的重要业务范畴。

2.2.1物联网

物联网(The Internet of Things)是指通过信息传感设备,按约定的协议将任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的网络。物联网主要解决物品与物品(Thing to Thing,T2T)、人与物品(Human to Thing,H2T)、人与人(Human to Human,H2H)之间的互连。另外,许多学者在讨论物联网时经常会引入M2M的概念:可以解释为人与人(Manto Man)、人与机器(Man to Machine)或机器与机器(Machine toMachine)。

1.技术基础

物联网架构可分为三层:感知层、网络层和应用层。感知层由各种传感器构成,包括温度传感器,二维码标签、RFID 标签和读写器,摄像头,GPS 等感知终端。感知层是物联网识别物体、采集信息的来源。网络层由各种网络,包括互联网、广电网、网络管理系统和云计算平台等组成,是整个物联网的中枢,负责传递和处理感知层获取的信息。应用层是物联网和用户的接口,它与行业需求结合以实现物联网的智能应用。

物联网的产业链包括传感器和芯片、设备、网络运营及服务、软件与应用开发和系统集成。物联网技术在智能电网、智慧物流、智能家居、智能交通、智意农业、环境保护、医疗健康。城市管理(智慧城市)、金融服务与保险业、公共安全等方面有非常关键和重要的应用。

2.关键技术

物联网关键技术主要涉及传感器技术、传感网和应用系统框架等。

1)传感器技术

传感器是一种检测装置,它能“感受”到被测量的信息,并能将检测到的信息按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节,也是物联网获取物理世界信息的基本手段。

射频识别技术(Radio Frequency ldentifcation,RFID)是物联网中使用的一种传感器技术,在物联网发展中备受关注。RIFD 可通过无线电信号识别特定目标并读写相关数据,而无须识别系统与特定目标之间建立机械或光学接触。RFID 是一种简单的无线系统,由一个询问器(或阅读器)和很多应答器(或标签)组成。标签由合元件及芯片组成,每个标签具有扩展词条唯一的电子编码,附着在物体上标识目标对象,它通过天线将射频信息传递给阅读器,阅读器就是读取信息的设备。RFID 技术让物品能够“开口说话”。这就赋予了物联网一个特性一可跟踪性,即可以随时掌握物品的准确位置及其周边环境。

2)传感网

微机电系统 (Micro-Electro-Mechanical Systems,MEMS)是由微传感器、微执行器、信号处理和控制电路、通信接口和电源等部件组成的一体化的微型器件系统。其目标是把信息的获取、处理和执行集成在一起,组成具有多功能的微型系统,集成于大尺寸系统中,从而大幅地提高系统的自动化、智能化和可靠性水平。MEMS 赋予了普通物体新的“生命”,它们有了属于自己的数据传输通路、存储功能、操作系统和专门的应用程序,从而形成一个庞大的传感网,使物联网能够通过物品来实现对人的监控与保护。未来,衣服可以通过传感网“告诉”洗衣机放多少水和洗衣粉最经济:文件夹会“检查”人们忘带了什么重要文件,食品蔬菜的标签会向顾客的手机介绍“自己”是否真正“绿色安全”

3)应用系统框架

物联网应用系统框架是一种以机器终端智能交互为核心的、网络化的应用与服务。它将使对象实现智能化的控制,涉及5 个重要的技术部分:机器、传感器硬件、通信网络、中间件和应用。该框架基于云计算平台和智能网络,可以依据传感器网络获取的数据进行决策,改变对象的行为控制和反馈。以智能停车场为例,当车辆驶入或离开天线通信区时,天线以微波通信的方式与电子识别卡进行双向数据交换,从电子车卡上读取车辆的相关信息,从司机卡上读取司机的相关信息,自动识别电子车卡和司机卡,并判断该车卡是否有效和司机卡的合法性,核对车道控制电脑并显示与该电子车卡和司机卡一一对应的车牌号码及驾驶员等资料信息。车道控制电脑自动将通过时间、车辆和驾驶员的有关信息存入数据库中,车道控制电脑根据读到的数据判断是正常卡、未授权卡、无卡还是非法卡,据此做出相应的回应和提示。另外,家中的老人通过佩戴嵌入智能传感器的手表,在外地的子女可以随时通过手机查询父母的血压、心跳是否稳定。智能化的住宅在主人上班时,传感器自动关闭水电气和门窗,定时向主人的手机发送消息,汇报安全情况。

3.应用和发展

物联网的应用领域涉及人们工作与生活的方方面面。在工业、农业、环境、交通、物流安保等基础设施领域的应用,有效地推动了这些方面的智能化发展,使得有限的资源能更加合理地使用分配,从而提高了行业效率、效益:在家居、医疗健康、教育、金融与服务业、旅游业等与生活息息相关领域的应用,通过与社会科学和社会治理的充分融合创新,实现了服务范围、服务方式和服务质量等方面的巨大变革和进步。

2.2.2云计算

云计算(Cloud Computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后通过由多部服务器组成的系统进行处理和分析这些小程字得到结果并返回给用户。在云计算早期,就是简单的分布式计算,进行任务分发并对计算结果进行合并。当前的云计算已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗余和虚拟化等计算机技术混合演进并跃升的结果。

1.技术基础

云计算是一种基于互联网的计算方式,通过这种方式将网络上配置为共享的软件资源、计算资源、存储资源和信息资源,按需求提供给网上的终端设备和终端用户。云计算也可以理解为向用户屏蔽底层差异的分布式处理架构。在云计算环境中,用户与实际服务提供的计算资源相分离,云端集合了大量计算设备和资源。

当使用云计算服务时,用户不需要安排专门的维护人员,云计算服务的提供商会为数据和服务器的安全做出相对较高水平的保护。由于云计算将数据存储在云端(分布式的云计算设备中承担计算和存储功能的部分),业务逻辑和相关计算都在云端完成,因此,终端只需要一个能够满足基础应用的普通设备即可。

云计算实现了“快速、按需、弹性”的服务,用户可以随时通过宽带网络接入“云”并获得服务,按照实际需求获取或释放资源,根据需求对资源进行动态扩展。

按照云计算服务提供的资源层次,可以分为基础设施即服务(Infrastructure as a Service,laaS)、平台即服务(Platform as a Service,PaaS) 和软件即服务(Software as a Service,SaaS)三种服务类型。

laaS 向用户提供计算机能力、存储空间等基础设施方面的服务。这种服务模式需要较大的基础设施投入和长期运营管理经验,其单纯出租资源的盈利能力有限。

PaaS 向用户提供虚拟的操作系统、数据库管理系统、Web 应用等平台化的服务。PaaS 服务的重点不在于直接的经济效益,而更注重构建和形成紧密的产业生态。

SaaS 向用户提供应用软件(如 CRM、办公软件等)、组件、工作流等虚拟化软件的服务,SaaS 一般采用 Web 技术和SOA 架构,通过Internet 向用户提供多租户、可定制的应用能力,大大缩短了软件产业的渠道链条,减少了软件升级、定制和运行维护的复杂程度,并使软件提供商从软件产品的生产者转变为应用服务的运营者。

2.关键技术

云计算的关键技术主要涉及虚拟化技术、云存储技术、多租户和访问控制管理、云安全技术等。

1)虚拟化技术

虚拟化是一个广义术语,在计算机领域通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU 的虚拟化技术可以单CPU模拟多 CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU 或者虚拟主机上。超线程技术只是单CPU 模拟双CPU 来平衡程序运行性能,这两个模拟出来的 CPU 是不能分离的,只能协同工作。

容器(Container) 技术是一种全新意义上的虚拟化技术,属于操作系统虚拟化的范畴,也就是由操作系统提供虚拟化的支持。目前最受欢迎的容器环境是 Docker。容器技术将单个操作系统的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求。例如:用户创建一个应用,传统方式需要虚拟机,但虚拟机本身就占用了更多的系统资源。又如,应用需要在开发和运维之间转移、协作,当开发和运维的操作环境不同时,也会影响结果。使用容器技术可将应用隔离在一个独立的运行环境中,该独立环境称之为容器,可以减少运行程序带来的额外消耗,并可以在几乎任何地方以相同的方式运行。

2)云存储技术

云存储技术是基于传统媒体系统发展而来的一种全新信息存储管理方式,该方式整合应用了计算机系统的软硬件优势,可较为快速、高效地对海量数据进行在线处理,通过多种云技术平台的应用,实现了数据的深度挖掘和安全管理。

分布式文件系统作为云存储技术中的重要组成部分,在维持兼容性的基础上,对系统复制和容错功能进行提升。同时,通过云集群管理实现云存储的可拓展性,借助模块之间的合理搭配,完成解决方案拟定解决的网络存储问题、联合存储问题、多节点存储问题、备份处理、负载均衡等。云储存的实现过程中,结合分布式的文件结构,在硬件支撑的基础上,对硬件运行环境进行优化,确保数据传输的完整性和容错性;结合成本低廉的硬件的扩展,大大降低了存储的成本。

在分布式文件系统的支撑下,实现了通过云存储资源的拓展,辅助高吞吐量数据的分析使得用户可以更加充分、全面地进行数据管理,实现用户上传信息的优化管理,满足了不同平台信息获取需要。另一方面,通过加强对云存储技术中相关数据的安全防护,实现信息存储过程中的病毒防护和安全监控,确保信息存储应用的安全性。

3)多租户和访问控制管理

云计算环境下访问控制的研究是伴随着云计算的发展而开始的,访问控制管理是云计算应用的核心问题之一。云计算访问控制的研究主要集中在云计算访问控制模型、基于 ABE 密码体制的云计算访问控制、云中多租户及虚拟化访问控制研究。

云计算访问控制模型就是按照特定的访问策略来描述安全系统,建立安全模型的一种方法。用户(租户)可以通过访问控制模型得到一定的权限,进而对云中的数据进行访问,所以访问控制模型多用于静态分配用户的权限。云计算中的访问控制模型都是以传统的访问控制模型为基础,在传统的访问控制模型上进行改进,使其更适用于云计算的环境。根据访问控制模型功能的不同,研究的内容和方法也不同,常见的有基于任务的访问控制模型、基于属性模型的云计算访问控制、基于UCON 模型的云计算访问控制、基于 BLP 模型的云计算访问控制等。

基于ABE 密码机制的云计算访问控制包括 4 个参与方:数据提供者、可信第三方授权中心、云存储服务器和用户。首先,可信授权中心生成主密钥和公开参数,将系统公钥传给数据提供者,数据提供者收到系统公钥之后,用策略树和系统公钥对文件加密,将密文和策略树上传到云服务器:然后,当一个新用户加入系统后,将自己的属性集上传给可信授权中心并提交私钥申请请求,可信授权中心针对用户提交的属性集和主密钥计算生成私钥,传给用户;最后,用户下载感兴趣的数据。如果其属性集合满足密文数据的策略树结构,则可以解密密文;否则,访问数据失败。

云中多租户及虚拟化访问控制是云计算的典型特征。由于租户间共享物理资源,并且其可信度不容易得到,所以租户之间就可以通过侧通道攻击来从底层的物理资源中获得有用的信息。此外,由于在虚拟机上要部署访问控制策略可能会带来多个租户访问资源的冲突,导致物理主机上出现没有认证的或者权限分配错误的信息流。这就要求在云环境下,租户之间的通信应该由访问控制来保证,并且每个租户都有自己的访问控制策略,使得整个云平台的访问控制变得复杂。目前,对多租户访问控制的研究主要集中在对多租户的隔离和虚拟机的访问控制方面。

4) 云安全技术

云安全研究主要包含两个方面的内容,一是云计算技术本身的安全保护工作,涉及相应的数据完整性及可用性、隐私保护性以及服务可用性等方面的内容;二是借助于云服务的方式来保障客户端用户的安全防护需求,通过云计算技术来实现互联网安全,涉及基于云计算的病毒防治、木马检测技术等。

在云安全技术的研究方面,主要包含:

云计算安全性:主要是对于云自身以及所涉及的应用服务内容进行分析,重点探讨其相应的安全性问题,这里主要涉及如何有效实现安全隔离,保障互联网用户数据的安全性,如何有效防护恶意网络攻击,提升云计算平台的系统安全性,以及用户接入认证以及相应的信息传输审计、安全等方面的工作。

保障云基础设施的安全性:主要就是如何利用相应的互联网安全基础设备的相应资源有效实现云服务的优化,从而保障满足预期的安全防护的要求。

云安全技术服务:重点集中于如何保障实现互联网终端用户的安全服务要求,能有效实现客户端的计算机病毒防治等相关服务工作。从云安全架构的发展情况来看,如果云计算服务商的安全等级不高,会造成服务用户需要具备更强的安全能力、承担更多管理职责。

为了提升云安全体系的能力,保障其具有较强的可靠性,云安全技术要从开放性、安全保障、体系结构的角度考虑。①云安全系统具有一定的开放性,要保障开放环境下可信认证;②在云安全系统方面,要积极采用先进的网络技术和病毒防护技术;③在云安全体系构建过程中,要保证其稳定性,以满足海量数据动态变化的需求。

综上所述,云安全技术是新一代互联网中安全技术构架的核心内容,体现了当前快速发展的云计算的先进性,是未来的信息安全技术发展的必然趋势。随着云计算应用领域的拓展,云安全技术也必然会越来越成熟,能有效全方位保障广大互联网用户的数据应用安全性,对于云计算的进一步推广与应用具有至关重要的作用。

3.应用和发展

云计算经历十余年的发展,已逐步进入成熟期,在众多领域正发挥着越来越大的作用,“上云”将成为各类组织加快数字化转型、鼓励技术创新和促进业务增长的第一选择,甚至是必备的前提条件。

云计算将进一步成为创新技术和最佳工程实践的重要载体和试验场。从AI与机器学习IoT与边缘计算、区块链到工程实践领域的 DevOps、云原生和 Service Mesh,都有云计算厂商积极参与、投入和推广的身影。以人工智能为例,从前面提到的 IaaS 中 GPU计算资源的提供到面向特定领域成熟模型能力开放(如各类自然语言处理、图像识别、语言合成的 API),再到帮助打造定制化 AI模型的机器学习平台,云计算实际上已成为 AI相关技术的基础。

云计算将顺应产业互联网大潮,下沉行业场景,向垂直化、产业化纵深发展。随着通用类架构与功能的不断完善和对行业客户的不断深耕,云计算自然渗透进入更多垂直领域,成为提供更贴近行业业务与典型场景的基础能力。以金融云为例,云计算可针对金融保险机构特殊的合规和安全需要,提供物理隔离的基础设施,还可提供支付、结算、风控、审计等业务组件。

多云和混合云将成为大中型组织的刚需,得到更多重视与发展。当组织大量的工作负载部署在云端,新的问题则会显现:①虽然云端已经能提供相当高的可用性,但为了避免单一供应商出现故障时的风险,关键应用仍须架设必要的技术冗余;②当业务规模较大时,从商业策略角度看,也需要避免过于紧密的厂商绑定,以寻求某种层面的商业制衡和主动权。

云的生态建设重要性不断凸显,成为影响云间竞争的关键因素。当某个云发展到一定规模和阶段,就不能仅仅考虑技术和产品,需要站在长远发展的角度,建立和培养具有生命力的繁荣生态和社区。另外,云生态需要关注面向广大开发者、架构师和运维工程师的持续输出、培养和影响。只有赢得广大技术人员的关注和喜爱,才能赢得未来的云计算市场。

综上所述,“创新、垂直、混合、生态”这四大趋势伴随云计算快速发展。云计算对IT 硬件资源与软件组件进行了标准化、抽象化和规模化,某种意义上颠覆和重构了IT 业界的供应链,是当前新一代信息技术发展的巨大的革新与进步。

2.2.3大数据

大数据(Big Data)指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

1.技术基础

大数据是具有体量大、结构多样、时效性强等特征的数据,处理大数据需要采用新型计算架构和智能算法等新技术。大数据从数据源到最终价值实现一般需要经过数据准备、数据存储与管理、数据分析和计算、数据治理和知识展现等过程,涉及数据模型、处理模型、计算理论以及与其相关的分布计算、分布存储平台技术、数据清洗和挖掘技术、流式计算和增量处理技术、数据质量控制等方面的研究。一般来说,大数据主要特征包括:

数据海量:大数据的数据体量巨大,从TB级别跃升到PB级别(IPB=1024TB)、EB级别(1EB=1024PB),甚至达到ZB级别(1ZB=1024EB)。

数据类型多样:大数据的数据类型繁多,一般分为结构化数据和非结构化数据。相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。

数据价值密度低:数据价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不间断的监控中,有用数据可能仅有一二秒。如何通过强大的机器算法更迅速地完成数据的价值“提纯”,成为目前大数据背景下待解决的难题。

数据处理速度快:为了从海量的数据中快速挖掘数据价值,一般要求要对不同类型的数据进行快速的处理,这是大数据区分于传统数据挖掘的最显著特征。

2.关键技术

大数据技术作为信息化时代的一项新兴技术,技术体系处在快速发展阶段,涉及数据的处理、管理、应用等多个方面。具体来说,技术架构是从技术视角研究和分析大数据的获取、管理、分布式处理和应用等。大数据的技术架构与具体实现的技术平台和框架息息相关,不同的技术平台决定了不同的技术架构和实现。从总体上说,大数据技术架构主要包含大数据获取技术、分布式数据处理技术和大数据管理技术,以及大数据应用和服务技术。

1)大数据获取技术

目前,大数据获取的研究主要集中在数据采集、整合和清洗三个方面。数据采集技术实现数据源的获取,然后通过整合和清理技术保证数据质量。

数据采集技术主要是通过分布式爬取、分布式高速高可靠性数据采集、高速全网数据映像技术,从网站上获取数据信息。除了网络中包含的内容之外,对于网络流量的采集可以使用DPI或DFI等带宽管理技术进行处理。 

数据整合技术是在数据采集和实体识别的基础上,实现数据到信息的高质量整合。数据整合技术包括多源多模态信息集成模型、异构数据智能转换模型、异构数据集成的智能模式抽取和模式匹配算法、自动容错映射和转换模型及算法、整合信息的正确性验证方法、整合信息的可用性评估方法等。数据清洗技术一般根据正确性条件和数据约束规则,清除不合理和错误的数据,对重要的信息进行修复,保证数据的完整性。包括数据正确性语义模型、关联模型和数据约束规则、数据错误模型和错误识别学习框架、针对不同错误类型的自动检测和修复算法、错误检测与修复结果的评估模型和评估方法等。

2)分布式数据处理技术

分布式计算是随着分布式系统的发展而兴起的,其核心是将任务分解成许多小的部分,分配给多台计算机进行处理,通过并行工作的机制,达到节约整体计算时间,提高计算效率的目的。目前,主流的分布式计算系统有 Hadoop、Spark 和 Storm。Hadoop 常用于离线的复杂的大数据处理,Spark 常用于离线的快速的大数据处理,而 Storm 常用于在线的实时的大数据处理。大数据分析与挖掘技术主要指改进已有数据挖掘和机器学习技术;开发数据网络挖掘、特异群组挖掘、图挖掘等新型数据挖掘技术,创新基于对象的数据连接、相似性连接等大数据融合技术;突破用户兴趣分析、网络行为分析、情感语义分析等面向领域的大数据挖掘技术。

3)大数据管理技术

大数据管理技术主要集中在大数据存储、大数据协同和安全隐私等方面。大数据存储技术主要有三个方面。①采用 MPP 架构的新型数据库集群,通过列存储、粗粒度索引等多项大数据处理技术和高效的分布式计算模式,实现大数据存储;②围绕 Hadoop 衍生出相关的大数据技术,应对传统关系型数据库较难处理的数据和场景,通过扩展和封装 Hadoop来实现对大数据存储、分析的支撞;③基于集成的服务器、存储设备、操作系统、数据库管理系统,实现具有良好的稳定性、扩展性的大数据一体机。

多数据中心的协同管理技术是大数据研究的另一个重要方向。通过分布式工作流引擎实现工作流调度、负载均衡,整合多个数据中心的存储和计算资源,从而为构建大数据服务平台提供支撑。

大数据隐私性技术的研究,主要集中于新型数据发布技术,尝试在尽可能少损失数据信息的同时最大化地隐藏用户隐私。在数据信息量和隐私之间是有矛盾的,目前没有非常好的解决办法。

4)大数据应用和服务技术

大数据应用和服务技术主要包含分析应用技术和可视化技术。大数据分析应用主要是面向业务的分析应用。在分布式海量数据分析和挖掘的基础上,大数据分析应用技术以业务需求为驱动,面向不同类型的业务需求开展专题数据分析,为用户提供高可用、高易用的数据分析服务。

可视化通过交互式视觉表现的方式来帮助人们探索和理解复杂的数据。大数据的可视化技术主要集中在文本可视化技术、网络(图)可视化技术、时空数据可视化技术、多维数据可视化和交互可视化等。在技术方面,主要关注原位交互分析 (In Situ Interactive Analysis)、数据表示、不确定性量化和面向领域的可视化工具库。

3.应用和发展

大数据像水、矿石、石油一样,正在成为新的资源和社会生产要系,从数据资源中挖掘潜在的价值,成为当前大数据时代研究的热点。如何快速对数量巨大、来源分散、格式多样的数据进行采集、存储和关联分析,从中发现新知识、创造新价值、捉升新能力的新一代信息技术和服务业态,是其应用价值的重要体现。

(1)在互联网行业,网络的广泛应用和社交网络已深入到社会工作,生活的方方面面,海量数据的产生、应用和服务一体化。每个人都是数据的生产者、使用者和受益者。从大量的数据中挖掘用户行为,反向传输到业务领域,支持更准确的社会营销和广告,可增加业务收,入.促进业务发展。同时,随着数据的大量生成、分析和应用,数据本身已成为可以交易的资产大数据交易和数据资产化成为当前具有价值的领域和方向。

(2)在政府的公共数据领域,结合大数据的采集、治理和集成,将各个部门搜集的信息进行剖析和共享,能够发现管理上的纰漏,提高执法水平,增进财税增收和加大市场监管程度大大改变政府管理模式、节省政府投资、增强市场管理,提高社会治理水平、城市管理能力和人民群众的服务能力。

(3)在金融领域,大数据征信是重要的应用领域。通过大数据的分析和画像,能够实现个人信用和金融服务的结合,从而服务于金融领域的信任管理、风控管理、借贷服务等,为金融业务提供有效支撑。

(4)在工业领域,结合海量的数据分析,能够为工业生产过程提供准确的指导,如在航运大数据领域,能够使用大数据对将来航路的国际贸易货量进行预测分析,预知各个口岸的热度:能够利用天气数据对航路的影响进行分析,提供相关业务的预警、航线的调整和资源的优化调配方案,避免不必要的亏损。

(5)在社会民生领域,大数据的分析应用能够更好地为民生服务。以疾病预测为例,基于大数据的积累和智能分析,能够透视人们搜索“流感、肝炎、肺结核和未病”的发病时间和地点分布,结合气温变化、环境指数、人口流动等因素建立预测模型,能够为公共卫生治理人员提供多种传染病的趋势预测,帮助其提早进行预防部署。

2.2.4区块链

“区块链”概念于 2008 年在《比特币:一种点对点电子现金系统》中被首次提出,并在比特币系统的数据加密货币体系中成功应用,已成为政府、组织和学者等重点关注和研究的热点区块链技术具有多中心化存储、隐私保护、防篡改等特点,提供了开放、分散和容错的事务机制,成为新一代匿名在线支付、汇款和数字资产交易的核心,被广泛应用于各大交易平台,为金融、监管机构、科技创新、农业以及政治等领域带来了深刻的变革。

1.技术基础

区块链概念可以理解为以非对称加密算法为基础,以改进的默克尔树 (Merkle Tree)为数据结构,使用共识机制、点对点网络、智能合约等技术结合而成的一种分布式存储数据库技术。区块链分为公有链(Public Blockchain)、联盟链(Consortium Blockchain)、私有链(PrivateBlockchain)和混合链(Hybrid Blcokchain)四大类。

一般来说,区块链的典型特征包括:

l多中心化:链上数据的验证、核算、存储、维护和传输等过程均依赖分布式系统结构,运用纯数学方法代替中心化组织机构在多个分布式节点之间构建信任关系,从而建立可信的分布式系统。

l多方维护:激励机制可确保分布式系统中的所有节点均可参与数据区块的验证过程,并通过共识机制选择特定节点将新产生的区块加入到区块链中。

l时序数据:区块链运用带有时间戳信息的链式结构来存储数据信息,为数据信息添加时间维度的属性,从而可实现数据信息的可追溯性。

l智能合约:区块链技术能够为用户提供灵活可变的脚本代码,以支持其创建新型的智能合约。

l不可篡改:在区块链系统中,因为相邻区块间后序区块可对前序区块进行验证,若篡改某一区块的数据信息,则需递归修改该区块及其所有后序区块的数据信息,然而每一次哈希的重新计算代价是巨大的,且须在有限时间内完成,因此可保障链上数据的不可算改性。

l开放共识:在区块链网络中,每台物理设备均可作为该网络中的一个节点,任意节点可自由加入且拥有一份完整的数据库拷贝。

l安全可信:数据安全可通过基于非对称加密技术对链上数据进行加密来实现,分布式系统中各节点通过区块链共识算法所形成的算力来抵御外部攻击、保证链上数据不被算改和伪造,从而具有较高的保密性、可信性和安全性。

2.关键技术

从区块链的技术体系视角看,区块链基于底层的数据基础处理、管理和存储技术,以区块数据的管理、链式结构的数据、数字签名、哈希函数、默克尔树、非对称加密等,通过基于P2P网络的对称式网络,组织节点参与数据的传播和验证,每个节点均会承担网络路由、验证区块数据、传播区块数据、记录交易数据、发现新节点等功能,包含传播机制和验证机制。为保障区块链应用层的安全,通过激励层的发行机制和分配机制,在整个分布式网络的节点以最高效率的方式达成共识。

1)分布式账本

分布式账本是区块链技术的核心之一。分布式账本的核心思想是:交易记账由分布在不同地方的多个节点共同完成,而且每一个节点保存一个唯一、真实账本的副本,它们可以参与监督交易合法性,同时也可以共同为其作证;账本里的任何改动都会在所有的副本中被反映出来,反应时间会在几分钟甚至是几秒内,记账节点足够多,理论上除非所有的节点被破坏,所有整个分布式账本系统是非常稳健的,从而保证了账目数据的安全性。

分布式账本中存储的资产是指法律认可的合法资产,如金融、实体、电子的资产等任何形式的有价资产。为了确保资产的安全性和准确性,分布式账本一方面通过公私钥以及签名控制账本的访问权;另一方面根据共识的规则,长斑中的信息更新可以由一个、一部分人或者是所有参与者共同完成。

分布式账本技术能够保障资产的安全性和准确性,具有广泛的应用场景,特别在公共服务领域,能够重新定义政府与公民在数据分享、透明度和信任意义上的关系,目前已经广泛应用到金融交易、政府征税、土地所有权登记、护照管理、社会福利等领域。

2)加密算法

区块数据的加密是区块链研究和关注的重点,其主要作用是保证区块数据在网络传输、存储和修改过程中的安全。区块链系统中的加密算法一般分为散列(哈希)算法和非对称加密算法。

散列算法也叫数据摘要或者哈希算法,其原理是将一段信息转换成一个固定长度并具备以下特点的字符串:如果某两段信息是相同的,那么字符也是相同的;即使两段信息十分相似,但只要是不同的,那么字符串将会十分杂乱、随机并且两个字符串之间完全没有关联。

本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”,也可以把给定数据的散列值理解为该数据的“指纹信息”。典型的散列算法有 MD5、SHA-1/SHA-2和SM3,目前区块链主要使用SHA-2中的SHA256算法。

非对称加密算法由对应的一对唯一性密钥(即公开密钥和私有密钥) 组成的加密方法。任何获悉用户公钥的人都可用用户的公钥对信息进行加密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。常用的非对称加密算法包括 RSA、Elgamal、D-H、ECC(圆曲线加密算法)等。

3)识机制

在区块链的典型应用一一数字货币中,面临着一系列安全和管理问题,例如:如何防止诈骗?区块数据传输到各个分布式节点的先后次序如何控制?如何应对传输过程中数据的丢失问题?节点如何处理错误或伪造的信息?如何保障节点之间信息更新和同步的一致性?这些问题就是所谓的区块链共识问题。

区块链共识问题需要通过区块链的共识机制来解决。在互联网世界,共识主要是计算机和软件程序协作一致的基本保障,是分布式系统节点或程序运行的基本依据。共识算法能保证分布式的计算机或软件程序协作一致,对系统的输入输出做出正确的响应。

区块链的共识机制的思想是:在没有中心点总体协调的情况下,当某个记账节点提议区块数据增加或减少,并把该提议广播给所有的参与节点,所有节点要根据一定的规则和机制,对这一提议是否能够达成一致进行计算和处理。

目前,常用的共识机制主要有 PoW、PoS、DPOS、Paxos、PBFT 等。根据区块链不同应用场景中各种共识机制的特性,共识机制分析可基于:

l合规监管:是否支持超级权限节点对全网节点、数据进行监管。

l性能效率:交易达成共识被确认的效率。

l资源消耗:共识过程中耗费的CPU、网络输入输出、存储等资源。

l容错性:防攻击、防欺诈的能力。

3.应用和发展

当前,TCP/IP 协议是全球互联网的“牵手协议”。将“多中心化、分布式”理念变成了一种可执行的程序,并在此基础上派生出了更多的类似协议。然而,回顾互联网技术的发展,当前的互联网技术成功实现了信息的多中心化,但却无法实现价值的多中心化。换句话说,互联网上能多中心化的活动是无需信用背书的活动,需要信用做保证的都是中心化的、有第三方中介机构参与的活动。因此,无法建立全球信用的互联网技术就在发展中遇到了障碍一一人们无法在互联网上通过多中心化方式参与价值交换活动。

从区块链技术研究角度看:①在共识机制方面,如何解决公有链、私有链、联盟链的权限控制、共识效率、约束、容错率等方面的问题,寻求针对典型场景的、具有普适性的、更优的共识算法及决策将是研究的重点;②在安全算法方面,目前采用的算法大多数是传统的安全类算法,存在潜在的“后门”风险,算法的强度也需要不断升级;另外,管理安全、隐私保护、监管缺乏以及新技术(如量子计算) 所带来的安全问题需要认真对待;③在区块链治理领域如何结合现有信息技术治理体系的研究,从区块链的战略、组织、架构以及区块链应用体系的各个方面,研究区块链实施过程中的环境与文化、技术与工具、流程与活动等问题,进而实现区块链的价值,开展相关区块链的审计,是区块链治理领域需要核心关注的问题;④在技术日益成熟的情况下,研究区块链的标准化,也是需要重要考虑的内容。

(1)区块链将成为互联网的基础协议之一。本质上,互联网同区块链一样,也是个多中心化的网络,并没有一个“互联网的中心”存在。不同的是,互联网是一个高效的信息传输网络,并不关心信息的所有权,没有内生的、对有价值信息的保护机制;区块链作为一种可以传输所有权的协议,将会基于现有的互联网协议架构,构建出新的基础协议层。从这个角度看,区块链(协议)会和传输控制协议/因特网互联协议(TCP/IP)一样,成为未来互联网的基础协议构建出一个高效的、多中心化的价值存储和转移网络。

(2)区块链架构的不同分层将承载不同的功能。类似 TCP/IP 协议栈的分层结构,人们在统一的传输层协议之上,发展出了各种各样的应用层协议,最终构建出了今天丰富多彩的互联网。未来区块链结构也将在一个统一的、多中心化的底层协议基础上,发展出各种各样应用层协议。

(3)区块链的应用和发展呈螺旋式上升趋势。如同互联网的发展一样,在发展过程中会经历过热甚至泡沫阶段,并以颠覆式的技术改变融合传统产业。区块链作为数字化浪潮中下一个阶段的核心技术,其发展周期将比预想得要长,影响的范围和深度也会远远超出人们的想象,将会构建出多样化生态的价值互联网,从而深刻改变未来商业社会的结构和每个人的生活。

2.2.5人工智能

人工智能是指研究和开发用于模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门技术科学。这一概念自 1956 年被提出后,已历经半个多世纪的发展和演变。21 世纪初随着大数据、高性能计算和深度学习技术的快速迭代和进步,人工智能进入新一轮的发展热潮,其强大的赋能性对经济发展、社会进步、国际政治经济格局等产生了重大且深远的影响,已成为新一轮科技革命和产业变革的重要驱动力量。

1.技术基础

人工智能从产生到现在,其发展历程经历了6 个主要阶段:起步发展期(1956 年至20世纪 60 年代初)、反思发展期 (20 世纪 60 年代至20 世纪 70 年代初)、应用发展期 (20 世纪 70年代初至 20 世纪 80 年代中)、低迷发展期 (20 世纪80 年代中至20 世纪 90 年代中)、步发展期 (20 世纪90 年代中至2010 年)、蓬发展期(2011 年至今)。

从当前的人工智能技术进行分析可知,其在技术研究方面主要聚焦在热点技术、共性技术和新兴技术三个方面。其中以机器学习为代表的基础算法的优化改进和实践,以及迁移学习强化学习、多核学习和多视图学习等新型学习方法是研究探索的热点;自然语言处理相关的特征提取、语义分类、词嵌入等基础技术和模型研究,以及智能自动问答、机器翻译等应用研究也取得诸多的成果;以知识图谱、专家系统为逻辑的系统化分析也在不断地取得突破,大大拓展了人工智能的应用场景,对人工智能未来的发展具有重要的潜在影响。

2.关键技术

人工智能的关键技术主要涉及机器学习、自然语言处理、专家系统等技术,随着人工智能应用的深入,越来越多新兴的技术也在快速发展中。

1)机器学习

机器学习是一种自动将模型与数据匹配,并通过训练模型对数据进行“学习”的技术。机器学习的研究主要聚焦在机器学习算法及应用、强化学习算法、近似及优化算法和规划问题等方面,其中常见的学习算法主要包含回归、聚类、分类、近似、估计和优化等基础算法的改进研究,迁移学习、多核学习和多视图学习等强化学习方法是当前的研究热点。

神经网络是机器学习的一种形式,该技术出现在 20 世纪 60 年代,并用于分类型应用程序它根据输入、输出、变量权重或将输入与输出关联的“特征”来分析问题。它类似于神经元处理信号的方式。深度学习是通过多等级的特征和变量来预测结果的神经网络模型,得益于当前计算机架构更快的处理速度,这类模型有能力应对成千上万个特征。与早期的统计分析形式不司,深度学习模型中的每个特征通常对于人类观察者而言意义不大,使得该模型的使用难度很大且难以解释。深度学习模型使用一种称为反向传播的技术,通过模型进行预测或对输出进行分类。强化学习是机器学习的另外一种方式,指机器学习系统制订了目标而且迈向目标的每步都会得到某种形式的奖励。

机器学习模型是以统计为基础的,而且应该将其与常规分析进行对比以明确其价值增量。

它们往往比基于人类假设和回归分析的传统“手工”分析模型更准确,但也更复杂和难以解释。

相比于传统的统计分析,自动化机器学习模型更容易创建,而且能够揭示更多的数据细节。

2)自然语言处理

自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地使用自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

自然语言处理主要应用于机器翻译、舆情监测、自动摘要、观点提取、文本分类、问题回答、文本语义对比、语音识别、中文 OCR 等方面。

自然语言处理(即实现人机间自然语言通信,或实现自然语言理解和自然语言生成) 是十分困难的,困难的根本原因是自然语言文本和对话的各个层次上广泛存在着各种各样的歧义性或多义性。自然语言处理解决的核心问题是信息抽取、自动文摘/分词、识别转化等,用于解决内容的有效界定、消歧和模糊性、有瑕疵的或不规范的输入、语言行为理解和交互。当前,深度学习技术是自然语言处理的重要技术支撑,在自然语言处理中需应用深度学习模型,如卷积神经网络、循环神经网络等,通过对生成的词向量进行学习,以完成自然语言分类、理解的过程。

3)专家系统

专家系统是一个智能计算机程序系统,通常由人机交互界面、知识库、推理机、解释器综合数据库、知识获取等6个部分构成,其内部含有大量的某个领域专家水平的知识与经验它能够应用人工智能技术和计算机技术,根据系统中的知识与经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题。简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。

在人工智能的发展过程中,专家系统的发展已经历了三个阶段,正向第四代过渡和发展第一代专家系统以高度专业化、求解专门问题的能力强为特点。但在体系结构的完整性、可移植性、系统的透明性和灵活性等方面存在缺陷,求解问题的能力弱。第二代专家系统属于单学科专业型、应用型系统,其体系结构较完整,移植性方面也有所改善,而且在系统的人机接口解释机制、知识获取技术、不确定推理技术、增强专家系统的知识表示和推理方法的启发性.通用性等方面都有所改进。第三代专家系统属多学科综合型系统,采用多种人工智能语言,综合采用各种知识表示方法和多种推理机制及控制策略,并运用各种知识工程语言、骨架系统及专家系统开发工具和环境来研制大型综合专家系统。

当前人工智能的专家系统研究已经进入到第四个阶段,主要研究大型多专家协作系统、多种知识表示、综合知识库、自组织解题机制、多学科协同解题与并行推理、专家系统工具与环工神经网络知识获取及学习机制等。

3.应用和发展

经过 60 多年的发展,人工智能在算法、算力(计算能力)和算料 (数据)等方面取得了重要突破,正处于从“不能用”到“可以用”的技术拐点,但是距离“很好用”还存在诸多瓶颈实现从专用人工智能向通用人工智能的跨越式发展,既是下一代人工智能发展的必然趋势,也是研究与应用领域的重大挑战,是未来应用和发展的趋势。

(1)从人工智能向人机混合智能发展。借鉴脑科学和认知科学的研究成果是人工智能的一个重要研究方向。人机混合智能旨在将人的作用或认知模型引入到人工智能系统中,提升人工智能系统的性能,使人工智能成为人类智能的自然延伸和拓展,通过人机协同更加高效地解决复杂问题。

(2)从“人工+智能”向自主智能系统发展。当前人工智能领域的大量研究集中在深度学习,但是深度学习的局限是需要大量人工干预,比如人工设计深度神经网络模型、人工设定应用场景、人工采集和标注大量训练数据、用户需要人工适配智能系统等,非常费时费力。因此,科研人员开始关注减少人工干预的自主智能方法,提高机器智能对环境的自主学习能力。

(3)人工智能将加速与其他学科领域交叉渗透。人工智能本身是一门综合性的前沿学科和高度交叉的复合型学科,研究范畴广泛而又异常复杂,其发展需要与计算机科学、数学、认知科学、神经科学和社会科学等学科深度融合。借助于生物学、脑科学、生命科学和心理学等学科的突破,将机理变为可计算的模型,人工智能将与更多学科深入地交叉渗透。

(4)人工智能产业将蓬勃发展。随着人工智能技术的进一步成熟以及政府和产业界投入的日益增长,人工智能应用的云端化将不断加速,全球人工智能产业规模在未来 10 年将进入高速增长期。“人工智能 +X”的创新模式将随着技术和产业的发展日趋成熟,对生产力和产业结构产生革命性影响,并推动人类进入普惠型智能社会。

(5) 人工智能的社会学将提上议程。为了确保人工智能的健康可持续发展,使其发展成果造福于民,需要从社会学的角度系统全面地研究人工智能对人类社会的影响,制定完善人工智能法律法规,规避可能的风险,旨在“以有利于整个人类的方式促进和发展友好的人工智能”。

2.2.6虚拟现实

自从计算机创造以来,计算机一直是传统信息处理环境的主体,这与人类认识空间及计算机处理问题的信息空间存在不一致的矛盾,如何把人类的感知能力和认知经历及计算机信息处理环境直接联系起来,是虚拟现实产生的重大背景。如何建立一个能包容图像、声音、化学气味等多种信息源的信息空间,将其与视觉、听觉、嗅觉、口令、手势等人类的生活空间交叉融合,虚拟现实的技术应运而生。

1.技术基础

虚拟现实(Virtual Reality,VR)是一种可以创立和体验虚拟世界的计算机系统(其中虚拟世界是全体虚拟环境的总称)。通过虚拟现实系统所建立的信息空间,已不再是单纯的数字信息空间,而是一个包容多种信息的多维化的信息空间 (Cyberspace),人类的感性认识和理性认识能力都能在这个多维化的信息空间中得到充分的发挥。要创立一个能让参与者具有身临其境感,具有完善交互作用能力的虚拟现实系统,在硬件方面,需要高性能的计算机软硬件和各类先进的传感器:在软件方面,主要是需要提供一个能产生虑拟环境的工具集。

虚拟现实技术的主要特征包括沉浸性、交互性、多感知性、构想性(也称想象性) 和自主性。随着虚拟现实技术的快速发展,按照其“沉浸性”程度的高低和交互程度的不同,虚拟现实技术已经从桌面虚拟现实系统、沉浸式虚拟现实系统、分布式虚拟现实系统等,向着增强式虚拟现实系统(Augmented Reality,AR)和元宇宙的方向发展。

2.关键技术

虚拟现实的关键技术主要涉及人机交互技术、传感器技术、动态环境建模技术和系统集成技术等。

1)人机交互技术

虚拟现实中的人机交互技术与传统的只有键盘和鼠标的交互模式不同,是一种新型的利用VR 眼镜、控制手柄等传感器设备,能让用户真实感受到周围事物存在的一种三维交互技术,将三维交互技术与语音识别、语音输入技术及其他用于监测用户行为动作的设备相结合,形成了目前主流的人机交互手段。

2)传感器技术

VR 技术的进步受制于传感器技术的发展,现有的 VR 设备存在的缺点与传感器的灵敏程度有很大的关系。例如VR 头显(即 VR 眼镜)设备过重、分辨率低、刷新频率慢等,容易造成视觉疲劳;数据手套等设备也都有延迟长、使用灵敏度不够的缺陷,所以传感器技术是 VR 技术更好地实现人机交互的关键。

3)动态环境建模技术

虚拟环境的设计是 VR 技术的重要内容,该技术是利用三维数据建立虚拟环境模型。目前常用的虚拟环境建模工具为计算机辅助设计 (Computer Aided Design,CAD),操作者可以通过CAD 技术获取所需数据,并通过得到的数据建立满足实际需要的虚拟环境模型。除了通过CAD技术获取三维数据,多数情况下还可以利用视觉建模技术,两者相结合可以更有效地获取数据

4)系统集成技术

VR 系统中的集成技术包括信息同步、数据转换、模型标定、识别和合成等技术,由于 VR系统中储存着许多的语音输入信息、感知信息以及数据模型,因此 VR 系统中的集成技术显得越发重要。

3.应用和发展

(1)硬件性能优化迭代加快。轻薄化、超清化加速了虚拟现实终端市场的迅速扩大,开启了虚拟现实产业爆发增长的新空间,虚拟现实设备的显示分辨率、帧率、自由度、延时、交互性能、重量、眩晕感等性能指标日趋优化,用户体验感不断提升。

(2) 网络技术的发展有效助力其应用化的程度。泛在网络通信和高速的网络速度,有效提升了虚拟现实技术在应用端的体验。借助于终端轻型化和移动化5G 技术,高峰值速率、毫秒级的传输时延和千亿级的连接能力,降低了对虚拟现实终端侧的要求。

(3)虚拟现实产业要素加速融通。技术、人才多维并举,虚拟现实产业核心技术不断取得突破,已形成较为完整的虚拟现实产业链条。虚拟现实产业呈现出从创新应用到常态应用的产业趋势,在舞台艺术、体育智慧观赛、新文化弘扬、教育、医疗等领域普遍应用。“虚拟现实+商贸会展”成为后疫情时代的未来新常态,“虚拟现实+工业生产”是组织数字化转型的新动能,“虚拟现实 +智慧生活”大大提升了未来智能化的生活体验,“虚拟现实+文娱休闲”成为新型信息消费模式的新载体等。

(4)元宇宙等新兴概念为虚拟现实技术带来了“沉和叠加”“激进和渐进”“开放和封闭等新的商业理念,大大提升了其应用价值和社会价值,将逐渐改变人们所习惯的现实世界物理规则,以全新方式激发产业技术创新,以新模式、新业态等方式带动相关产业跃迁升级。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《php和mysql web开发(原书第4)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级和结合性: 1.13 使用可变函数 1.13.1 测试和设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:addslashes()和stripslashes() 4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2 使用strlen()函数测试字符串的长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_replace() 4.6 正则表达式的介绍 4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用未定义的函数 5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 5.10 实现递归 5.10.1 名称空间 5.11 进一步学习 5.12 下一章 第6章 面向对象的PHP 6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和public关键字控制访问 6.6 类操作的调用 6.7 在PHP中实现继承 6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()重载方法 6.10.7 使用__autoload()方法 6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章 第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件商店应用程序的异常 7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章 第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 8.2 如何设计Web数据库 8.2.1 考虑要建模的实际对象 8.2.2 避免保存冗余数据 8.2.3 使用原子列值 8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到MySQL 9.3 创建数据库和用户 9.4 设置用户与权限 9.5 MySQL权限系统的介绍 9.5.1 最少权限原则 9.5.2 创建用户:GRANT命令 9.5.3 权限的类型和级别 9.5.4 REVOKE命令 9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章 第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 获取满足特定条件的数据 10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 10.8 删除整个数据库 10.9 进一步学习 10.10 下一章 第11章 使用PHP从Web访问MySQL数据库 11.1 Web数据库架构的工作原理 11.2 从Web查询数据库的基本步骤 11.2.1 检查与过滤用户输入数据 11.2.2 建立一个连接 11.2.3 选择使用的数据库 11.2.4 查询数据库 11.2.5 检索查询结果 11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理 12.1 深入理解权限系统 12.1.1 user表 12.1.2 db表和host表 12.1.3 tables_priv表,columns_priv表和procs_priv表 12.1.4 访问控制:MySQL如何使用Grant表 12.1.5 更新权限:修改什么时候生效 12.2 提高MySQL数据库的安全性 12.2.1 从操作系统角度来保护MySQL 12.2.2 密码 12.2.3 用户权限 12.2.4 Web问题 12.3 获取更多关于数据库的信息 12.3.1 使用SHOW获取信息 12.3.2 使用DESCRIBE获取关于列的信息 12.3.3 用EXPLAIN理解查询操作的工作过程 12.4 数据库的优化 12.4.1 设计优化 12.4.2 权限 12.4.3 表的优化 12.4.4 使用索引 12.4.5 使用默认值 12.4.6 其他技巧 12.5 备份MySQL数据库 12.6 恢复MySQL数据库 12.7 实现复制 12.7.1 设置主服务器 12.7.2 执行初始的数据传输 12.7.3 设置一个/多个从服务器 12.8 进一步学习 12.9 下一章 第13章 MySQL高级编程 13.1 LOAD DATA INFILE语句 13.2 存储引擎 13.3 事务 13.3.1 理解事务的定义 13.3.2 通过InnoDB使用事务 13.4 外键 13.5 存储过程 13.5.1 基本示例 13.5.2 局部变量 13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4 为产品或服务增值 14.2.5 减少成本 14.3 理解风险和威胁 14.3.1 网络黑客 14.3.2 不能招揽足够的生意 14.3.3 计算机硬件故障 14.3.4 电力、通信、网络或运输故障 14.3.5 广泛的竞争 14.3.6 软件错误 14.3.7 不断变化的政府政策和税收 14.3.8 系统容量限制 14.4 选择一个策略 14.5 下一章 第15章 电子商务的安全问题 15.1 信息的重要程度 15.2 安全威胁 15.2.1 机密数据的泄露 15.2.2 数据丢失和数据破坏 15.2.3 数据修改 15.2.4 拒绝服务 15.2.5 软件错误 15.2.6 否认 15.3 易用性,性能、成本和安全性 15.4 建立一个安全政策 15.5 身份验证原则 15.6 加密技术基础 15.6.1 私有密钥加密 15.6.2 公有密钥加密 15.6.3 数字签名 15.7 数字证书 15.8 安全的Web服务器 15.9 审计与日志记录 15.10 防火墙 15.11 备份数据 15.11.1 备份常规文件 15.11.2 备份与恢复MySQL数据库 15.12 自然环境安全 15.13 下一章 第16章 Web应用的安全 16.1处理安全性问题的策略 16.1.1 以正确心态为开始 16.1.2 安全性和可用性之间的平衡 16.1.3 安全监视 16.1.4 基本方法 16.2 识别所面临的威胁 16.2.1 访问或修改敏感数据 16.2.2 数据丢失或破坏 16.2.3 拒绝服务 16.2.4 恶意代码注入 16.2.5 服务器被攻破 16.3了解与我们“打交道”的用户 16.3.1 破解人员 16.3.2 受影响机器的未知情用户 16.3.3 对公司不满的员工 16.3.4 硬件被盗 16.3.5 我们自身 16.4 代码的安全性 16.4.1 过滤用户输入 16.4.2 转义输出 16.4.3 代码组织 16.4.4 代码自身的问题 16.4.5 文件系统因素 16.4.6 代码稳定性和缺陷 16.4.7 执行引号和exec 16.5 Web服务器和PHP的安全性 16.5.1 保持软件的更新 16.5.2 查看php.ini文件 16.5.3 Web服务器配置 16.5.4 Web应用的商业主机服务 16.6 数据库服务器的安全性 16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 保持操作系统的更新 16.8.2只运行必须的软件 16.8.3 服务器的物理安全性 16.9 灾难计划 16.10 下一章 第17章 使用PHP和MySQL实现身份验证 17.1 识别访问者 17.2 实现访问控制 17.2.1 保存密码 17.2.2 密码的加密 17.2.3 保护多个网页 17.3 使用基本身份验证 17.4 在PHP中使用基本身份验证 17.5 在Apache的.htaccess文件中使用基本身份验证 17.6 使用mod_auth_mysql身份验证 17.6.1 安装mod_auth_mysql 17.6.2 使用mod_auth_mysql 17.7 创建自定义身份验证 17.8 进一步学习 17.9 下一章 第18章 使用PHP和MySQL实现安全事务 18.1 提供安全的事务处理 18.1.1 用户机器 18.1.2 Internet 18.1.3 我们的系统 18.2 使用加密套接字层(SSL) 18.3 屏蔽用户的输入 18.4 提供安全存储 18.5 存储信用卡号码 18.6 在PHP中使用加密技术 18.6.1 安装GPG 18.6.2 测试GPG 18.7 进一步学习 18.8 下一章 第四篇 PHP的高级技术 第19章 与文件系统和服务器的交互 19.1 文件上载 19.1.1 文件上载的HTML代码 19.1.2 编写处理文件的PHP 19.1.3 避免常见上载问题 19.2 使用目录函数 19.2.1 从目录读取 19.2.2 获得当前目录的信息 19.2.3 创建和删除目录 19.3 与文件系统的交互 19.3.1 获取文件信息 19.3.2 更改文件属性 19.3.3 创建、删除和移动文件 19.4 使用程序执行函数 19.5 与环境变量交互:getenv()和putenv() 19.6 进一步学习 19.7 下一章 第20章 使用网络函数和协议函数 20.1 了解可供使用的协议 20.2 发送和读取电子邮件 20.3 使用其他Web站点的数据 20.4 使用网络查找函数 20.5 备份或镜像一个文件 20.5.1 使用FTP备份或镜像一个文件 20.5.2 上传文件 20.5.3 避免超时 20.5.4 使用其他的FTP函数 20.6 进一步学习 20.7 下一章 第21章 日期和时间的管理 21.1 在PHP中获取日期和时间 21.1.1 使用date()函数 21.1.2 使用UNIX时间戳 21.1.3 使用getdate()函数 21.1.4 使用checkdate()函数检验日期有效性 21.1.5 格式化时间戳 21.2 在PHP日期格式和MySQL日期格式之间进行转换 21.3 在PHP中计算日期 21.4 在MySQL中计算日期 21.5 使用微秒 21.6 使用日历函数 21.7 进一步学习 21.8 下一章 第22章 创建图像 22.1 在PHP中设置图像支持 22.2 理解图像格式 22.2.1 JPEG 22.2.2 PNG 22.2.3 WBMP 22.2.4 GIF 22.3 创建图像 22.3.1 创建一个背景图像 22.3.2 在图像上绘图或打印文本 22.3.3 输出最终图形 22.3.4 清理 22.4 在其他页面中使用自动生成的图像 22.5 使用文本和字体创建图像 22.5.1 创建基本画布 22.5.2 将文本调整到适合按钮 22.5.3 放置文本 22.5.4 将文本写到按钮上 22.5.5 完成 22.6 绘制图像与用图表描绘数据 22.7 使用其他的图像函数 22.8 进一步学习 22.9 下一章 第23章 在PHP中使用会话控制 23.1 什么是会话控制 23.2 理解基本的会话功能 23.2.1 什么是cookie 23.2.2 通过PHP设置cookie 23.2.3 在会话中使用cookie 23.2.4 存储会话 ID 23.3 实现简单的会话 23.3.1 开始一个会话 23.3.2 注册一个会话变量 23.3.3 使用会话变量 23.3.4 注销变量与销毁会话 23.4 创建一个简单的会话例子 23.5 配置会话控制 23.6 通过会话控制实现身份验证 23.7 进一步学习 23.8 下一章 第24章 其他有用的特性 24.1 使用eval()函数对字符串求值 24.2 终止执行:die和exit 24.3 序列化变量和对象 24.4 获取PHP环境信息 24.4.1 找到所加载的PHP扩展部件 24.4.2 识别脚本所有者 24.4.3 确定脚本最近修改时间 24.5 暂时改变运行时环境 24.6 源代码加亮 24.7 在命令行中使用PHP 24.8 下一章 第五篇 创建实用的PHP和MySQL项目 第25章 在大型项目中使用PHP和MySQL 25.1 在Web开发中应用软件工程 25.2 规划和运行Web应用程序项目 25.3 重用代码 25.4 编写可维护代码 25.4.1 编码标准 25.4.2 分解代码 25.4.3 使用标准的目录结构 25.4.4 文档化和共享内部函数 25.5 实现本控制 25.6 选择一个开发环境 25.7 项目的文档化 25.8 建立原型 25.9 将逻辑和内容分离 25.10 优化代码 25.10.1 使用简单优化 25.10.2 使用Zend产品 25.11 测试 25.12 进一步学习 25.13 下一章 第26章 调试 26.1 编程错误 26.1.1 语法错误 26.1.2 运行时错误 26.1.3 逻辑错误 26.2 使用变量帮助调试 26.3 错误报告级别 26.4 改变错误报告设置 26.5 触发自定义错误 26.6 巧妙地处理错误 26.7 下一章 第27章 建立用户身份验证机制和个性化设置 27.1 解决方案的组成 27.1.1 用户识别和个性化设置 27.1.2 保存书签 27.1.3 推荐书签 27.2 解决方案概述 27.3 实现数据库 27.4 实现基本的网站 27.5 实现用户身份验证 27.5.1 注册 27.5.2 登录 27.5.3 登出 27.5.4 修改密码 27.5.5 重设遗忘的密码 27.6 实现书签的存储和检索 27.6.1 添加书签 27.6.2 显示书签 27.6.3 删除书签 27.7 实现书签推荐 27.8 考虑可能的扩展 27.9 下一章 第28章 创建一个购物车 28.1 解决方案的组成 28.1.1 创建一个在线目录 28.1.2 在用户购买商品的时候记录购买行为 28.1.3 实现一个付款系统 28.1.4 创建一个管理界面 28.2 解决方案概述 28.3 实现数据库 28.4 实现在线目录 28.4.1 列出目录 28.4.2 列出一个目录中的所有图书 28.4.3 显示图书详细信息 28.5 实现购物车 28.5.1 使用show_cart.php脚本 28.5.2 浏览购物车 28.5.3 将物品添加到购物库 28.5.4 保存更新后的购物车 28.5.5 打印标题栏摘要 28.5.6 结账 28.6 实现付款 28.7 实现一个管理界面 28.8 扩展该项目 28.9 使用一个已有系统 28.10 下一章 第29章 创建一个基于Web的电子邮件服务系统 29.1 解决方案的组成 29.1.1 电子邮件协议:POP3和IMAP 29.1.2 PHP对POP3和IMAP的支持 29.2 解决方案概述 29.3 建立数据库 29.4 了解脚本架构 29.5 登录与登出 29.6 建立账户 29.6.1 创建一个新账户 29.6.2 修改已有账户 29.6.3 删除账户 29.7 阅读邮件 29.7.1 选择账户 29.7.2 查看邮箱内容 29.7.3 阅读邮件消息 29.7.4 查看消息标题 29.7.5 删除邮件 29.8 发送邮件 29.8.1 发送一则新消息 29.8.2 回复或转发邮件 29.9 扩展这个项目 29.10 下一章 第30章 创建一个邮件列表管理器 30.1 解决方案的组成 30.1.1 建立列表和订阅者数据库 30.1.2 上载新闻信件 30.1.3 发送带附件的邮件 30.2 解决方案概述 30.3 建立数据库 30.4 定义脚本架构 30.5 实现登录 30.5.1 新账户的创建 30.5.2 登录 30.6 用户函数的实现 30.6.1 查看列表 30.6.2 查看邮件列表信息 30.6.3 查看邮件列表存档 30.6.4 订阅与取消订阅 30.6.5 更改账户设置 30.6.6 更改密码 30.6.7 登出 30.7 管理功能的实现 30.7.1 创建新的邮件列表 30.7.2 上载新的新闻信件 30.7.3 多文件上载的处理 30.7.4 预览新闻信件 30.7.5 发送邮件 30.8 扩展这个项目 30.9 下一章 第31章 创建一个Web论坛 31.1 理解流程 31.2 解决方案的组成 31.3 解决方案概述 31.4 数据库的设计 31.5 查看文章的树型结构 31.5.1 展开和折迭 31.5.2 显示文章 31.5.3 使用treenode类 31.6 查看单个的文章 31.7 添加新文章 31.8 添加扩充 31.9 使用一个已有的系统 31.10 下一章 第32章 生成PDF格式的个性化文档 32.1 项目概述 32.1.1 评估文档格式 32.2 解决方案的组成 32.2.1 问题与回答系统 32.2.2 文档生成软件 32.3 解决方案概述 32.3.1 提问 32.3.2 给答题评分 32.3.3 生成RTF证书 32.3.4 从模板生成PDF证书 32.3.5 使用PDFlib生成PDF文档 32.3.6 使用PDFlib的一个“Hello World”程序 32.3.7 用PDFlib生成证书 32.4 处理标题的问题 32.5 扩展该项目 32.6 下一章 第33章 使用XML和SOAP来连接Web服务 33.1 项目概述:使用XML和Web服务 33.1.1 理解XML 33.1.2 理解Web服务 33.2 解决方案的组成 33.2.1 使用Amazon的Web服务接口 33.2.2 XML的解析:REST响应 33.2.3 在PHP中使用SOAP 33.2.4 缓存 33.3 解决方案概述 33.3.1 核心应用程序 33.3.2 显示特定种类的图书 33.3.3 获得一个AmazonResultSet类 33.3.4 使用REST发送和接收请求 33.3.5 使用SOAP发送和接收请求 33.3.6 缓存请求返回的数据 33.3.7 创建购物车 33.3.8 到Amazon付账 33.4 安装项目代码 33.5 扩展这个项目 33.6 进一步学习 第34 章使用Ajax构建Web 2.0应用 34.1 Ajax 是什么? 34.1.1 HTTP请求和响应 34.1. 2 DHTML和XHTML 34.1.3 级联样式单(CSS) 34.1.4 客户端编程 34.1.5 服务器端编程 34.1.6 XML和XSLT 34.2 Ajax基础 34.2.1 XMLHTTPRequest对象 34.2.2 与服务器通信 34.2.3 处理服务器响应 34.2.4 整合应用 34.3 在以前的项目添加Ajax元素 34.3.1在PHPBookmark应用中添加Ajax元素 34.4 进一步学习 34.4.1 进一步了解文档对象模型(DOM) 34.4.2 Ajax应用可用的JavaScript函数库 34.4.3 Ajax开发人员网站 第六篇 附录 附录A 安装PHP及MySQL 附录B Web资源 第1章 PHP快速入门教程 第2章 数据的存储与检索 第3章 使用数组 第4章 字符串操作与正则表达式 第5章 代码重用与函数编写 第6章 面向对象的PHP 第7章 错误和异常处理 ……
《php和mysql web开发(原书第4)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级和结合性: 1.13 使用可变函数 1.13.1 测试和设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.3 格式化字符串以便存储:addslashes()和stripslashes() 4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2 使用strlen()函数测试字符串的长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_replace() 4.6 正则表达式的介绍 4.6.1 基础知识 4.6.2 字符集和类 4.6.3 重复 4.6.4 子表达式 4.6.5 子表达式计数 4.6.6 定位到字符串的开始或末尾 4.6.7 分支 4.6.8 匹配特殊字符 4.6.9 特殊字符一览 4.6.10 在智能表单中应用 4.7 用正则表达式查找子字符串 4.8 使用正则表达式分割字符串 4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用未定义的函数 5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 5.10 实现递归 5.10.1 名称空间 5.11 进一步学习 5.12 下一章 第6章 面向对象的PHP 6.1 理解面向对象的概念 6.1.1 类和对象 6.1.2 多态性 6.1.3 继承 6.2 在PHP中创建类、属性和操作 6.2.1 类的结构 6.2.2 构造函数 6.2.3 析构函数 6.3 类的实例化 6.4 使用类的属性 6.5 使用private和public关键字控制访问 6.6 类操作的调用 6.7 在PHP中实现继承 6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()重载方法 6.10.7 使用__autoload()方法 6.10.8 实现迭代器和迭代 6.10.9 将类转换成字符串 6.10.10 使用Reflection(反射)API 6.11 下一章 第7章 错误和 异常处理 7.1 异常处理的概念 7.2 Exception类 7.3 用户自定义异常 7.4 Bob的汽车零部件商店应用程序的异常 7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章 第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 8.2 如何设计Web数据库 8.2.1 考虑要建模的实际对象 8.2.2 避免保存冗余数据 8.2.3 使用原子列值 8.2.4 选择有意义的键 8.2.5 考虑需要询问数据库的问题 8.2.6 避免多个空属性的设计 8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到MySQL 9.3 创建数据库和用户 9.4 设置用户与权限 9.5 MySQL权限系统的介绍 9.5.1 最少权限原则 9.5.2 创建用户:GRANT命令 9.5.3 权限的类型和级别 9.5.4 REVOKE命令 9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的标识符 9.10 选择列数据类型 9.10.1 数字类型 9.10.2 日期和时间类型 9.10.3 字符串类型 9.11 进一步学习 9.12 下一章 第10章 使用MySQL数据库 10.1 SQL是什么 10.2 在数据库中插入数据 10.3 从数据库中获取数据 10.3.1 获取满足特定条件的数据 10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 10.8 删除整个数据库 10.9 进一步学习 10.10 下一章 第11章 使用PHP从Web访问MySQL数据库 11.1 Web数据库架构的工作原理 11.2 从Web查询数据库的基本步骤 11.2.1 检查与过滤用户输入数据 11.2.2 建立一个连接 11.2.3 选择使用的数据库 11.2.4 查询数据库 11.2.5 检索查询结果 11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理 12.1 深入理解权限系统 12.1.1 user表 12.1.2 db表和host表 12.1.3 tables_priv表,columns_priv表和procs_priv表 12.1.4 访问控制:MySQL如何使用Grant表 12.1.5 更新权限:修改什么时候生效 12.2 提高MySQL数据库的安全性 12.2.1 从操作系统角度来保护MySQL 12.2.2 密码 12.2.3 用户权限 12.2.4 Web问题 12.3 获取更多关于数据库的信息 12.3.1 使用SHOW获取信息 12.3.2 使用DESCRIBE获取关于列的信息 12.3.3 用EXPLAIN理解查询操作的工作过程 12.4 数据库的优化 12.4.1 设计优化 12.4.2 权限 12.4.3 表的优化 12.4.4 使用索引 12.4.5 使用默认值 12.4.6 其他技巧 12.5 备份MySQL数据库 12.6 恢复MySQL数据库 12.7 实现复制 12.7.1 设置主服务器 12.7.2 执行初始的数据传输 12.7.3 设置一个/多个从服务器 12.8 进一步学习 12.9 下一章 第13章 MySQL高级编程 13.1 LOAD DATA INFILE语句 13.2 存储引擎 13.3 事务 13.3.1 理解事务的定义 13.3.2 通过InnoDB使用事务 13.4 外键 13.5 存储过程 13.5.1 基本示例 13.5.2 局部变量 13.5.3 游标和控制结构 13.6 进一步学习 13.7 下一章 第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4 为产品或服务增值 14.2.5 减少成本 14.3 理解风险和威胁 14.3.1 网络黑客 14.3.2 不能招揽足够的生意 14.3.3 计算机硬件故障 14.3.4 电力、通信、网络或运输故障 14.3.5 广泛的竞争 14.3.6 软件错误 14.3.7 不断变化的政府政策和税收 14.3.8 系统容量限制 14.4 选择一个策略 14.5 下一章 第15章 电子商务的安全问题 15.1 信息的重要程度 15.2 安全威胁 15.2.1 机密数据的泄露 15.2.2 数据丢失和数据破坏 15.2.3 数据修改 15.2.4 拒绝服务 15.2.5 软件错误 15.2.6 否认 15.3 易用性,性能、成本和安全性 15.4 建立一个安全政策 15.5 身份验证原则 15.6 加密技术基础 15.6.1 私有密钥加密 15.6.2 公有密钥加密 15.6.3 数字签名 15.7 数字证书 15.8 安全的Web服务器 15.9 审计与日志记录 15.10 防火墙 15.11 备份数据 15.11.1 备份常规文件 15.11.2 备份与恢复MySQL数据库 15.12 自然环境安全 15.13 下一章 第16章 Web应用的安全 16.1处理安全性问题的策略 16.1.1 以正确心态为开始 16.1.2 安全性和可用性之间的平衡 16.1.3 安全监视 16.1.4 基本方法 16.2 识别所面临的威胁 16.2.1 访问或修改敏感数据 16.2.2 数据丢失或破坏 16.2.3 拒绝服务 16.2.4 恶意代码注入 16.2.5 服务器被攻破 16.3了解与我们“打交道”的用户 16.3.1 破解人员 16.3.2 受影响机器的未知情用户 16.3.3 对公司不满的员工 16.3.4 硬件被盗 16.3.5 我们自身 16.4 代码的安全性 16.4.1 过滤用户输入 16.4.2 转义输出 16.4.3 代码组织 16.4.4 代码自身的问题 16.4.5 文件系统因素 16.4.6 代码稳定性和缺陷 16.4.7 执行引号和exec 16.5 Web服务器和PHP的安全性 16.5.1 保持软件的更新 16.5.2 查看php.ini文件 16.5.3 Web服务器配置 16.5.4 Web应用的商业主机服务 16.6 数据库服务器的安全性 16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 保持操作系统的更新 16.8.2只运行必须的软件 16.8.3 服务器的物理安全性 16.9 灾难计划 16.10 下一章 第17章 使用PHP和MySQL实现身份验证 17.1 识别访问者 17.2 实现访问控制 17.2.1 保存密码 17.2.2 密码的加密 17.2.3 保护多个网页 17.3 使用基本身份验证 17.4 在PHP中使用基本身份验证 17.5 在Apache的.htaccess文件中使用基本身份验证 17.6 使用mod_auth_mysql身份验证 17.6.1 安装mod_auth_mysql 17.6.2 使用mod_auth_mysql 17.7 创建自定义身份验证 17.8 进一步学习 17.9 下一章 第18章 使用PHP和MySQL实现安全事务 18.1 提供安全的事务处理 18.1.1 用户机器 18.1.2 Internet 18.1.3 我们的系统 18.2 使用加密套接字层(SSL) 18.3 屏蔽用户的输入 18.4 提供安全存储 18.5 存储信用卡号码 18.6 在PHP中使用加密技术 18.6.1 安装GPG 18.6.2 测试GPG 18.7 进一步学习 18.8 下一章 第四篇 PHP的高级技术 第19章 与文件系统和服务器的交互 19.1 文件上载 19.1.1 文件上载的HTML代码 19.1.2 编写处理文件的PHP 19.1.3 避免常见上载问题 19.2 使用目录函数 19.2.1 从目录读取 19.2.2 获得当前目录的信息 19.2.3 创建和删除目录 19.3 与文件系统的交互 19.3.1 获取文件信息 19.3.2 更改文件属性 19.3.3 创建、删除和移动文件 19.4 使用程序执行函数 19.5 与环境变量交互:getenv()和putenv() 19.6 进一步学习 19.7 下一章 第20章 使用网络函数和协议函数 20.1 了解可供使用的协议 20.2 发送和读取电子邮件 20.3 使用其他Web站点的数据 20.4 使用网络查找函数 20.5 备份或镜像一个文件 20.5.1 使用FTP备份或镜像一个文件 20.5.2 上传文件 20.5.3 避免超时 20.5.4 使用其他的FTP函数 20.6 进一步学习 20.7 下一章 第21章 日期和时间的管理 21.1 在PHP中获取日期和时间 21.1.1 使用date()函数 21.1.2 使用UNIX时间戳 21.1.3 使用getdate()函数 21.1.4 使用checkdate()函数检验日期有效性 21.1.5 格式化时间戳 21.2 在PHP日期格式和MySQL日期格式之间进行转换 21.3 在PHP中计算日期 21.4 在MySQL中计算日期 21.5 使用微秒 21.6 使用日历函数 21.7 进一步学习 21.8 下一章 第22章 创建图像 22.1 在PHP中设置图像支持 22.2 理解图像格式 22.2.1 JPEG 22.2.2 PNG 22.2.3 WBMP 22.2.4 GIF 22.3 创建图像 22.3.1 创建一个背景图像 22.3.2 在图像上绘图或打印文本 22.3.3 输出最终图形 22.3.4 清理 22.4 在其他页面中使用自动生成的图像 22.5 使用文本和字体创建图像 22.5.1 创建基本画布 22.5.2 将文本调整到适合按钮 22.5.3 放置文本 22.5.4 将文本写到按钮上 22.5.5 完成 22.6 绘制图像与用图表描绘数据 22.7 使用其他的图像函数 22.8 进一步学习 22.9 下一章 第23章 在PHP中使用会话控制 23.1 什么是会话控制 23.2 理解基本的会话功能 23.2.1 什么是cookie 23.2.2 通过PHP设置cookie 23.2.3 在会话中使用cookie 23.2.4 存储会话 ID 23.3 实现简单的会话 23.3.1 开始一个会话 23.3.2 注册一个会话变量 23.3.3 使用会话变量 23.3.4 注销变量与销毁会话 23.4 创建一个简单的会话例子 23.5 配置会话控制 23.6 通过会话控制实现身份验证 23.7 进一步学习 23.8 下一章 第24章 其他有用的特性 24.1 使用eval()函数对字符串求值 24.2 终止执行:die和exit 24.3 序列化变量和对象 24.4 获取PHP环境信息 24.4.1 找到所加载的PHP扩展部件 24.4.2 识别脚本所有者 24.4.3 确定脚本最近修改时间 24.5 暂时改变运行时环境 24.6 源代码加亮 24.7 在命令行中使用PHP 24.8 下一章 第五篇 创建实用的PHP和MySQL项目 第25章 在大型项目中使用PHP和MySQL 25.1 在Web开发中应用软件工程 25.2 规划和运行Web应用程序项目 25.3 重用代码 25.4 编写可维护代码 25.4.1 编码标准 25.4.2 分解代码 25.4.3 使用标准的目录结构 25.4.4 文档化和共享内部函数 25.5 实现本控制 25.6 选择一个开发环境 25.7 项目的文档化 25.8 建立原型 25.9 将逻辑和内容分离 25.10 优化代码 25.10.1 使用简单优化 25.10.2 使用Zend产品 25.11 测试 25.12 进一步学习 25.13 下一章 第26章 调试 26.1 编程错误 26.1.1 语法错误 26.1.2 运行时错误 26.1.3 逻辑错误 26.2 使用变量帮助调试 26.3 错误报告级别 26.4 改变错误报告设置 26.5 触发自定义错误 26.6 巧妙地处理错误 26.7 下一章 第27章 建立用户身份验证机制和个性化设置 27.1 解决方案的组成 27.1.1 用户识别和个性化设置 27.1.2 保存书签 27.1.3 推荐书签 27.2 解决方案概述 27.3 实现数据库 27.4 实现基本的网站 27.5 实现用户身份验证 27.5.1 注册 27.5.2 登录 27.5.3 登出 27.5.4 修改密码 27.5.5 重设遗忘的密码 27.6 实现书签的存储和检索 27.6.1 添加书签 27.6.2 显示书签 27.6.3 删除书签 27.7 实现书签推荐 27.8 考虑可能的扩展 27.9 下一章 第28章 创建一个购物车 28.1 解决方案的组成 28.1.1 创建一个在线目录 28.1.2 在用户购买商品的时候记录购买行为 28.1.3 实现一个付款系统 28.1.4 创建一个管理界面 28.2 解决方案概述 28.3 实现数据库 28.4 实现在线目录 28.4.1 列出目录 28.4.2 列出一个目录中的所有图书 28.4.3 显示图书详细信息 28.5 实现购物车 28.5.1 使用show_cart.php脚本 28.5.2 浏览购物车 28.5.3 将物品添加到购物库 28.5.4 保存更新后的购物车 28.5.5 打印标题栏摘要 28.5.6 结账 28.6 实现付款 28.7 实现一个管理界面 28.8 扩展该项目 28.9 使用一个已有系统 28.10 下一章 第29章 创建一个基于Web的电子邮件服务系统 29.1 解决方案的组成 29.1.1 电子邮件协议:POP3和IMAP 29.1.2 PHP对POP3和IMAP的支持 29.2 解决方案概述 29.3 建立数据库 29.4 了解脚本架构 29.5 登录与登出 29.6 建立账户 29.6.1 创建一个新账户 29.6.2 修改已有账户 29.6.3 删除账户 29.7 阅读邮件 29.7.1 选择账户 29.7.2 查看邮箱内容 29.7.3 阅读邮件消息 29.7.4 查看消息标题 29.7.5 删除邮件 29.8 发送邮件 29.8.1 发送一则新消息 29.8.2 回复或转发邮件 29.9 扩展这个项目 29.10 下一章 第30章 创建一个邮件列表管理器 30.1 解决方案的组成 30.1.1 建立列表和订阅者数据库 30.1.2 上载新闻信件 30.1.3 发送带附件的邮件 30.2 解决方案概述 30.3 建立数据库 30.4 定义脚本架构 30.5 实现登录 30.5.1 新账户的创建 30.5.2 登录 30.6 用户函数的实现 30.6.1 查看列表 30.6.2 查看邮件列表信息 30.6.3 查看邮件列表存档 30.6.4 订阅与取消订阅 30.6.5 更改账户设置 30.6.6 更改密码 30.6.7 登出 30.7 管理功能的实现 30.7.1 创建新的邮件列表 30.7.2 上载新的新闻信件 30.7.3 多文件上载的处理 30.7.4 预览新闻信件 30.7.5 发送邮件 30.8 扩展这个项目 30.9 下一章 第31章 创建一个Web论坛 31.1 理解流程 31.2 解决方案的组成 31.3 解决方案概述 31.4 数据库的设计 31.5 查看文章的树型结构 31.5.1 展开和折迭 31.5.2 显示文章 31.5.3 使用treenode类 31.6 查看单个的文章 31.7 添加新文章 31.8 添加扩充 31.9 使用一个已有的系统 31.10 下一章 第32章 生成PDF格式的个性化文档 32.1 项目概述 32.1.1 评估文档格式 32.2 解决方案的组成 32.2.1 问题与回答系统 32.2.2 文档生成软件 32.3 解决方案概述 32.3.1 提问 32.3.2 给答题评分 32.3.3 生成RTF证书 32.3.4 从模板生成PDF证书 32.3.5 使用PDFlib生成PDF文档 32.3.6 使用PDFlib的一个“Hello World”程序 32.3.7 用PDFlib生成证书 32.4 处理标题的问题 32.5 扩展该项目 32.6 下一章 第33章 使用XML和SOAP来连接Web服务 33.1 项目概述:使用XML和Web服务 33.1.1 理解XML 33.1.2 理解Web服务 33.2 解决方案的组成 33.2.1 使用Amazon的Web服务接口 33.2.2 XML的解析:REST响应 33.2.3 在PHP中使用SOAP 33.2.4 缓存 33.3 解决方案概述 33.3.1 核心应用程序 33.3.2 显示特定种类的图书 33.3.3 获得一个AmazonResultSet类 33.3.4 使用REST发送和接收请求 33.3.5 使用SOAP发送和接收请求 33.3.6 缓存请求返回的数据 33.3.7 创建购物车 33.3.8 到Amazon付账 33.4 安装项目代码 33.5 扩展这个项目 33.6 进一步学习 第34 章使用Ajax构建Web 2.0应用 34.1 Ajax 是什么? 34.1.1 HTTP请求和响应 34.1. 2 DHTML和XHTML 34.1.3 级联样式单(CSS) 34.1.4 客户端编程 34.1.5 服务器端编程 34.1.6 XML和XSLT 34.2 Ajax基础 34.2.1 XMLHTTPRequest对象 34.2.2 与服务器通信 34.2.3 处理服务器响应 34.2.4 整合应用 34.3 在以前的项目添加Ajax元素 34.3.1在PHPBookmark应用中添加Ajax元素 34.4 进一步学习 34.4.1 进一步了解文档对象模型(DOM) 34.4.2 Ajax应用可用的JavaScript函数库 34.4.3 Ajax开发人员网站 第六篇 附录 附录A 安装PHP及MySQL 附录B Web资源 第1章 PHP快速入门教程 第2章 数据的存储与检索 第3章 使用数组 第4章 字符串操作与正则表达式 第5章 代码重用与函数编写 第6章 面向对象的PHP 第7章 错误和异常处理 ……
手动优化了PDF的书签,书签可折叠,书签链接以目录方式保存,多达1000多页,每页都做了书签定位,手都累酸啦。 ============================== 因权限只能到60MB,分卷压缩了,共3个压缩包,需下载完3个一起解压, ============================== ASP.NET 4高级程序设计(第4)》【原书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET 4高级程序设计(第4)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。   《ASP.NET 4高级程序设计(第4)》适合各层次的ASP.NET程序员阅读。 =================== 第一部分 核心概念 第1章 ASP.NET简介 1.1 ASP.NET的7大要点 1.1.1 要点1:ASP.NET是同.NETFramework集成在一起的 1.1.2 要点2:ASP.NET是编译执行的,而不是解释执行的 1.1.3 要点3:ASP.NET支持多语言 1.1.4 要点4:ASP.NET运行在公共语言运行库内 1.1.5 要点5:ASP.NET是面向对象的 1.1.6 要点6:ASP.NET支持所有的浏览器 1.1.7 要点7:ASP.NET易于部署和配置 1.2 ASP.NET的演变 1.2.1 ASP.NET1.0和ASP.NET1.1 1.2.2  ASP.NET2.0 1.2.3 ASP.NET3.5 1.2.4 ASP.NET4 1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2 Visual StudioIDE 2.2.1 解决方案资源管理器 2.2.2 文档窗口 2.2.3 工具箱 2.2.4 错误列表和任务列表 2.2.5 服务器资源管理器 2.3 代码编辑器 2.3.1 添加程序集引用 2.3.2 智能感知和大纲显示 2.3.3 Visual Studio 2010改进 2.4 编码模型 2.4.1 代码隐藏文件如何与页面连接 2.4.2 控件标签如何与页面变量连接 2.4.3 事件如何与事件处理程序连接 2.5 Web项目 2.5.1 基于项目的开发 2.5.2 创建Web项目 2.5.3 迁移旧Visual Studio创建的网站 2.6 Visual Studio调试 2.6.1 单步调试 2.6.2 变量监视 2.6.3 高级断点 2.7 WebDevelopment Helper 2.8 总结 第3章 Web窗体 3.1 页面处理 3.1.1 HTML表单 3.1.2 动态用户界面 3.1.3 ASP.NET事件模型 3.1.4 自动回送 3.1.5 视图状态 3.1.6 XHTML兼容性 3.1.7 客户端控件ID 3.2 Web窗体处理阶段 3.2.1 页面框架初始化 3.2.2 用户代码初始化 3.2.3 验证 3.2.4 事件处理 3.2.5 自动数据绑定 3.2.6 清除 3.2.7 页面流示例 3.3 作为控件容器的页面 3.3.1 显示控件树 3.3.2 页头 3.3.3 动态控件的创建 3.4 Page类 3.4.1 Session、Application和Cache 3.4.2 Request 3.4.3 Response 3.4.4 Server 3.4.5 User 3.4.6 Trace 3.4.7 访问其他类中的HTTP上下文 3.5 总结 第4章 服务器控件 4.1 服务器控件的类型 4.2 HTML服务器控件 4.2.1 HtmlControl类 4.2.2 HtmlContainerControl类 4.2.3 HtmlInputControl类 4.2.4 HTML服务器控件类 4.2.5 设置Style特性和其他属性 4.2.6 通过编程创建服务器控件 4.2.7 处理服务器端事件 4.3 Web控件 4.3.1 WebControl基类 4.3.2 基本的Web控件类 4.3.3 单位 4.3.4 枚举 4.3.5 颜色 4.3.6 字体 4.3.7 焦点 4.3.8 默认按钮 4.3.9 可滚动面板 4.3.10 处理Web控件事件 4.4 List控件 4.4.1 Selectable列表控件 4.4.2 BulletedList控件 4.5 输入验证控件 4.5.1 验证控件 4.5.2 验证流程 4.5.3 BaseValidator类 4.5.4 RequiredFieldValidator控件 4.5.5 RangeValidator控件 4.5.6 CompareValidator控件 4.5.7 RegularExpressionValidator控件 4.5.8 CustomValidator控件 4.5.9 ValidationSummary控件 4.5.10 通过编程使用验证器 4.5.11 验证组 4.6 富控件 4.6.1 AdRotator控件 4.6.2 Calendar控件 4.7 总结 第5章 ASP.NET应用程序 5.1 剖析ASP.NET应用程序 5.1.1 应用程序域 5.1.2 应用程序生命周期 5.1.3 应用程序更新 5.1.4 应用程序目录结构 5.2 global.asax应用程序文件 5.2.1 应用程序事件 5.2.2 演示应用程序事件 5.3 ASP.NET配置 5.3.1 machine.config文件 5.3.2 web.config文件 5.3.3 设置 5.3.4 5.3.5 5.3.6 5.3.7 通过编程读写配置节 5.3.8 网站管理工具(WAT) 5.3.9 扩展配置文件结构 5.3.10 加密配置节 5.4 .NET组件 5.4.1 创建组件 5.4.2 通过App_Code目录使用组件 5.4.3 通过Bin目录使用组件 5.5 扩展HTTP管道 5.5.1 HTTP处理程序 5.5.2 创建自定义的HTTP处理程序 5.5.3 配置自定义的HTTP处理程序 5.5.4 使用无须配置的HTTP处理程序 5.5.5 创建高级的HTTP处理程序 5.5.6 为非HTML内容创建HTTP处理程序 5.5.7 HTTP模块 5.5.8 创建自定义HTTP模块 5.6 总结 第6章 状态管理 6.1 ASP.NET状态管理 6.2 视图状态 6.2.1 视图状态示例 6.2.2 在视图状态中保存对象 6.2.3 视图状态评估 6.2.4 有选择地禁用视图状态 6.2.5 视图状态安全 6.3 在页面间传送信息 6.3.1 查询字符串 6.3.2 跨页回发 6.4 cookie 6.5 会话状态 6.5.1 会话架构 6.5.2 使用会话状态 6.5.3 配置会话状态 6.5.4 会话状态安全 6.6 应用程序状态 6.7 总结 第二部分 数据访问 第7章 基础 7.1 ADO.NET架构 7.1.1 ADO.NET数据提供程序 7.1.2 ADO.NET的标准化 7.1.3 基本ADO.NET类 7.2 Connection类 7.2.1 连接字符串 7.2.2 测试连接 7.2.3 连接池 7.3 Command类和DataReader类 7.3.1 Command基础 7.3.2 DataReader类 7.3.3  ExecuteReader()方法和DataReader 7.3.4 ExecuteScalar()方法 7.3.5 ExecuteNonQuery()方法 7.3.6 SQL注入攻击 7.3.7 使用参数化命令 7.3.8 调用存储过程 7.4 事务 7.4.1 事务和ASP.NET应用程序 7.4.2 隔离级别 7.4.3 保存点 7.5 提供程序无关的代码 7.5.1 创建工厂 7.5.2 用工厂创建对象 7.5.3 使用提供程序无关的代码的查询 7.6 总结 第8章 数据组件和DataSet 8.1 构建数据访问组件 8.1.1 数据包 8.1.2 存储过程 8.1.3 数据应用类 8.1.4 测试数据库组件 8.2 非连接的数据 8.2.1 Web应用程序和DataSet 8.2.2 XML集成 8.3 DataSet类 8.4  DataAdapter类 8.4.1 填充DataSet 8.4.2 使用多个表和关系 8.4.3 查找特定行 8.4.4 在数据访问类里使用DataSet 8.4.5 数据绑定 8.5 DataView类 8.5.1 使用DataView排序 8.5.2 使用DataView过滤 8.5.3 使用关系的高级过滤 8.5.4 计算列 8.6 总结 第9章 数据绑定 9.1 基本的数据绑定 9.1.1 单值绑定 9.1.2 其他类型的表达式 9.1.3 重复值绑定 9.2 数据源控件 9.3 SqlDataSource 9.3.1 选择记录 9.3.2 参数化命令 9.3.3 错误处理 9.3.4 更新记录 9.3.5 删除记录 9.3.6 插入记录 9.3.7 SqlDataSource的不足 9.4 ObjectDataSource 9.4.1 选择记录 9.4.2 更新记录 9.4.3 使用数据对象执行更新 9.5 数据源控件的限制 9.5.1 问题 9.5.2 添加其他项 9.5.3 使用SqlDataSource处理其他选项 9.5.4 使用ObjectDataSource处理其他选项 9.6 总结 第10章 富数据控件 10.1 GridView 10.2 格式化GridView 10.2.1 格式化字段 10.2.2 样式 10.2.3 格式化特定值 10.3 GridView行选择 10.3.1 使用选择来创建主-从表单 10.3.2 SelectedIndexChanged事件 10.3.3 将数据字段用作选择按钮 10.4 对GridView排序 10.4.1 使用SqlDataSource排序 10.4.2 使用ObjectDataSource排序 10.4.3 排序和选择 10.4.4 高级排序 10.5 GridView分页 10.5.1 自动分页 10.5.2 分页和选择 10.5.3 ObjectDataSource的自定义分页 10.5.4 定制分页栏 10.6 GridView模板 10.6.1 使用多个模板 10.6.2 在Visual Studio中编辑模板 10.6.3 绑定到方法 10.6.4 处理模板中的事件 10.6.5 使用模板编辑 10.6.6 模板中的客户端ID 10.7 ListView 10.7.1 分组 10.7.2 分页 10.8 DetailsView和FormView 10.8.1 DetailsView 10.8.2 FormView 10.9 高级网格 10.9.1 GridView中的汇总 10.9.2 单个表中的父/子视图 10.9.3 使用查找表编辑字段 10.9.4 处理来自数据库的图片 10.9.5 探测并发冲突 10.10 总结 第11章 缓存和异步页面 11.1 理解ASP.NET缓存 11.2 输出缓存 11.2.1 声明性的输出缓存 11.2.2 缓存和查询字符串 11.2.3 使用特定查询字符串参数的缓存 11.2.4 自定义缓存控制 11.2.5 使用HttpCachePolicy类进行缓存 11.2.6 缓存后替换和部分页缓存 11.2.7 缓存用户配置 11.2.8 缓存配置 11.2.9 输出缓存扩展 11.3 数据缓存 11.3.1 向缓存添加项目 11.3.2 简单的缓存测试 11.3.3 缓存优先级 11.3.4 使用数据源控件的缓存 11.4 缓存依赖 11.4.1 文件和缓存项目依赖 11.4.2 聚合依赖 11.4.3 移除项目回调 11.4.4 理解SQL缓存通知 11.4.5 缓存通知的工作方式 11.4.6 启用通知 11.4.7 创建缓存依赖 11.5 自定义缓存依赖 11.5.1 基本的自定义缓存依赖 11.5.2 使用消息队列的自定义缓存依赖 11.6 异步页面 11.6.1 创建异步页面 11.6.2 在异步页面中查询数据 11.6.3 错误处理 11.6.4 在异步任务中使用缓存 11.6.5 多异步任务和超时 11.7 总结 第12章 文件和流 12.1 使用文件系统 12.1.1 Directory类和File类 12.1.2 DirectoryInfo类和FileInfo类 12.1.3 DriveInfo类 12.1.4 使用Attributes 12.1.5 使用通配符过滤文件 12.1.6 获取文件的本信息 12.1.7 Path类 12.1.8 文件浏览器 12.2 使用流读写文件 12.2.1 文本文件 12.2.2 二进制文件 12.2.3 上传文件 12.2.4 使文件对多用户安全 12.2.5 压缩 12.3 序列化 12.4 总结 第13章 LINQ 13.1 LINQ基础 13.1.1 延迟执行 13.1.2 LINQ是如何工作的 13.1.3 LINQ表达式 13.1.4 揭秘LINQ表达式 13.2 LINQ to DataSet 13.2.1 强类型的DataSet 13.2.2 空值 13.3 LINQ to Entities 13.3.1 生成数据模型 13.3.2 数据模型类 13.3.3 实体关系 13.3.4 查询存储过程 13.3.5 LINQ to Entities查询揭秘 13.4 数据库操作 13.4.1 插入 13.4.2 更新 13.4.3 删除 13.4.4 管理并发 13.4.5 处理并发冲突 13.5 EntityDataSource控件 13.5.1 显示数据 13.5.2 获取关联数据 13.5.3 编辑数据 13.5.4 验证 13.6 使用QueryExtender控件 13.6.1 使用SearchExperssion 13.6.2 使用RangeExpression 13.6.3 使用PropertyExpression 13.6.4 使用MethodExpression 13.7 总结 第14章 XML 14.1 什么时候使用XML 14.2 XML简介 14.2.1 XML的优点 14.2.2 格式良好的XML 14.2.3 XML命名空间 14.2.4 XML架构 14.3 基于流的XML处理 14.3.1 写XML文件 14.3.2 读取XML文件 14.4 内存中的XML处理 14.4.1 XmlDocument 14.4.2 XPathNavigator 14.4.3 XDocument 14.5 搜索XML内容 14.5.1 搜索XmlDocument 14.5.2 使用XPath搜索XmlDocument 14.5.3 使用LINQ搜索XDocument 14.6 验证XML内容 14.6.1 基本架构 14.6.2 验证XmlDocument 14.6.3 使用XDocument进行验证 14.7 转换XML内容 14.7.1 基本的样式表 14.7.2 使用XslCompiledTransform 14.7.3 使用Xml控件 14.7.4 使用LINQ to XML转换XML 14.8 XML数据绑定 14.8.1 非层次化绑定 14.8.2 使用XPath 14.8.3 嵌套的网格 14.8.4 使用TreeView的层次化绑定 14.8.5 使用XSLT 14.8.6 绑定到来自其他源的XML内容 14.8.7 通过XmlDataSource更新XML 14.9 XML和ADO.NET数据集 14.9.1 把DataSet转换为XML 14.9.2 把DataSet作为XML访问 14.10 总结 第三部分 构建ASP.NET网站 第15章 用户控件 15.1 用户控件基础 15.1.1 创建简单的用户控件 15.1.2 把页面转换成用户控件 15.2 为用户控件添加代码 15.2.1 处理事件 15.2.2 添加属性 15.2.3 使用自定义对象 15.2.4 添加事件 15.2.5 公开内部Web控件 15.3 动态加载用户控件 15.4 局部页面缓存 15.4.1 VaryByControl 15.4.2 共享缓存控件 15.5 总结 第16章 主题和母页 16.1 层叠样式表 16.1.1 创建样式表 16.1.2 应用样式表规则 16.2 主题 16.2.1 主题文件夹和外观 16.2.2 应用简单主题 16.2.3 处理主题冲突 16.2.4 为同一控件创建多个外观 16.2.5 含有模板和图片的外观 16.2.6 在主题里使用CSS 16.2.7 通过配置文件来应用主题 16.2.8 动态应用主题 16.3 标准化网站布局 16.4 母页基础 16.4.1 简单的母页 16.4.2 简单的内容页 16.4.3 默认内容 16.4.4 具有表格和CSS布局的母页 16.4.5 母页和相对路径 16.4.6 通过配置文件应用母页 16.5 高级母页 16.5.1 和母页类交互 16.5.2 动态设置母页 16.5.3 嵌套母页 16.6 总结 第17章 网站导航 17.1 多视图页面 17.1.1 MultiView控件 17.1.2 Wizard控件 17.2 站点地图 17.2.1 定义站点地图 17.2.2 绑定站点地图 17.2.3 导航路径 17.2.4 显示站点地图的一部分 17.2.5 站点地图对象 17.2.6 加入自定义站点地图信息 17.2.7 创建自定义的SiteMapProvider 17.2.8 安全调整 17.3 URL映射和路由 17.3.1 URL映射 17.3.2 URL路由 17.4 TreeView控件 17.4.1 TreeNode 17.4.2 按需填充节点 17.4.3 TreeView样式 17.5 Menu控件 17.5.1 Menu样式 17.5.2 Menu模板 17.6 总结 第18章 网站部署 18.1 安装和配置IIS 18.1.1 安装IIS 7 18.1.2 管理IIS 7 18.2 部署网站 18.2.1 通过复制文件进行部署 18.2.2 使用Web部署 18.2.3 通过FTP部署 18.3 管理网站 18.3.1 创建新站点 18.3.2 创建虚拟目录 18.3.3 使用VirtualPathProvider 18.3.4 使用应用程序池 18.3.5 使用应用程序预热 18.4 扩展集成管道 18.4.1 创建处理程序 18.4.2 部署处理程序 18.4.3 配置处理程序 18.4.4 测试处理程序 18.5 总结 第四部分 安全 第19章 ASP.NET安全模型 19.1 为何创建安全软件 19.1.1 理解潜在的威胁 19.1.2 安全编程原则 19.1.3 理解Gatekeeper 19.2 理解安全级别 19.2.1 验证 19.2.2 授权 19.2.3 机密性和完整性 19.2.4 互相协作 19.3 理解SSL 19.3.1 理解证书 19.3.2 理解SSL 19.3.3 在IIS 7.x中配置SSL 19.4 总结 第20章 表单验证 20.1 表单验证介绍 20.1.1 为什么使用表单验证 20.1.2 为什么不使用表单验证 20.1.3 为什么不自己实现cookie验证 20.1.4 表单验证类 20.2 实现表单验证 20.2.1 配置表单验证 20.2.2 禁止匿名用户访问 20.2.3 创建自定义登录页面 20.2.4 自定义凭证存储 20.2.5 表单验证中的持久化cookie 20.3 IIS 7.x和表单验证 20.4 总结 第21章 成员资格 21.1 介绍ASP.NET的成员资格API 21.2 使用成员资格API 21.2.1 配置表单验证 21.2.2 创建数据存储 21.2.3 配置连接字符串和成员资格提供程序 21.2.4 创建并验证用户 21.3 使用安全控件 21.3.1 Login控件 21.3.2 LoginStatus控件 21.3.3 LoginView控件 21.3.4 PasswordRecovery控件 21.3.5 ChangePassword控件 21.3.6 CreateUserWizard控件 21.4 在IIS 7.x里配置成员资格 21.4.1 配置提供程序和用户 21.4.2 在其他应用程序里使用成员资格API 21.5 使用Membership类 21.5.1 从存储中获得用户 21.5.2 更新存储中的用户 21.5.3 创建和删除用户 21.5.4 检验用户 21.6 总结 第22章 Windows验证 22.1 介绍Windows验证 22.1.1 为什么使用Windows验证 22.1.2 为什么不使用Windows验证 22.1.3 Windows验证机制 22.2 实现Windows验证 22.2.1 配置IIS 7.x 22.2.2 配置ASP.NET 22.2.3 IIS 7.x管道 22.2.4 禁止匿名用户访问 22.2.5 访问Windows用户信息 22.3 身份模拟 22.3.1 Windows中的身份模拟和委托 22.3.2 经过配置的身份模拟 22.3.3 可编程的身份模拟 22.4 总结 第23章 授权和角色 23.1 URL 授权 23.2 文件授权 23.3 在代码中检查授权 23.3.1 使用IsInRole()方法 23.3.2 使用PrincipalPermission类 23.4 为基于角色的授权使用角色API 23.4.1 和角色一起使用LoginView控件 23.4.2 通过编程访问角色 23.4.3 在Windows验证中使用角色API 23.5 IIS 7.x里的授权和角色 23.5.1 在IIS 7.x里使用ASP.NET角色授权 23.5.2 在IIS 7.x中管理ASP.NET角色 23.6 总结 第24章 用户配置 24.1 理解用户配置 24.1.1 用户配置的性能 24.1.2 用户配置如何存储数据 24.1.3 用户配置和验证 24.1.4 用户配置与自定义的数据组件 24.2 使用SqlProfileProvider 24.2.1 创建用户配置表 24.2.2 配置提供程序 24.2.3 定义用户配置属性 24.2.4 使用用户配置属性 24.2.5 用户配置序列化 24.2.6 用户配置组 24.2.7 用户配置和自定义的数据类型 24.2.8 用户配置API 24.2.9 匿名用户配置 24.3 自定义的用户配置提供程序 24.3.1 自定义的用户配置提供程序类 24.3.2 设计FactoredProfileProvider 24.3.3 通过编码实现FactoredProfileProvider 24.3.4 测试FactoredProfileProvider 24.4 总结 第25章 加密 25.1 加密数据:机密性问题 25.2 .NET加密命名空间 25.3 理解.NET加密类 25.3.1 对称加密算法 25.3.2 非对称加密 25.3.3 抽象加密类 25.3.4 ICryptoTransform接口 25.3.5 CryptoStream类 25.4 加密敏感数据 25.4.1 管理秘密信息 25.4.2 使用对称算法 25.4.3 使用非对称算法 25.4.4 加密数据库中的敏感数据 25.5 加密查询字符串 25.5.1 包装查询字符串 25.5.2 创建一个测试页面 25.6 总结 第26章 自定义成员资格提供程序 26.1 自定义提供程序的架构 26.2 创建自定义提供程序的基本步骤 26.2.1 自定义提供程序的总体设计 26.2.2 设计并实现自定义存储 26.2.3 实现提供程序类 26.2.4 使用自定义提供程序类 26.3 总结 第五部分 高级用户界面 第27章 自定义服务器控件 27.1 自定义服务器控件入门 27.1.1 创建简单的自定义控件 27.1.2 使用自定义控件 27.1.3 工具箱中的自定义控件 27.1.4 创建支持样式属性的Web控件 27.1.5 呈现过程 27.2 处理不同的浏览器 27.2.1 HtmlTextWriter 27.2.2 浏览器检测 27.2.3 浏览器属性 27.2.4 覆盖浏览器类型侦测 27.2.5 自适应呈现 27.3 控件状态和事件 27.3.1 视图状态 27.3.2 控件状态 27.3.3 回传数据和change事件 27.3.4 触发回传 27.4 扩展现有的Web控件 27.4.1 组合控件 27.4.2 派生控件 27.5 总结 第28章 图形、GDI+和图表 28.1 ImageMap控件 28.1.1 创建热点 28.1.2 处理热点单击 28.1.3 自定义热点 28.2 使用GDI+画图 28.2.1 简单绘制 28.2.2 图像格式和质量 28.2.3 Graphics类 28.2.4 使用GraphicsPath 28.2.5 画笔 28.2.6 画刷 28.3 在网页上嵌入动态图形 28.3.1 使用PNG格式 28.3.2 传递信息给动态图像 28.3.3 使用GDI+的自定义控件 28.4 使用Chart控件 28.4.1 创建基本的图表 28.4.2 用数据填充图表 28.5 总结 第29章 JavaScript和Ajax技术 29.1 JavaScript本质 29.1.1 HTML DOM 29.1.2 客户端事件 29.1.3 脚本块 29.1.4 操纵HTML元素 29.1.5 调试JavaScript 29.2 基本的JavaScript示例 29.2.1 创建JavaScript页面处理器 29.2.2 使用JavaScript异步下载图片 29.2.3 呈现脚本块 29.3 脚本注入攻击 29.3.1 请求验证 29.3.2 禁用请求验证 29.3.3 扩展请求验证 29.4 带有JavaScript的自定义控件 29.4.1 弹出窗口 29.4.2 滚动按钮 29.5 框架 29.5.1 框架导航 29.5.2 内联框架 29.6 理解Ajax 29.6.1 XMLHttpRequest对象 29.6.2 Ajax示例 29.7 在客户端回调中使用Ajax 29.7.1 创建客户端回调 29.7.2 深入了解客户端回调 29.7.3 自定义控件里的客户端回调 29.8 总结 第30章 ASP.NETAJAX 30.1 介绍ASP.NETAJAX 30.1.1 客户端的ASP.NETAJAX:脚本库 30.1.2 服务器端的ASP.NETAJAX:ScriptManager 30.2 服务器回调 30.2.1 ASP.NETAJAX中的Web服务 30.2.2 在页面里放置Web方法 30.2.3 ASP.NETAJAX应用程序服务 30.3 ASP.NETAJAX服务器控件 30.3.1 使用UpdatePanel的局部呈现 30.3.2 使用Timer的定时刷新 30.3.3 使用UpdateProgress的耗时更新 30.3.4 管理浏览器历史 30.4 深入客户端库 30.4.1 理解客户端模型 30.4.2 JavaScript的面向对象编程 30.4.3 网页框架 30.5 控件扩展器 30.5.1 安装ASP.NETAJAX控件工具包 30.5.2 AutoCompleteExtender 30.5.3 ASP.NETAJAX控件工具包 30.6 总结 第31章 使用Web部件页面的门户网站 31.1 典型门户页面 31.2 基本Web部件页面 31.2.1 创建页面设计 31.2.2 WebPartManager和WebPartZone 31.2.3 向页面添加Web部件 31.2.4 定制页面 31.3 创建Web部件 31.3.1 简单的Web部件任务 31.3.2 开发高级Web部件 31.3.3 Web部件编辑器 31.3.4 连接Web部件 31.3.5 自定义动词和Web部件 31.3.6 用户控件和高级Web部件 31.3.7 动态上传Web部件 31.3.8 对Web部件的授权 31.3.9 个性化的最后任务 31.4 总结 第32章 MVC 32.1 MVC和Web表单的选择 32.2 创建基本的MVC应用程序 32.2.1 创建模型 32.2.2 创建控制器 32.2.3 创建Index视图 32.2.4 测试(未完成的)应用程序 32.2.5 完成控制器和视图 32.2.6 修改Site.Master文件 32.3 扩展基础的MVC应用程序 32.3.1 配置路由 32.3.2 增加错误处理 32.3.3 增加验证 32.3.4 增强数据存储访问 32.3.5 增加对外键约束的支持 32.4 自定义视图 32.4.1 修改视图 32.4.2 增加视图数据 32.5 强化模型 32.6 验证数据 32.6.1 执行基本的验证 32.6.2 增加验证标注 32.7 使用动作结果 32.7.1 返回JSON数据 32.7.2 调用其他控制器方法 32.8 总结 第33章 动态数据 33.1 创建动态数据应用程序 33.1.1 创建动态数据网站 33.1.2 检验动态数据网站 33.2 深入理解动态数据项目 33.3 自定义动态数据网站 33.3.1 使用模板进行自定义 33.3.2 使用路由进行自定义 33.3.3 使用元数据进行自定义 33.3.4 自定义验证 33.4 总结 第34章 Silverlight 34.1 理解Silverlight 34.1.1 Silverlight与Flash对比 34.1.2 Silverlight系统需求 34.2 创建Silverlight解决方案 34.2. 1 Silverlight编译 34.2.2 入口页面 34.3 创建Silverlight项目 34.3.1 设计Silverlight页面 34.3.2 理解XAML 34.3.3 设置属性 34.3.4 XAML 代码隐藏 34.3.5 处理事件 34.3.6 了解Silverlight类库 34.4 布局 34.4.1 Canvas 34.4.2 网格 34.5 动画 34.5.1 动画基础知识 34.5.2 定义动画 34.5.3 StoryBoard类 34.5.4 交互式动画实例 34.5.5 变换 34.6 Silverlight使用Web服务 34.6.1 创建Web服务 34.6.2 添加Web引用 34.6.3 调用Web服务 34.6.4 配置Web服务URL 34.6.5 跨域Web服务调用 34.7 总结
第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级和结合性: 1.13 使用可变函数 1.13.1 测试和设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.
信息系统项目管理教程(第4)》是一本针对信息系统项目管理师考试的教材,作者为李凌,出时间为2018年。该教程的PDF本可以通过多种渠道获取,比如在一些教育资源网站上进行搜索、在电子书籍平台上进行购买或借阅等。PDF本的教程便于读者使用电子设备进行学习,方便查阅、标注和复习。 该教程共有十章,内容涵盖了信息系统项目管理师考试的各个方面。第一章介绍了项目管理的背景和概念;第二章讨论了项目管理的组织、沟通和团队管理;第三章介绍了项目范围管理;第四章讲解了项目时间管理;第五章介绍了项目成本管理;第六章讨论了项目质量管理;第七章讲解了项目人力资源管理;第八章介绍了项目风险管理;第九章讨论了项目采购管理;第十章讲解了项目沟通与干系人管理。 该教程以案例分析的方式,将理论知识与实际项目管理相结合,以实际问题为基础进行深入讲解和分析。每章末尾还配有习题和案例,方便读者巩固所学内容。此外,该教程还提供了一些考试复习指导和技巧,帮助读者更好地备考信息系统项目管理师考试。 总之,《信息系统项目管理教程(第4)》是一本全面系统地介绍信息系统项目管理知识的教材,适合对项目管理感兴趣或准备参加信息系统项目管理师考试的人士阅读和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值