我通过邮件和很多你们这些读者进行过交流,谈论程序员的生活状态。这些交流几乎都伴随着一个相同的主题。你是一个工资太低的程序员吗?如果你真打算问自己,那这答案几乎就是“是的”。 我们这里说的工资太低是考虑钱的方面。我们没有涉及到你从工作中获得了多少乐趣,或从工作中学到了多少知识。人们都想知道,跟其他程序员比起来自己的收入水平如何。然而,你总能找到一个比你挣得更多的人。事实上,几乎所有的程序员都是工资拿的偏低。 工资太低:普通公司程序员的情况 平均工资水平 信息来源: 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
View DetailsOpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。此外,OpenSSH提供了安全隧道功能和多种身份验证方法,支持SSH协议的所有版本。 SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。 (注:有些内容较长的命令,在本文中会显示为截断的状态。如果你需要阅读完整的命令,可以把整行复制到您的记事本当中阅读。) 1、复制SSH密钥到目标主机,开启无密码SSH登录
1 |
ssh-copy-id user@host |
如果还没有密钥,请使用ssh-keygen命令生成。 2、从某主机的80端口开启到本地主机2001端口的隧道
1 |
ssh -N -L2001:localhost:80 somemachine |
现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。 3、将你的麦克风输出到远程计算机的扬声器
1 |
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp |
这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。 4、比较远程和本地文件
1 |
ssh user@host cat /path/to/remotefile | diff /path/to/localfile – |
在比较本地文件和远程文件是否有差异时这个命令很管用。 5、通过SSH挂载目录/文件系统
1 |
sshfs name@server:/path/to/folder /path/to/mount/point |
从http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。 6、通过中间主机建立SSH连接
1 |
ssh -t reachable_host ssh unreachable_host |
Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接。 7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法
1 |
ssh-copy-id username@hostname |
8、直接连接到只能通过主机B连接的主机A
1 |
ssh -t hostA ssh hostB |
当然,你要能访问主机A才行。 9、创建到目标主机的持久化连接
1 |
ssh -MNf <user>@<host> |
在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用:
1 2 3 |
Host host ControlPath ~/.ssh/master-%r@%h:%p ControlMaster no |
所有到目标主机的SSH连接都将使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),这个命令将非常有用,因为每次打开一个SSH连接时不会创建新的套接字。 10、通过SSH连接屏幕
1 |
ssh -t remote_host screen –r |
直接连接到远程屏幕会话(节省了无用的父bash进程)。 11、端口检测(敲门)
1 |
knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000 |
在一个端口上敲一下打开某个服务的端口(如SSH),再敲一下关闭该端口,需要先安装knockd,下面是一个配置文件示例。
1 2 3 4 5 6 7 8 9 10 11 12 |
[options] logfile = /var/log/knockd.log [openSSH] sequence = 3000,4000,5000 seq_timeout = 5 command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 5000,4000,3000 seq_timeout = 5 command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn |
12、删除文本文件中的一行内容,有用的修复
1 |
ssh-keygen -R <the_offending_host> |
在这种情况下,最好使用专业的工具。 13、通过SSH运行复杂的远程shell命令
1 |
ssh host -l user $(<cmd.txt) |
更具移植性的版本:
1 |
ssh host -l user “`cat cmd.txt`” |
14、通过SSH将MySQL数据库复制到新服务器
1 |
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME” |
通过压缩的SSH隧道Dump一个MySQL数据库,将其作为输入传递给mysql命令,我认为这是迁移数据库到新服务器最快最好的方法。 15、删除文本文件中的一行,修复“SSH主机密钥更改”的警告
1 |
sed -i 8d ~/.ssh/known_hosts |
16、从一台没有SSH-COPY-ID命令的主机将你的SSH公钥复制到服务器
1 |
cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys” |
如果你使用Mac OS X或其它没有ssh-copy-id命令的*nix变种,这个命令可以将你的公钥复制到远程主机,因此你照样可以实现无密码SSH登录。 17、实时SSH网络吞吐量测试
1 |
yes | pv | ssh $host “cat > /dev/null” |
通过SSH连接到主机,显示实时的传输速度,将所有传输数据指向/dev/null,需要先安装pv。 如果是Debian:
1 |
apt-get install pv |
如果是Fedora:
1 |
yum install pv |
(可能需要启用额外的软件仓库)。 18、如果建立一个可以重新连接的远程GNU screen
1 |
ssh -t user@some.domain.com /usr/bin/screen –xRR |
人们总是喜欢在一个文本终端中打开许多shell,如果会话突然中断,或你按下了“Ctrl-a d”,远程主机上的shell不会受到丝毫影响,你可以重新连接,其它有用的screen命令有“Ctrl-a c”(打开新的shell)和“Ctrl-a a”(在shell之间来回切换),请访问http://aperiodic.net/screen/quick_reference阅读更多关于screen命令的快速参考。 19、继续SCP大文件
1 |
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file |
它可以恢复失败的rsync命令,当你通过VPN传输大文件,如备份的数据库时这个命令非常有用,需要在两边的主机上安装rsync。
1 |
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote |
或
1 |
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local |
20、通过SSH W/ WIRESHARK分析流量
1 |
ssh root@server.com ‘tshark -f “port !22″ -w -' | wireshark -k -i – |
使用tshark捕捉远程主机上的网络通信,通过SSH连接发送原始pcap数据,并在wireshark中显示,按下Ctrl+C将停止捕捉,但也会关闭wireshark窗口,可以传递一个“-c #”参数给tshark,让它只捕捉“#”指定的数据包类型,或通过命名管道重定向数据,而不是直接通过SSH传输给wireshark,我建议你过滤数据包,以节约带宽,tshark可以使用tcpdump替代:
1 |
ssh root@example.com tcpdump -w – ‘port !22′ | wireshark -k -i – |
21、保持SSH会话永久打开
1 |
autossh -M50000 -t server.example.com ‘screen -raAd mysession’ |
打开一个SSH会话后,让其保持永久打开,对于使用笔记本电脑的用户,如果需要在Wi-Fi热点之间切换,可以保证切换后不会丢失连接。 […]
View Details大数据在今天吸引了大量关注,个人、企业和政府机构之间的互动创造了数据的海洋,通过有效识别、访问、筛选和分析其中部分数据能带来新的见解和益处。大数据需要大量的储存空间,先进的存储基础设施必不可少,需要能在多台服务器上伸缩自如的存储解决方案。有许多优秀的开源文件系统能用于深入分析大数据,其中包括: 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
View DetailsDiagram Designer 这个矢量图像编辑筹建流程图,图表和滑动展览。包括一个可定制的样板及调色板,简单的图绘图仪。支持使用压缩的文件格式。 Diagram Designer 是一款小巧易用的流程图工具,如果你对于流程图没有特殊的要求,那么这款小软件足够满足你的需求,最重要的是它完全免费。 软件的界面相当直观,你不需要手动绘制任何相框,因为在界面右侧已经为你提供了所有常用的线框选择,包括方框、菱形框、多边形框、箭头、文本框、数据库等等。直接用鼠标拖动,就能将其添加到画布上。软件支持端点自动对准,使画出的图像更规范。任意线框都支持直接鼠标拖放修改大小,双击可修改文字,右键菜单可提供旋转、图层等更多编辑选项。所有添加的项目会自动以目录的方式显示在左侧,并根据显示在线框上的文字命名,方便你直接选取。此外,软件还提供了 拼写检查、数学公式、高级计算器等实用的小工具。不过 Diagram Designer 也有不足之处,尤其在字体的修改上非常不方便,必须通过代码的方式进行设置。Diagram Designer 为你提供了 MS Visio 之外的选择,如果你要画的流程图并不复杂——只需要一些多边形线框等,那么这完全是一款不错的工具。Diagram Designer 支持以下格式:WMF, EMF, BMP, JPEG, PNG, MNG, ICO, GIF, PCX
View Details生命就像从高空下落,却没有降落伞,落下就是死亡; 你唯一能做的就是享受这短暂的过程,苦中作乐; 你可以用意念和思想把这短暂放大,拉伸; 你可以让生活看似很有意义,真的; 这意义也只有你能体会到; 你的结果只有一个; 那就是死亡。 如果结果是这样,你为何还要恐惧? 你为何不为爱的一切全力以赴? 创造些许的辉煌; 留于世间; 代表你——曾存在过。
View Detailsspb_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 贴吧-帖子表
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带来(或将要带来)的变化是极其强烈的,甚至可以形容为一种用户“梦想”的实现。 在一些老的“模块化”的产品中,系统的设计是通常是基于任务分割的,作业项目之间是分裂的。面向对象的技术,并不能直接解决这个的问题,相反,往往使系统变得更加混乱和琐碎。从操作上,典型地,我们必须不断地在层次结构的功能表(比如下拉菜单)或对象之间“进进退退”,或者在“神出鬼没”的对象以及相关菜单中捉迷藏。 工作流管理系统是一个真正的“人-机”系统,用户是系统中的基本角色,是直接的任务分派对象,他或她可以直接看到电脑针对自己列出的“任务清单”,跟踪每一项任务的状态,或继续一项任务,而不必从一个模块退出,进入另一个模块,搜索相应任务的线索。前者是面向功能或对象的,而后者是直接面向用户的。这样,用户的任务分派和任务的完成状态,可以被最大程度地电脑化和受到控制。 现在的典型工作流产品是客户-服务软件。而日益增长的重要途径是通过万维网界面,它可以令客户或远程的职员更好地参与。工作流的定义经常是借助于图形化工具,依照业务过程实例的情况定义相应工作的安排。 […]
View Details一、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/
View Details安装CCFlow就不说了,照着安装文件做,基本上没有大的问题:http://bbs.ccflow.org/showtopic-54.aspx 好不容易配置好了,开始耦合吧 按照Documents目录下的 驰骋工作流引擎-流程设计器操作手册.docx 文件中的 2.6 您的系统与ccFlow组织结构表耦合(集成) 的说明,意思是删除CCFlow中的Port_Station,Port_Dept,Port_Emp,Port_EmpStation,Port_EmpDept这五张表,再建立相对应的同样名字的五个视图就可以了 意思说得很明白了吧 可是知易行难呀 Port_Station(岗位表),这个我们系统里没有,怎么办呢?在CCFlow里的表生成Create脚本,修改一下 use 数据库名 改成我们自己的系统数据库 Port_Dept(部门表),这个问题来了,我们并没有使用CCFlow的那种部门编码方式,没办法改造我们的系统吧,加个部门编码字段:OrgBianHao,修改相关代码,让系统新加的部门可以生成编码。 Port_Emp(人员表),需要(No编号,Name名称, Pass密码, FK_Dept所在部门编号, SID登陆安全ID),这个因为我们用的是部门表的ID,而不是编码,所以要新加一个字段OrgBianHao来存储相关的部门编码,我们的密码是加密的,所以~~,加个字段存储明文密码,SID也没有,这个也加上。这里我用的是,No用的是用户名,Name用的是真实姓名. Port_EmpStation 这个我们系统没有,照建一个就是了 Port_EmpDept 这个简单,从我们的人员表取用户ID和部门编号两个字段放进去就好了 这其中发生了两次ccflow耦合问题:无法更改 'XXX',因为它不是表。的问题 一次是:ccflow耦合问题:无法更改 'Port_Emp',因为它不是表。 这个问题在帖子中解决了,是因为少个字段。 再一次是在点 设置 的时候又报: 无法更改 'Port_EmpDept',因为它不是表。 后来经朋哥指点,原来是因为FK_Emp是整形的问题,把这个字段转换成字符串型的,OK,进去是没问题了。 要完全看起来像是一个系统,这样还不行,得继续改,研究去了,完了再和大家分享。 http://www.cnblogs.com/muyou/archive/2012/08/23/2652525.html
View Details3, ccflow 流程运行数据表. 【WF_GenerFH : 分合流信息注册表,对于是分合流的流程才有效,发起一条分合流,就多一条数据在此。】 [FID]主键,表ID ,[Title] 标题 ,[GroupKey] 分组主键 ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号) ,[ToEmpsMsg] 接受人员 ,[FK_Node] 停留节点 ,[WFState]状态 ,[RDT] 记录日期 【WF_GenerWorkFlow : 流程注册表(启动一个流程后,就产生一条数据,放在WF_GenerWorkFlow)】 [WorkID]主键,表ID ,[FID] 流程ID ,[FK_FlowSort] 流程类别 ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号) ,[FlowName] 流程名称 ,[Title] 标题(如:总经理室-zhoupeng,周朋在2012-04-19 00:38发起.) ,[WFState] 流程状态 ,[Rec] 发起人 ,[RecName] 发起人名称 ,[RDT] 记录日期 ,[FK_Node] 节点, 主外键:对应物理表:WF_Node,表描述:节点 ,[NodeName] 节点名称 ,[FK_Dept] 部门, 主外键:对应物理表:Port_Dept,表描述:部门 ,[DeptName] 部门名称 【WF_GenerWorkerlist : 节点工作人员表.( 发送一个步骤后,就把接受的工作人员放入WF_GenerWorkerlist,流程运行完成后此记录就被删除了) 】 [WorkID]主键,表ID ,[FK_Emp] 人员编号, 主外键:对应物理表:Port_Emp,表描述:用户 ,[FK_EmpText]名称 ,[FK_Node] […]
View Details