Professional Documents
Culture Documents
Lecture 0 - Things You Need To Know (Version4)
Lecture 0 - Things You Need To Know (Version4)
(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 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!
3
0.2 My opinion on the top skills you need for success in IT/Computer Science
CONCLUSION:
4
0.3 The reality of IT/Computer Science! Why do Companies need IT Professionals?
5
Answer:
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.
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)
‐ 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.
▪ 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
▪ 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
▪ 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.
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
THREE-TIER CLIENT/SERVER
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
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:
▪ 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
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:
KEY POINT?
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:
‐ 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.
‐ 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.
‐ 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.
▪ 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
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:
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!!!!
▪ 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!
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:
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:
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
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
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.)
Client _App.EXE
8
10 11
DBMS_Server .EXE
12 13
8 9 18 19 20 21 22
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.
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.
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.
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.
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)
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.
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.
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:
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.
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!!!!
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 SERVER OPERATING SYSTEM (OS) – The Web Server Application runs on a SERVER
OPERATING SYSTEM ( (example Windows Server, Unix, etc.)
38
❑ Simple physical illustration:
User
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:
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.)
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
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
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.
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.
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.
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)
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.
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.
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.
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.
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.
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?
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?
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?
KEY POINT?
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!
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):
❑ Why should you care? What are the pros & cons 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.
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.
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?
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.
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.
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:
▪ 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!
64
0.2 Review of Client/Server Applications (n-tier Windows & Web) Managed and hosted
on a company datacenter (ON-PREMISES)
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:
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
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:
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.)
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!!!!
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!
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!
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!!!
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:
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!
77
Review of the Physical Setup:
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!
79
Analysis:
Analysis:
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!
80
❑ KEY DISADVANTAGE OF PLATFORM-AS-A-SERVICE:
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!!!
▪ 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:
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!
85
Review of the Physical Setup:
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)..
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!
88
❑ KEY DISADVANTAGE OF INFRASTRUCTURE-AS-A-SERVICE:
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!!!
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:
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!
93
Review of the Physical Setup:
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.
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:
97
❑ We defined Hybrid model as a combination of all 4 options:
98
❖ In a Hybrid Cloud Scenario an application can be a combination of the
following possibilities:
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?
▪ Blueprint – A technical drawing documenting an architecture or engineering design used as the foundation to form
something physical exactly as the blueprint.
▪ 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.
▪ 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)
Blueprint Instance(s)
106
Example 3 – Human DNA blueprint & Instances of a Human Blueprint
❑ xxx.
❑ xxx:
Blueprint Instance
Human Instance2
Human Instance1
Human DNA Blueprint
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 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 mechanism to implementing Object-Oriented ▪ The OBJECT: an instance or physical object of the Class or
Programming is the Class & the Object. Blueprint:
Class Name
Properties
Properties (Set & Get Methods)
Declarations
Methods
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
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
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()
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)
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
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
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
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