Originally Published: Friday, 8 June 2001 Author: Marcelo Pham
Published to: develop_articles/Development Articles Page: 6/6 - [Printable]

Introduction to Cross Platform Integration (Part 2 of 2)

In part two of this detailed look at platform integration, software architecture and networking issues with Linux, consultant Marcelo Pham concludes his exclusive Linux.com article series with a complete overview and code walk-through of application and database integration strategies for cross-platform data integration in a business environment.

  << Page 6 of 6  

3.f. Scenario III - Simultaneous environments
Sometimes there are cases where you will have no other choice but to live with one operating system and make everything else work around it. Let me create a picture of this for you using a situation with a customer of mine. Dialtone Internet is the number one Linux dedicated hosting company in Florida, still growing and working hard to be number one Linux ISP in the U.S. They currently have around 2500 Linux servers and they had separate software applications to manage their Invoices, Help Desk requests and Inventory. They wanted to merge all of these applications into a single package that included other Accounting modules like General Ledger and Accounts Payable. After some research they decided to go with a Windows-based Accounting package that would include all the functionalities of the applications they were using. This Windows-based application uses a client-server architecture with a fat-client installed on every Windows-based workstation.

Now, here was the problem: 50% of the users are Linux help desk technicians, they maintain all the Linux servers through -of course- their Linux workstations (RedHat 6.2). Since the Windows-based application only accepts connections from Windows-based fat-clients, I recommended that they install a Windows emulator on those Linux workstations and install Windows and the application fat-client on top of Linux using the virtual machine software. In this way help desk users could use their Linux tools as usual, and also inquire or update information from the Windows-based application. VMWare is a commercial Windows emulator and it can load a Windows virtual machine in a X-Window session. You may want to download the free project of VMWare called FreeMWare. Another choice is to download Win4Lin, another Windows virtual machine, but like VMWare, this is a commercial package and you will have to pay the license if you want to use it in a business environment.

Another choice you have, if you wish to develop an application from the ground up, is to use an implementation of the Windows API (Application Programming Interface) through your preferred X-Window. This project is called WineHQ and you can download it for free. This is not an emulator so you won't need to install Windows, although you can use native Windows Dynamic Link Libraries to enhance your programs.

(On a side note, I think it's is fair to say that if you ever want to get a dedicated Linux server I highly recommend this company I was doing consulting for: (Dialtone Internet). I've been working with them closely and I can tell how professional they are and how much they care about the Linux community.)

 

4. Final thought:

As I said before, the ideal thing to do when faced with making different applications and operating systems work together would be to remake all of them under one single programming language using a single database and running on a common operating system. But the reality is: businesses often do not have the time, money or expertise to coordinate the technicalities, programming languages, networks and other challenges. Business is about time and money, the quicker and cheaper the solution, the better. It is your responsibility as a consultant or programmer to tell your customer what would be the best and cheapest alternative. Never get carried away by the wonders of technology, sometimes a fast solution is better and than a complex, sophisticated, elaborate or fancy piece of software. But not always. Remember that you're playing in the business ground -where every minute and penny counts-, they're not playing in yours.


Try to be creative, brainstorm and evaluate several solutions and then decide which one will fit best your customer's needs, be a true non-conformist and think that there will always be a better way to do it. Use your imagination, combine alternatives and, as usual, document every single step of what you did, what you think and what you plan to do. Executives like that. Good luck with your projects!

 


Marcelo "Taz" writes develop-related articles for Linux.com. He does enterprise consulting and programming from sunny Miami. When not hacking, you may see him riding his Harley Davidson on the Florida's Turnpike (heading nowhere).

 





  << Page 6 of 6