1 / 16

gLite service instrumentation

This document provides an overview of the Glite service instrumentation for central and individual service management, implementation details, and configuration setup.

bbeulah
Download Presentation

gLite service instrumentation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. gLite service instrumentation Joachim Flammer Integration TeamJRA1 all-hands-meeting, Brno 21.06.2005

  2. 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

  3. 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

  4. 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

  5. (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

  6. (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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. (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

  13. (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

  14. 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

  15. 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

  16. Start Demo …. JRA1 all-hands-meeting  Brno June 2005  Joachim Flammer

More Related