Presentation on theme: "Successfully Installing and Configuring Java Software Across Multiple Platforms Greg Maletic CTO Zero G."— Presentation transcript:
Successfully Installing and Configuring Java Software Across Multiple Platforms Greg Maletic CTO Zero G
Agenda Overview of deployment issues How InstallAnywhere Enterprise Edition solves these issues Technical Case Study –Informix/Cloudscape Q & A
Things developers like to spend time on: Research 183. Re-install Windows NT Grout shower tile 184. Listen to installer presentation 185. Build installer Our goal: Minimize the time you have to spend with our product. Research shows: No one likes building installers Configure Linux OpenGL drivers …
Main Problems Deployment –How do the files get to where theyre needed? On every platform? –…uninstall? Launching Java software –How do end users or other processes run my Java software? –How does the classpath get set properly? –How do I make sure the right VM is being used?
Main Problems System Configuration –How do I detect previous installations? –Install into a special server directory? –Set environment variables? –Create shortcuts and links? –Install services?
InstallAnywhere Enterprise Edition Supports virtually all Java technology- enabled platforms Easy to use Handles all the platform-specific details Supports latest Java technologies Highly customizable Not just for Java!
InstallAnywhere Enterprise Edition - Core Features Installs to Windows 98/NT/2000, Solaris, Linux, Mac OS, HP-UX, AIX, IRIX, and more... Creates LaunchAnywhere app launchers for Java software Optionally installs private VM for app Automatically detects MAIN class and CLASSPATH Creates WebInstall to deploy over Web
InstallAnywhere Enterprise Edition Custom Code Action & Panel (Open API) Run actions before and after installation Build updaters Set system variables Serial number/password Extract archive
InstallAnywhere Supports Multiple Deployment Models Development Computer (any Java-compatible system) Deployment Server (HTTP server) Clients CD-ROMs Disconnected Users Windows Unix Mac OS Heterogeneous Web and Application Servers
Cloudscape Cloudscape (Java ORDBMS) A 100% Pure Java embeddable Object- Relational Database Management System with Synchronization –Cloudscape –Cloudsync –Cloudconnector –Cloudweb
Cloudscape Distributed Internet Application Development Platform Deployment Landscape –Hundreds of thousands of Eval copies –All conceivable Java platforms Complexity of Landscape –Deploy variety of products –Deploy large application –Deploy to every platform –Frequent point releases
The Challenge Ease of Use for Customer –Quarter million evaluation copies can add up to an enormous tech support problem Large piece of software –Thousands of files for our Cloudconnector product Cross Platform –Windows NT well understood by us –Macintosh… well…
Cloudscape Tool Requirements –Ease of Use, both in-house and for customers –Supports all platforms –Speed of Installation –Batch mode installer building Customization Features –Ability to run code at Install time –Ability to perform functions like adding things to Windows Start Menu
Open API Goals –Let developers extend the behavior of the installer –Support use of native code –Add GUI into the install wizard –Let developers modify the installers behavior at install time –I18N compliant Major classes –CustomCodeAction –InstallerProxy –CustomCodePanel
Open API: CustomCodeAction Lets you add your own new, reusable behaviors to the installer How? –Extend CustomCodeAction –Put your action and any supporting classes or resources into a JAR –Add Execute Custom Code Action action into installer project
Open API: CustomCodeAction Override: –void install(InstallerProxy) Code to be run at install time Use InstallerProxy to get access to installer environment –String getInstallStatusMessage() Message to display onscreen during install –void uninstall(UninstallerProxy) –String getUninstallStatusMessage()
Open API: CustomCodeAction What can you do? –Write your own Java code to perform virtually any action –Log data that can be used at uninstall –Load I18N resources –Use native code –Use InstallAnywhere Variables to pass data –Use progress bar to communicate status Communicate with InstallerProxy to do this
Open API: InstallerProxy What can you do with InstallerProxy ? –void setVariable(String varName, Object) Object getVariable(String varName) –String getLogOutput() –void setProgressPercentage(int percent) –File getTemporaryDirectory() –URL getResource(String archivePath) –void AbortInstallation()
Open API: CustomCodePanel Lets you add your own GUI into the install wizard How? –Extend CustomCodePanel –Put your panel and any supporting classes or resources into a JAR –Add Show Custom Code Panel action into installer project
Open API: CustomCodePanel What can you do? –Specify your own wizard steps to ask configuration questions –Set InstallAnywhere Variables like USER_INSTALL_DIR –In simple cases, just use Show User Input Panel
Building the Installer
Why should you use InstallAnywhere? Multi-platform Designed for Java developers –…but not just for Java Easy to use Easy to extend
Who Uses InstallAnywhere? Sun –JFC classes –Beans Development Kit (BDK) –JavaHelp –many others… Inprise –JBuilder 3.0 IBM, HP, Intel, Lucent, AT&T, and thousands of others
InstallAnywhere Editions Enterprise Edition –$1,995 per developer seat Standard Edition –$995 InstallAnywhere Express –$495 InstallAnywhere Now! –FREE
Zero G DevNet Your resource for software deployment expertise –Online community –Newsgroup –Knowledge Database –Posting area to share custom code actions and panels –Unlimited phone and support –Unlimited upgrades –Early access to latest technologies Annual subscription –$995 per developer per year The fastest way to get your installer finished and over with!
Conclusion InstallAnywhere Enterprise Edition –More users of any multi-platform installer technology –More features and functionality –More platforms –More extensibility Handles major deployment models –Standalone applications –Rich and thin client-server applications
What You Can Do Visit the Zero G web site (www.ZeroG.com)www.ZeroG.com Download a trial edition of Enterprise, et. al. …or, use InstallAnywhere Now! absolutely free of charge
Q & A Zero G (415) Greg Maletic -
Sun Microsystems Java Foundation Classes A Comprehensive Set of Class Libraries –GUI component suite –Pluggable Look and Feel API (PLAF) –Accessibility API –Drag & Drop API –Java 2D API Core to Java 2, Standard Edition software External Package to JDK 1.1 Software Environments
The Challenge Diverse Platforms, Diverse Requirements –Classpath settings –How to launch the demos –Which Java run-time environment –How to uninstall –Links? Shortcuts? Aliases? The Customers Impression of the Product –Installation is the customers first user experience We are Technology Developers, Not...
Impact of Using an Installer Great Decrease in s Regarding: –Path, classpath problems –Installing and running the demos on Mac OS –Other Unix systems –Running against wrong run-time environment Ability to use Billboards During Install Uniform Install Experience on Most Platforms
Why Zero Gs InstallAnywhere? Technology Adopters –InstallAnywhere is written in the Java programming language itself –Zero Gs JFC adoption Application Wrappers –Native user experience Customization –e.g., which run-time environments, ability to install specific items on specific platforms Customer Support –You call, they fix it
Why Zero Gs InstallAnywhere? Technology Adopters –InstallAnywhere is written in the Java programming language itself –Similar cultures; fast turnaround time on features and point releases Customization Features –Ability to run code at Install time –Ability to perform functions like adding things to Windows Start Menu Customer Support