OllyDebug

OD,软件名称,反汇编工具OD=OllyDebug,一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器,己代替SoftICE成为当今最为流行的调试解密工具了.同时还支持插件扩展功能,是目前最强大的调试工具。基本上,调试自己的程序因为有源码,一般用vc,破解别人的程序用OllyDebug。 配置: 有多达百余个选项用来设置 OllyDbg 的外观和运行。 数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCII、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。 帮助: 此文件中包含了关于理解和使用 OllyDbg 的必要的信息。如果您还有 Windows API 帮助文件的话(由于版权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函数的相关帮助。 启动: 您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。OllyDbg支持即时调试。OllyDbg根本不需要安装,可直接在软盘中运行! 调试DLLs: 您可以利用OllyDbg调试标准动态链接库 (DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。 源码级调试: OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。 代码高亮: OllyDbg 的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、 FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。 线程: OllyDbg 可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。 分析: OllyDbg 的最大特点之一就是分析。它会分析函数过程、循环语句、选择语句、表[tables]、常量、代码中的字符串、欺骗性指令[tricky constructs]、API调用、函数中参数的数目,import表等等。. 这些分析增加了二进制代码的可读性,减少了出错的可能性,使得我们的调试工作更加容易。 Object扫描 OllyDbg 可以扫描Object文件/库(包括 OMF 和 COFF 格式),解压代码段[code segments]并且对其位置进行定向。 Implib扫描 由于一些DLL文件的输出函数使用的索引号,对于人来说,这些索引号没有实际含义。如果您有与DLL相应的输入库[import library],OllyDbg 就可以将序号转换成符号名称。 完全支持Unicode: 几乎所有支持 ASCII 的操作同时也支持 UNICODE,反之亦然。 名称: OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。 已知函数: OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log 断点并可以对参数进行记录。 […]

龙生   18 Apr 2013
View Details

给网页设计师和前端开发者看的前端性能优化

如果不是不可能,你也很难拒绝承认性能目前已是任何正规网站项目的最关键方面之一,无论它是一个小型的网站组合,一个移动优先的web应用,一直到一个大规模的商业项目。研究,论文和个人体验都告诉我们快速是最好的。 性能不仅仅是非常重要,它也相当的有趣,而且这也是我越来越投入的事,不仅在工作方面(我一直在烦我们的首席性能工程师),也在项目与CSS魔法网站方面(我一直在烦Andy Davies)。 在这篇长文章中,我将分享收获,关于快速,简单且非常有趣的性能知识的点点滴滴,以便使你的行为可以像一个初级的网页设计师和前端开发者;希望对任何想开始学习性能的人,这篇文章可以成为一个正规的介绍,并使它们的前端变得超快。这些技巧是你能非常容易实现的。它只需要一点小技巧,以及一些浏览器怎样工作的基础知识,你就能开始玩转系统了! 这篇长帖子不会讲到模糊图像的加载和数据处理,取而代之的是有关理论与第一手的性能方面的技术资料,这些技术是我通过阅读,观察,搜集和整理获得的(我花费了许多时间沉浸于CSS魔法的瀑布图)。我也会链接到其它相似话题的文章,以便帮助强化一些关键要点。享受吧! 注意 本文需要预先知晓一些基础的性能知识,如果有任何你不熟悉的就Google搜索一下好了! 基础 顶部的Styles,底部的scripts 更少的请求 尽可能并行 HTTP 请求与 DNS查询 DNS 预取 资源预取 CSS与性能 压缩与简化 优化图像 精灵 视网膜图像 渐进的 JPGs 完全不用图片 进一步阅读 基础知识 关于性能,有一些知识在所有的设计师和前端开发者中广为传播。例如,尽可能少的请求,优化图片,把样式表(stylesheets)放在<head>, 把JS放在</body>之前, 最小化(minifying) JS 和 CSS 等等。这些基础知识已经被用来加快用户响应了,但还有更多更多需要学习。 虽然在我们每天的工作生活中,浏览器给我们制造麻烦,使我们头疼,但请记住,他们也是很聪明的; 它们为我们做了很多性能优化工作, 所以大量的性能调优知识不但要知道浏览器在哪里给我们做了优化,还要知道怎么更好的挖掘它们。大量性能调优诀窍只是理解,利用和操纵浏览器已经替我们做好的优化工作。 顶部的Styles, 底部的scripts 这真的是一条基本规则,每个人都能非常容易的在大多数时间遵守,但为什么它重要?简短的说: CSS 块渲染, 因此你需要立即处理它(即在文档的顶部,在你的<head>之中)。 JS 块下载, 因此你需要最后处理它们,以确保它们没有耽误页面中任何其它东西。 CSS块渲染是因为浏览器总是试图渐进式的渲染页面;它们想在元素到达的时候顺序的渲染它。如果style在距离很远的页面下部,浏览器在获得它之前没有办法渲染那个CSS。因为这个原因,如果浏览器在渲染文档过程中,改变了之前渲染的东西,它们可以避免style的重绘。浏览器在它获得所有需要的style信息之前不会渲染页面,如果你将style放在文档底部,你就是在使浏览器等待,阻塞了渲染。 所以,只要你将CSS放在页面的顶部,那么浏览器就可以立刻开始渲染。 JavaScript块下载是由于好几个原因(这又是浏览器聪明之处),但首先我们需要知道浏览器里的资源下载是如何实际发生的;简单的说,浏览器会从一个单一的域名并行的尽可能多的下载资源。它从越多的域名下载,就能在一瞬间并行的获得更多的资源。 JavaScript中断了这个过程,阻塞了从任何一个域名的并行的下载,因为: 被调用的脚本可能改变页面,即浏览器在继续别的事情以前,将不得不处理它。因此为了处理那个不测事件,浏览器停止了任何其它东西的下载,以便集中精力关注于它。 脚本正常工作经常需要依照一定的顺序加载,例如,要在加载一个插件之前加载jQuery。浏览器阻止了JavaScript的并行下载,因此它不会同时下载jQuery和你的插件;很显然如果你同时并行下载二者,你的插件会在jQuery之前到达。 所以,由于浏览器在获取JavaScript的时候停止了所有其他下载,将你的JavaScript脚本放在文档中尽可能晚加载的地方是一个好主意。我相信你们都看到过页面中的空白片段,在那里第三方的JS脚本被花时间加载,并且它还阻止了页面其他资源的获取和渲染;这就是JavaScript的阻塞在作用了。 但是显然,现代浏览器还是变得聪明了。我将给你一个Andy Davies寄给我的电子邮件的摘录,因为他解释的比我清楚: 现代浏览器将并行下载JS,只有在脚本被执行的时候阻塞渲染(显然脚本必须也被下载了)。 脚本下载常常被浏览器的预加载器所完成。 当浏览器页面渲染被阻塞,即等待CSS,或JS被执行,预分析器将扫描页面剩余部分,寻找它能下载的资源。 有些浏览器如 Chrome, 将分先后下载资源,例如,如果脚本与图片同时在等待下载,它将先下载脚本。 漂亮的内容! 所以,要使页面被尽可能快的渲染,将styles放在顶部。为了阻止JS的阻塞影响到渲染,将scripts放在底部。 更少的请求 另一个明显而基本的性能优化方法是少下载。页面需要的每一个资源就是一次额外的HTTP请求;浏览器不得不停下来去获取每一个用于渲染页面所需的资源。每一次HTTP请求都可能引发DNS查询,重定向,404,等等。每一次HTTP请求,无论为了样式表,图片,web字体,JS文件还是其它你能想到的,都可能是一次非常昂贵的操作。尽量减少这些请求是你可以做的最快的优化方法中的一种. 再谈到浏览器和并行;大多数浏览器一次只从每个引用的域下载一些资源,而JS会阻塞这些下载。所以,你做的每一个HTTP请求都应该仔细考虑,而不是随便随便做的。 尽可能并行 为了让浏览器能并行的下载更多资源,你可以由不同的域名提供服务。如果说,浏览器只能一次从一个域名获取两个资源,那么由两个域名提供服务意味着它可以一次性获取四个资源;三个域名意味着六个并行下载。 许多网站有静态/资源 域名;你可以发现, Twitter, 用 si0.twimg.com 来做静态资源:

Facebook 用fbstatic-a.akamaihd.net:

通过这些静态的资源域名, Twitter与Facebook能提供更多的并行资源服务;来自twitter.com和si0.twimg.com的资源可以协作方式下载。这真的是使你的页面上获得更多并发下载的简单方法,如果再加上实际的CDN技术就会更好,CDN技术通过从一个更加合适的物理位置提供资源服务的方法来减少延迟。 这全部都很好,但后面我们将讨论在特定环境下,怎样从子域名提供服务却会实际上对性能有害。 因此,现在有了我们关于性能的基础知识: 将样式表放在文档的顶部 将JavaScript放在底部(可能的地方) 尽可能减少HTTP请求 从多个域名提供资源服务能增加浏览器并行下载的资源数量。 HTTP 请求与 […]

龙生   16 Apr 2013
View Details

你是一个工资太低的程序员吗?

我通过邮件和很多你们这些读者进行过交流,谈论程序员的生活状态。这些交流几乎都伴随着一个相同的主题。你是一个工资太低的程序员吗?如果你真打算问自己,那这答案几乎就是“是的”。 我们这里说的工资太低是考虑钱的方面。我们没有涉及到你从工作中获得了多少乐趣,或从工作中学到了多少知识。人们都想知道,跟其他程序员比起来自己的收入水平如何。然而,你总能找到一个比你挣得更多的人。事实上,几乎所有的程序员都是工资拿的偏低。 工资太低:普通公司程序员的情况 平均工资水平 信息来源: Riviera Partners 给公司打工,你永远都是工资太低。你应聘工作时他们永远都是低估你。他会想办法让你的讨价还价过程痛苦不堪。这是一种专门设计的社会体系,永远让你得到的报酬低得刚好不超过你的忍受极限。 出于一些目的,公司希望员工能对自己的工资水平保守秘密。所以,你不知道和你的技术水平差不多的人(或不如你的人)比你拿的工资多。总有这样的人。 甚至收入最高的程序员(年薪15-17万美元)也会大为吃惊于自由工作者的高收入。这会让你认识到你在公司的工作基本上就是做苦工。 工资太低:自由职业程序员的情况 各地程序员每小时报酬 信息来源: grouptalent.com 你就是一个被雇佣的枪手,别人给钱,你去干事。所以你可以为自己标上很高的价签。即使你的每小时的收费高达数百美元,仍然会有大批的程序员知道如何挣得比你还要多。他们的收入潜力不受他们工作工时的限制。 收入最高的自由程序员知道如何依据他们给公司生意上带来的价值来收取报酬。如果你能让客户相信他们诱人的前景,他们会毫不犹豫的答应你任何想要的价格。他们开发这个项目支付给你的钱,相比起他们能从这种业务上挣得的钱,九牛一毛。 我曾经看到过这样的程序员轻松的从自由职业上获得每年25万-50万美元的收入。 获得更高工资最大的障碍是你自己 一些程序员经过跟我的交谈认识到了他们的工资太低,想改变这种情况。而最常用的办法就是获得更多的编程技能——如果你是前端程序员,那就学习后端编程,反之亦然,或者学习一些新的技术,比如Node.js。本质上讲,一个程序员永远都有可能通过进一步的学习挣到更多的钱。 然而,工资太低的感觉永远不会消失。编程是一种学无止境的工作。唯一你阻挡你挣更多钱的东西是你自己。行动起来,保持上进心,你就能得到你想要的。不要害怕,不要等待,不要以为你够资格后老板会主动给你涨工资。这一天你永远等不到。 你是一个工资太低的程序员吗? [英文原文:Are you an underpaid developer? ] 转自:http://www.oschina.net/news/39609/are-you-an-underpaid-developer

龙生   16 Apr 2013
View Details

25个必须记住的SSH命令

OpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。此外,OpenSSH提供了安全隧道功能和多种身份验证方法,支持SSH协议的所有版本。 SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。 (注:有些内容较长的命令,在本文中会显示为截断的状态。如果你需要阅读完整的命令,可以把整行复制到您的记事本当中阅读。) 1、复制SSH密钥到目标主机,开启无密码SSH登录

如果还没有密钥,请使用ssh-keygen命令生成。 2、从某主机的80端口开启到本地主机2001端口的隧道

现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。 3、将你的麦克风输出到远程计算机的扬声器

这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。 4、比较远程和本地文件

在比较本地文件和远程文件是否有差异时这个命令很管用。 5、通过SSH挂载目录/文件系统

从http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。 6、通过中间主机建立SSH连接

Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接。 7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法

8、直接连接到只能通过主机B连接的主机A

当然,你要能访问主机A才行。 9、创建到目标主机的持久化连接

在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用:

所有到目标主机的SSH连接都将使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),这个命令将非常有用,因为每次打开一个SSH连接时不会创建新的套接字。 10、通过SSH连接屏幕

直接连接到远程屏幕会话(节省了无用的父bash进程)。 11、端口检测(敲门)

在一个端口上敲一下打开某个服务的端口(如SSH),再敲一下关闭该端口,需要先安装knockd,下面是一个配置文件示例。

12、删除文本文件中的一行内容,有用的修复

在这种情况下,最好使用专业的工具。 13、通过SSH运行复杂的远程shell命令

更具移植性的版本:

14、通过SSH将MySQL数据库复制到新服务器

通过压缩的SSH隧道Dump一个MySQL数据库,将其作为输入传递给mysql命令,我认为这是迁移数据库到新服务器最快最好的方法。 15、删除文本文件中的一行,修复“SSH主机密钥更改”的警告

16、从一台没有SSH-COPY-ID命令的主机将你的SSH公钥复制到服务器

如果你使用Mac OS X或其它没有ssh-copy-id命令的*nix变种,这个命令可以将你的公钥复制到远程主机,因此你照样可以实现无密码SSH登录。 17、实时SSH网络吞吐量测试

通过SSH连接到主机,显示实时的传输速度,将所有传输数据指向/dev/null,需要先安装pv。 如果是Debian:

如果是Fedora:

(可能需要启用额外的软件仓库)。 18、如果建立一个可以重新连接的远程GNU screen

人们总是喜欢在一个文本终端中打开许多shell,如果会话突然中断,或你按下了“Ctrl-a d”,远程主机上的shell不会受到丝毫影响,你可以重新连接,其它有用的screen命令有“Ctrl-a c”(打开新的shell)和“Ctrl-a a”(在shell之间来回切换),请访问http://aperiodic.net/screen/quick_reference阅读更多关于screen命令的快速参考。 19、继续SCP大文件

它可以恢复失败的rsync命令,当你通过VPN传输大文件,如备份的数据库时这个命令非常有用,需要在两边的主机上安装rsync。

20、通过SSH W/ WIRESHARK分析流量

使用tshark捕捉远程主机上的网络通信,通过SSH连接发送原始pcap数据,并在wireshark中显示,按下Ctrl+C将停止捕捉,但也会关闭wireshark窗口,可以传递一个“-c #”参数给tshark,让它只捕捉“#”指定的数据包类型,或通过命名管道重定向数据,而不是直接通过SSH传输给wireshark,我建议你过滤数据包,以节约带宽,tshark可以使用tcpdump替代:

21、保持SSH会话永久打开

打开一个SSH会话后,让其保持永久打开,对于使用笔记本电脑的用户,如果需要在Wi-Fi热点之间切换,可以保证切换后不会丢失连接。 […]

龙生   15 Apr 2013
View Details

6 个开源的大数据文件系统

大数据在今天吸引了大量关注,个人、企业和政府机构之间的互动创造了数据的海洋,通过有效识别、访问、筛选和分析其中部分数据能带来新的见解和益处。大数据需要大量的储存空间,先进的存储基础设施必不可少,需要能在多台服务器上伸缩自如的存储解决方案。有许多优秀的开源文件系统能用于深入分析大数据,其中包括: QFS Quantcast File System (QFS) 是一个高性能、容错、分布式的文件系统,其开发是用于支持 MapReduce 处理或者需要顺序读写大文件的应用。 HDFS Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low- cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。HDFS开始是为开源的apache项目nutch的基础结构而创建,HDFS是hadoop项目的一部分,而 hadoop又是lucene的一部分。 Ceph Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。2010年3 月,Linus Torvalds将Ceph client合并到内 核2.6.34中。IBM开发者园地的一篇文章探讨了Ceph的架构,它的容错实现和简化海量数据管理的功能。 Lustre Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。 该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。 GlusterFS GlusterFS 是一个集群的文件系统,支持 PB 级的数据量。GlusterFS 通过 RDMA 和 TCP/IP 方式将分布到不同服务器上的存储空间汇集成一个大的网络并行文件系统。 PVFS PVFS 是一个高性能、开源的并行文件系统,主要用于并行计算环境中的应用。特别为超大数量的客户端和服务器端设计。模块化结构设计,可轻松的添加新的硬件和算法支持。 PVFS 侧重高性能访问大数据集,包含一个服务器进程和客户端开发库,完全基于用户级代码编写。 特征: 基于对象的设计思路 Optimized for regular strided access 独立数据和元数据的存储 优化的 MPI-IO 支持 多种网络支持 无状态的服务器 用户级的实现方案 系统级接口 可在很多 Linux 版本上构建 支持多数平台,包括 IA32, IA64, Opteron, PowerPC, Alpha, and MIPS 转自:http://www.oschina.net/news/39605/4-opensource-big-data-file-systems

龙生   15 Apr 2013
View Details

Diagram Designer

Diagram Designer 这个矢量图像编辑筹建流程图,图表和滑动展览。包括一个可定制的样板及调色板,简单的图绘图仪。支持使用压缩的文件格式。 Diagram Designer 是一款小巧易用的流程图工具,如果你对于流程图没有特殊的要求,那么这款小软件足够满足你的需求,最重要的是它完全免费。 软件的界面相当直观,你不需要手动绘制任何相框,因为在界面右侧已经为你提供了所有常用的线框选择,包括方框、菱形框、多边形框、箭头、文本框、数据库等等。直接用鼠标拖动,就能将其添加到画布上。软件支持端点自动对准,使画出的图像更规范。任意线框都支持直接鼠标拖放修改大小,双击可修改文字,右键菜单可提供旋转、图层等更多编辑选项。所有添加的项目会自动以目录的方式显示在左侧,并根据显示在线框上的文字命名,方便你直接选取。此外,软件还提供了 拼写检查、数学公式、高级计算器等实用的小工具。不过 Diagram Designer 也有不足之处,尤其在字体的修改上非常不方便,必须通过代码的方式进行设置。Diagram Designer 为你提供了 MS Visio 之外的选择,如果你要画的流程图并不复杂——只需要一些多边形线框等,那么这完全是一款不错的工具。Diagram Designer 支持以下格式:WMF, EMF, BMP, JPEG, PNG, MNG, ICO, GIF, PCX

龙生   13 Apr 2013
View Details

生命就像从高空下落

生命就像从高空下落,却没有降落伞,落下就是死亡; 你唯一能做的就是享受这短暂的过程,苦中作乐; 你可以用意念和思想把这短暂放大,拉伸; 你可以让生活看似很有意义,真的; 这意义也只有你能体会到; 你的结果只有一个; 那就是死亡。 如果结果是这样,你为何还要恐惧? 你为何不为爱的一切全力以赴? 创造些许的辉煌; 留于世间; 代表你——曾存在过。

龙生   12 Apr 2013
View Details

SpaceBuilder4.0数据库说明(部分)

spb_Announcements 公告表 Id 自动编号 Subject 主题 SubjectStyle 主题样式 Body 公告主体(可选) IsHyperLink 是否链接 HyperLinkUrl 链接URI(只有当IsHyperLink为1时才有效) EnabledDescription 是否启用描述(当 此项为1时,body 才可输入内容) ReleaseDate 发布日期 ExpiredDate 失效日期 LastModified 更新日期 CreateDate 入库日期 UserId 用户Id(公告发布者) DisplayOrder 显示排序 DisplayArea 显示区域(如频道、用户中心) spb_BarPosts 贴吧-回复表 spb_BarRatings spb_BarSectionManagers spb_BarSections 贴吧-吧表 spb_BarThreads 贴吧-帖子表

龙生   12 Apr 2013
View Details

工作流

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 概述 工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的河水就是待审核的表单。 工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。 许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。 定义 工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。尽管工作流从产生到现在已经取得了相当的成就,但对工作流的定义还没有能够统一和明确,不同学者从不同角度对工作流做出了不同的定义。 Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。 IBM Almaden Research Center将工作流定义为:工作流是经营过程的一种计算机化的表示模式,定义了完成整个过程需要的所有参数;这些参数包括对过程中每一个步骤的定义、步骤的执行顺序和条件、步骤由谁负责以及每个活动所需要的应用程序等。 1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。 工作流从英文单词workflow而来,是工作work和流动flow的组合,是一种能够被计算机解释和执行的反映经营过程业务流动的计算机化模型。 起源和发展 工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。 工作流参考模型 1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。 进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年8月,第一个工作流技术标准化的工业组织——工作流管理联盟(Workflow Management Coalition,简称WFMC,下同)成立。 1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技术走向成熟。 发展历史 工作流技术发端于1970年代中期办公自动化领域的研究工作,但工作流思想的出现还应该更早,1968年Fritz Nordsieck就已经清楚地表达了利用信息技术实现工作流程自动化的想法。1970年代与工作流有关的研究工作包括:宾夕法尼亚大学沃顿学院的Michael D. Zisman开发的原型系统SCOOP,施乐帕洛阿尔托研究中心的Clarence A. Ellis和Gary J. Nutt等人开发的OfficeTalk系列试验系统,还有Anatol Holt和Paul Cashman开发的ARPANET上的“监控软件故障报告”程序。SCOOP, Officetalk和Anatol Holt开发的系统都采用Petri网的某种变体进行流程建模。其中SCOOP和Officetalk系统,不但标志着工作流技术的开始,而且也是最早的办公自动化系统。 1970年代人们对工作流技术充满着强烈乐观情绪,研究者普遍相信新技术可以带来办公效率的巨大改善,然而这种期望最终还是落空了。人们观察到这样一种现象,一个成功的组织往往会在适当的时候创造性的打破标准的办公流程;而工作流技术的引入使得人们只能死板的遵守固定的流程,最终导致办公效率低和人们对技术的反感。1970年代工作流技术失败的技术原因则包括:在办公室使用个人计算机尚未被社会接受,网络技术还不普遍,开发者还不了解群件技术的需求与缺陷。 含有工作流特征的商用系统的开发始于1983年至1985年间,早期的商用系统主要来自于图像处理领域和电子邮件领域。图像处理许多时候需要流转和跟踪图像,工作流恰好迎合这种需求;增强的电子邮件系统也采用了工作流的思想,把原来点对点的邮件流转改进为依照某种流程来流转。在这些早期的工作流系统中只有少数获得了成功。 进入1990年代以后,相关的技术条件逐渐成熟,工作流系统的开发与研究进入了一个新的热潮。据调查,截至1995年共有200多种软件声称支持工作流管理或者拥有工作流特征。工作流技术被应用于电讯业、软件工程、制造业、金融业、银行业、科学试验、卫生保健领域、航运业和办公自动化领域。 1993年8月,工作流技术标准化的工业组织-工作流管理联盟(WfMC)成立。 1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。 关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来,人们从工作流模型、体系结构、事务、适应性、异常、安全、语言、形式化、正确性验证、资源管理、开发过程等各方面对工作流技术进行探讨,大量论文被撰写出来。 尽管工作流技术取得了进步,但理论基础的研究还很不够。现有的工作流管理系统从功能、可靠性、健壮性上与数据库管理系统无法相提并论。 进入2000年以后,随着Web服务技术的兴起,多个标准化组织制定了各自和工作流技术相关的Web服务标准,如XLANG,WSFL等。 2002年8月,IBM,Microsoft为等企业联合提交并发布了BPEL规范。 工作流 – 特点 1.图形化、可视化设计流程图 2.支持各种复杂流程 3.组织结构级处理者指定功能 4.B/S结构,纯浏览器应用 5.强大的安全性特色 6.表单功能强大,扩展便捷 7.灵活的外出、超时管理策略 8.处理过程可跟踪、管理 9.丰富的统计、查询、报表功能 10.与MAIL系统集成 适用行业 消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。 具体应用 1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等  工作流的具体应用图例(营销工作报告流程) 2.行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。 3.人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。 4.财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。 5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。 6.特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。 工作流与重规划 从逻辑上,对工作流的关注和研究可以看作是对业务过程重规划(BPR)的一种深化。BPR的观点,要求我们将眼光投向实际业务进行的过程,但这个过程应当是什么样的,怎样分析、构造?工作流就是一个具体的、操作性的答案,它可以令我们从神秘的、难以预测和控制的“头脑风暴式”的“艺术的”业务过程创造,变成解析的、技术的、可控制和预测的工程化过程,如此,才真正体现出re-engineering中engineering的意义。 工作流与BPR的概念,已经被几乎所有的研究者联系在一起研究和应用。在这个领域有一个非常活跃的组织,即国际工作流与重规划协会(Workflow And Reengineering International Association, WARIA)。 与企业工程 无论从理论、方法上,还是对象、内容上,我们都有理由将“工作流”看作是企业工程的一部分。实际上,已有的关于工作流体系的描述,本身就是一个通用的业务模型框架。仅仅有工作流是不够的,必须对整个体系的目标及所有相关要素综合考虑——这正是企业工程。 与IT应用体系 与以往已经被采用的企业IT应用体系,例如MRPII或ERP相比,WFMS是一个相当重要的里程碑。从用户的角度,WFMS带来(或将要带来)的变化是极其强烈的,甚至可以形容为一种用户“梦想”的实现。 在一些老的“模块化”的产品中,系统的设计是通常是基于任务分割的,作业项目之间是分裂的。面向对象的技术,并不能直接解决这个的问题,相反,往往使系统变得更加混乱和琐碎。从操作上,典型地,我们必须不断地在层次结构的功能表(比如下拉菜单)或对象之间“进进退退”,或者在“神出鬼没”的对象以及相关菜单中捉迷藏。 工作流管理系统是一个真正的“人-机”系统,用户是系统中的基本角色,是直接的任务分派对象,他或她可以直接看到电脑针对自己列出的“任务清单”,跟踪每一项任务的状态,或继续一项任务,而不必从一个模块退出,进入另一个模块,搜索相应任务的线索。前者是面向功能或对象的,而后者是直接面向用户的。这样,用户的任务分派和任务的完成状态,可以被最大程度地电脑化和受到控制。 现在的典型工作流产品是客户-服务软件。而日益增长的重要途径是通过万维网界面,它可以令客户或远程的职员更好地参与。工作流的定义经常是借助于图形化工具,依照业务过程实例的情况定义相应工作的安排。 […]

龙生   12 Apr 2013
View Details

Apache和php 隐藏头信息

一、apacheapache 的 httpd.conf 有两个配置可以控制是否显示服务器信息给用户。ServerTokensServerSignature默认条件下会把apache版本 系统 模块都显示出来 (HTTP 返回头)设置为:ServerTokens ProductOnlyServerSignature Off就隐藏Apache的Apache Version信息。还有如果列举目录的话 会显示域名信息(文件列表正文)如果不想要就可以调这两个参数ServerTokensServerSignatureServerSignature On|Off|EmailServerTokens Minimal|ProductOnly|OS|FullServerTokens Prod[uctOnly]Server sends (e.g.): Server: ApacheServerTokens Min[imal]Server sends (e.g.): Server: Apache/1.3.0ServerTokens OSServer sends (e.g.): Server: Apache/1.3.0 (Unix)ServerTokens Full (or not specified)ServerSignature控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。可在全局设置文件中控制,或是通过.htaccess文件控制默认为”off”(ServerSignature Off),有些Linux发行版本可能会打开这个阀门,比如Debian在默认的虚拟主机上默认将这个阀门设置为开放全局阀门的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,所以,必须确保这样的事情不应该发生可用的阀值为下面所示:Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)EMail: 创建一个发送给ServerAdmin的”mailto”二、隐藏 PHP 版本php.iniexpose_php On改成expose_php Off重启apache后,php版本在http头中隐藏了。三、ServerTokens 指令说明: 配置服务器HTTP回应头语法: ServerTokens Major|Minor|Minimal|ProductOnly|OS|Full默认值: ServerTokens Full上下文: 服务器配置状态: 核心模块: core此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息。ServerTokens ProductOnly服务器会发送(比如说):Server:ApacheServerTokens Major服务器会发送(比如说):Server:Apache/2ServerTokens Minor服务器会发送(比如说):Server:Apache/2.0ServerTokens Min[imal]服务器会发送(比如说):Server:Apache/2.0.41ServerTokens OS服务器会发送(比如说):Server: Apache/2.0.41 (Unix)ServerTokens Full (or not specified)服务器会发送(比如说):Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2此设置将施用与整个服务器,而且不能在虚拟主机的管理层次上予以启用或禁用。ServerSignature 指令说明: 配置服务器生成页面的页脚语法: ServerSignature On|Off|EMail默认值: ServerSignature Off上下文: 服务器配置, 虚拟主机, 目录, .htaccess覆盖项: All状态: 核心模块: coreServerSignature指令允许您配置服务器端生 成文档的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)。您启用这个页脚的原因主要在于处于一个代理服务器链中的时候,用户基本无法辨识出究竟是链中的哪个服务器真正产生了返回的错误信息。默认的Off设定没有错误行(这样便与Apache 1.2及更旧版本兼容)。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会如文档中说明的那样额外创建一个指向ServerAdmin的”mailto:”部分。 转自:http://www.douban.com/note/243308080/

龙生   12 Apr 2013
View Details
1 356 357 358 410