Download presentation
Presentation is loading. Please wait.
Published byMarjory Benson Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.