LSI's VMware vcenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp

Similar documents
Deep Dive into CIM Client Development with SBLIM

Google Web Toolkit (GWT)

Say goodbye to the pains of Ajax. Yibo

Developing Ajax Web Apps with GWT. Session I

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Basics. Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc.

GWT - RPC COMMUNICATION

Google Web Toolkit. David Geary. code.google.com/webtoolkit. corewebdeveloper.com

Taming AJAX with GWT. Scott Blum. Scott Blum Taming AJAX with GWT Page 1

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

Module Road Map. 7. Version Control with Subversion Introduction Terminology

IBM JZOS Meets Web 2.0

Rich Client GUI's with RCP & RAP

vsphere Web Client SDK Documentation VMware vsphere Web Client SDK VMware ESXi vcenter Server 6.5.1

The Google Web Toolkit

Infrastructure Navigator User's Guide

eclipse rich ajax platform (rap)

A Model-Controller Interface for Struts-Based Web Applications

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Google Web Toolkit for quick relief of AJAX pain. Kelly Norton & Miguel Méndez

AD105 Introduction to Application Development for the IBM Workplace Managed Client

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

Composer Guide for JavaScript Development

JavaFX. JavaFX Overview Release E

Equinox Project Update

How to Install (then Test) the NetBeans Bundle

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

Setting Up the Development Environment

GWT - CREATE APPLICATION

vsphere Client SDK Developer Guide 03 MAY 2018 VMware vsphere vsphere Client SDK

Distributed Multitiered Application

Integrating Seam and GWT

vsphere Client SDK Developer Guide 17 APR 2018 VMware vsphere 6.7 vsphere Client SDK 6.7

GWT MOCK TEST GWT MOCK TEST I

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Magnolia. Content Management Suite. Slide 1

GWT and jmaki: Expanding the GWT Universe. Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems

COPYRIGHTED MATERIAL

Credits: Some of the slides are based on material adapted from

Application Integration with WebSphere Portal V7

Using the vrealize Orchestrator Operations Client. vrealize Orchestrator 7.5

E-Nature Tutorial for Google Web Toolkit. Dominik Erbsland

GIS Deployment Guide. Introducing GIS

Overview of WebAdmin and UI Frameworks

Ajax and Web 2.0 Related Frameworks and Toolkits. Dennis Chen Director of Product Engineering / Potix Corporation

For detailed technical instructions refer to the documentation provided inside the SDK and updated samples.

Tools to Develop New Linux Applications

IBM Workplace Collaboration Services API Toolkit

Setup and Getting Startedt Customized Java EE Training:

generates scaffolding/framework for models, views

What s New with VMware vcloud Director 9.1. Feature Overview

Hackveda Appsec Labs Java Programming Course and Internship Program Description:

A Business Case for Ajax with Google Web Toolkit. Bruce Johnson Google, Inc.

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google

Packaging for Websphere Development Studio was changed with V6R1.

Oracle ADF: The technology behind project fusion. Lynn Munsinger Principal Product Manager Application Development Tools Oracle Corporation

Developing and Deploying vsphere Solutions, vservices, and ESX Agents. 17 APR 2018 vsphere Web Services SDK 6.7 vcenter Server 6.7 VMware ESXi 6.

GWT - DEBUGGING APPLICATION

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

Developing and Deploying vsphere Solutions, vservices, and ESX Agents

Flex and Java. James Ward. twitter://jlward4th Adobe Systems Incorporated. All Rights Reserved.

For detailed technical instructions refer to the documentation provided inside the SDK and updated samples.

Introduction Haim Michael. All Rights Reserved.

Spring Web Services Tutorial With Example In

If you wish to make an improved product, you must already be engaged in making an inferior one.

Developing Web Sites with Free Software

Table of Contents HOL-PRT-1463

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

25. DECUS Symposium THE Application Development Environment for OpenVMS

COMP 4905 Honours Project Report

HARNESSING THE POWER OF ONLINE CONTENT IN OLM

The information system for the State Archives of the Ministry of Interior of the responsibilities

SSC - Web applications and development Introduction and Java Servlet (I)

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Android App Development

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

AppDefense Getting Started. VMware AppDefense

EMC Smarts SAM, IP, ESM, MPLS, NPM, OTM, and VoIP Managers Support Matrix

Getting started with Geomajas. Geomajas Developers and Geosparc

Session ID vsphere Client Plug-ins. Nimish Sheth Manas Kelshikar

Services Interoperability With Java Technology and.net: Technologies for Web 2.0

Oracle Developer Day

Adobe ColdFusion 11 Enterprise Edition

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Etanova Enterprise Solutions

Oracle Fusion Middleware 11g: Build Applications with ADF I

Java Plugin Windows Xp 32 Bit Full Version With Key

Workbench User's Guide

Google Plugin for Eclipse

Expeditor Client for Desktop. Client Platform Overview

Java Error Applet Tag Missing Code Parameter Jnlp

How to Publish Any NetBeans Web App

Continuous Integration (CI) with Jenkins

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Internet Technologies. Lab Introduction

Oracle Code Day Hands On Labs HOL

Oracle Developer Day

For live Java EE training, please see training courses at

IBM Rational Application Developer for WebSphere Software, Version 7.0

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Transcription:

LSI's VMware vcenter Plug-In: A Study in the Use of Open Source Software Erik Johannes Brian Mason LSI Corp

Goal The goal for the presentation is to share our experience with open source in the hope that it will provide insight and guidance. 2

Bio Brian Mason Staff Software Engineer at LSI Master in Computer Science 20+ years development experience Most of the past 11 developing Management and Control Software for hardware devices. 3

Bio Erik Johannes Staff Software Engineer at LSI Master of Computer Science 25 years industry experience Variety industries including Storage, Telecommunications, and ATE. 4

Agenda Brief Background What our group does Architectural Overview of LSI vcenter plug-in Options and Consideration Why Open Source? Evaluation Criteria Experience with Specific packages Runtime Open Source Libs Development Tools 5

LSI s Engenio Storage Group The Engenio Storage Group develops storage products: Host Bus Adapters and Internal RAID controllers NAS Gateways External RAID systems Many of our products are sold through OEM partnerships. 6

LSI s Application Aware Solutions The goal is to integrate with End User Applications Management of our Storage Arrays. Improve the efficient use of our Storage Arrays. Provide a single pane of glass familiar to user. Integration examples are Oracle s Enterprise Manager. Microsoft s System Center Operations Manager. VMware s vcenter virtualization manager. 7

Management TLA Soup Defined Hyper Text Transport Protocol (HTTP/HTTPS) extensible Markup Language (XML) Distributed Management Task Force (DTMF) Common Information Model (CIM) Web-Based Enterprise Management (WBEM) Storage Management Initiative Specification (SMI-S) CIM Object Manager (CIMOM) Virtual Machine (VM) Virtual Infrastructure or VMWare Infrastructure (VI) 8

VMWare vcenter/vsphere 9

vsphere Plugin Integration The plugin is registered with the server Registration indicates where in the client to display plugin and the URL for the plugin Client display integration points include: Additional Tab added to object s display Object s right click menu items An icon added to the home page The entire display Recommend following VMWare UI guidelines 10

The vsphere Client 11

LSI s vcenter plug-in Architecture 12

Agenda Brief Background What our group does Architectural overview of LSI vcenter plug-in Options and Considerations Why open source? Evaluation criteria Experience with specific packages Runtime open source libs Development tools 13

Why We Use Open Source Free as in Speech Fast Bug fix turn around Freedom to fix it ourselves Nothing is hidden Many testers Free as in Beer Nothing is free, but often cheaper Cost in Evaluation and Internal Support Often Best in Class 14

Evaluation Criteria Does it meet out needs? Can I compile it? Is it an Active Community? Frequent / Current Releases Active Wiki or mail group Is it standards based? 15

Agenda Brief Background What our group does Architectural Overview of LSI vcenter plug-in Options and Consideration Why Open Source? Evaluation Criteria Experience with Specific packages Runtime Open Source Libs Development Tools 16

Runtime Open Source Libs Java Jetty SBLIM GWT And GWT Incubator 17

Java The whole plug-in is written in Java The system is packaged as a Web Application Can be deployed on JEE Application Container We shipped Jetty Used Java 6 Used JMX for monitoring JSR 48 Compliant CIM Client (More later) 18

Java Development Advantages Familiar syntax makes for an easy transition. Object oriented. Lowers concerns about resource leaks. Massive library support Rich IDE Support Built in remote debugging and profiling Compiles very fast 19

Java Deployment Advantages Extremely stable Has redefined P1 bugs Runs on all platforms we need (AIX, HPUX, Solaris Windows, Linux, Mac) Single compile target for all platforms No DLL Issues Built in monitor via JMX Fast performance 20

Details System Architecture HTML/CSS/ Java Script Generated Code JSON/HTTP Client JEE App Server (Jetty) JMX MBeans Plug-in Servlets CIM/HTTP(s) Server CIM Server Java VM Symbol LSI Storage Arrays 21

Runtime Open Source Libs Java Jetty SBLIM GWT And GWT Incubator 22

Jetty Open Source light weight Web Server Java Web Application Container Static HTML Servlets / JSP SSL Many more Pluggable Architecture Used as our App Server 23

Tomcat Alternative Jetty (6.1.x) Tomcat (6.x) Memory Footprint (With our WAR) 28MB 38MB Modular Yes No Servlet/JSP Support 2.5/2.1 2.5/2.1 Embeddable Yes No 24

Runtime Open Source Libs Java Jetty SBLIM GWT And GWT Incubator 25

WBEM Stack WBEM Client CIM/XML HTTP Transport CIM Server Provider Provider 26

SBLIM Java Client Used as CIM client Has a 1.x And 2.x version streams 2.x (2.1.5 current) Requires Java 5 or higher(generics) Implements JSR 48 1.x and 2.x NOT COMPATIBLE Source package change for JSR 48 No known upgrade path 27

Why SBLIM Presents a CIM logical abstraction CIM Instance CIM Classes Typed Key / Value Properties Associations No XML Processing!! Supports indications 28

Logical CIM Functions in SBLIM Navigation Enumerate Classes Enumerate Instances Enumerate Association Classes Follow Associations Filtering Filter Properties Filter Instances returned by Assocations 29

SBLIM Sample WBEMClient client=getclient(); CIMProperty prop; CloseableIterator<CIMInstance> poolit; poolit=client.associatorinstances(storagesystem, "CIM_HostedStoragePool", "CIM_StoragePool", "GroupComponent", null, false, null); while (poolit.hasnext()){ CIMInstance poolinst = poolit.next(); prop=poolinst.getproperty("elementname"); String name=prop.getvalue().tostring(); System.out.println(name); } poolit.close(); 30

Runtime Open Source Libs Java Jetty SBLIM GWT and GWT Incubator 31

GWT Google Web Toolkit Used for Developing Rich Internet Applications A set of tools and libraries Compiles Java to Java Script Supports a sub section of Java Language and Packages Allows for Native Java Script Rich Debugging Both Client and Server Side 32

GWT Client Side GWT Abstracts JavaScript Details Allows Programmer to work in Java Avoids cross browser JavaScript Issues Does not protect against CSS Issues 33

GWT Client Code Example public void onmoduleload() { Label label = new Label("Hello, GWT!!!"); Button button = new Button("Click me!"); button.addclickhandler(new ClickHandler() { public void onclick(clickevent event) { label.setvisible(!label.isvisible()); }}); } RootPanel.get().add(button); RootPanel.get().add(label); 34

GWT Server Communication The client side communicates with the server side Uses RPC to communicate with server over HTTP Easy to pass Java objects back and forth Has both Synchronous and Asynchronous Project Used Asynchronous Nonblocking, call returns immediately Callback is called with server response 35

GWT Asynch Comm Example Define the Interface public interface MyService extends RemoteService { public String mymethod(string s); } Server implements the Interface public class MyServiceImpl extends RemoteServiceServlet implements MyService } { public String mymethod(string s) { // Do something interesting with 's on the server. return s; } 36

GWT Asynch Comm cont. Asynchrounous interface is used to make call interface MyServiceAsync { public void mymethod(string s, AsyncCallback<String> callback); } AsyncCallback<T> Interface onsuccess(t result) onfailure(throwable caught) 37

The GWT Client call MyServiceAsync myservice = (MyServiceAsync) GWT.create(MyService.class); AsyncCallback callback = new AsyncCallback() { public void onsuccess(string result) { // do some UI stuff to show success } public void onfailure(throwable caught) { // do some UI stuff to show failure } }; myservice.mymethod( Hello There, callback); 38

Caution Notes with GWT CSS Issues 2.x has Widgets for both Quirks and Standard Mode Widgets cannot be used together No compile time check, just runtime weirdness Avoid modifying displayed tables Very slow modifying displayed elements Create New Elements and Replace Much Worse in IE than others 39

GWT Incubator Project GWT has limited set of controls Incubator helps to fill out some of the gaps Use With Caution! Its not all cooked Includes Tables, Panels, Status Validation Library Logging Library Graphics Library We have used Tables and Logging 40

GWT Incubator Example GWT Incubator Paging Scroll Table 41

Open Source Tools IDE Eclipse Netbeans Both have GWT &SVN plug-ins Why Use Both? Build and Integration ANT Junit Hudson 42

ANT and JUnit ANT replacement for make More Powerful Extensible JUnit is Unit Test Frame Work Both deserve a separate presentation 43

Hudson Continuous Build Server Monitors VCS for changes Checks out code Builds code/run tests Publishes results plug-in Architecture Works with many VCS Integrates with many build systems Is Java, but builds anything. (We do Java and C++) 44

Hudson Dashboard 45

Hudson Project Screen 46

Would we use it Again? Tool Java ANT Junit SBLIM GWT Jetty Hudson Use it again Yes Yes Yes Yes Maybe Yes Yes 47

QA 48

Reference Links http://sourceforge.net/apps/mediawiki/sblim/index.ph p?title=cimclient http://code.google.com/webtoolkit/ http://code.google.com/p/google-web-toolkitincubator/ http://hudson-ci.org/ 49