Presentation is loading. Please wait.

Presentation is loading. Please wait.

Patterns & practices for Application Architectures Developer Days, Warsaw, October, 2003 Wojtek Kozaczynski Architect, PAG

Similar presentations


Presentation on theme: "Patterns & practices for Application Architectures Developer Days, Warsaw, October, 2003 Wojtek Kozaczynski Architect, PAG"— Presentation transcript:

1 patterns & practices for Application Architectures Developer Days, Warsaw, October, 2003 Wojtek Kozaczynski Architect, PAG wojtek@microsoft.com

2 Outline  Overview of PAG Offerings  PAG Content Portfolio Development  Reference Architecture Project  Call to action

3 IT Infrastructure Information Worker Solutions Content Teams IT Infrastructure Built for IT Professionals. Architecture, design, deployment, and operations of IT Infrastructure including network hardware and system software Information Worker Architecture, design, deployment, and operations of Information Worker scenarios, including Microsoft Office System-based Collaboration and Project Management Application Platform Built for enterprise solution architects and developers. Architecture guidance on design, development, deployment, and operations of custom applications. Windows Office PAG Application Platform

4 Microsoft & Partner Solutions Custom Solutions and Services Product Features, Operations Troubleshooting, Reference Development and Mgmt Tools Windows Server System Solutions Documentation Technology Platform Architecture Guidance “Complex projects, security issues, unpredictable results, high-risk.” Experience Guides, Patterns, Application Blocks, Ref Architectures and Implementations Arch. Guidance

5 Reference Architectures ApplicationBlocks Guidance on architectural principles and cross-cutting Issues such as security and performance PAG Content TypesPatterns DADI A D I DADI A D I Atomic solutions to recurring problems Sub-system-level guidance for common services System-level guidance for common customer scenarios DADI A D I GuidesGuides

6 Pattern Help Architects and Designers By…  Documenting simple mechanisms that work  Providing a common vocabulary and taxonomy  Enabling solutions to be described concisely as combinations of patterns  Enabling reuse of architecture, design, and implementation decisions

7 Pattern Frame

8 Web Presentation Cluster Model-View-Controller Front Controller Page Cache Intercepting Filter Implementing MVC with ASP.Net Implementing Front Controller with ASP.Net Implementing Intercepting Filter with ASP.Net Implementing Page Cache with ASP.Net Implementation Design Page Controller Implementing Page Controller with ASP.Net Application

9 Deployment Cluster Architecture

10 Service Cluster

11 Distributed Systems Cluster Application

12 Data Cluster

13 .NET Patterns

14 Application Blocks  Reusable “block” of applications  A service  A part of application architecture  VS solution with one or multiple assemblies  Distributed as source code  Customizable at three levels  Metadata-driven  Class framework  Code generation

15 Users Data Sources Services Operational Management UI Components SecurityCommunication UI Process Components Business Workflows Service Interfaces Business Components Business Entities Data Access Logic Components Service Agents Configuration Management - Store configuration anywhere you like - Encrypted configuration - Caching for performance and scalability - Pluggable storage Files, SQL Server, Active Directory, Registry - Security Included Encryption and Digital Signatures Scalability & Management - Caching of Data, configuration-driven string myStuff = ConfigurationSettings.AppSettings[ “foo” ]; string myStuff = ConfigurationManager.Items[ “foo” ]; User Interface Process - Use the Model-View-Controller Pattern - Share state across windows forms & web pages - Start, Pause, Re-Start user ‘tasks’ - Define Use Cases as ‘screen flows’ in XML - Change use cases after deployment! -Pluggable state storage location, visual transitions - Works for Windows, Web, Voice.. cart browse error checkout congrats addItemfail resume passCheckout checkout fail Updater Application Block - Self-Updating App - Secure manifests of what’s downloaded - Pluggable downloader and validator - Provided BITS downloader - Use it instead of the older appUpdater Update Controller (Application or separate EXE) Update Controller (Application or separate EXE) Updater Applicat ion Block Application Update Manif est 1 1 Server Client Downloader 2 2 Application Poll & Download Controller XML Configuration File File Copy Admin uses Manifest Utility Validator Post Processor (optional) 5 5 Downloader Validator 4 4 3 3 Caching - Performance and Scalability - For UI (windows & Web), business logic, and data layers - Storages: SQL Server, Shared Memory, AppDomain SQL Server, Shared Memory, AppDomain - Security: Encryption and Signing - Pluggable Expirations: Time, SQL Notifications, API Calls, [your own] Time, SQL Notifications, API Calls, [your own] ICacheStorage CacheManager CacheService Dependencies Scavenging Statistics MemoryStorage SQLNotification WMI From App Etc. LRU LFU Many More! - Service Aggregation - Asynchronous Invocation In Development - Authorization and Profile Management - Logging in SQL, MSMQ - WSE Filters for Web Services - Offline Smart Clients - Persistence & Business Entities GotDotNet: Search for “patterns & practices” in Workspaces

16 Architecture Guides  Application Architecture for.NET  Improving Web Application Security: Threats and Countermeasures  Deploying.NET Applications  Operating.NET-Based Applications

17 PAG Portfolio PatternsApplication BlocksReference Architectures Guides Web Cluster Deployment Cluster Service Cluster Distributed Cluster Data Cluster... UIP Data Access for.NET Exception Management in.NET Configuration Management Caching Application Updater Service Aggregation Asynchronous Invocation Application Architecture for.NET Building Secure ASP.NET Applications Deploying.NET Applications Operating.NET-Based Applications

18 All Available Now (http://www.microsoft.com/resources/practices/)

19 Major Content Cumming Up PatternsApplication BlocksReference Architectures Guides Integration Cluster Smart Client Cluster Persistence & Business Entity User Profile Authorization Logging WSE Filters UIP for Smart Client Smart Client Offline SOA Architecture Guide Performance and Scalability Guide Shadowfax Reference Architecture and Implementations Smart Client LOB Applications SOA EAI

20 PAG Product Planning Microsoft GTM & Scenarios Competitive Threads Customer Project Trends Technical Challenges Microsoft Input Customer Input PatternsApplication BlocksReference Architectures Guides

21 Internet Banking Wireless Aggregation Branch Banking CRM Core Banking Wealth Management Treasury / Forex Trading / Back office Payment Systems and Card Mgmt 3D Secure Business Intelligence EAI Straight through Processing ATM / POS No Application Is An Island

22 Problem: exposing business services « subsystem » Integration Service Agents « subsystem » Business Component « subsystem » Business Component « subsystem » Business Component « subsystem » Business Component « subsystem » Service Interfaces Service Interfaces : Security Transactions Logging Data mapping …

23 Problem: accessing diverse services - S 11 - S 12 - S 13 - S 21 - S 22 - S 31 - S 32 - S 33 Customer Accounts Customer Loans Credit Bureau Enterprise Systems External Systems « subsystem » Common Needs Integration Service Agents Integration : Communication Security Transactions Logging Data mapping … Integration Service Agents

24 Architecture for Handling Service Requests - S 11 - S 12 - S 13 - S 21 - S 22 - S 31 - S 32 - S 33 Customer Accounts Customer Loans Credit Bureau Enterprise Systems External Systems Business Capability Channel Communication Security Transactions Logging Data mapping Service instantiation & invocation Coordination Business events … Set of business related services Multiple access channels Simple client programming model Uniform service handling model Service location and implementation transparency Common transaction model Common security model … Service Request Broker Business Component « subsystem »

25 Request Flow « subsystem » Request Broker Event Notification Policies Service Agents - S 11 - S 12 - S 13 - S 21 - S 22 - S 31 - S 32 - S 33 Savings Accounts Check Accounts Investment Accounts Enterprise Systems External Systems « subsystem » Request Dispatcher « subsystem » Request Dispatcher « subsystem » Request Dispatcher « subsystem » Request Dispatcher « subsystem » Business Component Internal Business Service Channels Port « subsystem » Service Agent Customer

26 Architectural Objectives (1) Provide a framework for developing enterprise applications on the.Net platform  Provide uniform model of exposing business services Allow access to services over multiple channels Align with directions of future products  Provide uniform model of handling service requests Allow for declarative specification of service request handling Localize code implementing different request handling aspects Support service implementation by multiple (legacy) systems Allow for run-time changes in how services are handled  Provide business event notification  Support easy workflow integration  Support security and manageability of the architecture !Assure performance and scalability !Make the architecture elegant and minimal

27 Architectural Objectives (2) Demonstrate use of patterns and PAG blocks while adhering to PAG guidance for security, performance and scalability Allow reuse of at multiple levels  Reuse of reference implementation or its fragments  Reuse of architecture framework  Reuse of selected application blocks  Reuse of design principles

28 Logical View of Request Flow Port A Port B Channel Request Queue Result Queue « subsystem » Business Component Dispatcher « subsystem » Service Agent « subsystem » Business Component kl m Context Dispatching Controller Event Queue Error Queue

29 Many Interesting Challenges  Multiple Channels  Heterogeneous Services  Scalability  Reliability  Security  Policy Pipelines  Client Programming Model  … and many more

30 You Can Help  If you live in this problem space  If you have built parts of the architecture  If you want to share your experience with the p&p community …. …. let me know

31 Thank You! If you have questions, comments or suggestions about our existing content, or about our ongoing projects please don’t hesitate to send me a message at wojtek@microsoft.com


Download ppt "Patterns & practices for Application Architectures Developer Days, Warsaw, October, 2003 Wojtek Kozaczynski Architect, PAG"

Similar presentations


Ads by Google