Configurable JMX-based Monitoring Tool for JBoss on top of Eclipse Rich Client Platform

Size: px
Start display at page:

Download "Configurable JMX-based Monitoring Tool for JBoss on top of Eclipse Rich Client Platform"

Transcription

1 Free University of Bolzano/Bozen Faculty of Computer Science Bachelor of Science in Applied Computer Science Configurable JMX-based Monitoring Tool for JBoss on top of Eclipse Rich Client Platform Cristiano Maria Cumer Supervisor: Prof. Werner Wild Academic Year 2003/2004 1st Graduation Session - July 30, 2004

2 ABSTRACT The aim of this project is to develop a simple yet configurable management tool for a JBoss application server. Some tools performing this task are already available, but none is targeted to Eclipse or is open-source, and the web-based management tool included in JBoss is dispersive and insufficient. The management tool is written as an Eclipse plugin and is hosted inside the Eclipse application portal, as Eclipse with JBossIDE is the IDE of choice of the JBoss Group. The proposed monitoring tool communicates with the JBoss application server using JMX (Java Management Extension) and uses GEF (Graphical Editor Framework) of Eclipse to display information about the monitored server(s). The displayed information is fully configurable, so that the user can focus only on the really important data, without being distracted by nonrelevant information. 2

3 ACKNOWLEDGEMENTS I want to thank Prof. Werner Wild (Data Communication I Programming Languages Project Management Free University of Bolzano/Bozen) for supervising my thesis and the thesis project. I am also very grateful for the great lessons he gave here at the Free University of Bolzano: during them I have learned to be a better applied software developer. I also express my gratitude to the staff of the faculty secretary, particularly Federica Cumer, Dott.ssa Stefania Fiorese and Dott.ssa Sara Mani, for the great and kind support provided during this three years of studies. I am grateful to all my company colleagues, Dott. Giovanni Barone, Lorenzo Paccagnella, Eleonora Gelmo, Dott.ssa Ornella Rosoli, Massimo Colella, Christian Esposito for the help and the comprehension expressed during my studies, allowing me to conclude successfully this learning experience. I am also thankful to my friend Ana Stojanović and again my sister Federica for revising the English of this thesis. I also want to thank Dr. Barbara Weber of the University of Innsbruck for the great programming experience we had together. Someday this war's gonna end. That would be just fine with the boys on the boat. Captain Willard, Apocalypse Now,

4 TABLE OF CONTENT ABSTRACT... 2 ACKNOWLEDGEMENTS... 3 TABLE OF CONTENT... 4 LIST OF FIGURES... 5 LIST OF TABLES... 5 INTRODUCTION... 6 WHY A MONITORING CONSOLE FOR JBOSS... 6 USING ECLIPSE AS DEVELOPMENT AND DEPLOYMENT PLATFORM... 6 EXTENSIBILITY... 6 BACKGROUND... 7 JMX... 7 What is JMX... 7 JMX Components... 7 Architecture... 7 MBean Notifications... 8 MBean Types... 8 MBean Metadata Classes... 9 RCP GEF The GEF MVC paradigm GEF Structure JBOSS JBoss architecture PROBLEM DESCRIPTION REQUIREMENTS FOR THE APPLICATION IMPLEMENTATION FOR THE THESIS PROPOSED SOLUTION TOOLS APPLICATION ARCHITECTURE OVERVIEW JMX CONNECTION MANAGEMENT JMXBROWSER Introduction Implementation THE MANAGEMENT PANELS Introduction Implementation of the Management Panels (GEF Editor) Persistency of the management panels THE BEAN VIEW Introduction Implementation MONITORING OF MBEAN ATTRIBUTES CONCLUSION & FURTHER STUDIES CONCLUSIONS FURTHER STUDIES GLOSSARY TECHNOLOGY SPECIFIC TERMINOLOGY REFERENCES

5 LIST OF FIGURES FIGURE 1: JMX SERVICES LEVEL 8 FIGURE 2: UML MODEL OF THE MBEAN METADATA CLASSES [PERRY02] 9 FIGURE 3: THE STANDARD MVC [ECLI04] 11 FIGURE 4: THE GEF IMPLEMENTATION OF MVC. NO DIRECT CONNECTION FROM THE VIEW TO THE CONTROLLER [ECLI04] 11 FIGURE 5: EDITPART AND INSTALLED EDITPOLICIES [ECLI04] 12 FIGURE 6: THE JMX PERSPECTIVE, DISPLAYING THE JMXBROWSER, THE BEAN VIEW, THE PROPRIETIES VIEW AND THE MANAGEMENT PANEL. 16 FIGURE 7: UML DIAGRAM OF THE CLASSES INVOLVED IN JMX CONNECTION MANAGEMENT 17 FIGURE 8: DETAIL OF THE JMXBROWSER 17 FIGURE 9: DETAIL OF THE MANAGEMENT PANEL 18 FIGURE 10: UML DIAGRAM OF THE GEF EDITOR MODEL 19 FIGURE 11: UML DIAGRAM OF THE GEF CONTROLLER IMPLEMENTATION 20 FIGURE 12: THE BEAN VIEW 21 LIST OF TABLES TABLE 1: IMPACT VALUES AND MEANING OF JMX OPERATIONS

6 INTRODUCTION Why a monitoring console for JBoss JBoss is becoming one of the most used J2EE application server platforms and is gaining strong support from the open source community. Several integration and development tools have been created and more are in the works, but only few of them address the monitoring during the testing/deployment stage. Monitoring is an essential activity during the lifecycle of a JBoss application, fostering correct operation, optimization and profiling. Although JBoss itself provides an integrated web-based management console, this tool is not suitable for serious management, as it lacks the possibility to be configured and does not provide a synthetic overview of the JBoss process. Other monitoring tools, like extremej or mc4j, are either not open source or not targeted to the platform of choice for JBoss development, Eclipse. So there is a need for a simple but efficient tool for monitoring JBoss directly from the developer seat, without the need to introduce new tools that would have to be acquired and understood by the user. Using Eclipse as development and deployment platform Eclipse is one of the most successful open source projects. It s mostly know to the user community for its JDT plugin, that enables Eclipse to act as a Java IDE. But Eclipse is in fact a platform development framework. Eclipse exposes a wide set of APIs and pre-built functionalities that can be exploited by a developer to produce either a new plugin that adds functionalities to Eclipse or to create a new application via the Eclipse Rich Client Platform (RCP). A RCP plugin can also work together with other Eclipse plugins, allowing the creation of a customized application on the basis of the Eclipse portal. The choice to use Eclipse as development and deployment platform is almost a must, since the JBoss community has chosen this IDE as the official development platform for JBoss. Furthermore, the strong and vast community of users assures a large installed base and a quick response in case of development problems. Extensibility The plugin is strictly targeted to monitoring a JBoss application server. However, since it uses JMX as the underlying messaging protocol, it could be easily adapted to monitor and control other application or tools that are exposing a management interface via JMX. The application is structured in the way that all the calls to a specific JMX implementation are abstracted. 6

7 BACKGROUND JMX What is JMX JMX is a unified framework to instrument different pieces of Java code. Before JMX was introduced, there was no standard approach to start, stop and manage Java applications and software tools. Software was managed through collections of custom tools and procedures. JMX allows the introduction of more standardized management code, thus reducing the costs and the complexity of management tools. JMX Components MBeans are the components that are implementing a management interface, either statically by implementing a Java interface, or dynamically by defining the interface that uses a set of metadata classes. The JMX specifications define four types of MBeans. The four different types are Standard MBean Dynamic MBean Model MBean Open MBean Standard MBean is created by declaring a Java interface that holds the management information the MBean must implement. The other three types of MBeans are maintaining their management interface trough a set of metadata classes. Model MBeans extend the Dynamic MBeans by allowing additional descriptors to be attached to the management interface. Open MBeans restrict the object types to be used in the management interface to the basic object types. Architecture The JMX architecture is divided in three separate levels. Each of this levels has a distinct role and addresses a different aspect of the management systems. The tree levels are Instrumentation Level Agent Level Distributed Service Level The Instrumentation Level defines how to implement the MBean to make resources manageable by JMX compliant tools. Four types of MBeans (Standard, Dynamic, Model and Open) are defined at this level. At the Agent Level the role of the MBean server is defined by the JMX specifications. The MBean server is responsible for delegating invocations and messages between the managing application and the managed MBeans. The MBean server isolates the managing application from the managed MBeans. This is necessary in an high-availability (HA) architecture where resources can be moved from a host to another. MBeans can be updated, redeployed or moved between MBean servers without detaching the communication between the client and the managed MBean. The managing application does not directly reference the managed MBeans: at the Agent Level the concept of objectname is 7

8 introduced. The managing application uses objectnames to indirectly reference a specific MBean trough the MBean server. The Distributed Services Level defines how the communication between the managed agent and the managing application or in between agents is implemented. Figure 1: JMX services level [LiFl02] MBean Notifications Notifications emitted by MBeans are used to notify management applications or other MBeans about state changes and important events. JMX notifications are based on the Java event mechanism, which involves listeners and broadcaster. The JMX notification system is based on four classes: Notification NotificationListener NotificationBroadcaster NotificationFilter The Notification object extends the java.util.eventobject and represents a generic event. Listeners implement the NotificationListener interface. The NotificationBroadcaster interface is implemented by all MBeans that are sending management events. This interface allows registration and de-registration of notification listeners and displays metadata information about the emitted notifications. This metadata can be queried by the managing application to get information about the type of notifications that are emitted by a particular MBean. A class implementing the NotificationFilter interface can be passed as argument together with a listener when it is registered, and acts as a filter for the events the listener reacts to. MBean Types To clarify MBeans and JMX, two types of MBeans will be analyzed and described: the Standard MBean and the Dynamic MBean. Standard MBeans Standard MBeans must be public, concrete classes: the agent must be able to instantiate an MBean. For the same reason each MBean must have at least one public constructor. The Standard MBean class must implement its own Java interface. This interface must declare both attributes and operations exposed by the MBean. The naming conventions used for defining this interface follow closely the JavaBean model. The name of the interface is very important and has to be the name of the class followed by MBean. For example if the class name is Foo 8

9 the corresponding MBean interface would be FooMBean. The MBean server then uses Java introspection to determine the corresponding management interface at runtime. In order to expose attributes, these have to be declared as getters and setters in the MBean interface. Read-only attributes only have getters, write-only attributes only have setters and read/write attributes have both setters and getters. The overloading of a setter is not permitted and will have the effect to create a not complaint MBean. Operations are all the methods in the interface that are not recognized as getters and setters. Exceptions that are thrown by reading or writing attributes or by performing an operation are encapsulated and forwarded to the caller. This applies to checked, unchecked and runtime exceptions. Dynamic MBeans Dynamic MBeans do not rely on a static interface, but, as the name suggest, they can change their management interface dynamically. Dynamic MBeans implement a generic interface that provides methods for the agent to discover attributes, operations and notifications: the DynamicMBean interface. The methods defined in the interface allow retrieval and setting of attributes and the invocation of operations. An additional method, also declared in the DynamicMBean interface, getmbeaninfo(), returns an object of type MBeanInfo, that describes the management interface of the Dynamic MBean. MBean Metadata Classes MBean Metadata Classes are used by the Dynamic MBeans to expose their management interface. The MBeanInfo class is an aggregate of several Metadata classes: MBeanAttributeInfo MBeanOperationInfo MBeanConstructorInfo MBeanNotificationInfo MBeanParameterInfo MBeanNotificationInfo MBeanAttributeInfo MBeanFeatureInfo MBeanOperationInfo * * MBeanInfo * * * MBeanParameterInfo * MBeanConstructorInfo Figure 2: UML model of the MBean metadata classes [Perry02] 9

10 Each of the metadata classes, with the exclusion of the MBeanInfo class, inherits from the MBeanFeature class, that defines two methods for returning name and description of an element. These two proprieties are inherited by all other metadata classes. The MBeanAttributeInfo class is used to describe an attribute and contains information about the attribute type, name, access type and description. The MBeanParameterInfo class describes parameters used in constructors and operations and contains information about the parameter type. The MBeanOperationInfo class describes the management operations that can be performed by a Dynamic MBean and contains information about the method signature, parameters and impact. The impact is used to give the management application information about the relevance of the operation on the system. Table 1: Impact values and meaning of JMX operations Value INFO ACTION ACTION_INFO UNKOWN Meaning Indicates that the operation is read-like, it basically returns information. Indicates that the operation is write-like, and would modify the MBean in some way, typically by writing some value or changing a configuration. Indicates that the operation is both read-like and write-like. Indicates that the operation has an "unknown" nature. The MBeanConstructorInfo class describes the constructors of an MBean by listing the parameters of the constructor using arrays of MBeanParameterInfo. The last class, MbeanNotificationInfo, is used to describe notifications emitted by the MBean. The use of the name field differs from the other metadata classes; it is used to contain the fully qualified class name of the notification the MBean broadcasts. Additionally, the class describes the notification types that the MBean is emitting. [LiFl02] RCP The Eclipse Rich Client Platform is a spin-off of the Eclipse Project. As Eclipse is a great tool integration platform, the RCP team aims to create a platform to develop generic applications based on a common set of Eclipse functionalities that are not explicitly targeted to IDEs. In order to do that, all IDE related and non-essential plugins have been stripped out from the RCP distribution. Changes to the overall architecture of the Eclipse tool have also been suggested, in order to remove the IDE specific look and functionalities from the base Eclipse workbench; these include features like debugging and project menus. Developers can use a generic workbench with the usual views, editors, perspectives and services provided by the Eclipse framework to build applications as plugins for the RCP. Several plugins can be combined to build user-customized applications that are composed of different independent tools. GEF The Eclipse Graphical Editor Framework (GEF) allows the developer to create a graphical editor from an existing application model. GEF provides pre-built actions and operations to the developer, who can use them directly or extend them to implement the editor. GEF is based on the SWT-based draw2d plugin. Draw2d provides a standalone rendering package for SWT, including common shapes and layout managers. GEF is based on a Model-View-Controller (MVC) architecture that allows interaction between the model and the view. The GEF MVC paradigm MVC is a common architecture in GUI applications. Generally speaking, the model represents the data to be displayed, the view displays the data, and the controller reacts to user actions modifying the data in the model. 10

11 Normally views and models are tightly coupled, meaning that they have to be coded explicitly to interact which each other. The consequence is that a model that is rendered by a specific view has to conform strictly to a precise set of APIs or has to be wrapped in an other class. In GEF, on the contrary, there is no direct link between the model and the view. This allows almost any model to be displayed by any view. The roles of model, view and controller in GEF are: Model The model should not know anything about its view or controller. It should be modified by commands, and permit the view and controller to be referenced as listeners. They both listen for the notifications sent by the model when changes occurs in the model itself. View The view is composed by figures from draw2d and essentially includes the visual representation of the model. But the view is not limited to a mere representation of a model, it also displays means for the user to interact and modify the model. Those means include handles, tooltips and feedback: anything that is visible to the user. It is the controller s responsibility to construct and manage all the components of the view. Controller Controllers are implemented as EditParts. EditParts have the responsibility to assembly and manage the view and also to modify the model via commands. In order to create and manage commands, the EditParts use a set of roles. Roles are implemented via EditPolicies, and an EditPart can have many Policies installed, one for each role. Figure 3: the standard MVC [Ecli04] Figure 4: the GEF implementation of MVC. No direct connection from the view to the controller [Ecli04] GEF Structure EditParts An EditPart represents a single high-level object with whom the user can interact. It represents the model object and also assembles the view, as the EditPart itself is not directly visible to the user. Thus, important functions of the EditPart are to assembly the view and display it to the user, keeping it up-to-date with the model. Another important role of the EditPart is to allow graphical editing. Graphical editing is provided by set of actions that the user can perform: 11

12 Manipulate the model: modify the model by issuing commands that are generated by requests Display feedback: show feedback during operations Delegation: the previous tasks can be delegated to other EditParts Figure 5: EditPart and installed EditPolicies [Ecli04] During graphical editing many types of interaction are possible. Some involve more than one EditPart, like for example when adding or removing children in a model, some are only feedback or graphical operations like resizing a part, some are context sensitive operations. To solve the complexity of manipulating all those different kinds of operations, instead of managing the editing directly inside the EditParts, EditParts install one or more EditPolicies of different roles. Then the EditPart forwards requests to all installed EditPolicies that return commands to be performed as a response to the request. EditPolicies An EditPolicy provides an editing role to an EditPart. The role is defined by the kind of requests that the EditPolicy can understand and process. An EditPart iterates over all installed EditPolicies and forwards a request to appropriate EditPolicies. EditPolicies ignore requests that are not applicable to them. Roles EditPolicies are installed in EditParts using a string as a key. This string is called Role and identifies a single EditPolicy inside an EditPart. The purpose of Roles is to permit EditPolicies to be swapped, replaced, added or removed. This is necessary since subclasses of an EditPart may need different EditPolicies for the same Role, or the installed EditPolicies may be determined and changed at runtime. Requests Communication with EditParts is performed using Requests. The EditPart then delegates the Requests to its installed EditPolicies. Requests are identified by type, and the type is used for routing and processing the Request. Commands In response to a Request that an EditPolicy can accept and understand, it issues a command and passes it back to the EditPart. Commands can be chained and can manage actions like redo and undo. The retrieved commands are then passed to a processing queue and executed by the system. GEF provides a common set of EditPolicies, Commands, Requests and Roles: the developer can use them directly or extend them. Roles and EditPolicies are of two basic types: graphical and non-graphical. Non-graphical Roles handle operation that can be performed without knowledge of the view. Graphical Roles handle operations that need knowledge of the view, as for example graphical feedback [Ecli04]. 12

13 JBoss JBoss is an open source J2EE 1.4 compliant application server based on a JMX microkernel. It is one of the most successful application servers both for the quality of the product, being on par with commercial tools like WebSphere or WebLogic, and for its particular licensing strategy: the application server itself is available at no cost, but the documentation and the training have to be paid for. JBoss architecture The JBoss architecture can be divided in four layers: Microkernel layer Services Layer Aspect layer Application Layer Microkernel Layer At the core of JBoss is a small footprint microkernel. The microkernel uses JMX and delivers capabilities like hot deploy and advanced class loading. By using JMX the kernel can be managed and monitored remotely. Services Layer On top of the microkernel services are implemented. Services are hot deployable and selfcontained. Services like transaction managing, messaging, security and mail are available. The user can remove standard services in order to improve the JBoss performance and reduce its footprint. New services can be created by the user and are packaged in a Service Archive (SAR). The user can then deploy a new service and extend JBoss. Aspect Layer The Aspect layer is based on the Aspect-Orient programming model (AOP). JBoss uses interceptors to transparently implement behaviors offered by services in objects of the application. A developer can add and remove interceptors to its code, and this way implement the behaviors. Application Layer The user applications and Enterprise Java Beans (EJB) are deployed and running at the Application Layer. User applications can use all the capabilities offered by the JBoss infrastructure directly, by accessing them programmatically or via the AOP layer [JBos04]. 13

14 PROBLEM DESCRIPTION Requirements for the application The plugin has to provide the means to remotely manage and configure applications running on a JBoss application server and the server itself. In order to fulfill this tasks following requirements have been identified: Connecting to remote servers and browsing their management interface Building and configuration of different monitoring consoles Persistency for the monitoring console Interaction with the monitored MBeans Feedback and reaction for selected events and notifications Operational statistics and graphs Connecting to remote servers and browsing their management interface The user has to be able to connect to a given remote JBoss server. Connection is based upon three parameters: username, password and server URL. Upon connection the user must be able to view the JMX structure of the remote server and browse different JMX Domains and MBeans. When the user selects a Domain or a MBean, basic data about the selection has to be displayed: attributes, operations and notifications. The user must also be able to connect to multiple remote servers. Building and configuration of different monitoring consoles The amount of data and operations provided by the JBoss remote management interface is very high. The user must be able to extract and select only the data and the operations that are necessary for the correct operation of the JBoss Application Server. Flooding with information should be avoided. This is achieved by displaying significant MBeans only, and, for each MBean, by displaying significant attributes, operations and notifications. To achieve this goal the user can create multiple panels and for each panel select the MBeans to be displayed. Selected MBeans can be arranged arbitrary and configured to display only the necessary attributes, operations and notifications. Persistency for the monitoring console After creating different management panels, the user must be able to save work done and retrieve it later. Not only the panel configurations have to be saved, but also the connection parameters, as username, password and connection URL. At the time of writing no considerations have been made regarding the security of the proposed model. A balance between user friendliness and security has to be found. Interaction with the monitored MBeans The user must be able to interact with the MBeans displayed on the management panel. Interaction comprises reading and modifying attributes, invoking operations, and receiving notifications. Values should be updated both automatically at predefined time intervals and upon explicit user request. 14

15 Feedback and reaction for selected events and notifications The monitoring tool has to be able to automatically provide feedback for selected events or notifications. The feedback can be visual, sending an or a combination of the previous two. Candidate events are crossover of threshold values for attributes, determined values for attributes, or notifications broadcasted by MBeans. The management tool should also be able to react automatically on events by taking simple management decisions on the monitored JBoss server. Operational statistics and graphs To allow better understanding of the server and of the deployed applications, graphing for selected attributes must be possible. This allows monitoring of the values over time and gives a strong visual feedback. The collected data should be exportable both as a csv-formatted and xml-formatted file to allow interoperability with other applications. Also persistency for the collected data has to be implemented. Implementation for the thesis Due to time constraints some features are not implemented in the thesis project. An outline of the features not implemented in the current iteration of the project is: Statistics and graphs Security model for saved management panels Automatic reaction upon events feedback Notification management Other limitations Other limitations are present in the current iteration of the managing tool. The most relevant is the limitation on the type of parameters and values that can be passed to the MBean operations and attributes. Only basic types such as String, Number and Boolean can be used as values, as there is no efficient method to generate instances of complex types. 15

16 PROPOSED SOLUTION Tools Eclipse 3 is the only development tool used. It is a given choice, as only Eclipse is able to host Eclipse plugin development. Additional plugins have been used, specifically GEF, Metric 1.3.5, a metric analysis tool for checking the code quality available at and Junit, a tool for performing automated unit testing available at Additionally, a JBoss Application server (version 3.x) has been deployed for testing purposes. Application architecture overview The application is composed of a set of views and editors that are directly interacting with the user and of one application-logic package that manages the low-level tasks to connect to remote JMX servers. Editors and views are comprised in a unique perspective, called JMX perspective. The views are: JMXBrowser MBean view Properties JMXBrowser is a hierarchical JMX server navigator. The MBean view displays attributes, operations and notifications of the MBean that is selected in the management console. The Properties view is the standard Eclipse Properties view used to display the properties of selected MBeans, both in the JMXBrowser and in the management console. A unique kind of editor, called JMXEditor is used as management console. Multiple instances of the editor can be open at the same time. In the management panel multiple MBeans can be deployed and monitored. Figure 6: The JMX perspective, displaying the JMXBrowser, the Bean View, the Proprieties view and the 16

17 management panel. JMX connection management Connections to JBoss are managed by three classes: JMXConnector JMXWrapper JMXManagerPlugin JMXConnector is an interface containing generic operations that can be performed on a JMX server. JMXConnector introduces two kinds of exceptions, JMXRemoteException and Unexpected- JMXRemoteException. Specific implementations of the JMXConnector interface have to map expected and unexpected exceptions in the two defined exception types, that are simply wrappers for the exceptions thrown by the classes. JBossConnector implements JMXConnector and contains the JBoss specific connection methods, implemented via RMI. This class is specifically tailored for JBoss. It is possible to write other classes that implement JMXConnector in order to extend the possible choice of remote servers to which the user can connect. Each different implementation has to provide specific code to call the specific remote server implementation. JMXWrapper handles all communications between the application and different JMXConnector instances. JMXWrapper handles all remote exceptions and is an abstraction layer between a specific JMX implementation and the rest of the program. For each remote server only a single instance of a JMXConnector class is created and then stored in JMXManagerPlugin, which manages connection pooling. Connections are retrieved using a numeric id that is the hash of the connection parameters. This type of identification assures that no two connections with the same characteristics are created. JMXBrowser Figure 7: UML diagram of the classes involved in JMX connection management Introduction The JMXBrowser allows connections to multiple remote JMX servers and navigation through the domains/mbeans exposed by the servers. The browser is organized as a tree, with servers at the top level, domains at the intermediate levels and MBeans as leaves. Implementation The browser is implemented as an Eclipse view. Views can provide menus, both static and contextual: in this case a simple menu for Figure 8: detail of the JMXBrowser removing and adding remote servers is provided. The tree is built using a JFace component. JFace provides high-level widgets in form of simple MVC structures on top of SWT, the native Eclipse graphic library[sdfk03]. Items displayed in the view are organized in a simple hierarchical model and must implement the JMXViewTreeElement interface, that provides a set of common functionalities related to the tree representation. The model of the tree is in fact a meta-model, where objects are only pointers to instances. In the case of the domain level, a tree is a totally new construct, as there is no domain class in the JMX specifications. Moreover, MBeans live only on the remote server 17

18 and cannot be transferred to the management console, so the MBean model is implemented using a Decorator pattern in the MBeanDecorator class. The MBeanDecorator class holds data about the MBean internally, and reveals only the attributes and methods that are necessary for the view to work. The JMXBrowser directly interacts only with the JMX connection management classes. All other interactions with the management tool are done either via drag and drop or via selections that are passed to the Eclipse Workbench. Eclipse has a selection notification mechanism that can be used by all components, views and editors. If an element is selected, the view notifies the Eclipse workbench about this event. All selection listeners registered in the workbench are notified and can provide adequate feedback. This feature is used to provide information to the proprieties window regarding selected servers, domains and MBeans. Properties displayed in the properties view are usually provided by objects implementing the IPropertySource interface. IPropertySource defines a set of methods used by the properties view to read and display data. Classes in the JMXBrowser are instead implementing the IAdaptable interface [GaKe03], that defines only a single method, getadapter(). The IAdaptable interface allows adding the functionalities by expansion. Thus, instead of implementing several interfaces and their methods, classes are offloading responsibilities to other classes that are retrieved via the IAdaptable interface. This keeps the complexity of the original classes on the low level. As Eclipse itself does not use the standard Java AWT/Swing graphic toolkit, but SWT, which is a wrapper of the platform graphic widgets, drag and drop is implemented using native APIs. In order to support drag and drop of java types/classes, objects must be serialized to a byte array and then de-serialized. The MBeanDecorator class itself is not serialized and de-serialized, as Eclipse provides methods to generate specific data-transfer classes based on the current user selection. In this case only BeanTransferData, a specific data transfer object containing data about the connection id of the server holding the MBean and the ObjectName of the MBean itself, is transferred. The Management Panels Introduction Management panels are implemented as editors, namely GEF editors. A graphical editor might, at a first glance, not seem the ideal tool to display and manage MBeans: some kind of a hierarchical tree view would seem the best choice. However, since the goal of the tool is to be highly configurable and permit maximum flexibility for the end-user by displaying only relevant MBeans, attributes and operations and by allowing any kind of arrangement, graphical editing and a flexible layout are needed. MBeans are added to the panel by dragging them from the JMXBrowser. As previously explained, only connection data and ObjectName are passed to the editor, not the whole MBean. Similarly, when a user drags an attribute or an operation to an MBean, only basic data is transferred to the editor, which is Figure 9: Detail of the management then used by an object factory to create the right object in the model being displayed by the editor. Multiple editors can be open and active at the same time, so the user can split the work area over multiple panels. However, just one editor is visible, as Eclipse can display only one at a time. The editor class JMXEditor extends the abstract GraphicalEditor class of GEF, a commodity class providing basic functionalities of an editor, like for example saving and restoring. 18

19 Implementation of the Management Panels (GEF Editor) GEF is based on a MVC paradigm, so the whole editor is structured according to the MVC pattern. But, unlike the standard MVC pattern, in GEF models views and controllers are nested. Model The model structure is hierarchic, and controllers and views have to reflect this characteristic. JMXEditorModel is the parent class of the model hierarchy and is stored inside the JMXEditor editor class in the model attribute of the GEF editor. Model classes are: JMXModel JMXElement JMXEditorModel BeanModel AttributeModel NotificationModel OperationModel As shown in Figure 10, all model classes inherit from the JMXModel class. This class provides a set of common behaviors, like for example the ability to be a source of data for the proprieties view or the ability to register listeners that listen for changes in the model. JMXElement is a specialization of the JMXModel class, and adds support for graphical representation. More precisely it provides support for layout data, like position and size of elements, and notifications of changes of these attributes. All model objects are generated and removed by the user trough controllers, the EditParts. When a new object has to be created in the model, a controller asks a Figure 10: UML diagram of the GEF Editor model factory, the JMXModelFactory, registered in the editor, to instantiate the model object. The EditPart asking the factory to generate an object is always a step higher in the editor hierarchy than the generated object. Changes in the model structure are notified to the appropriate controller, which then refreshes the view [MDGW04]. Controller Controllers in GEF are EditParts. The classes composing the controller structure are: JMXEditorEditPart JMXEditPart BeanEditPart AttributeEditPart NotificationEditPart OperationEditPart Figure 11 represents the hierarchy of the classes that are the controllers of the editor. The hierarchical structure of the model is not directly mapped to the controller hierarchy, which is also not needed, as EditParts are generated directly from the model. The editor registers an EditParts factory, JMXEditPartFactory, responsible for generating the EditParts for the model. 19

20 When the model is loaded or an item is added to the model, there is no need to explicitly create the corresponding EditParts, as the editor takes care of it by using the EditPart factory. All EditParts inherit from a class provided by the GEF framework, the AbstractGraphicalEditPart. JMXEditorEditPart is the root EditPart, and is the controller of the canvas of the editor. It has two EditPolicies classes installed. These are responsible for managing the controller behavior: one for handling the creation of new Beans and one for moving and resizing elements on the canvas. Policies react on requests generated from the user input by responding with commands that are passed back to the EditParts and then executed by the editor. Here the separation between graphical and non-graphical policies is extremely clear. Creation and deletion commands received by the EditParts are managed via double dispatch, as it is a much cleaner and more object-oriented solution in respect to having a sequence of conditions. This way the responsibility to create and delete parts is passed back to the model and is not directly performed in the command itself. BeanEditPart, AttributeEditPart, OperationEditPart and NotificationEditPart all inherit from JMXEditPart. JMXEditPart implements methods for handling modifications of the size and location of the figures representing the model. It also implements PropertyChangeListener, similar to JMXEditPart- Factory, since the parts are registered in the model as listeners. These listeners wait for notification of structure and properties changes from the model. EditParts are responsible for removing themselves from the canvas and the model, thus they register an EditPolicy for managing their deletion. AttributeEditPart and OperationEditPart must also provide means for the user to interact with attribute values and operations. This is implemented through specific EditPolicies that responds to specific user requests. The last responsibility of the EditParts is to draw the view. Values from the model and user inputs are redirected to the view in order to display data and Figure 11: UML diagram of the GEF controller implementation feedback to the user actions. As indicated earlier, EditParts are registered as listeners, so every change in the model is notified and then redirected to the view for displaying. View Views associated with models and controllers are responsible for creating a graphical representation of the model and for registering event listeners to detect low-level user inputs, like mouse events on buttons. Higher-level interactions, like display and react to contextual menus or graphical editing, are handled directly by EditParts. No application logic is contained in the views, as this would break the strict separation between model, view and controller. Figures, the graphical elements of the GEF framework, do not need to have other methods except for registering event handlers and constructors, as all their proprieties are managed by the corresponding EditPart. The classes representing the views are: BeanFigure AttributeFigure NotificationFigure OperationFigure There is no corresponding class for the JMXEditorModel, as the root view is generated implicitly in the GEF editor. 20

21 All the view classes are subclasses of Figure, a generic graphical class provided by the GEF framework. Persistency of the management panels Persistency is obtained by serializing and de-serializing JMXEditorModel instances. The standard GEF editor provides hooks and methods for saving and restoring itself, simply by writing and reading the object stream representing the editor s model. In the restoring phase the Editor performs reconnection to the remote servers, if needed, via the newly restored JMXEditorModel instance. Here the advantage of using the hashcode of the connection environment as identifier is extremely clear, as there is no possibility of clash of ids coming from different editor instances. Additionally, if more than one editor refers to the same server, only a single connection is created. In the model classes there are temporary attributes that are not essential for the model itself, like registered listeners. Those attributes have to be declared transient, so that they are not serialized. This solution also offers the advantage of breaking dangerous dependency chains and to serialize only relevant data. The Bean View Introduction Figure 12: the Bean View The Bean view works closely together with the management console. Its purpose is to provide a comprehensive view of the features of the MBean selected in the panel. From there, attributes, notifications and operations can be dragged onto a MBean on the panel to build the specialized monitoring console. The user can also directly modify values or invoke operations, without constructing a custom MBean on the console. Implementation The implementation is similar to the one of the JMXBrowser, as both are Eclipse views. The Bean View is registered in the Eclipse Workbench as a selection listener and reacts to selections in both the management panel and the JMXBrowser. Drag and drop is allowed only if the selection provider is an MBean placed on the management panel. Drag and drop is implemented like in JMXBrowser. The only difference is that in the BeanView there are three classes that handle draggable objects: AttributeTransferData NotificationTransferData OperationTransferData Similarly to the JMXBrowser case these classes are only references for the recreation of the transferred items, as the serialization of the items themselves would be too cumbersome. Graphical elements are composed using a combination of simple SWT widgets and JFace elements. Monitoring of MBean Attributes JMX provides native monitoring of attributes. It is possible to register listeners in a JMX server to watch attribute values and notify changes. This solution has a big disadvantage: for every monitored attribute, a new thread is started on the server. This solution works only when just a few attributes are monitored, but if a certain number of attributes has to be monitored by multiple consoles the JMX server will soon be flooded with threads. 21

22 Unlike the native approach, the application works by polling the server at fixed rate, and then displays changes and alerts to the user. In order to do this a single separate timer thread is started. This thread does not perform the polling. Instead AttributesEditParts are implementing the TimedOperation interface, that defines a single method for executing an operation: executetimedoperation(). AttributesEditParts are then registering themselves as listeners in the timer thread. The timer thread wakes up at scheduled execution time and calls the executetimedoperation() method for all registered AttributesEditParts. The polling and update are then performed from the EditParts. 22

23 CONCLUSION & FURTHER STUDIES Conclusions The result of this thesis project is a working and user configurable management tool for JBoss. The user is able to choose a remote server, authenticate, connect, and create multiple management panels. The user can then configure the panels with MBeans, Attributes and Operations so that he can monitor attributes, receive notifications and issue simple operations. The user can save and restore the management panels used in order to continue working with them later on. Developing this application I gained an in-depth knowledge of the Eclipse platform and the GEF framework that will facilitate further experience with the same tools, as both Eclipse and the Rich Client Platform will probably play a big role in the future. A metric analysis tool has been used in order to assure quality of the code and there are no metrics value range violations in the project s code. This, along with the unit and acceptance tests, should guarantee confidence in the code assuring maintainability and correct working. Further studies The presented solution is specifically targeted to the JBoss application server. However, due to its modular approach, it could be easily extended to support different tools, simply by writing the right connectors. For example, the next release of Java, J2SE 1.5, is JMX instrumented, so the management tool could be used to manage and monitor the Java virtual machine itself. Further enhancements could be done in the graphical representation of values over time, that are missing in this release, but that could give great value to the user. Security is also a concern, as no mechanism for protecting login/password pairs is provided. A keychain-like tool could be used: each console could have a master password for unlocking all connections login/password pairs contained in the console itself. The persistency mechanism of the consoles seems simple and ideal. In fact, a serialization to a XML file would be a much better choice than the direct serialization of the classes in an object stream, for two reasons: the first is that XML can be easily edited by humans and programs, and the second is that every change in the model class structure renders saved editors unusable, as they cannot be restored anymore. A possible evolution of the tool is a headless version, without the graphical editor. It could be a lightweight application for dispatching alerts and taking actions on the base of the files saved by the graphical counterpart, that in this case would be mainly used as an editor for generating configuration files. 23

24 GLOSSARY Technology specific terminology Application Server: An infrastructure or a set of frameworks that provides the building blocks for developing applications. AOP: Aspect Oriented Programming. A programming paradigm that cross-cuts the code of a program for inserting common instructions for groups of common behaviors. Eclipse: A java based open source multi-language IDE developed initially by IBM. EJB: Enterprise Java Bean. One of the Java APIs defined in the J2EE. Specifies how an application server provides server-side objects implementing persistency, transactions, and events. GEF: Eclipse s Graphical Editor Framework. A lightweight framework used for developing graphical editors inside Eclipse. HA: High Availability. Error and crash resilient server or program configuration. IDE: Integrated Development Environment. A tool that comprises source code editor, compiler, debugger and other development tools. J2EE: Java2 Platform, Enterprise Edition. A standard for developing distributed multi-tier applications based in modular components. Java: An object oriented multi-platform programming language based on a virtual machine specification developed by Sun. JavaBean: A specification developed by Sun for assuring interoperability among Java components. JFace: Library of high-level GUI components developed on top of the SWT graphics library, JMX: Java Management Extension. A Java technology supplying tools to remotely manage and monitor applications, tools and devices. JMX Domain: Namespace in the JMX specifications MBean: Message Bean. A Java component that exposes a management interface conforming to the JMX standards. RMI: Remote Method Invocation. A Java technology for accessing remote objects and calling their methods over a network connection. SWT: Simple Widget Toolkit. Eclipse s widget library. It is based on top of calls to the native widget library of the hosting platform. URL: Uniform Resource Locator. A standardized web address locating a resource. 24

25 REFERENCES [Ecli04] The Eclipse Project - Eclipse 3 help system, 2004 [GaKe03] [JBos04] [LiFl02] [MDGW04] Erich Gamma, Kent Back Contributing to eclipse Principles, Patterns and Plug-Ins, Addison-Wesley, 2003 The JBoss Group - The JBoss Application Server < Juha Lindfors and Marc Fleury JMX Managing J2EE with Java Management Extensions, Sams, 2002 Bill Moore, David Dean, Anna Gerber, Gunnar Wagenknecht, Philippe Vanderheyden - Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework IBM Red Books, 2004 [Perry02] J. Steven Perry, Java Management Extensions, O Reilly, 2002 [SDFK03] Sherry Shavor, Jim D Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarty, The Java Developer s Guide to ECLIPSE, Addison-Wesley,

26 Date Release Iteration Description Estimated Time Real Time Deviation Week1 R0 I0 JMX spike % Week3 R0 I0 Eclipse PDE spike % Week5 R0 I0 Swt/Jface spike % Week6 R0 I1 JMX connection logic % % Week7 R1 I2 JMX Browser % Week10 R1 I3 Refactoring of code % Week10 R1 I3 Ecipse spike (seclections) % Week11 R1 I3 Proprieties view % Week12 R2 I4 Itegration in Eclipse % % Week13 R2 I5 Gef Spike % Week17 R2 I6 JMX Editor (MBeans) % Week20 R3 I7 Itegration in Eclipse % % Week21 R3 I8 Gef Spike % Week21 R3 I8 Eclipse PDE spike % Week22 R3 I9 MBean View % Week23 R3 I10 JMXEditor (attibutes) % Week24 R3 I11 JMXEditor (attibutes-monitoring) % Week27 R4 I12 Itegration in Eclipse % % Week29 R4 I13 JMXEditor (Operations) % Week29 R4 I13 JMXEditor (Operations-invocation) % Week30 R5 I14 Itegration in Eclipse % % Weeks are 20h each Appendix A - Project Plan - Iteration and Releases

Implementation of ULC Visual Editor for Eclipse

Implementation of ULC Visual Editor for Eclipse Implementation of ULC Visual Editor for Eclipse Janak Mulani & Sibylle Peter Canoo Engineering AG Kirschgartenstrasse 7 CH 4051 Basel janak.mulani@canoo.com sibylle.peter@canoo.com Abstract Eclipse s visual

More information

An introduction to creating JSF applications in Rational Application Developer Version 8.0

An introduction to creating JSF applications in Rational Application Developer Version 8.0 An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create

More information

Glassfish, JAVA EE, Servlets, JSP, EJB

Glassfish, JAVA EE, Servlets, JSP, EJB Glassfish, JAVA EE, Servlets, JSP, EJB Java platform A Java platform comprises the JVM together with supporting class libraries. Java 2 Standard Edition (J2SE) (1999) provides core libraries for data structures,

More information

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010 Oracle Identity Analytics Architecture An Oracle White Paper July 2010 Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only, and may

More information

Duke University Program Design & Construction Course

Duke University Program Design & Construction Course Duke University Program Design & Construction Course Application Development Tools Sherry Shavor sshavor@us.ibm.com Software Engineering Roles Software engineers wear many hats Tool developer Tool user

More information

Oracle Service Bus Examples and Tutorials

Oracle Service Bus Examples and Tutorials March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan

More information

A standards-based approach to application integration

A standards-based approach to application integration A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist Macnair@us.ibm.com Copyright IBM Corporation 2005. All rights

More information

ActiveVOS Server Architecture. March 2009

ActiveVOS Server Architecture. March 2009 ActiveVOS Server Architecture March 2009 Topics ActiveVOS Server Architecture Core Engine, Managers, Expression Languages BPEL4People People Activity WS HT Human Tasks Other Services JMS, REST, POJO,...

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

Meeting #47. JMX Java Management Extensions. Dominik Dorn. 2012-05-21 Dominik Dorn - JMX

Meeting #47. JMX Java Management Extensions. Dominik Dorn. 2012-05-21 Dominik Dorn - JMX Meeting #47 JMX Java Management Extensions Dominik Dorn Overview JMX - Definition MBean MBean-Server Connectors Adaptors JMX in J2EE / JavaEE Location Transparency Server Management Definition of JMX...

More information

New Methods for Performance Monitoring of J2EE Application Servers

New Methods for Performance Monitoring of J2EE Application Servers New Methods for Performance Monitoring of J2EE Application Servers Adrian Mos (Researcher) & John Murphy (Lecturer) Performance Engineering Laboratory, School of Electronic Engineering, Dublin City University,

More information

Practical Eclipse Rich Client Platform Projects

Practical Eclipse Rich Client Platform Projects Practical Eclipse Rich Client Platform Projects Vladimir Silva HOCHSCHULE LIECHTENSTEIN Bibliothek Apress About the Author About the Technical Reviewer Introduction, xv CHAPTER 1 Foundations of Eclipse

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende {wspear, malony, amorris, sameer}@cs.uoregon.edu

More information

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools

More information

A technical guide for monitoring Adobe LiveCycle ES deployments

A technical guide for monitoring Adobe LiveCycle ES deployments Technical Guide A technical guide for monitoring Adobe LiveCycle ES deployments Table of contents 1 Section 1: LiveCycle ES system monitoring 4 Section 2: Internal LiveCycle ES monitoring 5 Section 3:

More information

Java Management Extensions (JMX) and IBM FileNet System Monitor

Java Management Extensions (JMX) and IBM FileNet System Monitor Java Management Extensions (JMX) and IBM FileNet System Monitor Derive J2EE statistics from FileNet System Monitor alerts Level: Introductory Steven J. Bass 01.Mar.2009 Scope: Does your customer want to

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Configuring and Using the WebLogic Diagnostics Framework 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Configuring and Using the WebLogic Diagnostics Framework, 10g Release

More information

PTC Integrity Eclipse and IBM Rational Development Platform Guide

PTC Integrity Eclipse and IBM Rational Development Platform Guide PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity

More information

Instrumentation Software Profiling

Instrumentation Software Profiling Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the

More information

Monitoring and Managing Business Processes and Resources in J2EE Platform. Master Thesis

Monitoring and Managing Business Processes and Resources in J2EE Platform. Master Thesis Monitoring and Managing Business Processes and Resources in J2EE Platform Master Thesis Submitted by: Aravind Kumar Alagia Nambi Master of Science in Information and Media Technologies aravind.alagia@tu-harburg.de

More information

Eclipse for Smalltalkers

Eclipse for Smalltalkers Eclipse for Smalltalkers What a difference a year makes! Eric Clayberg Sr. Vice President of Product Development Instantiations, Inc. July 14, 2003 clayberg@instantiations.com http://www.instantiations.com

More information

As you learned about in Chapter 1, WebSphere Application Server V6 supports the

As you learned about in Chapter 1, WebSphere Application Server V6 supports the 23 J2EE Packaging, Enhanced EARs, and the Application Server Toolkit As you learned about in Chapter 1, WebSphere Application Server V6 supports the full Java 2 Platform, Enterprise Edition (J2EE) 1.4

More information

Contents 1 Overview 2 Introduction to WLS Management Services iii

Contents 1 Overview 2 Introduction to WLS Management Services iii Contents 1 Overview Objectives 1-2 Agenda 1-3 Target Audience 1-4 Course Objectives 1-5 Course Agenda 1-7 Classroom Guidelines 1-9 Course Environment 1-10 Summary 1-11 Practice 1-1 Overview: Obtaining

More information

A generic framework for game development

A generic framework for game development A generic framework for game development Michael Haller FH Hagenberg (MTD) AUSTRIA haller@hagenberg.at Werner Hartmann FAW, University of Linz AUSTRIA werner.hartmann@faw.unilinz.ac.at Jürgen Zauner FH

More information

IBM Rational Rapid Developer Components & Web Services

IBM Rational Rapid Developer Components & Web Services A Technical How-to Guide for Creating Components and Web Services in Rational Rapid Developer June, 2003 Rev. 1.00 IBM Rational Rapid Developer Glenn A. Webster Staff Technical Writer Executive Summary

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS Java EE Components Java EE Vendor Specifications Containers Java EE Blueprint Services JDBC Data Sources Java Naming and Directory Interface Java Message

More information

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG SAP's Integrated Development Environment for Java Karl Kessler, SAP AG Agenda Comparison ABAP Workbench / Typical Java IDE Eclipse The SAP Framework The J2EE toolset 2002 SAP Labs, LLC, JAVA101, Karl Kessler

More information

A SERVICE ORIENTED ARCHITECTURE FOR DATA-DRIVEN DECISION SUPPORT SYSTEMS. Ian James Cottingham A THESIS. Presented to the Faculty of

A SERVICE ORIENTED ARCHITECTURE FOR DATA-DRIVEN DECISION SUPPORT SYSTEMS. Ian James Cottingham A THESIS. Presented to the Faculty of A SERVICE ORIENTED ARCHITECTURE FOR DATA-DRIVEN DECISION SUPPORT SYSTEMS By Ian James Cottingham A THESIS Presented to the Faculty of The Graduate College at the University of Nebraska In Partial Fulfillment

More information

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets

More information

Oracle WebLogic Server 11g Administration

Oracle WebLogic Server 11g Administration Oracle WebLogic Server 11g Administration This course is designed to provide instruction and hands-on practice in installing and configuring Oracle WebLogic Server 11g. These tasks include starting and

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

How To Write An Ria Application

How To Write An Ria Application Document Reference TSL-SES-WP-0001 Date 4 January 2008 Issue 1 Revision 0 Status Final Document Change Log Version Pages Date Reason of Change 1.0 Draft 17 04/01/08 Initial version The Server Labs S.L

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

WebSphere Business Monitor

WebSphere Business Monitor WebSphere Business Monitor Debugger 2010 IBM Corporation This presentation provides an overview of the monitor model debugger in WebSphere Business Monitor. WBPM_Monitor_Debugger.ppt Page 1 of 23 Goals

More information

Eclipse 4 RCP application Development COURSE OUTLINE

Eclipse 4 RCP application Development COURSE OUTLINE Description The Eclipse 4 RCP application development course will help you understand how to implement your own application based on the Eclipse 4 platform. The Eclipse 4 release significantly changes

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

JavaFX Session Agenda

JavaFX Session Agenda JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user

More information

E4 development: examples, methods and tools. Eclipse Con France 2014

E4 development: examples, methods and tools. Eclipse Con France 2014 E4 development: examples, methods and tools Eclipse Con France 2014 18-19 June 2014 Table des matières I - Eclipse 4 Workshop 5 A. OPCoach... 5 B. Workshop Eclipse 4 : Building an E4 application... 6

More information

Productivity Comparison for Building Applications and Web Services

Productivity Comparison for Building Applications and Web Services Productivity Comparison for Building Applications and Web Services Between The Virtual Enterprise, BEA WebLogic Workshop and IBM WebSphere Application Developer Prepared by Intelliun Corporation CONTENTS

More information

CrownPeak Java Web Hosting. Version 0.20

CrownPeak Java Web Hosting. Version 0.20 CrownPeak Java Web Hosting Version 0.20 2014 CrownPeak Technology, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,

More information

WebSphere Business Monitor V6.2 Business space dashboards

WebSphere Business Monitor V6.2 Business space dashboards Copyright IBM Corporation 2009 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 6.2 LAB EXERCISE WebSphere Business Monitor V6.2 What this exercise is about... 2 Lab requirements... 2 What you should

More information

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc www.toyork.com http://ca.linkedin.

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc www.toyork.com http://ca.linkedin. Oracle WebLogic Foundation of Oracle Fusion Middleware Lawrence Manickam Toyork Systems Inc www.toyork.com http://ca.linkedin.com/in/lawrence143 History of WebLogic WebLogic Inc started in 1995 was a company

More information

IBM Tivoli Composite Application Manager for WebSphere

IBM Tivoli Composite Application Manager for WebSphere Meet the challenges of managing composite applications IBM Tivoli Composite Application Manager for WebSphere Highlights Simplify management throughout the life cycle of complex IBM WebSphere-based J2EE

More information

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 1 (2013), pp. 53-69 Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework Marcin Kwapisz 1 1 Technical University of Lodz Faculty

More information

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive

More information

PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS

PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS Adrian Mos, John Murphy Performance Engineering Lab, Dublin City University Glasnevin, Dublin 9, Ireland Tel: +353 1 700-8762,

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5 Course Page - Page 1 of 5 WebSphere Application Server 7.0 Administration on Windows BSP-1700 Length: 5 days Price: $ 2,895.00 Course Description This course teaches the basics of the administration and

More information

Modern Software Development Tools on OpenVMS

Modern Software Development Tools on OpenVMS Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics

More information

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration Developer Web Age Solutions Inc. USA: 1-877-517-6540 Canada: 1-866-206-4644 Web: http://www.webagesolutions.com Chapter 6 - Introduction

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

... Introduction... 17

... Introduction... 17 ... Introduction... 17 1... Workbench Tools and Package Hierarchy... 29 1.1... Log on and Explore... 30 1.1.1... Workbench Object Browser... 30 1.1.2... Object Browser List... 31 1.1.3... Workbench Settings...

More information

E-mail Listeners. E-mail Formats. Free Form. Formatted

E-mail Listeners. E-mail Formats. Free Form. Formatted E-mail Listeners 6 E-mail Formats You use the E-mail Listeners application to receive and process Service Requests and other types of tickets through e-mail in the form of e-mail messages. Using E- mail

More information

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Page 1 of 14 Roadmap Client-Server Architecture Introduction Two-tier Architecture Three-tier Architecture The MVC Architecture

More information

IBM Rational Web Developer for WebSphere Software Version 6.0

IBM Rational Web Developer for WebSphere Software Version 6.0 Rapidly build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use IBM Rational Web Developer for WebSphere Software Version 6.0 Highlights Accelerate Web,

More information

What is BPM? Software tools enabling BPM

What is BPM? Software tools enabling BPM What is BPM? BPM, or Business Process Management, is a technology, but it is also more than that. Broadly speaking, one can consider BPM as a management discipline in which processes are valued as assets

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

More information

http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx

http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is

More information

NASA Workflow Tool. User Guide. September 29, 2010

NASA Workflow Tool. User Guide. September 29, 2010 NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration

More information

WebSphere Business Monitor

WebSphere Business Monitor WebSphere Business Monitor Monitor models 2010 IBM Corporation This presentation should provide an overview of monitor models in WebSphere Business Monitor. WBPM_Monitor_MonitorModels.ppt Page 1 of 25

More information

Oracle WebLogic Server 11g: Administration Essentials

Oracle WebLogic Server 11g: Administration Essentials Oracle University Contact Us: 1.800.529.0165 Oracle WebLogic Server 11g: Administration Essentials Duration: 5 Days What you will learn This Oracle WebLogic Server 11g: Administration Essentials training

More information

The Different Types of Search and Execution Systems

The Different Types of Search and Execution Systems Query Engine A Pattern for Performing Dynamic Searches in Information Systems Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de Jan 24, 2006 Abstract: This paper presents an architecture

More information

The Security Framework 4.1 Programming and Design

The Security Framework 4.1 Programming and Design Tel: (301) 587-3000 Fax: (301) 587-7877 E-mail: info@setecs.com Web: www.setecs.com Security Architecture for Development and Run Time Support of Secure Network Applications Sead Muftic, President/CEO

More information

A standards-based network monitoring system

A standards-based network monitoring system A standards-based network monitoring system Javier F. Díaz Laura A. Fava Alejandro J. Sabolansky Computer Science School, National University of La Plata 50 and 120, 2nd floor, La Plata, Buenos Aires,

More information

Technical Information Abstract

Technical Information Abstract 1/15 Technical Information Abstract Disclaimer: in no event shall Microarea be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits,

More information

Flattening Enterprise Knowledge

Flattening Enterprise Knowledge Flattening Enterprise Knowledge Do you Control Your Content or Does Your Content Control You? 1 Executive Summary: Enterprise Content Management (ECM) is a common buzz term and every IT manager knows it

More information

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework

More information

WebSphere Server Administration Course

WebSphere Server Administration Course WebSphere Server Administration Course Chapter 1. Java EE and WebSphere Overview Goals of Enterprise Applications What is Java? What is Java EE? The Java EE Specifications Role of Application Server What

More information

IBM WebSphere Server Administration

IBM WebSphere Server Administration IBM WebSphere Server Administration This course teaches the administration and deployment of web applications in the IBM WebSphere Application Server. Duration 24 hours Course Objectives Upon completion

More information

What Is the Java TM 2 Platform, Enterprise Edition?

What Is the Java TM 2 Platform, Enterprise Edition? Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today

More information

WebSphere Business Monitor V6.2 KPI history and prediction lab

WebSphere Business Monitor V6.2 KPI history and prediction lab Copyright IBM Corporation 2009 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 6.2 LAB EXERCISE WebSphere Business Monitor V6.2 KPI history and prediction lab What this exercise is about... 1 Lab requirements...

More information

1. Introduction 1.1 Methodology

1. Introduction 1.1 Methodology Table of Contents 1. Introduction 1.1 Methodology 3 1.2 Purpose 4 1.3 Scope 4 1.4 Definitions, Acronyms and Abbreviations 5 1.5 Tools Used 6 1.6 References 7 1.7 Technologies to be used 7 1.8 Overview

More information

OSGi Service Platform in Integrated Management Environments Telefonica I+D, DIT-UPM, Telvent. copyright 2004 by OSGi Alliance All rights reserved.

OSGi Service Platform in Integrated Management Environments Telefonica I+D, DIT-UPM, Telvent. copyright 2004 by OSGi Alliance All rights reserved. OSGi Service Platform in Integrated Management Environments Telefonica I+D, DIT-UPM, Telvent copyright 2004 by OSGi Alliance All rights reserved. Today Management Environments Network Management. Monitors

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

VCE Vision Intelligent Operations Version 2.5 Technical Overview

VCE Vision Intelligent Operations Version 2.5 Technical Overview Revision history www.vce.com VCE Vision Intelligent Operations Version 2.5 Technical Document revision 2.0 March 2014 2014 VCE Company, 1 LLC. Revision history VCE Vision Intelligent Operations Version

More information

Heterogeneous Tools for Heterogeneous Network Management with WBEM

Heterogeneous Tools for Heterogeneous Network Management with WBEM Heterogeneous Tools for Heterogeneous Network Management with WBEM Kenneth Carey & Fergus O Reilly Adaptive Wireless Systems Group Department of Electronic Engineering Cork Institute of Technology, Cork,

More information

Oracle WebLogic Integration

Oracle WebLogic Integration Oracle WebLogic Integration Using the WebLogic Integration Administration Console 10g Release 3 (10.3.1) January 2010 Oracle WebLogic Intergation Using the Oracle WebLogic Integration Administration Console,

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs, 10g Release

More information

Ikasan ESB Reference Architecture Review

Ikasan ESB Reference Architecture Review Ikasan ESB Reference Architecture Review EXECUTIVE SUMMARY This paper reviews the Ikasan Enterprise Integration Platform within the construct of a typical ESB Reference Architecture model showing Ikasan

More information

Configuring and Integrating JMX

Configuring and Integrating JMX Configuring and Integrating JMX The Basics of JMX 3 JConsole 3 Adding a JMX Component Monitor to SAM 6 This document includes basic information about JMX and its role with SolarWinds SAM 2 Configuring

More information

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies: Oracle Workshop for WebLogic 10g R3 Hands on Labs Workshop for WebLogic extends Eclipse and Web Tools Platform for development of Web Services, Java, JavaEE, Object Relational Mapping, Spring, Beehive,

More information

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide Introduction... 2 Optimal workspace operational server configurations... 3 Bundle project build

More information

Java Management Extensions Instrumentation and Agent Specification, v1.0

Java Management Extensions Instrumentation and Agent Specification, v1.0 Java Management Extensions Instrumentation and Agent Specification, v1.0 Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 U.S.A. 650-960-1300 Public Release 3, May 2000 Copyright 2000 Sun

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Deploying Applications to WebLogic Server 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Deploying Applications to WebLogic Server, 10g Release 3 (10.3) Copyright 2007, 2008,

More information

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester

More information

NNMi120 Network Node Manager i Software 9.x Essentials

NNMi120 Network Node Manager i Software 9.x Essentials NNMi120 Network Node Manager i Software 9.x Essentials Instructor-Led Training For versions 9.0 9.2 OVERVIEW This course is designed for those Network and/or System administrators tasked with the installation,

More information

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2b Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server

More information

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes University of Dublin Trinity College EJB & J2EE Component Technology with thanks to Jim Dowling The Need for Component-Based Technologies The following distributed computing development paradigms have

More information

Deploying to WebSphere Process Server and WebSphere Enterprise Service Bus

Deploying to WebSphere Process Server and WebSphere Enterprise Service Bus Deploying to WebSphere Process Server and WebSphere Enterprise Service Bus Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 Unit objectives

More information

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating

More information

integrated lights-out in the ProLiant BL p-class system

integrated lights-out in the ProLiant BL p-class system hp industry standard servers august 2002 integrated lights-out in the ProLiant BL p-class system technology brief table of contents executive summary 2 introduction 2 management processor architectures

More information

WebSphere Business Monitor

WebSphere Business Monitor WebSphere Business Monitor Dashboards 2010 IBM Corporation This presentation should provide an overview of the dashboard widgets for use with WebSphere Business Monitor. WBPM_Monitor_Dashboards.ppt Page

More information

SW5706 Application deployment problems

SW5706 Application deployment problems SW5706 This presentation will focus on application deployment problem determination on WebSphere Application Server V6. SW5706G11_AppDeployProblems.ppt Page 1 of 20 Unit objectives After completing this

More information