Archived at Pineapplesoft
 ananas.org 
  The Pineapplesoft Link newsletter covered a wide range of technical topics, see the archived issues.
The newsletter was first emailed in 1998. In 2001 Benoît discontinued it in favour of professional writing for magazines.
The “January 1998” page was archived in 2003 to preserve the original content of January 1998.
 
  | Home | Contact | Site map | Writings | Open source software |  


 

Welcome to the first issue of Pineapplesoft Link. I intend to cover a large range of topics ranging from distributed applications to handheld devices. In this issue, I discuss distributed applications with an introduction to crossware and 3-tier client/server.

I'd like to hear from you. Your opinion will help me improve the newsletter so please send your comments (what you liked and what you disliked) to [address removed, the newsletter is no longer published thank you for your support].

Before jumping right into it, I would like to wish you a very happy New Year.

Pineapplesoft Link, January 98: Crossware and 3-tier applications

At the beginning of December, Netscape organized its first European developer conference (DevCon in Netscape parlance) at Paris-La Défense. I was there.

I was positively surprised by the quality of the conference. I have used Netscape products in some projects and, although I have run into some problems, I believe Netscape is doing a great job for such a young company. The quality of the conference was a further proof that they have achieved a high level of maturity.

The conference leads to this month's topic: crossware and 3-tier applications. You've probably heard of 3-tier before, it's more an evolution than a revolution. In this article I explain why it's a desirable evolution for client/server development in the enterprise.

All the big players, including Microsoft, IBM, Sun, Netscape and Borland, have embraced 3-tier. On the other hand, Netscape is really the champion of crossware. Still, as you will see, crossware may fit neatly in the picture and I'll introduce it as well.

Software

Organizations use and build software that roughly falls in two categories which I will label as "enterprise software" and "departmental software".

By enterprise software, I am referring to applications that supports the core business of the organization. Mission-critical would have been another good name. Enterprise software is vital for the survival of the organization. Obviously what qualifies as mission-critical is very specific to each organization. For example, a 3D studio would argue that graphic packages are mission-critical.

Still, in most cases, the backoffice is the mission-critical software. The ability to order goods, invoice for products or services, manage stock, etc. is what makes or breaks most businesses.

Departmental software is essentially all the rest. Departmental software may be very useful in the day-to-day running of the business but it is not vital. Typically departmental software is critical for a department only but not for the company as a whole -- hence the name.

The distinction is interesting because it helps us think about software in the enterprise.

Departmental Software

My focus today is on enterprise software but I have to discuss departmental software first.

Until recently departmental software is where all the fun has been. With the massive deployment of Windows PCs in organizations, departmental software developers have enjoyed all the benefits of modern software development: object-oriented methodologies, RAD (rapid application development) and client/server.

There's lots of hype behind client/server but let's not forget the facts. Client/server has a proven track record in many places. It has effectively enabled developers to create better software in less time. And better software in less time is what they have created.

In fact many organizations have reaped so much benefit from departmental client/server applications that they want to go to the next level: enterprise software. After all, client/server applications are faster and cheaper to develop, easier to use and much more flexible than existing systems. Sounds like it's time for a big change, right?

Unfortunately, large client/server projects often run into dramatic deployment problems; i.e. it is difficult to install and maintain the application on the end-user machine. I don't buy into the argument that client/server is not mature enough for large projects. The Internet is home for some of the largest and most popular client/server applications like email or Web browsing. They are, by and large, very successful.

In my experience, deployment is difficult because developers have failed to recognize the fundamental differences between departmental and enterprise software. The key difference is that there are many departmental applications, each used by few users over a relatively short period of time. On the other hand, there are few enterprise applications with many users each and they are maintained over a decade or more.

In other words, departmental applications are written in laboratory environments, with small groups of users that are easy to manage. Enterprise application must be written for the wild.

Departmental applications run on a single platform, typically a Windows PC but it is futile to try to enforce a company-wide standard platform. Just remember there are currently three different versions of Windows 95: the original one, OSR2 and the one with IE 4.0 Active Desktop. Most organizations have other platforms as well such as AS/400, Windows NT, Windows 3.x, Macintosh, Unix or even more exotic ones Windows CE, PalmOS, Epoch. Even a small company like Pineapplesoft uses four different platforms (two versions of Windows, PalmOS and Unix). And the number of platforms is growing!

Small groups of users make it easy to release upgrades frequently. Large groups have an inertia that makes it almost impossible to ensure that everybody has the same version of an application.

Last but not least, departmental applications are usually written in a proprietary language (PowerBuilder, SQL Windows, etc.). This is a big risk for enterprise software because proprietary languages have no guarantee of permanence and they are not equally supported across platforms. In fact, for medium and large projects, one language is too limitating. In programming languages, one size rarely fits all.

To succeed with large client/server projects, organizations must break the mold of departmental applications and target cross-platform, cross-version and cross-language software. One important step in that direction is to use a 3-tier architecture.

Enterprise Software

Traditional client/server applications are architectured in two pieces, or 2-tier, the client and the server. The server manages the data such as documents or records. The client is the user's view into the data.

For larger projects, it makes sense to further split the client in two parts, user-interface and logic -- bringing the total to 3-tier. The new client is solely responsible for the user interface, e.g. the windows, menus, dialog boxes, etc. The logic, which describes how to access and process data (e.g. how to apply a discount or when to reorder), is moved to a new server, the application server. The data server remains unchanged.

This has a major impact on portability as it essentially reduces the client to a so-called thin client which is cheaper to port to different platforms. Alternatively it is possible to write thin-clients as Web-based applications that are inherently cross-platform -- the notion of crossware popularized by Netscape.

It simplifies upgrades because the application server is maintained in a centralized place. It is therefore not necessarily to distribute a new application to fix the logic.

Finally language-independance can be achieved with a middleware, such as CORBA or DCOM.

Conclusion

What's in it for your business? If you have already invested into client/server and you are considering large projects, now is a good time to further investigate 3-tier. Remember that 3-tier is a natural evolution of client/server which makes it easy to learn. You won't have to train your developers for lots of new technologies.

If you are just starting with client/server developments, plan for the introduction of 3-tier in your global client/server architecture.

Self-promotion department

December was a great month for Pineapplesoft with no less than two new articles and two others in the spotlight.

In the beginning of December, "Multi-threading in Java", originally published by Digital Cat in April (http://www.javacats.com/US/articles/MultiThreading.html), was a Developer.com staff pick.

Talking of Developer.com, they published a new article "How to send an email from Java" (http://www.developer.com/news/techworkshop/122597_email.html), on the 25 December. That's right, it's Christmas day.

On the Belgian front, Online Strategies published a new article on software agents. CCI Plus republished the article on PDA that originally appeared in the October issue of Online Strategies.

Online Strategies are not freely available online but you can order back issues (in French) from the editor (100117.165@compuserve.com).

Pineapplesoft Link is published freely, every month. The focus is on distributed applications, Java, SGML, handheld and Internet technologies! The articles target people interested or concerned about technology either personally or professionally.

Any issue of Pineapplesoft Link may be reproduced in whole or in part, with this message included. If you want to re-post Pineapplesoft Link regularly, please let me know.

Editor: Benoît Marchal
Publisher: Pineapplesoft (www.psol.be)

Acknowledgements: thanks to Sean McLoughlin MBA for helping me with this issue.

The editor and the publisher have taken steps to ensure the accuracy of the information but they cannot be held responsible in case of error.

Last update: January 1998.
© 1998, Benoît Marchal. All rights reserved.
Design, XSL coding & photo: PineappleSoft OnLine.