0
Lecture 01
Enterprise Applications
Agenda
 The Post-PC era
 Enterprise Application
 Building Blocks
 Evolution of Enterprise Software
Reading
 Brown 1
 Digital Lifestyle
 Enterprise Software
The Post-PC era
1960 1970 1980 1990 2000 2010
Mainframes
Mini computers
Personal Computers
Servers
Clusters
Cloud – utility computing
Lapt...
2000 2010
THE DIGITAL
DECADE
“[The Personal Computer] can
become the 'Digital Hub'
of our emerging digital lifestyle,
adding tremendous value
to our ot...
2000 2010
THE DIGITAL DECADE
MUSIC
PICTURE
S
VOICE
SMARTPHONES
TV SHOWS
MOVIES
BOOKS
WHAT HAPPENED
AT THE END OF THE
DIGITAL DECADE?
1981-2011 The era of the PC
THE PC IS JUST A
DEVICE
2000 2010
iMac iPhone
Mac OS 9.0.4
500 MHz PowerPC G3 CPU, 128MB Memory
Screen - 786K pixels
Storage - 30GB Hard Drive
iOS...
Digital Lifestyle
The “mobile web” is just the
web – there is only one web
digital online world
Digital Online World
Work
More
information
Focused
Digital Online World
Browsing
Consuming
content
Checking
Mobile
Now
Consuming
Video
Informat...
The Post-PC Era
 The Personal Computer era is over
– Rise of the network
– APIs
– Enterprise systems are accessible
by co...
The Post-PC Era
 New Requirements
– More users, more complicated software
– Uptime, security and reliability
– Scalabilit...
Challenges in Computing
 Software and integration of components and
devices are the challenges ahead
 Cloud computing an...
New Approch 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 devi...
Which of the following statements is not true?
A) The challenge ahead is to connect software
B) The PC is no longer a devi...
Enterprise Application
Enterprise Applications
 Software running in corporate data centers
 Characteristics
– Involve data, some times huge amo...
Examples
 B2C - Business to Consumer
– E-commerce web sites such as Amazon, eBay
– Commercial services like banking
 B2B...
Software as a Service (SaaS)
 “On-demand” software
– Cloud computing
 IT infrastructure demands
– Communication: interac...
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) In...
What is not necessarily characteristic of enterprise software?
A) Has many concurrent users working on the same data
B) In...
Evolution of Enterprise Software
Evolution
60 70 80 90 00
IBM
Mainframes
Limited
layering or
abstraction
IBM, DEC
Mini-
computers
Unix, VAX
“Dumb”
terminal...
Evolution
60 70 80 90 00
IBM
nframes
mited
ering or
traction
IBM, DEC
Mini-
computers
Unix, VAX
“Dumb”
terminals
Screens/D...
Client-Server
 Two-layer systems
– Thick client on PCs handle user interface and connect
to servers for data
Client-Server
 The client handles all computation – domain
logic (business logic)
– Limited reusability
– Versioning is a...
Move to Three Tiers
 Three Layers
– Presentation Layer for the User Interface
– Domain Layer for the domain logic
– Data ...
Enter the Web Layer
 The Web added new challenges
– The browser accesses strings of tags (HTML)
– Move the logic from cli...
Application Servers
 Domain Components are deployed on
Application Servers
– Distributed Multi-tiered Applications
– Exam...
Service Oriented Architecture
 Built software into independent services
 Use APIs such as SOAP to expose functionality
W...
Microservices
 Built software into (smaller) independent
services
 Use RESTful APIs with Json
Web
Browser
Native
App
Web...
Client Types
 Native Applications – Apps
– Usually use some OS GUI and APIs
– Windows, Linux, MacOS, iOS, Andriod
– Commu...
Client Types
 Rich Internet Application (RIA)
– JavaScript calls REST/SOAP services for data
– HTML with XML/Json using A...
Tiers vs. Layers
 Tier implies physical layer
– Example:
• Client-server is two-tier system: client on one machine,
serve...
N-tier Web App Architecture
 Classic architecture
Which of the following statements is not true?
A) Versioning is only a challenge with client-service model
B) Layers need ...
Which of the following statements is not true?
A) Versioning is only a challenge with client-service model
B) Layers need ...
Building Blocks
Building Enterprise Applications
 Building computer systems is hard
– As the complexity of the system gets greater, the
t...
Building Enterprise Applications
 Building computer systems is hard
Design
Pattern
Middleware
Frameworks
OO
Programming
S...
Software Architecture
 Shared understanding of system’s design by the
expert developers on a project
– Highest-level brea...
Object Oriented Programming
 OO is key to development of systems
– Design for reusability, flexibility and performance
 ...
Design Patterns
 Design using known ideas
– Design patterns are standard solutions to common
problems in software design
...
Middleware
 Enterprise system are built on middleware
– Can cover a broad spectrum of software and generally sits
between...
Frameworks
 Frameworks define the support structure for how to
organize and build systems
– Can improve productivity
– We...
Which of the following statement is not true?
A) Design patterns are solutions to common problems
B) Object oriented progr...
Which of the following statement is not true?
A) Design patterns are solutions to common problems
B) Object oriented progr...
Next
 Dæmatími: Hlutbundin forritun með Java
– Uppsetning á Java umhverfinu
– IntelliJ
– Java æfingar
 Fyrirlestur föstu...
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Upcoming SlideShare
Loading in...5
×

Hönn2014 L01 Enterprise Applications

263

Published on

Í þ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.

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
263
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 19
  • 21
  • 65
  • 68
  • 69
  • 70
  • Transcript of "Hönn2014 L01 Enterprise Applications"

    1. 1. Lecture 01 Enterprise Applications
    2. 2. Agenda  The Post-PC era  Enterprise Application  Building Blocks  Evolution of Enterprise Software
    3. 3. Reading  Brown 1  Digital Lifestyle  Enterprise Software
    4. 4. The Post-PC era
    5. 5. 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
    6. 6. 2000 2010 THE DIGITAL DECADE
    7. 7. “[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
    8. 8. 2000 2010 THE DIGITAL DECADE MUSIC PICTURE S VOICE SMARTPHONES TV SHOWS MOVIES BOOKS
    9. 9. WHAT HAPPENED AT THE END OF THE DIGITAL DECADE?
    10. 10. 1981-2011 The era of the PC
    11. 11. THE PC IS JUST A DEVICE
    12. 12. 2000 2010 iMac iPhone Mac OS 9.0.4 500 MHz PowerPC G3 CPU, 128MB Memory Screen - 786K pixels Storage - 30GB Hard Drive iOS 4.0 1 Ghz ARM A4 CPU, 512MB Memory Screen - 614K pixels Storage - 32GB Flash Drive Source: Ars Technical Images: Apple
    13. 13. Digital Lifestyle The “mobile web” is just the web – there is only one web digital online world
    14. 14. Digital Online World
    15. 15. Work More information Focused Digital Online World Browsing Consuming content Checking Mobile Now Consuming Video Information
    16. 16. 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-2008 Digibarn Computer Museum, Source: Picture from Convergence Transforms Digital Home: Techno-Economic Impact
    17. 17. 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
    18. 18. 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 Hardware Connecting hardware Network Software Connecting software
    19. 19. New Approch to Software Architecture
    20. 20. 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
    21. 21. 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 ✔
    22. 22. Enterprise Application
    23. 23. 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
    24. 24. 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
    25. 25. 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
    26. 26. Software as a Service Examples  E-mail services  Project management  Blog services
    27. 27. 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
    28. 28. 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 ✔
    29. 29. Evolution of Enterprise Software
    30. 30. 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
    31. 31. Evolution 60 70 80 90 00 IBM nframes mited ering or traction 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 iOS Android HTML5 Browsers Apps API Cloud NoSQL 10
    32. 32. Client-Server  Two-layer systems – Thick client on PCs handle user interface and connect to servers for data
    33. 33. Client-Server  The client handles all computation – domain logic (business logic) – Limited reusability – Versioning is a challenge
    34. 34. 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
    35. 35. 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
    36. 36. Application Servers  Domain Components are deployed on Application Servers – Distributed Multi-tiered Applications – Example: • Web Servers, Spring, EJB containers
    37. 37. Service Oriented Architecture  Built software into independent services  Use APIs such as SOAP to expose functionality Web Browser Native App Web Server SOAP Domain Layer HTTP SERVER Web Browser SOAP HTML SOAP Client SOAP
    38. 38. Microservices  Built software into (smaller) independent services  Use RESTful APIs with Json Web Browser Native App Web Server Domain LayerREST CMS RESTHTML
    39. 39. 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
    40. 40. 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
    41. 41. 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
    42. 42. N-tier Web App Architecture  Classic architecture
    43. 43. 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
    44. 44. 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 ✔
    45. 45. Building Blocks
    46. 46. 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
    47. 47. Building Enterprise Applications  Building computer systems is hard Design Pattern Middleware Frameworks OO Programming Software Architecture
    48. 48. 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
    49. 49. 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
    50. 50. 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)
    51. 51. 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
    52. 52. 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
    53. 53. 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
    54. 54. 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 ✔
    55. 55. Next  Dæmatími: Hlutbundin forritun með Java – Uppsetning á Java umhverfinu – IntelliJ – Java æfingar  Fyrirlestur föstudag: L02 Architecture
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×