|
|
||||||||||||||
Tharwat Consulting Group has made a strategic choice to focus on Java software development for fully distributed systems. Java provides cross-platform compatibility for both client and server components, simplifying the task of partitioning functionality among the layers of a distributed system and aiding the evolution of the system to suit changing usage requirements over time. No other development choice, including the proprietary approachs based on particular operating system vendors, provides this level of flexibility. Java also provides unique benefits in terms of development time. Productivity studies comparing Java with C++ have demonstrated gains of up to 100 percent for the Java
approach. In the "Internet time"
environment of current distributed system projects the higher productivity may spell the difference between having a product that conquers a new market by virtue of being first and having one that has to fight for a fractional market share against strongly entrenched competitors.
The continuing extension of the Java platform has confirmed this choice of direction. With the advent of Java 2 and JFC (including the Project Swing component library), along with the availability of the
Java Plug-in to eliminate browser compatibility issues, Java has gained a level of maturity which requires it be given serious consideration for all new client software development efforts. Widespread support for Servlet
, JavaServer PagesTM (JSPs), and Enterprise JavaBeanTM (EJB) architectures as part of the Java 2 Enterprise Edition (J2EETM) platform have concurrently extended Java potential
on the server side, making it now the most widely supported standard for web server programming. The limitations of Java are largely just the flip side of its strengths. Cross-platform compatibility has the drawback of limiting
some of the functionality available on a particular system. For the client side, this translates into difficulty in providing full access to some of the UI features of the underlying operating system. On the server side,
high-performance techniques such as memory mapped file access may not be available to Java developers. There is also still a minor performance disadvantage in using Java, as opposed to well-written C++ code. Most of these
limitations can be addressed through a combination of proper systems design and, when necessary, the use of native code extensions from Java. When extremely high performance is needed it may even be worthwhile to implement key
system components in C++. In practice, though, performance limitations are generally more a matter of design than of implementation and with a solid design the implementation benefits of Java more than compensate for the low-level
performance loss. An example of this principle is Tharwat Consulting Group's
recent experience in replacing a pair of C++ server components (an ISAPI application running in Microsoft's Internet Information Server environment, and an associated communications interface module) with Java Servlet code running in an open source Java web server. The Servlet code implements substantially more functionality than the combination of the two C++ components, while still outperforming the older code three to one. It also took much less time to develop, even with the added functionality, and promises to be dramatically easier to maintain.
JavaTM, JavaServer Pages TM, Enterprise JavaBeans TM, J2EETM, and JDBCTM are registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Sosnoski Software Solutions, Inc. is independent of Sun Microsystems, Inc.
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
| [Home] [What We Do] [How We Do It] [Portfolio] [About Us] | ||||||||||||||
Please contact our Webmaster with questions or comments. |
||||||||||||||