1-Objective :
To assist the client to chose the best application server by compromising between Oracle Weblogic Server and Apache Tomcat Server .
2-Client Current Applications :
The client has the following application / databases :
Oracle Database
Oracle APEX
Oracle ORDS
3-Required Parameters to Collect :
The following parameters are required in order to decide the most compatible application server to the client environment .
Metric
|
Question | Description / Reference |
Assessing Your Application Performance Objectives | Gather information about the level of activity expected on your server:
|
1- anticipated number of users 2 – number of requests 3 – acceptable response time 4 – preferred hardware configuration |
Database Server Capacity
and User Storage Requirements |
How well-designed is the user application? | 1- Typically, a good application’s database requires hardware three to four times more powerful than the application server hardware. 2-It is good practice to use a separate machine for your database server. 3-if you are unable to maintain Application Server CPU usage in the 85 to 95 percent range. This indicates that Application Server is often idle and waiting for the database to return results. With load balancing in a cluster, the CPU utilization across the nodes should be about even |
Database Current Config | It is advisable to review the oracle database AWR report during the peak hours / application performance bottlenecks | AWR : Auto Workload Repository is an oracle DBA tool that summarizes the DB / app performance and highly consuming sql statements by the application |
Network Load | Is the bandwidth sufficient?
Application Server requires enough bandwidth to handle all connections from clients. |
To determine whether you have enough bandwidth in a given deployment, look at the network tools provided by your network operating system vendor. In most cases, including Windows NT, Windows 2000, and Solaris, you can inspect the load on the network system. If the load is very high, bandwidth may be a bottleneck for your system. |
Concurrent Sessions | How many transactions must run concurrently?
Determine the maximum number of concurrent sessions? |
For each session, you will need to add more RAM for efficiency. Oracle recommends that you install a minimum
of 256 MB of memory for each Application Server installation that will be handling more than minimal capacity. |
SSL Connections and Performance | What is The number of SSL connections required out of the total number of clients required? | SSL involves intensive computing operations. When supporting the cryptography operations in the SSL protocol. |
Distributed Naming
|
Is Distributed Naming required | |
Session Handling
|
Is session Handling required | -Which session is related to which client .
-Detecting the start of the session -Setting and Getting Session Name/Value Attributes
|
Lookup services
|
Is lookup Services required | The lookup services allow JMX technology clients to find and connect to connector servers that have registered with the lookup services. |
RMI and Server Traffic | What types of server traffic do the clients generate? | The RMI (Remote Method Invocation) is an API that provides a mechanism to create distributed application in java. The RMI allows an object to invoke methods on an object running in another JVM.
The RMI provides remote communication between the applications using two objects stub and skeleton. RMI can use HTTP tunneling to allow RMI calls to traverse a firewall. RMI tunneled through HTTP often does not |
Programmatic and Web-based Clients | What are the Types of Clients connecting to Application Server (Http Application, Desktop Applications )? | The stateless nature of HTTP requires that the server handle more overhead than is the case with programmatic clients. However, the benefits of HTTP clients are numerous, such as the availability of browsers and firewall compatibility, and are usually worth the performance costs.
Programmatic clients are generally more efficient than HTTP clients because T3 does more of the presentation work on the client side. Programmatic clients typically call directly into EJBs while Web clients usually go through servlets. This eliminates the work the server must do for presentation. The T3 protocol operates using sockets and has a long-standing connection to the server. |
Clustered Configurations | Is your deployment configured for a cluster? | Clusters greatly improve efficiency and failover. Customers using clustering should not see any noticeable
performance degradation. Several Application Server deployments in production involve placing a cluster of WebLogic Server instances on a single multiprocessor server. |
Server Migration | Are your servers configured for migration? | For capacity planning in a production environment, keep in mind that server startup during migration taxes
CPU utilization. |
Firewall | Is it required to have firewall?
Do you have a firewall currently , if yes Where is it installed
|
|
EJB , Servlets | Is EJB , Servlets used ?
|
EJB : Enterprise Java Beans |
HTTP/ FTP | Is HTTP used?
Is FTP used
|
4-Reference Features :
Please check the comparison between Weblogic and Tomcat Servers for your reference:
Weblogic | Tomcat | |
Definition | Weblogic has different features apart from being a web server and handles Http services, distributed naming, session handling, transaction management, and lookup services. | Tomcat can be used as an HTTP server and also supports JSP and Servlet-based web applications. |
License | Weblogic is licensed and requires to buy the license to use for commercial purposes. | Tomcat is free and open-source and can be used for free commercially |
Supporting
Features |
Weblogic Support EJB (Enterprise Java Beans) and other features | Tomcat does not support EJB (Enterprise Java Beans) |
Server Type | Weblogic is an application server | Tomcat is a web server type |
Transaction
Management |
Transaction Manager an application that controls the coordination of transactions over one or more resources. Transaction management can be handled in Weblogic | Transaction Manager an application that controls the coordination of transactions over one or more resources. Transaction management cannot be handled in Tomcat |
HTTP/ FTP | Weblogic supports HTTP and FTP as well | Tomcat supports the only HTTP
|
5-References:
-Oracle® Fusion Middleware Developing Web Applications, Servlets, and JSPs for Oracle WebLogic Server 12c (12.2.1.3.0) E80416-03
-Java Platform, Standard Edition Java Management Extensions Guide
Release 13 F18416-01