SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
GlassFish
Admin CLI - asadmin
(Past, Present and Future)



Kedar Mhaswade km@dev.java.net
Jane Young janey@dev.java.net
February 12th 2009
Agenda

• What asadmin is ...
• GlassFish V2.x asadmin
• What GlassFish V2 asadmin Lacked
• Enter GlassFish V3
• Interactive Command Development
• Exciting Features Planned
• References
• Questions?
                                     2
What asadmin is ...

Asadmin is:
  > Well, a Hidden Gem ;)
  > Extensive, Powerful, Scriptable Administrative
    Command Line Interface for GlassFish
    CLIP Compliant Grammar
  > A Very Stable Interface
    Countless Scripts Depend on it
    Savior for Automated Test Scripts

                                                     3
What asadmin is … (Quiz Time)

Did you know?
  > Asadmin Manages Multiple Domains
  > Securely Administers on Single Port
     Speaks Beloved (?) HTTP
  > Has ~ 250 Commands (+/-)
  > Has a DSL (well, sort of) in Dotted Names
     Number of Commands is Reduced
     Cryptic Till You Get Them
  > Has a Minimal Shell
                                                4
What asadmin is … (Architecture, sort
  of)
Server Software is Complex, Needs
  Setup Commands (Local)
    Create-domain, create-node-agent ...
  Server Management Commands (Remote)
     Server Implements Most Commands
        Parsed Command Line + RPC
        Transport is HTTP
                                   Admin
                                        Admin
                                Server (DAS)
         CLI
                                    Server (DAS)
                                                   5
GlassFish V2.x asadmin

A Java HTTP/JMX Client to DAS
   Several Generic JMX Commands
Uses JSR-160 (Little-Known) Implementation
   HTTP/S
Has Parsing Framework and Commands
   Used Elsewhere (cli-framework)
Some Form of Pluggability
   OpenESB Integration
   CLIDescriptor.xml
                                             6
GlassFish V2.x asadmin

Provides CRUD Support (Configuration)
  Generic Set/Get/List
  Monitoring (vmstat/prstat)
  Super-set of GUI                         Properties
                                   Files
Not Just Domain.xml
Keyword Search/Manpages           List      Set/Get
Integration
  Database
  Operating System (SMF)
                                                      7
What it Lacks ...
•Rather Monolithic
     >Hard to Extend, Plug Commands In
     >Not Dynamic
•A Powerful/Useful Shell
     >Too Many Commands to Remember and
       Key-in!
•Integration with Scripting Languages
•Separation of Options (Command, asadmin)


                                            8
Enter V3 (Prelude)


                     9
Changes in v3 asadmin
Server Became Pluggable/Modular
  Asadmin Had to Follow
A Rigorous Look at Command
  A Command Line With a Grammar
  A Set of Options and Operands (Parameters)
  A Java Class Implementing Functionality
    Adequate Hooks Into Infrastructure
  Data Transfer Between Client and Server
    Strings, Baby!

                                               10
Changes in v3 asadmin – II
Command Line Remains
  Parsing Moves to Server
A General Purpose Injection Manager
  Injects Params into Object
A Command is a POJO with
  AdminCommand Annotation
  A Set of @Params           @AdminCommand (name=”mycmd”)

  A Report Filled In         public class FooCommand {
                             @Param String name; //--name
                                     @Param String value; // -- value
                                     @Param Boolean enabled; //

                                     public void execute(AdminCommandContext
                                     Context) { …}
                                     }
                                                                               11
Changes in v3 asadmin – III
Data Transfer
  A Simple Get/Post HTTP Request
     Get for URI
     Post for FileUpload
     Grizzly Adapter at the Server End
  java.util.Manifest (Yikes!) Coming Back
     Other Formats Totally Possible (hk2-agent)



                                                  12
Changes in v3 asadmin – IV
As a Result, You as a Command Developer (and
App Server Enhancer)
  Create Your Module/Container/Whatever
  Identify Admin Commands and Name Them
  Create Pojo's With @Param(s)
  Write Business Logic and Return the Result
  Drop in Module.jar in /modules Folder
  Run asadmin mycmd –opt1=v1 –opt2=v2 ...
  Forget Command Line Parsing
     And Get CLI for your Module for Free
                                               13
V3 asadmin – How Commands Are
  Received
Grizzly Adapter Called AdminAdapter
  Entertains Authenticated Requests Only
  Context Root: host:admin-port/__asadmin
  Supports Streaming
  Intercepts ALL Admin Requests
  Reads the Input Stream for POST and Uploads Files (Deploy)
  Invokes the Commands
  Returns the Result to OutputStream
     Writes a Manifest for CLI/NetBeans
     Writes an HTML for Browser Invocation

                                                               14
V3 asadmin – How Authentication
  Works
Only Admin Users Should Be Able to Manage
Requires HTTP BASE64 Authentication
  Admin-Realm (A File Realm – Remember admin-keyfile)?
  CLI Sends a BASE64-Encoded UserName and Password
  Provision of the so-called Anonymous Login
  Of Course Not Secure
    Need SSL
    Certificate Exchange



                                                         15
V3 asadmin – Are We Doing Enough?




      Enter V3 FCS


                                    16
V3 FCS asadmin
Build the Icing on the Cake
  No Changes to Basic API
A Powerful Shell
  Alias
  History
  Completion, Navigation
Separation of Options
  --host is NOT an option for create-cluster!



                                                17
V3 FCS asadmin – II
A Shell In the Browser?
  Cool and Useful, No Installation Required
Add a Ruby Gem                          irb>> require 'asadmin'
Gem install asadmin!            irb>> domain = Domain.new(“localhost”);
                                irb>> domain.each_application do { |app|
                               puts “app: #{app.name}, type: #{app.type}”
                                                   }

                                         app: trade2 type: web
                                      app: Twitterfeed type: jruby




                                                                     18
V3 FCS asadmin – III
A Client-side Preferences File
Should asadmin be an OSGi System?
  Local Commands Made Pluggable
Many More Commands
Feature Parity With V2 Developer Profile
  And Compatibility




                                           19
What Are Others Doing?
JBoss 5.0 GA:
• No changes in administration for the past 3 years. Same scripts: run,
  shutdown, twiddle (JMX based)
• No commands for deployment. Applications are manually copied to the
  deploy directory.
• No monitoring and diagnostics support
BEA (Oracle) WebLogic 10g:
• WLST – manages server lifecycle, deployment, diagnostics, navigation of
  MBeans
• Hard to follow syntax. e.g. Invoke a Mbean Object:
wls> obj s = j ar r ay. ar r ay( [ j ava. l ang. St r i ng( quot; oam ver quot; ) ] , j ava. l ang. O ect )
                                                                 ser                         bj
wls> st r s = j ar r ay. ar r ay( [ quot; j ava. l ang. St r i ngquot; ] , j ava. l ang. St r i ng)
wls> i nvoke( ' l ookupSer ver ' , obj s, st r s)

• Command category to WLST is not extensible
GF asadmin : Most powerful and user friendly amongst 20
 all others!
References
users@glassfish.dev.java.net
admin@glassfish.dev.java.net
km@dev.java.net
janey@dev.java.net




                               21
Got Questions?

                 22

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Wildfly 8 - Marchioni
Introduction to Wildfly 8 -  MarchioniIntroduction to Wildfly 8 -  Marchioni
Introduction to Wildfly 8 - MarchioniCodemotion
 
JBoss Negotiation in AS7
JBoss Negotiation in AS7JBoss Negotiation in AS7
JBoss Negotiation in AS7Josef Cacek
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
ServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIGert Vanthienen
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기jbugkorea
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzJBug Italy
 
Caching for Cash: Benchmarking and Profiling
Caching for Cash: Benchmarking and ProfilingCaching for Cash: Benchmarking and Profiling
Caching for Cash: Benchmarking and ProfilingScott MacVicar
 
Troubleshooting Apache Cloudstack
Troubleshooting Apache CloudstackTroubleshooting Apache Cloudstack
Troubleshooting Apache CloudstackRadhika Puthiyetath
 
Tomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance TuningTomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance Tuninglovingprince58
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clusteringgouthamrv
 
25 Apache Performance Tips
25 Apache Performance Tips25 Apache Performance Tips
25 Apache Performance TipsMonitis_Inc
 
Caching for Cash: Caching
Caching for Cash: CachingCaching for Cash: Caching
Caching for Cash: CachingScott MacVicar
 
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...LumoSpark
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.pptwebhostingguy
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuningprathap kumar
 

Was ist angesagt? (20)

Introduction to Wildfly 8 - Marchioni
Introduction to Wildfly 8 -  MarchioniIntroduction to Wildfly 8 -  Marchioni
Introduction to Wildfly 8 - Marchioni
 
JBoss Negotiation in AS7
JBoss Negotiation in AS7JBoss Negotiation in AS7
JBoss Negotiation in AS7
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
What's New in WildFly 9?
What's New in WildFly 9?What's New in WildFly 9?
What's New in WildFly 9?
 
ServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBI
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
 
Caching for Cash: Benchmarking and Profiling
Caching for Cash: Benchmarking and ProfilingCaching for Cash: Benchmarking and Profiling
Caching for Cash: Benchmarking and Profiling
 
Troubleshooting Apache Cloudstack
Troubleshooting Apache CloudstackTroubleshooting Apache Cloudstack
Troubleshooting Apache Cloudstack
 
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF
 
Tomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance TuningTomcat Optimisation & Performance Tuning
Tomcat Optimisation & Performance Tuning
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clustering
 
25 Apache Performance Tips
25 Apache Performance Tips25 Apache Performance Tips
25 Apache Performance Tips
 
Caching for Cash: Caching
Caching for Cash: CachingCaching for Cash: Caching
Caching for Cash: Caching
 
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
How to turn any dynamic website into a static site | 24.01.2018 | Artem Danil...
 
Lumen
LumenLumen
Lumen
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.ppt
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 
are available here
are available hereare available here
are available here
 

Ähnlich wie Asadmin Webinar 12 Feb 2009

Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Arun Gupta
 
Running your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudRunning your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudArun Gupta
 
Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01MindTree Ltd
 
Deployment with Fabric
Deployment with FabricDeployment with Fabric
Deployment with Fabricandymccurdy
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsRaul Leite
 
TIAD 2016 : Migrating 100% of your production services to containers
TIAD 2016 : Migrating 100% of your production services to containersTIAD 2016 : Migrating 100% of your production services to containers
TIAD 2016 : Migrating 100% of your production services to containersThe Incredible Automation Day
 
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski buildacloud
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudArun Gupta
 
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudRunning your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudArun Gupta
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudArun Gupta
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerOrtus Solutions, Corp
 
Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Ortus Solutions, Corp
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudIndicThreads
 
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Arun Gupta
 

Ähnlich wie Asadmin Webinar 12 Feb 2009 (20)

GlassFish v2 Clustering
GlassFish v2 ClusteringGlassFish v2 Clustering
GlassFish v2 Clustering
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
 
GlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium ParisGlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium Paris
 
IIS 7: The Administrator’s Guide
IIS 7: The Administrator’s GuideIIS 7: The Administrator’s Guide
IIS 7: The Administrator’s Guide
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
Running your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudRunning your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloud
 
Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01
 
Deployment with Fabric
Deployment with FabricDeployment with Fabric
Deployment with Fabric
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 
TIAD 2016 : Migrating 100% of your production services to containers
TIAD 2016 : Migrating 100% of your production services to containersTIAD 2016 : Migrating 100% of your production services to containers
TIAD 2016 : Migrating 100% of your production services to containers
 
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudRunning your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the Cloud
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the Cloud
 
Into The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and dockerInto The Box 2018 Going live with commandbox and docker
Into The Box 2018 Going live with commandbox and docker
 
Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018Going live with BommandBox and docker Into The Box 2018
Going live with BommandBox and docker Into The Box 2018
 
Securing containers
Securing containersSecuring containers
Securing containers
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
 

Mehr von Eduardo Pelegri-Llopart

Pelegri Desarrollando en una nueva era de software
Pelegri   Desarrollando en una nueva era de software Pelegri   Desarrollando en una nueva era de software
Pelegri Desarrollando en una nueva era de software Eduardo Pelegri-Llopart
 
Market trends in IT - exchange cala - October 2015
Market trends in IT - exchange cala - October 2015Market trends in IT - exchange cala - October 2015
Market trends in IT - exchange cala - October 2015Eduardo Pelegri-Llopart
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015Eduardo Pelegri-Llopart
 
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...Eduardo Pelegri-Llopart
 
What is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouWhat is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouEduardo Pelegri-Llopart
 
Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEduardo Pelegri-Llopart
 

Mehr von Eduardo Pelegri-Llopart (20)

Juggling at freenome
Juggling   at freenomeJuggling   at freenome
Juggling at freenome
 
Csumb capstone-fall2016
Csumb capstone-fall2016Csumb capstone-fall2016
Csumb capstone-fall2016
 
Digital activitymanagement
Digital activitymanagementDigital activitymanagement
Digital activitymanagement
 
Progress next iot_pelegri
Progress next iot_pelegriProgress next iot_pelegri
Progress next iot_pelegri
 
Pelegri Desarrollando en una nueva era de software
Pelegri   Desarrollando en una nueva era de software Pelegri   Desarrollando en una nueva era de software
Pelegri Desarrollando en una nueva era de software
 
Market trends in IT - exchange cala - October 2015
Market trends in IT - exchange cala - October 2015Market trends in IT - exchange cala - October 2015
Market trends in IT - exchange cala - October 2015
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015
 
IOT - Presentation to PEP @ Progress
IOT - Presentation to PEP @ ProgressIOT - Presentation to PEP @ Progress
IOT - Presentation to PEP @ Progress
 
Node.js as an IOT Bridge
Node.js as an IOT BridgeNode.js as an IOT Bridge
Node.js as an IOT Bridge
 
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...
 
What is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts YouWhat is the Internet of Things and How it Impacts You
What is the Internet of Things and How it Impacts You
 
Community Update 25 Mar2010 - English
Community Update 25 Mar2010 - EnglishCommunity Update 25 Mar2010 - English
Community Update 25 Mar2010 - English
 
GlassFish Community Update 25 Mar2010
GlassFish Community Update 25 Mar2010GlassFish Community Update 25 Mar2010
GlassFish Community Update 25 Mar2010
 
Glass Fish Portfolio C1 West V3.Mini
Glass Fish Portfolio C1 West V3.MiniGlass Fish Portfolio C1 West V3.Mini
Glass Fish Portfolio C1 West V3.Mini
 
Virtual Box Aquarium May09
Virtual Box Aquarium May09Virtual Box Aquarium May09
Virtual Box Aquarium May09
 
Introduction To Web Beans
Introduction To Web BeansIntroduction To Web Beans
Introduction To Web Beans
 
Ehcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage PatternsEhcache Architecture, Features And Usage Patterns
Ehcache Architecture, Features And Usage Patterns
 
OpenDS Primer Aquarium
OpenDS Primer AquariumOpenDS Primer Aquarium
OpenDS Primer Aquarium
 
Fuji Overview
Fuji OverviewFuji Overview
Fuji Overview
 
Nuxeo 5.2 Glassfish
Nuxeo 5.2 GlassfishNuxeo 5.2 Glassfish
Nuxeo 5.2 Glassfish
 

Kürzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Asadmin Webinar 12 Feb 2009

  • 1. GlassFish Admin CLI - asadmin (Past, Present and Future) Kedar Mhaswade km@dev.java.net Jane Young janey@dev.java.net February 12th 2009
  • 2. Agenda • What asadmin is ... • GlassFish V2.x asadmin • What GlassFish V2 asadmin Lacked • Enter GlassFish V3 • Interactive Command Development • Exciting Features Planned • References • Questions? 2
  • 3. What asadmin is ... Asadmin is: > Well, a Hidden Gem ;) > Extensive, Powerful, Scriptable Administrative Command Line Interface for GlassFish CLIP Compliant Grammar > A Very Stable Interface Countless Scripts Depend on it Savior for Automated Test Scripts 3
  • 4. What asadmin is … (Quiz Time) Did you know? > Asadmin Manages Multiple Domains > Securely Administers on Single Port Speaks Beloved (?) HTTP > Has ~ 250 Commands (+/-) > Has a DSL (well, sort of) in Dotted Names Number of Commands is Reduced Cryptic Till You Get Them > Has a Minimal Shell 4
  • 5. What asadmin is … (Architecture, sort of) Server Software is Complex, Needs Setup Commands (Local) Create-domain, create-node-agent ... Server Management Commands (Remote) Server Implements Most Commands Parsed Command Line + RPC Transport is HTTP Admin Admin Server (DAS) CLI Server (DAS) 5
  • 6. GlassFish V2.x asadmin A Java HTTP/JMX Client to DAS Several Generic JMX Commands Uses JSR-160 (Little-Known) Implementation HTTP/S Has Parsing Framework and Commands Used Elsewhere (cli-framework) Some Form of Pluggability OpenESB Integration CLIDescriptor.xml 6
  • 7. GlassFish V2.x asadmin Provides CRUD Support (Configuration) Generic Set/Get/List Monitoring (vmstat/prstat) Super-set of GUI Properties Files Not Just Domain.xml Keyword Search/Manpages List Set/Get Integration Database Operating System (SMF) 7
  • 8. What it Lacks ... •Rather Monolithic >Hard to Extend, Plug Commands In >Not Dynamic •A Powerful/Useful Shell >Too Many Commands to Remember and Key-in! •Integration with Scripting Languages •Separation of Options (Command, asadmin) 8
  • 10. Changes in v3 asadmin Server Became Pluggable/Modular Asadmin Had to Follow A Rigorous Look at Command A Command Line With a Grammar A Set of Options and Operands (Parameters) A Java Class Implementing Functionality Adequate Hooks Into Infrastructure Data Transfer Between Client and Server Strings, Baby! 10
  • 11. Changes in v3 asadmin – II Command Line Remains Parsing Moves to Server A General Purpose Injection Manager Injects Params into Object A Command is a POJO with AdminCommand Annotation A Set of @Params @AdminCommand (name=”mycmd”) A Report Filled In public class FooCommand { @Param String name; //--name @Param String value; // -- value @Param Boolean enabled; // public void execute(AdminCommandContext Context) { …} } 11
  • 12. Changes in v3 asadmin – III Data Transfer A Simple Get/Post HTTP Request Get for URI Post for FileUpload Grizzly Adapter at the Server End java.util.Manifest (Yikes!) Coming Back Other Formats Totally Possible (hk2-agent) 12
  • 13. Changes in v3 asadmin – IV As a Result, You as a Command Developer (and App Server Enhancer) Create Your Module/Container/Whatever Identify Admin Commands and Name Them Create Pojo's With @Param(s) Write Business Logic and Return the Result Drop in Module.jar in /modules Folder Run asadmin mycmd –opt1=v1 –opt2=v2 ... Forget Command Line Parsing And Get CLI for your Module for Free 13
  • 14. V3 asadmin – How Commands Are Received Grizzly Adapter Called AdminAdapter Entertains Authenticated Requests Only Context Root: host:admin-port/__asadmin Supports Streaming Intercepts ALL Admin Requests Reads the Input Stream for POST and Uploads Files (Deploy) Invokes the Commands Returns the Result to OutputStream Writes a Manifest for CLI/NetBeans Writes an HTML for Browser Invocation 14
  • 15. V3 asadmin – How Authentication Works Only Admin Users Should Be Able to Manage Requires HTTP BASE64 Authentication Admin-Realm (A File Realm – Remember admin-keyfile)? CLI Sends a BASE64-Encoded UserName and Password Provision of the so-called Anonymous Login Of Course Not Secure Need SSL Certificate Exchange 15
  • 16. V3 asadmin – Are We Doing Enough? Enter V3 FCS 16
  • 17. V3 FCS asadmin Build the Icing on the Cake No Changes to Basic API A Powerful Shell Alias History Completion, Navigation Separation of Options --host is NOT an option for create-cluster! 17
  • 18. V3 FCS asadmin – II A Shell In the Browser? Cool and Useful, No Installation Required Add a Ruby Gem irb>> require 'asadmin' Gem install asadmin! irb>> domain = Domain.new(“localhost”); irb>> domain.each_application do { |app| puts “app: #{app.name}, type: #{app.type}” } app: trade2 type: web app: Twitterfeed type: jruby 18
  • 19. V3 FCS asadmin – III A Client-side Preferences File Should asadmin be an OSGi System? Local Commands Made Pluggable Many More Commands Feature Parity With V2 Developer Profile And Compatibility 19
  • 20. What Are Others Doing? JBoss 5.0 GA: • No changes in administration for the past 3 years. Same scripts: run, shutdown, twiddle (JMX based) • No commands for deployment. Applications are manually copied to the deploy directory. • No monitoring and diagnostics support BEA (Oracle) WebLogic 10g: • WLST – manages server lifecycle, deployment, diagnostics, navigation of MBeans • Hard to follow syntax. e.g. Invoke a Mbean Object: wls> obj s = j ar r ay. ar r ay( [ j ava. l ang. St r i ng( quot; oam ver quot; ) ] , j ava. l ang. O ect ) ser bj wls> st r s = j ar r ay. ar r ay( [ quot; j ava. l ang. St r i ngquot; ] , j ava. l ang. St r i ng) wls> i nvoke( ' l ookupSer ver ' , obj s, st r s) • Command category to WLST is not extensible GF asadmin : Most powerful and user friendly amongst 20 all others!