Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

Is Ejb really significant in enterprise applications?

By Exforsys | on November 26, 2005 |
J2EE

Is Ejb really significant in enterprise applications?

Ejb was introduced to Java technology to attain some features inherent in enterprise applications. Those features include instance pooling, inbuilt security, declarative transactions, container managed persistence, relationship of business objects and caching etc. Now that many people have built their applications using Ejb, let us go back and analyze if Ejb as a technology is really significant in developing enterprise applications. We are going to analyze both pros and cons of Ejb based on experience of people who have used Ejb.

Not Always

Some experts strongly believe that Ejb is not really that significant technology in developing enterprise applications over the top of Java-J2EE. They have their own arguments that goes against Ejb. Let us go in details with their arguments.

Financial Cost

If I myself am a manager and have limited budget to develop an enterprise application, I will have to consider cost aspect of the Ejb too before choosing it for the application development. To host Ejb, one need specialized Ejb container. Most time Ejb servers are not sold separately. But they come within a package along with web server combined known as application server. And such application servers are considerably costly. If the application is going to be developed with Ejb, there are very less open source choices left for the developers as sever implementation. Even if they are available, there will be need of experts to maintain them.
So selection of Ejb as a part of development technology is going to affect cost factor considerably.

Not Required

As I have mentioned in introduction, Ejb was introduced to attain some features in enterprise applications inherently and declaratively. But if they can be achieved without using Ejb why to take overhead, cost and time to develop Ejb? Let us view each feature that Ejb offers to see if they can be achieved without Ejb or not.

  • Resource Pooling: This feature can be achieved in enterprise applications simply with any J2EE web server. Most modern web servers support connection pooling.
    .
  • Security: Experience says that it is rarely required to authenticate a call to business component from a view or controller component (JSP or Servlet). If authentication mechanism is already implemented at controller layer, there is no need to authenticate internal call again. So this feature is rarely used in any application.
    .
  • Transactions: Developer can easily maintain transactions from simple Java classes using JTA or any custom transaction implementation. Now-a-day Ejb is used for the purpose to maintain transactions only. But, looking at the performance overhead of Ejb, managing transactions without Ejb is more efficient way.
    .
  • Container-managed Persistence: Most people who started using Ejb in development of enterprise applications, end up with separating Data Access Layer from Ejb for the purpose of manageability and transparency. People normally refrain from using container-managed persistence for many reasons. Also container-managed persistence some times comes with performance drawbacks and it lacks flexibility of implementation.
    .
  • Scalability: Any experienced Java developer will agree that scalability can be achieved without Ejb and that is very easy too. It requires proper design and architecture of the application. If the application is designed in a particular fashion, it is not very difficult to attain scalability without Ejb in application.
    .
  • Reusability: All java classes are reusable. In fact Java programming language being almost purely object oriented, offers this features by itself. Clear separation of layers will make java classes and libraries reusable if they are designed for reusability.
    .
  • Remote Access: Remote access of objects has been in Java technology since years prior to introduction of Ejb to the technology. Remote Method Invocation and CORBA are in place and many people have successfully developed applications using these technologies when it is required to access Java objects remotely. So even for remote access Ejb is not mandatory.

Performance Cost

It has been well know fact that Ejb comes with performance overhead. Starting from deployment of application in the server to getting handle of Ejb and accessing methods adds significant overhead in performance of the application. As Ejb instance-pooling mechanism is maintained using Java Naming and Directory Interface (JNDI) acquiring handle to Ejb slower downs the application. Also method call takes time as they pass through container. Ejb 2.0 supports local calls to Ejb but they also pass through container, which is a separate JVM itself.
It has been observed that for these reasons, Ejb has performance drawbacks.

Development Cost

To develop and deploy Ejb successfully on any web severs there is always need to people having experience and expertise in working with Ejb. Also application development with Ejb takes somewhat longer time then similar process without Ejb because of complexity of Ejb. While developing enterprise applications with Ejb hiring people having knowledge of Ejb adds cost to the project considerably. Also maintenance after development of application requires people who are skilled in Ejb.
These factors denote that Ejb is going to increase costs at the time of development and also for its maintenance

But Sometimes

As I committed during the introduction, we are not going to conclude any thing without hearing from both sides. From above discussed points one may lead to conclude that Ejb is no an essential technology or no more required as a part of J2EE. But that is not the fact, there are cases when Ejb are significant to enterprise applications. Now we shall go in details of those cases where usage of Ejb can play a significant role.

Readymade Framework

As we have discussed above most features which are provided by Ejb can be achieved without Ejb also. But to achieve all those features in an enterprise application, one has to design and develop the application very carefully and only people having expertise in that area can do it. Normally people end up with having their own framework in absence of Ejb to attain those features.
Ejb comes with all those features in a bundle where application developers need not worry about implementing them. So to develop enterprise application with a rapid speed and to attain stability of application soon, Ejb can be used as a handy option.

Utilization of Skills

If you already have people in your organization having proficient knowledge of Ejb and experience in developing enterprise applications using Ejb in case, Ejb is not going to be very costly for you. Here there is no need to train people to use Ejb and if they have experience in developing applications with Ejb, they can develop new applications sooner with Ejb.

J2EE Best Practices

If you try to get best out of J2EE technology, and try to implement best practices tried by the world to achieve stability, maintainability, performance and other coherent features in enterprise application, you will have to develop entire architecture before you start developing the application. Again here people end up with developing their own J2EE framework to attain benefits of Ejb without using Ejb.
In such cases Ejb can be used to implement such best practices with an ease and simplicity.

For Component Providers

People who are in business of providing Java or J2EE components to application developers or provider of pluggable third party components should be more interested in Ejb. Actually Ejb was designed primarily for scalability of applications. Ejb is very easy to plug to any J2EE application because of its declarativeness. Even third party Ejb can be plugged in after completion of development phase of enterprise application. Also because of its remote accessibility, Ejb adds value to it as pluggable object.

To Cope With Complexity of Application

Sometimes enterprise applications are having too complex functionality and too wide scope of use that it becomes almost difficult to develop such applications without Ejb. Along with the complexity of the application, developers of the application have to take care of things which are automatically taken care by the Ejb container. In such cases, it is advisable to take advantage of Ejb technology, which offers a bundle of features with fewer efforts.

Summary

Well after hearing both sides it may seem difficult to conclude weather it is advisable to use Ejb while developing enterprise applications over the top of J2EE or not. But, we can safely say that usage of Ejb for enterprise application is no always mandatory. It can be avoided if the functionality of the application is not too complex to develop without Ejb. Also if application has requirement to implement Ejb specific features in a very custom way, Ejb cannot be used as it comes with its own standard implementation.

« « Future of Java Technology
Java for Stand-Alone Applications » »

Author Description

Avatar

Editorial Team at Exforsys is a team of IT Consulting and Training team led by Chandra Vennapoosa.

Free Training

RSSSubscribe 394 Followers
  • Popular
  • Recent
  • .NET and J2EE – A Comparsion Study

    November 26, 2005 - 0 Comment
  • Antipatterns In Java Programs

    July 1, 2006 - 0 Comment
  • How To Use Java DB as Your Client Mobile Database

    July 14, 2006 - 0 Comment
  • Future of Java Technology

    November 26, 2005 - 0 Comment
  • How a Profiler Can Improve Your Java Applications

    July 1, 2006 - 0 Comment
  • Java Overview

    July 17, 2006 - 0 Comment
  • Java for Stand-Alone Applications

    November 26, 2005 - 0 Comment
  • How Code Reviews and PMD Can Crush Bugs In Your Code

    July 3, 2006 - 0 Comment
  • Java Virtual Machine

    July 13, 2006 - 0 Comment
  • Keep it Simple And Secure with Java

    December 2, 2005 - 0 Comment
  • Why It is Important To Focus On Java Exceptions For Your Programs

    July 27, 2006 - 0 Comment
  • Important Features of Java – Multithreading, AWT

    July 26, 2006 - 0 Comment
  • What You Should Know About Java XML

    July 25, 2006 - 0 Comment
  • What You Can Do To Deal With Java’s Memory Retention Problems

    July 22, 2006 - 0 Comment
  • Java Overview

    July 17, 2006 - 0 Comment
  • How To Use Java DB as Your Client Mobile Database

    July 14, 2006 - 0 Comment
  • How To Run J2ME Programs on Palm Devices

    July 14, 2006 - 0 Comment
  • Java Virtual Machine

    July 13, 2006 - 0 Comment
  • Quickly Develop Java Programs With Tapestry

    July 12, 2006 - 0 Comment
  • A Java TOC2 Class Which Can Contact Aim

    July 12, 2006 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • Why It is Important To Focus On Java Exceptions For Your Programs
  • Important Features of Java – Multithreading, AWT
  • What You Should Know About Java XML
  • What You Can Do To Deal With Java’s Memory Retention Problems
  • Java Overview

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT