Software
Architectures
ITSE 402 – SOFTWARE DESIGN, INTEGRATION AND
TESTING
TOPIC OUTLINE
I. What is Web Application Architecture?
II. Instant Messaging Software Architecture
What is Web Application
Architecture?
The web application architecture describes the interactions between
applications, databases, and middleware systems on the web. It ensures
that multiple applications work simultaneously.
Let us understand it with a simple example of opening a webpage.
As soon as the user hits the go button after typing a URL in the address
bar of a web browser, it requests for that particular web address.
The server sends files to the browser as a response to the request made.
The browser then executes those files to show the requested page.
Finally, the user is able to interact with the website. The most important
thing to note here is the code parsed by the web browser. A web app
works in a similar way.
A web application architecture has to not only deal with efficiency, but
also with reliability, scalability, security, and robustness.
Web Application Components
When we say web application components, we can mean any of the
following two:
UI/UX Web Application Components – This includes activity logs,
dashboards, notifications, settings, statistics, etc. These components have
nothing to do with the operation of a web application architecture.
Instead, they are part of the interface layout plan of a web app.
Structural Components – The two major structural components of a web
app are client and server sides.
Client Component - The client component is developed in CSS, HTML, and JS.
As it exists within the user’s web browser, there is no need for operating
system or device-related adjustments.
The client component is a representation of a web application’s functionality
that the end-user interacts with.
Server Component - The server component can be build using one or a
combination of several programming languages and frameworks, including
Java, .Net, NodeJS, PHP, Python, and Ruby on Rails.
The server component has at least two parts; app logic and database. The
former is the main control center of the web application while the latter is
where all the persistent data is stored.
Types of Web Application Architecture
A web application architecture is a pattern of interaction between various web
application components.
The type of web application architecture depends on how the application logic is
distributed among the client and server sides.
There are three primary types of web application architecture. Each one of them is
explained as follows:
Single-Page Applications (SPAs) – Instead of loading completely new pages from
the server each time for a user action, single page web applications allows for a
dynamic interaction by means of providing updated content to the current page.
AJAX, a concise form of Asynchronous JavaScript and XML, is the
foundation for enabling page communications and hence, making SPAs a
reality. Because single-page applications prevent interruptions in user
experience, they, in a way, resemble traditional desktop applications.
SPAs are designed in a way so that they request for most necessary
content and information elements. This leads to the interactive user
experience.
Microservices – These are small and lightweight services that execute a
single functionality.
The components making up an application build using the Microservices
Architecture aren’t directly dependent on each other. As such, they don’t
necessitate to be built using the same programming language.
Hence, developers working with the Microservices Architecture are free
to pick up a technology stack of choice. It makes developing the
application simpler and quicker.
Serverless Architectures – In this type of web application architecture, an
application developer consults a third-party cloud infrastructure services
provider for outsourcing server as well as infrastructure management.
The benefit of this approach is that it allows applications to execute the
code logic without bothering with the infrastructure-related tasks.
The Serverless Architecture is best when the development company
doesn’t want to manage or support the servers as well as the hardware
they have developed the web application for.
Instant Messaging Software 3 1 2
Architecture
The web server (or an application server with
4
a web service embedded), downloads the
Instant Messenger resources from a browser
to the clients. The resource files make up the
client. MUX
Clients send messages to one another through
a multiplexor, which forwards the messages to
the Instant Messaging server. Dubai
The directory server stores and retrieves local
user and group delivery information such as
preferences, location, and to which
multiplexor to route messages for this user.
When the Instant Messaging server receives a message, it uses this information
to determine where and how the message should be delivered. In addition, the
directory server can contain user information such as contact lists and
subscriptions.
In this basic configuration, Instant Messaging directly accesses Directory Server
to verify user login name and passwords for mail clients that use Instant
Messaging.
Outgoing instant messages from clients go directly to the multiplexor. The
multiplexor sends the message to the appropriate Instant Messaging server,
which in turn forwards the message to another Instant Messaging server, or if
the message is local, to the multiplexor with which the recipient is associated.
New users are created by adding user entries to the directory. Entries in
the directory can be created through Instant Messaging Server (by
enabling new-user registration feature) or changed by using the tools
provided with the directory server.
Instant Messaging components are administered through a set of
command-line interfaces and text-based configuration files.
Any machine connected to the Instant Messaging host can perform
administrative tasks (assuming, of course, the administrator has the
required privileges).
Primary components of Instant Messaging
Instant Messaging Server
The Instant Messaging server handles tasks such as maintaining presence
information for each user, controlling Instant Messenger privileges and
security, enabling Instant Messenger clients to communicate with each other
by sending alerts, initiating chat conversations, and posting messages to the
available news channels.
The Instant Messaging server also handles archiving, calendar alerts, and
offline email notifications. The Instant Messaging server supports the
connection of a multiplexor that consolidates connections over one socket.
The Instant Messaging server routes, transfers, and delivers instant messages
for the Instant Messaging product.
Instant Messaging Multiplexor
The Instant Messaging multiplexor component connects multiple instant
messenger connections into one TCP (Transmission Control Protocol)
connection, which is then connected to the Instant Messaging server.
The multiplexor reads data from Instant Messenger( many clients) and
writes it to the server. Conversely, when the server sends data to Instant
Messenger, the multiplexor reads the data and writes it to the appropriate
connection.
The multiplexor does not perform any end user authentication or parse
the client-server protocol (IM protocol). Each multiplexor is connected to
one and only one Instant Messaging server.
Instant Messenger Client
Instant Messenger is Instant Messaging’s client that can be configured to be a
browser-based applet using Java plugin, or a standalone Java application
using JavaTM Web Start.
Instant Messenger provides the following modes of communication:
Chat. Instant Messenger’s version of Instant Messaging conferences is called
chat.
Chat is a real-time conversation capability that enables end users to complete
projects, answer customer queries, and complete other time-critical
assignments.
Chat sessions (two or more participants) are held in chat rooms created on a
need basis.
Conference Rooms. Conference rooms are persistent chat rooms that
work similarly to regular chat sessions, but offer:
◦ Access control
◦ Moderated chats
Alerts. Alerts enable information delivery and response to end users
through the Instant Messenger interface. Alerts can deliver time-critical
information to the end user.
The sender of the alert message is notified when the message is delivered
and read by the recipient. You can also configure Instant Messaging to
forward alerts to an email address.
Poll. The polling function enables you to ask end users for their response to a
question. You can send a question and possible answers to poll recipients, and
the recipients can respond with their selected answer.
(Survey - set of questions with answers)
News. News channels are forums for posting and sharing information. End users
can subscribe to news channels of interest to see updates using the URL of the
news channels or view the news channel updates through static messages.
Administrators control news channel access by assigning end users to the
channels they need, and deciding who can see or post information to the
channels.
REFERENCES
1. [Link]
2. [Link]