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

Prof.

Rodriguez Lecture On things you


should know
Concepts You Should Know
Preface – Review, Enlightenment, Insight or Awakening?

(Part 1 of 1)

(Lecture Notes 0)
Prof. Abel Angel Rodriguez
CHAPTER 0 – INTRODUCTION TO MY COURSES, BASIC CONCEPTS & YOUR PLACE IN THE
WORLD OF INFORMATION SYSTEMS TECHNOLOGY ................................................................... 3
0.1 My goal is to teach you how to fish & how to can continue to teach yourself how to fish better in order to be a better
fisherman! ........................................................................................................................................................................................... 3

0.2 My opinion on the top skills you need for success in IT .............................................................................................................. 4

0.3 The reality of IT/Computer Science! Why do Companies need IT Professionals? .................................................................... 5

0.2 Stand-alone Applications & Client/Server Applications ........................................................................................................... 21

0.2 Review of Client/Server Applications (n-tier Windows & Web) Managed and hosted on a company datacenter (ON-
PREMISES) ...................................................................................................................................................................................... 65
Advantages ................................................................................................................................................................................. 71
Disadvantages............................................................................................................................................................................. 71
Advantages ................................................................................................................................................................................. 78
Disadvantages............................................................................................................................................................................. 78
Advantages ................................................................................................................................................................................. 86
Disadvantages............................................................................................................................................................................. 86
Advantages ................................................................................................................................................................................. 94
Disadvantages............................................................................................................................................................................. 94

0.5 In Computer Science, what is a Type? Blueprint? Class? Entity Type? - versus – Type INSTANCE? Blueprint
INSTANCE? Class INSTANCE? Entity Type INSTANCE? ....................................................................................................... 103
0.2.1 The Concept of Blueprint, Template, Class, Type versus the INSTANCE of a Blueprint, Template, Class or Type .............. 103

2
Chapter 0 – Introduction to My Courses, Basic Concepts &
Your Place in the World of Information Systems Technology

0.1 My goal is to teach you how to fish & how to can continue to teach yourself how to
fish better in order to be a better fisherman!

My goal #1 - is to teach you how to fish & so


YOU can continue to teach yourself how to
fish to eventually become a professional
fisherman!

3
0.2 My opinion on the top skills you need for success in IT/Computer Science

▪ You need to use your thoughts to


reason, analyze, judge, rationalize,
contemplate etc.!
▪ One way to develop this skill is via:

‐ Algorithms, Flow Chart &


Pseudo code in programming

▪ You need THINKING! ▪ You need THINKING &


▪ One way to develop this skill is via: CREATIVITY!
▪ One way to develop this skill is via:
‐ Algorithms, Flow Chart &
Pseudo code in programming ‐ Algorithms, Flow Chart &
Pseudo code in programming

CONCLUSION:

▪ In my experience, the Algorithm portion of programming that


is Flow-Charts & Pseudocode creating helps develop all these 3
skills
▪ In my opinion, those who don’t like or engage in any
programming activities are doing a disservice to their skill
development.

4
0.3 The reality of IT/Computer Science! Why do Companies need IT Professionals?

DISCUSSION #1 – WHY Information


Technology PROFESSIONALS EXIST?
Why are we Here in School Learning Computer
Science/Information Technologies?

Students – Make $? Better Career? Why?

Why does a Hospital, Pharmaceutical company, Law


Firm, Financial Firm, Government Agency, etc., have to
hire IT Professionals?

After all, for a Hospital is the Doctors & Nurses that


make them money!

For Pharmaceutical company is Scientist and Chemical


Engineers make them money!

For a Law Firm, is Lawyers & Paralegals that make them


money!

So why do these companies & governmental agencies


and practically all businesses need to invest Billions
upon Billions of dollars in IT Datacenters and hire IT
professionals to Design, Implement and Manage such
Infrastructure And pay them well?

5
Answer:

Is all about the APP!


(APPLICATION) & Of course the
DATA!

But without the APP we cannot


get to the data & so data alone
cannot cut it!

1)Applications & 2) its DATA!!!

6
The Application – Is all About the APP!
❑ Applications empower the business to operate, sell products and services, modernize the busines and coupled with Artificial
Intelligence (AI) gain competitive edge
❑ Applications are used by or help business/people as follows:

▪ Run & Operate a Business (Products & services) – There are applications that provide the features and
functionalities to RUN & OPERATE all or some aspects of a business. For example: Enterprise Resource Planning (ERP)
applications that manage the day-to-day such as accounting, procurement, project management, risk management &
compliance, supply chain operations, finance etc., e.g., SAP HANA, Peoplesoft, Oracle NetSuite, Microsoft Dynamics,
Workday, etc. Other individual custom applications created by a business to run and manage the business.
▪ Sell a company’s products – There are applications, both custom created or purchased to enable a company to sell
its products and services such as ecommerce websites, and other non-web applications used in the selling process and supply-
chain management.
▪ Customer Relationship Management (CRM) – There applications are called Customer Relationship
Management (CRM) applications which assist a company’s sales team engage and manage customers/clients for better
engagement and sell more products & services.
▪ HR Management Systems – There applications are used by HR to manage employees etc., such as Peoplesoft.
▪ Empower the business to develop new Modern Applications for Competitive Edge
Powered By AI/ML – Applications also are used by a business to launch new products empowered by Artificial
Intelligence (AI)/Machine Learning (ML) to give them competitive edge over their competitors.
▪ Customer Purchasing – Applications are used by consumers and other businesses to purchase products, such as
Amazon.com and other e-commerce web sites etc.
▪ Customer Social Media – There applications are used by people to socialize on the internet.
▪ Mobile Applications – There applications are used in cell phones and tables for those on the go. These days, people
cannot live without their Phone Apps!
▪ Other Applications – Applications empower people and business to do more! there are thousands of applications out
there we cannot cover them all. But this short list shows how important applications are. IS ALL ABOUT THE APP!

❑ The say the DATA is the lifeblood of a company! If that is the case, then the APPLICATION is the heart that pumps that blood!!

7
The Data –
❑ Information sometimes referred as data is by most people considered to be the most important entity in a company since is the
lifeblood of a company.
❑ First let’s define the difference between Data and Information since these two words are used interchangeably:

▪ Data or raw data – is the unprocessed data, usually as an INPUT to an APPLICATION to be PROCESSED!

▪ Information – is the result of processing the raw data, usually as an OUTPUT from the APPLICATION after
PROCESSING!

▪ Data a combination of Raw Data & Information – Applications also INPUT both raw data and
information for PROCESSING and generating an OUTPUT from the APPLICATION!

❑ In my opinion without the APPLICATION data would not be as relevant. Data/Information is the results of an Application
Processing!
❑ Nevertheless, this DATA (raw data and process information) is one of the most important
assets of a company and worth protecting because of its value.
❑ A business makes its informed decisions based on REPORT and ANALYSIS of the data (raw data & Information) processed
from applications:

▪ Reports – A report is an organized account or statement of facts/information formatted in using graphics, tabular
information, paragraphs etc., which enables decision makers to make the best decision on the business.

o Reports are created from the input data, processed output information from applications and other sources.
o Reporting is a very important aspect of a business and Information Systems since reporting applications are needed to be
able to aggregate data from many applications to create a report that provides what a decision maker needs to make the
right decision.

▪ Analytics – A systematic computational analysis of data!

o Both INPUT raw data & OUTPUT processed information are used in Analytics to analyze the data for a more powerful
report that utilizes data & math to answer business questions.

‐ An important and diverse field in Computer Science to find meaningful patterns in data to uncover new knowledge
based on applied mathematics, statistics, predictive modeling, and machine learning techniques (ML/AI)

o Modern Analytics is powered by Machine Learning and Artificial Intelligence:

‐ Artificial Intelligence – Enable Computers and Machines to mimic the perception, learning, problem-solving, and
decision-making capability of the human mind.

‐ Machine Learning – A branch of Artificial Intelligence (AI) where computers discover on their own how to
perform a task without being told what to do. MACHINES LEARN ON THEIR OWN FROM THE DATA!

o Analytics can be a complex activity, nevertheless technology has made it easier and done the work for us by new
applications that help us program and use analytics techniques and libraries to do the work for us.

8
▪ Insight – A deep understanding of your customers, products, services etc., that gives you a competitive edge.

o Insight is the output of the Analytics Machine Learning/Artificial Intelligence.

‐ AI analyzes the data and tell us what questions to ask


‐ What steps to take
‐ What are customers are thinking or may do.
‐ Etc.
‐ Predict unknown outcomes so we can make the best decision.
‐ Automate decisions.

❑ Using a combination of DATA & ANALYTICS todays businesses can:

▪ Better Run & Operate their Business (Products & services) – from data a company can better develop
their products and services, in addition to achieve operational efficiency, etc.
▪ Modernize their Applications to Gain a Competitive Edge – Using Analytics powered by AI and ML, a
company can gain a competitive edge by creating the applications powered by AI/ML.
▪ Answer Business Question based on data.
▪ Discover new business relationships based on data.
▪ Predict unknown outcomes based on data (predictive analytics.
▪ IS ALL ABOUT THE APP (Powered by AI) and the DATA!

9
Is all about the APP & Its DATA!!!
THE USER, DEVICE & CLIENT THE BACK-END SERVERS
APPLICATION
TAKE AWAY

▪ APPLICATIONS
have multiple
Components.

▪ Involving a Client
app & one to many
server application
components

NETWORK
NETWORK

APPLICATION

THE DATA – STORED & MANAGED IN


THE APPLICATION – STORED &
THE BACK-END SERVERS
RUNNING IN THE DESKTOP/LAPTOP
(A running program or Executable
(A CLIENT APPLICATION running
That manages the DATA & other BACK-
program or Executable RUNNING on the
END PROCESSING for an application)
CLIENT OS in the user’s
Desktop/Laptop)
Conclusion:

So, if is all about the APP & Its


DATA then I ask the following
question:
If YOU are NOT an Application/Software Developer, is it
important to your career to understand how
Applications are DEVELOPED & most important
ARCHITECTED?

Absolutely is SUPER important!!!


Whether you career focus is Database, Network,
Server/Desktop, Project Manager, Security or other IT
Professional, understanding how Applications are
Architected and deployed is crucial to your success!

In the next sections I will describe two basic Application


Architectures which are very common today.
Nevertheless, keep in mind there are other architectures
and in future lectures we will dive deeply into these
architectures. But for now, I want to give you two quick
examples to validate the point of understanding the
importance of Application Architectures, even if you are
not a developer!
The Client/Server
Architecture (The Foundation)
Introduction
❑ Client/Server Technology is one or the most widely used architecture used to create applications.
❑ The Client & Server are defined as follows:

▪ Client – Process or executable program that makes requests to another process (executable)

▪ Server – Process or executable program that services or complies with the request made by a client process, thus the name
server.

❑ The diagrams bellow illustrates the Client/Server communication interactions. Note how the client process makes a request to the
Server Process. The server process handles the request for the client:

Client Process requesting service from Server Process. Server Process replying to request.

Reply

Request

CLIENT.EXE SERVER.EXE
CC CC

Client/Server Interaction

Client Process requesting service from Server Process. Server Process replying to request.

3 Send
4 Results

2 Process
Consume Request
1 Make
or Display
Request
Results

CLIENT.EXE SERVER.EXE
CC CC

Detailed Client/Server Interaction


12
Multi-tiered
❑ Client/Server architecture can be multi-tiered or multiple components but the definition of each tier is still the same as the basic
architecture:

▪ Client – Process or executable program that makes requests to another process (executable)

▪ Server – Process or executable program that services or complies with the request made by a client process, thus the name
server.

❑ Below are examples of multitiered client server architectures:

Client Process requesting SERVICES from Server Process.


Server Process PROCESSES the request and replies with SERVICES to Client.
Client Process CONSUMES the results from Server.

Server
3 Replies
Results

4
Server Process
Client 1 Client Makes 2 Request
Consumes APP1 Request APP2
and/or
Displays
Results

CLIENT.EXE SERVER.EXE

TWO-TIER CLIENT/SERVER

13
Client Process requesting SERVICES from Server_1 Process.
Server_1 Process requesting SERVICES from Server_2.
& Server_1 Process replying to Client request for consumption.

Server1 Server2
6 Replies
5 Replies
Results Results

7
3 Server1 Makes
Client Request to server2
Consumes APP1 APP2 APP3
and/or 1 Client Makes
2 Server Process 4 Server2 Process
Displays Request Request Request
Results

CLIENT.EXE SERVER_1.EXE SERVER_2.EXE

THREE-TIER CLIENT/SERVER

The one Client Process requesting SERVICES from Server_1 Process.


Server_1 Process requesting SERVICES from Server_2.
Server_2 Process requesting SERVICES from Server_N etc.
& Server_1 Process replying to Client request for consumption.

Server2
6 Server1
Replies
5 Replies 4 Server2 Process
Request
Results Results

7
3 Server1 Makes
Client Request to server2
Consumes APP1 APP3 APP4 APP(N)
and/or 1 Client Makes APP2
Server Process
Displays Request 2 Request
Results

CLIENT.EXE SERVER_1.EXE SERVER_2.EXE SERVER_4.EXE SERVER_N.EXE

N-TIER CLIENT/SERVER

14
Client & Server Name Misconceptions
❑ Note that the names Client and Server are very common terms used throughout the field of IT:

▪ For example, the word Server is sometimes referred to a physical server computer accessed via a network and located in a
SERVER ROOM or DATACENTER:

▪ And the word Client, to represent a workstation computer on a user’s desk.

Client? Client? Server?

❑ These naming conventions can be confusing and misleading:

▪ It’s important to understand that the word CLIENT and SERVER as referred to in the Client/Server Architecture, represent
individual running PROCESSES OR EXECUTABLE PROGRAMS NOT PHYSICAL MACHINES!.
▪ A CLIENT is an EXECUTABLE PROGRAM that makes requests:
▪ A SERVER in an EXECUTABLE PROGRAM that handles the request:
▪ Where the Client executable makes request to the Server executable, and the server executable processes and return the answer
to the request to the client:

Client Process requesting service from Server Process. Server Process replying to request.

3 Send
4 Results

2 Process
Consume Request
1 Make
or Display
Request
Results

CLIENT.EXE SERVER.EXE
CC CC

Detailed Client/Server Interaction

15
Scenario #1
❑ What this means is that we can have a Client process run in the same physical machine as the Server process or vice versa.

Server.exe Server.exe

Client.ex Client.ex
e e

Scenario #2
❑ Or you can have the Client process run in one physical machine as the Server process in another physical machine. This would be
the normal configuration you will come across in the industry:

Client.ex Server.exe
e

❑ The physical Hardware System or Computer has nothing to do with the location of the Client and Server process.

❑ So don’t get confused by calling a computer a server or client, a server or client process can RUN ON ANY COMPUTER.
❑ In the next two sections, we will understand what makes a computer to be named a SERVER or a CLIENT.

16
App Category 1 - ON
PREMISE APPLICATIONS
(Applications that all it’s Components reside in
the Company’s on-premise Datacenter(s)
❑ Enteprise organizations can be made up of:

▪ Many office buildings & people.


▪ Companies use computer applications and the data generated by these applications to run &
empower their business and sell their products and services. They use the applications
to do run & manage the day-to-day business processes and the resulting data captured &
generated by the applications for analysis and decision making.
▪ IMPORTANT! The COMPUTERS/HARDWARE/DEVICES that the host & execute the applications are HOSTED in the
company’s DATACENTERS.
▪ A computer network system to interconnect all offices and datacenters.

KEY POINT?

The applications Back-end


components or SERVERS
are stored in
CUSTOMER’S OWN
DATACENTERS!

17
Interaction between Users, Client (front-end component) & Server (back-end component) of an
application located in the Company’s Owned Datacenter
❑ The back end or SERVER components of applications are hosted in the Company’s owned Datacenters while the
CLIENT components are in the user’s desktop/laptop computers and what the user interacts with and makes requests of the
SERVER components located in the COMPANY’S OWNED DATACENTERS shown below:

18
Datacenters
❑ The Datacenters:

▪ Datacenters are medium to large mega structures & complexes. The datacenters house all of a company’s computer assets
which includes:

o The physical computer servers that host & execute the server component(s) of an application, the data storage or
database servers, other large storage devices, backup appliances & computers, cooling systems, electrical systems,
plumbing system, people to run and manage the data centers, etc.

▪ A company can own one or more Datacenters contain all of the infrastructure required to keep applications running, managed
along with the company’s data & secrets.

19
❑ Note the following on the applications that reside in the datacenters & other location for an organization:

▪ Again, the applications are used to do the work of running the business, develop and sell their products and services.
▪ Business can have thousands of applications required to run their business and have the following options for getting the
applications:

1. Build or develop their own applications:

‐ Applications need to be customized to meet the demands of the business; thus the applications must be developed by
the company.
‐ The time factor – to design, develop & deploy an application can take months and sometimes years.
‐ The management & upgrade factors – applications need to be managed, upgraded to meet the changes of the
business, maintained etc.

2. Buy & configure the applications:

‐ Applications can also be purchased from software vendors such as Microsoft, Google, Amazon, IBM, and many
more, etc.
‐ In many cases, it is easier to buy/purchase than build! Therefore, minimizing the time factor of building your own.
‐ Many purchased applications allow you to configure and customize them to a company’s need. Customization com
in different forms: administrative configurations such as setting certain parameters etc., or more involved such as
programming the application within the application or SCRIPTING!
‐ Purchased applications can be costly, but in the long run there may be some savings from the maintenance and
upgrading of custom applications.

3. RENT & configure the applications:

‐ This option is the new paradigm in computing today, Cloud Computing.


‐ We will dive deeper into cloud computing towards the end of this document but with cloud computing you have the
options to:

➢ Rent an entire application – No programming, no hardware or maintenance of hardware. No


datacenter required! Just use and pay as you go!
➢ Rent a development environment – Create & deploy your application in Cloud Hosting
Company’s cloud. No hardware or maintenance of hardware required. No datacenter required! Just use service
and pay as you go!
➢ Rent virtual servers – move your physical infrastructure to virtual servers in the Cloud Hosting
Company’s cloud. You need to manage the Operating System and the configuration of the virtual servers, but
No hardware or maintenance of hardware required. No datacenter required! Just use service and pay as you go!

‐ The cloud model offers different options on what you can rent for an application. The entire application build your
own application without hardware, or rent virtual hardware and move all your application to a virtual computer. No
physical computer needed.

4. Combination of all 3 options: Develop your own Custom App, Buy & RENT:

‐ The reality is that companies are using a combination of all 3 options (Build, Buy & Rent), nevertheless, the goal
and the optimal option is a Hybrid Cloud Computing approach or combination of all 3 options.
‐ We will dive deeper into cloud computing towards the end of this document but with cloud computing you have the
options to:

20
SCENARIO #1 – Stand-alone Application
❖ Not very common application architecture in today’s
business. A few can be found in enterprises but rare.
❖ These applications are meant for one user, where data is
not shared etc.

0.2 Stand-alone Applications & Client/Server Applications

Stand-Alone Windows Application


❑ A stand-alone application is as follows:

▪ Application that only runs on the user’s computer and has NO OTHER COMPONENTS that run on another
computer.
▪ Application runs locally and stands alone.
▪ Usually, a Windows Application or Windows Graphical Interface application (forms, frames, multi-window etc.)
▪ Does all the processing required for the application to do what it does.
▪ Key point – IT DOES NOT CONNECT TO ANY OTHER COMPUTER TO HELP IT DO WHAT THE APPLICATION
DOES OR PART OF WHAT THE APPLICATION DOES!
▪ An example of stand-alone application is NOTEPAD on a Windows Operating system. It runs stand alone and does not
connect to any other application to help it do its work.
▪ In the early days of computers, all applications were stand alone.
▪ A stand-alone application is hosted on the user’s computer via the operating system

❖ There are NOT many stand-


alone applications in
companies.
❖ The main category of
applications you find in an
enterprise is Client/Server
Applications which involve
two, three, n components that
make up the application:

▪ Two, Three Tiers Windows


Client/Server Applications
▪ Three, four, Web
Application Client/Server
Applications

❖ A NETWORK is the connections


that connect the components
of the application
❖ We discussed these important
applications in the next
sections

21
SCENARIO #2 - Database Application using a Windows
Two-Tiered Client/Server Architecture: Client Program
Connected to a Database Management System (DBMS)
Server
❖ Target Architecture for most Business Applications in real-
world scenario that are NOT web applications
❑ What used to be one of the most common Business Database Applications are WINDOW CLIENT APPLICATIONS that
CONNECT to a Database Management System (DBMS) BACK-END SERVER.
❑ Architecture:

▪ A TWO-TIER CLIENT/SERVER ARCHITECTURE application (More on this later):


o CLIENT – The application BUSINESS LOGIC & PROCESSING is created in languages such as VB.NET, C#,
JAVA etc.,
o SERVER – and CONNECTS to Database Management System (DBMS) like Oracle, SQL Servers, MySQL etc., in
order to retrieve, update, insert and delete data.

▪ Below is an illustration of the Windows Client Database application:

Windows Client/Server Database Application

Workstation
Operating Server
System Operating
User System
OS.EXE
GUI OS.EXE
Tables
Queries
NETWORK Reports
Client Stored Proc
Application
(C#, Java,
VB.NET, etc.) Database Management system

Client _App.EXE
DBMS_Server .EXE

22
Two-Tiered Client/Server Application
❑ Client/Server Technology is the most widely standard architecture that has been used when creating applications today.
❑ In Client/Server that application is composed of TWO OR MORE PARTS. The simple version is 2 parts or tiers:

1. The Client – Custom Built by programmers at a company or PURCHASED from a software vendor. Usually, a
Windows Application or Windows Graphical Interface application (forms, frames, multi-window etc.)
2. The Server/Database Server – PURCHASED from a software vendor. Rarely custom built

3. Network – not part of the application but it is a separate component that connects the two
parts!

❖ IMPORTANT! The complete application is a combination of BOTH, THE CLIENT APPLICATION & THE
DATABASE SERVER APPLICATION!!!!

❑ The Client & Server are defined as follows:

▪ Client Application – The First Part of the application that runs on the user’s
computer/laptop
o CLIENT PART OF APPLICATION –This is the main part of the application since is what the user interacts
with.
‐ Most of the user’s usage of an application is located in the CLIENT APPLICATION.
‐ For example, Outlook is a client application in the Microsoft Email System. It is what the users use to create,
edit, delete etc., their emails.

o HARDWARE – The Client Application is hosted by desktop computers, laptops, tablets etc. DOES NOT
REQUIRE POWERFUL HARDWARE OR COMPUTERS!

o CLIENT OPERATING SYSTEM (OS) – The A client application runs on a CLIENT


OPERATING SYSTEM (example Windows 10, MAC OS, etc.)

▪ Server/Database Server Application – The Second Part of the application


that runs on a back-end server computer in the datacenter, server closet, etc.
o DATABASE SERVER PART OF APPLICATION –This is the back-end or heavy processing part of the
application since is not near the user or used by the user.
‐ This is the second part of the application. Users don’t interact with it and usually even know it exists.
‐ Most of the HEAVY PROCESSING & SAVING/STORAGE OF DATA is in the SERVER APPLICATION
‐ For example, Exchange Server is a server part of the Microsoft Email System and the second part of the
Outlook client application running on the user’s desktop. It handles or the email transmission processing and
routing. Users don’t interact with the server only the client Outlook.
‐ Usually, the SERVER PART OF THE TWO-TIER ARCHITECTURE IS ALWAYS A DATABASE SERVER.
‐ A DATABASE SERVER IS A SERVER THAT STORES AND MANAGES THE DATA FROM AN
APPLICATION.

o HARDWARE – The Server Application is hosted by POWERFUL SERVER COMPUTER HOSTED IN A


DATACENTER OR SERVER ROOM.

o SERVER OPERATING SYSTEM (OS) – The A Server Application runs on a SERVER


OPERATING SYSTEM (example Windows Server, Unix, etc.)

23
Physical Illustration of how the 2-tier Client/Server application is deployed in Enterprise Scenarios
❑ Simple graphical illustration of how this architecture is setup in an enterprise business:

Physical View of Windows Two-Tier Client/Server Application Components

❖ User in the business ❖ The Client ❖ In the company’s DATACENTER, The


office uses a WINDOWS Application Database Management System or
Client Application in their connects via the Database Server application manages
workstation or laptop. company’s network the Client Application’s Data on behalf
to a DATABASE of the Client Application.
SERVER Application
which is the Second ❖ The Database Server enables the
Component of the WINDOWS Client Application to
Application. retrieve, update, insert & delete its
Data from the Database Server.
A Logical View of how the Client/Server application is deployed in Enterprise Scenarios
❑ Now we drill in to show another view of the application architecture deployed in an enterprise business for one user:

A detailed View of Client/Server Application & it’s


deployment

User
Database
Server

Server
Reply Reply Application
Client Component
Network Request
Executable
Application
Executable EXE
Hosted in
Hosted in EXE SERVER Computer &
Server OS
User Workstation &
Client OS

25
A true REALISTIC Logical View of how the Client/Server Application is deployed and used in Enterprise Scenarios (many
users)
❑ Enterprises have hundreds to thousands of employees using a client/server application. This scenario is where this application architecture has the most benefits.
❑ Below is the true representation of how this application architecture is deployed and used by users:

A Realistic View of How Client/Server Application is used in the Enterprise

User 3
User 1

EXE DBMS
Client Application
Component
Executable
Database
Server Client Application
Component
Hosted in Executable
User workstation &
Client OS Server Application EXE
Component Hosted in
Executable User workstation &
Client OS
EXE
Hosted in
SERVER Computer &

User 2 Server OS

Network User 4

Client Application Client Application


Component Component
Executable Executable

Hosted in EXE EXE Hosted in


User workstation & User workstation &
Client OS Client OS

26
Detailed Analysis of the Two-Tier Client/Server Application
❑ Let’s break down further and analyze the Application Architecture
and it place in the world of Information Technology.
❑ In addition, the IT Professionals involved in the planning, analysis,
design, development, implementation and operations of this type of
Application Architecture:
Two-Tier Windows Client/Server Database Application

4 5 7 14
1 2 3 6 15 16 17

Desktop Desktop Other IT Pros Server Server Server Other IT Pros


Help Desk Business Other IT Pros Desktop
Engineering Administrator (security, PM etc.) Engineering Engineer Administrator (security, PM etc.)
Analyst (security, PM etc.) Engineer
Architect Architect

Workstation
Operating 6 7
2
1 User System
OS.EXE Server
GUI 5 Operating
System
OS.EXE
Tables
Client NETWORK
NETWORK Queries
Application Reports
(C#, Java, Stored Proc
VB.NET, etc.)

4 Database Management system

Client _App.EXE

8
10 11
DBMS_Server .EXE
12 13

8 9 18 19 20 21 22

Network Network Other IT Pros


Network
Engineering Administrator (security, PM etc.)
Engineer
Architect Systems
Database Database Database Application Other IT Pros
Application Other IT Pros Analyst Developer Administrator Developer (security, PM etc.)
Developer (security, PM etc.) Focus of CST3504 & CST3604 Courses
The IT Professionals that Manage the Application
▪ IT professional involved in the design, development, implementation & maintenance/operations for the Two-Tiered
Windows Client/Server Database Application are:

The User
Item no. Components IT Professional Role Description
1 User 1 ▪ Help Desk Support user by addressing
any issues with application.
First point of contact for
users requiring help. Help
desk will align the other IT
professionals on behalf of
the users.

2 ▪ Business Analysts Assesses the business to


determine needed
application/technology to
solve a business neeed or
problem

3 ▪ Other IT Pros for These are other IT


End-User professionals engaged in the
Experience design, planning, security,
Strategies regulatory compliance, etc.,
for the end-user experience
strategies. E.g.
Information System
Security Team (InfoSec),
Regulatory Compliance
Team, Project Managers,
etc.
The User’s Workstation/Device &
Application (Front-End)
Item Components IT Professional Role Description
no.
2 Workstation 4 ▪ Desktop
Engineering
Design the client-side architecture &
infrastructure to support the
Computer Architectects workstations harware and CLIENT
Applications for all users (Designs
the user’s desktop for the
organization)

IMPORTANT CONCEPT – This


includes the Design of how the
CLIENT Applications are hosted &
managed by the User’s
WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

3 Workstation 5 ▪ Desktop
Engineers
Implement the design of the client-
side architecture & infrastructure to
Client support the workstations harware
and CLIENT Applications for all
Operating users (Designs the user’s desktop for
the organization)
System
IMPORTANT CONCEPT – This
includes the Implementation of
how the CLIENT Applications are
hosted & managed by the User’s
WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

6 ▪ Desktop Operate the day-to-day activities


Administrators and maintenance of the desktops for
the organization.

IMPORTANT CONCEPT – This


includes the Operation of how the
CLIENT Applications are hosted &
managed by the User’s
WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

30
▪ Other IT Pros for These are other IT professionals
7
User’s engaged in the design, planning,
Workstation security, regulatory compliance, etc.,
Strategies for the front-end user
workstation/device strategies .
E.g. Information System Security
Team (InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

4 CUSTOM 8 ▪ Application
Developers
Develop & create the client-side
application component or CLIENT
CLIENT Applications to solve a business
need. Or Application is
Application purchased, and developers
configure it etc. Usually is custom
created by the developers.

9 ▪ Other IT Pros for These are other IT professionals


Client Application engaged in the design, planning,
Development security, regulatory compliance,
Strategies etc., for the Client Application
strategies . E.g. Information
System Security Team (InfoSec),
Regulatory Compliance Team,
Project Managers, etc.

31
The Connectivity or Network from Client
App to Server App
Item no. Components IT Professional Role Description
5 Network 10 ▪ Network
Architectects
Design the pipe or
telecommunication network that
enables Client Operating System
to exchange data with Server
Operating Systems and CLIENT
applications to exchange data
with SERVER Applications. In
addition, any other required
communications between
applications in the organization. This
includes design of network
topology, routers, switches etc.

▪ Network Engineers Implement the design of the


11 telecommunication network for the
entire organziation.

▪ Network Operate the day-to-day activities


12 Administrators and maintenance of the
telecommunication network for the
organization.

▪ Other IT Pros for These are other IT professionals


13 Network engaged in the design, planning,
Strategies security, regulatory compliance, etc.,
for the Network Hardware &
software strategies. E.g.
Information System Security
Team (InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

32
The Server (Back-End)
Item no. Components IT Professional Role Description
6 Server 14 ▪ Server Engineering
Architectects
Design the server-side
architecture & infrastructure to
Computer support the SERVER harware
and SERVER Applications for
all applications (Designs the
server infrastructure for the
organization)

IMPORTANT CONCEPT – This


includes the Design of how the
SERVER Applications are
hosted & managed by the
SERVER COMPUTER &
OPERATING SYSTEM.

7 Server 15 ▪ Server Engineers Implement the design of the


server-side architecture &
Operating infrastructure to support the
SERVER Applications for all
System servers (implements the server
infrastructure for the
organization)

IMPORTANT CONCEPT – This


includes the Implementation
of how the SERVER
Applications are hosted &
managed by the SERVER
COMPUTER & OPERATING
SYSTEM

16 ▪ Server Operate the day-to-day


Administrators activities and maintenance of
the server computers for the
organization.

IMPORTANT CONCEPT – This


includes the Operation of how
the SERVER Applications are
hosted & managed by the
SERVER COMPUTER &
OPERATING SYSTEM

33
17 ▪ Other IT Pros for These are other IT professionals
Server Back-end engaged in the design, planning,
Strategies security, regulatory compliance,
etc., for the back-end server
hardware & software
strategies. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

8 SERVER 18 ▪ System/Database
Analysts
Assesses/Analyzes the
business & business
Application requirements to identify how the
database or information system
or Database ❖ FOCUS OF can solve the business problem.
This is the person who interfaces
Management CST3504 & with the Business Units and
compiles the requirements and
System CST3604 business rules that need to be

(DBMS) COURSES!!
implemented in the database.

This includes
Development/creation of the
Conseptual Data Model diagrams
etc.

19 ▪ Database Develop & create the Database


Developers application or Database
Management System
component or SERVER

❖ FOCUS OF Application based on the


design of the Conceptual, Logical
CST3504 & & Physical Models to solve a
business need.
CST3604 Implements the Database
Schema (eg. Tables etc.),
COURSES!! Queries, Stored Procedures, etc.

20 ▪ Database Implement, Administer &


Administrotors Operate the day-to-day
activities and maintenance of
the server computers for the

❖ FOCUS OF Database Management


Systems for the organization
CST3504 & Implement the Physical Model
CST3604 or technical specifications for
performance, efficiency, data
COURSES!! integrity, disaster recovery, etc.,
for the Database Management
Systems for the organization.

34
21 ▪ Application Application Developers may
Developers be in volved in the
Development & Creation of
the Database application
along side the Database
Developer. In many cases
development of Complex Stored
Procedures and other
programming related tasks in
the Database Management
Systems.

The Application Developers


may actually be the Database
Developers, since both roles
may sometimes be
internchangable, and done by
the Application Developers.

22 ▪ Other IT Pros for These are other IT professionals


Server engaged in the design, planning,
Applications security, regulatory compliance,
Strategies etc., for the back-end server
strategy. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

35
SCENARIO #3 - Implementing a WEB Database
Application using the Three-tiered Web Architecture:
Client Browser, Web Server Processes & Database
Management System (DBMS)
❖ The latest most common target for the Business Applications
today!
❑ The most common and Business Database Applications are WEB APPLICATIONS those that CONNECT to a Database
Management System (DBMS).
❑ Architecture:

▪ A WEB=BASED-THREE-TIER CLIENT/SERVER ARCHITECTURE application (More on this later):

o Tier 1: WEB CLIENT – The CLIENT application is a WEB BROWSER and its job is to render or present HTML
information as a GUI to the user. BUSINESS LOGIC & PROCESSING can take place here, known as Client-Side
Scripting, using technology like JavaScript. Nevertheless, due to performance disadvantages, this is NOT
recommended, unless is minimal code is used or NOT done at all.

o Tier 2: WEB SERVER – used to get & process HTML requests from BROWSERS. BUSINESS LOGIC &
PROCESSING is always done here on the Web Server using ASP.NET, JSP, JAVASCRIPT, PHP, etc. or other
WEB TECHNOLOGIES

o Tier 3: DBMS SERVER – and CONNECTS to Database Management System (DBMS) like Oracle, SQL Servers,
MySQL etc., in order to retrieve, update, insert and delete data.

▪ Below is an illustration of the Web-based Database application:

Three-Tier Web Database Application

Workstation
Operating Server
System Operating
User System
OS.EXE
OS.EXE Server
Operating
BROWER System
OS.EXE

HTML Tables
Client Application PAGES Queries
is a BROWSER Reports
(IE, CHROME, Stored Proc
FIREFOX ETC.)
Web Server Database Management system

Client_Browser .EXE
Web_Server .EXE
DBMS_Server .EXE
36
Three-Tiered Web Client/Server
Application
❑ The three-tiered Client/Server Architecture is now one of the most widely used Architecture since its design was the foundation
to the WORLD -WIDE-WEB OR INTERNET.
❑ This architecture model is also used internally within a company’s network which is called INTRANET!
❑ In Client/Server that application is composed of THREE OR MORE PARTS. The simple version is 2 parts:

1. The Client – A BROWSER Application (Chrome, IE, Edge, Firefox etc.). YOU DON’T BUILD this since it comes
with the computer when you purchase or you download!
2. The Web Server – Usually PURCHASED from a software vendor & sometimes/rarely custom built
3. The Database Server – Usually PURCHASED from a software vendor & very rarely custom built

4. Network – not part of the application but it is a separate component that connects the two
parts!

❖ IMPORTANT! The complete application is a combination of all 3 components, THE CLIENT BROWSER
APPLICATION, WEB SERVER APPLICATION & THE DATABASE SERVER APPLICATION!!!!

❑ The Client & Server are defined as follows:

▪ Client/Browser Application – The First Part of the application which is a


BROWSER APPLICATION and runs on the user’s computer/laptop
o CLIENT PART OF APPLICATION –The browser is the main part of the application since is what the user
interacts with. It does not have to be created since is already created by a software vendor and free!
‐ It is the CLIENT APPLICATION for the Web Architecture, and you download it and use it for free.
‐ For example, Google Chrome & Microsoft Edge are CLIENT BROWSERS.

o HARDWARE – The Client Browser Application is hosted by desktop computers, laptops, tablets etc.
DOES NOT REQUIRE POWERFUL HARDWARE OR COMPUTERS!

o CLIENT OPERATING SYSTEM (OS) – The A client Browser Application runs on a CLIENT
OPERATING SYSTEM (example Windows 10, MAC OS, etc.)

37
▪ Web Server Application – The Second Part of the application that runs on a
back-end server computer in the datacenter, server closet, etc.
o SERVER PART OF APPLICATION –This is the main part of the application since is what the user interacts
with.
‐ This is the second part of the application. Users don’t interact with it and usually even know it exists.
‐ Its role is to STORE the WEB PAGES requested by the BROWSER CLIENT APPLICATION on behalf
of the user.
‐ Most of the HEAVY PROCESSING & SAVING/STORAGE OF WEB PAGES is in the WEB SERVER
APPLICATION.
‐ For example, Apache Server & Microsoft Internet Information Server (IIS) are WEB
SERVER APPLICATION that you can PURCHASE. Note that some WEB SERVERS ARE OPEN SOURCE
AND FREE.

o HARDWARE – The Web Server Application is hosted by POWERFUL SERVER COMPUTER


HOSTED IN A DATACENTER OR SERVER ROOM.

o SERVER OPERATING SYSTEM (OS) – The Web Server Application runs on a SERVER
OPERATING SYSTEM ( (example Windows Server, Unix, etc.)

▪ Server/Database Server Application – The Third Part of the application


that runs on a back-end server computer in the datacenter, server closet, etc.
o DATABASE SERVER PART OF APPLICATION –This is another back end or heavy processing part of the
application THAT STORES THE DATA ON BEHALF OF THE WEB SERVER!
‐ This is the third part of the application. Users don’t interact with only the WEB SERVER interacts with the
DATABASE SERVER.
‐ All the HEAVY DATA PROCESSING & SAVING/STORAGE OF DATA is in the DATABASE SERVER
APPLICATION
‐ Usually, the THIRD PART OF THE THREE-TIER WEB ARCHITECTURE IS ALWAYS A
DATABASE SERVER.
‐ A DATABASE SERVER IS A SERVER THAT STORES AND MANAGES THE DATA FOR A WEB
SERVER APPLICATION.

o HARDWARE – The Database Server Application is hosted by POWERFUL SERVER COMPUTER


HOSTED IN A DATACENTER OR SERVER ROOM.

o SERVER OPERATING SYSTEM (OS) – The A Database Server Application runs on a


SERVER OPERATING SYSTEM (example Windows Server, Unix, etc.)

38
❑ Simple physical illustration:

Physical View of Web Client/Server Application Components

❖ The BROWSER ❖ In the ❖ In the company’s


❖ User in the business
Client company’s DATACENTER, The
office uses a BROWSER
Application DATACENTER, Database Management
Client Application in their
connects via the WEB System or Database
workstation or laptop.
the company’s SERVER Server application
network to a Application manages the Client
WEB SERVER connects via Application’s Data on
Application the company’s behalf of the BROWSER
which is the network to a Client Application.
Second DATABASE
Component of SERVER ❖ The Database Server
the Application enables the WEB SERVER
Application. which is the Application to retrieve,
Third update, insert & delete its
Component of Data from the Database
the Server on behalf of the
Application. BROWSER Client
Application
Another high-level detailed physical View of how the Client/Server application is deployed & used in Enterprise Scenarios
❑ Now we drill in to show another view of the WEB BASED application architecture deployed in an enterprise business for one user:

A detailed View of Web-based Client/Server Application &


it’s deployment

User

Operating System Operating System Operating System

Workstation Hardware Server Hardware Workstation Hardware

Company Office Company Datacenter

40
A true REALISTIC View of how the Client/Server Application Model is deployed and used in Enterprise Scenarios
❑ Enterprises have hundreds to thousands of employees using a client/server application. This scenario is where this application architecture has the most benefits.
❑ Below is the true representation of how this application architecture is deployed and used by users:

A Realistic View of Client/Server Application in the Enterprise

User 3
User 1

Browser
Process

Browser Hosted in
Process EXE User Workstation &
Client OS
Hosted in
User Workstation &
Client OS
EXE

DBMS
INTERNET/
Database Server
HTML
INTRANET (SQL Serve,
Oracle, etc.)

Web Server (IIS) Database EXE


User 2 Web Server
Hosted in
EXE Server
SERVER Computer &
Server OS

User 4
Browser
Process Browser
EXE Process
Hosted in
User Workstation & EXE
Client OS Hosted in
User Workstation &
Client OS

41
Detailed Analysis of the Three-Tier Web-based Client/Server
Application
❑ Let’s break down further and analyze the Application Architecture
and it place in the world of Information Technology.
❑ In addition, the IT Professionals involved in the planning, analysis,
design, development, implementation and operations of this type of
Application Architecture:
Two-Tier Windows Client/Server Database Application

4 5 7
6 12
1 2 3 13 14 15

Desktop Desktop Other IT Pros


Desktop
Other IT Pros Engineering Administrator (security, PM etc.) Server Server Server Other IT Pros
Help Desk Business Engineer
(security, PM etc.) Architect Engineering Engineer Administrator (security, PM etc.)
Analyst Architect

8 9 10 11

3
Network Network Other IT Pros 10 11
Network
Workstation Engineering Administrator (security, PM
Engineer etc.)
2 Operating Architect Server
1 User System Operating
OS.EXE System
BROWER 6 7 OS.EXE
Tables
Queries
Server Reports
Operating Stored Proc
Client Application System
is a BROWSER 5 OS.EXE 9 Database Management system
(IE, CHROME,
FIREFOX etc.)
NETWORK
NETWORK NETWORK
NETWORK
Browser
4
Client_Browser .EXE DBMS_Server .EXE
HTML PAGES 12
ASP.NET, JSP.NET
PHP, PHYTHON, etc.

16 17 18 19 20 21 22 23
Web Server

8 Web_Server .EXE Systems


Database
Database Database Application Other IT Pros
Web Web Developer
Other IT Pros Analyst Administrator Developer (security, PM etc.)
Developer Administrator (security, PM
etc.) Focus of CST3504 & CST3604 Courses
The IT Professionals that Manage the Web Database
Application
▪ IT professional involved in the design, development, implementation & maintenance/operations for the Three-Tiered Web-
based Client/Server Database Application are:

The User
Item no. Components IT Professional Role Description
1 User 1 ▪ Help Desk Support user by addressing
any issues with application.
First point of contact for
users requiring help. Help
desk will align the other IT
professionals on behalf of
the users.

▪ Business Analysts Assesses the business to


2
determine needed
application/technology to
solve a business neeed or
problem

3 ▪ Other IT Pros for These are other IT


End-User professionals engaged in the
Experience design, planning, security,
Strategies regulatory compliance, etc.,
for the end-user experience
strategies. E.g.
Information System
Security Team (InfoSec),
Regulatory Compliance
Team, Project Managers,
etc.
The User’s Workstation/Device &
Application (Front-End)
Item Components IT Professional Role Description
no.
2 Workstation 4 ▪ Desktop
Engineering
Design the client-side architecture &
infrastructure to support the
Computer Architectects workstations harware and CLIENT
Applications for all users (Designs
the user’s desktop for the
organization)

IMPORTANT CONCEPT – This


includes the Design of how the
CLIENT BROWSER Applications
are hosted & managed by the
User’s WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

3 Workstation 5 ▪ Desktop
Engineers
Implement the design of the client-
side architecture & infrastructure to
Client support the workstations harware
and CLIENT Applications for all
Operating users (Designs the user’s desktop for
the organization)
System
IMPORTANT CONCEPT – This
includes the Implementation of
how the CLIENT BROWSER
Applications are hosted &
managed by the User’s
WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

6 ▪ Desktop Operate the day-to-day activities


Administrators and maintenance of the desktops for
the organization.

IMPORTANT CONCEPT – This


includes the Operation of how the
CLIENT BROWSER Applications
are hosted & managed by the
User’s WORKSTATION
COMPUTER/DEVICE &
OPERATING SYSTEM.

45
▪ Other IT Pros for These are other IT professionals
7
User’s engaged in the design, planning,
Workstation security, regulatory compliance, etc.,
Strategies for the front-end user
workstation/device strategies .
E.g. Information System Security
Team (InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

4 CUSTOM ▪ CLIENT
BROWSER
IMPORTANT CONCEPT – NO
DEVELOPMENT is done to
CLIENT Application is
Managed by
CREATED a CLIENT BROWSER
Application since BROWSERS are
Application Desktop are downoloaded or already
Engineering installed as part of the
Architects, OPERATING SYSTEM. Is simply
Engineers & managed and administered by IT
Desktop Desktop Engineering Architects,
Administrators Engineers & Desktop
Administrators.

46
The Connectivity or Network from Client
Browser App to Web Server App
Item no. Components IT Professional Role Description
5 Network 8 ▪ Network
Architectects
Design the pipe or
telecommunication network that
enables Client Operating System
to exchange data with Server
Operating Systems and CLIENT
applications to exchange data
with SERVER Applications. In
addition, any other required
communications between
applications in the organization. This
includes design of network
topology, routers, switches etc.

▪ Network Engineers Implement the design of the


9 telecommunication network for the
entire organziation.

▪ Network Operate the day-to-day activities


10 Administrators and maintenance of the
telecommunication network for the
organization.

▪ Other IT Pros for These are other IT professionals


11 Network engaged in the design, planning,
Strategies security, regulatory compliance, etc.,
for the Network Hardware &
software strategies. E.g.
Information System Security
Team (InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

47
The Web Server App (Middle -Tier)
Item no. Components IT Professional Role Description
6 Server 12 ▪ Server Engineering
Architectects
Design the server-side
architecture & infrastructure to
Computer support the SERVER harware
and SERVER Applications for
all applications (Designs the
server infrastructure for the
organization)

IMPORTANT CONCEPT – This


includes the Design of how the
SERVER Applications are
hosted & managed by the
SERVER COMPUTER &
OPERATING SYSTEM.

7 Server 13 ▪ Server Engineers Implement the design of the


server-side architecture &
Operating infrastructure to support the
SERVER Applications for all
System servers (implements the server
infrastructure for the
organization)

IMPORTANT CONCEPT – This


includes the Implementation
of how the SERVER
Applications are hosted &
managed by the SERVER
COMPUTER & OPERATING
SYSTEM

14 ▪ Server Operate the day-to-day


Administrators activities and maintenance of
the server computers for the
organization.

IMPORTANT CONCEPT – This


includes the Operation of how
the SERVER Applications are
hosted & managed by the
SERVER COMPUTER &
OPERATING SYSTEM

48
15 ▪ Other IT Pros for These are other IT professionals
Server Back-end engaged in the design, planning,
Strategies security, regulatory compliance,
etc., for the back-end server
hardware & software
strategies. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

8 Web SERVER 16 ▪ WEB Developer Develop & create the WEB


SERVER Application using
Application Web technology such as HTML
and SERVER-SIDE-SCRIPTING
technologies such as Active
Server Pages, Java Server
Pages, CGI Scripting, PHP,
Phython, etc.

The Web Technology may


include programming code to
program the CLIENT
BROWSER Application using
CLIENT-SIDE-SCRIPTING
technologies such as JavaScript,
JavaScript Object Notation
(JSON) etc., to perform
PROCESSING in the CLIENT
BROWSER Application.

IMPORTANT CONCEPT – All


Web development both for
WEB SERVER Application and
CLIENT BROWSER
Application is done in the WEB
SERVER Application.

17 ▪ Webb Implement, Configure,


Administrators Administer & Operate the
day-to-day activities and
maintenance of the WEB
SERVER Applications for the
organization

This may include some Web


Development as part of the
administration for the
organization.

49
18 ▪ Other IT Pros for These are other IT professionals
Server engaged in the design, planning,
Applications security, regulatory compliance,
Strategies etc., for the back-end server
strategy. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

50
The Connectivity or Network from Web
Server App to DBMS Server App
Item no. Components IT Professional Role Description
9 Network 8 ▪ Network
Architectects
Design the pipe or
telecommunication network that
enables Client Operating System
(Note – This is to exchange data with Server
the same Operating Systems and CLIENT
Network Team applications to exchange data
with SERVER Applications. In
as #5 or addition, any other required
connectivity communications between
between applications in the organization. This
CLIENT includes design of network
BROWSER topology, routers, switches etc.
Application ▪ Network Engineers Implement the design of the
and WEB 9 telecommunication network for the
SERVER entire organziation.
Application)
▪ Network Operate the day-to-day activities
10 Administrators and maintenance of the
telecommunication network for the
organization.

▪ Other IT Pros for These are other IT professionals


11 Network engaged in the design, planning,
Strategies security, regulatory compliance, etc.,
for the Network Hardware &
software strategies. E.g.
Information System Security
Team (InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

51
The DBMS Server App (Back – End Tier)
Item no. Components IT Professional Role Description
10 Server 12 ▪ Server Engineering
Architectects
Design the server-side
architecture & infrastructure to
Computer support the SERVER harware
and SERVER Applications for
(Note – This is the all applications (Designs the
same Server Team server infrastructure for the
that architected, organization)
engineer &
IMPORTANT CONCEPT – This
administer the includes the Design of how the
SERVER SERVER Applications are
COMPUTERS hosted & managed by the
hosting the WEB SERVER COMPUTER &
SERVER OPERATING SYSTEM.
Application)
11 Server 13 ▪ Server Engineers Implement the design of the
server-side architecture &
Operating infrastructure to support the
SERVER Applications for all
System servers (implements the server
infrastructure for the
organization)
(Note – This is the
IMPORTANT CONCEPT – This
same Server Team includes the Implementation
that architected, of how the SERVER
engineer & Applications are hosted &
administer the managed by the SERVER
SERVER COMPUTER & OPERATING
SYSTEM
COMPUTERS
hosting the WEB ▪ Server Operate the day-to-day
14
SERVER Administrators activities and maintenance of
Application) the server computers for the
organization.

IMPORTANT CONCEPT – This


includes the Operation of how
the SERVER Applications are
hosted & managed by the
SERVER COMPUTER &
OPERATING SYSTEM

52
15 ▪ Other IT Pros for These are other IT professionals
Server Back-end engaged in the design, planning,
Strategies security, regulatory compliance,
etc., for the back-end server
hardware & software
strategies. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

12 SERVER 19 ▪ System/Database
Analysts
Assesses/Analyzes the
business & business
Application requirements to identify how the
database or information system
or Database ❖ FOCUS OF can solve the business problem.
This is the person who interfaces
Management CST3504 & with the Business Units and
compiles the requirements and
System CST3604 business rules that need to be

(DBMS) COURSES!!
implemented in the database.

This includes
Development/creation of the
Conseptual Data Model diagrams
etc.

20 ▪ Database Develop & create the Database


Developers application or Database
Management System
component or SERVER

❖ FOCUS OF Application based on the


design of the Conceptual, Logical
CST3504 & & Physical Models to solve a
business need.
CST3604 Implements the Database
Schema (eg. Tables etc.),
COURSES!! Queries, Stored Procedures, etc.

21 ▪ Database Implement, Administer &


Administrotors Operate the day-to-day
activities and maintenance of
the server computers for the

❖ FOCUS OF Database Management


Systems for the organization
CST3504 & Implement the Physical Model
CST3604 or technical specifications for
performance, efficiency, data
COURSES!! integrity, disaster recovery, etc.,
for the Database Management
Systems for the organization.

53
22 ▪ Application Application Developers may
Developers be in volved in the
Development & Creation of
the Database application
along side the Database
Developer. In many cases
development of Complex Stored
Procedures and other
programming related tasks in
the Database Management
Systems.

The Application Developers


may actually be the Database
Developers, since both roles
may sometimes be
internchangable, and done by
the Application Developers.

23 ▪ Other IT Pros for These are other IT professionals


Server engaged in the design, planning,
Applications security, regulatory compliance,
Strategies etc., for the back-end server
strategy. E.g. Information
System Security Team
(InfoSec), Regulatory
Compliance Team, Project
Managers, etc.

54
App Category 2 – CLOUD
COMPUTING/CLOUD
APPLICATIONS
(Applications whose components reside in a Hosting
Company Datacenter(s) NOT their own Datacenter(s))
What is Cloud Computing?
❑ What some people think Cloud Computing is:

▪ They don’t know or understand what it is but hear the all the buzz about it.
▪ Or they visualize a magical cloud in the sky, which means they don’t really understand what it is!
▪ To understand cloud computing, let’s revisit it’s opposite and standard on-premises computing and compare.

55
❑ Review – What is on-premises Computing? What has been covered prior to this section and
the standard where SERVER component of an application is hosted in the Company’s Owned
Datacenter:

▪ The applications are created or purchased by the company. The CLIENT components of all applications are
hosted in the user’s computer in the company’s offices AND the SERVER components of
the applications are HOSTED/KEPT in the company’s datacenter.
▪ All the server components of all the applications are HOSTED in the COMPANY’S
DATACENTER(S).
▪ All the application architectures, hardware & technologies covered thus far in this
document where all stored, hosted, located in a company’s own datacenter:

KEY POINT?

The applications Back-end


components or SERVERS
are stored in
CUSTOMER’S OWNED
DATACENTERS!

56
Review – Interaction between Users, Client (front-end component), Server (back-end
component) of application hosted in Company’s Owned Datacenter
❑ The back end or SERVER components of applications are hosted in the Company’s owned Datacenters while the
CLIENT components are in the user’s desktop/laptop computers and what the user interacts with and makes requests of the
SERVER components located in the COMPANY’S OWNED DATACENTERS shown below:

KEY POINT?

The applications Back-end


components or SERVERS
are stored in
CUSTOMER’S OWNED
DATACENTERS!

57
So now that we have reviewed On-Premise Computing, what is Cloud Computing?
❑ Cloud Computing is in reality:

▪ The applications are created and/or purchased by the company, BUT instead of purchasing physical server computers to host
the server component of the applications in the company’s datacenter, the server component of an
application is HOSTED & RENTED from ANOTHER COMPANY or CLOUD HOSTING
COMPANY DATACENTER(S).
▪ In a nutshell, CLOUD COMPUTING is when a company RENTS compute, memory &
storage power from a hosting company instead of hosting it themselves in the company’s
datacenter as shown below.
▪ As shown, all the user’s & their applications in the company’s offices, connect to the INTERNET from their internal
networks to a HOSTING COMPANY DATACENTER for processing and compute power. You are
actually RENTING COMPUTING RESOURCES for their applications:

KEY POINT?

The applications Back-end


components or SERVERS
are stored in CLOUD
HOSTING COMPANY
DATACENTERS!
58
Interaction of Users, Client (front-end component), Server (back-end component) hosted in
Cloud Hosting Company’s Datacenter
❑ The back end or SERVER components of applications are hosted in the Company’s own Datacenters while the CLIENT
components are in the user’s desktop/laptop computers and what the user interacts with and makes requests of the SERVER
components located in the HOSTING CLOUD COMPANY DATACENTERS shown below:

KEY POINT?

The applications Back-end


components or SERVERS
▪ The concept is like you renting a house or apartment:
are stored in CLOUD
o The owners provide the house with water, gas electricity etc. HOSTING COMPANY
o You pay monthly for the consumption or use of the house. DATACENTERS!
o In some cases, you may have to pay separately for the gas, electricity etc.
o The point is you are renting RESOURCES for you to live unlike owning & using your own house!

59
❑ For user’s of an application in a company, conceptually they think of Cloud Computing as a
magical cloud that runs the applications because to the users of applications in a company,
it is a cloud or virtual concept since they are not aware or see the hosting company’s data
centers and can assume is somewhere in the cloud!

❑ Nevertheless, a Business and Computer Professional need to be aware that Cloud


Computing is really this:

60
Who are the Cloud hosting Companies?
❑ So, who are these cloud companies who rent their datacenter?

▪ The top Cloud Hosting Company in the world are (no specific order):

1. Amazon Web Services (AWS)


2. Microsoft Cloud
3. Google Cloud
4. IBM
5. Salesforce
6. Oracle Cloud
7. Etc.

BENEFITS & DRAWBACKS OF CLOUD COMPUTING –

Why is Cloud Computing so important today and the future of Computing?

❑ Why should you care? What are the pros & cons of cloud computing?

▪ Main Advantages & Benefits of Cloud Computing:

1. Cost Savings – a company does not have to spend on capital expenditures on computer hardware, cooling, heating,
storage, datacenter personnel, security, etc.
2. OPEX versus CAPEX – with Cloud Computing, you pay as you go, thus is all about operational expenses (opex)
and not capital expenses (capx) which mean you buy ($), you maintain ($), you upgrade ($) you throw away when
no longer useful ($). With Cloud Computing, which is OPEX, you pay for what you consume only and no more.
3. Quick to Market – If a company has a new campaign or product they want to launch, they can quickly spin
up an application & its infrastructure in the CLOUD in a short period of time instead of
months and years it would normally take with on-premises applications.
4. Elasticity – you pay for what you consume. Need more computing power for a campaign or holiday season? Pay for
more compute. When season is over, you can pay for less.
5. Other – many more benefits.

▪ Main Disadvantages of Cloud Computing:

1. Less Control – Since the application server components are hosted by another company, you DON’T HAVE full
control on how the application is operated and managed by the hosting company! Unlike on-premises applications where
the company has full control of its hardware, security etc., you rely on the hosting company to provide that for you and
you don’t have full control on how they do that.
2. Threatens Job Security – Because is computer hardware and services are hosted by another company, a
company may no longer need the number of IT & maintenance personnel as they needed when they hosted the
applications themselves. Loss of job for some employees can be a possibility or usually reskilling of an employee to
perform other duties.

▪ Why should you care:

1. IT Career – Cloud computing is here! And is the Future. Do you want a job in IT or don’t want to become
obsolete? Then you need to know cloud computing!
2. Business Career – If you are a business professional, decision maker, etc., this is the direction companies are
moving to and the more you know the more relevant you will become!!! Why? See advantages and disadvantages in the
next sections below:

61
Cloud Computing Business Model
❑ What is the business model, operational and cost management for cloud computing?

▪ OPEX versus CAPEX:

o CONSUMPTION MODEL – Since the application is RENTED thus an OPEX or operational cost model, a
company is paying for what they CONSUME, not what we buy! There may be an initial purchase
cost depending on the cloud service BUT is a CONSUMPTION MODEL! YOU PAY AS YOU GO!

‐ Because is a consumption model, a company needs to manage and track the consumption cost!
‐ If they don’t, they can end up paying a large sum of money because some business unit is not managing their
consumption and costing the company a lot of money.
‐ To manage this, companies now have processes in place for this new cloud model, where there is consumption cost
estimate, consumption cost model planning, etc.
‐ This has opened the door to new skills for business professionals etc.

Cloud Computing Services Options


❑ Cloud Computing Hosting Companies provide the following options and services:

1. On Premise – this is NOT CLOUD COMPUTING but on-premises computing, or the normal scenario discusses in
the previous sections where the applications are hosted in a company’s datacenters. On-premises is included here since all
cloud services are compared to the standard on premise model.

2. Software as a Service (SaaS) – RENT the application from the cloud company you need and use it! No
development of application required, NO physical the computer required, NO management of computer resources required,
NO people to manage the application resources! Just of just RENT the app and away you go!

3. Infrastructure as a Service (IaaS) – Build/Create your own custom application but RENT &
MANAGE the physical servers/computers to run the application from the cloud company.

4. Platform as a Service (PaaS) – Build/Create your custom application in the cloud using the hosting
company cloud platform. NO servers/computer required, NO servers to manage, nothing! Just CREATE your app and
away you go!

5. Hybrid Cloud – A Combination of on-premises and any of the above cloud services such as SaaS, IaaS or
PaaS! Because of security concerns many companies will NOT put some data in the cloud! Therefore, use a strategy that
minimize risks and combines on-premises and cloud computing as follows:

o Some applications & their data are kept on premise only due to sensitivity.
o Some applications are all in the cloud applications.
o Some applications are HYBRID thus have components on premise and in the cloud. For example, the application itself
may be in the cloud, but its data is on-premises where the company can control it and protect it!

62
CLOUD TECHNOLOGY & SERVICES
SCENARIO #1 – On-Premises Computing (REVIEW!)
❖ These are the applications already covered in the previous
sections, created, managed, and hosted on premise in a
company’s datacenter.
❑ We defined on-premises as follows:

▪ On Premise – this is NOT CLOUD COMPUTING but on-premises computing, or the normal scenario discusses in
the previous sections where the applications are hosted in a company’s datacenters. On-premises is included here since all
cloud services are compared to the standard on premise model.

❑ Below illustrations shows an on-premises environment:

On-premises Application & it’s Dependencies:

63
Analysis:
❑ Analysis:

▪ The application is created or to be created is shown in the first rectangle at the top.
▪ Nevertheless, the application needs ADDITIONAL technologies to work as follows:

o The Application Created or going to Create – The user application itself.


o A runtime environment – Another application that supports the execution of the application created for the
user.
o Middleware – Another application that acts like a bridge between the Operating System and the application you
create.
o Database – Another application that stores the data on behalf of your application
o Operating System – The OS, which supervises all activity in a computer.
o Virtualization – A software technology that simulates a physical computer virtually. With one physical computer,
you can create many simulations of multiple computers. With one physical computer, you can simulate many computers
in memory.
o Servers – Physical Servers or computers hosting the application.
o Storage – Physical Storage or storage technology where DATA is physically stored.
o Networking – Physical Computer Network or pipe or mesh that allows the components of the application to
communicate with each other.

Conclusion & Pros & Cons:


❑ The point!

▪ All the components required to run an application need to be purchase, managed by professional personnel etc.
▪ All the components need to live in a DATACENTER or building that requires security, personnel, cooling systems,
electrical power generators, motors and many different infrastructure and technology to maintain a datacenter.
▪ Running a datacenter is costly, but the company has all the control to their applications and data!

❑ KEY ADVANTAGE OF ON-PREMISES:

❖ BUT YOU HAVE ALL THE CONTROL OF THE APP,


DATA & THEIR INFRASTRUCTURES!
❖ THUS YOU CONTROL SECURITY, ACCESS SINCE IS
HOSTED IN YOUR DATACENTER

❑ KEY DISADVANTAGE OF ON-PREMISES:

❖ HIGH COST TO YOU!


❖ REQUIRES A LOT OF ELECTRICITY, COOLING,
PEOPLE TO OPERATE AND MAINTAIN THE
DATACENTERS

64
0.2 Review of Client/Server Applications (n-tier Windows & Web) Managed and hosted
on a company datacenter (ON-PREMISES)

On-premise Two-Tiered Client/Server


Application in Company’s Datacenter
❑ We covered this before so just a quick review.
❑ In Client/Server that application is composed of TWO OR MORE PARTS. The simple version is 2 parts:

1. The Client – Custom Built by programmers at a company or PURCHASED from a software vendor. Usually, a
Windows Application or Windows Graphical Interface application (forms, frames, multi-window etc.)
2. The Server/Database Server – PURCHASED from a software vendor. Rarely custom built

3. Network – not part of the application but it is a separate component that connects the two
parts!

❖ IMPORTANT! The complete application is a combination of BOTH, THE CLIENT APPLICATION & THE
DATABASE SERVER APPLICATION!!!!

65
Physical Illustration of how the 2-tier Client/Server application is deployed in Enterprise Scenarios
❑ Simple graphical illustration of how this architecture is setup in an enterprise business:

Physical View of Windows Two-Tier Client/Server Application Components

❖ User in the business ❖ The Client ❖ In the company’s DATACENTER, The


office uses a WINDOWS Application Database Management System or
Client Application in their connects via the Database Server application manages
workstation or laptop. company’s network the Client Application’s Data on behalf
to a DATABASE of the Client Application.
SERVER Application
which is the Second ❖ The Database Server enables the
Component of the WINDOWS Client Application to
Application. retrieve, update, insert & delete its
Data from the Database Server.
A true REALISTIC Logical View of how the Client/Server Application is deployed and used in Enterprise Scenarios (many
users)
❑ Enterprises have hundreds to thousands of employees using a client/server application. This scenario is where this application architecture has the most benefits.
❑ Below is the true representation of how this application architecture is deployed and used by users:

A Realistic View of How Client/Server Application is used in the Enterprise

User 3
User 1

EXE DBMS
Client Application
Component
Executable
Database
Server Client Application
Component
Hosted in Executable
User workstation &
Client OS Server Application EXE
Component Hosted in
Executable User workstation &
Client OS
EXE
Hosted in
SERVER Computer &

User 2 Server OS

Network User 4

Client Application Client Application


Component Component
Executable Executable

Hosted in EXE EXE Hosted in


User workstation & User workstation &
Client OS Client OS

67
On-Premise Three-Tiered Web
Client/Server Application in Company’s
Datacenter
❑ The three-tiered Client/Server Architecture is now one of the most widely used Architecture since its design was the foundation
to the WORLD -WIDE-WEB OR INTERNET.
❑ This architecture model is also used internally within a company’s network which is called INTRANET!
❑ In Client/Server that application is composed of TWO OR MORE PARTS. The simple version is 2 parts:

1. The Client – A BROWSER APPLICATION (Chrome, IE, Edge, Firefox etc.). You don’t build this since it comes
with a computer when you purchase or you can download it!
2. The Web Server – Usually PURCHASED from a software vendor & sometimes/rarely custom built
3. The Database Server – Usually PURCHASED from a software vendor & very rarely custom built

4. Network – not part of the application but it is a separate component that connects the two
parts!

❖ IMPORTANT! The complete application is a combination of all 3 components, THE CLIENT BROWSER
APPLICATION, WEB SERVER APPLICATION & THE DATABASE SERVER APPLICATION!!!!
❑ Simple physical illustration:

Physical View of Web Client/Server Application Components

❖ The BROWSER ❖ In the ❖ In the company’s


❖ User in the business
Client company’s DATACENTER, The
office uses a BROWSER
Application DATACENTER, Database Management
Client Application in their
connects via the WEB System or Database
workstation or laptop.
the company’s SERVER Server application
network to a Application manages the Client
WEB SERVER connects via Application’s Data on
Application the company’s behalf of the BROWSER
which is the network to a Client Application.
Second DATABASE
Component of SERVER ❖ The Database Server
the Application enables the WEB SERVER
Application. which is the Application to retrieve,
Third update, insert & delete its
Component of Data from the Database
the Server on behalf of the
Application. BROWSER Client
Application
A true REALISTIC View of how the Client/Server Application Model is deployed and used in Enterprise Scenarios
❑ Enterprises have hundreds to thousands of employees using a client/server application. This scenario is where this application architecture has the most benefits.
❑ Below is the true representation of how this application architecture is deployed and used by users:

A Realistic View of Client/Server Application in the Enterprise

User 3
User 1

Browser
Process

Browser Hosted in
Process EXE User Workstation &
Client OS
Hosted in
User Workstation &
Client OS
EXE

DBMS
INTERNET/
Database Server
HTML
INTRANET (SQL Serve,
Oracle, etc.)

Web Server (IIS) Database EXE


User 2 Web Server
Hosted in
EXE Server
SERVER Computer &
Server OS

User 4
Browser
Process Browser
EXE Process
Hosted in
User Workstation & EXE
Client OS Hosted in
User Workstation &
Client OS

70
Conclusion & Summary of the Standard ON-PREMISES Applications
❑ The key here is both architectures, N-tier Windows client/server application & N-tier Web
client/server application are HOSTED ON PREMISES IN THE COMPANY’S DATACENTERS!!!!

Pros & Cons


❑ Summary of pros & cons:

Advantages
▪ FULL CONTROL of the custom & purchased applications and their underline infrastructure since they both reside IN
YOUR DATACENTER!

Disadvantages
▪ You must create or purchase or both the applications, purchase physical server computers and other middleware &
appliances. You mush hire the people to operate, maintain, upgrade the application, and underline infrastructure for the apps.
▪ Purchase of physical servers is CAPEX or capital expenses that in time lose their value and require high cost to upgrade, etc.
▪ For the physical infrastructure you need to install & manage OS deployments, Update, etc. Install, manage, and operate the
applications etc.
SCENARIO #2 – Software As A Service (SaaS)
❖ Company RENTS the Application from a Cloud Hosting Company
❖ NO DEVELOPMENT, NO INFRASTRUCTURE NEEDED(Servers etc.)
❑ We defined the Cloud Software-As-A-Service model as:

▪ Software as a Service (SaaS) – RENT the application from the cloud company you need and use it! No
development of application required, NO physical the computer required, NO management of computer resources required,
NO people to manage the application resources! Just of just RENT the app and away you go!

Software-as-a-Service (SaaS) Application & it’s Dependencies:

Analysis:
❑ Analysis:

▪ APPLICATION IS RENTED!
▪ There is NO ADDITIONAL technologies required for your application to work!
▪ That is the responsibility of the HOSTING COMPANY NOT YOU!
▪ Simply RENT & PAY AS YOU GO!
▪ Hosting company has all the control of the application.
▪ Data is stored in the application thus residing in the Hosting company datacenter!

72
Conclusion:
❑ The point!

▪ You rent the application and no developers, management, no personnel required, no datacenter required.
▪ RENT & USE via the internet!
▪ Since there is no datacenter required, this is low cost, but the hosting company has all the control of the application and data!

❑ KEY ADVANTAGE OF SOFTWARE-AS-A-SERVICE:

❖ LOW COST TO YOU SINCE NO HARDWARE &


INFRASTRUCTURE!
❖ NO ELECTRICITY, COOLING, PEOPLE TO OPERATE
AND MAINTAIN REQUIRED. THAT IS THE
RESPONSIBILITY OF THE CLOUD COMPANY

❑ KEY DISADVANTAGE OF SOFTWARE-AS-A-SERVICE:

❖ CLOUD HOSTING COMPANY HAS ALL THE CONTROL


OF THE APP & YOUR DATA!
❖ SECURITY IS A RESPONSIBILITY OF BOTH THE
CLOUD HOSTING COMPANY AND YOUR COMPANY:

➢ CLOUD HOSTING COMPANY SECURES THEIR


DATACENTER AND PHYSICAL SERVERS
➢ YOU SECURE YOUR DATA BY ENCRYPTING AND
CONDITIONAL ACCESS!

73
Software-as-a-Service Details – Application
RENTED from Cloud Company’s Datacenter
❑ So what does Software-as-a-Service (SaaS) Application look like?
❑ Because now that you are RENTING this application is composed of ONE OR MORE PARTS, where only the
client part is known to you but the back end is unknown as to how many components since
only the HOSTING CLOUD COMPANY KNOWS:

1. The Client – The Client, also created by the Cloud Hosting Company, is either a Windows client Graphical Interface
application (forms, frames, multi-window etc.) or a Web Client or BROWSER Application, which can be downloaded
such as Google Chrome, Microsoft IE, Edge, Firefox etc.
2. OTHER COMPONENTS THAT ARE UNKNOWN – Only hosting cloud company knows what is in the back end
of the SaaS application. This is their secret! And you don’t care, all you want to do is RENT & GO!

3. Network – not part of the application but it is a separate component that connects your
Windows or Browser Web Client Application in the user’s office to the INTERNET to reach
the Rented Application.

❖ IMPORTANT! The complete application is a combination of, THE CLIENT (Windows or Web) APPLICATION &
whatever is in the Back-end!!!

Example of this type of Application


❑ Here are some examples of SaaS Applications that you may be already using and did not know is a SaaS application:

▪ Microsoft Office 365 – A SaaS application that is a suite of many components:

o Microsoft Office – Word, Excel, PowerPoint, Outlook email client, etc.


o Microsoft Exchange Online – SaaS email system, which you connect using Outlook email client.
o Microsoft Teams – Chat, team collaboration, phone, conferencing etc.
o Microsoft OneDrive – File storage in the cloud
o Microsoft SharePoint – a combination of file storage, web hosting, collaboration etc.

▪ Salesforce CRM (Customer Relationship Management application)


▪ Our school’s Blackboard is a SaaS application.
▪ Many more!

74
❑ You should conceptually think of SOFTWARE-AS-A-SERVICE(SaaS) Cloud Computing an
APPLICATION in the cloud because:

▪ You really don’t have a clue as to how the Cloud Hosting Company developed the
application or what type of application it is in the backend, what type of servers are
being used etc.
▪ All you know is you pay monthly and you can use the Application.
▪ The Client side of the application or the part that a user uses can be a Windows Client
(e.g. MS Word), or can be a Web Applications (e.g. Blackboard) etc.

75
❑ Nevertheless, as Business and Computer Professionals you need to be aware that
SOFTWARE-AS-A-SERVICE (SaaS) Cloud Application is this:

▪ The SOFTWARE-AS-A-SERVICE(SaaS) Cloud Application is an application CREATED &


HOSTED by the Cloud Hosting company to solve some business problem and YOU RENT
IT and access via the INTERNET!
▪ And you pay per month to use it! No development, no infrastructure! Just rent and use!

76
Conclusion & Summary of the SOFTWARE-AS-A-SERVICE Applications
❑ The key here is both architectures, N-tier Windows client/server application & N-tier Web
client/server application are HOSTED ON PREMISES IN THE COMPANY’S DATACENTERS!!!! And
not created by the company (YOU) but CREATED BY THE CLOUD HOSTING COMPANY!
❑ There is NO PROGRAMMING OR DEVELOPMENT of the APP! SIMPLY RENT THE APP AND USE
IT!

Review of the Concept:

77
Review of the Physical Setup:

Pros & Cons


❑ Summary of pros & cons:

Advantages
▪ No creating an application, no purchasing of physical server computers, network appliances, and other devices.
▪ Simply RENT an application and away you go! No programming or physical underline infrastructure required.
▪ Cost Savings on the overhead of creating an application, physical servers etc., also the maintenance and personnel required to
manage the application an infrastructure.
Disadvantages
▪ Renting an application means you have NO CONTROL of the application.
▪ The Cloud Hosting Company is responsible for creating and managing the application & security of the underline
infrastructure.

78
SCENARIO #3 – Platform As A Service (PaaS)
❖ Company Creates/develops & deploys their custom
Applications (Windows or Web/Browser Application) in the
Cloud and need no computer hardware to do so.
❖ One-stop-shop for creating & deploying your applications.
❖ No physical servers or Hardware needed!
❖ Simple RENT the programming environment & computer Power
you need from the Cloud Hosting Company.
❖ Note that this is intended for custom applications a
company creates. This cloud model is intended to allow
companies to create and deploy custom applications which
all companies do since not all applications you buy
provides the customization needed. Create your app in SaaS
and application appears in the Internet for users to use.
❑ We defined the Cloud Platform-As-A-Service model as:

▪ Platform as a Service (SaaS) – RENT a programming/development and deployment environment from a cloud
company. NO physical the computer required or infrastructure to deploy the application which is usually a major issue with
on-premises application development! Just of just RENT the development & deployment environment
and away you go!

Platform-as-a-Service (PaaS) Application & it’s Dependencies:

79
Analysis:
Analysis:

▪ DEVELOPMENT & DEPLOYING ENVIRONMENT IS RENTED!


▪ There is NO ADDITIONAL technologies required for your application to work!
▪ That is the responsibility of the HOSTING COMPANY NOT YOU!
▪ Simply RENT & PAY AS YOU GO!
▪ Hosting company has all the control of the underline DEVELOPMENT ENVIRONMENT such
as physical servers etc., BUT NOT THE CUSTOM APPLICATION YOU CREATE! YOU control
YOUR APPLICATION!
▪ Your Data is stored in the application thus residing in the Hosting company datacenter!

Conclusion:
❑ The point!

▪ You rent ONLY the the DEVELOPMENT & DEPLOYING ENVIRONMENT, no hardware or maintenance of
hardware, network or anything else and no datacenter required.
▪ RENT, CREATE & USE via the internet!
▪ Since there is no datacenter required, this is low cost, but the hosting company has all the control of the application
development environment but you CREATE & CONTROL your application!
▪ Nevertheless, Your Data is stored in the application thus residing in the Hosting company
datacenter!

❑ KEY ADVANTAGE OF PLATFORM-AS-A-SERVICE:

❖ LOWER COST TO YOU!


❖ YOU HAVE CONTROL OF APPLICATION & DATA
❖ CLOUD HOSTING COMPANY HAS ALL CONTROL OF
THE INFRASTRUCTURE & HARDWARE AND
RESPONSIBLE FOR ELECTRICITY, COOLING,
PEOPLE TO OPERATE AND MAINTAIN THE
INFRASTRUCTURE. MAY BE A LOWER COST
BENEFIT TO YOU!

80
❑ KEY DISADVANTAGE OF PLATFORM-AS-A-SERVICE:

❖ CLOUD HOSTING COMPANY HAS ALL CONTROL OF


THE INFRASTRUCTURE & HARDWARE AND
RESPONSIBLE OPERATING THE INFRASTRUCTURE.
MAY BE A DISADVANTAGE SINCE YOU DON’T HAVE
CONTROL OF THE HARDWARE HOSTING YOUR
APPLICATION! THIS IS A SHIFT IN YOUR CULTURE
WHERE YOU CONTROLLED IT ALL ON-PREMISES!
❖ SECURITY IS A RESPONSIBILITY OF BOTH THE
CLOUD HOSTING COMPANY AND YOUR COMPANY:

➢ CLOUD HOSTING COMPANY SECURES THEIR


DATACENTER AND PHYSICAL SERVERS
➢ YOU SECURE YOUR DATA BY ENCRYPTING AND
CONDITIONAL ACCESS!

81
Platform-as-a-Service Application (Hosted
in Cloud Company’s Datacenter)
❑ So, what does Platform-as-a-Service (PaaS) Application look like?
❑ Because you are Designing & Creating the application yourself, the application is composed of MANY PARTS similar
to an on-premises application. The client part and all of the server components are known to
you since you develop them or buy them and deploy them in the cloud. BUT you DON’T KNOW
what Hardware/Devices are being used by the Hosting Company, only the HOSTING CLOUD
COMPANY KNOWS:

1. The Client – The Client is Custom Built by programmers at a company or PURCHASED from a software vendor. is
either a Windows client Graphical Interface application (forms, frames, multi-window etc.) or a Web Client or
BROWSER Application, which can be downloaded such as Google Chrome, Microsoft IE, Edge, Firefox etc.
2. The Web Server – RENTED from the Cloud Hosting Company but Custom Built by programmers at a company.
These Web Servers as special versions of their on-premises counterparts. Cloud Hosting Company provide a MENU
of cloud version Web Servers of popular Web Servers used on premises today.
3. The Server/Database Server – RENTED from the Cloud Hosting Company but Custom Built by
programmers at a company. Like their on-premises versions like Oracle, MS SQL Server, MySQL etc., but a MENU
of cloud Database Server Applications available on-premises today. You don’t have to install etc., just RENT. They are
Cloud version of their on-premises counterparts!

4. Network – not part of the application but it is a separate component that connects your
Windows or Browser Web Client Application in the user’s office to the INTERNET to connect
to your Back-end Web Server & Database Server applications in the Cloud Hosting
Company

❖ IMPORTANT! The complete application is a combination of THE CLIENT (Windows or Web) APPLICATION &
the Web Servers & DATABASE Servers Applications rented from the Cloud Hosting Company & developed by you!!!

Example of this type of Application


❑ Here are some examples of PaaS Applications:

▪ These are usually custom applications a company create and develop & deploy in the cloud.
▪ Don’t have any public example that I can think of or just don’t know if a popular application I may know is a PaaS
application since from the USER’S prospective you don’t know what is in the back-end side!

82
❑ You should conceptually think of PLATFORM-AS-A-SERVICE(PaaS) Cloud Computing an
APPLICATION residing in the cloud because:

▪ You create & deploy your applications in the Cloud Hosting Company’s cloud, but you
DON’T have a clue as to the HARDWARE or INFRASTRUCTURE used by the Cloud Hosting
Company.
▪ All you know is you pay monthly and you can create the Application, upgrade the
application etc., same as you did on-premises but don’t have to worry about purchasing
servers, managing infrastructure etc.
▪ The Client side of the application or the part that a user uses can be a Windows Client
(e.g. MS Word), or can be a Web Applications (e.g. Blackboard) etc.
▪ The Back end of the application is created by you, but you rent compute power without
caring or worrying about a hardware infrastructure.

83
❑ Nevertheless, as Business and Computer Professionals you need to be aware that
PLATFORM-AS-A-SERVICE(PaaS) Cloud Application is this:

▪ The PLATFORM-AS-A-SERVICE(SaaS) Cloud Application is an application


created/developed & deployed by YOU to solve some business problem and is HOSTED
PROGRAMMING & DEPLOYMENT ENVIRONMENT in the Cloud Hosting Company
Datacenter and accessed via the INTERNET!
▪ Don’t worry about hardware or underline unfractured, but get your custom applications
deployed quickly!
▪ And you pay per month to use the development and deployment environment.
▪ Simply program, deploy and your application appears by magic in the internet and
available to users!

84
Conclusion & Summary of the PLATFORM-AS-A-SERVICE Applications
❑ The key here is instead of a customer Creating & Deploying their N-tier Windows client/server
application & N-tier Web client/server applications on their on-premises hardware & infrastructure that
include all time & challenges to build on premises, simply CREATE & DEPLOY THE APPLICATION IN A
PLATFORM-AS-A-SERVICE ENVIRONMENT HOSTED BY A CLOUD COMPANY IN THEIR
DATACENTERS! AND DON’T HAVE TO WORRY ABOUT PURCHASING, DEPLOYING & MANAGING
AN INFRASTRUCTURE IN THE COMPANY’S DATACENTERS!!!!
❑ Custom Application PROGRAMMING & DEVELOPMENT is done on a hosted environment!
SIMPLY RENT THE DEVELOPMENT & DEPLOYMENT ENVIRONMENT AND APPLICATION IS
AVAILABLE IN THE CLOUD FOR YOUR USERS TO CONSUME!

Review of the Concept

85
Review of the Physical Setup:

Pros & Cons


❑ Summary of pros & cons:

Advantages
▪ No purchase of physical server computers, network appliances, and other devices. No virtual computers to deal with!
▪ RENT an application development & deployment environment and create & deploy your application without worrying about
the underline infrastructure. You quickly can spin-up your custom application without worrying about the infrastructure.
▪ Cost Savings on physical servers since they are CAPEX expenses that in time lose their value. Also, the maintenance and
personnel required to manage the physical servers.
Disadvantages
▪ Renting a dev environment means you don’t have control over the underline infrastructure that is hosting your application.
▪ The Cloud Hosting Company is responsible for implementing the stability & security of the underline infrastructure.

86
SCENARIO #4 – Infrastructure As A Service (IaaS)
❖ Company Creates/develops & deploys their custom Application (Windows
or Web/Browser Application) in addition to their purchased
applications and HOST THEM NOT ON PHYSICAL SERVERS, BUT VIRTUAL
SERVERS IN THE CLOUD!
❖ The point it all application and assets are NOT HOSTED in a REAL
PHYSICAL SERVER COMPUTER but hosted on VIRTUAL SERVER COMPUTER IN THE
CLOUD.
❖ Applications are used and managed just like on premises application
EXCEPT there are No physical servers only VIRTUAL MACHINES(VMS) or
VIRTUAL SERVERS!
❖ Simple RENT the size of the VIRTUAL MACHINE(VM) you need and do what
you want with the virtual server.
❖ This Cloud option is the closes thing to on-premises applications
since is IDENTICAL TO ON-PREMISES APPS, BUT NO PHYSICAL SERVERS TO
MANAGE OR PURCHASE (NO CAPITAL EXPENSES)..

❑ We defined the Cloud Infastructure-As-A-Service model as:

▪ Infrastructure as a Service (SaaS) – RENT VIRTUAL SERVERS OR VIRTUAL MACHINES


instead of using Physical Servers AND DO WHAT YOU WANT WITH THE VIRTUAL
MACHINES! Install & manage whatever application you want just like you would do any Physical Server you would
purchase in the real world. No physical server needed! Just of just RENT the Virtual Machines & away you
go!

Infrastructure-as-a-Service (IaaS) Application & it’s Dependencies:


Analysis:
Analysis:

▪ VIRTUAL SERVERS ARE RENTED INSTEAD OF USING REAL PHYSICAL SERVER


COMPUTERS!
▪ ALL TECHNOLOGIES NEEDED TO IMPLEMENT AN APPLICATION ARE STILL NEEDED, JUST
NOT INSTALLED ON A PHYSICAL SERVER BUT A VIRTUAL MACHINE OR SIMULATED
SERVER!
▪ The Physical Server are responsibility of the HOSTING COMPANY NOT YOU SINCE THEY ARE PROVIDING VMS,
BUT GENERATE THE VMS USING REAL PHYSICAL SERVER HOST COMPUTERS!
▪ Simply RENT VIRTUAL SERVERS AND AWAY YOU GO!
▪ YOU HAVE ALL THE CONTROL TO YOUR APPLICATIONS, OPERATING SYSTEM AND
EVERYTHING EXCEPT THE PHYSICAL COMPUTER THAT CREATE THE VIRTUAL MACHINES,
ONLY THE CLOUD HOSTING COMPANY HAS CONTROL OF THE PHYSICAL COMPUTER!
▪ Your Application & its Data is stored in the VIRTUAL MACHINES hosted by the Hosting
company’s datacenter!

Conclusion:
❑ The point!

▪ You rent ONLY the VIRTUAL SERVERS (VIRTUAL MACHINES) AND DO WHAT YOU WANT WITH
THE VIRTUAL SERVER, no hardware or maintenance of hardware required. No datacenter needed for your application.
▪ RENT, CREATE & USE via the internet!
▪ Since there is no datacenter required, this is low cost and hosting company only have control of the PHYSICAL
COMPUTER and you HAVE CONTROL OF EVERYTHING IN THE VIRTUAL COMPUTER!
▪ Nevertheless, Your Applications & their Data are stored in the Virtual Computer thus residing
in the Hosting company datacenter!

❑ KEY ADVANTAGE OF INFRASTRUCTURE-AS-A-SERVICE:

❖ SAVE YOU THE COST OF BUYING SERVERS!


❖ YOU HAVE CONTROL OF APPLICATION & DATA AND
IS THE CLOSEST CLOUD COMPUTING THAT COMES
CLOSEST TO ON-PREMISES
❖ SINCE YOU HAVE ALL CONTROL OF THE
APPLICATION & DATA
❖ NO PHYSICAL SERVERS REQUIRED THUS NOT
RESPONSIBLE FOR ELECTRICITY, COOLING,
PEOPLE TO OPERATE AND MAINTAIN THE
SERVERS.

88
❑ KEY DISADVANTAGE OF INFRASTRUCTURE-AS-A-SERVICE:

❖ ALL YOU ARE RENTING IS VIRTUAL SERVERS. YOU


STILL NEED TO INSTALL, MANAGE THE OPERATING
SYSTEMS, APPLICATIONS ETC.
❖ CLOUD HOSTING COMPANY HAS ALL CONTROL OF
THE PHYSICAL SERVERS WHICH MAY BE A
DISADVANTAGE SINCE YOU DON’T HAVE CONTROL
OF THE PHYSICAL SERVERS HOSTING YOUR
APPLICATION! THIS IS A SHIFT IN YOUR CULTURE
WHERE YOU CONTROLLED OF SERVERS ON-
PREMISES!
❖ DATA IS STORE IN THE CLOUD WITH APPLICATION THUS
HOSTING COMPANY IS RESPONSIBLE FOR THE SECURITY
OF THE PHYSICAL SERVERS, BUT YOU ARE RESPONSIBLE
FOR THE APPLICATIONS AND THEIR DATA THAT RESIDE
IN THE VIRTUAL MACHINE SINCE YOU CONTROL THE
VIRTUAL MACHINES
❖ SECURITY IS A RESPONSIBILITY OF BOTH THE
CLOUD HOSTING COMPANY AND YOUR COMPANY:

➢ CLOUD HOSTING COMPANY SECURES THEIR


DATACENTER AND PHYSICAL SERVERS
➢ YOU SECURE THE OS, YOUR DATA BY
ENCRYPTING, CONDITIONAL ACCESS & OTHER
SECURITY NEEDS!

89
Infrastructure-as-a-Service Application
(Hosted in Cloud Company’s Datacenter)
❑ So, what does Infrastructure-as-a-Service (PaaS) Application look like?
❑ Because all you are getting from the Cloud Hosting Company is VIRTUAL SERVERS to consume as you see fit, you are
responsible for designing, creating & managing the applications, the operating system and everything on the VIRTUAL
SERVER!
❑ The client part components are known to you since you develop them or buy them and deploy
them in the company’s offices. The application architecture and development you know as
well since you are developing them, BUT you DON’T KNOW what SERVER HARDWARE are
being used by the Hosting Company to generate the Virtual Machines, only the HOSTING
CLOUD COMPANY KNOWS:

1. The Client – The Client is Custom Built by programmers at a company or PURCHASED from a software vendor. is
either a Windows client Graphical Interface application (forms, frames, multi-window etc.) or a Web Client or
BROWSER Application, which can be downloaded such as Google Chrome, Microsoft IE, Edge, Firefox etc.
2. The Web Server – PURCHASED and installed on the Virtual Machines RENTED from the Cloud Hosting
Company. But you program and configured the Web Server just as you did on-premises.
3. The Server/Database Server – PURCHASED and installed on the Virtual Machines RENTED from the
Cloud Hosting Company. But you program and configured the Database Server just as you did on-premises!

4. Network – not part of the application but it is a separate component that connects your
Windows or Browser Web Client Application in the user’s office to the INTERNET to connect
to your Back-end Web Server & Database Server applications in the Cloud Hosting
Company

❖ IMPORTANT! The complete application is a combination of THE CLIENT (Windows or Web) APPLICATION &
the Web Servers & DATABASE Server Components you create, develop, and install in the Virtual Machines rented
from the Hosting Cloud Company!!!

Example of this type of Application


❑ Here are some examples of IaaS Applications that you may be already using and did not know is a SaaS application:

▪ IaaS application can be any application.


▪ You really don’t know as a user of an application what the back end looks like.
▪ I am sure you are using many IaaS applications and not even aware!

90
❑ You should conceptually think of INFRASTRUCTURE-AS-A-SERVICE(IaaS) Cloud Computing
an APPLICATION residing in the cloud because:

▪ You create, purchase & deploy your applications in a Virtual Machined in the Hosting
Company’s cloud. This is just as is done on premises, but the computer is not physical
but virtual. You DON’T have a clue as to the SERVER HARDWARE or INFRASTRUCTURE
used generate the Virtual Machines by the Cloud Hosting Company.
▪ All you know is you pay monthly and you have a Virtual Server you can use and do
whatever you want with the VM the same as you do on-premises for a real physical
server.
▪ The Client side of the application or the part that a user uses can be a Windows Client
(e.g. MS Word), or can be a Web Applications (e.g. Amazon.com) etc.
▪ The Back end of the application is hosted in Virtual Machines that are managed by you
but hosted in VMs in the cloud.

91
❑ Nevertheless, as Business and Computer Professionals you need to be aware that
INFRASTRUCTURE-AS-A-SERVER(IaaS) Cloud Application is this:

▪ The INFRASTRUCTURE-AS-A-SERVER(IaaS) Cloud Application is RENTING Virtual Servers


so no Physical Servers needed for an application. Application is created/developed or
Purchased & deployed by YOU to solve some business problem, but the SERVER is
HOSTED & DEPLOYED in a Cloud Hosting Company Datacenter and VIRTUAL MACHINE is
provided to you and you accessed via the INTERNET!
▪ Don’t worry about server hardware or server underline unfractured!
▪ And you pay per month to use the Virtual Machines!

92
Conclusion & Summary of the INFRASTRUCTURE-AS-A-SERVICE Applications
❑ The key here is instead of a customer Creating & Deploying their N-tier Windows client/server
application & N-tier Web client/server applications on their on-premises hardware & infrastructure that
include all time & challenges to build on premises, simply CREATE & DEPLOY THE APPLICATION IN A
INFRASTRUCTURE-AS-A-SERVICE ENVIRONMENT HOSTED BY A CLOUD COMPANY IN THEIR
DATACENTERS! AND DON’T HAVE TO WORRY ABOUT PURCHASING, DEPLOYING & MANAGING
AN PHYSICAL SERVERS IN THE COMPANY’S DATACENTERS!!!!
❑ Custom Application PROGRAMMING & DEVELOPMENT & PURCHASED APPLICATION are
hosted in VIRTUAL SERVERS that is managed and operated BY YOU but hosted in the Cloud
Company’s Datacenter! NO PURCHASING OF PHYSICAL SERVERS REQUIRED! SIMPLY RENT
THE VIRTUAL SERVERS & MANAGE AND INSTALL YOUR APPLICATIONS!

Review of the Concept

93
Review of the Physical Setup:

Pros & Cons


❑ Summary of pros & cons:

Advantages
▪ No purchase of physical server computers and network appliances. Simply rent VIRTUAL MACHINES and away you go.
▪ Cost Savings since physical servers are CAPEX or capital expenses that in time lose their value.
▪ Cost Savings on not purchasing physical servers and the maintenance and personnel required to manage the physical servers.

Disadvantages
▪ IaaS means Virtual Machines in the cloud, which are virtual servers. Therefore, you still need to do ALL THE WORK that is
done with Physical Servers on premises! You need to install OS, Manage OS deployments, Update, etc. Install, manage, and
operate the applications etc.
▪ All you are saving is on the physical servers, but all the work and management of on premises servers still needs to be done.

94
SCENARIO #5 – Hybrid Cloud
❖ As stated in our introductory sections at the start of this document,
the reality is that enterprise organization need a HYBRID approach or a
combination of application strategies:

Combination of all 4 options: Develop your own Custom App, Buy & RENT:

‐ The reality is that companies are using a combination of all 3 options (Build, Buy & Rent), nevertheless, the goal
and the optimal option is a Hybrid Cloud Computing approach or combination of all 3 options.

❖ In a Hybrid Cloud Scenario, a combination of all 4 Application


options apply:

1. On-premises (the norm) – Build and host in your datacenter

2. Software-as-a-Service (SaaS) – Rent the application from cloud


Hosting Company’s datacenter

3. Platform-as-a-Service (PaaS) – Rent a development & deployment


environment from cloud company datacenter

4. Infrastructure-as-a-Service (PaaS) – Rent Virtual Server from cloud


company’s datacenter & develop, buy applications, and deploy on the
virtual servers just like you do on-premises.

95
❑ What is Hybrid Computing? A scenario where a company uses both on-premise computing
where SERVER component of an applications are hosted in the Company’s Owned
Datacenter and in addition renting SERVER components of applications and infrastructure
from a Cloud Company Datacenter:

▪ The applications are created or purchased by the company. The CLIENT components of all applications are
hosted in the user’s computer in the company’s offices AND the SERVER components of
the applications are HOSTED/KEPT in the company’s datacenter.
▪ In addition, applications are Rented, created or installed in Virtual Machines HOSTED at a
CLOUD COMPANY’S DATACENTER(S).
▪ All the application architectures, hardware & technologies etc., is a combination of ON-
PREMISE & CLOUD COMPUTING:

KEY POINT #2
KEY POINT #1
The applications Back-end
The applications Back-end
components or SERVERS
components or SERVERS
are also stored in
are stored in
CLOUD HOSTING
CUSTOMER’S OWNED
COMPANY
DATACENTERS!
DATACENTERS!

96
HYBRID – Interaction between Users, Client (front-end component), Server (back-end
component) of application hosted in Company’s Owned Datacenter & a Cloud Hosting
Company Datacenter
❑ The back end or SERVER components of applications are hosted BOTH in the Company’s owned
Datacenters & the Cloud Company Datacenters, while the CLIENT components are in the user’s
desktop/laptop computers and what the user interacts with as shown below:

KEY POINT #1 KEY POINT #2

The applications Back-end The applications Back-end


components or SERVERS components or SERVERS
are stored in are also stored in
CUSTOMER’S OWNED CLOUD HOSTING
DATACENTERS! COMPANY
DATACENTERS!

97
❑ We defined Hybrid model as a combination of all 4 options:

Hybrid Model is a combination of all the options:

98
❖ In a Hybrid Cloud Scenario an application can be a combination of the
following possibilities:

1. On-premises (the norm) & Software-as-a-Service (SaaS) – Build/Buy


& host in your datacenter PART of the application and Rent an
EXTENSION of the application from cloud company’s datacenter. This
is an INTEGRATION of on-premises and SaaS to enhance the
application and & vice versa.

2. On-premises (the norm) & Platform-as-a-Service (PaaS) – Build/Buy &


host in your datacenter PART of the application and EXTEND the
application by Renting a development & deployment environment from
cloud company datacenter. This is an INTEGRATION of on-premises
and PaaS to enhance the application and & vice versa.

3. On-premises (the norm) & Infrastructure-as-a-Service (PaaS) –


Build/Buy & host in your datacenter PART of the application and
EXTEND the application by Renting Virtual Server from cloud
company’s datacenter & develop, buy applications and deploy on the
virtual servers just like you do on-premises.

4. A Combination of On-premises (the norm), Software-as-a-Service


(SaaS), Platform-as-a-Service (PaaS) & Infrastructure-as-a-Service
(PaaS) – Build/Buy & host in your datacenter PART of the
application and Rent an EXTENSION of the application, Rent a
development & deployment environment and Rent Virtual Server from
cloud company’s datacenter or different coud companies datacenters.
This is an INTEGRATION of on-premises and all three cloud SaaS,
PaaS & IaaS to enhance the application and & vice versa.

5. Other Hybrid Scenarios

99
Hybrid Model Conceptually

100
Hybrid Model in Reality

101
The On Premise, Cloud Application & Hybrid Options
Type, User-Defined Type
& Instance
0.5 In Computer Science, what is a Type? Blueprint? Class? Entity Type? - versus –
Type INSTANCE? Blueprint INSTANCE? Class INSTANCE? Entity Type INSTANCE?

CONCEPT #2 – Blueprint, Template, Class,


Type – versus - Instance
0.2.1 The Concept of Blueprint, Template, Class, Type versus the INSTANCE of a Blueprint,
Template, Class or Type

What is a Type, Blueprint, Template, Class


or Entity Type?
Some Real-life Definitions
❑ A blueprint.

▪ Blueprint – A technical drawing documenting an architecture or engineering design used as the foundation to form
something physical exactly as the blueprint.

▪ Floor Plan – a scale design or diagram of a home or building

▪ Template – is a pattern used to forming something exactly

▪ Type – a category of people or things having a common characteristic.

▪ Entity Type – defines or lists a type of category of real-world things. An entity is a person, place or thing. Type of entities
are categories of people places or things.

▪ Class in real-world – a template for things having properties or attributes in common and differentiated from others by type,
quality etc.

▪ Class in computer science Object-Oriented-Programming (OOP) – a template or blueprint for creating objects with
specific properties and actions exactly as dictated by the class template.
What is an INSTANCE of a Type, BluePrint,
Template, Class or Entity Type?
❑ A instance is a physical object of some specification or blueprint etc.

▪ Entity Instance – a real world thing or occurrence or actual realization of a thing

▪ In life - Instance – An example or single occurrence of something

▪ In an OOP course – an instance or concrete or actual realization or occurrence of an object of the class blueprint.

▪ Instance of a floor plan – an actual realization or construction of a house or building created exactly as the plan or blueprint.

104
SCENARIO #1 (IN REAL LIFE) – Blueprint, Templates, Types, Class, Entity
Type -vs- Instances in Real-world
Example 1 – Blueprint/Floor Plan to a house & Instance(s) of the house
❑ xxx.
❑ xxx:

Blueprint Instance(s)

Floor Plan House Instance1 House Instance2

▪ IMPORTANT! Instances can have different


characteristics or properties e.g. color, doors, etc.,
but must BE CREATED or INSTANTIATED identical to
Blueprint, Floor plan, Template, Type, Class etc.
Example 2 – Blueprint/Floor Plan to a house & Instance(s) of the house
❑ xxx.
❑ xxx:

Blueprint Instance(s)

House Instance1 House Instance2

Floor Plan ▪ IMPORTANT! Instances can have different


characteristics or properties e.g. color, doors, etc.,
but must BE CREATED or INSTANTIATED identical to
Blueprint, Floor plan, Template, Type, Class etc.

106
Example 3 – Human DNA blueprint & Instances of a Human Blueprint
❑ xxx.
❑ xxx:

Blueprint Instance

Human Instance2
Human Instance1
Human DNA Blueprint

Human Instance3 Human Instance4


▪ IMPORTANT! Human instances can have different
characteristics or properties e.g. color, hight,
weight, etc., but must BE CREATED or
INSTANTIATED identical to DNA Blueprint, Template,
Type, Class etc.

107
Example 4 – Car Blueprint & Instance of the Car Blueprint
❑ xxx.
❑ xxx:

Blueprint Instance

Car Instance1
Car Blueprint

Car Instance3
▪ IMPORTANT! Instances can have different
characteristics or properties e.g. car color, doors,
wheel type etc., but must BE CREATED or
INSTANTIATED identical to Car Blueprint, Template,
Type, Class etc.

108
Conclusion of Scenario #1
▪ The point here is that in life there is always a Blueprint,
Template, Class, Type, etc., for all objects in existence.
▪ Which means, first step is a design of the Blueprint,
Template, Class, Type, etc., with the specifications
(Characteristics/Properties/Actions) of what objects or
INSTANCES of the blueprint will be EXACTLY as dictated
by blueprint or class!

109
What is an INSTANCE of a Type, BluePrint, Template, Class
or Entity Type?
❑ A instance.

In life - Instance – An example or single occurrence of something

In OOP class – an instance or concrete or actual realization or occurrence of an object of the class blueprint.

Instance of a floor plan – an actual realization or construction of a house or building created exactly as the plan or blueprint.

The CLASS: The OBJECT:

❑ The mechanism to implementing Object-Oriented ▪ The OBJECT: an instance or physical object of the Class or
Programming is the Class & the Object. Blueprint:

▪ The CLASS: Template or Blueprint defining the Object of the Class


object:
Customer1

Class Name

Data Declarations Data

Properties
Properties (Set & Get Methods)
Declarations
Methods

Method Declarations Events

Events Declarations

110
SCENARIO #2 (IN COMPUTER SCIENCE/IT/Object-Oriented-Programming)
– Blueprint, Templates, Types, Class, Entity Type -vs- Instances in Real-
world
Example 1 – Person Class & Object Instances of Class Person
❑ xxx.
❑ xxx:

Blueprint Instance

ObjPerson2
Class Person
ObjPerson1
Private INSTANCE Data Declarations: Private INSTANCE DATA:
name: String Private INSTANCE DATA: Name = “Angel Rodriguez”
sSnumber: String Name = “joe Smith” sSNumber = “2222”
dateOfBirth: String sSNumber = “1111” dateOfBirth = “02/02/72”
age : int dateOfBirth = “01/01/71” age = 44
age = 44
Private STATIC Data Declarations: Public INSTANCE
count: int Getter/Setter Methods:
Public INSTANCE
Getter/Setter Methods: getName()
Public INSTANCE GETTTER/SETTER setName(n)
getName()
METHODS Declarations (Properties): getSSNumber()
setName(n)
getName(): String setSSNumber(s)
getSSNumber()
setName(n): void getDateOfBirth()
setSSNumber(s)
getSSNumber(): String setDateOfBirth(d)
getDateOfBirth()
setSSNumber(s): void getAge()
setDateOfBirth(d)
getDateOfBirth(): String setAge(d)
getAge()
setDateOfBirth(d): void
setAge(d)
getAge(): String
setAge(d): void

Public Method Declarations:

Person Instance2
Person Instance1
Class Person (Blueprint/Specs)

111
Example 2 – Class Customer & Object Instance of Class Customer
❑ xxx.
❑ xxx:

Blueprint Instance
ObjCustomer1
Class Customer

Private Data Declarations:


Private Data INTANCE:
Name: string
SSNumber: string Name = “Joe Smith”
DateOfBirth: string SSNumber = “111-11-11111”
Height: Number DateOfBirth = “12/12/1960”
Weight: string Height = 5.11
Weight = 195
Public GETTER/SETTER METHODS
Declarations (Properties): Public GETTER/SETTER METHODS
INSTANCE (Properties):
getNamee(): String
setName(n): void getNamee()
getDOB(): String setName(n)
setDOB(d): void getDOB()
getHight(): Nunber setDOB(d)
setHight(h): void getHight()
getWeight(): Number setHight(h)
setWeight(h): void getWeight()
setWeight(h)
Public INSTANCE Method Declarations:
PrintCustomer() void Public INSTANCE Method INSTANCE:
Shop() void PrintCustomer()
Shop()

Class Customer (Blueprint/Specs)

Customer Instance1

112
Example 3 – Class Car & Object Instance of Car Class
❑ xxx.
❑ xxx:

Blueprint Instance
ObjCar1
Class Car
Class
Private Data Declarations:
Private Data INSTANCE:
make: string
model: string make = “BMW”
color: string model = “M3”
color: = “Black”
Public GETTER/SETTER METHODS
Declarations (Properties): Public GETTER/SETTER METHODS
INSTANCE (Properties):
getMake(): String
getMake(m): void getMake()
getModel(): String getMake(m)
getModel(m): void getModel()
getColorl(): String getModel(m)
getColor(c): void getColorl()
getColor(c)
Public INSTANCE Method Declarations:
Start() void Public INSTANCE Method Declarations:
Stop() void Start()
Accelerate(speed) int Stop()
Decelerate(speed) int Accelerate(speed)
TurnLeft() void Decelerate(speed)
TurnRight() void TurnLeft()
TurnRight()

Class Customer (Blueprint/Specs)

Customer Instance1

113
Conclusion of Scenario #2
▪ The point here is that in Object-Oriented-Programming,
which is a big part of Application Development today,
there is always a Class, or blueprint, also known as USER
DEFINED TYPE, etc., for all objects in a program.
▪ Which means, first step is a design of the Class or User
defined Type, etc., with the specifications
(Characteristics/Properties/Actions) of what objects or
INSTANCES of the Class will be EXACTLY as dictated by
the Class!

114
SCENARIO #3 – (IN COMPUTER SCIENCE/IT/Database Design) Entity Type -
vs- Instances of an Entity Type
Example 1 – Employee Entity Type & INSTANCE of the Employee Entity
❑ xxx.
❑ xxx:

Blueprint Instance

EMPLOYEE

Employee ID
Name
Address
City
State
Zip Code
Hire Date
Birth Date

3 Instances of
Employee Entity Type EMPLOYEE
(Blueprint/Specs)

▪ IMPORTANT! The ROWS or RECORD of a Database


Table are the INSTANCES of the Employee Entity
Type or Blueprint.

115
Example 2 – Customer Entity Type & INSTANCE of the Customer Entity
❑ xxx.
❑ xxx:

Blueprint Instance

CUSTOMER
CUSTOMER
Customer_ID Name Address Birth_Date
Customer ID
3 Instances of 11111 Jimmy Smith 100 E45 th Street 03/11/1989
Name CUSTOMER 22222 Sandy Smith 100 E45 th Street 11/07/1983
Address 33333 Henry Jones 312 Jay Street 02/04/1995
Birth Date

Customer Entity Type


(Blueprint/Specs)

▪ IMPORTANT! The ROWS or RECORD of a Database


Table are the INSTANCES of the Employee Entity
Type or Blueprint.

116
Example 3 – Employee Entity Type & INSTANCE of the Employee Entity
❑ In database design, Entities are types that represent people, places & things.
❑ Entities have relationships with other entities. The first stage of database design is data modeling where we use entities and relationships to represents the interactions between
business entities in a design. These entities or modeling diagram is a BLUEPRINT or TYPES between a business’s entities.
❑ The final phase of database design involves implementing the database from the design, which means creating the RELATIONAL TABLES for every entity and
relationship. These ROWS or RECORDS of a TABLE are INSTANCES of the ENTITIES.

Blueprint Instance

VEHICLE
Vehicle ID VEHICLE
Make Vehicle ID Make Model Year
Model 154QMJ6O88PX Acura MDX 2017
Year 4 Instances of VEHICLE
77EXPL620KZM Ford Explore 2016
QNX43923KHSL Nissan Maxima 2017
R843HTQ76AP9 BMW 740I 2015

Vehicle Entity Type


(Blueprint/Specs)

▪ IMPORTANT! The ROWS or RECORD of a Database


Table are the INSTANCES of the Employee Entity
Type or Blueprint.

117
Example 4 – Relationship Type RENTS between Customer Entity Type and Vehicle Entity Type & INSTANCE
of the Relationship Type
❑ In database design, the RELATIONSHIPS between ENTITIES also BLUEPRINT or TYPES.
❑ The final phase of database design or implementation, RELATIONSHIP LINES are converted to RELATIONAL TABLES, an the ROWS or RECORDS of a
RELATIONSHIP TABLE are INSTANCES of the RELATIONSHIP.

Blueprint Instance

Rent Relationship Type


(Blueprint/Specs) ▪ IMPORTANT! The ROWS or RECORD of a Database
Table are the INSTANCES of the RELATIONSHIP
TYPE between ENTITY TYPES or Blueprint.

118
Conclusion of Scenario #3
▪ The point here is that in Database Design and Conceptual
Modeling, which is a diagram that represents a business
requirement data, there are Entity Type & their
Relationship Types which are both blueprint, for all
Objects or Tables that will exist in the databae.
▪ Which means, first step is a design of the Entity Types
and Relationship Types, etc., with the specifications
(Characteristics/Properties/Actions) of what objects or
INSTANCES of the Tables will be EXACTLY as dictated by
the Entity Type and Relationship Types!

119

You might also like