什么是软件架构?
当你去了解一个东东的时候,第一步要做的,就应该去知道这个东东的定义,对于软件架构也是如此,经过网上查询和书籍的帮助,我大概理清了一个轮廓。
软件行业是一个热衷于制造‘名词’的行业,如果退回15年,估计没几个人知道‘软件架构’是什么,在上个世纪80年代,随着软件开发的规模不断扩大,软件开发成为一个行业,初期,随之而来的是越来越多的软件项目的失败,造成项目失败的原因很多,但主要集中在开发过程,所以软件工程应运而生,CMMI等流程标准也是一茬接着一茬的冒个不停。
在软件工程初具规模的时候,软件开发还是以数据结构+算法的形式存在,进入20世纪最后10年,随着面向对象技术、设计模式等在开发过程中的成功应用,软件架构也走进了大家的视野。
软件架构在定义上分为‘组成派’和‘决策派’两大阵营,分别描述如下:
’组成派‘认为软件架构是将系统描述成计算组件及组件之间的交互
。它有两个非常明显的特点:
关注架构实践的客体——软件,以软件本身作为描述对象。
分析了软件的组成,说明软件不是一个‘原子’意义上的整体,而是有不同的部分经过特定的接口进行连接组成的一个整体,这对软件开发来说很重要。
‘决策派’认为
软件架构包含了一系列的决策
,主要包括:
软件系统的组织
选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为
用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合
软件架构并不仅仅关注软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解、经济以及技术的限制和权衡等。
‘决策派’有以下两个显著的特点:
关注软件架构中的实体——人,以人的决策为描述对象。
归纳了软件架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能性需求的决策。
按照‘组成派’的观点,软件架构关注的是软件整体的分割和交互,之所以分割,是因为不同的部分在逻辑或物理上相对独立,通过‘分而治之’的原则进行分割可以更好的理解整个系统,把握用户的需求,但是虽然整个软件可以分割成多个模块或子系统,但是模块和子系统之间的通信和交互也是很重要的,我想按照这种观点,架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。
按照‘决策派’的观点,软件是一个在很多限制下产生的产品,这些限制包括用户和技术两方面,用户方面包括功能需求、性能需求、硬件需求等,技术方面包括技术选择、可扩展性、可重用性、可维护性等。我想按照这中观点,架构师的主要任务就是作出上述个各种限制作出选择或决策。《软件架构设计》 温昱
什么叫间谍软件,如何查杀
网络上到处是鲜花,也时时面临陷阱,间谍软件则是这些陷阱中最具迷惑性的一种。间谍软件(英文名称为“spyware”)是一种能够在用户不知情的情况下偷偷进行安装(安装后很难找到其踪影),并悄悄把截获的一些机密信息发送给第三者的软件。
它的历史不长,在2002年底,PestPatrol安全公司就提供了一份有关间谍软件的报告,从其数量上的变化便可看出它的发展速度相当迅猛(如表)。可到2003年为止,间谍软件数量已超过了600种。
。
而到了现在,间谍软件已被更多的公司及个人利用,其目的也从初期的“单纯化”向“复杂化”发展,如直接盗取用户账号、密码等。
常用伎俩
没有人会喜欢时时处于他人的监控之下,因此这类间谍软件没有人自愿去进行安装,那么这些软件又是怎样在你的电脑中寄生下来的呢?它们一般采用以下三种方式:
一、软件捆绑、嵌套
软件捆绑方式是间谍软件采用得较多的一种,它通常和某实用软件放在一起,当用户在安装这款实用软件时,间谍软件便悄悄进行自动安装。这种“明修栈道,暗度陈仓”的方法非常容易让人放松警惕。
而对于嵌套有向第三方发送信息的间谍程序中还有一种更高超的手段,即一般都在使用许可协议的第N页或N行中给出了一些模糊的声明,这对于不去逐字逐句细看协议的用户来说,如果单击了“同意”或“接受”按钮,则表示同意了他们的做法,给他们安放间谍软件提供了冠冕堂皇的理由。
二、浏览网站
浏览一些不健康网站或一些黑客站点。当用户在访问这些站点或单击其中某些链接后,便会自动在你的浏览器或系统中安装上间谍程序。当你上网时,这些间谍程序便可让你的浏览器不定时地访问其站点,或者截获你的私人信息并发送给他人。
三、邮件发送
电子邮件向来就是一个易惹事非的地方,由于邮件的方便、快捷性,它同样也成了间谍软件抢夺的宝地。最近一家自称为情人间谍(LoverSpy)的公司推出了一种新方法,只需向对方发送一张含有该公司间谍程序的贺卡,对方阅读后便可让你轻松地监控他(她)的网上行踪。
如何防范
间谍软件和木马相比,具有更多的实现原理及方法,这也给反间谍软件的厂商带来了更多的困难。SpyBot的创造者Patrick Kolla在一次电子邮件会谈中这样表示:“间谍软件制造者们正在系统中寻找新的,隐蔽性更强的地方来达到他们的目标,对于任何反间谍软件来说,挑战在于同时升级探测机制和探测数据库。”
间谍软件与反间谍软件并不是矛与盾的关系,间谍软件是一个主导体,而反间谍软件总处于一种被动状态,国外有名的查杀间谍软件“Ad-aware 6”和“SpyBot Search & Destroy”(间谍软件的搜索与消灭)也只能在一定程序上对已知间谍程序进行查杀,因此怎样有效地防止已知的及未知的间谍软件侵害,这成了每位网络用户迫切想了解的事。
从一般用户能做到的方法来讲,要避免间谍软件的侵入,首先得从间谍软件寄生的三种途径入手:不去不健康的站点浏览;不到非正规的站点下载软件;不收阅陌生人发送的邮件。其次还可以安装防火墙对自己的系统进行监控预防,不定期地利用最新版本的反间谍软件进行搜索、查杀。
对于用户而言,防一般是很难成功做到的,于是健全的法律就成了他们的呼唤。可目前一些条文允许雇主监听雇员的商务往来,这为间谍软件的界定及相关法律的制定增加了难度。美国一些立法委员提出了打击间谍软件的立法建议及草案,但在国会的最后一个环节还是功亏一篑,投票未能通过。
在我国,有关间谍软件方面的法律条文也同样急需修改完善,这样有令才可止,有法才可依,也才能够更有力度地打击那些侵犯他人合法利益的活动,给网民们一个美好的网络环境。