Find your next scenic drive!

March 22, 2006

Long-Lived IIOP.NET Objects...

I have been working with IIOP.NET, a CORBA toolkit for .NET, a bit more than with Using Multiple Vendor's ORBs with Name Services. While my test application was working great, my actual application was not, however.

The server component started up, instantiated a CORBA object, and saved the IOR into the registry. Then my client component would start up and take the IOR from the registry, send a message to the CORBA server, do some data processing for about 15-30 minutes, and send another message to the CORBA server. This issue I ran into is that usually the first message made it to the server, but the second one rarely did, with the error message:

  • CORBA system exception : omg.org.CORBA.OBJECT_NOT_EXIST, completed: Completed_No minor: 0 omg.org.CORBA.OBJECT_NOT_EXIST: CORBA system exception : omg.org.CORBA.OBJECT_NOT_EXIST, completed: Completed_No minor: 0
  • Server stack trace:
  • Exception rethrown at [0]:
  •   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
  •   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
  •   ...

At this level of detail, it would appear that something goes wonky on the client side, since the first message usually gets to the server, however, I also failed to mention that I usually started the server and client at the same time. When I did not start the server at the same time of the client, I would get the exception above.

In light of this detail, it became very obvious that I had an object lifetime issue on the server. Coming from more of a Java CORBA experience, I had assumed that the lifetime of the object would by-default be long-lived, however, it appears that this is not the case. To make your IIOP.NET objects long-lived (or to control the default behaviour), your objects that derive from System.MarshalByRefObject must override the method InitializeLifetimeService(). The follow makes the object live forever:

  1. public class TimeImpl : System.MarshalByRefObject, TimeTools.Time {
  2. // ...
  3.   public override object InitializeLifetimeService() {
  4.     return null;
  5.   }
  6. // ...
  7. }

Since my objects are all long-lived, the above fixed my problem. The documentation for InitializeLifetimeService() does, however, have some other examples in the event that you need more fine-grained control.

August 23, 2004

Disconnected Tools in a Connected World...

Over the weekend, it was mentioned on Slashdot that Microsoft is planning a Web-based Office Suite [Slashdot discussion]. While I welcome their initiative, there has been little focus on how IBM has a similar plan. In either case, this reopens (if ever closed, that is) the software subscription model that has been proposed many times before.

The entire software world is really being flipped around right about now. We have people like Joel On Software that argues that Web-based applications are not as rich as desktop applications, but I think the gap is really getting closer, especially with technologies like Java and WebForms 2.0.

But aside from the richness of the experience, the real difference is deployment. With web-based deployment, most of the changes are instantaneous, and for the most part (and in successful deployments), the user is completely oblivious to the change.

Traditional software deployment, on the other hand, is different; when you release a piece of software, you have to wait for users to purchase it (or download it, in the case of Open Source and free applications). Unfortunately, the migration to the latest version of software is not always quick, such as deployment within large corporations that need to install the software on millions of computers, and deal with any issues that appear. As another example, according to this, users are still using Netscape 3.x and 4.x today, and Netscape is a free download (not to fail to mention that Mozilla and FireFox are likewise free). Of course, some advocate older software is better, for both security and bloat issues, but there comes a time where older software is just too hard to support, as is the case right now with Netscape 4. The other reason to go with traditional deployment is that you do not have online access.

And then there is the road in between: Java Web Start. It is amazing technology that is unfortunately not used that much. In this model, the software is cached directly on your computer and executed there. When you startup the application and you are on-line, it polls the server that you got the software from to see if there are updates, and if so, it redownloads them. For example, I occasionally use Gentleware's Poseidon via Java Web Start, and when Poseidon 2.5 was announced earlier this month (a lot of great improvements, BTW), I got the latest version the next time I started it up. Java Web Start reminds me a bit of the Coda Filesystem in this regard, but I do not see why it is not used more.

Does this deployment issue make any difference for end-users? I am not sure that it really does; if you talk to kids about computers, many of them will not really realize what is actually installed on the computer and what is on the web. If you think about this for a little while, this is really analogous to the difference between a hard drive and RAM. Sure these details are important at a low-level, but at a higher level, as long as it works smoothly, does Mom really need to understand the difference between the hard drive and RAM? I do not think this distinguishment is really important, and I think many of our users feel the same. The important factor is that it is smooth and works.

In summary, we live in a very connected world, but the majority of our software is still disconnected, both in the schemes that they are deployed and used. Major issues that are effecting software today such as security violations would be better served by a connected model, like the web and Java Web Start, in which updates are continuous and users are, for the most part, oblivious to the changes.

August 9, 2004

More on Microsoft's Purchase of Lookout...

A bit ago, I talked about Microsoft buying Lookout. Joel On Software has an interesting analysis on it, suggesting that Microsoft is only purchasing Lookout as a means to get talent, and disposing of the technology. Part of this stems, it seems, because Lookout uses open source components, which prevents Microsoft from redistributing it.

I am pretty sure, however, that the Lookout for Outlook was not available for download when I first talked about it, but although unsupported, it is now available.

It is unfortunate that such technology must be shelved because if Joel is correct, Microsoft wants a particular talent. But it is not the first time, nor will it be the last...

July 20, 2004

Microsoft buys Lookout...

Some of the former Netscape people started Lookout, which provides some Outlook search extensions. This company has just been purchased by Microsoft. Interestingly enough, the first time I heard about this was at Jim Fawcette's Blog, and not on Slashdot (or maybe I missed it).

In Jim's blog, he mentions that this is partially to catch up to Apple's Tiger (Mac OS X 10.4), and compete with Google's Deskbar and recent purchase of Picasa. Of course, he does not mention Linux, but we all know that it is on Microsoft's mind.

I am not sure which will be more interesting, the fight between Microsoft and Google or the second coming of the Browser wars...

July 7, 2004

More Lawyers than Programmers...

When I received my July issue of the Communications of the ACM and saw, "More Layers than Programmers," by Michael Cusumano, I have to admit that I was not thinking Microsoft.

Think about it for a moment. We have companies, for lack of a more accurate term, like SCO that have law suits, claiming that organizations like IBM and SGI have misused their UNIXtm license (currently controlled by SCO) and have contributed some of the code to Linux. It is completely coincidence that SCO's numbers were not so impressive before this and that Microsoft seems to have something to do with this. In addition to this mega suit against IBM, SCO is also attacking various companies for Linux licenses. As a recent article states about DVD Encoding, the issue at hand is about the law and is not technological.

Then we have the patents nightmare, like the Slashdot icon for patents, the entire ridiculousness of patents, such as the GIF code being patented twice, the swing patent dating for November, 2000, and the PanIP suits over sales using textual and graphical information to match customers. I mean, two patents covering the same thing? A swing that did not exist prior to the year 2000? And how many of you have purchased something off the 'net without seeing pictures or text?

As such, I expecting an article so titled to discuss how many companies are building up their lawyer departments to combat such silliness and create their own, and how perhaps someday such organizations would have more lawyers than developers.

The article is really an interesting read. It argues that Microsoft is spending more and more time fighting legal battles, which eventually Microsoft will have more lawyers working for them than programmers, or at the very least, spend more money on lawyers. This directly correlates to less attention to the product, and as Microsoft is no longer a growth machine, they should really consider rethinking their goals.

The article highlights the requirements of the European Union decision, which requests that a version of Windows be distributed without applications such as Media Player, and to release more information about its products, which could allow other applications to run on Microsoft's platform as well as Microsoft's own applications. These two requirements seem to be quite easy to comply with, but Microsoft has vowed not to comply. It should not really be surprise, considering that Microsoft has already been involved in similar investigations and trials in the United States for similar things, such as the Netscape anticompetitive conduct suit.

Shipping Windows without Media Player is just allowing other players, such as Real Networks and Apple's QuickTime, a chance to play too. Microsoft's inclusion of Internet Explorer with Windows has given Internet Explorer over 90% of global usage (although US-CERT now recommends you use another browser, and Mozilla downloads have serged). To an extent, I do not think it would make much sense to install a new seat of Windows and not have any way to access the 'net, but on the other hand, Microsoft's products are not always superior.

None the less, the point here is that there are a lot of features that Microsoft is including in their products that are ruining other organizations. For example, in Windows 95, they included HyperTerminal, which greatly improved the Windows 3.1 communications program, however, this decreased sales of others that were competing in this market. They have also done this for system tools and data compression tools; they now include a firewall and plans to provide anti-virus software.

The problem with this is that Microsoft generally includes these applications for free, which severely harms their competitors and competition. The article asks, but does not even attempt to answer, how many organizations have been affected by this type of behaviour. Microsoft insists that this is good and cheap for its customers, which it is, but what do customers really want? It would be really nice never to see an application crash again, do away with viruses, or even a free seat of Office.

An interesting point that is made in the article is that Microsoft has really made litigation very attractive. The European Union got $613 million in fines; Sun got $1.9 billion over Java, Intertrust got $440 million over DRM software, AOL got $750 million over Netscape, and the list surely goes on.

But Micheal Cusumano's point in all of this is that the market should decide the future of Microsoft, not the courts. In the light of so many competitive solutions like Linux and OpenOffice, we have alternatives to Microsoft's buggy software, and by the looks of their Get The Facts Tour, it seems that Microsoft is already concerned of these.

Although significantly different than I was expecting, this article is a good read. Enjoy.