Wavemaker

0

Off-topic(?): Lessons learned with Wavemaker

During the last months I was involved in a Wavemaker project. It was NOT related to vCO, as you might have expected when reading these:

It’s just a greenfield database application with some integration into existing other systems.

So here are my lessons learned so far (more will come, I’m quite sure):

  • Clear your Browser Cache. Early and often.
  • Use the Browser debug features. Firebug and Chrome Developer Tools are your friend. See here and here for details.
  • Watch wm.log for Hibernate, ServerSide and JavaServices stuff.
  • Don’t forget to go to sleep.
  • Typing of Wavemaker Variables might be tricky, when accessing them in JavaScript or passing them to JavaServices. Check the browser debugger for correct JSON!
  • The built-in (generated) Widgets for Database access are really nice and a good timesaver when you want to create a 1:1 UI for common CRUD-tasks for the database tables. If you want to do more complex things (which involve multiple tables) and in general want to understand  what happens in background, start from scratch!
  • The Community Forums on http://dev.wavemaker.com/forums/ RULE! Comparable to the PowerCLI forums (and hopefully the vCO forums over time as well) in VMTN you find good answers with a lot of ready to use code examples for every question you have… Just make sure you pick an example that fits to the Wavemaker version you use!
  • Learn Hibernate.
  • Go to sleep!
  • HQL rocks!
  • The built-it database mnodeling tools is cool, but you might get confused about the relational vs. object-oriented way for data modeling => Again: Learn Hibernate and HQL.
  • Go. To. Sleep.
  • Dear Wavemaker team: Where is my “Parameters References”-Tab in the GUI?
  • Don’t hesitate to read Jira Bug reports. There might be some bugs which are important for your use cases!
  • Do not oversee the Reference Documentation for the Client Side Widgets and the Server Side!
  • The documentation is great, but sometimes too much! You get confused when you find 3 different code examples to solve the same problem.
  • gotosleep
  • Use Eclipse and its integration to SVN/GIT for source code management, and leverage the export/import features for the deployment process.
  • Coudfoundry is a great platform for dev/test! No further local setup needed.
  • Spring Roo is not integrated yet, unfortunately 😥 . It would be great if you can leverage Roo for the data layer. See the discussion here
  • Go to slzzzzzzzzzzzzzzzzzzzz
0

Using Wavemaker as Web-Frontend for vCO

UPDATE 23. Nov. 2011: Additional Reference: Christian Johannsen posted a great step-by-step example for Wavemaker & vCO on http://mighty-virtualization.blogspot.com/2011/11/vco-wavemaker-your-cloud-webservice.html

There are different ways to create a web-based frontend for Orchestrator:

  • Webviews (included, provide integrated finder for inventory objects BUT old, hard to learn, deprecated, don’t bother to start with…)
  • Perspectives (based on webviews, very easy to use, way to go for quick-wins)
  • build your own (call Workflows via the SOAP-based API of Orchestrator)

(for more details, see this post)

Now, rumors are out there for a long time, it seems that Wavemaker is a hot candidate as main technology for the web-based stuff in future (it was mentioned at VMworld and in the forums… Yohooo!).

The Video

To get started, see following screencast…
Disclaimer: Starting at 6:30 it gets very dirty! Do not let your children nor your VMware Support Guy watch this unattended, and only try this at home! :mrgreen:

Wavemaker as Web-Frontend for VMware vCenter Orchestrator – Sneak Preview from Joerg Lew on Vimeo.

(I used the current 6.4.2 BETA of Wavemaker against vCO 4.1, but should work as well with slightly different versions of both components…)

So, why is Wavemaker a perfect fit (The GOOD…)?

It allows to to create nice-looking websites with a real bunch of logic without the need for tooooo much knowledge about web-development. (Orchestrator allows to create complex automation for your complete IT-Infrastructure without the need for tooooo much knowledge about software development)

It defines the information flow between different elements via a parameter binding semantic. (How do you pass information through a workflow in Orchestrator??)

You can drag&drop content elements from the palette to your actual website, and program additional logic in JavaScript (in the vCO you can drag&drop…. Well, you get the point…)

It uses the same platform. (see the dirty end of the video 😯 ), so a good integration is possible.

It’s the same company. (<EVILMODEON>So if VMware learned something from the  **yourAdjectiveHere** acquisition of Dunes some time ago, this time they get synergy earlier!!!<EVILMODEOFF>)

Drawbacks (The BAD…)

As external system, your wavemaker frontend has to call workflows via the API. So it is some effort to pass input parameters to the workflow, and it is a real bunch of effort (you don’t use “pain-in-the-ass” in a public blog :-?) if your workflow needs inventory objects as input.

So, in the current version you are bound to the features, the “usability”, and the limits of vCO’s current SOAP-API.

The Future (NOT ugly, quite the opposite!)

Two things on the horizon might make the Wavemaker<=>vCO-Integration perfect in future:
First, a new API in a future version of vCO could make the usage of inventory-objects as inputs easier;
Second, a bunch of pre-built vCO-related elements in the Wavemaker Palette could make the development of the web-frontend easier (compare it to the idea, not the complexity and not-documentation, of the vCO-related Tapestry objects in Webviews)….
=> Go vCO-Team! Go Wavemaker!

References

To get started with Wavemaker and the vCO-SOAP-API, see following links:

…and:

The way shown in the video using the SOAP-interface directly with a WebService-Variable in Wavemaker is not the only way (and maybe not the best one for every use-case). You can also create your own Java stubs (see the examples-zip in the Orchestrator Documentation), and use a “plain old” JavaService Variable against them in Wavemaker.

Summary

So in general, despite some hurdles due to the limits of the current SOAP-API, Wavemaker allows you to create good looking webinterfaces for Orchestrator Workflows. And it’s absolutely worth to dig into it, because this seems to be THE technology for webbased vCO-Access in the future.