160 likes | 170 Views
This document provides an overview of the Glite service instrumentation for central and individual service management, implementation details, and configuration setup.
E N D
gLite service instrumentation Joachim Flammer Integration TeamJRA1 all-hands-meeting, Brno 21.06.2005
Overview • Two management entry points • Central management • Information/control of the different parts on the node • GliteManager • Individual service management • Information/control of a single service • GliteService interface/stub GliteManager Nodeinfo Tomcat GliteServer GliteService Java Java DM Configurator C++ daemon JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
GliteManager • Central management point on node • “Collects” information from different sources • “Enables” management of different sources • Information/control about node • Information/control about container (Tomcat) • List of services on node + status • Information/Control over individual service (start/stop/…) • Implementation • Java web service • Implements logic to talk to tomcat • Implements logic to collect information about node • Communication to stubs/instrumented java services via JMX • Communication via standard SOAP • Adapt CIM standard JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
Single service management • Each service should implement a proper service instrumentation • (A) Instrumented Java web services • (B) Instrumented C++ service/Daemons • (C) Non instrumented Java web services JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
(A) Instrumented Java web service • All instrumented java web service will • Implement a common & extendable GliteService Management interface • Service can extend management interface for their needs • Use a common management class • Interface to configuration • Implementation of basic management logic • Connect to central management via JMX JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
(A) Instrumented Java web service Three easy steps to turn management on: • Define the management interface you want to support • Extend common baseline management interface • Implement your management interface in your service • Implement a stub for GliteService for the methods that you don’t want to implement yourself • Implement the extra management functions • Setup the web environment JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
1. Define the management interface public interface GliteServiceMBean{ public String getServiceName(); public String getDescription(); public String getVersion(); public String getInterfaceVersion() public String[] getConfiguration(); public String[] getLog() public String[] getMethods(); } public class MyServiceMBeanextends GliteServiceMBean{ public String getUptime(); public int getNumConnections(); } JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
2. Implement the interface public class MyServiceimplementsMyServiceMBean{ static GliteService gliteService; public MyService(){ gliteService = GliteService.instance(this,serviceName); } public String getDescription(){ return “This is my personal description”; }; public String[] getMethods(){ return gliteService.getMethods(); } public String getUptime(){ return uptime; } … } implement common functionality implement functionality yourself use common functionality implement extra functionality JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
3. Get the configuration …via JNDI … Context envCtx = (Context) initCtx.lookup("glite"); dataSource = (DataSource) envCtx.lookup(dbPoolName); Advantages • Can use JNDI features: notification, … Disadvantages • Duplication of efforts: JMX<-> JNDI … via GliteService … dataSource = (DataSource) gliteService.getConfigurationParameter(dbPoolName); Advantages • Easy retrieval of values Disadvantages • Extra features (e.g. notification) need to be implemented by hand • Duplication of efforts (JMX for central, JNDI for application) JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
3. Get the configuration II … via JMX … // get MBeanServer List srvList = MBeanServerFactory.findMBeanServer(null); ListIterator srvListItr = srvList.listIterator(); while(srvListItr.hasNext()) { MBeanServer localMbs = (MBeanServer) srvListItr.next(); if (localMbs.getDefaultDomain().compareTo("glite") == 0) mbs = localMbs; } // get parameter ObjectName objectName = new ObjectName(serviceName + configurationPath); m_dataSource = (DataSource) mbs.getAttribute(objectName, “dbPoolName”); Advantages • Fully integrated solution • Standard management solution • central management & local config. coupled • use all JMX features (notification, old value ..) JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
4. Setup the web environment <web-app> <display-name>MyService using Management</display-name> <context-param> <param-name>glite.management.serviceName</param-name> <param-value>my-service-web-path</param-value> </context-param> <context-param> <param-name>glite.management.implementationClass</param-name> <param-value>MyService</param-value> </context-param> <listener> <listener-class> org.glite.management.service.GliteServiceContextListener </listener-class> </listener> … web.xml JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
(B) Non-Java instrumented service • Management instrumentation inside service • Similar to Java world: • Implementation of common interface • Common management part is done via an extended DM service configurator • Connection to central management via lightweight webservice management stub • one management stub type for all services • Implements GliteService management interface • Provides basic management interface • Connection between stub and service • Shell command • SOAP • JNI • … JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
(C) Non-instrumented services • Managed is delegated to a lightweight webservice management stub • one management stub type for all services • Implements GliteService management interface & common GliteService class • Provides basic management interface • Configure web service path / service script to be managed • Allows basic management • Start / stop • Getting of log files • Getting of configuration JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
Demo • Used software • Tomcat 5.0.28 • Axis 1.1 • MX4J 3.0.1 • Setup • Installed web services • DummyService: java web service without management • Management Service for DummyService • Management Service for non-java service • gLite data catalog fireman service – managed directly by GliteService • gLite Manager JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
Demo II • This is just a prototype – due to time limitation • No security included yet • Does not use common service configurator • Reads configuration from file • Functionality • Show functionality of • Individual service management • Glite Manager • Show usage examples for management interface • Get list of glite services and their status • Start/stop service • Apply methods on individual web service JRA1 all-hands-meeting Brno June 2005 Joachim Flammer
Start Demo …. JRA1 all-hands-meeting Brno June 2005 Joachim Flammer