130 likes | 377 Views
Java Enterprise Edition (Java EE) Application Servers. Kapil Katyal WHIM April 22, 2008. Overview. Introduction Benefits of Using Java EE Various Vendors Other Alternatives Conclusion. Typical Scenario.
E N D
Java Enterprise Edition (Java EE) Application Servers Kapil Katyal WHIM April 22, 2008
Overview • Introduction • Benefits of Using Java EE • Various Vendors • Other Alternatives • Conclusion
Typical Scenario • Create a web application that is secure, reliable and can serve large quantities of data to thousands of concurrent users. • Problem: • It needs to be in production within 6 months. • One Solution: • Hire lots of programmers to implement security, scalability, database features • Difficult to find skillset • High cost to build and maintain application • Could be error prone
Key Observations - Java EE • Key observation made by application server vendors • Most web applications require similar features such as database access, security, scalability, etc. • Provide these features that are fully tested in a container to be leveraged by application developers • Similar to Java and C++ libraries • Allows application programmers to focus on business logic instead of writing all features from scratch
Web Services RMI for distributed applications Load balancing / clustering Database integration System management Message-oriented middleware Security Dynamic redeployment and many others…. Services Provide by Java EE
Java EE Containers Source: http://java.sun.com/javaee/5/docs/tutorial/doc/bnaay.html
Vendors • Commercial • IBM WebSphere Application Server • BEA WebLogic • Oracle OC4J • Open Source • JBoss Application Server • Apache Geronimo • Sun Glassfish • Apache Tomcat (only a web container)
Alternatives • Spring / Hibernate solution • New EJB specification is very similar to Hibernate • Spring and Hibernate are not based on specifications • Not as mature as Java EE • Microsoft .Net • Similar functionality • Forced into one platform and one vendor • One of the key features of web services is the interoperability of .Net and Java EE.
Advantages and Disadvantages • Advantages • Many, many features provided to the application developer • Shorter development cycle • Low cost of entry, especially when using open source application servers • Disadvantages • Less flexibility on architecture • Troubleshooting can be very difficult, especially if you uncover a bug in the vendor’s code • Sometimes your application doesn’t require all the features available - this could hinder performance • Being addressed by open source community
Conclusion • Java EE is an open standard for building web-based enterprise applications • Containers provide several features so that application developers won’t have to write everything from scratch • Java EE provides the consumer with several choices between platform and vendor • Open source application servers are gaining a lot of momentum due to low cost of entry and improving quality
Additional Information • Java EE 5 Tutorial - http://java.sun.com/javaee/5/docs/tutorial/doc/index.html • Apache Tomcat (only a servlet engine) - http://tomcat.apache.org/ • JBoss Application Server - http://www.jboss.org/ • Apache Geronimo - http://geronimo.apache.org/