工作中的两个想法(一)
在NSN工作了一个半月了,随着对NetAct产品的了解和敏捷团队的融入,有一些感受和想法。
以前没有接触过像NetAct如此庞大的应用系统,部署和运行在网络运营商的内部网络中的网络管理软件,一言以蔽之就是收集网络中的各种元素(网元)的运行状态信息,展示给业务操作人员,并进行远程的配置和管理。但由于要符合网管标准和考虑到和其他网管系统还有上层Business Level的系统集成,运行的高可靠性,及方便快捷地更新和升级的要求,系统就变得复杂起来。
整个系统架构的特点就是:非常多的松耦合的进程,通过协作完成所有功能。这种设计的结果就是非常细粒度的模块,被不同的团队所负责,不同的模块形成不同的小的Layer,系统整体上很复杂,但或多或少受人为和历史包袱所致。
以前开发的应用基本都是在Java虚拟机进程的范畴内,通过将业务员逻辑细分为不同的模块,数据流是和线程绑定的,线程是对外部消息和请求反应的执行载体,一般不会把数据流的操作划分为自治的多个线程,通过线程间通信来实现。
对于动态性的部署需求,Java社区中的OSGi热也许是未来的一个发展方向。
当前项目团队中需要能够扮演Architecture的角色,讲解每个模块的由来和未来如何发展,扮演Product Owner的Scrum 角色。