Category Archives: Software Development

More Thoughts On Rich Internet Applications And Applications In General

Compared with advances in other application development, the rich Web application development using Java is not quite there yet. Instead of simplifying JavaScript, AJAX, and JSF, we need a new head start. Don’t get me wrong, some of them are still needed and continue to work well for plain Web applications.

“Develop Once, Run Everywhere”

Adobe Flex has done a fairly good job for Web. Even better the same code can be easily tweaked to run as a standalone application with Adobe AIR. This was once an expectation for Java when it first came out to run as an Applet. Somehow it didn’t succeed in its birth place, but gained its ground at the server side instead.

JavaFX from Sun is a nice try but too late in the game. More importantly, Sun is not a client software company like Microsoft who was also late with SliverLight but has client side expertise and managed to compete. I don’t think Sun will reclaim its already lost client market at all, and therefore JavaFX is likely a candidate to be axed after Oracle’s acquisition. The investment on JavaFX should have gone to Java Swing, which is a lackluster compared with IBM SWT.

Posted in Software Development | Tagged , , , , , , , , , , , | Leave a comment

Learning Spring Faces, Security, Testing and Grail

Done with the four day training, finally! It’s pretty exhausting given that I had to get up two hours earlier to match the Central time schedule.

Spring Faces

I talked about JavaScript and AJAX two days ago. They are all good to some extent, but seemingly disconnected from the server. You have to think and manage the Web app as two pieces, bad for the productivity.

JavaServer Faces (JSF) technology was created to solve this problem. It a server-side framework, which provides GUI components, manages their states from the server side, handles events, and etc. You can then develop a web app more like the standalone application in some sense. Because JSF manages the state from the server side, it uses more resources and less performant than it’s JS/AJAX equivalent.

Spring Faces is not a replacement for JSF, but complements in the “Spring” way. It facilitates deeper JSF and Web Flow integration, manages JSF components’ states, and provides more lightweight JSF components. Therefore, you can get leaner web application than using pure JSF.

Debugging

Several tools can be handy for your debugging:

Posted in Software Development | Tagged , , | Leave a comment

Learning Web Flow With Spring

Web flow is the most confusing part so far in RIA with Spring training, therefore a whole day was dedicated to this.

From a very high level, a Web flow is just like a wizard in a stand-alone application. It guides a user through several steps of interactions. Complicated wizards may branch out depending on the information entered in early steps, so do the Web flows.

Well, Web environment has its uniqueness and challenges. Spring Web Flow is designed to ease it. Like any other framework, you have to overcome the learning curve before you can really take advantage of it.

The good news is the Web Flow still fits in the MVC framework overall, just with a new set of handler mapping, handler adapter, plus the new flow executor.

Posted in Software Development | Tagged , , | Leave a comment

Learning JavaScript + AJAX

It’s the second day of the four day training. A lot of things were covered:

  • Modern Web UI including progressive enhancement, accessibility, and design.
  • Applying Spring JS, an abstraction around other AJAX toolkit. The coverage includes AJAX events, client side validation, and rich widgets.
  • Working directly with Dojo Toolkit, including DOM scripting and Dojo widgets (Dijit).

The progressive enhancement is a great concept. The basic idea is to have your web pages start with plain HTML and then “decorates” them with richer L&F and more interaction on the fly. The key benefit is better compatibilities with different browsers which all support HTML but not necessarily JavaScript. When JavaScript is supported by the browser, the pages are enhanced by the embedded JavaScript; when not, the pages just render well as normal HTML.

Posted in Software Development | Tagged , , , | Leave a comment

Learning Spring MVC

Today is my first day in a four day training – Rich Web Applications With Spring. It’s a pretty intensive day from 7AM to 3PM which covered the following:

  • Quick start with Spring Tool Suite  and reference application.
  • Spring MVC essentials, including architecture, controllers, conventions.
  • Using layouts and views, including composite views with Apache Tiles, and multiple rendering technologies like Excel, PDF in addition to the HTML.
  • Processing form pages, including data binding, validation, and form tags.

I used Java Servlet and JSP about 10 years ago while working on a NMS project. At that time, there was no good MVC framework for developing a large web application. You had to program against the Java Servlet APIs directly. Jason Hunter’s book Java Servlet Programming was my favorite book.

Posted in Software Development | Tagged , , , , | Leave a comment

CO2: The Formula For A Successful Developer Ecosystem

Since joining VMware two and half years ago, I have been working like a consultant on partner enablement projects in various technical areas like SDK, SRM array adapter, VI Client plug-in, DRS clustering, etc. While working on these engagements, I always think about more efficient and more effective ways to get my work done and grow our developer ecosystem.

To summarize what I learned and thought, I decide to use CO2 as the success formula because it fits well when we talk about an ecosystem. The CO2 here means differently though. It represents Cash + Open source + Open communication.

Posted in Software Development | Tagged , , | 1 Response

Get your hands dirty with self paced labs at PEX 2010

Besides the talks on VMware APIs, two self paced labs are there for you to try out the vSphere SDK and PowerShell at PEX. More details are quoted in later part.

As a bonus, you will get a chance to learn VI Java API in the SDK lab. Thanks to VMware TAM Alton Yu for making this happen! I will be there when I am not presenting my talk “Architecting Your Applications for VMware Cloud”, or helping on the BOF, genius bar, etc.

Also posted in vSphere API | Tagged , , , | 2 Responses

How does LinkedIn.com do the search?

Search has been a hot topic since Google successfully monetized it with advertising business model. Besides general Web content search like Google does, there are many other types of searches needed for other Internet companies.

LinkedIn.com, with which most of us have created profiles, offers search capabilities based criteria like keywords, names, location, industry, companies currently with and before, school, etc. Because what Linkedin.com has is well structured data, you and I expect it to do a better job than Web searches. In fact, it does.

Also posted in News & Events | Tagged , , | Leave a comment

Why does C# Web Service code look weird?

Today I read a posting at VMware community forum about the weird code required by C# Web Service. If the following line is missing, then the vSphere API call to get properties doesn’t work:

VimApi.VimService.PropertySpec.allSpecified = True 

But the problem is that there isn’t any property defined as allSpecified in the object PropertySpec according to vSphere API Reference.

So, where does the allSpecified come from? and why is it needed?

Also posted in vSphere API | Tagged , , | Leave a comment

Why DoubleCloud? The mission statement in short

After setting up this blog site, I updated my LinkedIn profile. This morning, my colleague Gilbert left me a comment saying “why not hybrid cloud?” I know he was kidding, but it’s a good time to explain why I got this name.

The basic idea behind the name is the following equation:

DoubleCloud = PublicCloud + PrivateCloud

or as some people prefer

DoubleCloud = ExternalCloud + InternalCloud

Also posted in Cloud Computing, vSphere API | Tagged , | Leave a comment

Tips working with older versions of VMware Infrastructures using VI Java API 2.0

Among many well know improvements like huge performance boost, VI Java API 2.0 has a big feature that we don’t talk much. It’s the full compatibility: one library for all the existing version from 2.0, 2.0 to 4.0.

Also posted in vSphere API | Tagged , , | Leave a comment

Object Oriented REST?

As mentioned in previous blog, REST is a style than a systematic way defining distributed interfaces. Given how it’s used today, there is a big gap between how it’s used and sophisticated software system development.

The gap between REST and OO

Posted in Software Development | Tagged , , | 3 Responses

REST or SOAP?

REST or SOAP?

REST is acronym for Representational state transfer (REST). It is a software architecture style for distributed computing system such as Web.

For whatever reason, it got so popular today that many people equals the future of Web Services to REST. It’s true that REST based API is easy to understand with simple HTTP request/response messages in XML format. You can get some work done using text editor plus web browser.

Also posted in vSphere API | Tagged , , | 2 Responses
  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.