Currently we are working on setting up environments for a large-scale project.

For the Windows environment, we are setting up HP Blade environment with few blades and VMWare server on top. HP Blades setup one cool setup with iLO (integrated Lights Out) capability allowing us to manage the entire enclosure and all the devices within the enclosure through single interface.

One of the components in our environment is Windows SharePoint Services (WSS 3.0). We are planning to virtualize this along with the backend SQL Server 2005. So, we are talking about setting up SQL Server cluster on VMWare running on Blades and then using the same for a virtualized WSS setup. This is going to be very interesting. While searching the web for information on best practices for performance on virtualization, I came across this very nice document by Viral Tarapara.
 

SharePoint Virtualization Best Practices

Enjoy.

I do have doubts on using virtualized environments for SQL Server cluster. However, few documents on the net show that it is feasible and workable solution.  

More on our experience with this setup later…

Hiren

Folks,

We are looking for qualified people for a large project we started in NJ/Philly area:

1. Identity and Access Management Architect, Designers and Developer

  - Application focused Id/AM experience required (how to interface with SAM/OpenSSO for RBAC implementation etc.)

  - Sun IdM for integrating application user store with the corpoate user store to enable SSO

  - AD and SAM/OpenSSO integration using SPNEGO, SAMP or other technologies (WS-Federation?)

2. IBM WebSphere SOA/BPM Designers and Developers

  - Designers and developer to help with process modeling using WebSphere Business Modeler

  - Translate these models into code using WebSphere Integration Developers

  - Implement Human Workflow

Please check out the job postings at http://www.innowix.com/Careers.html

Send you resumes to recruiting@innowix.com.

HB

 

On September 6, 2008, Innowix sponsored a Puzzle Party 2008. The Puzzle Party is about gathering group of friends and challenging them to a series of puzzles with time constraints.

Innowix Puzzle Party 2008

It was held at Kensington Metro Park located near Innowix home base. If you are curious, check out the details at http://sites.google.com/site/puzzleparty2008/.

Hiren

This is a follow-up to my earlier blog post on Gadgets and Widgets in the Enterprise. 

I am currently engaged at a client who is developing an enterprise application to manage their customer records. Their entire business revolves around their customers (well – if you are a hospital then your business revolves around your customers – patients!). The business users need to review information about their customers in near real-time and make decision and provide updates.

They have engaged a product vendor who had an existing product to manage this information. The product vendor’s architecture approach revolves around the gadgets/widgets based approach. They have broken down the user interface into many small blocks (which they call portlets). These portlets are put together into a page and displayed to the user. The pages and portlets are implemented using a combination of HTML and heavy JavaScript and are rendered to the browser (along with bunch of ActiveX for charting etc.).

The user has some flexibility to select number of columns to display portlets in. The vendor can control which portlets the user cannot remove from the page or move from its current position.

However, there are few problems with this approach.

1. These portlets have very limited capabilities to communicate with each other which force them to implement very self-contained portlets. This results in some duplication of code across portlets.

2. Their portlet runtime on the client-side is not based on any standard JavaScript library which makes it difficult to manage and maintain in long run.

3. Their server-side implementation is not based on any industry standard runtime (e.g., ASP.NET, JSP/JSF etc.) which create major hurdles in enterprise integration. For example, if they wanted to take few portlets and deploy it in their enterprise portal (say on SharePoint or WebSphere Portal), they will have to re-write these portlets as SharePoint web parts or WebSphere portlets. This defeats the whole purpose of “reusable enterprise gadgets/widgets”.

4. The portlets do not invoke loosely implemented services at the backend which make it extremely difficult to use enterprise data with other departments, agencies and business partners.

Given these issues and the fact that there’s a lack of enterprise SOA approach and enterprise repository for services and gadgets/widgets, the portlets usage will be restricted to this product implementation.

Hopefully a future version of this project will address some of these issues and make it easier for IT to deliver on the promise of business agility and flexibility using approaches such as SOA and Enterprise gadgets and widgets.

Until next time…

I wanted to take this opportunity to reach out to you and request your support for Aamir and his quest to participate, finish and win the Philly Triathlon even. I worked with Aamir at my previous employer and became good friends. Aamir’s Participation in Philly Triathlon 
Aamir is training to participate in an endurance event as a member of The Leukemia & Lymphoma Society’s Team In Training for the Philadelphia Triathlon, which involves swimming 0.9 miles, cycling 24.8 miles and running 6.2 miles (whew!! That will tire you out man!). All his team members are raising funds to help stop Leukemia, Lymphoma, Hodgkin Lymphoma and Myeloma from taking more lives. He is completing this event in honor of all individuals who are battling blood cancers.
How to Donate 
I request you to make a donation to support his participation in this triathlon and not only show that you believe in him, but more importantly help advance the Society’s mission.  Please follow the link to make the donations - http://www.active.com/donate/tntmi/ANajam. All donations are tax deductible in US.
You can make the donations anonymously (you will still get a receipt for your tax filings etc.).
Background on The Leukemia & Lymphoma Society
The Leukemia & Lymphoma Society is committed to finding cures for leukemia and related diseases and improving the lives of those affected by these diseases. All donations made to the Society are tax-deductible (in US!). You can find more detailed information on their mission and activities at the following link: Leukemia & Lymphoma Society.
Aamir’s Blog – Keep an eye on his progress 
You can also check out his progress on his blog - Click here to see how he is dealing with his training!
I like this part the most as I can sit on my couch and cheer him up! I really admire him for participating in the event and going through the grueling training. I think it is worth donating some money just to see him go through this!
Good luck to Aamir and his team and thank you all for your support.
Please spread the word.

Introduction

It is interesting to see how Google, Yahoo and Microsoft are slugging it out for yours and mine eyeballs. One of the latest tactics is to deploy Gadgets or Widgets that you install either in an online composite portal page or better yet on your desktop.

I guess it is easy to get the composite page implemented on the Internet (check out http://dropthings.com/ - looks just like http://www.igoogle.com).

I am more interested in the desktop based composite applications or “Desktop Portals”. The idea is very simple – install some type of runtime environment which can allow installation of various gadgets/widgets – small self-contained applications and let users personalize them with their preferences. In return, you get to understand the user’s interests. If you are Google, Yahoo or Microsoft, you can easily track who you are and what your interests are and potentially target you with ads which you are most likely to view and click (ka-ching!).

Things get interesting for you as an application developer, when you are targeting both web world and desktop world and trying to keep things in sync. How do you develop a single gadget once and deploy it either on the web (say for iGoogle) and then also for running on the desktop? I am yet to do research on the existing products available from “Big Three” to see how transparent things are for them. At least Google states that these two are separate environments and require different tooling and technologies. I will confirm that in few days.

My Experience with Google’s Desktop Gadgets

I tried out Google’s Desktop widgets development and it looks pretty straight forward. There’s an XML file which describes the layout of various elements to be displayed (labels, buttons etc.) and then there’s a JavaScript file where you provide various event handlers. Then there’s the manifesto file – gadget.gmanifest – which provide metadata about the gadget. That’s about it. You double click this gmanifest file and it loads the gadget into the Google Sidebar. Obviously I just looked at the “Hello World!” gadget so I am simplifying things a bit but you can pretty much do anything including call native OS facilities. Google also created a lightweight IDE to let you visually develop the gadget a bit. However, you are better off using some other IDE of your choice. I recently found this Notepad++ (http://notepad-plus.sourceforge.net/uk/site.htm) as a Notepad replacement and it is awesome! Check it out.

Adoption of Gadgets within Enterprises

Now, going back to the Desktop gadgets: I could not help but think as to how can we bring this simplistic development paradigm to the corporate world! This is how I see things happening:

  1. Build a lightweight runtime environment for desktops/corporate web portals to host gadgets/widgets. Let’s call it AcmeDesktop for Acme Corporation. This runtime should handle security, inter-widget communication, auditing, tracking and metering, service invocation (SOAP/REST etc.) and basic user interface styling etc.
  2. Create a developer’s guide/cookbook and possibly a customized IDE (use Eclipse and provide plug-in for AcmeDesktop development.
  3. Create an asset repository for hosting gadgets – extend Rational Asset Manager or similar products (LogicLibrary or ComponentOne or something similar) to host these gadgets.
  4. Let’s power users develop composite applications by selecting the gadgets they want.

     

Examples of Enterprise Gadgets

I can think of few gadgets in the corporate world:

  1. Dashboard gadgets – to display corporate KPIs or departmental KPIs
  2. Unified communications gadgets – IM, Phone, e-mail etc.
  3. Calendar and meetings gadgets
  4. People lookup gadgets (and picking a person will trigger a message to the unified communications gadget for it to display that person’s status and whereabouts
  5. Twitter for Corporations – A gadget to find out who is where at any given point of time – tie this to the security badges or RFID and you will be able to pinpoint the person you are trying to find (problem is that you can no longer hide!)
  6. “To-do” gadget – For personnel doing repetitive tasks (such as case workers handling cases for health services), give them their view of Inbox through a gadget and clicking an item will open detailed application view (and if the application is built on the same platform then it will activate few other gadgets to display the demographics information about people involved in that case, case history gadget will display history info, case decision details gadget will display the decisions made and routing gadget will allow that user to route the case to somebody else).
  7. Time sheet gadget – will allow you to easily keep track of time spent on various projects and also show a personal dashboard of the time spent by projects, by week, by day etc. Your boss will have another gadget which will show timesheet information for all the people reporting to him/her in an aggregated fashion.
  8. Reminders/Alerts gadget – To remind you of all the corporate/admin stuff you have to do (like filling out the timesheet, completing the expense reports etc.)

Integration of SOA and Gadgets and related Ecosystem

Anyways, I digress – The point is that just like SOA’s value is in creating reusable services which can be composed into a composite application, I strongly believe that the next wave is about the gadgets and widgets which will internally use those services which were created when SOA was implemented and various services were created. All the issues that we saw with SOA – repositories/registries, governance, security and composition etc. will have to be revisited for gadgets/widgets.

I also see a move by Microsoft and probably IBM to create a generic “Corporate Widget Runtime” environment based on their technologies. Microsoft already has this in form of Vista Sidebar. This generic runtime will allow the corporate architects to customize it for their needs (e.g., enforce certain security standards, disallow removal of certain gadgets, enhance with additional auditing and tracking etc.) and then allow the building various corporate applications.

I also see various SaaS and product vendors providing gadgets/widgets which can be plugged into the generic “Corporate Widget Runtime”.

Realizing the Vision for Corporate Gadgets

So, what do we need to achieve this vision?

  1. A standard describing the gadgets/widgets runtime environment. Does anyone remember OLE, ActiveX etc.? We need something similar but much more open and loosely coupled
  2. Stronger typed and compile language to implement the gadgets/widgets. I guess JavaScript is “good enough” and may win in long run (like HTTP won over CORBA and RPC due to its simplicity)
  3. A set of standards for inter-gadget communications
  4. A standard and related framework to define, deploy and enforce various corporate policies for the runtime
  5. A set of standards and development practices for gadgets and widgets (including registry/repository for storing and publishing the same)

Now, if you have not checked out, please review this W3C working draft - Widgets 1.0 Requirements W3C Working Draft 9 February 2007 at http://www.w3.org/TR/2007/WD-widgets-reqs-20070209/.

Nice start I guess! The document states:

This document specifies the design goals and requirements for a specification that would standardize the way client-side web applications (widgets) are to be scripted, digitally signed, secured, packaged and deployed in a way that is device independent.

Let’s see how this working draft gets matured over the period of time.

Available Technologies

For corporate developers, we have few choices when it comes to the Desktop Widgets.

If you really want to leverage an existing runtime environment, then Vista Sidebar is the de facto choice (unless you are an Mac shop then you can also use Apple Dashboard!). You can also choose Google or Yahoo runtime if you wish, however, I cannot comment on the richness of the platform, availability of APIs and the integrated policy framework.

If you want to build a “Corporate Gadget Runtime”, then you have following choices:

  1. Use Microsoft .NET and WCF, WPF and WWF technologies – very rich set of development APIs and environment. It might be appropriate to develop the runtime using this but gadget development should be highly simplistic
  2. Explore Microsoft Silverlight – the upcoming platform to compete against Adobe (This is a case of a traditional developer centric shop going into design world)
  3. Adobe Apollo – Very rich environment for graphics and multimedia experience. I am not sure of their strengths when it comes to corporate development needs. May be in next year or so they will be mature enough – or if IBM or Oracle buys them out then it is a different story.
  4. Eclipse Rich Client Platform – A very good platform to choose but you will have to simplify things significantly for your developers. IBM is betting on this and have built their next generation of Lotus offerings on this. Keep watching them.
  5. I am sure there’s more that I am forgetting. I would love to hear your views/opinions on this.

Summary

Gadgets win hands down when it comes to simplicity of the development, deployment and use by end users. That is the huge plus for the gadgets.

The gadget development and adoption will be driven by the “Big Three” and corporations will eventually embrace them just like they have started to incorporate Web 2.0 technologies within their corporate IT strategies and infrastructure.

The corporate adoption of gadgets is a natural progression of the SOA; however, it will take couple more years before corporations start considering gadgets seriously.

A whole new ecosystem will get developed for gadgets driven by “Big Three” and supported by developers and SaaS vendors alike.

 

As I always say, we live in very interesting and dynamic times and things get much more interesting day by day. Until next time…

Hiren

 

 

 

 

Check out the blog entry - From The Information Age To The Connected Age by Zelenka over at GigaOM. 

Pretty good analysis…
 

Here are my thoughts:
I am in the market to buy a car. Obviously we did some preliminary research on MSN Autos and Edmunds.com and we also looked at manufacturer’s sites for specs etc.
 

Once we decided on the class of the car, the time came to do some comparative analysis. This is where the Web 1.0/1.5/2.0 technology based user interface features started falling short. The user experience was horrible. I had to click through so many times to get to what I wanted (which BTW I had visited 15-20 minutes back! The comparison also didn’t allow me to see more than 3 cars (MSN Autos) per page and in addition it failed to show all the information in one go. For example, I wanted to select a specific model on Edmunds.com and I had to click about 4-5 times (Click new car, select make, select year, select model and then click on that model). I didn’t even see a Search button either. It would be very useful to simply type in the vehicle information - “2008 Lexus IS350″ - and land on the home page for that vehicle!
 

Eventually I got so frustrated that I downloaded all the data into Excel (actually I copy/pasted data in Excel – not really download). I also copy/pasted page snippets into a Word document to see all the relevant information in one page (e.g., expert’s ratings, user’s ratings and reviews in one group, NHTSA safety data/information in another UI block, fuel economy data into another UI block etc.). 
 

Then I used Excel 2007 feature of conditional formatting to find the model with best numbers for each feature. This helped quite a bit in getting our ducks in row.
 

Next up – test driving the short listed vehicles (at least 3 of them) and then making a final decision.
 

Obviously Edmunds.com data around TMV etc. came in quite handy.
 

Lessons learned – I guess I am the power user when it comes to available data on the web. I wish they had given me an option to download the vehicle specifications in Excel – or given be a database on the web with all the manipulation capabilities. I also wish that they had given me a bunch of UI widgets that I could plug into my portal page and then trigger them with the vehicle data from some other widgets. This – in my mind – is true Web 2.0 or even Web 3.0 capability that will work in enterprises. In summary – enterprises need highly structured data with highly structured/usable UI to manipulate them to make final decisions.
 

I guess there is an opportunity here – create a data service on the web to fulfill the wish that I have. The data can be any data – product data mostly – vehicles, computer parts etc. The user should be able to pick the access mechanism – web only, smart client, Excel (incl. Excel service), Access database, XML, widgets/gadgets (for Google, Yahoo, Vista etc.), PDF and mobile – anything! The site should provide complete sort, search, filter, grouping capabilities etc. which will obviously depend on the access mechanism.
 

I guess there are few products out there but I am not impressed with these – DabbleDB is one of them. I have to use it and see what type of facilities it provides.

BTW - We are yet to finalize the car purchase! Will test drive few cars this week and then by early next week we should have completed this task!

Well folks…Here it is. My first blog entry for the Innowix.

It has been a dream of mine to start a company for quite sometime. I have been fortunate to work with few large IT consulting organizations and through them have interacted and built many systems for large and small clients. Now it is time to leverage those best practices (and avoid worst practices!) to help my own clients.

The focus of this blog is going to be mostly related to technology, architecture and how I am applying these aspects in innovative ways to help my clients not only cut costs but also help with top line growth.