NoSQL
数据管理基础笔记
计算机网络(应用层)
网络应用的体系结构客户机/服务器结构(C/S)
服务器
永久性访问地址/域名
不间断提供服务
利用大量服务器实现可扩展性
客户机
与服务器通信,使用服务器提供的功能
间歇性接入网络
可以使用动态IP
不会与其它客户机直接交互
点对点结构(P2P)
没有永久在线的服务器
任意端系统之间可以直接通讯
间歇性接入网络
节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
混合结构(Hybird)Napster
文件传输用P2P结构
文件搜索采用C/S结构——集中式
网络应用进程通信进程同一主机上运行的进程之间:
进程舰通信机制
操作系统提供
不同主机上运行的进程舰通信:
消息交换
客户机进程:发起通信的进程
服务器进程:等待通信请求的进程
套接字
进程间利用socket发送/接收消息
socket是传输基础设施向进程提供的API
如何寻址不同主机上的进程舰通信,每个进程都必须有标识符
我们通过IP地址寻址主机,但同一主机上可能同时有多个进程需要通信,需要为主机上每个需要通信的进程分配一个端口号,通过IP地址+端口号作为进程的标识
域名解析系统DNS概述D ...
计算机网络(运输层)
基本理论和基本机制
多路复用/分用
可靠数据传输机制
流量控制机制
拥塞控制机制
Internet的运输层协议
TCP
UDP
概述
传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制
端系统运行传输层协议
发送方:将应用递交的信息分成一个或多个的Segment,并向下传给网络层
接收方:将收到的Segment组装成消息,并向上交给应用层
网络层提供主机之间的逻辑通信机制
传输层提供应用进程之间的逻辑通信机制,位于网络层之上,依赖于网络层服务,对网络层服务进行(可能的)增强
Internet传输层协议
TCP:可靠、按序的交付服务
拥塞控制
流量控制
连接建立
UDP:不可靠的交付服务
基于“尽力而为”的网络层,没有做可靠性的扩展
都不提供延迟、带宽方面的保障
端口协议端口号(protocol port number), 或通常简称为端口(port) 。这就是说,虽然通信的终点是应用进程,但只要把所传送的报文交到目的主机的某个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP 或UDP 来完成。(协议端口是软件端口)
运输层收到IP层交上 ...
(十四)模块化与信息隐藏
结构化的模块化耦合Principle 1: 全局变量是有危害的
Principle 2:To be Explicit
Principle 3: Don’t repeatPrinciple 4: Programming to Interface
内聚实现独立模块
减少不在同一个模块之间的元素之间的关系
增加在同一个模块之间的元素的关系
模块化思想的应用低耦合处理
软件体系结构的分层设计中
软件体系结构的逻辑包设计中
软件体系结构的物理包设计中
详细设计中对象创建者的选择
详细设计中选择控制风格
高内聚处理
软件体系结构的分层设计中
软件体系结构的逻辑包设计中
软件体系结构的物理包设计中
详细设计中对象创建者的选择
详细设计中选择控制风格
结构化的信息隐藏Module Guide模块的主要秘密:主要描述的是这个模块所要实现的用户需求
模块的次要秘密:这个模块在实现职责时候所设计的具体细节
模块的角色:独立的模块在整个系统中所承担的角色,所起的作用以及与哪些模块有相关联的关系
模块的对外接口
思想的应用信息隐藏
软件体系结构的分层设计中
软件体系结构的逻辑包设计中
...
(十三)详细设计
详细设计基础什么是详细设计
主要位于中低层设计
模块之内的设计,模块之内实现的机制
软件体系结构设计定义了模块的规格,详细设计实现了模块的细节设计机制
中层:对象规格
低层:对象实现
详细设计需要设计者考虑风格,功能和许多方面
Quality attributes in Detail Design
修改、维护、表现
详细设计的输入我们有什么
需求规格说明
体系结构设计说明文档
从需求、体系结构设计到详细设计
详细设计从哪里开始
Context
模块之间的规格
实现的职责
需求:分析类图
需求:系统顺序图
软件体系结构:构件之间的接口
详细设计的输出
面向对象详细设计面向对象设计的思想职责
数据职责
行为职责
数据职责和行为职责在一起
职责驱动的分解:职责有不同程度的抽象,有大职责和小职责之分,大职责分配给高层次的部分
高内聚:模块内部联系紧密
低耦合:模块之间联系少一点,
职责不要覆盖,也不要缺少
代理:委派给其它模块实现职责
协作对象之间必须是协作的
应用被分解为一系列不同的行为,交给不同的对象实现
面向对象的设计过程通过职责建立静态 ...
(十二)人机交互
协作式设计
人和计算机是人机交互的双方,其中人的因素是比较固定的,一定时期内不会发生大的变化,所以要让二者交互流畅,就需要让计算机更多地适应人的因素,这也是人机交互设计以用户为中心的根本原因
这种调整计算机因素以更好地适应并帮助用户的设计方式被称为协作式设计
设计要简洁
设计要一致,保持一种风格,除非用于特殊目的
低出错率的设计
设计不让用户繁严重错误的系统
提供简洁、有建设性、具体的指导来帮助用户消除错误
出错信息遵循以下四个原则:
语言清晰
语言精炼准确,而不是空泛、模糊
对解决问题提供建设性的帮助
出错信息应当友好、不要威胁或责备用户
系统提供错误恢复和故障解决帮助手册
易记性设计
人机交互设计过程
可以与详细设计并行进行
对话结构图
界面设计
原型化界面
拖拽工具
纯原型工具
可抛弃:仅仅是草图
不可抛弃:可生成代码
GUI设计
关键点:
用户参与到开发过程
多看看别人怎么做的
清楚自己能做到什么,不要超过能力范围
确保GUI可用和可以被接受
通常需要包含的元素:
介绍和支持信息
寻找内容的服务
主要包含的内容
扩展的功能特点
计 ...
计算机网络(概述)
计算机网络概述计算机网络是通信技术与计算机技术紧密结合的产物
互连的、自治的计算机集合
自治:无主从关系
互连:互联互通
距离远、数量大时,通过交换网络互连主机
Internet——全球最大的互联网络
组成细节角度
数以百万计的互连计算设备集合
通信链路
分组交换:转发分组(数据包)
路由器和交换机
服务角度
为网络应用提供通信服务和通信基础设施
为网络应用提供应用编程接口
协议协议是计算机网络有序运行的重要保障
任何通信或信息交换过程都需要规则,网络协议是为进行网络中的数据交换而建立的规则、标准或约定
协议规定了通信实体之间锁交换的信息的格式、意义、顺序以及针对收到信息或发生事件所采取的动作
三要素:
语法
语义
发出何种信息
完成何种响应
差错控制
时序
协议规范了网络中所有信息的发送和接收过程
计算机网络结构
网络边缘:主机、网络应用
接入网络,物理介质:有限或无线通信链路
网络核心(核心网络):互联的路由器或分组转发设备
网络边缘主机(端系统)
客户/服务器(client/server)应用模型:客户发送请求,服务器响应请求
对等(P2P)应 ...
Lab-CS144
CS144 lab记录
Spring
IOC容器原理IOC容器-Bean管理XMLBean管理:
Spring创建对象
Spring注入属性
基于xml配置文件方式123456789<bean id="" class=""> <property name="" value=""></property> <!--set方法注入--></bean><bean id="" class=""> <constructor-arg name="" value=""></constructor-arg> <!--有参构造注入--></bean>
创建对象
bean标签属性
id:标识(任取)
class:类路径(包类路径,基于src)
name:与id类似,可以带特殊符号(早期属性,少用)
创建对象时默认执行无参数构造方法
注 ...
Java-反射
Java反射什么是反射反射(Reflection)是Java的特征之一,它允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性。
通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。
反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。
反射主要提供以下功能:
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法(也可以private)
在运行是你调用任意一个对象的方法
用途反射最常见的是在我们使用IDE时,我们输入一个对象或类一按点号,编译器就会自动列出它的属性或方法。
反射最重要的用途就是开发各种框架。比如Spring通过XML文件配置Bean,为了保持保持框架的通用性,需要根据配置文件加载不同的对象或类,调用不 ...