enterprise software architecture & design · enterprise software architecture & design. 2...

20
Enterprise Software Architecture & Design

Upload: others

Post on 12-Jun-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

Enterprise Software Architecture & Design

Page 2: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

2

Characteristics

Servers● application server, web server, proxy servers etc.

Clients● heterogeneous

– users, business partners (B2B)● scale

– large number of clients● distributed

Page 3: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

3

Characteristics

Data● large amounts of data● long-term & short term persistence● distributed in nature● governed by schema

– global company wide– local application specific– complex & resistant to change

Page 4: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

4

Architectural Style

Layered style

core

business utilities

applications

Are you sure?

Page 5: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

5

Architectural Style

Tiered style● from layered to tiered

– physical separation– each tier

● acts as a client of the tier to the right● provides a service to the tier on the left

Page 6: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

6

Architectural Style

Client-Server style● distributed clients

– thick & thin– isolated from each other

● centralized servers– computationally powerful– one server to support many clients

Page 7: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

7

Architectural Style

Client-Server style● observations

– main functionality processed at the central server

– user interface at each client– flows

● data flows from server to client● control flows from client to server

– did some body say data?

Page 8: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

8

Architectural Style

Repository Style● central repository

– multiple data-sources– generally database type

● data is shared across– clients– applications

● data is dynamic– in enterprise applications

Page 9: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

9

Functional Concerns

application● collection of business functionality● generally divided over two tiers

data● transactional

– transaction – generally a single operation– ACID

● atomicity – all or nothing● consistency – from one consistent state to another consistent state● isolation – interaction of other operations with the modified data● durability – data after a successful transaction is never lost

Page 10: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

10

Non­functional Concerns

Mostly honoured● concurrency● availability● security● performance● fault-tolerance● application distribution & deployment● evolution● re-usability

Page 11: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

11

Non­functional Concerns

Most commonly violated● cost● ease of use● interoperability● portability● throughput

Page 12: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

12

Putting it all Together

Client Tier Server Tier Data Tier

Page 13: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

13

Server Tier

BusinessPresentation

Putting it all Together

Client Tier Data Tier

A

A

W

W

Page 14: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

14

Putting it all Together

Client Tier Server Tier

Presentation

Data Tier

Business

DataSource

Application

Controllers

Services

Data Access

A

A

W

W

Web

Page 15: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

15

Web­based Enterprise Apps

Why web applications?● what non-functional requirements are we solving?

concurrencyavailabilitysecurityperformancefault-toleranceapplication distribution & deploymentevolutionre-usability

costease of useinteroperabilityportabilitythroughput

Page 16: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

16

Web­based Enterprise Apps

Key attributes● thin clients – web browsers

– computationally challenged● user interface – HTML, javascript, css

– simple & static– resides at client tier

● communication– synchronous request response– HTTP over TCP/IP

Page 17: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

17

First Generation

Client Tier Server Tier

W

W

Web

W

CGI-Scripts DataSource

Data Tier

HTTP request(URL or Form posting)

HTTP response(HTML Document)

Page 18: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

18

First Generation

Client Tier Server Tier

W

W

Web

W

CGI-Scripts DataSource

Data Tier

HTTP request(URL or Form posting)

HTTP response(HTML Document)

Observations● simple design● client-tier

– building blocks are?● business tier

– aggregation of scripts– scripts are

● independent● stateless

● lacks organic growth● security nightmare

Page 19: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

19

Second Generation

Client Tier Server Tier

Presentation JEE Container

W

W

J

J

Web

W

JEE Server

Servlet

Services

JDBC

DataSource

Data Tier

HTTP request(URL or Form posting)

HTTP response(HTML Document)

Page 20: Enterprise Software Architecture & Design · Enterprise Software Architecture & Design. 2 Characteristics Servers ... – in enterprise applications. 9 Functional Concerns application

20

Second Generation

Observations● not so simple anymore● improves business tier only

– high level frameworks● JEE servlets, struts, spring MVC

– applications server standardization● provides various services (like what?)

● negative impact on – request-response cycle– user interface