I have been doing some research about the difference between Java web application and enterprise application and what I have found is that they have little bit similar architecture.
For example Enterprise Application have Client -, Presentation -, Business Logic - and Data tier.
Client Tier can be Java clients, browser-based clients and mobile clients.
Presentation Tier can be JavaBeans components, servlets, portals and JSP components.
In Business Logic Tier you can have servers, web services (SOAP, Restful and others) and MDB components.
In Data Tier you can have DBMS, LDAP and Data Feed.
Now if we compare those components to web application you can use them without creating Java Enterprise application. For example I can use many different technologies to implement my web application such as Hibernate, Maven, JSP or JSF, Databases, Servlets, JavaBeans and etc.
My biggest question is what is the major difference between Java Enterprise application and Web application? Why I would use Java Enterprise application?
1.Web application is deployed in Web server which has web container Web application - JSP, Servlet, Java 2.web apps are programs which created to run in a web browser. 1.Enterprise App is deployed in Application server which has Web container, EJB container,...
Now if we compare those components to web application you can use them without creating Java Enterprise application. For example I can use many different technologies to implement my web application such as Hibernate, Maven, JSP or JSF, Databases, Servlets, JavaBeans and etc.
2.web apps are programs which created to run in a web browser. An enterprise application will contain enterprise beans (session/entity beans) and will run in a J2EE Container which provides transaction and security services to the beans and it will be named as .ear file.
Difference between Application and Applet: Applications are just like a Java programs that can be execute independently without using the web browser. Applets are small Java programs that are designed to be included with the HTML web document. They require a Java-enabled web browser for execution.
Why would I use Java Enterprise application?
This question arose almost at the same time that the specification itself saw the light.
Several books had been written about this topic.
Expert One-on-One J2EE Development without EJB
POJOs in Action: Developing Enterprise Applications with Lightweight Frameworks
And also technologies like Spring offers alternatives.
Therefore, in the most cases you can build a web application that satisfies your client's requirements without the needs of to build an enterprise application.
However, there are applications with special functional and/or non-functional requirement, which need to have a business layer running over an insfrastructure that offers certain services such as: distributed transactions, messaging proccessing, timer services and remote method invocation.
This kind of infrastructure services are not available in web servers, for this reason you need to develop an application (or at least some components) that run over a heavyweigh application servers.
As you can see from the oracle website, the Java Enterprise Edition is a specification. There are lots of implementations from various vendors. The main difference from the standard edition and the enterprise is that for the latter you need an application server, instead of a web server like tomcat. This is because the EJBs where you put the business logic (that exists only in the Java EE specification) needs a container that takes care of them.
JBoss, Geronimo, Resin, WebSphere among others are applications servers that manage EJBs.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With