Developers are faced with important decisions when designing an enterprise computing platform. Engineers must determine the specific development platform that will be used. We will consider two different approaches: Java EE and Tuxedo supporting C++.
Advantages of Java EE
Platform independent and flexible, Java EE is a mature standard that is supported by over 30+ vendors. The system is scalable and provides a wide range of flexibility in regards to component parts, integration with existing information systems, and security.
Enterprise JavaBeans (EJB) standard defines the framework for developing business components, ensuring consistency throughout the platform. Security, transaction, persistence, and naming and directory services are provided by the container, which means that developers can leave the complicated “plumbing” to the application server and concentrate on writing business logic. Open standards-based development provides more flexibility for reuse of business components.
Java Message Service (JMS) provides a messaging standard for asynchronous communications. Web applications can be developed using the standards and deployed on multiple application servers, allowing for a flexible, scalable system. JavaServer Pages (JSP) and Servlets provide an efficient alternative to CGI-based Web applications.
Disadvantages of Java EE
The largest disadvantage of Java EE is that Java is the only language supported. Retraining IT staff in Java can incur significant costs when adopting and implementing the new system. Java EE applications using EJB for developing business components need to be designed properly. Without advanced skills in Java and Java EE, project development could be hindered or problematic. Infrastructure costs for development tools, app servers, and other relevant tools may increase from existing costs, though the returns can be greater if the platform is used to its full potential. Specifications for the different component technologies are continually undergoing changes which can be difficult to keep up with. Differences in implementation and deployment between application server vendors can prevent seamless reuse and sharing of business components.
Advantages of Tuxedo Supporting C++
Tuxedo is highly respected in the industry and is used for mission critical applications with high transaction throughput requirements. The platform provides load balancing and data-driven application partitioning to provide better scalability. Development using C++ could provide better performance since intermediary byte code translation isn’t necessary. Tuxedo provides a framework for developing stateless business services. Database connection pooling, transaction management, and Two-phase commit protocol (2PC) using Open XA are all supported by the platform.
Disadvantages of Tuxedo Supporting C++
The platform for business services is provided by only one vendor, limiting options and flexibility. Sharing Tuxedo services with other non-Tuxedo-based applications requires additional software, such as Oracle Jolt for Java clients. Business services are not automatically portable to other platforms. Unlike Java, the business services code needs to be recompiled for another platform. Reusing business services involves purchasing the Tuxedo platform, unlike EJB components which can be deployed in any Java EE application server. Declarative transactions are not available. Transaction logic has to be hand-coded into the business logic. ATMI API is proprietary and ties the application’s business logic to the vendor.
Ultimately, developers need to analyze the needs of the enterprise thoroughly before choosing a platform. Problem solving remains the most important tool of the developer. When choosing architecture for enterprises, one has to remember that there is no one architecture solution that addresses all problems.
Oracle Services by ProKarma