/** * Constants.java */ package org.infosec.ismp.manager.rmi.event.util; import java.sql.Timestamp; import java.util.Vector; import org.apache.commons.collections.FastHashMap; import org.infosec.ismp.manager.rmi.event.modle.EventFaciip; import org.infosec.ismp.manager.rmi.event.modle.Eventmoni; import org.infosec.ismp.manager.rmi.event.modle.Eventrealdisp; /** * 定义的全局静态变量 * @author Jianyu Shen * * 2009-6-2 下午08:16:22 */ public class EventConstants { /** * 实例化归并事件 */ public static Vector<Eventrealdisp> AGGREGATEDEVENT = new Vector<Eventrealdisp>(); /** * 要通过回调方式上传的实时显示事件 */ public static Vector<Eventrealdisp> UPLOADEVENT = new Vector<Eventrealdisp>(); /** * 要通过回调方式上传的拓扑信息统计计算事件 */ public static Vector<EventFaciip> TOPOSTICEVENT = new Vector<EventFaciip>(); /** * 要通过回调方式上传的拓扑信息统计计算事件,分两个变量存放,一个给显示,一个传态势 */ public static Vector<Eventmoni> EVENTMONI = new Vector<Eventmoni>(); public static Vector<Eventmoni> SITUATIONMONI = new Vector<Eventmoni>(); /** * 保存上一组事件的时间 */ public static Timestamp TIME; /** * 用于计算设备的可用度的5 个参数 */ public static double BETA = 0.05; public static double ALFA = -5; public static double SIGMA = 2; public static double C = 50; // 常量 public static double DELTA = 0.1; // 调节量值 public static double LOGBASE = 2; // 用于对数计算的底 /** * FastHashMap方法,意在尽可能的提高处理速度 * * 在FastHashMap中的Value用ArrayList<Long> 记录时间窗内相应各个设备归并前的事件总数 * 用ArrayList记录某个单一设备归并前发送过来的事件总数 这些事件数必须统计到一个IP下,所以要用List */ public static FastHashMap EVENT_AMOUNT_MAP = new FastHashMap(); /** * value:ArrayList<Integer> 储存同一目的IP对应的不同威胁等级 */ public static FastHashMap THRE_RANK_MAP = new FastHashMap();; /** * value:ArrayList<String> 储存同一目的IP对应的不同事件类型 */ public static FastHashMap EventTypeMap = new FastHashMap(); /** * 标识设备的唯一ID */ public static FastHashMap FACIID = new FastHashMap(); public static FastHashMap getFACIID(){ return FACIID; } public static void setFACIID(FastHashMap vFaciId){ FACIID = vFaciId; } /** * * getTHRE_RANK_MAP FastHashMap */ public static FastHashMap getTHRE_RANK_MAP() { return THRE_RANK_MAP; } /** * * setTHRE_RANK_MAP void */ public static void setTHRE_RANK_MAP(FastHashMap vThre_rank_map) { THRE_RANK_MAP = vThre_rank_map; } /** * * getEVENT_AMOUNT_MAP Map<String,long[]> */ public static FastHashMap getEventAmount() { // System.out.println("---getEventAmount---" + EVENT_AMOUNT_MAP); return EVENT_AMOUNT_MAP; } /** * * setEVENT_AMOUNT_MAP void */ public static void setEventAmount(FastHashMap vEventAmount) { EVENT_AMOUNT_MAP = vEventAmount; // System.out.println("---setEventAmount(FastHashMap vEventAmount)---" + EVENT_AMOUNT_MAP +"<-->"+vEventAmount); } /** * * getEventTypeMap FastHashMap */ public static FastHashMap getEventTypeMap() { return EventTypeMap; } /** * * setEventTypeMap void */ public static void setEventTypeMap(FastHashMap vEventTypeMap) { EventTypeMap = vEventTypeMap; } public static int DEVICECOUNT = 1255; // /** // * // * getAmount long[] // */ // public static long[] getAmount() { // return amount; // } // // /** // * // * setAmount void // */ // public static void setAmount(long[] vAmount) { // amount = vAmount; // } /** * * getAggreBatch Vector<AggregationEvent> */ public static synchronized Vector<Eventrealdisp> getAggreBatch( Vector<Eventrealdisp> vBatch) { int i = AGGREGATEDEVENT.size(); // System.out.println("&&&&&&&&&&&&AGGREGATEDEVENT.size()&&&&&&&&&&&&&&&" + i); if (i > 0) { for (int j = 0; j < i; j++) { vBatch.add(AGGREGATEDEVENT.get(j)); } AGGREGATEDEVENT.removeAllElements(); } return vBatch; } public static void clearAggreBatch(){ AGGREGATEDEVENT.clear(); } /** * * addAggreEvent void */ public static synchronized void addAggreEvent(Eventrealdisp vEvent) { AGGREGATEDEVENT.add(vEvent); // System.out.println("&&&&&&&&&&&&AGGREGATEDEVENT&&&&&&&&&&&&&&&" + AGGREGATEDEVENT.size()); } /** * * getUploadEventBatch Vector<AggregationEvent> */ public static synchronized Vector<Eventrealdisp> getUploadEventBatch( Vector<Eventrealdisp> vBatch) { int i = UPLOADEVENT.size(); if (i > 0) { for (int j = 0; j < i; j++) { vBatch.add(UPLOADEVENT.get(j)); } UPLOADEVENT.removeAllElements(); } return vBatch; } /** * * addAggreEvent void */ public static synchronized void addUploadEvent(Eventrealdisp vEvent) { UPLOADEVENT.add(vEvent); } /** * 获得拓扑统计计算事件列表 getStatisEventBatch Vector<TopoStatisticsEvent> */ public static synchronized Vector<EventFaciip> getStatisEventBatch( Vector<EventFaciip> vBatch) { int i = TOPOSTICEVENT.size(); // System.out.println("=========TOPOSTICEVENT.size===========" + i); if (i > 0) { for (int j = 0; j < i; j++) { vBatch.add(TOPOSTICEVENT.get(j)); } TOPOSTICEVENT.removeAllElements(); } return vBatch; } /** * 添加拓扑统计计算事件 addStatisticsEvent void */ public static synchronized void addStatisticsEvent(EventFaciip vEvent) { TOPOSTICEVENT.add(vEvent); // System.out.println("=============TOPOSTICEVENT================" + TOPOSTICEVENT.size()); } //////////////////////////////////////////////////////////////////////////// // ///////////////// /** * 获得拓扑统计计算事件列表 getStatisEventBatch Vector<TopoStatisticsEvent> */ public static synchronized Vector<Eventmoni> getMonitorEventBatch( Vector<Eventmoni> vBatch) { int i = EVENTMONI.size(); if (i > 0) { for (int j = 0; j < i; j++) { vBatch.add(EVENTMONI.get(j)); } EVENTMONI.removeAllElements(); } // System.out.println("---getMonitorEventBatch()---" + vBatch); return vBatch; } /** * 添加拓扑统计计算事件 addStatisticsEvent void */ public static synchronized void addMonitorEvent(Eventmoni vEvent) { EVENTMONI.add(vEvent); // System.out.println("?????????????????????addMonitorEvent(Eventmoni vEvent)-??????????????????????+++" + vEvent); } //////////////////////////////////////////////////////////////////////////// // //////////////////////////////// /** * 获得拓扑统计计算事件列表 getStatisEventBatch Vector<TopoStatisticsEvent> */ public static synchronized Vector<Eventmoni> getSituationMonitorEventBatch( Vector<Eventmoni> vBatch) { int i = SITUATIONMONI.size(); if (i > 0) { for (int j = 0; j < i; j++) { vBatch.add(SITUATIONMONI.get(j)); } SITUATIONMONI.removeAllElements(); } return vBatch; } /** * 添加拓扑统计计算事件 addStatisticsEvent void */ public static synchronized void addSituationMonitorEvent(Eventmoni vEvent) { SITUATIONMONI.add(vEvent); } public static synchronized Timestamp getTime() { return TIME; } public static synchronized void addTime(Timestamp vTime){ TIME = vTime; } }