SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances (20)

Oracle Forms : Coding ..
Oracle Forms : Coding ..Oracle Forms : Coding ..
Oracle Forms : Coding ..
 
Web api
Web apiWeb api
Web api
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Php sessions & cookies
Php sessions & cookiesPhp sessions & cookies
Php sessions & cookies
 
Visual programming lecture
Visual programming lecture Visual programming lecture
Visual programming lecture
 
Network programming
Network programmingNetwork programming
Network programming
 
LINQ in C#
LINQ in C#LINQ in C#
LINQ in C#
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Javascript
JavascriptJavascript
Javascript
 
DOT Net overview
DOT Net overviewDOT Net overview
DOT Net overview
 
What is Visual Studio Code?
What is Visual Studio Code?What is Visual Studio Code?
What is Visual Studio Code?
 
Lecture 1 introduction to vb.net
Lecture 1   introduction to vb.netLecture 1   introduction to vb.net
Lecture 1 introduction to vb.net
 
Error handling and debugging in vb
Error handling and debugging in vbError handling and debugging in vb
Error handling and debugging in vb
 
Js ppt
Js pptJs ppt
Js ppt
 
Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To Dotnet
 
Visual Studio
Visual StudioVisual Studio
Visual Studio
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
React Development with the MERN Stack
React Development with the MERN StackReact Development with the MERN Stack
React Development with the MERN Stack
 

En vedette

Talygen Business Management Software
Talygen Business Management SoftwareTalygen Business Management Software
Talygen Business Management SoftwareTalygen Inc.
 
Design for enterprise software by Benjamin Humphrey
Design for enterprise software by Benjamin HumphreyDesign for enterprise software by Benjamin Humphrey
Design for enterprise software by Benjamin HumphreyUXMalaysia
 
Human Resource Management System(HRMS)
Human Resource Management System(HRMS)Human Resource Management System(HRMS)
Human Resource Management System(HRMS)Ariful Islam
 
Benefits of Inventory Management system Software
Benefits of Inventory Management system SoftwareBenefits of Inventory Management system Software
Benefits of Inventory Management system SoftwareInsight Stock
 
Archiving qualitative data for policy research meeting challenges and establ...
Archiving qualitative data for policy research  meeting challenges and establ...Archiving qualitative data for policy research  meeting challenges and establ...
Archiving qualitative data for policy research meeting challenges and establ...Merlien Institute
 
Enterprise Software Roadmap for Microsoft Products
Enterprise Software Roadmap for Microsoft ProductsEnterprise Software Roadmap for Microsoft Products
Enterprise Software Roadmap for Microsoft ProductsJonathan Daniels
 
10 signs you need business management software.
10 signs you need business management software.10 signs you need business management software.
10 signs you need business management software.Domo
 
Class2 Business Software
Class2 Business SoftwareClass2 Business Software
Class2 Business SoftwareRMS
 
Hospital Inventory Management System
Hospital Inventory Management SystemHospital Inventory Management System
Hospital Inventory Management SystemGoods Order Inventory
 
case study on ERP success(cadbury) and failure(hershey's)
case study on ERP success(cadbury) and failure(hershey's)case study on ERP success(cadbury) and failure(hershey's)
case study on ERP success(cadbury) and failure(hershey's)Chitrangada Roy
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

En vedette (16)

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

Similaire à L01 Introduction to Enterprise Software

IS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxIS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxAbbadabbajabba1
 
20080117 Iasa Software + Services
20080117   Iasa   Software + Services20080117   Iasa   Software + Services
20080117 Iasa Software + ServicesDavid Chou
 
Making The Desktop Dynamic
Making The Desktop DynamicMaking The Desktop Dynamic
Making The Desktop DynamicJeff Fisher
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web ApplicationsClint Edmonson
 
Desktop is going to be v2
Desktop is going to be  v2Desktop is going to be  v2
Desktop is going to be v2Pini Cohen
 
Foundry Management System Desktop Application
Foundry Management System Desktop Application Foundry Management System Desktop Application
Foundry Management System Desktop Application Dharmendra Sid
 
WS-* Specifications Update 2007
WS-* Specifications Update 2007WS-* Specifications Update 2007
WS-* Specifications Update 2007Jorgen Thelin
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsShashank Banerjea
 
Packaging Machine Automation Trends, Solutions and Operations
Packaging Machine Automation Trends, Solutions and OperationsPackaging Machine Automation Trends, Solutions and Operations
Packaging Machine Automation Trends, Solutions and OperationsAVEVA
 
TechNet Event: August 2011 Cloud Essentials
TechNet Event: August 2011 Cloud EssentialsTechNet Event: August 2011 Cloud Essentials
TechNet Event: August 2011 Cloud EssentialsHarold Wong
 
Living in the Web is Easy! Making the Move from Rich Clients to Browsers
Living in the Web is Easy! Making the Move from Rich Clients to BrowsersLiving in the Web is Easy! Making the Move from Rich Clients to Browsers
Living in the Web is Easy! Making the Move from Rich Clients to BrowsersRahul A. Garg
 
WebFest 2011 Hosting Applications CR by David Tang
WebFest 2011 Hosting Applications CR by David TangWebFest 2011 Hosting Applications CR by David Tang
WebFest 2011 Hosting Applications CR by David TangSpiffy
 
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...mfrancis
 
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...constantadevelopers
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsMicrosoft ArcReady
 
Microsoft .NET and the System i
Microsoft .NET and the System iMicrosoft .NET and the System i
Microsoft .NET and the System iLANSA
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSDevOps.com
 

Similaire à L01 Introduction to Enterprise Software (20)

L01 Enterprise Application Architecture
L01 Enterprise Application ArchitectureL01 Enterprise Application Architecture
L01 Enterprise Application Architecture
 
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise ApplicationsHönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
 
IS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptxIS Project_Ch5_IT_Infrastructure.pptx
IS Project_Ch5_IT_Infrastructure.pptx
 
20080117 Iasa Software + Services
20080117   Iasa   Software + Services20080117   Iasa   Software + Services
20080117 Iasa Software + Services
 
Making The Desktop Dynamic
Making The Desktop DynamicMaking The Desktop Dynamic
Making The Desktop Dynamic
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web Applications
 
Desktop is going to be v2
Desktop is going to be  v2Desktop is going to be  v2
Desktop is going to be v2
 
Foundry Management System Desktop Application
Foundry Management System Desktop Application Foundry Management System Desktop Application
Foundry Management System Desktop Application
 
WS-* Specifications Update 2007
WS-* Specifications Update 2007WS-* Specifications Update 2007
WS-* Specifications Update 2007
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
 
Packaging Machine Automation Trends, Solutions and Operations
Packaging Machine Automation Trends, Solutions and OperationsPackaging Machine Automation Trends, Solutions and Operations
Packaging Machine Automation Trends, Solutions and Operations
 
TechNet Event: August 2011 Cloud Essentials
TechNet Event: August 2011 Cloud EssentialsTechNet Event: August 2011 Cloud Essentials
TechNet Event: August 2011 Cloud Essentials
 
Living in the Web is Easy! Making the Move from Rich Clients to Browsers
Living in the Web is Easy! Making the Move from Rich Clients to BrowsersLiving in the Web is Easy! Making the Move from Rich Clients to Browsers
Living in the Web is Easy! Making the Move from Rich Clients to Browsers
 
S+S Overview
S+S OverviewS+S Overview
S+S Overview
 
WebFest 2011 Hosting Applications CR by David Tang
WebFest 2011 Hosting Applications CR by David TangWebFest 2011 Hosting Applications CR by David Tang
WebFest 2011 Hosting Applications CR by David Tang
 
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...
Keynote - Integrating the OSGi Service-Oriented Architecture into the Enterpr...
 
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...
Florin Dobre (Plant an App) - Building the future: low-code/no-code tools for...
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
 
Microsoft .NET and the System i
Microsoft .NET and the System iMicrosoft .NET and the System i
Microsoft .NET and the System i
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 

Plus de Ólafur Andri Ragnarsson

New Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionNew Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionÓlafur Andri Ragnarsson
 
New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine Ólafur Andri Ragnarsson
 

Plus de Ólafur Andri Ragnarsson (20)

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

Dernier

Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tipsmichealwillson701
 
User Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeUser Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeKaylee Miller
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energyjeyasrig
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...jackiepotts6
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
Einstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfEinstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfCloudMetic
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevpmgdscunsri
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleShane Coughlan
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridMathew Thomas
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityRandy Shoup
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial FrontiersRaphaël Semeteys
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easymichealwillson701
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements SolutionsIQBG inc
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsUniversity of Antwerp
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckNaval Singh
 

Dernier (20)

Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tips
 
User Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeUser Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller Resume
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energy
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
Einstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfEinstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdf
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scale
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM Grid
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easy
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements Solutions
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deck
 

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