A Literature Survey on various Java Application Servers

Similar documents
Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Operations and Monitoring with Spring

Glassfish, JAVA EE, Servlets, JSP, EJB

Learning GlassFish for Tomcat Users

ITG Software Engineering

Introduction to Sun ONE Application Server 7

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

Oracle WebLogic Server 11g: Administration Essentials

Project SailFin: Building and Hosting Your Own Communication Server.

Apache Jakarta Tomcat

What Is the Java TM 2 Platform, Enterprise Edition?

Glassfish Architecture.

applications. JBoss Enterprise Application Platform

Oracle im Open Source Kontext Abgrenzung GlassFish vs. JBoss und wozu noch WebLogic?

IBM WebSphere Server Administration

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

JBoss JEE5 with EJB3.0 on NonStop. JAVA SIG, San Jose

Technical White Paper The Excel Reporting Solution for Java

Part One Business Modeling Business Process Model

Framework Adoption for Java Enterprise Application Development

Why IBM WebSphere Application Server V8.0?

Architectural Overview

RED HAT JBOSS FUSE. An open source enterprise service bus

WebSphere Server Administration Course

Java-technology based projects

GlassFish. Developing an Application Server in Open Source

Converting Java EE Applications into OSGi Applications

Cisco Integration Platform

Weblogic 12c: Mastering The Cloud Foundation. Patrick Dewael & Kristof Satory

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

Choose an IBM WebSphere Application Server configuration to suit your business needs

Basic TCP/IP networking knowledge of client/server concepts Basic Linux commands and desktop navigation (if don't know we will cover it )

Java EE 7: Back-End Server Application Development

Integrated Performance Monitoring

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Open Source SOA with Service Component Architecture and Apache Tuscany. Jean-Sebastien Delfino Mario Antollini Raymond Feng

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

Access Management Analysis of some available solutions

Understanding Application Servers

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

WEBLOGIC ADMINISTRATION

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Learn Oracle WebLogic Server 12c Administration For Middleware Administrators

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

JBoss EntErprisE ApplicAtion platform migration guidelines

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

IBM Boston Technical Exploration Center 404 Wyman Street, Boston MA IBM Corporation

OpenSSO: Simplify Your Single-Sign-On Needs. Sang Shin Java Technology Architect Sun Microsystems, inc. javapassion.com

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

NetBeans IDE Field Guide

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

BONITA, The Open Source BPM Solution

Middleware Platforms for Application Development: A Product Comparison

Enterprise JavaBeans' Future: Getting Simpler, More Ubiquitous, but Not Dominant

IBM CICS Transaction Gateway for Multiplatforms, Version 7.0

Modern Software Development Tools on OpenVMS

JSLEE and SIP-Servlets Interoperability with Mobicents Communication Platform

WELCOME TO Open Source Enterprise Architecture

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Using Tomcat with CA Clarity PPM

Deploying Rule Applications

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Dell and JBoss just work Inventory Management Clustering System on JBoss Enterprise Middleware

An Oracle White Paper May Ready for Business: Oracle GlassFish Server

JReport Server Deployment Scenarios

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

WebLogic Server 11g Administration Handbook

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Oracle WebLogic Server 11g Administration

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

A framework for web-based product data management using J2EE

An Easy, Secure and Reliable Online Shopping & Payment System

Oracle Fusion Middleware 11g R1 - Weblogic Server for System z. Marc Connolly Technical Development Director

RED HAT JBOSS FUSE. A lightweight, flexible integration platform

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Zulu by Azul OpenJDK for Azure

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework

Federated single sign-on (SSO) and identity management. Secure mobile access. Social identity integration. Automated user provisioning.

<Insert Picture Here> Java Application Diagnostic Expert

Secure the Web: OpenSSO

White Paper: Why Upgrade from WebSphere Application Server (WAS) v7 to v8.x?

Transcription:

User Interface (UI) Business Logic (BL) Database Access (DA) A Literature Survey on various Java s C. Raja Kumar 1 ; M. Rajinikannan 2 Assistant Professor, Department of Computer Science and Engineering, SBM College of Engineering and Technology, Dindigul, Tamil Nadu, India 1 ; Associate Professor, Department of Computer Applications, PSNA College of Engineering and Technology, Dindigul, Tamil Nadu, India 2 ABSTRACT The application server plays a vital role in a Java Enterprise application development life cycle. It handles all application operations between the users and an organizations business process. There are many application servers available in the market today. But the preference impacts the cost, performance, reliability, scalability, and maintainability of an application. In this paper we would like to give an overview about various application servers based on its features. This will help the developer to choose right application server for their needs. General Terms s. Keywords JBoss, WildFly, GlassFish, Jetty, WebLogic, AS. 1. INTRODUCTION In earlier days, the client/server paradigm is most common, the client's machine performs the business logic as well as the user interface, and the server provides the database processing. Due to the brainchild of Component Based Development in software engineering brings the separation of functionality into the layered approach. Each layers being a tier that can by located on a physically separate computer. Figure 1 depicts the three-tier architecture; three different computers perform the user interface, business logic and database processing separately. Basically, the applications business logic handled by the computer is termed as an application server. 1.1 Java s Java Application server is a server side program that is used to provide service to the client simply by receiving the request and sending back the response to the client. It is also known as appserver. Java Application servers additionally afford the services like transaction support, data services, security, and load balancing. Because of that an enterprise level applications can comfortably sit on top of this application servers and play its role precisely. Now a day s application servers comprises with the web container to support the web applications. The Java Platform, Enterprise Edition or Java EE Specification defines the core set of API and the features of Java s. The definition of an application server is very specific; its specifications are formal documents and application servers must meet their requirements and tested in order to be Java EE certified. A three tier enterprise application consists of the below logical separations: Front end : Presentation Tier Business logic : Business Tier Back end : Database Tier The front end is usually a web based Graphical User Interface. It presents the data and provides the rich look and feel for the application. The business logic is the logic of the application. The back end is a database and transaction server. In this three layered application, the Java EE s provides most of the business logic. Client Machin e Application Database Fig 1: Three-Tier Architecture DB 2014, IJOURNALS All Rights Reserved Page 62

1.2 Roles of Java Transaction Management A transaction is a logical unit of work that contains one or more SQL statements. A transaction is an atomic unit. The effects of all the SQL statements in a transaction can be either all committed (applied to the database) or all rolled back (undone from the database). A transaction begins with the first executable SQL statement. A transaction ends when it is committed or rolled back, either explicitly with a COMMIT or ROLLBACK statement or implicitly when a DDL statement is issued. Connection management The Connection management is used to connect the resources like Java Database Connectivity, Java Message System, Java Naming and Directory Interface. It allows the application server to pool the resource connections. The purpose of the pool management is to allow for scalability. Resource connections are typically expense objects to create and pooling them allows for more effective reuse and management Security Management Certain security services are fundamental to providing security in a multiuser, networked environment. Application has been designed to provide all these services, including: Authentication, Authorization, Access Control and Data Protection. s provide a general framework for development and deployment of applications, as well as specific application services and functionality such as Debugging, Automatic Configuration, Logging, Tracing, Administration, Scripting etc., The choice of a Java application server is depends on the following the features. Java EE Compliance Ease of Use and Administration High Availability and Clustering Scripting and Dynamic Frameworks Web Services and.net Interoperability Integrated Development Environment Support/Tooling Integration and Connectivity Technical Support and Documentation Upgrade and Update Tools Performance and Price JSP 2.1 and Servlet 2.5 capable EJB 3.0 capable Java Faces 1.2 support Custom plug-in support Business-rules engine support Hibernate 3.x support JAX-WS / JAX-B 2.x The rest of the chapters are organized in the following manner. In Chapter 2 we have discussed about the background study. Chapter 3 discusses the Classification of Java s. Chapter 4 discusses about the various features of Java. In Chapter 5 we made a comparative study on Open Source and Non Open Source Java s which can help the users in choosing the best Application server. The Chapter 6 concludes this paper by giving some guidelines to the software development community to select right Java for their need 2. BACKGROUND STUDY Oliver White shared the application servers usage analysis in his Developers Productivity Report [7]. The report said, during the application development phase the development team using a light weighted application servers like Apache Tomcat. The JBoss remains popular, but the major usage increase is with Jetty. But, in the live environment like production, almost every one using a full-blown application server like Weblogic. The report yielded the results shown in Figure 2. Fig 2: Most used s and its Usage in percentage Oliver White report compares and contrasts the Application s for each of the following areas ranking them with a score out of 5. Download and Installation Tooling support Configuration Documentation & community. 3. Classification of Java s Java Platform, Enterprise Edition or Java EE or J2EE defines the core set of API and features of a Java s. Basically, Java s are classified in to two categories namely, Open Source Java Commercial, Non Open Source Java Application An needs to support the Web Modules & EJB Modules. The Web module includes Servlets, and Java Pages. The EJB module includes an Enterprise JavaBeans. According to the J2EE blueprints the business logic of an application resides in Enterprise JavaBeans. The Figure 3 illustrates a typical J2EE application server and its container scenario. 2014, IJOURNALS All Rights Reserved Page 63

Fig 3: J2EE s Containers 3.1 Open Source Java s There are many open source Java application servers that support Java EE core set of APIs and its features. Few s are JOnAS from Object Web, JBoss AS from JBoss - RedHat, Geronimo from Apache, TomEE from Apache, Resin Java from Caucho Technology, Blazix from Desiderata Software, Enhydra from Enhydra.org, and GlassFish from Oracle. Some Java s give up many Java EE features like EJB and JMS. Example s are Tomcat from Apache, and Jetty from Eclipse Foundation. Their focus is more on Java Servlets and Java Pages only 3.2 Non Open Source Java Application s Commercial, non open-source, Java application servers have been dominated by WebLogic by Oracle and from IBM. 3.3 Currently available Java Application s Table 1 lists sever well known Java EE application servers available in the market [6]. Table 1. List of JAVA s Application Glassfish Geronimo JBoss/WIldFly Current Version GlassFish Open Source Edition 3.x GlassFish 3.01 Geronimo 3.0- beta-1 JBoss Application 7.x Vendor Oracle Apache RedHat JBoss Enterprise Application Platform 6 Resin Resin 4.0.17 Caucho TomEE TomEE 1.0 Apache JOnAS Weblogic JOnAS 5.3.0-M8- SNAPSHOT WebLogic 12.1.1 8.x Community Edition 3.0 OW2 Oracle IBM JEUS JEUS 7 TMAX Interstage Interstage powered by Windows Azure Interstage v10.1 Fujitsu NetWeaver NetWeaver Cloud SAP 4. FEATURES OF JAVA APPLICATION SERVER 4.1 JBoss AS The JBoss (or JBoss AS) is an open-source Java EE-based application server [1]. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java. Because it is Java-based, the JBoss application server operates cross-platform: usable on any operating system that supports Java. JBoss can be used for large scale deployments and supports load balancing, clustering, EJBs and a large set of J2EE specifications. WildFly is the new name for the JBoss project. It is free and open-source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1. The renaming to WildFly was done to reduce confusion. The renaming only affects the JBoss project. The JBoss Community or the Red Hat JBoss product line (with JBoss Enterprise Application Platform) all retain their names. Features of JBoss : Aspect-oriented programming (AOP) support Clustering, Load balancing, Failover Data virtualization system Distributed deployment (farming) Java EE Connector Architecture (JCA) integration Java Management Extensions OSGi framework Management API Java Authentication and Authorization Service 2014, IJOURNALS All Rights Reserved Page 64

(JAAS) The community edition of JBoss is free and open source and is ideal for development and testing. The commercial edition known as JBoss enterprise application platform is the ideal choice for production hosting. 4.2 Jetty The Jetty is a pure Java-based HTTP client/server, WebSocket client/server and servlet container (Application server) developed as a free and open source project as part of the Eclipse Foundation [2]. It is currently used in products such as ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Google App Engine, Eclipse, FUSE, HP OpenView, JBoss, Liferay, Ubuntu, Twitter's Streaming API and Zimbra. Jetty is also used as a standard Java application server by many open source projects such as Lift, Eucalyptus and Hadoop. Developed as an independent open source project, in 2009 Jetty moved to Eclipse. Jetty provides Web services in an embedded Java application and it is already a component of the Eclipse IDE. It supports AJP, JASPI, JMX, JNDI, OSGi, Web Sockets and other Java technologies. Features of Jetty : Full-featured and standards-based Open source and commercially usable Flexible and extensible Small footprint Embeddable Asynchronous Enterprise scalable Jetty is used in a wide variety of projects and products. Jetty can be embedded in devices, tools, frameworks, application servers, and clusters. 4.3 GlassFish The GlassFish [3] is an open-source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception. GlassFish is the reference implementation of Java EE and as such supports Enterprise JavaBeans, JPA, Java Faces, JMS, RMI, Java Pages, servlets, etc. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. Optional components can also be installed for additional services. Features of GlassFish A lightweight and extensible core based on OSGi Alliance standards A web container An easy-to-use Administration Console for configuration and management Update Tool connectivity for updates and add-on components Support for high availability clustering and load balancing GlassFish 4.0 is intended to be the next major release in Project GlassFish. This release will implement the Java EE 7 specifications, contribute to the Java EE 7 Reference Implementation and Development Kit. The release is being designed with primary focus on the features like Higher Productivity and HTML5 Support. 4.4 Apache Tomcat The Apache Tomcat (or simply Tomcat, formerly also Jakarta Tomcat) is an open source web server and servlet container developed by the Apache Software Foundation (ASF) [10]. Tomcat implements the Java Servlet and the Java Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment. It powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Apache Tomcat version 8.0 implements the Servlet 3.1 and Java Pages 2.3 specifications from the Java Community Process, and includes many additional features that make it a useful platform for developing and deploying web applications and web services. Features of Apache Tomcat Security Manager Proxy Support Clustering Balancer Connectors Monitoring and Management Logging Virtual Hosting Pool WebSocket Support 4.5 WebLogic The In September 1995, Paul Ambrose and Carl Resnikoff cofounded WebLogic, Inc. After which BEA Systems took over WebLogic, Inc in 1998 and named it BEA Weblogic. Oracle acquired BEA in 2008 and named it Oracle Weblogic [4]. Oracle Weblogic is a server software application that runs on a middle tier. WebLogic implements the full range of J2EE technologies Features of WebLogic Certified Java EE 6 and SE 7 Modern Programming Tech support Dependency Injection, Annotations, POJO, REST Using Popular Industry Tool Chains Maven, Hudson, Eclipse, JDeveloper, NetBeans Simplified Deployment and Management with Virtualization Integrated Traffic Management Integrated WebLogic/RAC Clusters 2014, IJOURNALS All Rights Reserved Page 65

JBoss/ WildFly GlassFish Jetty WebLogic AS Seamless Upgrade From WebLogic, ias and Others Enhanced High Availability and Disaster Recovery 4.6 IBM has shipped several versions and editions of [5]. It was initially created by Donald Ferguson, who later became CTO of Software for Dell and the first version was launched in 1998. WAS provides runtime interfaces and APIs for server-side Java components and helps to increase developer productivity with open standards and broad programming models, including lightweight options for web deployments, deploy and manage applications and services without the constraint of time, location or device type. It enhances security and control using integrated management and administrative tools. Features Java EE Specification Support Clustering Resource Management Logging and Diagnostics Messaging Security 5. Comparative Study on Open Source & Non Open Source Java s We compared the five leading Java application servers based on the standard features excluding the performance metric. Table 2 portrays the application server s comparative study. That will help the application developers to choose a precise product based on their requirements. Table 2. Basic features of the s Features Current Edition 8 4 9 Java Version 6 6/7 Java EE Compatibility 6 5 6/7 Part ial 12c R2 6/7 8.5.5 IBM JVM 7 6 6 Servlet Spec. 3.0 2.5 3.0 3.0 3.0 JSP Spec. 2.2 2.1 2.1 2.2 2.2 EJB YES YES NO YES YES Cluster/ Load Balancing YES YES NO YES YES Management YES YES YES YES YES OSGi Framework YES YES YES YES YES JAAS YES YES YES YES YES AOP YES YES NO YES YES Messaging YES YES YES YES YES Vendor Support NO YES NO YES YES License LGPL GPL GPL Com mer cial Com mer cial Markus Eisele, Narrow down the application server selection procedure in his article [8] based on the below example set of metrics: Source Code License (OSS or Commercial) License Costs (free for development and production) Support (development and/or production support available) Certified Java Version (6.0,7.0// Proprietary JVM) Java EE 6 profile (Full or Web Profile) This is by far too less if we are doing a full blown product selection. Now a day s, we are going to defeat all the servers which don't offer vendor support. And we are not considered the product which is not certified on. To select an opt product, we have to look the below features further. The Market reach (e.g. downloads/customers/etc.) Maturity (e.g. availability in years since EE 6 final version) Development Performance (e.g. Startup-Time/IDE integration) 6. CONCLUSION None of the Java s can fit for all development and deployment plans. Each of them has its own strengths and weak points compared to the other competitive servers. A developer is unable to test all of the Java application servers and decide which one is best for his requirement. Overall the users who are deploying their applications to the cloud are more likely to use open source application servers. Dave Rosenberg [9] shared his survey view in that, the Open source is winning the java applicationserver war. 7. REFERENCES [1] [online] http://www.jboss.org/jbossas/ [2] [online] http://www.eclipse.org/jetty/ [3] [online] https://glassfish.java.net/ [4] [online] http://www.oracle.com/us/products/middleware/clou d-app-foundation/weblogic/overview/index.html [5] [online]http://www-03.ibm.com/software/products /en/appserv-was/ [6] [online] http://java.dzone.com/articles/selecting-yourjava-ee-6 [7] Oliver White, "Developer Productivity Report 2012: Java Tools, Tech, Devs & Data", RebelLabs.. 2014, IJOURNALS All Rights Reserved Page 66

[8] Simon Maple, The Great Java Debate, RebelLabs. [9] Dave Rosenberg, wars: Open-source Java vs Weblogic and. [10] [online] http://tomcat.apache.org/ 2014, IJOURNALS All Rights Reserved Page 67