Layered Software Architecture

42,836 views

Published on

A presentation on layered software architecture that goes through logical layering and physical layering, the difference between those two and a practical example.

Published in: Technology, Business
2 Comments
27 Likes
Statistics
Notes
  • @Hossein Farzalivand layer is a logical way of organizing the code so as to make sure there is seperation of concern. Tiers are physical units where the layers are deployed into...so layers are deployed into tiers for the purposes of scalability etc.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Please say me the difference between the layer and Tier
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
42,836
On SlideShare
0
From Embeds
0
Number of Embeds
438
Actions
Shares
0
Downloads
939
Comments
2
Likes
27
Embeds 0
No embeds

No notes for slide

Layered Software Architecture

  1. 1. Layered ArchitectureLars-Erik KindbladSenior ConsultantBlog: kindblad.com
  2. 2. Agenda Logical Layer Architecture Example Code Physical Tier Architecture Logical Layer vs Physical Tier Architecture Summary Questions | Sector, Alliance, Offering
  3. 3. LOGICAL LAYER ARCHITECTURE | Sector, Alliance, Offering
  4. 4. 3-Layer Architecture | Sector, Alliance, Offering
  5. 5. Presentation Layer Also known as Frontend Layer, User Interface (UI) Layer Responsible for creating and displaying the user interface and handling user interaction Data shown is fetched from the Domain Layer | Sector, Alliance, Offering
  6. 6. Service Layer Also known as Web Service Layer Responsible for exposing a web service API and returning the method result as XML or JSON Data returned is retrieved from the Domain Layer | Sector, Alliance, Offering
  7. 7. Domain Layer Also known as Business Layer Responsible for all the business logic in the application Consists of a Domain Model and Domain Services | Sector, Alliance, Offering
  8. 8. Domain Model Also known as Business Model, Business Objects, Entities etc. Responsible for having a model that reflects how the business stakeholders look at the world Consists of entities with relationships and behavior Similar to a database model but a domain model is richer | Sector, Alliance, Offering
  9. 9. Domain Service Also known as Business Services, Business Managers etc. Business logic that does not belong within an entity | Sector, Alliance, Offering
  10. 10. Infrastructure Layer Also known as Data Access Layer, Repository Layer etc. Responsible for querying a database, calling a web service, sending e-mail etc. | Sector, Alliance, Offering
  11. 11. Example We want to create a banking application with customers and related accounts. An account consist of an account number, a balance and a credit limit. If the account has been overdrawn then the account and customer is considered to be “sick”, otherwise “healthy” Use Case 1: As a user I want to see if a customer is healthy or sick Use Case 2: As a user I want to retrieve if a customer is healthy or sick through a web service Technology: .NET, ASP.NET MVC, WCF | Sector, Alliance, Offering
  12. 12. What do we need?1. Domain Model for Customer and Account2. Business logic for deciding if an account and customer is healthy or sick3. 2 Classes: Fetching Customer and fetch list of Accounts from the database4. Service Class for building up a Customer Entity with AccountsUse Case 1:1. MVC Controller and a View to display the health status for a given customerUse Case 2:1. WCF Service for returning whether a customer is healthy or not | Sector, Alliance, Offering
  13. 13. Domain Model | Sector, Alliance, Offering
  14. 14. Domain Model | Sector, Alliance, Offering
  15. 15. Progress | Sector, Alliance, Offering
  16. 16. Infrastructure – Fetch Customer | Sector, Alliance, Offering
  17. 17. Infrastructure – Fetch Accounts | Sector, Alliance, Offering
  18. 18. Progress | Sector, Alliance, Offering
  19. 19. Domain Service – Build a Complete Customer | Sector, Alliance, Offering
  20. 20. Progress | Sector, Alliance, Offering
  21. 21. Use Case 1: Show the result to the user | Sector, Alliance, Offering
  22. 22. Progress | Sector, Alliance, Offering
  23. 23. Use Case 2: Return the result through a Web Service | Sector, Alliance, Offering
  24. 24. Completed | Sector, Alliance, Offering
  25. 25. Visual Studio Project Structure | Sector, Alliance, Offering
  26. 26. Why should you have many layers? Less code per layer Reduced complexity Easier to maintain code Easier to add new functionality Easier to test Allows for reuse code across the application | Sector, Alliance, Offering
  27. 27. PHYSICAL TIER ARCHITECTURE | Sector, Alliance, Offering
  28. 28. Logical Layer vs Physical Tier A Logically Layer is how you logically divide the code in the application A Physical Tier is how you divide your application into multiple sub- applications that can run on separate servers | Sector, Alliance, Offering
  29. 29. 2-Tier Windows Client Architecture | Sector, Alliance, Offering
  30. 30. 3-Tier Windows Client Architecture | Sector, Alliance, Offering
  31. 31. 3-Tier Web Architecture | Sector, Alliance, Offering
  32. 32. 4-Tier Architecture | Sector, Alliance, Offering
  33. 33. Why have many tiers? Reuse logic across applications Improve security, e.g. restrict database access for the client by going through a service Improved performance, the performance critical tiers can be scaled across multiple servers | Sector, Alliance, Offering
  34. 34. Summary Logical Layers • How you logically divide the code in the application • Three Layer Architecture is most common o Presentation Layer or Service Layer o Domain Layer with a Domain Model and Domain Services o Infrastructure layer for communicating with data sources Physical Tiers • How you divide the application into many sub-applications | Sector, Alliance, Offering
  35. 35. QUESTIONS? | Sector, Alliance, Offering
  36. 36. www.capgemini.comThe information contained in this presentation is proprietary. ©2010 Capgemini. All rights reserved

×