l01 introduction to enterprise software
TRANSCRIPT
AgendaThe Post-PC eraEnterprise ApplicationBuilding BlocksEvolution of Enterprise SoftwareBuilding Blocks
Reading
Brown: 1-7Hönnun og smíði hugbúnaðar 2015 - lýsing á námskeiðinuDigital LifestyleEric Schmidt talks the Future of Enterprise SoftwareMobile is Eating the WorldEnterprise SoftwareSoftware as a Service
1960 1970 1980 1990 2000 2010
Mainframes
Mini computersPersonal Computers
ServersClusters
Cloud – utility computing
Laptops
Music player2G Cell phones
CONVERGE
DIVERGESmartphones
Tablets
Smart TV
Internet of things
Smartwatch
“[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 DIGITALDECADE
2000 2010
iMac iPhoneiMac G3 Mac OS 9.0.4 500 MHz PowerPC G3 CPU, 128MB MemoryScreen - 786K pixels Storage - 30GB Hard Drive
iPhone 4 iOS 4.0 1 Ghz ARM A4 CPU, 512MB MemoryScreen - 614K pixels Storage - 32GB Flash Drive
The Post-PC EraThe Personal Computer era is overRise of the networkSmart phones rule the world APIsEnterprise systems are accessible by consumers, not operators Everything gets connected, IoT
Challenges in ComputingNew RequirementsWay more users (millions), more complicated softwareUptime, security and reliabilityScalabilityCompetition drives need for productivity - time to marketLeveraging investments – integration with existing systems
1980 1990 2000
Hardware
Connecting hardware Network Software
Connectingsoftware
Challenges in Computing
Software and integration of components and devices are the challenges aheadCloud computing and ubiquityMove to Service Oriented Architecture or micro services and APIs
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
Software running in corporate data centersCharacteristics:✦ 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
ExamplesB2C - 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
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
Evolution60 70 80 90 00IBM
Mainframes
Limited layering orabstraction
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 00sIBM
Mainframes
Limited layering orabstraction
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 protocolWindowsClient
WindowsClient
Two layer systemThick native client running on a PC, contains all the presentation and domain logicConnects to the server for data
Client-Server
Network protocol
Server Database
Network protocolWindowsClient
WindowsClient
Limited reusabilityRequiers installation and configurationVersioning is hardDependant on specific OSNot accessible from outside
Client-Server
Network protocol
Network protocolPresentationLayer
PresentationLayer
Classical three layersPresentation Layer for the user interface, view and inputDomain Layer for the business logicData Source Layer for the data access
Move to Three Layers
Network protocolDomainLayer
DataSourceLayer
Database
HTML/HTTPWebBrowser
Web Browser
The Web added new challengesThe browser accesses strings of tags (HTML)Move the logic from client to a web layer
Enter the Web Layer
HTML/HTTPDomainLayer
DataSourceLayer
DatabaseWebLayer
Presentation Layer
HTML/HTTPWebBrowser
Web Browser
Domain components are deployed on Application Servers- Distributed multi-tiered applications- Examples: Spring, EJB containers
Application Servers
HTML/HTTPDomainLayer
DataSourceLayer
DatabaseWebLayer
Web Server Application Server
WebServer
DomainLayer
SOAP
HTTP SOAP
Web Browser
Native App
SOAP
Web Browser HTTPServer
SOAPClient
Built software into independent servicesUse APIs such as SOAP to expose functionality
Service Oriented Architecture (SOA)
Web Browser
Native App
CMS
WebServer
WebServer
HTML REST
REST
MicroservicesBuilt software into (smaller) independent servicesUse RESTful APIs with JsonContent Management System for all operator editable content
Client TypesNative ApplicationsApps
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. LayersTier 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 machinesLayers 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
LegacyServer
Scalability comes by adding more servers
Which of the following statements is not true?
A) Versioning is only a challenge with client-service modelB) Layers need not be on a separate machinesC) Web servers can be used as application serversD) Scalability is achieved by duplicating the system
QUIZ
Building Enterprise ApplicationsBuilding computer systems is hard
As the complexity of the system gets greater, the task of building the software gets exponentially harder
Building Enterprise ApplicationsBuilding 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 performanceOne 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
HistoryLandmark 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 infrastructureHorizontal 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 ownFrameworks implement common problems• Developers extend and add their business requirementsFramework 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 problemsB) Object oriented programing is good for general problemsC) Frameworks are used to increase productivityD) Middleware can solve business related problems
QUIZ