1 块存储:DAS SAN
a) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的 *** 作系统,则更复杂。
应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。
b) SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。
2 文件存储
通常NAS产品都是文件级存储。
NAS(Network Attached Storage):是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。
它采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好、价格便宜、用户易管理。目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
3 对象存储:
总体上讲,对象存储同时兼具SAN高级直接访问磁盘特点及NAS的分布式共享特点。
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。
对象储存结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)
31 对象
一个对象实际就是文件的数据和一组属性信息的组合。
32 对象存储设备(OSD)
OSD具有一定的智能,它有自己的CPU、内存、网络和磁盘系统。
OSD提供三个主要功能:包括数据存储和安全访问
(1)数据存储 (2)智能分布 (3)每个对象元数据的管理
33 元数据服务器(Metadata Server , MDS)
MDS控制Client与OSD对象的交互,主要提供以下几个功能:
(1) 对象存储访问
允许Client直接访问对象,OSD接收到请求时先验证该能力,再访问。
(2) 文件和目录访问管理
MDS在存储系统上构建一个文件结构,限额控制、包括目录、文件的创建、访问控制等
(3) Client Cache 一致性
为提高性能,在对象存储系统设计时通常支持Client的Cache。因此带来了Cache一致性的问题,当Cache文件发生改变时,将通知Client刷新Cache,以防Cache不一致引发的问题。
对象存储:
一个文件包含了属性(术语叫matadata元数据,例如该文件的大小、修改时间、存储路径等)以及内容(简称数据)。
以往的文件系统,存储过程将文件按文件系统的最小块来打散,再写进硬盘,过程中没有区分元数据(metadata)和数据。而在每个块最后才会告知下一个块的地址,因此只能一个一个读,速度慢。
而对象存储则将元数据独立出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象时,会先访问元数据服务器,元数据服务器只负责反馈对象存储在那些OSD。假设反馈文件A存储在B,C,D三台OSD,那么用户就会再次访问三台OSD服务器去读取数据。
这时三台OSD同时对外传输数据,因此传输的速度就加快了。OSD服务器数量越多,这种读写速度的提升就越大。
另一方面,对象存储软件有专门的文件系统,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。
因此对象存储的出现,很好的结合了块存储与文件存储的优点。
为什么还要使用块存储和文件存储:
1有一类应用是需要存储直接裸盘映射的,比如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对了裸盘进行格式化,因此不能采用其他已经被格式化为某种文件系统的存储。此类更适合块存储。
2对象存储的成本比普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了作文件共享的时候,直接用文件存储的形式就好了,性价比高。MAX30102是一个集成的脉搏血氧测量和心率监测模块。它包括内部led、光电探测器、光学元件和具有环境光排斥作用的低噪声电子器件。MAX30102提供了一个完整的系统解决方案,以简化移动和可穿戴设备的设计过程。MAX30102在单个18V电源和内部LED的单独的50V电源上工作。通信是通过一个标准的I2c兼容的接口。该模块可以通过具有零备用电流的软件关闭,允许电源导轨始终保持供电。
二、优点和特性
●心率监测器和脉冲测氧器传感器在LED反射解决方案
●小56mmx33mmx155mm14针光学模块集成盖玻璃最佳性能
●超低功率 *** 作移动设备可编程采样率和LED电流节能低功率心率监测器(<1mW)超低关机电流(07µA,典型)
●快速数据输出能力高样本率
●鲁棒运动艺术家韧性高信噪比
●-40°C到85°C工作温度范围
三、系统框图
在这里插入描述
四、
与I2C 兼容的时序图
在这里插入描述
引脚图
在这里插入描述
在这里插入描述
五、从FIFO中读取数据的伪代码示例
1、首先: Get the FIFO_WR_PTR:
START;
Send device address + write mode
Send address of FIFO_WR_PTR;
REPEATED_START;
Send device address + read mode
Read FIFO_WR_PTR;
STOP;
2、中央处理器计算要从FIFO中读取的样本的数量:
NUM_AVAILABLE_SAMPLES = FIFO_WR_PTR – FIFO_RD_PTR
(Note: pointer wrap around should be taken into account)
NUM_SAMPLES_TO_READ = < less than or equal to NUM_AVAILABLE_SAMPLES >
3、其次:从FIFO中读取NUM_SAMPLES_TO_READ示例:
START;
Send device address + write mode
Send address of FIFO_DATA;
REPEATED_START;
Send device address + read mode
for (i = 0; i < NUM_SAMPLES_TO_READ; i++) {
Read FIFO_DATA;
Save LED1[23:16];
Read FIFO_DATA;
Save LED1[15:8];
Read FIFO_DATA;
Save LED1[7:0];
Read FIFO_DATA;
Save LED2[23:16];
Read FIFO_DATA;
Save LED2[15:8];
Read FIFO_DATA;
Save LED2[7:0];
Read FIFO_DATA;
}
STOP;
START;
Send device address + write mode
Send address of FIFO_RD_PTR;
Write FIFO_RD_PTR;
STOP;
4、最后:写入FIFO_RD_PTR寄存器。如果第三步成功,则FIFO_RD_PTR将指向FIFO中的下一个示例,并且不需要此 。否则,处理器会适当地更新FIFO_RD_PTR,以便重读样本。
六、时序图
在这里插入描述
1、启停时序
当总线未使用时,启动和停止条件SDA和SCL怠速过高。主服务器通过发出启动条件来启动通信。启动条件是在SCL高的SDA上的高到低过渡。停止条件是SDA上的低到高过渡,而SCL较高。来自主设备的启动条件发出到设备的传输的开始信号。主服务器通过发出停止条件来终止传输,并释放总线。如果生成重复启动条件而不是停止条件,则总线将保持活动状态。
在这里插入描述
2、提前停止条件
MAX30102在数据传输期间的任何一点识别停止状态,除非停止状态发生在与启动条件相同的高脉冲下。为了正常 *** 作,不要在与启动条件相同的SCL高脉冲期间发送STOP状态。
3、从属服务器地址
从地址总线主服务器通过发出7位从设备I之后的启动条件来启动与从设备的通信D 空闲时,MAX30102等待启动条件,然后是其从属设备ID 串行接口逐位比较每个从属ID,如果检测到错误的从属ID,接口可以关闭电源,立即断开SCL,识别开始条件后,对MAX30102进行编程,接收或发送数据,LSB为读/写位,表示主是从MAX30102写入或读取数据(收发=0选择写条件,收发=1选择读取条件)。在收到适当的从属ID后,MAX30102通过将SDA降低一个时钟循环来发出ACK。MAX30102从属ID包括7个固定位,B7-B1(设置为0b1010111)。首先传输最重要的从属ID位(B7),然后是剩余的位。表17显示了设备可能的从属ID。
4、ACK应答信号
确认位(ACK)是第9位,MAX30102在写入模式时用来握手接收每个字节的数据(图8)。如果已成功接收到前一个字节,则MAX30102将在整个主节点生成的第9个时钟脉冲期间拉下SDA。监视ACK允许检测到不成功的数据传输。如果接收设备忙或发生系统故障,则数据传输失败。如果数据传输失败,总线主服务器将重试通信。主机在第9个时钟周期中拉下SDA,以确认在MAX30102处于读取模式时接收到的数据。主机在每个读取字节后发送一个确认,以允许数据传输继续。当主服务器从MAX30102读取最后一个字节的数据,然后出现STOP条件时,将发送不确认。
在这里插入描述
5、写入数据格式
对于写入 *** 作,将从属ID作为第一个字节发送,然后是寄存器地址字节,然后是一个或多个数据字节。寄存器地址指针在收到每个字节的数据后自动递增,例如,整个寄存器库可以一次写入。以“停止”条件终止数据传输。写入 *** 作如图9所示。内部寄存器地址指针会自动递增,因此写入额外的数据字节会依次填充数据寄存器。
在这里插入描述
6、读取数据格式
对于读取 *** 作,必须执行两个I2C *** 作。首先,发送从属ID字节,然后是您希望读取的I2C寄存器。然后发送一个重复启动(Sr)条件,然后是读取的从属ID。然后,MAX30102开始从第一 *** 作中选择的寄存器开始发送数据。读取指针自动递增,因此设备继续按顺序从其他寄存器发送数据,直到接收到停止§条件为止。其中的例外是FIFO_DATA寄存器,在读取附加字节时,读取指针不再递增。要读取FIFO_DATA之后的下一个寄存器,需要使用I2C写入命令来更改读取指针的位置。图10和图11显示了读取一个字节和多个字节数据的过程。需要一个初始写入 *** 作才能发送读取寄存器地址。数据按顺序从寄存器发送,从初始I2C写入 *** 作中选择的寄存器开始。如果读取FIFO_DATA寄存器,读取指针将不会自动增加,随后的数据字节将包含FIFO的内容。
在这里插入描述
在这里插入描述目录
1组合逻辑延迟
2时钟输出延迟Tco
3同步系统中时钟频率
31 建立时间与保持时间都满足
32 建立/保持时间不满足
(1) Tcomb太大导致建立时间不满足
(2) 器件的固有保持时间增大(老化)使得保持时间违例
4 时钟偏斜及其影响
41时钟偏斜的物理意义
42 时钟偏斜对时序的影响
(1) 对于未引入时钟偏斜时,保持时间与建立时间均不为例必要条件:
(2)引入时钟偏斜后的时序图如下(Tskew21>0)
(3)引入时钟偏斜也可能会导致保持时间违例,进而输出亚稳态的情况(Tskew21>0)
(4)Tskew21 <0时,即clk2先于clk1到达其时钟端,保持时间就比较容易满足了,但对满足建立时间就有所要求了。
43实例介绍
1组合逻辑延迟
布线延迟与门延迟
数字逻辑电路中,任何输出信号到输入信号之间都有一定的线路延迟,把这种线路延迟叫做布线延迟。当数字逻辑电路经过门电路时,同样会造成一定的延迟,我们把这个延迟叫做门延迟。
图1布线延迟
图2:门延时
2时钟输出延迟Tco
clock to out的时间,即从时钟触发到数据输出的时间。这是针对触发器器件而言,是触发器的固有参数,不同厂家或不同批次的器件 该参数有差异。
图3:Tco
3同步系统中时钟频率
图4:同步系统典型电路图
Tsu : 触发器建立时间
Th : 触发器保持时间
T : 电路的工作周期
Tco : 时钟输出延迟
Tskew : 时钟偏斜(clock skew),又称为时钟偏移,是指时钟信号到达数字电路各部分所用时间差异。
Tcomb: 组合逻辑的延迟。
时钟偏移Skew = 0
为由浅入深,假设 Skew = 0,即说明时钟到达所有器件的时间相同,没有差异,那么图中时钟上升沿1到时钟上升沿2之间刚好相隔一个工作周期T。下面介绍几种情况下的同步时序电路模型的时序图,图中标注了说明。
31 建立时间与保持时间都满足
下图为同步时序电路模型时序图1(Tskew=0,建立时间和保持时间都满足):
图6:建立保持时间时序图1分析
核心知识点:
(1) Tco+Tcomb将导致数据会延迟到达下一个触发器,要想数据到达下一个触发器时满足建立时间的要求,则必要条件为:
T-(Tco+Tcomb)>Tsu,即有T>Tco+Tcomb+Tsu。因此一个电路搭建好后,会有一个最小的工作周期Tmin=Tco+Tcomb或者最大的工作频率1/Tmin。
(2) 一般电路的工作时钟不是其所能跑的最高频率,那么其实际工作周期要大于其支持的最小工作周期,这个差值就是建立时间的裕量Ts_slack。反映在计算公式上即为:Ts_slack=T-Tmin=T-(Tco+Tcomb)。会不会出现T-(Tco+Tcomb)<Tsu呢?这不就是建立时间违例的情况吗?怎么解决呢?看下面分析。
(3) Tco+Tcomb将会导致数据延迟到达下一个触发器,而下一个触发器不仅仅要求数据提前到达保持稳定一段时间,还要求数据被打入后保持一段时间稳定。假设数据源变化速率很慢,慢于时钟速率问题不大因为相邻周期触发器采样的是同一个值送往下一个寄存器,但同步系统中,数据一般跟随时钟同步跳转,即一个cycle会跳变一次,即数据保持一个时钟周期T的稳定状态。如此,本级寄存器在当前时钟采样的数据经过Tco+Tcomb延迟后到达下一级触发器,那么数据在下级触发器在下次时钟上升沿被打入后仍然会保持Tco+Tcomb时间。下级触发器要想满足保持时间,其必要条件为:Tco+Tcomb>Th
(4)一般Tco+Tcomb不可能刚好等于Th的,因此当Tco+Tcomb大于Th,那么Th-slack =Tco+Tcomb-Th。会不会出现Tco+Tcomb小于Th呢?这不就是保持时间违例的情况吗,遇到这种情况怎么办呢?下面也有介绍。
综上:要想时序收敛,就是建立保持时间不违例,二者缺一不可。
32 建立/保持时间不满足
(1) Tcomb太大导致建立时间不满足
下图为同步时序电路模型时序图2(Tskew =0,组合逻辑延迟太大,导致建立时间不能满足):
图7:建立时间违例时序图2分析
解决1:可通过降频(增大周期)以满足建立时间
下图为同步时序电路模型时序图3(Tskew = 0,增加时钟周期以满足建立时间):
图8:时钟频率降频
解决2:优化组合逻辑
解决3:切割组合逻辑
详见:如何提高电路工作频率
(2) 器件的固有保持时间增大(老化)使得保持时间违例
图9:保持时间违例时序图分析
解决:当不满足保持时间时,通过增大组合逻辑延迟Tcomb来是保持时间满足
图10:保持时间违例解决
当 Tskew不等于0
之前为了简单介绍知识点 ,未引入时钟偏移Tskew,但时间电路中是存在时间偏移的,分析时候不可忽视。
4 时钟偏斜及其影响
图11
41时钟偏斜的物理意义
时钟偏移指定了同时发生的两个时钟信号经过时钟驱动器或布线后到达时间上的差异。
42 时钟偏斜对时序的影响
下图给出了未引入和引入时钟偏斜(clock skew)后的同步时序电路图对比模型:
图12
(1) 对于未引入时钟偏斜时,保持时间与建立时间均不为例必要条件:
保持时间不违例:Tco+Tcomb > Th;
建立时间不违例:T>Tco+Tcomb+Tsu。
因此不会产生输出亚稳态现象。也可推出 (T-Tco-Tsu) > Tcomb > (Th-Tco) ,即对组合逻辑延迟的要求。
注意:这里面只有时钟周期T和组合逻辑延迟Tcomb可变。
(2)引入时钟偏斜后的时序图如下(Tskew21>0)
图12中,由于引入了Tskew21(>0),导致FF2的时钟段clk2的时序相对于FF1的clk1延后了Tskew,但上图的情况属于并未导致保持时间违例,因此未发生输出亚稳态现象。
仔细分析就可以看出,相对于未引入时钟偏斜时的保持时间裕量(Th-slack = Tco+Tcomb-Th)。此情况中FF2的保持时间裕量变成了Th-slack = Tco+Tcomb-Th-Tskew21,减少了Tskew21。(原因就clk2滞后Tskew21,导致保持时间的起点和终点相对于数据延后了)。
1保持时间不违例:Tco+Tcomb-Tskew21>Th
即依旧有Th-slack=Tco+Tcomb-Th-Tskew21>0,即Tco+Tcomb-Tskew21>Th ;
2建立时间不违例:T+Tskew21>Tco+Tcomb+Tsu
只要未引入时钟偏移的时候(Tskew21 == 0)的时候,就满足建立时间要求 T>Tco + Tcomb +Tsu,那么引入Tskew后,时钟 Clk2相对于数据滞后,更能够满足建立时间了。甚至之前尚不满足建立时间要求即T < Tco + Tcomb + Tsu情况下,在引入 Tskew后,就有T+Tskew > Tco +Tcomb + Tsu满足了建立时间。
(3)引入时钟偏斜也可能会导致保持时间违例,进而输出亚稳态的情况(Tskew21>0)
1保持时间违例:Tco+Tcomb-Tskew21<Th
当引入的 Tskew21不够大时,没有超过保持时间裕量问题不大,但如果Tskew21太大,Tskew21>Tco+Tcomb-Th=Th-slack(未引入偏移时的裕量),就不再满足保持时间的要求,也会导致输出亚稳态。如下图所示;
2建立时间必然不违例
如情况(2)种描述,只要在未引入时钟偏移的情况下满足建立时间,那么只要Tskew21>0就会必定不违例。并且建立时间的裕量: Ts_slack =Tskew+ (T - Tco -Tcomb -Tsu)增加了Tskew。(情况(2)的建立时间也是如此,在此补充一下)
(4)Tskew21 <0时,即clk2先于clk1到达其时钟端,保持时间就比较容易满足了,但对满足建立时间就有所要求了。
1保持时间必然不违例
因为在未引入偏移时候就有Tco+Tcomb > Th,只要Tskew21<0,则Tco+Tcomb-Tskew21 >Th必然满足。
2 建立时间不违例:T+Tskew21 > Tco+Tcomb+Tsu
需要注意的是此时的Tskew21 < 0,因此 T > Tco+Tcomb+Tsu-Tskew21,此时最小时钟周期Tmin=Tco+Tcomb+Tsu-Tskew21 变大了,支持的最大时钟频率减小了。
标题
(5)同理,当Tskew21<0 并且T+Tskew21 < Tco+Tcomb+Tsu , 此时建立时间就违例了,就会产生输出亚稳态现象了。
43实例介绍
Ex1:
通常我们可以假设逻辑门的延时为1+01k,其中k为逻辑门的输入端个数。比如对于非门,只有一个输入端,那么其延时为1+101=11ns。现有触发器的时序参数为:Tsu=06ns, Th=04ns, 08ns ≤ Tco ≤ 10 ns , 需要计算下面电路的最小时钟周期:
答: Tclkmin =Tco-max+Tcomb-max+Tsu=10+11+06=27ns。所以该电路最高可跑时钟频率为fmax=1/Tclkmin=37037Mhz。
Ex2: 4位计数器电路如下图所示:
电路中有很多电路中有很多路径可以使触发器开始(Enable)或结束(Disable),其中最长的路径开始于触发器Q0结束语Q3。电路中这种最长的路径称为关键路径。如上图中红色路线,包括触发器Q0的时钟信号输出至Q的延时Tco,3个与门,1个异或门以及建立时间Tsu,所以有:
Tclkmin = Tco+3 Tand+Txor+Tsu=10+312+12+06=64ns
fmax = 1/Tclkmin =15625Mhz
电路的最短路径是每个触发器经过一个异或门到它自身,每条这样的路径的最小延时为Tco+Txor=08+12=20ns>Th=04ns, 所以电路中不存在时间违背。
Ex3:在上述Ex2中,是假定时钟clk是同时到达4个触发器的,即时钟clk不存在clock skew、现在我们仍然假设时钟信号clk同时到达Q0、Q1、Q2,但是到达Q3存在一个延时。这种时钟信号到达触发器的时间偏离称为时钟偏斜(clock skew)。关键路径为Q0到Q3,然而Q3的时钟偏斜具有减小延迟的作用。原因在于数据加载到触发器之前就额外的时间,将时钟偏斜skew=15ns计算在内,从Q0到Q3的路径上时延为: Tco+3Tand+Txor+Tsu-Tskew=64-15=49ns(之前的时延为64ns)。此时从Q0到Q2的线路径成为关键路径:Tclkmin =Tco+2Tand+Txor+Tsu=10+212+12+06=52ns,
fmax =1/Tclkmin =19231Mhz。这种情况下,时钟偏斜会提高时钟频率,但如果时钟偏斜是负的,则会降低时钟频率。
由于时钟偏斜的存在,数据加载到Q3会被延迟,对于所有开始于Q0,Q1,Q2而结束于Q3的路径,加载的延时会提高触发器维持时间的要求(Th+Tskew),其中最短的路径是从Q2到Q3,延迟为Tco + Tand + Txor = 08+ 12+12=32ns > Th+Tskew=19ns,所以不存在时间违背。
对于时钟偏斜值Tskew >= 28ns情况,可以看出存在时间违背,此时不论时钟频率多少,该电路都不可能可靠的工作。
我们再看下面这个例子,在这个电路中有一条路径开始于触发器Q1, 经过一些逻辑门网络,在触发器Q2的D端结束。由图可知,时钟信号到达触发器前存在不同的延迟。假设触发器Q1和Q2的时钟信号延迟分别为t1和t2,这两个触发器之间的时间偏斜可定义为Tskew= t2-t1,假设电路中通过逻辑门路径的最长延迟为TL,则这两个触发器的最小时钟周期为Tclk-min=Tco+TL+Tsu-Tskew, 因此如果t2-t1>0,则时钟频率会提升,否则时钟偏斜会降低频率。
为了计算触发器Q2是否存在时间违背,需要确定触发器的最短路径。如果电路中通过逻辑门的最小延迟为Tl,且Tl+Tco<Th+Tskew, 将会产生时间违背。如果t2-t1>0,维持时间的限制将更难以满足,而如果t2-t1<0,则较易满足。
原文链接:>面对一个实习生,我的研究方向是大型的数据处理,分布式计算,中间件的hadoop,似乎是说我很感兴趣的话,中间件,直接问我,我的理解的中间件,我很少思考这样一个问题:中间件有自己的理解是硬件, *** 作系统和应用平台,可以屏蔽不同性质的 *** 作系统。 一个完整的系统平台由一套,中间件通常集成,包括开发平台和运行平台。中间件这组,通常会是至少一个通信中间件。中间件是分布式系统中使用的一个概念。 中间件屏蔽了底层 *** 作系统的复杂性,应用开发简单的统一。降低编程的复杂性(Hadoop是一个很好的例子),专注于自己的业务,没有程序在不同的系统上的软件移植和重复劳动,大大降低了技术负担。中间件把应用系统,而不是只是简单的开发,缩短开发周期,还减少了工作量的系统维护, *** 作和管理(这并没有觉得在hadoop直接写MPI程序,也可以运行不需要任何额外的维护,容错机制,Hadoop的声音,满足了这一点)。此外,还降低了电脑的整体成本投入。 中间件,以便为解决分布式异构分布式计算系统的问题比较困扰,不得不面对的一个问题。中间件提供了一个标准的程序接口和协议的应用程序调用,或更确切地说,是中间件服务过程调用的应用程序接口来完成的任务。 其中:特性的中间件 可以概括为如下: 1。满足大量的应用程序的需求 各种硬件和OS平台上运行 跨网络,应用或服务的硬件和OS平台的透明性,支持分布式计算 4支持标准协议的互 *** 作性 5。支持标准接口的便携性 ,中间件成为许多标准化工作的重要组成部分。对于应用软件开发,中间件是 *** 作系统和网络服务更为重要,中间件提供了一个相对稳定的高层应用程序接口定义,不管底层的计算机硬件和系统软件更换,只要将中间件升级更新并保持中间件的外部接口定义了相同的应用软件,几乎不需要任何,从而保护重要的企业应用软件开发和维护的投资。 :中间件的分类 在分布式环境中,中间件必须提供通信服务,我们调用这个服务平台,根据不同的目的和实现机制,可分为下列几大类: 远程过程调用(Remote Procedure Call,远程过程调用) 面向消息的中间件(面向消息的中间件) 对象请求代理(对象请求代理) 它们的功能: 第一:起来,提供不同形式的通讯服务,包括同步,排队订阅出版,广播,这些基本的通讯平台,可以建立各种框架,为应用程序提供服务,在不同领域的事务处理监视分布式事务处理访问对象交易经理OTM。 二:中间件本身定义的相应字段的应用程序的体系结构,标准的服务组件,用户只需告诉框架感兴趣的事件,然后提供处理这些事件的代码。当一个事件发生时,框架将调用用户代码。用户不必调用框架,用户程序不关心的框架结构,实施过程中,系统API调用,框架是负责基于中间件的应用程序开发完成后具有良好的可扩展性,可管理性,高可用性和可移植性。 21分类介绍: 211远程过程调用 Remote Procedure Call,远程过程调用是一种广泛使用的分布式应用程序的方法。应用程序使用RPC来“远程”执行一个不同的地址空间的过程中,从效果来看,执行相同的本地电话。 212面向消息的中间件 的MOM是可靠,高效的消息传递机制,独立于平台的数据交换和集成的分布式系统数据通信的基础上。通过提供消息传递和消息排队模型,它可以扩展的分布式环境中,进程间通信,并支持多种通讯协议,语言,应用程序,硬件和软件平台。流行的MOM中间件产品有IBM的MQSeries,:BEA MessageQ。 消息传递和排队技术有三个主要特点: 通信程序可以运行在不同的时间,程序是在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序之间有没有直接的联系。因此,他们不被同时运行。到合适的队列中的消息,目标程序或根本不需要正在运行的运行,即使目标程序并不意味着他们应该立即处理该消息。 :复杂的应用程序的应用的结构上,图2是不具有约束力,通信处理不仅可以是一个之间的一一对应关系,并且也可以是一对一一对多和many-to-one上,或什至是的各种方法的组合。多种通信手段的构造函数不增加的应用程序的复杂性。 3。计划和网络复杂性的性隔离:程序会把消息放入消息队列,或删除的消息从消息队列中的沟通与此相关的所有活动,比如维护消息队列,维护之间的关系程序和重新启动网络和移动网络中的消息队列处理的任务的MOM不直接与其他程序调用,不涉及复杂的网络通信。 213对象请求代理 随着时代的发展对象技术与分布式计算技术,既能互相形成一个分布式对象计算,并发展成为当今软件技术的主流方向。 1990年底,对象管理集团OMG对象管理结构OMA(对象管理体系结构),对象请求代理(对象请求代理)是这个模型的核心组成部分。它的作用是提供一个通信框架,透明的请求异构分布式计算环境中传递对象。 CORBA规范包括了ORB的所有标准接口。 CORBA 11于1991年推出,定义了接口描述语言OMG IDL和支持的客户机/服务器对象特定的ORB互 *** 作性API。 CORBA 20规范描述了不同厂商的ORB之间的互 *** 作性。 对象请求代理(ORB)是对象总线,它在CORBA规范的核心,定义异构环境下对象透明的基本机制发送请求和接收响应,是一个客户机/服务器对象之间的关系建立中间件。 ORB允许向其他对象的对象的请求可以是透明的或接受的其他对象的响应,这些对象可以位于本地到远程机器上,也可以位于。可以实现ORB拦截请求调用,并负责寻找所请求的对象,传送参数,调用相应的方法,并返回结果。客户端对象在同一台服务器对象的沟通和激活机制或存储服务器对象,不知道,也不用知道服务器对象,它是什么语言,什么作业系统或其他系统组件不属于对象的接口。 这是值得注意的,客户端和服务器的角色,仅仅是用来协调对象之间的交互,根据不同的场合,在对象上的ORB可以是客户端,也可以是一个服务器,或者甚至两者。当对象发出请求时,它是在客户端的角色,当它接收到一个请求时,它是在一个服务器角色。大多数的对象都发挥客户端扮演的角色在服务器的角色。此外,没有一个是负责传输和服务器管理,客户端和服务器之间的直接连接对象请求ORB,因此,与RPC支持简单的客户机/服务器体系结构相比,ORB可以支持更加复杂的结构。 214事务处理监视器 事务处理监控程序(交易处理监视器)最早出现在大型机上,大规模事务处理环境中的可靠运行提供支持。随着分布式计算技术的发展,分布式应用系统需要大规模的事务处理,如大量的关键事务处理的商业活动。交易监控社会之间的客户端和服务器,事务管理和协调,负载平衡和故障恢复,以提高系统的整体性能。它可以被看作是事务处理应用程序的“ *** 作系统”。一般来说,事务处理监视器具有以下特点: 流程管理,包括启动服务器进程,分配任务,监督其执行情况和负载平衡。 事务管理,即确保在其监测的原子性,一致性,独立性和持久性的交易。 在客户端和服务器之间的通讯管理提供了多种通讯机制,包括请求响应会话,排队,订阅发布和广播。 交易监控提供了大量的客户端,如飞机订票系统的服务。如果被分配给所需要的资源,然后为每个客户端的服务器,该服务器将被淹没(如在图2中所示)。但实际上,在相同的时间,并非所有的客户端需要请求服务,一旦客户端请求的服务,希望得到一个快速的反应。事务处理监视器 *** 作系统之上提供一组服务,管理和分配相应的服务进程,使服务器可以有效地为大型客户提供服务,在有限的系统资源,客户端的请求。 :中间件的不足之处 最流行的中间件服务使用专有的API和专有的协议,使来自不同制造商的应用程序建立在一个单一的制造商的产品实现互 *** 作性是困难的。一些中间件服务平台实现,从而限制了异构系统之间移植的应用。应用程序开发者建立自己的应用程序,这些中间件服务也需要承担相当大的风险,他们往往需要重写他们的系统,随着技术的发展。中间件服务的分布式计算的抽象程度提高,应用程序开发人员需要面对很多困难的设计选择,例如,开发人员还需要在客户端和服务器端的功能分配决定的分布式应用程序。通常是指客户端的显示设备上的服务,方便的使用数据服务的服务器上关闭到数据库中,但它并非总是如此,更何况其他应用程序是如何分配的,它是不容易的确定。
目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好。然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。概括一下,实施Java的WEB项目需要掌握的技术如下:
lJava语言
l面向对象分析设计思想
l设计模式和框架结构
lXML语言
l网页脚本语言
l数据库
l应用服务器
l集成开发环境
下面我们具体地看每个技术
1、Java语言
Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。
(1)、Java Database Connectivity (JDBC)技术
在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行 SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
简单地说,JDBC 可做三件事:
l与数据库建立连接,
l发送 SQL 语句,
l处理结果。
(2)、Servlet技术
Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种 *** 作,然后返回结果。
Servlet的主要优点包括
lServlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。
lServlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。
lServlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
lServlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
lServlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们。
(3)、JavaServer Pages(JSP) 技术
JSP是从Servlet上分离出来的一小部分,简化了开发,加强了界面设计。JSP定位在交互网页的开发。运用Java语法,但功能较Servlet弱了很多,并且高级开发中只充当用户界面部分。JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是: *** 作数据库、重新定向网页以及发送 E-Mail 等等,这些都是建立动态网站所需要的功能。所有程序 *** 作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP 称为Server-Side Language。
JavaServer Pages的主要优点包括
●一次编写,各处执行(Write once, Run Anywhere)特性
作为Java 平台的一部分,JavaServer Pages 技术拥有Java语言“一次编写,各处执行”的特点。随着越来越多的供货商将JavaServer Pages 技术添加到他们的产品中,您可以针对自己公司的需求,做出审慎评估后,选择符合公司成本及规模的服务器,假若未来的需求有所变更时,更换服务器平台并不影响之前所投下的成本、人力所开发的应用程序。
● 搭配可重复使用的组件
JavaServer Pages技术可依赖于重复使用跨平台的组件(如:JavaBean或Enterprise JavaBean组件)来执行更复杂的运算、数据处理。开发人员能够共享开发完成的组件,或者能够加强这些组件的功能,让更多用户或是客户团体使用。基于善加利用组件的方法,可以加快整体开发过程,也大大降低公司的开发成本和人力。
● 采用标签化页面开发
Web 网页开发人员不一定都是熟悉Java 语言的程序员。因此,JSP 技术能够将许多功能封装起来,成为一个自定义的标签,这些功能是完全根据XML 的标准来制订的,即JSP 技术中的标签库(Tag Library)。因此,Web 页面开发人员可以运用自定义好的标签来达成工作需求,而无须再写复杂的Java 语法,让Web 页面开发人员亦能快速开发出一动态内容网页。
今后,第三方开发人员和其他人员可以为常用功能建立自己的标签库,让Web 网页开发人员能够使用熟悉的开发工具,如同HTML 一样的标签语法来执行特定功能的工作。
● N-tier 企业应用架构的支持
有鉴于网际网络的发展,为因应未来服务越来越繁杂的要求,且不再受地域的限制,因此,
必须放弃以往Client-Server的Two-tier 架构,进而转向更具威力、d性的分散性对象系统。由于JavaServer Page 技术是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是负责前端显示经过复杂运算后之结果内容,而分散性的对象系统则是主要依赖EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )构建而成。
(4)、JavaBean(Application)应用组件技术
Application是Java应用程序,在WEB项目和一些开发中主要应用JavaBean。它就是Application的一部分,逻辑运算能力很强,能极大的发挥Java语言的优点。JavaBean 被称为是Java 组件技术的核心。JavaBean 的结构必须满足一定的命名约定。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装成为一个组件对象,这样就增加了代码的重用率和系统的安全性。
高级的WEB项目会应用到以上所有技术,它们之间联合使用和协作开发会提高开发的效率和系统的性能。
2、面向对象分析设计思想
Java语言是完全面向对象的语言,所以在项目设计时会有很大的帮助,在设计时应尽量舍弃以往的面向过程的设计方式。
在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case diagram),类图(class diagram),时序图(sequence diagram)等等,会有很大的帮助,这样能尽快找出业务逻辑主要面对的对象,然后对每个对象进行行为划分,最后再实现对象之间的集成和通信。
3、设计模式和框架结构
Java从语言角度来讲不是很难,但是从整体设计角度来讲我们还需要了解一些高级应用框架。如果要设计一个良好的框架结构,单单只掌握Java语言远远不够。这就涉及到一个设计模式,还有和设计模式相关的一些知识。
设计模式在Java项目实施过程更是重中之重。主要在与两层的设计模式、三层的设计模式和N层的设计模式。它直接决定着项目的应用、部署和实际开发设计。
在普通的WEB项目中很多采用两层的开发结构。JSP+Servlet或JSP+JavaBean。当对开发要求高的项目中使用很多的还是MVC的三层开发结构,也就是JSP+Servlet+JavaBean。它能分有效的分离逻辑开发,使开发人员能专注于各自的开发。同时也能时整个开发结构流程更清晰,但是需要比较高的开发配合度。
在项目中,我们经常使用著名的Model-View-Controller(MVC)架构。MVC架构是随着smalltalk language语言的发展提出的,它是一个著名的用户界面设计架构。经典的MVC架构把一个组件(可认为是整个应用程序的一个模块)划分成三部分组 Model管理这个模块中所用到的数据和业务逻辑。而View 管理模块如何显示给用户,Controller 决定如何处理用户和该模块交互式时候产生的事件 如用户点击一个按钮等。
4、XML语言
在服务器和设计模式结构中会应用到自定义文件,而且在应用高级设计时也会定义自用的标签,现在流行的是用XML去定义配置,所以XML语言应该有一定掌握。
当前,Java 2平台企业版(J2EE)架构在厂商市场和开发者社区中倍受推崇。作为一种工具,可扩展标记语言(XML)简化了数据交换、进程间消息交换这一类的事情,因而对开发者逐渐变得有吸引力,并开始流行起来。自然,在J2EE架构中访问或集成XML解决方案的想法也很诱人。因为这将是强大系统架构同高度灵活的数据管理方案的结合。
XML的应用似乎是无穷无尽的,但它们大致上可以分为三大类:
1、简单数据的表示和交换(针对XML的简单API(SAX)和文档对象模型(DOM)语法解析,不同的文档类型定义(DTDs)和概要(schemas))
2、用户界面相关、表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转换(XSLT))
3、面向消息的计算(XML-RPC(远程过程调用),基于SOAP协议的Web 服务(Web Services),电子化业务XML(ebXML))
5、网页脚本语言
为了提高WEB项目的整体性能,提高人机交互的友好界面,网页的脚本语言是很有用处的,有的时候可以解决很大的难题或提高程序的性能和应用性。
网页脚本语言的执行都是在客户端执行的,速度很很快,并且大多的 *** 作与服务器没有交互运算,所以在一些应用中非常理想。在设计WEB项目的应用中,网页的脚本语言起着不能忽视的作用,所以如果设计WEB项目的应用中,对JavaScript应有一定的了解。
JavaScript是一种基于对象(Object Based)和事件驱动(Event Driven)并具有安全性能(Secure)的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它具有以下几个基本特点:
1它是一种脚本编写语言
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用 *** 作。
2 基于对象的语言。
JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3简单性
JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。
5 动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种 *** 作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
6、开发工具
(1)、数据库
在主要的应用中,数据库相关的环节应用很多,所以对数据库应该有一定了解。不能单单只了解一种数据库,因为在很多实际开发中会提出很多数据库解决方案,所以只有在了解多种数据库的情况下才能有一个比较方案。
对于数据库应该了解他的性能和一些基本的 *** 作常识,还有该数据库的特点。而针对与Java语言WEB项目的数据库开发则主要是对JDBC的应用,还有数据库事务处理和连接池等高级概念的应用。
(2)、Web服务器
同数据库一样,应该了解该服务器的性能,特点和一些常识。
在应用方面,Web服务器主要是针对于配置和部署,对目录的配置,调试;对配置文件属性的修改;对访问权限和并发性的控制;Java类的部署等。
(3)、集成开发环境(IDE):
“公欲善其事, 必先利其器” 对于Web应用开发人员来讲,好的集成开发环境(IDE:Integrated Development Enviroment)是非常重要的。目前在市场上占主导位置的一个集成开发工具就是Eclipse
一、置位和复位指令:
1、指令符:
置位指令指令符:SET:复位指令指令符:RST:
2、梯形图符号:
置位和复位指令是一组功能指令,画梯形图时要用中括号或方框,且最少接一个接点后才能接母线。如下图所示:
3、指令功能:
SET指令的功能:当SET指令工作的前提条件X0发生正跳变(即X0由OFF变为ON)时,SET指令使它 *** 作的继电器Y0置位为“1”(状态变为ON)并保持。
RST指令的功能:当RST指令工作的前提条件X1发生正跳变(即X0由ON变为OFF)时,RST指令使它 *** 作的继电器Y0复位为“0”(状态变为OFF)并保持。
SET指令的 *** 作目标元件为Y、M、S。而RST指令的 *** 作元件为Y、M、S、D、V、Z、T、C。对同一编程元件,如例中Y0等,SET、RST指令可以多次使用,且不限制使用顺序,以最后执行者有效。
RST指令可以对定时器、计数器、数据寄存器、变址寄存器的内容清零,还可用来复位积算定时器T246~T255和计数器。
二、脉冲输出指令:
1、指令符:
上升沿脉冲输出指令指令符:PLS;下降沿脉冲输出指令指令符:PLF
2、梯形图符号:
脉冲输出指令是一组功能指令,画梯形图时要用中括号或方框,且最少接一个接点后才能接母线。如下图所示:
3、指令功能:
PLS指令的功能是:当X0发生正跳变时,PLS指令使指定的继电器M0产生一个扫描周期的脉冲输出。
PLF指令的功能是:当X1发生负跳变时,PLF指令使指定的继电器M1产生一个扫描周期的脉冲输出。
PLS和PLF指令的目标元件是Y和M,但特殊辅助继电器不能作目标元件。
三、主控指令及主控复位指令:
1、指令符:
主控开始指令指令符:MC:主控复位指令指令符:MCR:
2、梯形图符号:
主控及主控复位指令是一组功能指令,画梯形图时要用中括号或方框,且最少接一个接点后才能接母线。如下图所示:
3、指令功能:
MC指令的功能是:当X0保持为ON时,MC指令和MCR指令之间的程序要执行。当X0保持为OFF时,MC指令和MCR指令之间的程序不执行,此时非积算定时器和用OUT指令驱动的元件复位,积算定时器、计数器、用SET/RST指令驱动的元件保持当前的状态。
上面梯形图中,当X0保持为ON,X1保持为OFF,则按下按钮X10,Y10工作而按下按钮X11,Y11不工作。
MCR指令的功能是:取消主控指令。
MC和MCR指令的目标元件是Y和M,但特殊辅助继电器不能作目标元件。4、MC指令的嵌套:
在MC指令区内使用MC指令称为嵌套,嵌套级N的编号(0~7)顺次增大,返回时用MCR指令,从大的嵌套级开始解除。用MC、MCR指令编程时最好不要用嵌套,以免产生错误。
参考资料来源:百度百科-PLC(平面光波导技术)
以下粘贴自SQL Server 的帮助信息,文字太多不能贴全,你自己可在帮助中查到更多信息。-----------------------------
每个 SQL Server 安全对象都有可以授予主体的关联权限。本主题提供了下列信息:
权限命名约定
与特定的安全对象相关的权限
SQL Server 权限
权限检查算法
示例
权限命名约定
下面介绍命名权限时遵循的一般约定:
CONTROL
为被授权者授予类似所有权的功能。被授权者实际上对安全对象具有所定义的所有权限。也可以为已被授予 CONTROL
权限的主体授予对安全对象的权限。因为 SQL Server 安全模型是分层的,所以 CONTROL 权限在特定范围内隐含着对该范围内的所有安全对象的
CONTROL 权限。例如,对数据库的 CONTROL
权限隐含着对数据库的所有权限、对数据库中所有组件的所有权限、对数据库中所有架构的所有权限以及对数据库的所有架构中的所有对象的权限。
ALTER
授予更改特定安全对象的属性(所有权除外)的权限。当授予对某个范围的 ALTER
权限时,也授予更改、创建或删除该范围内包含的任何安全对象的权限。例如,对架构的 ALTER 权限包括在该架构中创建、更改和删除对象的权限。
ALTER ANY
<服务器安全对象>,其中的服务器安全对象可以是任何服务器安全对象。
授予创建、更改或删除服务器安全对象的各个实例的权限。例如,ALTER
ANY LOGIN 将授予创建、更改或删除实例中的任何登录名的权限。
ALTER ANY
<数据库安全对象>,其中的数据库安全对象可以是数据库级别的任何安全对象。
授予创建、更改或删除数据库安全对象的各个实例的权限。例如,ALTER
ANY SCHEMA 将授予创建、更改或删除数据库中的任何架构的权限。
TAKE OWNERSHIP
允许被授权者获取所授予的安全对象的所有权。
IMPERSONATE <登录名>
允许被授权者模拟该登录名。
IMPERSONATE <用户>
允许被授权者模拟该用户。
CREATE <服务器安全对象>
授予被授权者创建服务器安全对象的权限。
CREATE <数据库安全对象>
授予被授权者创建数据库安全对象的权限。
CREATE
<包含在架构中的安全对象>
授予创建包含在架构中的安全对象的权限。但是,若要在特定架构中创建安全对象,必须对该架构具有
ALTER 权限。
VIEW DEFINITION
允许被授权者访问元数据。
REFERENCES
表的 REFERENCES 权限是创建引用该表的外键约束时所必需的。
对象的 REFERENCES
权限是使用引用该对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW
时所必需的。
适用于特定安全对象的权限
下表列出了主要的权限类别以及可应用这些权限的安全对象的种类。
权限
适用于
SELECT
同义词
表和列
表值函数 [Transact-SQL 和公共语言运行时 (CLR)] 和列
视图和列
VIEW CHANGE TRACKING
表
架构
UPDATE
同义词
表和列
视图和列
REFERENCES
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表和列
表值函数(Transact-SQL 和 CLR)和列
视图和列
INSERT
同义词
表和列
视图和列
DELETE
同义词
表和列
视图和列
EXECUTE
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
CLR 类型
RECEIVE
Service Broker 队列
VIEW DEFINITION
过程(Transact-SQL 和 CLR)
Service Broker 队列
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
ALTER
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表
表值函数(Transact-SQL 和 CLR)
视图
TAKE OWNERSHIP
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
CONTROL
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
近期写文档逐渐考虑规范化,带上UML图可让开发方案更为直观,也可理清需求
1,安装画图工具Rational Rose 2007:
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)