hönn2014 l01 enterprise applications

73
Lecture 01 Enterprise Applications

Upload: olafur-andri-ragnarsson

Post on 30-Oct-2014

123 views

Category:

Software


3 download

DESCRIPTION

Í þessum fyrsta fyrirlestri fjöllum við um Enterprise forrit, hvað einkennir þau og hvaða áskoranir við stöndum frammi fyrir. Byrjum á því að skoða forritunarlausnir í samhengi við þróun undanfarinna ára. Menn tala um að nú séu "post PC" tímabil þar sem einkatölvan eins og við þekkjum hana er bara eitt af mörgum tækjum sem við notum. Forritun okkar geta verið snjallsíma öpp eða PC forrit og gögnin okkar eru í tölvuskýjunum. Við skilgreinum hvað er átt við með Enterprise forritun og tökum fjölmörg dæmi. Skilgreinum B2B, B2C og tegundir af lausnum. Þá lítum við á þróun enterprise lausna frá Client-Server til gagnavera sem hýsa microservice lausnir. Slæmu fréttirnar eru að það er mjög erfitt að smíða svona lausnir, en góðu fréttirnar eru að við höfum fjölmörg tæki og tól til að hjálpa okkur.

TRANSCRIPT

Page 1: Hönn2014 L01 Enterprise Applications

Lecture 01Enterprise Applications

Page 2: Hönn2014 L01 Enterprise Applications

Agenda The Post-PC era Enterprise Application Building Blocks Evolution of Enterprise Software

Page 3: Hönn2014 L01 Enterprise Applications

Reading Brown 1 Digital Lifestyle Enterprise Software

Page 4: Hönn2014 L01 Enterprise Applications

The Post-PC era

Page 5: Hönn2014 L01 Enterprise Applications

1960 1970 1980 1990 2000 2010

Mainframes

Mini computers

Personal Computers

Servers

Clusters

Cloud – utility computing

Laptops

Music player2G Cell phones

CONVERGE

DIVERGESmartphones

Tablets

Smart TV

Internet of things

Smartwatch

Page 6: Hönn2014 L01 Enterprise Applications

2000 2010

THE DIGITALDECADE

Page 7: Hönn2014 L01 Enterprise Applications
Page 8: Hönn2014 L01 Enterprise Applications

“[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

Page 9: Hönn2014 L01 Enterprise Applications

2000 2010

THE DIGITAL DECADE

MUSIC

PICTURES

VOICESMARTPHONES

TV SHOWS

MOVIES

BOOKS

Page 10: Hönn2014 L01 Enterprise Applications

WHAT HAPPENEDAT THE END OF THEDIGITAL DECADE?

Page 11: Hönn2014 L01 Enterprise Applications
Page 12: Hönn2014 L01 Enterprise Applications

1981-2011 The era of the PC

Page 13: Hönn2014 L01 Enterprise Applications
Page 14: Hönn2014 L01 Enterprise Applications

THE PC IS JUST ADEVICE

Page 15: Hönn2014 L01 Enterprise Applications

2000 2010

iMac iPhoneMac OS 9.0.4500 MHz PowerPC G3 CPU, 128MB MemoryScreen - 786K pixelsStorage - 30GB Hard Drive

iOS 4.01 Ghz ARM A4 CPU, 512MB MemoryScreen - 614K pixelsStorage - 32GB Flash Drive

Source: Ars Technical Images: Apple

Page 16: Hönn2014 L01 Enterprise Applications

Digital LifestyleThe “mobile web” is just the web – there is only one web

d ig i ta l on l ine wor ld

Page 17: Hönn2014 L01 Enterprise Applications

Digital Online World

Page 18: Hönn2014 L01 Enterprise Applications

WorkMore

informationFocused

Digital Online World

BrowsingConsuming

content

CheckingMobileNow

ConsumingVideo

Information

Page 19: Hönn2014 L01 Enterprise Applications

The Post-PC Era The Personal Computer era is over– Rise of the network – APIs– Enterprise systems are accessible

by consumers– New devices, mobile phone,

ITV, game machines, MP3 players,...Source: (cc) 1998-2008Digibarn Computer Museum,

Source: Picture from Convergence Transforms Digital Home: Techno-Economic Impact

Page 20: Hönn2014 L01 Enterprise Applications

The Post-PC Era New Requirements– More users, more complicated software– Uptime, security and reliability– Scalability– Competition drives need for productivity– Leveraging investments – integration with

existing systems

Page 21: Hönn2014 L01 Enterprise Applications

Challenges in Computing

Software and integration of components and devices are the challenges ahead

Cloud computing and ubiquity Move to Service Oriented Architecture and APIs

1980 1990 2000

HardwareConnecting hardware

NetworkSoftware

Connectingsoftware

Page 22: Hönn2014 L01 Enterprise Applications

New Approch to SoftwareArchitecture

Page 23: Hönn2014 L01 Enterprise Applications

Which of the following statements is not true?

A) The challenge ahead is to connect softwareB) The PC is no longer a device for developmentC) Computing has moved to the cloudD) During the digital decade, the PC was the digital hub for all you devices

QUIZ

Page 24: Hönn2014 L01 Enterprise Applications

Which of the following statements is not true?

A) The challenge ahead is to connect softwareB) The PC is no longer a device for developmentC) Computing has moved to the cloudD) During the digital decade, the PC was the digital hub for all you devices

QUIZ

Page 25: Hönn2014 L01 Enterprise Applications

Enterprise Application

Page 26: Hönn2014 L01 Enterprise Applications
Page 27: Hönn2014 L01 Enterprise Applications
Page 28: Hönn2014 L01 Enterprise Applications
Page 29: Hönn2014 L01 Enterprise Applications
Page 30: Hönn2014 L01 Enterprise Applications
Page 31: Hönn2014 L01 Enterprise Applications
Page 32: Hönn2014 L01 Enterprise Applications
Page 33: Hönn2014 L01 Enterprise Applications
Page 34: Hönn2014 L01 Enterprise Applications
Page 35: Hönn2014 L01 Enterprise Applications
Page 36: Hönn2014 L01 Enterprise Applications
Page 37: Hönn2014 L01 Enterprise Applications
Page 38: Hönn2014 L01 Enterprise Applications
Page 39: Hönn2014 L01 Enterprise Applications
Page 40: Hönn2014 L01 Enterprise Applications
Page 41: Hönn2014 L01 Enterprise Applications

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

Page 42: Hönn2014 L01 Enterprise Applications

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– Stock quotes, sports results, email, blogs

Page 43: Hönn2014 L01 Enterprise Applications

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

Page 44: Hönn2014 L01 Enterprise Applications

Software as a Service Examples E-mail services Project management Blog services

Page 45: Hönn2014 L01 Enterprise Applications

What is not necessarily characteristic of enterprise software?

A) Has many concurrent users working on the same dataB) Integrates with other IT systemsC) Deploys some form of distribution strategyD) Is operated by specialists not by the users

QUIZ

Page 46: Hönn2014 L01 Enterprise Applications

What is not necessarily characteristic of enterprise software?

A) Has many concurrent users working on the same dataB) Integrates with other IT systemsC) Deploys some form of distribution strategyD) Is operated by specialists not by the users

QUIZ

Page 47: Hönn2014 L01 Enterprise Applications

Evolution of Enterprise Software

Page 48: Hönn2014 L01 Enterprise Applications

Evolution60 70 80 90 00

IBMMainframes

Limitedlayering orabstraction

IBM, DECMini-

computersUnix, VAX

“Dumb”terminals

Screens/DB

PC, Intel,DOS, Mac,

Unix, Windows

Client/ServerDB

WindowsInternet

HTTP

Web Browsers

WebApplications

DB

Windows,Linux

MacOS

Browsers,ServicesDomain

ApplicationsDB

Page 49: Hönn2014 L01 Enterprise Applications

Evolution60 70 80 90 00

IBMMainframes

Limitedlayering orabstraction

IBM, DECMini-

computersUnix, VAX

“Dumb”terminals

Screens/DB

PC, Intel,DOS, Mac,

Unix, Windows

Client/ServerDB

WindowsInternet

HTTP

Web Browsers

WebApplications

DB

Windows,Linux

MacOS

Browsers,ServicesDomain

ApplicationsDB

iOSAndroidHTML5

BrowsersAppsAPI

CloudNoSQL

10

Page 50: Hönn2014 L01 Enterprise Applications

Client-Server Two-layer systems– Thick client on PCs handle user interface and

connect to servers for data

Page 51: Hönn2014 L01 Enterprise Applications

Client-Server The client handles all computation –

domain logic (business logic)– Limited reusability– Versioning is a challenge

Page 52: Hönn2014 L01 Enterprise Applications

Move to Three Tiers Three Layers– Presentation Layer for the User Interface– Domain Layer for the domain logic– Data Source Layer for the data access

Page 53: Hönn2014 L01 Enterprise Applications

Enter the Web Layer The Web added new challenges

– The browser accesses strings of tags (HTML)– Move the logic from client to a web layer

– Web layer adds connectivity by HTTP protocols

Page 54: Hönn2014 L01 Enterprise Applications

Application Servers Domain Components are deployed on

Application Servers– Distributed Multi-tiered Applications– Example:

• Web Servers, Spring, EJB containers

Page 55: Hönn2014 L01 Enterprise Applications

Service Oriented Architecture Built software into independent services Use APIs such as SOAP to expose

functionalityWebBrowser

NativeApp

WebServer

SOAP

DomainLayer

HTTPSERVER

WebBrowser

SOAP

HTML SOAPClient

SOAP

Page 56: Hönn2014 L01 Enterprise Applications

Microservices Built software into (smaller) independent

services Use RESTful APIs with Json

WebBrowser

NativeApp

WebServer Domain

LayerREST

CMSRESTHTML

Page 57: Hönn2014 L01 Enterprise Applications

Client Types Native Applications – Apps – Usually use some OS GUI and APIs– Windows, Linux, MacOS, iOS, Andriod– Communication can be anything

Embedded– Run inside Web Browsers– Flash, Java Applets– Communication with XML using HTTP

Page 58: Hönn2014 L01 Enterprise Applications

Client Types Rich Internet Application (RIA)– JavaScript calls REST/SOAP services for data– HTML with XML/Json using Ajax/jQuery

HTML Presentation in Browsers– All functionality is server side– Simple HTML

Page 59: Hönn2014 L01 Enterprise Applications

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

Page 60: Hönn2014 L01 Enterprise Applications

N-tier Web App Architecture Classic architecture

Page 61: Hönn2014 L01 Enterprise Applications

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

Page 62: Hönn2014 L01 Enterprise Applications

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

Page 63: Hönn2014 L01 Enterprise Applications

Building Blocks

Page 64: Hönn2014 L01 Enterprise Applications

Building Enterprise Applications Building computer systems is hard– As the complexity of the system gets greater,

thetask of building the software gets exponentially harder

Page 65: Hönn2014 L01 Enterprise Applications

Building Enterprise Applications Building computer systems is hard

DesignPattern

Middleware

FrameworksOOProgramming

SoftwareArchitecture

Page 66: Hönn2014 L01 Enterprise Applications

Software Architecture Shared understanding of system’s design

by the expert developers on a project– 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 options

Page 67: Hönn2014 L01 Enterprise Applications

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 Betware developer

Page 68: Hönn2014 L01 Enterprise Applications

Design Patterns 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)

Page 69: Hönn2014 L01 Enterprise Applications

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

Page 70: Hönn2014 L01 Enterprise Applications

Frameworks Frameworks define the support structure for how

to organize 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

Page 71: Hönn2014 L01 Enterprise Applications

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

Page 72: Hönn2014 L01 Enterprise Applications

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

Page 73: Hönn2014 L01 Enterprise Applications

Next Dæmatími: Hlutbundin forritun með Java– Uppsetning á Java umhverfinu– IntelliJ– Java æfingar

Fyrirlestur föstudag: L02 Architecture