今天,公司内部举行了分层架构的讲座,虽然自己对此也知道一些,但是一直没有深入了解过,借此机会重新学习下。
先上个根据自己理解画的图,不对之处请斧正
层间关系:单调向下依赖
零零碎碎的一些摘录
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开
M是指数据模型,V是指用户界面,C则是控制器,
V
View
视图
视图是用户看到并与之交互的界面。
M
Model
模型
模型表示企业数据和业务规则。
C
Controller
控制器
接受用户的输入并调用模型和视图去完成用户的需求
BLL
Business Logic Layer
业务逻辑层
主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
USL
User Show Layer
表现层
主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
DAL
Data Access Layer
数据访问层
主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
DAO
Data Access Object
数据访问接口
使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新
框架通常是代码重用
设计模式是设计重用
架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用
设计模式是大智慧,用来对软件设计进行分工;框架模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。
作者:范军 (Frank Fan) 新浪微博:@frankfan7 微信:frankfan
架构师有创意的设计方案,有时可以节省大量的硬件成本和后期的维护成本。有些情况下用好PVLAN,可以简化网络管理,而又满足安全隔离的需要。
概念
PVLAN的概念早就在物理网络中就有,vSphere Distributed Switch在hyperviosor层实现了这个概念。
Private Primary PVLAN5 就是我们传统的VLAN,它自己是primary,在它的下面又分出了很多个Secondary PVLAN。每个seconary PVLAN 都有一个ID。
三种Secondary PVLAN的类型是:
Promiscuous:
属于Promiscuous的虚拟机E和F 可以和同属于一个PrimaryVLAN的任何设备通讯。 Promiscuous的PVLAN ID 和Primary VLAN ID 是一样的。在上图中都是5
Community:
同属于Community PVLAN的虚拟机A和B之间可以通讯,可是他们不能和除了Promiscuous PVLAN之外的设备通讯
Isolated:
同属于Isolated PVLAN的虚拟机C和D之间不可以通讯,可是他们不能和除了Promiscuous PVLAN之外的设备通讯
情景一:
某公司的DMZ内有很多虚拟机和物理设备,担心某个设备被入侵后会危及其他设备。
PVLAN是一个很合适的解决方案。
下图摘自PVLAN– A Widely Underutilized Feature fromvXpertise.net
VM2和VM3是同一个应用的两个虚拟机。把它们放入Community PVLAN可以保证它们之间的通讯。在物理交换机上也设置好PVLAN,并把相关路由器或者防火墙也接入属于同一个Primary VLAN的PromiscuousPVLAN. 这样VM2和VM3可以和路由器、防火墙通讯,从而可以和DMZ之外的设备通讯。但是它们不可以和同属于DMZ内的VM1通讯。
好处在于一旦VM2或VM3被入侵,不会以此为跳板轻易访问到VM1。另一个好处是每次在该PrimaryVLAN内增加虚拟机,只需在vSphere中设置SecondaryPVLAN ID,无需每次都更改物理交换机的设置。
情景二:
此情景摘自vSpherePrivate VLANs – Dev Environment Use Case fromhttp://virtuallybright.com
某公司需要搭建一个测试环境,希望与实际生产环境的设置一致。这难免需要相对复杂的VLAN隔离。
通过PVLAN方案,在Primary VLAN 70下面分出三个Private VLAN 10,20 和30. 也可
G. 帧内预测
Intrapicture Prediction
Fig. 6. Modes and directional orientations for intrapicture prediction.
Intrapicture prediction operates according to the TB size,
and previously decoded boundary samples from spatially
neighboring TBs are used to form the prediction signal.
Directional prediction with 33 different directional orientations
is defined for (square) TB sizes from 4×4 up to 32×32. The
possible prediction directions are shown in Fig. 6. Alternatively,
planar prediction (assuming an amplitude surface with a
horizontal and vertical slope derived from the boundaries) and
DC prediction (a flat surface with a value matching the mean
value of the boundary samples) can also be used. For chroma,
the horizontal, vertical, planar, and DC prediction modes can
be explicitly signaled, or the chroma prediction mode can be
indicated to be the same as the luma prediction mode (and, as a
special case to avoid redundant signaling, when one of the first
four choices is indicated and is the same as the luma prediction
mode, the Intra_Angular[34] mode is applied instead).
帧内预测是以TB尺寸进行操作的;
并且在空域上相邻的前面已解码的边界像素将被用作预测参考信号;
对从4x4到32x32的TB定义了33个不同的预测方向;
所有可能的预测方向如图6中所示;
而且Planar预测和DC预测同样可以使用;
对于色度分量,水平,垂直,planar,DC预测模式可以显示使用;
也可以直接沿用相应的亮度分量的预测模式;
Each CB can be coded by one of several coding types,
depending on the slice type. Similar to H.264/MPEG-4 AVC,
intrapicture predictive coding is supported in all slice types.
HEVC supports various intrapicture predictive coding methods
referred to as Intra_Angular, Intra_Planar, and Intra_DC. The
following subsections present a brief further explanation of
these and several techniques to be applied in common.
依据片类型,每个CB可以使用一个或多个编码类型编码;
和H.264/MPEG-4 AVC一样,帧内预测编码支持所有的片类型;