底层网络

2024-09-07

底层网络(精选9篇)

底层网络 篇1

0 引言

网络技术日新月异的发展环境, 为网络管理软件以及网络数据分析技术的升级提供了良好契机。在网络数据收集系统设计中, 数据包捕获手段的便捷性以及数据解析的准确性占据网络底层数据收集系统中的重要组成部分。在Windows平台环境下, 系统仅提供带有截获IP数据包的API, 不满足系统平台用户想要获取数据链路曾数据包的使用诉求。因此, 需要开发人员基于对使用诉求的分析研发设计基于WinPcap的网络底层数据采集系统。

1 WinPcap系统软件包的结构与功能

1.1 系统软件包的结构介绍

WinPcap系统平台凭借其较高系统稳定性及使用性能, 可以提供含量丰富、数量较多、功能较强大的网络数据包处理功能, 从而满足开发者们对网络底层数据处理的严格要求。WinPcap平台系统提供的数据包捕获功能得益于Unix系统中的BSD包截获架构的设计。其内部由NPF (网络组包过滤器) 、Packct.dll (用户级活动链接库) 和Wpcap.dll (高级动态链接库) 组成。其中NPF承担操作系统内核的驱动功能;Packet.dll在Windows环境中为数据包的相关驱动程序提供公共接口, 以供数据包所含数据信息之间的流通与共享功能的实现;Packet.dll可以起屏蔽系统平台中接口区别所引起的负面冲突效应。需要注意的是, 基于Packet.dll的数据包捕获程序对于Win32各类型平台的执行具有通用性;Wpcap.dll模块为开发者提供一组具有强大功能及性能的函数, 开发者可以通过Packet.dll的低级函数进入系统内核级调用区块进行研发操作, 也可以直接通过Wpcap.dll的高级函数调用进行操作。

1.2 系统软件包的功能介绍

由Packct.dll、NPF、Wpcap.dll构成的WinPcap系统平台可以为开发者在进行网络底层数据捕获系统设计时提供原始数据包, 数据包内包含共享网络链条中各个计算机主机发送和接收的用于交互使用的数据包。同时, WinPcap系统平台保障了数据包传送至应用程序之前可以按照系统内自定规则对某些具有特殊性的数据包执行过滤操作, 从而确保WinPcap系统平台的数据信息的有良性。此外, WinPcap系统平台还可以实现网络原始数据包在网络上的发送操作, 并能够对网络通信、传输过程中的统计信息进行及时收集。

2 网络底层数据采集系统简介

2.1 网络底层数据采集系统的整体功能

网络底层数据收集系统在功能上主要表现四项内容:第一, 应用该系统可以对本机所有网络接口信息环境下的用户态的网络接口选择进行读取操作, 对用户行为予以记录、监控;第二, 以数据链路层为操作基础, 对网络上在本机网卡环境中流经的数据包进行即时抓取, 并能保证抓取数据包的完整性以及数量;第三, 根据网络数据包对应的网络协议的类型差别对该底层数据包的协议类型予以分析, 同时, 对于对该底层数据包的MAC地址、IP地址、长度等信息予以分析;第四, 该系统可以完成将网络底层数据的解析信息即时传递并显示给开发用户。

2.2 网络底层数据采集系统的构架介绍

该网络底层数据通过对WinPcap平台网络环境中的驱动程序库的库函数进行调用, 并将系统网卡从原有状态设置为混杂模式, 完成对数据链路层上流经本机网卡所有网络数据包的采集过程。然后对采集得来的网络数据包按照相应数据包协议规则进行分析、信息解析, 对数据包中包含的网络信息予以提取。最后将收集来的各类型网络信息及时通过平台开发用户界面展示给WinPcap平台系统的使用者面前, 或记录于Acccss数据库中。

在设计该网络底层数据收集系统时, 采用了多线程结构设计, 以避免所设计系统在网络信息解析与结果分析时显示的和前段抓包过程中的数据包的丢包现象, 多线程结构可以保证从网络底层数据中提取的网络信息及解析结果显示的即时性。该系统中各个环节的工作依赖于数据包采集线程、数据包解析线程以及用户体验界面线程三个线程结构的协同完成。

2.3 网络底层数据采集系统的模块设计

数据包采集模块:其承载着将本机网卡在网络环境中流经的网络数据包的截获功能。通过数据包采集线程的作用, 调用WinPcap高级库函数在内的各类型数据函数, 完成对本机网卡信息的截获、网卡的选择以及网卡设置三种目标功能。上述步骤完成后, 系统利用数据包采集线程对封装好的PackctInfo结构对象以及数据包解析线程获得的共享全局数据包共同放进数据包缓冲队列中, 实现系统操作环境中大流量的减少、数据传输高速率的控制。该系统中的缓冲队列的设计按照先进先出原则, 保证系统使用的高效性以及使用的便捷性。当数据包被添加进缓冲队列中时, 系统会自动采用MFC的临界区变量完成数据包采集和网络信息解析两个线程的同时工作。

数据包解析模块:此模块的主要功能在于对数据包中所含有的网络信息机数据包信息进行分析、解析, 其依赖于数据包解析线程来完成。该网络底层数据收集系统的数据包解析线程通过对

以太网帧头位置进行读取, 在获得网络底层数据源以及MAC地址的基础上, 去掉以太网帧头的限制, 从而得到网络系统中网络层面的IP网络底层数据。在上述过程中, 数据包解析线程通过对所获得IP网络底层数据中描述的可供系统使用的协议字节, 得到截获数据包的协议类型。

用户操作界面显示模块:该模块的主要功能为将系统内通过一系列线程的协同作用而截获、获得的数据包网络信息以及解析信息显示给WinPcap平台系统使用用户。该网络底层数据系统通过滚动列表框的形式将不断更新的网络底层数据所蕴含的相关网络信息 予以添加 、展示。 这一模块 的功能依 托WM_UPDATEDATA函数实现。

3 结语

本文介绍的网络底层数据收集系统凭借WindowsXP系统、VC++6.0开发语言、多线程结构设计的软件开发优势的叠加效果, 对网络底层数据截获过程的系统数据信息的即时显示、更新提供了保障与顺畅通道, 与此同时, 对于数据包收集系统常见的因大流量、高速率造成的丢包现象予以避免。

参考文献

[1]于天予.基于WinpCap的网络流量统计分析系统设计与实现[D].河北科技大学, 2013.

[2]周灵, 丁伟雄, 杨文茵.基于WinPcap的网络监测系统设计及协议分析[J].佛山科学技术学院学报 (自然科学版) , 2012, 04:59-63.

[3]王月晖.基于WinPcap的网络数据捕获和分析系统的研究与实现[D].沈阳工业大学, 2007.

底层网络 篇2

一次偶然在网上看到一本ebook(电子书)——《成功从底层做起》,觉得很有意思,下载后进行了细致研读,真可谓意味无穷。现在回想起来,虽然不能说是此书改变我的世界观、人生观,但从某种意义讲,可以说此书改变了我许多做事做人的观念,这一点儿也不夸张。一遍遍的读,一个处于社会这座金字塔底层的人,该怎么做事,什么样的事应是什么样的态度,这些过去没有细细想过的问题,由于这本书的启迪而在我的思想中过滤思索了一遍又一遍。

现在有很多人,抱怨找不到工作或者工作不理想,埋怨组织不重用或领导不慧眼识英才,其实并非他们没有能力,而是他们缺乏一种从底层做起的踏实精神。事实上,从本书的作者王振国(著名的抗癌药研究专家,首届“中国十大杰出青年”)的成功经验不难看出,一个人,只要有从底层开始奋斗的勇气和决心,只要不断地进取,一定会有所作为。工作和生活在底层的人,如同天将降大任于斯,只要努力,机会的大门总会向他敞开的。

我认为,一个交通基层干部要获得成功,就必须植根于脚下现有的岗位、植根于最基层,从基层开始。有过最基层的实践经验,做了领导,不论是管理,还是业务,你的手下是骗不了你的,你清楚是怎么回事,因为你了解第一线的最真实情况;又因为你有过这样的经历,所以你的工作将变得十分扎实,你将把不停的深入实际、到一线去作为一种非常平常的工作,而不会脱离实际、高高在上;你将体谅那些一线员工的苦,你将关心他们,知道他们的不容易;你将知道应该怎样处理人际关系、应该提供一种什么样的机制。总而言之,它将成为你一生工作生涯的宝贵财富,这是书本上、学校里、课堂上所不能给予你的。

和许多人一样,我也是从交通系统的最底层工作单位做起。在工作的十七个春秋里,我把自己的追求与执着全部融入了交通建设,从县到自治区、从自治区到市,积累了省、市、县三级行政和业务部门的技术和管理工作经验,在工作和学习生活中逐步地成长和成熟,逐步实现着由专业技术人员到行政管理干部、从基层到决策层这种双重角色和环境的转换和适应。十七年来,我与同事们同频同振,默默耕耘,从而抒写了一条条纵横交错的农村公路,也微笑着书写了自己路的梦想。在农村公路上诗意行走,追寻自己人生的梦想,像百合花一样,默默地、全心全意地开花,以花来证明自己的存在……当我通过勤奋学习,努力工作,通过了三个全国统一组织的执业资格考试或职业水平考试时,当全区推广荔浦乡道管养工作经验时,当我36岁取得高级工程师专业技术资格时,当我编辑了的农村公路应知应会小册子《修路一卡通》、《养路一卡通》在全区交通系统印发时,当我在全国核心期刊《交通标准化》发表了十多篇学术论文时,[~ 课 件 ]当我拿起手中的笔书写交通人心中感受的时候,当我作为高级专业人才引进从荔浦县交通局调动到崇左市公路管理处工作的时候,心中的幸福感和成就感不言而喻,这一刻,我觉得人生最大的幸福,莫过于奋斗后的收获与满足,莫过于事业的成功!

交通的辉煌成就需要每一个交通人的不懈努力。衷心地希望每一个交通人都能以良好的心态,学会从底层做起,从现有的岗位做起,给自己找到一个幸福工作的支点,以良好的心态创造着工作的幸福,就像书中的百合花所说:“我要开花,是因为我知道自己有美丽的花;我要开花,是为了完成作为一株花的庄严使命;我要开花,是由于自己喜欢以花来证明自己的存在。不管有没有人欣赏,不管别人怎么看我,我都要全心全意的开花,以花来证明自己的存在!”

底层网络 篇3

伴随着互联网的高速发展, 网络通信对网络接入服务器的要求也日益提高, 特别是网络游戏[1]、Web服务器、即时通信[2]等应用的接入服务器经常面对海量客户端的并发连接请求和数据通信。因此如何设计与开发一个高性能的、可伸缩性的服务器是提高整个网络通信效率的关键。而底层通信模块是网络接入服务器的核心模块, 也是突破网络通信效率瓶颈的关键所在。底层通信模块的主要功能有处理海量客户的连接请求、接收数据包、处理数据包、将数据包抛送到应用逻辑层、发送应用逻辑层的数据包。

目前应用软件服务器的底层通信模块往往采取的模型是:异步I/O+多线程模式。也就是每当一个客户端连接请求到达, 服务器就创建一个新线程, 用此线程与客户端通信。有多少个客户端就要建立多少个线程。这种模式简单易懂, 在并发数量不高的情况下是比较理想的I/O模型。但是在高并发的情况下, 频繁的切换线程间的上下文 (Context Switch) 是非常占用CPU的时间, 更不用说创建和销毁大量线程所花费的时间和消耗的系统资源。

微软在Win32平台上提出了完成端口机制[3] (I/O Complete Port, IOCP) 是处理大量并发连接和海量数据的最佳处理方案。针对实际项目需求, 本文在.Net平台下提供了一种在对IOCP进行底层封装的基础上而设计和实现了具有高性能的、可扩展性的网络接入服务器的底层通信模块。该模块着重解决客户端连接量庞大, 小容量数据包频繁收发等问题, 并对内存管理进行了优化。

1 I/O完成端口机制

微软提出完成端口的初衷就是为了解决上文中“one-thread-per-client”的缺点。它充分利用内核对象的调度, 通过少量的工作线程处理和客户端的所有通信, 消除了无谓的线程上下文切换, 最大限度地提高了网络通信的性能。

完成端口机制是把重叠I/O操作完成的事件通知放入系统维护的一个队列, 并唤醒某个工作线程来处理相应的消息。重叠操作是在与IOCP相关联的一个或多个文件句柄上进行的, 大大减少了线程上下文切换, 最大限度地提高了系统并发量。

1.1 重叠结构 (Overlapped)

重叠结构是异步通信机制实现的核心数据结构, Windows里所有的异步通信都是基于它, 完成端口也不例外。之所以被称为重叠结构是因为“执行I/O请求的时间与线程执行其他任务的时间是重叠的”[4]。应用程序利用重叠结构一次投递一个或多个I/O请求。针对这些提交的请求, 在它们完成之后采用事件对象通知模式[5] (Event Object Notification) , 应用程序可以通过其他的代码来处理这些数据。

.NET Framework 2.0的Socket类的主要问题是它不仅在分配必要的基础对象以便在大量套接字上同时保持I/O操作时需要占用过多的CPU循环, 而且在执行单个套接字I/O操作时也同样如此。

在.NET Framework 3.5, CLR便可以更有效地同时管理大量的Overlapped对象。CLR中的Overlapped对象可以有效封装用于管理异步I/O操作的本机Windows Overlapped结构。每个进行中的Socket异步I/O操作中都有一个Overlapped对象实例。现在可以拥有6万个甚至更多的连接套接字, 并同时在每个套接字上保持一个挂起的异步接收I/O操作。

1.2 完成端口 (Completion Port)

完成端口是Win32下最复杂的一种I/O模型, 通过一定数量的工作线程为已经完成的重叠I/O请求提供服务, 相对于其他I/O模型, 它可以管理海量的Socket句柄。完成端口由完成队列和一个工作线程池组成。将需要请求异步I/O请求的句柄与完成端口进行关联, 当投递完后就可以继续处理自己的任务, 把剩下的处理交给完成端口。其中完成队列是把已经完成的I/O请求作为完成包放入完成队列的尾部, 然后就产生一个事件通知并根据先进先出FIFO (First In First Out) 的原则由工作线程来处理。当完成队列中有I/O通知时, 从工作线程池中唤醒一个工作线程来处理该I/O通知, 处理完毕后再放入池中重新回到休眠状态。工作线程可以创建多个, 主要是根据CPU的数目, 一般要求一个CPU对应一个工作线程。系统尽量保证CPU上运行的线程数为最大并发线程数, 实现多线程最大化并行, 使得线程避免不必要的阻塞。

2 底层通信模块的设计

2.1 总体设计

网络通信模块位于体系结构的最低层, 它向业务逻辑层提供数据传输服务, 并维护着系统与客户端的交互, 是网络接入服务器的基础模块之一。该模块是负责对象池、内存池以及线程池的创建和销毁, 同时负责启动套接字与客户端通信。底层通信模块应具有较好的交互性和伸缩性, 使得系统中的其它功能模块能更加灵活方便地架设在其之上。

本通信模块在将完成端口封装的基础上, 设计了对象池、内存池、线程池、消息队列调度器等互相配合, 实现了一个比较高效的TCP网络通信层。通信模块内部的模块划分如图1所示。

INet Communication Module的接口提供了一些模块间相互调用的方法, 以保证拓展到业务逻辑层和数据层时内部协作逻辑不变。接口的关键声明如下:

TCPAccess Module类实现了INet CommunicationModule接口, 是通信模块的核心类。它主要有创建对象池My Socket Async Event Args Pool (My SAEAPool) , 内存池Buffer Manager, I/O线程池, 开关服务器, 管理客户端上下文列表, 建立消息队列调度器。其中定义了如下关键声明:

该类定义了一些服务器逻辑处理功能, 定义了四种线程通过事件触发来进行逻辑处理。其中连接请求线程用于处理客户端连接队列, 调用登陆模块初步对连接请求进行验证, 关闭非法连接释放资源, 为正常客户端提供并维护通信通道。第二定义了接收线程, 通过该线程从接收队列获取未经逻辑层处理的数据包, 然后将该数据包抛掷业务逻辑层按消息协议进行逻辑处理。第三定义了发送线程。存放在发送队列的数据包通过该线程根据数据包的客户端Socket发送给指定的客户端。第四定义了心跳包线程。该线程通过心跳包方式来检测长时间无响应的客户端或者已经掉线的客户端, 及时关闭此类客户端释放资源来降低服务器负载和提高系统的并发量。

2.2 基本流程

网络通信模块实现如图2所示。

(1) 启动通信模块, 初始化对象池、线程池等一系列资源。

(2) 创建监听socket, 并在指定端口上监听连接请求。

(3) 当有连接请求到来时, 通信模块通过SAE-APool.Pop () 方法从异步对象池中为新建的连接分配Socket Async Event Args (以下统称SAEA) , 并通过Buffer Managers.Set Buffer来为连接分配缓冲区。然后在该连接对象的socket上投递一个异步接收操作。

(4) 调用登陆模块对连接对象进行验证, 如果不是正常客户端, 关闭Socket, 将SAEA放回SAE-APool, 通过调用Buffer Managers.Free Buffer (SAEA) 将内存重新放回内存池。如果是正常客户端, 则判断I/O操作类型, 并通过事件调度器放入不同的处理队列。

(5) 放入处理队列的同时, 通过事件通知唤醒线程池中的I/OThread, 来对相应的I/O操作类型进行处理。

(6) 同时启动心跳包线程, 对在线的客户端进行扫描。将长时间无响应的客户端主动断开连接, 释放资源。

3 性能优化

Pool (池) 的概念被广泛的应用在服务器端的开发上。使用池结构可以明显的提高应用程序的速度, 改善效率和降低系统资源的开销。所以在现在的应用服务器端的开发中池的设计和实现是开发工作中的重要一环。池可以想象成一个保存着各种我们需要对象的容器。在系统初始化时创建一定数量的元素对象, 需要时从池中取出空闲对象直接使用, 用完后不像以往那样销毁, 而是再放到池中来做到复用。从目的上看池应该有两种类型, 一种是客户从池中获取与之相关的元素对象进行复用, 这种池称作资源池[6] (Resource Pool) ;另一种是线程池 (Thread Pool) , 这种用于处理I/O请求, 数据处理等任务请求。本通信模块中的对象池和线程池属于资源池, 而I/O线程池则属于线程池。

3.1 异步对象池及内存池

以往的通信模型在每当有新连接的时候, 就会创建一个Socket与之通信, 同时还要创建一个缓冲区用来接收和发送数据。当该连接断开时, 又需要将通信Socket销毁, 然后释放内存。这样做有几个缺点: (1) 浪费资源, 创建客户端对象的上下文需要大量的资源, 而频繁的创建和销毁客户端对象这个过程会占用消耗大量的系统资源; (2) 效率低, 频繁创建和释放固定大小的对象可能需要用到复杂的分配算法和线程同步, 同时需要维护内存空闲表的额外开销, 这样降低了系统的性能; (3) 会使系统出现大量的内存碎片, 降低内存的利用率。

而本模块中的异步对象池———My Socket Async Event Args Pool类的主要功能是用来集中管控Socket。这个类为服务器提供一个可靠的用户连接, 并且维持这个连接直到用户断开或者服务器主动断开, 并把不用的连接放回对象池中供下一个用户使用。此类的关键声明:

当服务器接收一个客户端请求后, 会取出一个SAEA对象, 对象记录客户端上下文的信息, 并通过SAEA.User Token属性来和User类所建立的对象一一绑定。当客户端关闭后将SAEA放回池里。

Buffer Manager类是内存池用来集中管理Socket缓冲区, 为每一个连接维持一个接收数据的区域。事先实例化一块内存区域, 分割成许多小块然后把每一块的地址放入栈中, 每次执行的时候拿出一块区域作为Buffer缓冲区分配给SAEA对象。这样比较容易控制页边界对其和内存字节对齐, 基本上没有内存碎片问题。

在设计本模块的异步对象池和内存池时加入多线程的同步机制, 通过设置信号量 (Semaphore) , 互斥量 (Mutex) , 临界区 (Critical Section) 等同步控制方法使得池中资源可以被多个线程共享, 并能被互斥的安全访问。

3.2 线程池

线程池是一种多线程处理方式, 也是提高服务器程序性能的一项关键技术。通过对多个任务重用线程, 线程创建的开销被分摊到了多个任务上。在请求到达时线程已经存在, 提高了系统整体的响应速度。而且, 通过合理地调整线程池中的线程数目, 就强制其它新到的请求一直等待, 直到出现一个空闲线程为止, 从而可以防止资源不足。本模块设计一种负责逻辑处理的线程池, 它是专门提供给应用层来使用的。线程池模块包括以下几个部分。

(1) 管理器:用于设置和创建线程池, 并且能够在系统运行中动态地增加I/O工作线程, 同时也负责将数据包添加到任务队列中。

(2) 任务队列:存放网络层传递来的数据包。

(3) I/O工作线程:根据判断I/O类型执行相应的逻辑处理。

在设计线程池模块时候, 最难把握的是线程池里线程数目的个数。线程数目如果过多, 会造成空闲线程比较多;而如果数目过少, 则会导致任务需要经常在任务队列中等待, 从而导致系统响应速度变慢[7]。所以本线程池采取了超前批量创建线程的方式来改变线程池大小。首先限定线程池中I/O工作线程数目的上限和下限, 初始化时创建N个线程;其次当任务请求激增时, 批量创建K个线程, 使线程池线程数目等于N+K, 当任务量减少时, 再使线程数目回到初始状态;当系统处于空闲状态时, 批量销毁K个线程, 使线程池线程数目等于N-K。

3.3 环形缓冲区

为了避免小数据包拥塞网络, Microsoft TCP栈默认启用了Nagle[8]算法, 这个算法能够将应用程序多次调用Send发送的数据拼接起来, 当收到一个数据包的ACK确认信息时, 一起发送出去。这样, 接收到的一块字节流可能包含多个数据包, 或者包的一部分。这就是所谓的“粘包”, “半包”现象。这时需要从接收缓冲区中对数据包进行解包和拼包, 因此需要涉及内存拷贝操作, 而过多的内存拷贝必然导致系统性能降低。

本模块采用环形缓冲区的方法来避免内存拷贝。使用了环形缓冲区后, 就可以不用将数据重新复制到缓冲区首部来拼装数据包, 可以根据设置的指示位记录的队列首部和队列尾部进行下一次的拼包操作。

4 系统性能测试

一个高性能服务器的标准在于单位时间内能尽可能多处理客户端的连接请求、尽可能多地处理数据包、尽可能少的占用CPU和内存等系统资源[9]。本文最后在根据此目标并忽略具体的服务处理以及复杂的业务逻辑的验证情况下, 对本通信模块进行系统性能测试, 并与目前Windows上常用的几种I/O模型做对比。

4.1 测试环境

本次参与测试的机器有三台PC机, 其中一台配置Intel Core i5-2400, 3.10GHz的CPU, 4G内存作为服务器。另外两台作为客户端的PC机的配置为CPU:Intel Core2 2.66GHz, 2GB内存。三台机器用交换机进行连接。从服务器的CPU使用率、内存消耗、数据吞吐率等三个方面测试本通信模块的性能。

4.2 测试结果分析

经过测试, 本通信模块在面对3000个客户端的连接请求时候, 可以做到快速响应。从图3可以看出在客户端连接数量不断增加下服务器的CPU和内存消耗情况基本上是处于一个缓慢线性增长, 而不像别的通信模型处于一个急剧增长。其中阻塞模式在连接数超过1000之后由于线程数过多CPU使用率过高导致服务器崩溃, 事件选择模式也由于线程较多影响了服务器的伸缩性。而在模拟3000个客户端不间断发送信息的传输过程中, 服务器的数据吞吐能力维持1600条/秒左右。I/O模型性能比较如表1所示。

5 结束语

鉴于现有网络接入服务器底层通信模块存在的问题, 本文基于完成端口底层封装, 设计了对象池、内存池、线程池、消息队列调度器等互相配合, 实现了一个比较高效的TCP网络通信层。这种采用池技术和环形缓冲区的底层通信模块能满足服务器的高性能、可扩展的需求。实验证明, 该模块在低消耗系统资源的情况上支持海量并发连接。将本服务器应用于某省的人影作业指挥系统, 在实际运行中也有着良好的表现, 能够达到项目设计的要求。如何进一步提高服务器的数据吞吐率将成为下一阶段的研究重点。

参考文献

[1]贺冯政.网络游戏服务器通信架构及关键技术研究[D].成都:电子科技大学, 2008.

[2]彭力, 汪秉文.即时通讯软件服务器的设计与实现[J].微机发展, 2004 (10) :6-8.

[3]Deshpande J A.Windows sockets 2.0:Write scalable winsock apps using completion ports[EB/OL].http://msdn.microsoft.com/enus/magazine/cc302334.aspx, 2011-08-08.

[4]Jeffrey Richter.Windows核心编程[M].4版.黄陇, 李虎, 译.北京:机械工业出版社, 2008.

[5]Jeffrey Richter.CLR via C#[M].3版.周靖, 译.北京:清华大学出版社, 2010.

[6]侯捷, 池内春秋, Memory.Pool的设计哲学与无痛应用[J].程序员, 2002 (9) :94-97.

[7]孟凡彦.基于线程池机制的高性能DHCP服务器研究与实现[D].西安:西北工业大学, 2005.

[8]马骏.C#网络应用编程[M].2版.北京:人民邮电出版社, 2010.

底层的光芒作文 篇4

她长得如此丑陋,一双带着厚重且红肿的眼袋的眼睛,满脸沟壑分明的皱纹,与其说是一张脸,更不如说是一只破旧的麻袋。当我第一眼在电视看到她时,不禁使我作呕。

那是一个霜打过的傍晚,天空是黑色的,人,也是黑色的。她失意地拖着身体走在这条街道上,一路上,多少路人捂着口鼻经过,没来一束束针扎般的目光。没错,她只不过是一个没有尊严,动物一般不值得尊重的乞丐。她乱发间放肆的虱子,甚至别后叮铛作响的饮料瓶也向她投来一阵蔑视和鄙夷。

她继续走着,失落地走着,这个在社会最底层的拾荒者可能并未意识到,当她拐过这个路口,将会发生什么。

天空似乎在啼哭,下着雨,19个人,包括她,走在街上。啊的那个他们拐过了路角,眼前的一切让前面18人无不感到惊悚和恐惧。

一辆车飞驰而过,将一个两岁的小女孩撞到在地,孩子的嘴角淌着血。她惆怅而无知地望着这经过的18个衣着光鲜,心中却冷若冰霜的路人。他们去视而不见,快步惊过。没错,他们只是路人。他们的脚步在小女孩,乃至这个社会的心上划下道道伤痕。

这个世界真的没有爱吗?有!她发疯似地冲向小女孩,可这时,孩子又遭遇了一次车轮的辗压。这颗还未成熟,稚嫩的.心停止了跳动。课这丑陋的的乞丐却丝毫没有放弃,她抱起小女孩,将她放在马路边,飞奔着向人们借着手机,好不容易借到了,尾随而来的救护车将孩子紧急送往医院。事后,她不愿意过着在镁光灯下的生活,远居他乡了。

或许,她只是一个乞丐,普通得不能再普通,可却又如此非凡;穷困得不能在穷困,却在心中如此富庶。

底层实力承载顶端定位 篇5

吴昊:Televic会议系统此前曾在欧盟总部项目中应用了7000个会议单元, 并且在不久前刚刚获得了北约总部大楼项目的订单, 规模比欧盟总部项目还要大。我想这足以从侧面证明Televic会议系统的顶端品质了。而具体性能、功能上的例子更多。比如说, 各品牌会议系统普遍存在的一个问题是, 由于采用驻极体电路话筒, 因此音质无法达到动圈、电容话筒的水平。在这个问题的解决上, Televic是业内最领先的品牌之一。根据我们的对比测试, Televic会议系统的音质不逊于专业扩声顶级品牌的经典款产品。再比如, Televic会议系统有一个很明显的特点, 就是话筒杆比较短;这是由于它的使用距离比同类产品更长。业内同类产品的话筒使用距离一般只有30cm左右, 而Televic会议系统的话筒使用距离长达80cm, 因此可以缩短话筒杆, 保证会议室的美观。

除了这些之外, Televic基于强大的底层实力, 可以根据大的集团用户的细节要求量身打造适用的定制化产品的服务, 也充分展现着顶端品牌的风采——可定制的内容包括所能想到的一切内容, 形状、颜色、功能, 甚至是后台软件——为用户定制与其需求完全一致的管理系统。

IB记者:提到品牌底层实力的问题。能否请您谈一谈软件方面的底层实力能够为会议系统带来哪些提升?

吴昊:底层研发实力不强, 就不可能搭建出的真正好的软件。Televic会议系统在音频方面的出色表现正是以强大的数字处理能力为基础的。比如说Televic会议系统可以内置回授消除功能, 通过软件手段消除回授, 使用户无需再为异地远程视讯投资配备回授消除器。

底层的弯弯绕 篇6

“有是有, 不过, 不知道你要哪方面的人。”从会议室里走出来, 还没回过神来的我问道。

“是这样的, 最近新接了几个项目, 人手有点紧, 再说现在正值五十年代的人退休高峰, 员工年龄总体偏高, 新项目再不用新人、新办法就来不及了……主要是客服、管理方面的, 越年轻越好。”徐总的语速就像她干练的作风一样, 短短几句话就表达了三层意思。

“有了!等一会儿把他的资料发给你。”我猛然想到了一个人, 脱口而出。

“好的!我等你!通过微信发给我!”没等我说谢谢, 徐总那头就把电话给挂了, 我苦笑地摇摇头, 重新走回会议室开会。

我想到了谁?不是别人, 就是两年前在政府采购中心认识的那个小伙子, 当初答应人家换工作的事情, 直到两年后的今天才有机会兑现, 各位看官, 你们说, 我要不要谢谢这位徐总呢?

两年前的一个中午, 我走进迁入新址的政府采购中心, 这是我头一次到政府采购中心的办公楼, 大楼门前有一个宽敞的停车场, 更为方便的是还要算两条地铁过境, 底层大厅按照政府采购服务流程一字排开一整条, 接待柜台后面坐着接待服务人员。

“您好!请问有什么可以帮到您?”还没等我走近, 一张微微发胖的男孩微笑的脸映入眼帘。

“嗯, 评标的。”我说着一边把手机调整到短信查看状态一边递了过去。

“哦, 是评委老师您啊?!您的评标室在三楼302房间, 这是您的临时出入证。”站在长长的接待柜台后面的胖嘟嘟的小男孩站起身来, 边说边双手递过吊牌。

“谢谢哦。你们是海盟物业的啊?!”我接过临时出入证, 抬眼看了看小伙子胸前挂着的名牌。

“是呀。”小伙子又给出了一个灿烂的微笑。

“好!”凭直觉, 眼前的小伙子比较周正, 只是戴了一副黑框眼镜, 显得有些老气。

我朝小伙子指的方向上楼。心里却嘀咕开了, 原本业内私底下对这家物业公司承接政府采购中心物业管理服务项目就有点不服气, 论规模、论同类业绩、论名气, 这家物业公司至少是前十名之外的, 但眼前的小伙子让我对这家物业公司刮目相看了。

参加政府采购中心评标最大的不方便就是要暂时“没收”手机, 等评标结束评标组织单位才会把手机“还给”评委, 事务在身的评委哪里经得起“失联”几个小时啊!所以, 除非万不得已, 一般不会接政府采购中心的评标活动。我也一样, 打那以后, 差不多一年时间再也没有去过政府采购中心。

但我有个习惯, 喜欢“复盘”, 无论是自家的盘子还是人家的盘子, 所谓复盘, 无非是在不同的时间看同一个楼盘项目, 从纵向和横向两个维度来体验和分析其中的优劣甚至问题。去年, 我再一次收到邀请前往政府采购中心参加评标工作。所以当我接到去政府采购中心参加评标邀请的时候, 我第一时间想到, 要去看看海盟物业新开盘一年之后, 现场服务究竟有没有变化和提升。

“老师参加哪一个项目的评审啊?”当我走进政府采购中心底层大厅的时候, 传来接待柜台后的女声。

“王弼湖的项目。”我从衣兜里掏出评审员证件, 却不知递给接待柜台后的哪一位。

“好的。208房间。”接待柜台后站起一个穿制服的中年女性, 顺手将柜台上的一个临时出入证递给我。

“谢谢。”说着我扭头看了看在接待柜台后坐成一排的人, 戴眼镜的小胖子坐在角落里正在看书, 我从书的封皮上一眼认出这是一本物业管理师培训教材。

真不知是怎么回事, 今天出行诸事不顺, 接过临时出入证转身想乘坐自动扶手电梯上楼, 一看停着, 电梯被维修人员拆得七零八落, 一旁的临时指路牌还是手写的, 沿着指引上楼, 看样子电梯维修也不是一天两天了, 这个临时指路牌为啥还用手写的呢?何况字也写得不好?!后楼梯也不干净, 既然电梯坏了, 无论是采购中心的人还是评委老师都会走楼梯上下, 后楼梯也应该打扫干净吧?怪不得业内对海盟物业能够中标政府采购中心大楼不服气了, 难道海盟物业的服务质量真是像业内传说的新买马桶三天香?

我注意到戴眼镜的小胖子在服务现场的变化, 更想知道这种变化背后的原因!因为我们公司也有一些这样的年轻人, 他们的现场状态或多或少也类似, 或许能从小胖子那里弄清楚现在年轻人对于企业和行业的一些想法也未可知。

于是, 我特别留意去政府采购中心参加评标的机会, 今年开春, 我再一次收到邀请, 这次我有意提早一个小时到那里, 打算利用中午空闲时间跟戴眼镜的小胖子聊一聊。

中午十二点三十分, 走进政府采购中心的底层大厅里, 远远看去接待柜台后面空无一人, 我有些后悔, 因为我既没有戴眼镜小胖子的联系方式也不知道他今天是不是当值, 正想着, 从接待柜台后面突然冒出一张脸来, 定睛一看, 巧了, 正是戴眼镜的小胖子。

“金老师, 您怎么这么早来啦?”小胖子将眼镜推到额头上, 揉了揉睡眼惺忪的眼睛抬手看看手表说道。

“最近哪能啦?”我赶紧往前一步问道。

“什么能呀, 每天就是这么死不死活不活的样子。”小胖子一摇头, 刚才被推上额头的眼镜就落下来正好架到他肥嘟嘟的小鼻子上。

“书不看啦?”我把手袋放在接待柜台上。

“您讲的是物业管理师考试的培训教材啊?!老早不看了, 其他书上班又不好看的。”小胖子一边说一边在找临时出入证。

“你们公司接盘采购中心的生意已经两年了哦?”我有一句没一句地说着。

“两年多了好吧!”小胖子肯定地说。

“哦, 那你现在每月可以拿多少钱呢?我说的是大概!”我进一步试探着问道。

“就是本市最低工资标准, 再加饭补啥的, 不到二千八。”小胖子说到这就开始皱眉头, 还时不时地用手擦去鼻子上的油。

“难道就没有涨过?”我有些不相信自己的耳朵。

“每年只调整最低工资标准, 就连我们项目负责人也只有三千八左右, 比我多一千块。”小胖子如数家珍一般把这里的薪酬福利状况都说清楚了。

“公司有没有绩效奖励啥的?”我又问道。

“不知道, 反正我这里的人每个月拿到的钱都好像不变的。”小胖子说着又低下头。

看来这家物业公司的员工对企业内部的绩效考核与奖惩制度体验感很低啊!在闲聊中, 我还得知, 他们底层一线员工干好干差、干多干少都一样, 关键是靠关系, 有关系就有升职加薪的机会。

“金老师, 您也是做物业的啊?”小胖子抬起头来问。

“嗯。”我点点头。

“你公司里, 像我这样的人拿多少钱呀?”小胖子怯生生地问道。

“接待前台也不多, 大概三千二左右。”我想了想说道。

“比这里高几百块呢!”小胖子眼睛一亮。

“那你是什么学历?有没有其他证照呢?”我往前一步, 凑上前去问道。

“高中毕业, 还有驾驶证、会计上岗证和读到一半的物业管理师……”小胖子一边说一边拿起自己的手机。

“那就留下你的手机号码, 我们那里有机会的话, 我就告诉你。”我见状也掏出手机。

就这样, 我便有了小胖子的联系方式, 但他也没有主动打过我的电话, 逢年过节也没有往来问候, 只是心里一直记得有这么一个小胖子正在为自己的未来犯愁呢!

“金老师, 您好呀!我是采购中心前台的小胖子呀!中秋节快乐!”手机刚接通那头就传来一阵快人快语, 但从语音、语速里透着开朗和兴奋。

“小李啊!你好!现在好吗?”我想小胖子不会再要求我介绍工作了吧!?

“谢谢金老师, 我现在就在您介绍的项目里工作, 谢谢金老师哦!”小胖子像是懂事了, 不停地在谢我。

“好好干, 年纪还轻, 抓紧时间学一点东西, 尤其是行业必须的执照什么的!等着你更好的消息!”我想在最短的通话时间里告诉小胖子更多的心里话。

“嗯, 我会的!金老师, 听说, 你跟我们徐总关系老好的!”小胖子的马脚露出来了。

“没有, 只是普通朋友关系, 就像我跟你一样。”我说的是实话。

“哦, 是这样啊……”小胖子欲言又止。

“真是那样!好好干!我还有事, 挂了啊!”我又说了一遍, 便挂了电话。

我原本还想说, 师傅领进门修行靠个人, 但我并不是他师父, 我们也只是萍水相逢的职业劳工, 惟一的差别就在于我入行时间比他长, 认识的人比他多, 遇到沟沟坎坎比他多, 仅此而已。但我深知, 物业公司关键在底层一线员工, 核心在服务技能代际传承, 假如一时半会儿脱离不了物业这个苦逼行业, 我们或应该为将来做一些预备, 尽管我们并不知道将来究竟是什么。

在职场上大约有这么几类人会给你介绍工作。第一类人, 相互取暖型, 对一个没有任何关系的职场人来说是一件非常重要的事情。第二类人, 需要帮手型, 以便于干一些不方便出面的操作。第三类人, 钟爱行业型, 拥有一定的行业口碑, 有意愿和能力相帮年轻人。

底层柔性框架结构抗震优化设计 篇7

底层柔性框架结构是现代城市建筑中一种常见的结构形式。一些商场、综合楼、写字楼、沿街住宅楼等建筑常常将底部设计成大空间的布局, 同时由于底部层高较高而墙体较少, 使得侧向刚度较小, 容易形成底部薄弱层。在地震中, 由于底层柔性框架结构的竖向刚度发生了突变, 结构的内力和变形主要集中在底部柔性层, 导致结构破坏严重[1]。《建筑抗震设计规范》 (GB50011—2010) 对竖向不规则结构的设计提出了相应的控制指标, 对于底层柔性结构应通过增加底层的侧向刚度来减小上下层的刚度比[2]。然而在实际工程当中, 由于建筑方案的限制, 往往不允许在结构的底层布置剪力墙和斜撑等抗侧构件, 这给结构设计工作带来较大难题[3]。

本文以一个底层柔性框架结构为例, 通过建模计算进行多个结构方案的对比分析, 研究底层柔性框架结构的抗震优化设计方法, 为类似工程的抗震设计提供参考。

2工程概况

如图1所示为某小型酒店的底层平面图, 总层数为6层。底层为商业用房, 层高4.8m, 上部为客房, 层高3m。结构抗震设防烈度为7度 (0.1g) , 场地类别为II类, 地震分组为一组。由于上下层的层高差异较大, 底层布局为内部空旷且四周大开窗的形式, 使得底层的侧向刚度较小。加之基础埋置较深, 底层柱的计算高度超过了6m。按照常规的框架结构设计计算时, 结构层间侧移刚度比超过2, 属于竖向严重不规则结构。因此, 该结构属于典型的底层柔性框架结构, 在进行结构设计时应另辟蹊径, 通过分析计算进行优化设计, 确定合理的结构方案。

3结构方案优选

底层柔性结构设计的出发点是尽可能地增加底层侧向刚度, 减小结构层间刚度比, 尽量避免出现结构竖向不规则的情况。根据建筑功能要求, 底层内部除电梯井以外无其他墙体, 外围护墙采用大开窗的形式, 使得在底层增加抗侧构件十分困难。通过对建筑方案进行深入分析, 在结构设计时提出了3种初步方案进行比选。

方案一:增加构件刚度。根据框架结构的受力特点可知, 框架的侧向刚度与该层柱和梁的线刚度都有关, 增加柱或梁的线刚度都可以达到增加框架侧向刚度的目的。通过增加底层柱和2层梁的截面尺寸可以使底层的侧向刚度增加, 从而减小结构的层间刚度比。此方案是比较传统的结构方案, 结构设计人员往往最容易考虑。

通过建模计算发现, 要想使底层侧向刚度增加一倍, 则需要将梁柱的截面尺寸加大50%以上, 这不仅不够经济, 也将大大影响建筑的使用功能。因此, 该方案不是理想的结构方案, 只有在无其他更优方案时才宜考虑采用。

方案二:增加腰梁。通过在窗台下增设一道腰梁, 可以将底层框架在结构形式上分成2层, 这样既不影响建筑功能又增加了底层侧向刚度。由于前墙在建筑上布置了3个大门, 这三跨无法设置腰梁, 可以采取在室内地面标高位置设置一道地梁进行弥补。但这种方法容易导致出现错层结构, 对框架柱的抗震不利, 应采取措施对错层处柱的节点进行加强。此方案对于基础埋置较浅或底层层高不太高的结构容易形成框架短柱, 应慎重选用。

通过计算可知, 该方案可使结构层间刚度比大大减小。但由于腰梁布置的不连续, 使得在局部出现错层, 同时导致结构扭转周期增加, 这对结构抗震也是不利的。因此, 该方案虽然避免了底层柔性结构体系的出现, 但没有从根本上解决结构竖向不规则的问题。

方案三:底层设置翼柱。根据建筑方案, 外围大开窗并没有完全到柱边, 窗与柱之间仍有250mm左右的填充墙, 这为结构设计提供了潜在条件。如果能充分利用这一有限的空间, 将框架柱设计成翼柱的形式, 则可以增加柱的刚度, 从而可以提高底层结构的侧向刚度。

根据计算结果发现, 单根翼柱的刚度比普通柱增加了5.2倍, 结构底层的整体抗侧刚度增加了近90%, 最终的结构层间刚度比可控制在1.3以内。结构在地震作用下的内力和变形的分布比较均匀, 避免了结构竖向不规则的出现。该方案不影响建筑的使用功能, 施工简单, 经济性和可靠性均较好, 确定为最终结构方案。

4结构设计

采用PKPM结构设计软件进行建模, 为了对比分析翼柱对结构刚度的影响程度, 分别计算得出了在抗震设防烈度7度多遇地震作用下, 底层有翼柱和无翼柱2种结构方案的楼层位移曲线和层间位移角曲线, 如图2~图5所示, 结构楼层侧移刚度比如表1所示。通过对比发现, 当无翼柱时, 结构变形主要集中在底部薄弱层, 底层的位移占结构总位移的一半以上, 层间位移角超过1/500, 达到了结构弹性变形极限值。将底层外围框架柱改为翼柱后, 结构的底层刚度明显增加, 地震位移反应随之减小, 底层最大层间位移角为1/756, 结构的层间刚度和楼层位移趋向于均匀, 避免了底部薄弱层的出现。

翼柱的受力形式与短肢剪力墙类似, 但又不完全相同, 短肢剪力墙的平面外刚度较小, 当楼层高度较大时, 短肢剪力墙作为偏心受压构件的平面外长细比较大, 容易出现失稳破坏, 而翼柱不存在这个问题。因此, 当底层层高较高时不能采用短肢剪力墙代替翼柱。

在使用软件设计时, 翼柱可以按异形柱来建模, 然后采用satwe进行整体分析和内力计算。但软件的配筋计算结果往往不合理, 与其计算的内力不一致, 需要人工进行校核, 判断其配筋的合理性, 翼柱的合理配筋构造如图6所示。

5结语

底层柔性框架结构的抗震能力存在缺陷, 结构在地震作用下容易出现底部较大的塑性变形, 当底层的水平位移不能得到有效控制时, 结构可能出现严重破坏, 甚至整体倒塌[4]。在结构设计时应进行深入分析和方案比选, 在不影响建筑功能的前提下尽可能减小结构的层间刚度比。本工程通过3个初步方案的对比分析, 最终确定采用底层翼柱的结构形式, 能够有效增加底层的侧向刚度, 对建筑功能和结构规则性无负面影响。该方案施工简单, 经济性和可靠性均较好, 在类似工程中值得推广使用。

摘要:底层柔性框架结构是一种抗震性能较差的结构形式, 在地震作用下结构的底层变形较大, 容易导致结构严重破坏。为了避免出现底部薄弱层, 在进行结构设计时应根据建筑功能要求选择合理的结构方案。采取增加构件截面尺寸、增设腰梁、设置翼柱等方案均能减小层间刚度比, 但应根据具体情况来选用。在有条件的情况下, 设置底层翼柱的抗震效果和经济性较好, 值得推广使用。

关键词:底层柔性框架,抗震优化设计,翼柱

参考文献

[1]郭庆子, 马华.带纤维混凝土耗能器底层柔性结构的抗震研究[J].工程抗震与加固改造, 2012, 34 (5) :20-26.

[2]GB50011-2010建筑抗震设计规范[S].

[3]王春林, 吕志涛, 吴京.半柔性悬挂减振结构体系地震反应分析[J].建筑结构学报, 2008, 29 (6) :107-112.

ORM框架的底层实现机制 篇8

随着计算机技术的蓬勃发展,传统面向过程的编程语言已逐渐失去了以前的主流地位。由于面向对象的编程语言更接近人类的思维习惯,具有封装、继承、多态等优良特性,从而成为了当今计算机领域的主流语言。而目前主流的数据库产品依然是关系型数据库,使得编程语言和底层数据库的发展不协调,也就是我们常说的“阻抗不匹配”,这就需要一座桥梁把这二者结合在一起,ORM框架充当的就是这个功能。

1 ORM框架实现机制

所有的ORM框架都是采用图1所示方式映射的。

即把实体类映射成表,类的一个实例映射成表中的一行记录,类的属性映射成表的字段,实体类之间的关系映射成外键。那么ORM框架又是如何实现这种映射机制的呢?熟悉hibernate的开发人员都知道,它是由映射类(*.java)、映射文件(*.hbm.xml)和配置文件(*.cfg.xml)来完成以上映射的。映射类也就是我们说的持久类,由图1可以看出,它的作用是对应数据库中的表,一个实例对应表中的一条记录,属性对应表字段。映射文件提供了持久类与数据库之间具体的对应信息,如:持久类对应了数据库的哪张表,属性对应哪些表字段等。配置文件主要的作用是配置数据库的连接信息,描述了数据库的驱动、用户名、密码等。所有的ORM框架都一样,也没有什么神奇之处,底层都是采用JDBC,它们只是对底层的JD-BC进行了封装,让我们使用者看不到JDBC那些常用CURD操作。每种ORM框架都像hibernate一样提供了配置文件(*.xml),要完成映射就得解析相关的.xml的配置文件,hibernate是采用dom4j来解析的。

1.1 dom4j解析.xml文件

Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。XML文件的结构就是由一个根元素和一些子元素组成的,dom4j他为我们提供以java方式解析XML文件的API,我们可以利用这些API来完成解析取得有用的信息。Hibernate通过dom4j取得配置信息后,底层仍采用JDBC来进行数据库连接。数据库连接过程如图2所示。

1.2 Java的反射机制

要完成ORM映射还得用到java的反射机制。反射机制的作用是完成解析java类文件。

通过解析映射文件和数据库配置文件我们可以建立数据库的连接,可以得到映射类的名字、属性名、数据库表名、字段名以及类型等信息。要把数据库中表的数据映射成为对象,首先需要把表中的记录取出,然后将每个字段值给映射类对象的每个属性,这个赋值过程要调用对象中的set方法。我们现在通过映射文件只知道类名和属性名,如何根据类名和属性名调用相应的set和get方法,是一个关键问题。在Java中有一种机制叫反射机制,使用这种机制我们可以得到类的信息,包括类只用的修饰符、方法、属性、继承的父类以及实现接口等信息。反射机制相关的类有Class、Field、Method以及Constructor等。通过Class的getFields()、getMethods()和getConstructors()方法得到相应的属性、方法和构造方法。通过Field类的getName()、getType()和getModifiers()方法得到相应的属性名、属性类型、属性修饰符信息。通过Method类getReturnType()可以获取方法的返回类型,invoke()方法可以根据给定的方法名和参数值执行对象中对应的方法。我们可以首先通过以上方法获取类中的属性名,然后拼写成setXXX和getXXX方法名,最后根据方法名执行对应的方法,将数据库数据加载到对象中,完成映射的过程,如图3所示。

由以上分析可知,要完成一个ORM机制并不是一件非常艰难的事情,说简单点就是dom4j+Java的反射机制。现在有些公司用的是自己开发的ORM框架,学会了这两样技术,加点JDBC的基础知识,你也可以开发一个小小的ORM框架了。这里只是简单谈了下对象到关系型数据库的映射,就不讨论hibernate那些懒加载和缓存等技术了。

2 结束语

正如大多数开发人员所说的,Java框架太多,已到了泛滥的程度,在我们学习框架的过程中,我们不应该花太多的时间在学习框架上,而是去掌握那些最基础最底层的东西,即使是出现了新的框架也不必担心,因为大多数框架的设计都是大体相同的,了解了一种框架,结合基础知识去学习一个新框架就是小菜一碟了。要想掌握ORM框架,还是得先学习好底层的JDBC操作。

摘要:ORM(Object/Relation Mapping),即对象/关系数据库映射。ORM框架就是为了解决面向对象程序设计语言与关系型数据库之间“阻抗不匹配”而产生的,这种框架能将业务逻辑层和持久层有效分离,使两层之间以松耦合方式衔接起来,便于代码的维护。探讨了ORM框架的实现机制。

关键词:对象/关系映射,关系型数据库,阻抗不匹配,松耦合

参考文献

[1]夏昕,曹晓钢,唐勇.深入浅出Hibernate[M].北京:电子工业出版社,2005.

[2]张淑全.基于hibernate数据层设计模式的研究与实现[D].大连:大连海事大学,2007.

[3]何铮.对象/关系映射框架的研究与应用[J].计算机工程与应用,2003(6).

底层现代性的话语遮蔽 篇9

关于“现代性”, 虽然使用得非常多, 但其确切定义并不清晰。至于内在的含义以及所折射出的张力关系, 也没很好地理清, 甚至很多学者常常把它与“现代主义”, “现代化”等概念混淆。“尽管三者有一定联系, 却绝不能等同。一个概念之所以能够成立, 重要的恰恰是它自身的特质与差异性。现代化是一个动态的过程, 即‘成为现代的’之意, 它主要指人类走向现代性的过程, 侧重于科技、政治、经济等方面, 而‘现代性’指社会在现代化过程中出现的与现代化相适应的各种性质和状态, 侧重于生活方式、生存体验、道德伦理和精神价值等方面。而现代主义是西方以批判现代性的姿态出现的‘审美现代性’在文学艺术上的表现。” (1) 然而不管怎么说, 现代性的起缘与资本主义的产生是密切相关的, 它不仅预示社会化的组织结构发生转型, 而且是社会伦理、思想文化及知识体系发展到特定历史时期的表现。而中国有着悠久的历史文化传统, 当它与西方资本主义世界相遇时, 必然存在许多矛盾冲突以及磨合。在这个过程中, 它自始自终寻求自身的现代性道路。“自现代以来, 中国知识分子就在寻求追赶西方的现代性之路。开始是拒斥, 随后则是急迫追赶。这使中国与自身的历史, 与传统社会的关系趋于决裂。现代以来的中国一直为一种不断激进化的社会变革所支配, 社会的进步最终选择了暴力革命, 彻底推翻了传统的社会制度和秩序。很显然, ‘断裂’在中国的现代性发展中表现得更为突出和彻底。由此也就不难理解, 现代以来的中国历史中, 充满了那么多的结束和开始。一个时代结束, 另一个时代重新开始, 这不仅表现在大的社会变迁方面, 即使在那些阶段性的政治变动, 也经常被叙述为 (宣布为) 一个新的时代开始。急迫地抛弃过去, 与过去决裂, 追求变迁的速度, 以至于人们只有时刻生活在‘新的’状态中, 才能体会到社会的前进。这一切当然都导源于‘落后’的焦虑情结, 都来自渴求超越历史、迅速自我更新的理想。” (2) 因而, 这种现代焦虑深深地刻在每个人的内心, 渐渐成为一种生存的必须。对财富与欲望的追求也渐渐地合法化, 而且我们众多的传播媒体大多宣传的是“成功人士”、“中产阶级”、“白领阶层”的生活方式, 媒体主流都是建议人们如何消费得更奢华更体面更现代, 现代社会的人们无时无刻不受“金钱之上”的诱导, 笼罩在全球消费的网络中。可人们的精神极度空虚, 过去民间的天神玉皇大帝观音菩萨等被社会主义打倒了, 社会主义自造的“人神”又被现实攻破了。他们的精神世界里已没有一个高高在上的东西作为支撑, 拿来敬畏, 自身就成了唯一的信仰, 崇拜的偶像就只剩自己, 每个人都以为自己很自我。而在整个现代性的语境下, 证明自我的价值只有一个东西, 那就是金钱。美女只嫁给富翁, 审美完全金钱化;学生选择专业, 也只选毕业后能挣钱多的专业, 教育理念完全金钱化;就连买东西也应该只买名牌也就是说只买贵的, 让物品的价格决定了价值, 颠倒了是非。诚如上文所说, 每一个人都以为自己很自我, 实际上是丧失了自我, 成为金钱的俘虏。金钱成了大家的共同想象, 无论底层还是中上层, 都被集合在金钱之下, 金钱已经超越了时间和空间。这种金钱至上的观念, 到了九十年代, 在中国的大众媒体宣传下, 渐渐成为社会上一种占统治地位的“思想”。“它又逢迎和利用公众摆脱物质贫困的普遍欲望, 说除了眼前的物质利益, 其他一切都是空虚, 是文化人的胡诌, 都不妨‘去他妈的’;它全力为‘中国特色’的‘市场经济’鸣锣开道, 吆喝说这就是‘进步’, 就是‘发展’, 一切都很合理, 没有什么可怀疑的;它更着意抹平阶层、地区、政治、文化等等方面的深刻差异, 断定所有人都一齐正在奔向‘小康’, 每个人都有机会获得‘成功’;它时刻不忘记表白自己与旧意识形态的区别, 甚至披挂上形形色色的‘现代化’符号:‘市场’‘世俗化’‘消费时代’等等等等;它甚至有意夸大旧意识形态的社会影响力, 硬将那虚壳子继续按在‘主流意识形态’的座位上, 它因此能以‘民间’、‘边缘’自居, 甚至还想以‘前卫’‘另类’自诩;但它非常小心地绕开一切真正令人不快的问题:‘精神自由’‘公民权力’、普通人的生活保障、国家对社会的责任、新‘权力—资本’集团对社会的掠夺……” (3) 这种意识形态的后果是极其严重的, 仅对于底层来说, 其所处的地理空间和所占有的资源是非常有限的, 可是在这种意识的号召下, 即使出身底层的人, 也会无视或者说忘记这种差距, 努力地去“奋斗”去“拼搏”, 梦寐以求过上富人的生活, 甚至往往不择手段, 这样当然无可避免地产生了很多底层悲剧。甚至还会产生另一个更深层的悲剧, 那就是底层以外的人会产生思维定势, 理所当然地认为所有底层人都是这样的卑鄙这样的肮脏这样的可怕。这给他们歧视仇视敌视底层一个很好的借口, 这样就更恶化了底层的生存环境。山东作家尤凤伟的长篇小说《泥鳅》, 小说的名字就给人种种暗示, 似乎在诉说农民工这个群体的形象。小说中的蔡毅江当搬工被挤破命根到医院求治, 可一个原本可以得到救治的民工在诸多因素阴差阳错的作用下却丧失了治疗的良机, 最终丧失了性功能。文中的女医生黄群, 脱口而出“我见了你们这号人就犯恶心”, 直言不讳地表露了她对农民工所怀的深重偏见。更悲哀的是, 这种歧视是都市人普遍心态的一种折射。而我们的媒体, 还将底层苦难的原因简单化线条化单一化, 认为底层的苦就是贫穷, 底层就是没文化没素质不上进就是有“病”就是需要“启蒙”就是需要“教化”, 而且还很“崇高”地指出底层的出路就是“奋斗”就是“现代化”。可以说, 很少有人指出, 底层贫困的源头究竟在哪里, 底层到底有没有这种奋斗的资本。媒体对这种出路的渲染和上文所说的媒体宣传的全民金钱想象是如出一辙的, 而且一样都给底层带来了伤害。

二.底层话语权的遮蔽

中国的现实是不仅社会底层数目很庞大, 而且底层的苦难也是无穷无尽的。但是, 对占人口绝大多数的底层以及底层的苦难, 媒体大众基本都是视而不见的, 很少有媒体反映底层的生活, 更别提为他们如何生活得舒适幸福而出谋划策, 即使偶尔有对底层的反映, 也是被严格限制在一定范围之内的。媒体刻意抹杀社会阶层、地区、文化等方面的巨大差异, 同时也逃避当今权力和金钱在经济下的合谋的现实。“社会空间的政治性综合体被固定于传播的空间中, 这就是为什么传播工业已经取得如此的中心位置。传播不仅在新的规模上组织了生产, 并加上了适合全球空间的新结构, 传播也使生产的合理化理由成为内在的权力, 当它生产时, 它进行组织。当它组织时, 它陈述意见并将其自身表达为权威。语言, 当它沟通时, 它生产商品, 但此外还创造出各种主观性, 将主观性置于关系之中, 并安排它们。传播工业在生物政治的组织构造内整合了幻象与象征, 不仅使幻象与象征为权力服务, 也实际将它们整合入权力的作用之中。” (4) 一方面, 政府不喜欢太多的社会阴暗面被披露, 即使被披露, 政府也是以伸张正义者的身份存在。而对底层生存的艰难的报道, 也是以政府的深切关怀为闪光点。在这样的报道中, 媒体是展示政府为民做主实绩的平台, 而底层的艰难都只是陪衬, 媒体和底层都成了被利用的工具, 例如著名节目《焦点访谈》就是典型。另一方面, 对底层的报道没有市场, 是赚不到钱的。拥有众多财富的人, 他们花钱愿意消费的是帅哥美女饮食房产名车这样的新闻, 而不是关于苦难关于打工关于失学关于穷人治病难等类似的报道。可以说, 富人的“爱好”是社会的风向标。那么, 为底层说话, 效益是零还可能引起官司以及各种麻烦, 进而产生负的效益。

因而在这样一个大环境下, “在被金钱渗透的这个领域之外, 没有任何事物, 没有‘赤裸裸的生命’, 没有外部的观点能够被提出:没有事物能够逃离金钱。生产与再生产被披上了货币的外衣。事实上, 在全球的舞台上, 所有生物政治的形貌都是以货币的装束而出现的。‘积累, 积累!这就是摩西和先知!’” (5) 底层因为没有钱而成为社会的包袱, 理应被人踢来踢去, 大众媒体有充分理由放弃言说底层的权利。现代性话语的复杂却非常有效的意识形态, 让底层成了沉默的大多数, 这不得不使我们认识到底层叙述的困难与必要。

参考文献

[1]张光芒:《混沌的现代性》, 人民文学出版社2007年版, 第18页.

[2]陈晓明主编:《现代性与中国当代文学转型》, 云南人民出版社2003年版, 第10页.

[3]王晓明:《在新意识形态的笼罩下·导言》, 江苏文艺出版社2000年版, 第18页.

[4]迈克·哈特、安东尼奥·内格里著, 韦本、李尚远译《帝国》, 商周出版社2002年版, 第91页.

上一篇:客户满意策略下一篇:现代教学媒体