enterprise software architecture design characteristics
play

Enterprise Software Architecture & Design Characteristics - PowerPoint PPT Presentation

Enterprise Software Architecture & Design Characteristics Servers application server, web server, proxy servers etc. Clients heterogeneous users, business partners (B2B) scale large number of clients distributed 2


  1. Enterprise Software Architecture & Design

  2. Characteristics Servers ● application server, web server, proxy servers etc. Clients ● heterogeneous – users, business partners (B2B) ● scale – large number of clients ● distributed 2

  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 3

  4. Architectural Style Layered style applications business utilities core Are you sure? 4

  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 5

  6. Architectural Style Client-Server style ● distributed clients – thick & thin – isolated from each other ● centralized servers – computationally powerful – one server to support many clients 6

  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? 7

  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 8

  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 9

  10. Non-functional Concerns Mostly honoured ● concurrency ● availability ● security ● performance ● fault-tolerance ● application distribution & deployment ● evolution ● re-usability 10

  11. Non-functional Concerns Most commonly violated ● cost ● ease of use ● interoperability ● portability ● throughput 11

  12. Putting it all Together Server Tier Data Tier Client Tier 12

  13. Putting it all Together W A A W Server Tier Data Tier Client Tier Presentation Business 13

  14. Putting it all Together W A W A Server Tier Data Tier Client Tier Presentation Business Controllers Data Services Source Web Application Data Access 14

  15. Web-based Enterprise Apps Why web applications? ● what non-functional requirements are we solving? concurrency cost availability ease of use security interoperability performance portability fault-tolerance throughput application distribution & deployment evolution re-usability 15

  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 16

  17. First Generation HTTP request (URL or Form posting) W W W HTTP response (HTML Document) Client Tier Server Tier Data Tier CGI-Scripts Data Source Web 17

  18. First Generation HTTP request Observations (URL or Form posting) ● simple design W ● client-tier – building blocks are? W W ● business tier HTTP response (HTML Document) – aggregation of scripts Client Tier Server Tier Data Tier – scripts are CGI-Scripts Data Source ● independent Web ● stateless ● lacks organic growth ● security nightmare 18

  19. Second Generation HTTP request (URL or Form posting) W J W W J HTTP response (HTML Document) Server Tier Data Tier Client Tier Presentation JEE Container Servlet Data Services Source JDBC Web JEE Server 19

  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 20

Recommend


More recommend