REFERENCES

4 downloads 339324 Views 154KB Size Report
[01] Mani Subramanian,“Network Management: Principles and Practice”, 2008 ... network management: A scalable and dynamic mobile agent-based approach.
REFERENCES [01] Mani Subramanian,“Network Management: Principles and Practice”, 2008 Edition, Pearson Education. [02] Stallings, W., 2001. SNMP, SNMPv2, SNMPv3 and RMON 1 and 2, third ed. Addison Wesley. [03] Liotta, A., Pavlou, G. Knight, G., “Exploiting agent mobility for large-scale network monitoring”, IEEE Networks, 16:7-15, 2002. [04] Rubinstein, M.G., Duarte, O., Pujolie, G., “Scalability of a network management application based on mobile agents”, Journal of Communication and Networks, 5:240-248, 2002. [05] Gavalas, D., D. Greenwood, M. Ghanbari and M. O’Mahony, “Hierarchical network management: A scalable and dynamic mobile agent-based approach.” Computer Networks, 38: 693-711, 2002. [06] Manvi, S.S., Venkataram, P., 2006. Agent based subsystem for multi media communications IEEE Proceedings Software Journal 153 (1), 38–48. [07] Makki, S., Wunnava, S., 2008. Next Generation Networks and Code Mobility. ISAST Transactions on Communication and Networking, No.1, Vol 2 [08] Stephan, R., Ray, P., Paramesh, N., 2004. Network management platform based on mobile agents. International Journal of Network Management 14, 59–73. [09] SNMP research, “The Mid-Level Manager”, http://www.snmp.com/products/mlm.html [10] Satoh, I., 2006. Building and selecting mobile agents for network management. International Journal of Network and Systems Management 14 (1), 147–169. March. [11] “Agent based computing: A booklet for executing”, http://www.eurescom.de/ [12] Subramanian, M., Network Management Principles and Practice, Addison Wesley, 2000. [13] Case J., Fedor M., Schoffstall M., Davin J., “A Simple Network Management Protocol (SNMP)”, RFC 1157, May 1990. [14] Yemini, Y., “The OSI Network Management Model”, IEEE Communications Magazine, vol.31, no.5, pp.20-29. May 1993. [15] CCITT, “Maintenance: Telecommunications Management Network – TMN Management Functions”, Recommendation M.3400, Oct. 1992. [16] Rubin H., “An Overview of the TINA Consortium Work”, Document TBG1. HR.001-1.0-93, TINA Consortium, Dec. 1993. [17] Distributed Management Task Force, WBEM Initiative, Feb. 2002 http://www.dmtf.org/wbem/. [18] The Java-Based Management Page, http://joe.lindsay.net/javamgmt.html. [19] CORBA/IIOP 3.2 Specification, Nov. 2011, http://www.omg.org/spec/CORBA/3.2/. [20] Information Technology, Open Systems Interconnection, “Systems Management Overview”, Sep. 1991. [21] Pavlou G., “Network & Service Management and Control”, Notes for the MSc in Communication Networks and Software, University of Surrey, 2001.

173

[22] D. Harrington, R. Presuhn, B. Wijnen, “An Architecture for Describing SNMP Management Frameworks”, RFC 3411, Dec 2002. [23] McCloghrieK., Rose M., “Management Information Base for Network Management of TCP/IP-based Internets: MIB-II”, RFC 1213, March 1991. [24] Stallings, W., 1999. SNMP, SNMPv2, SNMPv3 and RMON 1 and 2, third ed. Addison Wesley [25] International Telecommunication Union, http://www.itu.int [26] Perkins D.T., “SNMP Versions”. The Simple Times, 5(1), pp. 13–14, Dec. 1997, http://www.simple-times.org/pub/simple-times/issues/5-1.html. [27] Levi D., Schoenwaelder J., “Definitions of Managed Objects for the Delegation of Management Scripts”, RFC 2592, May 1999. [28] Goldszmidt G., Yemini Y., Yemini S., “Network Management by Delegation”, Proc. of the 2nd Int. Symposium on Integrated Network Management [29] Baldi M., Gai S., Picco G.P., “Exploiting Code Mobility in Decentralised and Flexible Network Management”, Proc. of the 1st Int. Workshop on Mobile [30] Gavalas, D., “Mobile Software Agents for Network Monitoring and Performance Management”, PhD thesis, University of Essex, UK, June 2001. [31] Sprenkels R., Martin-Flatin J.P., “Bulk Transfers of MIB Data”, The Simple Times, 7(1), pp. 1-7, March 1999, http://www.simple-times.org/pub/simpletimes/ issues/71.html. [32] Martin-Flatin J.P., “Push vs. Pull in Web-Based Network Management”, Proc. of the 6th IFIP/IEEE Int. Symposium on Integrated Network Management (IM’99), pp. 318, May 1999. [33] Martin-Flatin J.P., Znaty S., Hubaux J.P., “A Survey of Distributed Enterprise Network and Systems Management Paradigms”, Journal of Network and Systems Management, 7(1), pp. 9-26, March 2001. [34] H. Chamas, W. Bjorkman, and M.A. Ali, “A Novel Admission Control Scheme for Ethernet Services”,Proceeding of IEEE ICC 2005. [35] Mazumdar, S., “Inter-Domain Management between CORBA and SNMP: Webbased Management - CORBA/SNMP Gateway Approach”, Proc. of the 7th IFIP/IEEE Int. Workshop on Distributed Systems: Operations & Management (DSOM’96), Oct. 1996. [36] Pavlou G., “Using Distributed Object Technologies in Telecommunications Network Management”, IEEE Journal of Selected Areas in Communications, 18(5), pp. 644653, May 2000. [37] Sun Microsystems, “Java Language Overview”, White paper, http://java.sun.com/docs/overviews/java/java-overview-1.html. [38] AdventNet, http://www.adventnet.com/. [39] Sun Microsystems, Java Management API Architecture, Revision A, Sep. 1996. [40] Sun Microsystems, Java Dynamic Management Kit, (JDMK), 1998, http://www.sun.com/software/java-dynamic/. [41] Sun Microsystems, Java Management Extensions (JMX) specification, 1999,http://java.sun.com/products/JavaManagement/index.html [42] Kahani M., Beadle H., “Decentralised Approaches for Network Management”, Computer Communications Review, 27(3), pp. 36-47, July 1997.

174

[43] Cheikhrouhou M., Conti P., Labetoulle J., “Intelligent Agents in Network Management, a state of the art”, Networking and Information Systems, 1(1), pp. 938, 1998. [44] Khan, B. Kleiner, D.D. Talmage, D., 2001. OPTIPRISM: a distributed hierarchical network management system for all-optical networks, Global Telecommunications Conference, GLOBECOM '01. IEEE. [45] McCloghrie K., “An Administrative Infrastructure for SNMPv2”, RFC 1909, Feb 1996. [46] Waldbusser S., “Remote Network Monitoring Management Information Base”, RFC 1757, Feb. 1995. [47] Levi D., Schoenwaelder J., “Definitions of Managed Objects for the Delegation of Management Scripts”, RFC 2592, May 1999. [48] Boggs, J., “IBM Remote Job Entry Facility: Generalize Subsystem Remote Job Entry Facility”, IBM Technical Disclosure Bulletin 752, IBM, Aug. 1973. [49] Fuggetta A., Picco G.P., Vigna G., “Understanding Code Mobility”, IEEE Transactions on Software Engineering, 24(5), pp. 342-361, 1998. [50] Stamos J.W., Grifford D.K., “Implementing Remote Evaluation”, IEEE Transactions on Software Engineering, 16(7), pp. 710-22, July 1990. [51] IBM Corp, The Aglets Home http://www.trl.ibm.co.jp/aglets/, 2009. [52] Mitsubishi Electric, Concordia, http://www.meitca.com/HSL/Projects/Concordia/. [53] ObjectSpace, Voyager, http://www.objectspace.com/products/voyager/. [54] IKV++ GmbH - Grasshopper, http://www.ikv.de/products/grasshopper/. [55] Jade Documentation http://jade.tilab.com/ [56] White T., Pagurek B., Bieszczad A., “Network Modelling for Management Applications Using Intelligent Mobile Agents”, Journal of Network and Systems Management, 7(3), pp. 295-321, Sep. 1999 [57] Puliafito A. Tomarchio O., “Using Mobile Agents to implement flexible Network Management strategies”, Computer Communications, 23(8), pp. 708-719, April 2000. [58] Jian Ye, Symeon Papavassiliou, 2008. An analytical framework for the modelling and evaluation of the mobile agent based distributed network management paradigm. International Journal of High Performance Computing and Networking, vol. 5, pp. 273-284 [59] Pugazendi, R. Duraiswamy, K., 2009, “Mobile Agents - A Solution for Network Monitoring”, International Conference on Advances in Recent Technologies in Communication and Computing, 2009. [60] Chi-Yu Huang, Pattinson C., “Using Mobile Agent Techniques for Distributed Manufacturing Network Management”, PGNet 2001, Liverpool, UK. [61] Lipperts S., “How to Efficiently Deploy Mobile Agents for an Integrated Management”, Proc. of the 3rd IFIP/GI Int. Conf. on Trends towards a Universal Services Market (USM’2000), Sep. 2000 [62] El-Darieby, Bieszczad A., “Intelligent Mobile Agents: Towards Network Fault Management Automation”, Proc. of the 6th IFIP/IEEE Int. Symposium on Integrated Network Management (IM’99), pp. 611-622, May 1999.

175

[63] Zapf M., Herrmann K., Geihs K., “Decentralized SNMP Management with Mobile Agents”, Proc. of the 6th IFIP/IEEE Int. Symposium on Integrated Network Management (IM’99), pp. 623-635, May 1999. [64] P. Bellavista, A. Corradi and C. STefanelli, “An open secure mobile agent framework for systems management.” Journal of Network and System management, 7:323-339, 2003. [65] A. Sahai, C. Morin, “Towards Distributed and Dynamic Network Management’’, in the Proceedings of IFIP/ IEEE Network Operations and Management Symposium (NOMS), New Orleans, U.S.A., Feb, 1998. [66] Oliveira J.L., Lopes R.P., “Distributed Management Based on Mobile Agents”, Proceedings of the 1st Int. Workshop on Mobile Agents For Telecommunication Applications, pp 243-258, Oct. 1999. [67] M. K. Kona, C. Z. Xu, “A Framework for Network Management Using Mobile Agents”, Parallel and Distributed Processing Symposium, Proceedings International, pp. 227-234, IPDPS 2002. [68] Pualiafito A., Tomarchio O., Vita L., “MAP: Design and Implementation of a Mobile Agents andPlatform”,Journal of Systems Architecture, 46(2), pp.145-162, January 2000 [69] M. Ghanbari, D. Gavalas, D. Greenwood, M. O’Mahony, “Advanced network monitoring applications based on mobile/intelligent agent technology”, Computer Communications Journal, 23(8), pp. 720-730, April 2000. [70] Gavalas, D., D. Greenwood, M. Ghanbari and M. O’Mahony, “Hierarchical network management:A scalable and dynamic mobile agent-based approach.” Computer Networks, 38: 693-711, 2002. [71] Vipin Arora, Harpreet Kaur Bajaj(2007), Effective Network Monitoring Using Mobile Agents, Proceedings of National Conference on Challenges & Opportunities in Information Technology (COIT-2007), Mandi Gobindgarh, India, March 23-24, 2007, 142-147 [72] Chong Lia, Liand Huo and Yu Hua, Jing YU, “The Research on Fault Correlation System Based on Mobile Agent”, IEEE, 2008. [73] Jingang Cao, Guping Zheng, Lanjing Wang. “Research on Network Fault Diagnosis Based on Mobile Agent”, IEEE, International Conference on Networking and Digital Society, 2010, pp. 391-394. [74] Ni Shao-xu, Zhang Yu-fang, Yi Hong, etc., "Intelligent fault diagnosis method based on fault tree", Journal of Shanghai Jiaotong University, Vo1.42, Aug. 2008, pp. 1372-5,1386. [75] Al-kasassbeh, M., Adda, M., 2008. Analysis of mobile agents in network fault management Journal of Network and Computer Applications, 31 (4), pp. 699–711 [76] Srivastava, S., Nandi, G.C., Enhancing the efficiency of secure network monitoring through mobile agents, International Conference on Computer and Communication Technology (ICCCT), 2010 [77] Zheng, G., Dong W., The research of mobile agent-based distributed network management, International Colloquium on Computing, Communication, Control, and Management, 2009. CCCM 2009.

176

[78]

Koliousis, Alexandros, Sventek, Joseph. A Trustworthy Mobile Agent Infrastructure for Network Management[A]. 10th IFIP/IEEE International Symposium on Integrated Network Management[C]. Munich: May 21 2007-Yearly 25 2007, Page(s):383–390. [79] Ibrahim, M.A.M., “Distributed network management with secured mobile agent support”, International Conference On Electronics and Information Engineering (ICEIE), 2010 [80] Mydhili K Nair, Gopalakrishna V, 2011, Applying Web Services with Mobile Agents For Computer Network Management, International Journal of Computer Networks and Communications (IJCNC), Vol. 3, No. 2, pp 125-144, March. [81] Taneja, N., and Taneja, A. "Pool-Based Heterogeneous Mobile Agents for Network Management,"Proceedings of the Ninth Americas Conference on Information Systems, Tampa, Florida, 2003, p. 240. [82] Pavlou, G., Liotta, A., Bohoris, C., Griffin, D. & Georgatsos, P. (2000). Proceedings of HP-OVUA, June 12-24, 2000, Santorini, Greece. Providing customisable remote management services using mobile agents, [83] N. Santos, P. Marques, L. Silva, "Dynamic Deployment of Services on Mobile Agents Systems", in Proc. of the 2nd Workshop on Reflective and Adaptive Middleware (RM'2003), Rio de Janeiro, Brazil, June 2003 [84] SoftPerfect: A Network Protocol Analyser, www.softperfect.com/products/networksniffer/, 2009 [85] Mishra A., Sharma, A.K., “Role of Agents in Distributed Network Management: A Review”, International Journal of Advancements in Technology Year: 2010 Vol: 1,Issue: 2 Pages/record No.: 284-295. [86] Sharma, A.K., Mishra A., Singh V.,“An Intelligent Mobile-Agent Based Scalable Network Management Architecture for Large-Scale Enterprise System”, International Journal of Computer Networks and Communications (IJCNC), Vol. 4, No. 1, pp 79-95, January, 2012. [87] Mishra A., Sharma, A.K., Madan, A., “An Analysis of Management Cost for Mobile Agent based Network Management Model.” International Journal of Computer Applications 42(5):19-28, March 2012. [88] Mishra A., Sharma, A.K., “Scalable and Responsive Mobile Agent Based Architecture for Distributed Network Management.”, (IJCS_2012_02_12a), Communicated to IAENG International Journal Of Computer Science, Year: 2012, Issue: August. [89] Mishra, A. and Sharma, A.K., “Mobile Agent Based Scalable Network Management Architecture for Telecomm Networks.”, Accepted in IAENG - International Conference of Computer Science and Engineering, London, U.K., 4-6 July 2012. [91] Mishra, A. and Sharma, A.K., “Application of Mobile Agent In Distributed Network Management”, International Conference on Communication Systems and Network Technologies, CSNT2012, Rajkot, May 11-13, 2012. [92] Mishra, A. and Sharma, A.K., “Mobile Agent Based Scalable Solution For Distributed Network Management”, International Conference on Emerging Technology Trends on Advanced Engineering Research, ICETT, 2012.

177

[93] Singh, V., Mishra, A. and Sharma, A.K. 2010. “A Mobile Agent Based Framework for Network Management System”, International Conference on Computer Engineering and Technology, ICCET’ 2010 [94] Srivastava, A., Mishra, A., Shrama, A.K., “Mobile Agent Based Fault Management Paradigms”, International Conference on Computing and Control Engineering (ICCCE 2012), 12 & 13 April, 2012 [93] Sharma, A.K., Mishra A., Garg, V., “Mobile Agents Security against Malicious Hosts – Review”, International Conference on Computing and Control Engineering (ICCCE 2012), 12 & 13 April, 2012

178

APPENDIX Appendix A: Java Class Loaders A.1. INTRODUCTION Class loaders are the entities responsible for loading and linking classes in the Java Virtual Machine, providing separate name spaces for the classes they load. They are also the unit of code loading and unloading. When the class loader and the classes defined by it are no longer referenced by external classes, the garbage collector is free to unload them. Class loaders are first class entities and can be created by programmers, allowing them some control over the process of loading new classes into the virtual machine. They are used by browsers to load applets from the network, and by application servers and servlet engines to load new components. In this work, class loaders are used to load, unload and reload services in the mobile agent agency.

Java has two kinds of class loaders -- the primordial class loader and class loader objects. The primordial class loader is sometimes called the system class loader or the default class loader. Class loader objects are sometimes called custom class loaders. The primordial class loader (there is only one of these per JVM implementation) is designed and written by the creators of each JVM. Class loader objects are designed and written by Java programmers. Class loader objects are defined as classes (subclasses of java.lang.ClassLoader) and instantiated into regular Java objects on the heap. Whenever the JVM loads a class or interface, it will use either the primordial class loader or a class loader object. Because it is part of the JVM implementation, one (and only one) primordial class loader is always available to a running application. Class loader objects, by contrast, behave like objects. At any one time during an application's lifetime, the application may have zero to many class loader objects in existence and in use.

A.2. OVERVIEW OF CLASS LOADING The purpose of class loaders is to support dynamic loading of software components on the Java platform. The unit of software distribution is a class. Classes are distributed

179

using a machine-independent, standard, binary representation known as the class file format []. The representation of an individual class is referred to as a class file. Class files are produced by Java compilers, and can be loaded into any Java virtual machine. A class file does not have to be stored in an actual file; it could be stored in a memory buffer, or obtained from a network stream.

The Java virtual machine executes the byte code stored in class files. Byte code sequences, however, are only part of what the virtual machine needs to execute a program. A class file also contains symbolic references to fields, methods, and names of other classes. Consider, for example, a class C declared as follows:

Class C { Void f() { D d = new D(); … } }

The class file representing C contains a symbolic reference to class D. Symbolic references are resolved at link time to actual class types. Class types are first-class objects in the Java virtual machine. A class type is represented in user code as an object of class java.lang.Class. In order to resolve a symbolic reference to a class, the Java virtual machine must load the class file and create the class type.

The Java virtual machine uses class loaders to load class files and create class objects. Class loaders are ordinary objects that can be defined in Java code. They are instances of subclasses of the class ClassLoader, shown in Figure A.1.

180

class ClassLoader { public Class loadClass (String name); protected final Class defineClass (String name, byte[] buf, int off, int len); protected final Class findLoadedClass (String name); protected final Class findSystemClass (String name); } Figure A.1: The ClassLoader class

The ClassLoader.loadClass() method takes a class name as an argument, and returns a Class object that is the run-time representation of a class type. If a Class C is loaded by the ClassLoader L then L is referred as C’s defining loader. The Java virtual machine will use L to load classes referenced by C. Before the virtual machine allocated an object of Class D, it must resolve the reference to D. If D has not yet been loaded, the virtual machine will invoke the loadClass method of C’s class loader, L to load D: L.loadClass(“D”); Once D has been loaded, the virtual machine can resolve the reference and create an object of class D.

A.3. MULTIPLE CLASS LOADERS A Java application may use several different kinds of class loaders to manage various software components. For example, Figure A.2 shows how a web browser written in Java may use class loaders. This example illustrates the use of two types of class loaders referred earlier: user-defined class loaders and the system class loader supplied by the Java virtual machine. User-defined class loaders can be used to create classes that originate from user-defined sources. For example, the browser application creates class loaders for downloaded applets. A separate class loader is used for the web browser application itself. All system classes like java.lang.String are loaded by system class loader. The system class loader is supported directly by the Java virtual machine.

181

Application Class Loader

Applet Class Loader

Browser Code

Applet 2 Applet 1



Applet N

System Classes (e.g. java.lang.String)

System Class Loader

JAVA VIRTUAL MACHINE Figure A.2: ClassLoaders in a web Browser

The arrows in the figure indicate the delegation relationship between class loaders. A class loader L1 can ask another class loader L2 to load a class C on its behalf. In such a case L1 delegates C to L2. For example, applet and application class loaders delegate all system classes to the system class loader. As a result, all system classes are shared among the applets and the application. This is desirable because type safety would be violated if, for example, applet and system code had a different notion of what the type java.lang.String was. Delegating class loaders allow us to maintain namespace separation while still sharing a common set of classes. In the Java virtual machine, a class type is uniquely determined by the combination of the class name and class loader. Applet and application class loaders delegate to the system class loader. This guarantees that all system class types, such as java.lang.String are unique. On the other hand, a class named C loaded in applet 1 is considered different type from class loaded in applet 2. Although these two classes have the same name, they are defined by different class loaders. In fact, these two classes can be completely unrelated. For example, they may have different 182

methods or fields.

Classes from one applet cannot interfere with classes in another, because applets are loaded in separate class loaders. This is crucial in guaranteeing Java platform security. Likewise, because the browser resides in a separate class loader, applets cannot access the classes used to implement the browser. Applets are only allowed to access the standard Java API exposed in the system classes.

The Java virtual machine starts up by creating the application class loader and using it to load the initial browser class. Application execution starts in the public class method “void main (String[])” of the initial class. The invocation of this method drives all further execution. Execution of instructions may cause loading of additional classes. In this application, the browser also creates additional class loaders for downloaded applets.

A.4. AN EXAMPLE OF A CLASS LOADERS As discussed earlier, all user defined class loader classes are subclasses of ClassLoader. Subclass of ClassLoader can override the definition of loadclass(), thus providing a user defined loading policy. Here, shown in Figure A.3, is a class loader which looks for classes in a given directory:

The public constructor MyClassLoader() records the directory name relative to which the classes needed to be loaded by the ClassLoader are placed. In the definition of loadClass() the findLoadedClass() method checks whether the class has already been loaded. If it returns “null” the class is not loaded yet. We then delegate the loading to the system class loader by calling findSystemClass. If the class we are trying to load in not a system class the helper method getClassData() reads the class file.

183

class MyClassLoader extends ClassLoader { private String directory; public MyClassLoader (String dir) { directory = dir; } public synchronized Class loadClass (String name) { Class c = FindLoadedClass(name); If (c != null) return c; try { c = findSystemClass (name); return c; } catch (ClassNotFoundException e) { } try { byte [] data = getClassData (directory.name); return defineClass(name, data, 0, data.length[]); } catch (IOException e) { throw new ClassNotFoundException(); } } }

Figure A.3: User-Defined ClassLoaders

After we have read in the class file, we pass it to the defineClass() method. The defineClass() method constructs the run-time representation of the class from the classs file.

184