Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

WT Survey Document

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Web Technology Home Assignment

On
WEB SERVERS VS APPLICATION SERVERS
by
Sahil kukurle
Malhar kapshe
Nakul Kasar
Yash Mangrulkar
Manish shetkar

Guided by: Prof. Mrunal Shidore


Course: Web Technology
2022-23 (Semester-II)

T. Y. B. Tech
Servers

A server is a central location where information and software are kept and made available to
network clients. It supports network resource management and offers shared services to link
workstations. Additionally, it enables you to distribute data or software and physical resources
among customers. Web Servers and application servers are the two basic types of servers. The
request-response model is generally used to build (and is frequently associated with) client-server
systems: a client sends a request to the server, which acts upon it and provides a response back to
the client, normally along with a result or acknowledgment.

Web Servers

Introduction

A web server is, by definition, an application server's common subset. A web server typically
responds to hypertext transfer protocol (HTTP) requests from a web browser by delivering static
online content, such as HTML pages, files, pictures, and videos. Although an application server
can typically also deliver web content, its main function is to enable interaction between end-user
clients and server-side application code, which is the code that represents what is frequently
referred to as business logic, to create and deliver dynamic content, such as transaction results,
decision support, or real-time analytics. An HTTP server is installed on a computer (hardware)
that serves as a static web server (software). Because the server provides the hosted files directly
to your browser, we refer to it as "static."

In addition to a static web server, a dynamic web server also includes other software, most
frequently an application server and a database. We refer to it as "dynamic" because, before
delivering material to your browser over the HTTP server, the application server refreshes the
hosted files.
Figure 1 Communication between a Web server and Browser

Source: - MDN Web Docs


POPULAR WEB SERVERS:

1. Apache Spark

One of the most famous Web servers released during 2014 was Apache Spark, which was a free,
open-source data processing platform, capable of high-speed computing of large data. Apache has
been often associated with “big data analytics”. The Apache Spark framework is made up of many
key elements, including the Spark core and upper-level libraries Spark SQL, Spark Streaming,
Spark MLlib, GraphX, and SparkR. These components work together to support a variety of
workloads, including batch processing, machine learning, engaging queries, streaming processing,
etc. With language-integrated APIs in SQL, Scala, Java, Python, and R, the Apache Spark system
takes the lead. Spark Core does the bulk of the tasks.

Figure 2 7-V's of Big Data

A driver transforms user code into many tasks that can be distributed across worker nodes, while
executors operate on those nodes and carry out the tasks assigned to them. These two major parts
make up an Apache Spark application at its most basic level.

It's important to note that the comparison of Apache Spark with Apache Hadoop is rather
misleading. These days, Spark is a component of the majority of Hadoop distributions. However,
because of two significant benefits, Spark has surpassed the previous MapReduce paradigm, which
propelled Hadoop to fame as the preferred framework for processing large amounts of data.The
first benefit is quickness. When compared to multi-stage projects that necessitate writing state back
out to disc between stages, Spark's in-memory data engine allows it to complete tasks up to one
hundred times quicker than MapReduce. The coder-friendly Spark API is the second perk. One
can dispute that the simplicity of the Spark API becomes even more significant than Spark's
speedup.

2. Internet Information Services server

The Internet Information Services server is just a web application that runs on Windows Server
and is used to transmit website content to internet users. IIS is a Microsoft product, therefore it has
a number of benefits over Apache, the biggest of which is likely that most of the user base is
already acquainted with the product's structure, design, and language because they are already
Windows users. This makes the software very simple to understand and use, and it enables the
direct integration of other Microsoft products including SharePoint, PowerShell, and Microsoft
Office with IIS. IIS uses various protocols for communication and data exchange with remote
clients or computers, such as HTTP, SMTP, and FTP.

While the Apache can be used on a number of operating systems, including Mac, Linux, and
Windows, the IIS is only accessible for the Windows operating system. While IIS has a help desk
of its own to address problems, practically all of Apache's support comes from the user base.
Additionally, Internet Information Services can be integrated with other Microsoft languages or
its many children, including the ASPX scripting language. The IIS web server is a better option
than the Apache web server since its security features are more dependable.

Figure 3 Internet Information Services Server workflow

IIS functions as a web server with a dedicated Process Engine that manages all client-server
communications. The two primary layers of IIS's processing architecture are as follows:

● Kernel Mode – Executed code has complete access to all associated hardware and is free
to execute any command. Kernel Mode is typically used for reliable applications.
● User Mode – This mode only allows you to execute instructions that don't entail making
hardware or reference memory requests. This enables much quicker recovery and gives an
additional layer of defense against errors.

Application Server
Introduction

An application server, often known as an app server, is a computer program that manages all
application processes between users and a company's backend databases or business applications.
Complex transaction-based applications often utilize an application server. An application server
must have developed redundancy, supervise for high availability, greater distributed application
services, and assistance for complicated database access in order to fulfill high-end requirements
like large traffic and complex queries. An application server offers dynamic web pages or
application content that enables challenging user interfaces.

General flow for web application servers:

Figure 4 General workflow of web application servers

1. The client opens a browser and requests access to a website


2. The web server receives the HTTP request and responds with the desired webpage
3. The web server handles static data requests, but the client wants to use an interactive tool
4. As a dynamic data request, the web server transfers the request to an application server
5. The application server receives the HTTP request and converts it into a servlet request
6. The servlet reaches the database server, and the app server receives a servlet response
7. The app server translates the servlet response into HTTP format for client access
Upon receiving a servlet request from a web server, the application server processes the request
and responds to the web server via a servlet response. Because application servers primarily work
with business logic requests, the web server translates the servlet response and passes an HTTP
response accessible to the user.

POPULAR APPLICATION SERVERS:

1. Apache Tomcat

The Websites API, Java-Server Pages, and, of course, the Java Servlet are all supported by this
free and open-source Java servlet container. Tomcat's full name is "Apache Tomcat." It was
initially released in 1998 and was created in a transparent, collaborative atmosphere. It started out
as the reference implementation for the earliest iterations of both the Java Servlet API and Java
Server Pages. Even though it no longer serves as the reference implementation for these two
technologies, it is still regarded as the top option by users. It continues to be one of the most popular
Java servers because of a number of features, including strong extensibility, a tried-and-true core
engine, and tried-and-true durability. Here, the word "servlet" was used quite a bit. What exactly
is a java servlet? It is a type of application that gives the webserver the ability to manage dynamic
(java-based) content while utilising HTTP protocols.

If we wish to send straightforward data, we use the HTTP server. Use of the servlet is required if
we wish to send dynamic data or make our website dynamic. As a result, we need an HTTP server,
and we also need a container in which to run servlets. When we combine the HTTP server and the
servlet container, they come together to form the tomcat server, which is a single server. It gives
Java code a "pure Java" HTTP web server environment to run in. According to our 2022 Java
Developer Productivity Report, Tomcat is used by 48% of Java teams. As with previous years,
Apache Tomcat was far and away the most popular Java application server at 48% of all responses.
Tomcat was followed by JBoss/Wildfly (15%), Jetty (13%), WebLogic (7%), WebSphere (5%),
and GlassFish (4%).

Figure 5 Application server market share

Source: https://www.jrebel.com/resources/java-developer-productivity-report-2022
Advantages:
1. It is open-source
2. Incredibly Lightweight
3. Highly flexible
4. It provides us an extra level of security
5. It is well documented
6. It is one of the most widely used application servers

According to an estimation, it holds almost 60 percent of the market share almost all java
application server deployments, which makes it one of the most popular application servers used
for java web-based applications. However, we cannot say that it implements all of the features
required for a JavaEE application server; instead, it enables us to run Java EE application.

2. WildFly

Application server written by JBoss, which is now developed by Red Hat, is known as WildFly. It
was previously known as JBoss AS or simply JBoss. Java Platform, Enterprise Edition (Java EE)
is implemented by WildFly, a Java application. It works on a variety of platforms. Software called
WildFly is open-source and free. EJB-OSS, which stands for Enterprise Java Bean Open Source
Software, was founded by Marc Fleury in 1999 and implements the EJB API from J2EE (Java 2
Enterprise Edition). Sun Microsystems requested that the initiative cease utilising the EJB
trademark in its name. The moniker EJB-OSS was then changed to JBOSS and later JBoss. JBoss
Application Server was rebranded to WildFly on November 20, 2014.

Features:

1. Powerful: WildFly's configuration is centralised, easy to use, and user-centered. The


configuration file is structured into understandable subsystems, and no exposed internal
server wiring is present. All management functions are uniformly exposed across all access
types. A CLI, a web-based management console, a native Java API, an HTTP/JSON-based
REST API, and a JMX gateway are some of these. These choices enable customised
automation utilising the tools and dialects that are most appropriate for your requirements.

2. Modular: Classloading is done correctly in WildFly. By hiding server implementation


classes from the application and only linking with JARs that your application requires, it
employs JBoss Modules to provide real application isolation. Visibility rules can be altered
but have reasonable defaults.

3. Lightweight: - WildFly's aggressive memory management strategy is lightweight. The


common cached indexed metadata used by the base runtime services over duplicate full
parses, which lowers heap and object churn, minimises heap allocation. The management
console is entirely client-driven and stateless. It launches immediately and uses no server
RAM.
4. Standard-Based: WildFly implements the most recent Java enterprise standards from
Eclipse MicroProfile and Jakarta EE. These increase developer productivity by offering
comprehensive enterprise features in simple frameworks that remove redundancy and ease
technical load. Your team is now free to concentrate on the essential business requirements
of your application. Building your application using standards gives you the freedom to
choose between solutions from different vendors.

Conclusion

Web servers and application servers are both used to serve the content on the web. Although Web
Servers are designed to serve static content, most Web Servers have plugins to support scripting
languages like PHP, Perl, etc. through which they can generate dynamic HTTP content, but an
application server is one that is designed to generate dynamic content. Most Application Servers
have a Web Server as an integral part, which means an Application Server can perform all the
tasks that a Web Server does. Thus, we may conclude that a web server is a computer program that
accepts HTTP requests from clients and sends the requested documents, while an application
server is one that helps us to host applications and provides an environment to develop and run an
application program.

References

[1] Yogesh Kumar Gupta; Surbhi Kumari; (2020). A Study of Big Data Analytics using Apache Spark
with Python and Scala . 2020 3rd International Conference on Intelligent Sustainable Systems
(ICISS), (), –. doi:10.1109/iciss49785.2020.9315863
[2] Mourad, A.; Huiqun Liu, (1997). [IEEE Comput. Soc Second IEEE Symposium on Computer and
Communications - Alexandria, Egypt (1-3 July 1997)] Proceedings Second IEEE Symposium on
Computer and Communications - Scalable Web server architectures. , (), 12–16.
doi:10.1109/ISCC.1997.615963
[3] Chitra, Lakshmi Prasanna, and Ravikanth Satapathy. "Performance comparison and evaluation of
Node. js and traditional web server (IIS)." In 2017 International Conference on Algorithms,
Methodology, Models and Applications in Emerging Technologies (ICAMMAET), pp. 1-4. IEEE,
2017.
[4] C. You, M. Zhou, Z. Xiao and H. Mei, "Towards a Well Structured and Dynamic Application
Server," 2009 33rd Annual IEEE International Computer Software and Applications Conference,
2009, pp. 427-434, doi: 10.1109/COMPSAC.2009.64.

You might also like