可行性分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXX有限公司研究中心
文档编号产品版本密级W-YD-2014-02-10V 1.0
任务:系统守护进程共
页
可行性分析报告
(仅供内部使用)
文档作者:X X X 日期:2014 / 02 / 10 产品经理:______________________ 日期:___/___/___
XXXXXX有限公司
XXXX中心
版权所有不得复制
可行性分析报告
关键词: 守护进程、进程监测
摘要: 本文针对java实现系统守护进程的技术需求,分析其需求在现有技术下解决的可行性。并分析通过守护进程实时浏览存储管理系统其他后台进程的运行状态,对其他进程进行启动、停止操作的可行性,提出相应的解决方案。
缩略语说明:略
1 引言
1.1编写目的
本文针对java实现系统守护进程的技术需求,对守护进程的创建,监管其他进程的可行性进行分析,并提出相应的解决方案。
1.2功能需求
1)守护进程在操作系统启动后应自动加载
2)通过守护进程可实时浏览存储管理系统其他后台进程(资源采集、性能采集、WEB服务)的运行状态,并可对其他进程进行启动、停止操作
1.3参考资料
略
1.4术语和缩写词
1)守护进程:守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。
2 技术可行性
2.1语言要求
为实现跨平台运行,采用java语言为编程语言。
2.2环境要求
jdk1.5以上,windows XP及以上,Red Hat Enterprise Linux 5(其他系统暂不详)
2.3监管进程可选方案:
1、可用java程序直接监控当前系统后台运行的全部进程。再按名称匹配所需查找的子进程,并对其进行操作。【以wps.exe进程为例,win7系统测试通过】
2、可使用脚本:Linux服务器进程监控和调整【该方案为Linux下的进程监视设计,根据其进程号PID和父进程号PPID进行监测和管理】
3、JDK内置工具:/pdb/java/200703/99960.html【该方案仅实现实时监控进程状态,但要借助jdk自带工具,扩展性不强】
综上所述,方案一可行性最高。
2.4 守护进程可选方案:
1、linux环境下,将java程序制作成jar包,放到相应环境下,并在启动命令后加’$’
2、利用java线程实现守护进程:利用apatch deamon封装的功能,setDeamon()方法,可将被调用线程设置为后台线程,从而实现守护进程功能。
3 设备可行性
Windows 7 专业版:测试可用
4 人员可行性
根据部门现有开发人员:可行。
5 代码工作量
模块及组件数量
界面:预期为一个界面;
数据库:如果不需要录入数据库,无;
程序:估算不超过1千行;
算法研究:中;
6 测试要求及时间可行性6.1测试要求
跨平台,正常运行。
6.2时间可行性
最后完成时间定为____天。
附件一:实现java监测win7系统进程并管控wps.exe进程的源码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
/**
* 查询正在运行的进程
*/
public static void taskList() {
try {
BufferedReader in = getTaskList();
String string_Temp = in.readLine();
while (string_Temp != null) {
System.out.println(string_Temp);
string_Temp = in.readLine();
}
} catch (Exception e) {}
}
public static BufferedReader getTaskList() {
try {
String cmd =null;
if(theOSType()==1) //windows
{
cmd = "tasklist";
}
else if(theOSType()==2) //linux
{
cmd = "";
}
else if(theOSType()==3) //unix
{
cmd = "";
}
Process proc;
proc = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(proc
.getInputStream()));
return in;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}