Wednesday, March 23, 2011

Is the Cloud Really Just the Return of Mainframe Computing?

In his article Is the Cloud Really Just the Return of Mainframe Computing? in SQL Server Magazine, Michael Otley tries to argue we're headed back to the bad old days of mainframe computing. It's obvious he just doesn't understand the impact of the cloud. It reads like a fearful warning to business that they will lose control, but exactly the opposite is true.
"Businesses moved away from that model of centralized computing on purpose. Businesses, and perhaps more specifically their departments and end users, wanted more control of their computing resources. They didn’t want to share them with other business units—let alone other businesses. This is exactly what the cloud requires that you do. These factors led to the rise of distributed PC computing, client/server computing, and the web that we use today."
On the contrary, this is a continuation of the decentralization begun in the PC Revolution. The role of corporate IT will be radically changed by the cloud. Because cloud can scale from micro instances all the way up to high performance cluster GPU instances and can be almost instantly provisioned, absolutely everyone gets their niche solution and eventually the corporate IT middleman is eliminated. We are now seeing the follow-on to the PC Revolution, something that in the future might be termed the Server Revolution.

P.S. Throw Mobile into the mix and corporate IT is in for some radical reconfiguration.

Your thoughts?

Monday, February 21, 2011

Conspicuous Absence

I felt compelled to make this entry just for the record. If you scroll the entries of this blog, you will see a time line with a big hole: what happened to 2010? Well, my Lotus work went dormant for about a year. Why? Good question. Looking back here's a bit of background and a quick synopses of what transpired.

In 2009 I really tried pushing my Notes/Domino development career into high gear. If you recall ND 8 came into the world late 2007, 8.5 in late 2008. Having the Eclipse client now was great, but I was waiting for projects using X-Pages and DDE. I had done a little Java development starting in 7, but really thought these new features in 8.x were going to be the afterburner Notes needed to really take off. I pitched alot of new ideas to management and even to some outsiders, but I think a combination of not sharing my vision and a tough economy combined into nothing much materializing.

What to do then? Well, an opportunity came along to do some data warehousing/business intelligence projects. However, there really wasn't any money allocated for it. Fortunaetly for me there are some great open source products in this category. So for the past year I have immersed myself in a different, yet not all too unfamiliar world:
  • I needed a SQL database that was serious enough for a big job. I found MySQL to be powerful enough for the job. Quest TOAD for MySQL was an invaluable tool for working with MySQL.
  • I needed a server to run it on. Fortunately, we run Vmware ESX so I could use the images available from Bitnami.
  • I needed an ETL tool. I evaluated many good ones and chose Talend Open Studio mainly because it runs in Eclipse. This thing is amazing and I even got it to connect to Notes via XML. (subject of a future post perhaps?)
  • I needed a report tool and chose Jaspersoft's JasperServer and their tool iReport. (Currently runs in NetBeans, but an Eclipse version is in 0.x releases).
  • I needed to understand BI and Data Warehouses and I landed on Dr. Ralph Kimball and his Dimensional Data Warehouse (based on the star schema). This is a very powerful way to structure data and is amazingly fast with queries.
  • Altova DatabaseSpy turned out to be the only tool I spent some money on. It's not an ERWIN, but did does a great job with my data models.
These are all really cool tools and I was able to accomplish quite alot. Obviously I learned alot about Data Warehousing. Also, my Java skills are getting stronger as alot of these tools use Java to script in. My Linux skills are getting stronger (Ubuntu server) too. I'm also stronger in my understanding of XML. Finally, I got a taste for Cloud Computing and really want to explore Amazon AWS. Although the open source versions of these tools are great, their paid-for versions are even nicer (at a price still way less than than the big boys).

Where does that leave Notes and Domino? I think I haven't lost much time, as it appears that the rest of the world is finally catching up with the new features introduced in 8.5 I still haven't done an official XPages project, but am angling to do one (I like the idea that XPages is a servelet and is extensible). I have done a Notes web service consumer in Java and that turned out to be pretty interesting.

So I haven't abandoned the platform -- in fact I'd say it is probably in the best condition its ever been in. This much I know: going into 2011, I have way more options available to me than I did a year ago.

Saturday, February 19, 2011

Update: Name too long - LotusScript web service

I wanted to close the loop on this issue, so here's what I was able to do in order to get my Notes app. connected to a hosted app. outside the firewall via a web services client. I opened a ticket with IBM on this but other than letting me know they are aware of the limitation and that they will tag the issue so it gets a bit more attention, they weren't very helpful. (BTY, they followed up on my dissatisfaction, so they are at least paying attention.)

Because the only work-around for this "Name too long" issue with the variable names in the LotusScript version of the web services consumer is a Java web services consumer, I had to crack open Apache Axis and find out what goes into a Java web services consumer. Turns out, after you get your bearings it's actually a pretty powerful package once you get to know it. DDE is a blessing in this regard because you have access to all the classes that Axis generates. (It also doesn't hurt that Axis is a widely implemented project and there are plenty of examples if you Google them.)

After creating the new web service consumer by importing the WSDL, I created the Java agent and imported the web services consumer as a library. I then used an import statement to reference the %Soap class and the %Locator class AXIS generated for me (substitute your WSDL-specific names for my %). In my agent I instantiate a new %Soap object by calling the getSoap method of the %Locator. I then use the setCredentials method to pass my ID and password to the service. Finally, I call the web service method I want, pass the parameters and chain on the get% (getResponse for my method) method to fill a variable for use further on in my agent.

As for the SSL piece, it was simply a matter of importing the remote site's certificate to the server's keyring file and making sure the keyring file was available to http (on Internet Ports tab of the Ports tab on the Server Doc). They had a GoDaddy CA so my server didn't know how to negotiate SSL.

Tuesday, January 25, 2011

Web Service Consumer - Name Too Long

I'm having some issues with implementing a LotusScript web service consumer. After the WSDL import, the compiler is throwing errors (Name too long) because some of the variable names automatically generated exceed the maximum length. I tried shortening them but that seems to break everything (somehow those auto generated names relate back to the service itself).

This workaround has you create a Java web service consumer (since Java variables don't have the same limitations as LotusScript). I'm fine with using a Java web service consumer, but I also need an authentication component, which does not get auto generated with the WSDL import. This tip explains how to incorporate authentication, but is for LotusScript. If I go the Java route then I'll need some help with the equivalent authentication fix. (Not even sure if this works using SSL.)

I did a ton of Google searches and searched the Notes forums several different ways, but there isn't alot of information available. (Are folks not using this design element very much?)

Any help with "name too long" and authentication would be greatly appreciated.

Thursday, September 17, 2009

Thursday, June 18, 2009

What I Learned About Rich Text This Week

I don't work with rich text alot, but I am aware of its eccentricities. I learned a few things this week and I thought I'd share them so as to save someone the time and frustration I endured. Starting out, I was at least aware of the whole issue with refreshing rich text in the UI, so this influenced my ideas of how I was going to approach my project.

For a Notes client app. I needed to control editing of a rich text field on a form. My first thought was to have a computed field just display the contents of the field and create a dialog box for authorized folks to edit the actual data. Although this is possible with some workarounds, the default nature of LotusScript dialog boxes is not rich text friendly. By default you can control the passing of field changes from your dialog box back into the underlying form, but not with rich text. The workarounds are to get rid of the default "OK" and "Cancel" buttons and build your own directly on your dialog box form so you can save your changes to the back end and do some script magic to make the changes appear on the underlying form. After working on the script magic and getting things to refresh, I found a show-stopping flaw in my approach. The biggest problem with this approach is that you don't have access to the rich text controls for adding any formatting to your text -- without that, what's the point? The bottom line is I abandoned the dialog box and opted to go with computed and editable fields and some show/hide formulas on the main form.

The first thing I ran into with this approach was the fact that a computed rich text field acts like a computed when composed field. The field gets set the first time it is displayed, but won't change if you make changes to the field it is computed to. Luckily Google is my friend and I found a way to make this approach work. Basically, I added a third computed text field with the formula FIELD myComputedRTF := @DeleteField; "" which blows the computed rich text field away every time the document is saved so that it can be recreated the next time it is opened.

Hope this saves someone the time and hassle learning this the hard way...

Amazon Deals