小Demo带来大项目_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 小Demo带来大项目

小Demo带来大项目

 2010/12/25 0:04:30  yzd  http://yzd.javaeye.com  我要评论(1)
  • 摘要:今天心情不错,公司终于签下了一个综合业务监控系统的大单。到底有多大我也不知道,反正连软件带硬件不算小。按照销售的说法,拿下这个项目一个重要的因素就是要提供一个吸引眼球的demo,而我们做的不错!今天和大家分享一下喜悦和经验!这个项目是一个省级电信运营商的综合业务监控系统。公司跟了好长时间了。由于是一个综合的业务监控系统,涉及的管理资源非常多,又要提供大屏幕显示,所以对系统的呈现效果要求非常高(“政绩工程”么)。前前后后提了很多“无礼”要求,陆续提过的有3D电子地图、3D机房监控、场景仿真
  • 标签:项目

今天心情不错,公司终于签下了一个综合业务监控系统的大单。到底有多大我也不知道,反正连软件带硬件不算小。按照销售的说法,拿下这个项目一个重要的因素就是要提供一个吸引眼球的demo,而我们做的不错!今天和大家分享一下喜悦和经验!

这个项目是一个省级电信运营商的综合业务监控系统。公司跟了好长时间了。由于是一个综合的业务监控系统,涉及的管理资源非常多,又要提供大屏幕显 示,所以对系统的呈现效果要求非常高(“政绩工程”么)。前前后后提了很多“无礼”要求,陆续提过的有3D电子地图、3D机房监控、场景仿真、全动画、 Google Earth、全Flash等等….弄的我们晕头转向、焦头烂额。其实很多时候,用户自己也不知道想要什么,反正对厂商的要求就是一个字:“炫”,两个字 “好看”,三个字:“一定好好看!”(不对,好像是四个字哦)。

言归正传,项目跟踪过程中,商务始终告诉我们研发一定要做好一件事:如何做好呈现,尤其是综合的业务监控和呈现,这是获得项目的关键,一定要“出 彩”。这个“综合呈现”说起来容易,做起来难。作为省级的电信运营商,内部的各种软硬件系统无数,要监控从上到下、从软到硬,真是烦不胜烦:

  • 基础设施层:主要是网络上的硬件设备,包括交换机、路由器、防火墙、各种主机设备服务器等等;
  • 软件层:这一层主要是主机上面运行的操作系统和各类业务软件系统,例如操作系统(Windows、AIX/HP-UX /LINUX/SOLARIS)、各种中间件(WebLogic、JBoss、IIS、WebSphere等)、数据库(Oracle、Sybase、 MySQL)等;
  • 应用层:这一层是指运行在软件层内部的一些细粒度资源,包括一些关键的软件进程、数据库表空间、业务连接、消息队列等等。这一层数量繁杂、数量众多。不过这些资源的状态直接会影响其上层支撑的业务。
  • 业务层:业务层是最顶层,由以上底层资源所共同支撑起来的面向用户的各种业务。对业务最容易理解的描述就是电信提供给客户的具 体“服务”。例如视频业务、短信业务、WAP业务、专网业务等等。这些业务才是用户最终关心的东西,因为这些业务才是客户的核心资产,是拿来卖钱的最终产 品。一旦出问题,将直接影响money!

此外,还有一大堆机房环境监控的要求,什么配电柜供电、开关状态、UPS、蓄电池、空调、适度温度漏水消防通风门禁视频………一大堆。所以,要对业 务进行监控,就必须对业务所支撑的各个底层资源进行监控。另外,还要能够对这些资源的关系进行连接和定义,一旦发生故障和问题,能够从上到下迅速定位故障 起源,在最短时间内发现问题、解决问题。如何呈现这些依赖关系,并对故障和告警进行纵向定位,是软件呈现的一个核心问题,也是用户最关心的一个问题。

用户要求我们先制作一个demo程序,看我们将如何呈现“综合监控”的效果。在充分了解了用户需求之后,经过讨论,我们想做一个完全图形化的分层、跨层的综合监控界面。界面要美观,有动画效果,能够清晰的显示资源依赖关系和告警传播定位。

需要监控和管理的资源
接下来要写代码了。肯定先用我熟悉的TWaver试试。研究了一下,TWaver中有一个平行四边形的Group对象,适合做上图中的“层”的概念。先如下封装并设置属性:

?1 package ?demo;
?2
?3 import ?java.awt.Color;
?4 import ?twaver.Group;
?5 import ?twaver.TWaverConst;
?6
?7 public ? class ?LayerGroup? extends ?Group? {
?8
?9 ???? public ?LayerGroup()? {
10 ????????init();
11 ????}

12
13 ???? public ?LayerGroup(Object?id)? {
14 ???????? super (id);
15 ????????init();
16 ????}

17
18 ???? private ? void ?init()? {
19 ???????? this .setGroupType(TWaverConst.GROUP_TYPE_PARALLELOGRAM);
20 ???????? this .putGroupAngle( 45 );
21
22 ???????? this .putGroup3D( true );
23 ???????? this .putGroupDeep( 10 );
24 ???????? this .putGroupOutline( false );
25 ???????? this .putGroupFillColor(Color.green.darker());
26 ???????? this .putGroupGradient( true );
27 ???????? this .putGroupGradientFactory(TWaverConst.GRADIENT_LINE_E);
28 ???????? this .putGroupHandlerVisible( false );
29 ???????? this .putGroupDoubleClickEnabled( false );
30 ???????? this .putBorderColor(Color.white);
31 ???????? this .putBorderInsets( 3 );
32 ???????? this .putBorderAntialias( true );
33 ???????? this .putBorderStroke(TWaverConst.STROKE_SOLID_4);
34 ???????? this .putBorderVisible( false );
35 ???????? this .putLabelHighlightable( false );
36
37 ???????? this .setEnableAlarmPropagationFromChildren( false );
38 ????}

39 }

40
    网友 2011/1/4 11:19:03 发表

    SJB

发表评论
用户名: 匿名