240 likes | 353 Views
A Set of Tools to Solve NMS Scaling Using Aspects. Shay Raz Advisor: Prof. Amiram Yehudai. Overview. Background Model Basic Aspects Optimizations Package Plug-in Summary Future Work. Background. Atrica Network Management System (NMS)
E N D
A Set of Tools to Solve NMS Scaling Using Aspects Shay Raz Advisor: Prof. Amiram Yehudai
Overview • Background • Model • Basic Aspects • Optimizations • Package Plug-in • Summary • Future Work
Background • Atrica • Network Management System (NMS) • Inventory management, Fault management, Performance management, Service Management, Security Management, Fraud Detection, and Billing. • Scaling problem • Solution is setup dependent. • Small setup -> in memory virtual network. • Big setup -> system collapse!
Background (Cont.) • Solution – complete system reengineering • Constraints • On going development of new features. • Support and maintain existing solution. • Usual time/manpower constraints. • Thesis – why don’t use Aspect to solve scaling program • Use same code base. • Plug in and out scaling issue as needed. • Dynamically refine pointcuts to include new development.
Model • Elements • Device, Port, Link, Connection • Managers • Element manager • Element Database manager • Application • Connection Analyzer • Simulation • Topology creator • Test runner
Device Connection Link Port Class Diagram * 2 1 * *
Basic Aspects • Load control aspects • PreventLoadAspect • Getting elements aspects • XXGetElementAspect • XXGetRelatedYYIdsAspect
Optimization • Development aspect • TraceDatabaseAspect • Elements are selected from database one by one • Db overhead • DB latency • We can do better then that…
Optimization (Cont.) • Enhance the get related aspect to do the loading also. • XXGetRelatedYYAspect
Optimization 2 • Development aspect • CountObjectCreationAspect • Topology elements are created many times more there needed. • Selective loading • Caching mechanism
Optimization 2 (Cont.) • Change load strategy to load topology only • TopologyOnlyLoadAspect • ConnectionGetRelatedLinkAspect
Package Plug-in • Develop in house caching solution is expensive. • There are a lot of off-the-shelf solutions • Use Aspect to plug-in an off-the-shelf solution into the system
JDO - Java Data Object • Java JSR. • Separate persistency model from data model. • Use XML to describe DB schema and mapping. • Use enhancer (byte code to byte code) to introduce persistency code. • Has many implementations : RI, LiDO, KoDO, etc. • Not very stable (yet)
JDO Aspects • Transaction aspect • JDOTransactionAspect • Get elements aspect • XXGetElementAspect
Summary • Aspects can be used to easily change software strategy. • Useful for product-line • Development Aspects can be use to optimize software. • Instrumentation is very specific • Aspects can be used to easily plug-in off-the-shelf products
Future Work • Objects scope detection • Dynamic optimization • Dynamic loading strategy • Distribution using aspects • Clients scaling