SlideShare a Scribd company logo
HÖNNUN OG SMÍÐI HUGBÚNAÐAR 2015
L01 INTRODUCTION TO ENTERPRISE SOFTWARE
Agenda
The Post-PC era
Enterprise Application
Building Blocks
Evolution of Enterprise Software
Building Blocks
Reading
Brown: 1-7
Hönnun og smíði hugbúnaðar 2015 - lýsing á námskeiðinu
Digital Lifestyle
Eric Schmidt talks the Future of Enterprise Software
Mobile is Eating the World
Enterprise Software
Software as a Service
The Post-PC era
Eric Schmidt
Future of Enterprise Software
Conversation with Salesforce CEO, Marc Benioff
L01 Introduction to Enterprise Software
1960 1970 1980 1990 2000 2010
Mainframes
Mini	
  computers
Personal	
  Computers
Servers
Clusters
Cloud	
  –	
  utility	
  computing
Laptops
Music	
  player
2G	
  Cell	
  phones
CONVERGE
DIVERGE
Smartphones
Tablets
Smart	
  TV
Internet	
  of	
  things
Smartwatch
2000 2010
THE DIGITAL
DECADE
L01 Introduction to Enterprise Software
“[The Personal Computer] can become the 'Digital Hub'
of our emerging digital lifestyle, adding tremendous value
to our other devices.”
- Steve Jobs, 2001 Keynote introducing the iPod
THE DIGITAL
DECADE
MUSIC PICTURESVOICE	
  CALLS SMART	
  PHONES
SHOWS
MOVIES
BOOKS/
MAGAZINES
THE DIGITAL
DECADE
2000 2010
2000 2010
iMac iPhone
iMac G3	
  
Mac OS 9.0.4

500 MHz PowerPC G3 CPU, 128MB Memory

Screen - 786K pixels

Storage - 30GB Hard Drive
iPhone 4	
  iOS 4.0

1 Ghz ARM A4 CPU, 512MB Memory

Screen - 614K pixels

Storage - 32GB Flash Drive
WHAT HAPPENED
AT THE END OF THE
DIGITAL DECADE?
L01 Introduction to Enterprise Software
1981-2011 The era of the PC
L01 Introduction to Enterprise Software
3 BILLION PEOPLE ARE ALREADY 

CONNECTED TO THE INTERNET
SOFTWARE AND DATA ARE STORED IN
THE CLOUD


UNIVERSAL ACCESS
OUR DEVICES ARE GATEWAYS TO THE CLOUD
Source: Slides from Benedict Evans, A16Z, ITU
Growth into the Bubble
Source: Slides from Benedict Evans, A16Z, ITU
Growth since the Bubble
Source: Slides from Benedict Evans, A16Z, ITU
Growth into the Future
The Post-PC Era
The Personal Computer era is over
Rise of the network
Smart phones rule the world
APIs
Enterprise systems are accessible by consumers, not operators
Everything gets connected, IoT
Challenges in Computing
New Requirements
Way more users (millions), more complicated software
Uptime, security and reliability
Scalability
Competition drives need for productivity - time to market
Leveraging investments – integration with existing systems
1980 1990 2000
Hardware
Connecting hardware
Network Software
Connecting

software
Challenges in Computing
Software and integration of components and devices are
the challenges ahead
Cloud computing and ubiquity
Move to Service Oriented Architecture or micro services
and APIs
New Approach to
Software
Architecture
Which	
  of	
  the	
  following	
  statements	
  is	
  not	
  true?
A) The	
  challenge	
  ahead	
  is	
  to	
  connect	
  software	
  
B) The	
  PC	
  is	
  no	
  longer	
  a	
  device	
  for	
  development	
  
C) Computing	
  has	
  moved	
  to	
  the	
  cloud	
  
D) During	
  the	
  digital	
  decade,	
  the	
  PC	
  was	
  the	
  digital	
  hub	
  for	
  all	
  you	
  devices	
  
QUIZ
Enterprise Applications
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
40
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
L01 Introduction to Enterprise Software
Enterprise Applications
Software running in corporate data centers
Characteristics:
✦ Involve data, some times huge amounts
✦ Concurrent data access, multiple users
✦ Lot of user interface screens
✦ Integration with other enterprise application
✦ Use of middleware software, such as databases, application
servers, web servers
✦ Operated by specialists – system operators
Examples
B2C - Business to Consumer
✦ E-commerce web sites such as Amazon, eBay
✦ Commercial services like banking
B2B – Business to Consumer
✦ Payroll, patient records, shipping tracking, cost analysis, credit
scoring, insurance, supply chain, accounting, customer service,
and foreign exchange trading
✦ Content such as: Stock quotes, sports results, email, blogs
Software as a Service (SaaS)
“On-demand” software
✦ Cloud computing
IT infrastructure demands
✦ Communication: interacting with the software
✦ Scalability: dealing with fluctuation
✦ Dependability: available 24/7
Software as a Service Examples
E-mail services
Project management
Blog services
What	
  is	
  not	
  necessarily	
  characteristic	
  of	
  enterprise	
  software?
A) Has	
  many	
  concurrent	
  users	
  working	
  on	
  the	
  same	
  data	
  
B) Integrates	
  with	
  other	
  IT	
  systems	
  
C) Deploys	
  some	
  form	
  of	
  distribution	
  strategy	
  
D) Is	
  operated	
  by	
  specialists	
  not	
  by	
  the	
  users	
  
QUIZ
Evolution of Enterprise Software
Evolution
60 70 80 90 00
IBM	
  
Mainframes	
  
Limited	
  
layering	
  or

abstraction
IBM,	
  DEC	
  
Mini-­‐

computers	
  
Unix,	
  VAX	
  
“Dumb”	
  
terminals	
  
Screens/DB
PC,	
  Intel,	
  
DOS,	
  Mac,	
  

Unix,	
  

Windows

Client/Server	
  
DB
Windows	
  
Internet	
  
HTTP	
  
Web	
  

Browsers	
  
Web

Applications	
  
DB
Windows,

Linux	
  
MacOS	
  
Browsers,	
  
Services	
  
Domain

Applications	
  
DB
60s 70s 80s 90s 00s
IBM	
  
nframes	
  
mited	
  
ering	
  or

traction
IBM,	
  DEC	
  
Mini-­‐

computers	
  
Unix,	
  VAX	
  
“Dumb”	
  
terminals	
  
Screens/Files
PC,	
  Intel,	
  
DOS,	
  Mac,	
  

Unix,	
  

Windows

Client/Server	
  
RMDB
Windows	
  
Internet	
  
HTTP	
  
Web	
  

Browsers	
  
Web

Applications	
  
RMDB
Windows,

Linux	
  
MacOS	
  
Browsers,	
  
Services	
  
Domain

Applications	
  
RMDB
iOS	
  
Android	
  
HTML5	
  
Browsers	
  
Apps	
  
API	
  
Cloud	
  
NoSQL
10s
Evolution
Server Database
Network protocolWindows
Client
Windows
Client
Two layer system
Thick native client running on a PC, contains all the presentation
and domain logic
Connects to the server for data
Client-Server
Network protocol
Server Database
Network protocolWindows
Client
Windows
Client
Limited reusability
Requiers installation and configuration
Versioning is hard
Dependant on specific OS
Not accessible from outside
Client-Server
Network protocol
Network protocolPresentation
Layer
Presentation
Layer
Classical three layers
Presentation Layer for the user interface, view and input
Domain Layer for the business logic
Data Source Layer for the data access
Move to Three Layers
Network protocol
Domain
Layer
Data
Source
Layer
Database
HTML/HTTPWeb
Browser
Web 

Browser
The Web added new challenges
The browser accesses strings of tags (HTML)
Move the logic from client to a web layer
Enter the Web Layer
HTML/HTTP
Domain
Layer
Data
Source
Layer
Database
Web
Layer
Presentation Layer
HTML/HTTPWeb
Browser
Web 

Browser
Domain components are deployed on Application Servers
- Distributed multi-tiered applications
- Examples: Spring, EJB containers
Application Servers
HTML/HTTP
Domain
Layer
Data
Source
Layer
Database
Web
Layer
Web Server Application Server
Web
Server
Domain
Layer
SOAP
HTTP SOAP
Web Browser
Native App
SOAP
Web Browser HTTP
Server
SOAP
Client
Built software into independent services
Use APIs such as SOAP to expose functionality
Service Oriented Architecture (SOA)
Web Browser
Native App
CMS
Web
Server
Web
Server
HTML REST
REST
Microservices
Built software into (smaller) independent services
Use RESTful APIs with Json
Content Management System for all operator editable content
Client Types
Native Applications
Apps
Usually use some OS
GUI and APIs
Windows, Linux,
MacOS, iOS, Andriod
Communication can
be anything
Use the power of the
device
Embedded
Run inside Web
Browsers
Flash, Java Applets
Communication with
XML using HTTP
Standardised, provide
rich functionality in
limited browsers
Rich Internet
Application (RIA)
JavaScript calls REST/
SOAP services for
data
HTML5 with XML/Json
using Ajax/jQuery
Standardised, provide
rich functionality using
HTML5
HTML Presentation
in Browsers
HTML Presentation in
Browsers
All functionality is
server side
Simple HTML
Tiers vs. Layers
Tier implies physical layer
Example:
Client-server is two-tier system: client on one machine, server on
another
Layers do not need to run on separate machines
Layers can be on the same machine
Example:
Web system with Web Layer, Domain Layer and Data Source Layer
on the same machine, then the database on a separate machine
Classic N-tier Web Architecture
HTTP Service
HTTP Service
HTTP Service
HTTP Service
Services
Services
Database
Legacy
Server
Scalability comes by adding more servers
Which of the following statements is not true?
A) Versioning is only a challenge with client-service model
B) Layers need not be on a separate machines
C) Web servers can be used as application servers
D) Scalability is achieved by duplicating the system
QUIZ
Building Blocks
Building Enterprise Applications
Building computer systems is hard
As the complexity of the system gets greater, the

task of building the software gets exponentially harder
Building Enterprise Applications
Building computer systems is hard
Software Architecture
Object Oriented 

Programming
Frameworks
Middleware
Design Patterns
Object Oriented Programming
OO is key to development of systems
• Design for reusability, flexibility and performance
One of the biggest hurdles for developers
• Each component should be simple with simple task
• Involves understanding of interaction of parts
“OO design is more important than specific technologies, such as J2EE. 

We should try to avoid letting our technology choices, such as J2EE, constrain our ability to use true OO design”
– Rod Johnson
“If the design is good, there is no code”
– Jónas Þór, Senior Developer, Betware
Software Architecture
Shared understanding of system’s design by the expert
developers on a project - vision and structure
• Highest-level breakdown of a system into its parts
• Decisions that are hard to change
• Architecture influences design of 

components, technology, performance 

and middleware
• There are always multiple of options
Object Oriented Programming
Design using known ideas
• Design patterns are standard solutions to common problems
in software design
• Systematic approach for problems that reoccur in software
development
• Patterns have name and definitions - not language dependant
History
Landmark book from 1995: Design Patterns: Elements of
Reusable Object-Oriented Software Gang of Four (GoF)
Middleware
Enterprise system are built on middleware
• Can cover a broad spectrum of software and generally sits
between an application and an operating system
• For example, databases, application servers, web servers,
messaging systems, transaction monitors
• “The plumbing” – the infrastructure
Horizontal market
• Solves common problems – not specific business
requirements
• Low-level system
Frameworks
Frameworks define the support structure for how to organise
and build systems
• Can improve productivity
• We can use existing frameworks or build our own
Frameworks implement common problems
• Developers extend and add their business requirements
Framework design
• Use inheritance, inversion of control, interfaces and helper
classes
• Implement design patterns
Which of the following statement is not true?
A) Design patterns are solutions to common problems
B) Object oriented programing is good for general problems
C) Frameworks are used to increase productivity
D) Middleware can solve business related problems
QUIZ
THINK ABOUT THIS
Advice is a dangerous gift
There are no right answers
“Use the advice to prod your thinking, but don’t
use it as a replacement for your thinking”
– Martin Fowler

More Related Content

PPT
Cloud computing ppt
PPTX
Understanding the Windows Server Administration Fundamentals (Part-1)
PDF
Web technology
PPTX
Networks
PPT
Evolution of the cloud
PPSX
Introduction to mobile application
PDF
A brief history of cloud computing
PPTX
Cloud computing ppt
Understanding the Windows Server Administration Fundamentals (Part-1)
Web technology
Networks
Evolution of the cloud
Introduction to mobile application
A brief history of cloud computing

What's hot (20)

PPTX
Computers and society
PPTX
Cloud computing
PPTX
Cloud Computing Fundamentals
PDF
WEB I - 01 - Introduction to Web Development
PPTX
Dropbox presentation
PPTX
What is Edge Computing and Why does it matter in IoT?
PPT
Mobile devices ppt
PPTX
Windows 10 presentation
PDF
Virtual box
PPTX
cloud storage ppt
PPTX
Edge Computing
PPTX
Platform as a Service (PaaS)
PPTX
1-LESSON-SOCIAL AND PROFESSIONAL ISSUES.pptx
PPTX
Web servers
PPTX
Sandbox
PPTX
Office 365 presentation
PPTX
Human Computer Interaction - Interaction Design
PPT
Cloud computing
PPTX
Cloud Application Development – The Future is now
Computers and society
Cloud computing
Cloud Computing Fundamentals
WEB I - 01 - Introduction to Web Development
Dropbox presentation
What is Edge Computing and Why does it matter in IoT?
Mobile devices ppt
Windows 10 presentation
Virtual box
cloud storage ppt
Edge Computing
Platform as a Service (PaaS)
1-LESSON-SOCIAL AND PROFESSIONAL ISSUES.pptx
Web servers
Sandbox
Office 365 presentation
Human Computer Interaction - Interaction Design
Cloud computing
Cloud Application Development – The Future is now
Ad

Viewers also liked (16)

PPTX
HCM Software
PPT
Talygen Business Management Software
PDF
Design for enterprise software by Benjamin Humphrey
PPT
Open ERP Keypoints
PPTX
Human Resource Management System(HRMS)
PPTX
Apple inc
PPTX
Benefits of Inventory Management system Software
PDF
Openerp Rise Web
PDF
Archiving qualitative data for policy research meeting challenges and establ...
PDF
Enterprise Software Roadmap for Microsoft Products
PDF
10 signs you need business management software.
PPT
Class2 Business Software
 
PPTX
Hospital Inventory Management System
PPTX
case study on ERP success(cadbury) and failure(hershey's)
DOC
Hospital management system
PDF
How to Become a Thought Leader in Your Niche
HCM Software
Talygen Business Management Software
Design for enterprise software by Benjamin Humphrey
Open ERP Keypoints
Human Resource Management System(HRMS)
Apple inc
Benefits of Inventory Management system Software
Openerp Rise Web
Archiving qualitative data for policy research meeting challenges and establ...
Enterprise Software Roadmap for Microsoft Products
10 signs you need business management software.
Class2 Business Software
 
Hospital Inventory Management System
case study on ERP success(cadbury) and failure(hershey's)
Hospital management system
How to Become a Thought Leader in Your Niche
Ad

Similar to L01 Introduction to Enterprise Software (20)

PPTX
L01 Enterprise Application Architecture
PPTX
Hönn2014 L01 Enterprise Applications
PPTX
JEE Technology Concepts in Details for web development.pptx
PPTX
Techniques for Developing Systems in IT Management System
PPTX
L14 Summary and Conclusions
PPTX
software for information systems for business and beyond.pptx
PDF
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
PPTX
Module-2-Analyzing-Components-of-an-Information-System.pptx
PPTX
L23 Summary and Conclusions
PPTX
THe computer technologies in modern life activities
PPTX
L02 Architecture
PDF
Is the Browser a Transitional Technology?
PPT
Training - Managing .NET/J2EE Projects
PPTX
Latest trends in information technology
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
PDF
L02 What is Software Architecture?
PDF
lec-01-WP.pdf
PPTX
Software and its Types All About Computer Software
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
PPTX
Cloud description
L01 Enterprise Application Architecture
Hönn2014 L01 Enterprise Applications
JEE Technology Concepts in Details for web development.pptx
Techniques for Developing Systems in IT Management System
L14 Summary and Conclusions
software for information systems for business and beyond.pptx
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Module-2-Analyzing-Components-of-an-Information-System.pptx
L23 Summary and Conclusions
THe computer technologies in modern life activities
L02 Architecture
Is the Browser a Transitional Technology?
Training - Managing .NET/J2EE Projects
Latest trends in information technology
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
L02 What is Software Architecture?
lec-01-WP.pdf
Software and its Types All About Computer Software
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Cloud description

More from Ólafur Andri Ragnarsson (20)

PDF
Nýsköpun - Leiðin til framfara
PDF
Nýjast tækni og framtíðin
PDF
New Technology Summer 2020 Course Introduction
PDF
L01 Introduction
PDF
L23 Robotics and Drones
PDF
L22 Augmented and Virtual Reality
PDF
L20 Personalised World
PDF
L19 Network Platforms
PDF
L18 Big Data and Analytics
PDF
L17 Algorithms and AI
PDF
L16 Internet of Things
PDF
L14 From the Internet to Blockchain
PDF
L14 The Mobile Revolution
PDF
New Technology 2019 L13 Rise of the Machine
PDF
L12 digital transformation
PDF
L10 The Innovator's Dilemma
PDF
L09 Disruptive Technology
PDF
L09 Technological Revolutions
PDF
L07 Becoming Invisible
PDF
L06 Diffusion of Innovation
Nýsköpun - Leiðin til framfara
Nýjast tækni og framtíðin
New Technology Summer 2020 Course Introduction
L01 Introduction
L23 Robotics and Drones
L22 Augmented and Virtual Reality
L20 Personalised World
L19 Network Platforms
L18 Big Data and Analytics
L17 Algorithms and AI
L16 Internet of Things
L14 From the Internet to Blockchain
L14 The Mobile Revolution
New Technology 2019 L13 Rise of the Machine
L12 digital transformation
L10 The Innovator's Dilemma
L09 Disruptive Technology
L09 Technological Revolutions
L07 Becoming Invisible
L06 Diffusion of Innovation

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PDF
System and Network Administraation Chapter 3
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
history of c programming in notes for students .pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
medical staffing services at VALiNTRY
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
ai tools demonstartion for schools and inter college
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
top salesforce developer skills in 2025.pdf
System and Network Administraation Chapter 3
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
How to Choose the Right IT Partner for Your Business in Malaysia
history of c programming in notes for students .pptx
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Transform Your Business with a Software ERP System
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
medical staffing services at VALiNTRY
Internet Downloader Manager (IDM) Crack 6.42 Build 41
ai tools demonstartion for schools and inter college
Navsoft: AI-Powered Business Solutions & Custom Software Development
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
Odoo Companies in India – Driving Business Transformation.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Softaken Excel to vCard Converter Software.pdf
Essential Infomation Tech presentation.pptx
Odoo POS Development Services by CandidRoot Solutions

L01 Introduction to Enterprise Software

  • 1. HÖNNUN OG SMÍÐI HUGBÚNAÐAR 2015 L01 INTRODUCTION TO ENTERPRISE SOFTWARE
  • 2. Agenda The Post-PC era Enterprise Application Building Blocks Evolution of Enterprise Software Building Blocks
  • 3. Reading Brown: 1-7 Hönnun og smíði hugbúnaðar 2015 - lýsing á námskeiðinu Digital Lifestyle Eric Schmidt talks the Future of Enterprise Software Mobile is Eating the World Enterprise Software Software as a Service
  • 5. Eric Schmidt Future of Enterprise Software Conversation with Salesforce CEO, Marc Benioff
  • 7. 1960 1970 1980 1990 2000 2010 Mainframes Mini  computers Personal  Computers Servers Clusters Cloud  –  utility  computing Laptops Music  player 2G  Cell  phones CONVERGE DIVERGE Smartphones Tablets Smart  TV Internet  of  things Smartwatch
  • 10. “[The Personal Computer] can become the 'Digital Hub' of our emerging digital lifestyle, adding tremendous value to our other devices.” - Steve Jobs, 2001 Keynote introducing the iPod THE DIGITAL DECADE
  • 11. MUSIC PICTURESVOICE  CALLS SMART  PHONES SHOWS MOVIES BOOKS/ MAGAZINES THE DIGITAL DECADE 2000 2010
  • 12. 2000 2010 iMac iPhone iMac G3   Mac OS 9.0.4
 500 MHz PowerPC G3 CPU, 128MB Memory
 Screen - 786K pixels
 Storage - 30GB Hard Drive iPhone 4  iOS 4.0
 1 Ghz ARM A4 CPU, 512MB Memory
 Screen - 614K pixels
 Storage - 32GB Flash Drive
  • 13. WHAT HAPPENED AT THE END OF THE DIGITAL DECADE?
  • 15. 1981-2011 The era of the PC
  • 17. 3 BILLION PEOPLE ARE ALREADY 
 CONNECTED TO THE INTERNET
  • 18. SOFTWARE AND DATA ARE STORED IN THE CLOUD 
 UNIVERSAL ACCESS
  • 19. OUR DEVICES ARE GATEWAYS TO THE CLOUD
  • 20. Source: Slides from Benedict Evans, A16Z, ITU Growth into the Bubble
  • 21. Source: Slides from Benedict Evans, A16Z, ITU Growth since the Bubble
  • 22. Source: Slides from Benedict Evans, A16Z, ITU Growth into the Future
  • 23. The Post-PC Era The Personal Computer era is over Rise of the network Smart phones rule the world APIs Enterprise systems are accessible by consumers, not operators Everything gets connected, IoT
  • 24. Challenges in Computing New Requirements Way more users (millions), more complicated software Uptime, security and reliability Scalability Competition drives need for productivity - time to market Leveraging investments – integration with existing systems
  • 25. 1980 1990 2000 Hardware Connecting hardware Network Software Connecting
 software Challenges in Computing Software and integration of components and devices are the challenges ahead Cloud computing and ubiquity Move to Service Oriented Architecture or micro services and APIs
  • 27. Which  of  the  following  statements  is  not  true? A) The  challenge  ahead  is  to  connect  software   B) The  PC  is  no  longer  a  device  for  development   C) Computing  has  moved  to  the  cloud   D) During  the  digital  decade,  the  PC  was  the  digital  hub  for  all  you  devices   QUIZ
  • 40. 40
  • 45. Enterprise Applications Software running in corporate data centers Characteristics: ✦ Involve data, some times huge amounts ✦ Concurrent data access, multiple users ✦ Lot of user interface screens ✦ Integration with other enterprise application ✦ Use of middleware software, such as databases, application servers, web servers ✦ Operated by specialists – system operators
  • 46. Examples B2C - Business to Consumer ✦ E-commerce web sites such as Amazon, eBay ✦ Commercial services like banking B2B – Business to Consumer ✦ Payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading ✦ Content such as: Stock quotes, sports results, email, blogs
  • 47. Software as a Service (SaaS) “On-demand” software ✦ Cloud computing IT infrastructure demands ✦ Communication: interacting with the software ✦ Scalability: dealing with fluctuation ✦ Dependability: available 24/7
  • 48. Software as a Service Examples E-mail services Project management Blog services
  • 49. What  is  not  necessarily  characteristic  of  enterprise  software? A) Has  many  concurrent  users  working  on  the  same  data   B) Integrates  with  other  IT  systems   C) Deploys  some  form  of  distribution  strategy   D) Is  operated  by  specialists  not  by  the  users   QUIZ
  • 51. Evolution 60 70 80 90 00 IBM   Mainframes   Limited   layering  or
 abstraction IBM,  DEC   Mini-­‐
 computers   Unix,  VAX   “Dumb”   terminals   Screens/DB PC,  Intel,   DOS,  Mac,  
 Unix,  
 Windows
 Client/Server   DB Windows   Internet   HTTP   Web  
 Browsers   Web
 Applications   DB Windows,
 Linux   MacOS   Browsers,   Services   Domain
 Applications   DB
  • 52. 60s 70s 80s 90s 00s IBM   nframes   mited   ering  or
 traction IBM,  DEC   Mini-­‐
 computers   Unix,  VAX   “Dumb”   terminals   Screens/Files PC,  Intel,   DOS,  Mac,  
 Unix,  
 Windows
 Client/Server   RMDB Windows   Internet   HTTP   Web  
 Browsers   Web
 Applications   RMDB Windows,
 Linux   MacOS   Browsers,   Services   Domain
 Applications   RMDB iOS   Android   HTML5   Browsers   Apps   API   Cloud   NoSQL 10s Evolution
  • 53. Server Database Network protocolWindows Client Windows Client Two layer system Thick native client running on a PC, contains all the presentation and domain logic Connects to the server for data Client-Server Network protocol
  • 54. Server Database Network protocolWindows Client Windows Client Limited reusability Requiers installation and configuration Versioning is hard Dependant on specific OS Not accessible from outside Client-Server Network protocol
  • 55. Network protocolPresentation Layer Presentation Layer Classical three layers Presentation Layer for the user interface, view and input Domain Layer for the business logic Data Source Layer for the data access Move to Three Layers Network protocol Domain Layer Data Source Layer Database
  • 56. HTML/HTTPWeb Browser Web 
 Browser The Web added new challenges The browser accesses strings of tags (HTML) Move the logic from client to a web layer Enter the Web Layer HTML/HTTP Domain Layer Data Source Layer Database Web Layer Presentation Layer
  • 57. HTML/HTTPWeb Browser Web 
 Browser Domain components are deployed on Application Servers - Distributed multi-tiered applications - Examples: Spring, EJB containers Application Servers HTML/HTTP Domain Layer Data Source Layer Database Web Layer Web Server Application Server
  • 58. Web Server Domain Layer SOAP HTTP SOAP Web Browser Native App SOAP Web Browser HTTP Server SOAP Client Built software into independent services Use APIs such as SOAP to expose functionality Service Oriented Architecture (SOA)
  • 59. Web Browser Native App CMS Web Server Web Server HTML REST REST Microservices Built software into (smaller) independent services Use RESTful APIs with Json Content Management System for all operator editable content
  • 60. Client Types Native Applications Apps Usually use some OS GUI and APIs Windows, Linux, MacOS, iOS, Andriod Communication can be anything Use the power of the device Embedded Run inside Web Browsers Flash, Java Applets Communication with XML using HTTP Standardised, provide rich functionality in limited browsers Rich Internet Application (RIA) JavaScript calls REST/ SOAP services for data HTML5 with XML/Json using Ajax/jQuery Standardised, provide rich functionality using HTML5 HTML Presentation in Browsers HTML Presentation in Browsers All functionality is server side Simple HTML
  • 61. Tiers vs. Layers Tier implies physical layer Example: Client-server is two-tier system: client on one machine, server on another Layers do not need to run on separate machines Layers can be on the same machine Example: Web system with Web Layer, Domain Layer and Data Source Layer on the same machine, then the database on a separate machine
  • 62. Classic N-tier Web Architecture HTTP Service HTTP Service HTTP Service HTTP Service Services Services Database Legacy Server Scalability comes by adding more servers
  • 63. Which of the following statements is not true? A) Versioning is only a challenge with client-service model B) Layers need not be on a separate machines C) Web servers can be used as application servers D) Scalability is achieved by duplicating the system QUIZ
  • 65. Building Enterprise Applications Building computer systems is hard As the complexity of the system gets greater, the
 task of building the software gets exponentially harder
  • 66. Building Enterprise Applications Building computer systems is hard Software Architecture Object Oriented 
 Programming Frameworks Middleware Design Patterns
  • 67. Object Oriented Programming OO is key to development of systems • Design for reusability, flexibility and performance One of the biggest hurdles for developers • Each component should be simple with simple task • Involves understanding of interaction of parts “OO design is more important than specific technologies, such as J2EE. 
 We should try to avoid letting our technology choices, such as J2EE, constrain our ability to use true OO design” – Rod Johnson “If the design is good, there is no code” – Jónas Þór, Senior Developer, Betware
  • 68. Software Architecture Shared understanding of system’s design by the expert developers on a project - vision and structure • Highest-level breakdown of a system into its parts • Decisions that are hard to change • Architecture influences design of 
 components, technology, performance 
 and middleware • There are always multiple of options
  • 69. Object Oriented Programming Design using known ideas • Design patterns are standard solutions to common problems in software design • Systematic approach for problems that reoccur in software development • Patterns have name and definitions - not language dependant History Landmark book from 1995: Design Patterns: Elements of Reusable Object-Oriented Software Gang of Four (GoF)
  • 70. Middleware Enterprise system are built on middleware • Can cover a broad spectrum of software and generally sits between an application and an operating system • For example, databases, application servers, web servers, messaging systems, transaction monitors • “The plumbing” – the infrastructure Horizontal market • Solves common problems – not specific business requirements • Low-level system
  • 71. Frameworks Frameworks define the support structure for how to organise and build systems • Can improve productivity • We can use existing frameworks or build our own Frameworks implement common problems • Developers extend and add their business requirements Framework design • Use inheritance, inversion of control, interfaces and helper classes • Implement design patterns
  • 72. Which of the following statement is not true? A) Design patterns are solutions to common problems B) Object oriented programing is good for general problems C) Frameworks are used to increase productivity D) Middleware can solve business related problems QUIZ
  • 73. THINK ABOUT THIS Advice is a dangerous gift There are no right answers “Use the advice to prod your thinking, but don’t use it as a replacement for your thinking” – Martin Fowler