“Behind the Scenes” of the Enterprise Development Reference Architecture (EDRA) Jonathan Wanagel Microsoft patterns & practices

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Websydian products.
High level QA strategy for SQL Server enforcer
Mobile Application Architectures
OneBridge Mobile Data Suite Product Positioning. Target Plays IT-driven enterprise mobility initiatives Extensive support for integration into existing.
Introduction to .NET Framework
Platinum Sponsor LARGE SCALE REFACTORING Volodymyr Fedak.
Chapter 13 Review Questions
Microsoft ® System Center Configuration Manager 2007 R3 and Forefront ® Endpoint Protection Infrastructure Planning and Design Published: October 2008.
Copyright © 2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Andrew Stone Common Security.
Network Isolation Using Group Policy and IPSec Paula Kiernan Senior Consultant Ward Solutions.
Enterprise development reference architecture (EDRA) -Deepti Seelamsetti.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
Technical Architectures
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Introduction to Systems Analysis and Design
Course Instructor: Aisha Azeem
4/25/ Application Server Issues for the Project CSEP 545 Transaction Processing for E-Commerce Philip A. Bernstein Copyright ©2003 Philip A. Bernstein.
N-Tier Architecture.
Avanade: 10 tips for å sikring av dine SQL Server databaser Bernt Lervik Infrastructure Architect Avanade.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
SOA Landscape Recommendations By >. Who we are  Team Members  Company History  Current & Past Client Projects  Note: have fun here. Make up your history.
B USINESS LAYER SAMANVITHA RAMAYANAM 4 th MARCH 2010 CPE 691.
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Microsoft Confidential Building Reusable InfoPath forms for US Government Jonny Chambers WW Lead – SSN Program Microsoft Corp.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
What is Enterprise Architecture?
An Introduction to Software Architecture
Framework Universal & Infinite Software Solution.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Web Engineering Web engineering is the process used to create high quality WebApps. Web engineering is not a perfect clone of software engineering. But.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
70-294: MCSE Guide to Microsoft Windows Server 2003 Active Directory, Enhanced Chapter 5: Active Directory Logical Design.
Event Management & ITIL V3
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
A Lone Wolf No More: Supporting Network Intrusion Detection with Real-Time Intelligence Shane Singh | COMPSCI 726.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Lesson 19-E-Commerce Security Needs. Overview Understand e-commerce services. Understand the importance of availability. Implement client-side security.
Information Technology Division Executive Office for Administration and Finance Service Oriented Architecture An Enterprise Approach to Enabling the Business.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
SAP Integration with Oracle 11g Muhammad Raza Fatmi.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
J2EE Platform Overview (Application Architecture)
Chapter 7: Modifiability
N-Tier Architecture.
Distribution and components
Introduction to J2EE Architecture
Description of Revision
Model-View-Controller Patterns and Frameworks
Lecture 1: Multi-tier Architecture Overview
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 5 Architectural Design.
Presentation transcript:

“Behind the Scenes” of the Enterprise Development Reference Architecture (EDRA) Jonathan Wanagel Microsoft patterns & practices

2 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

About This Talk  Things to Expect Polls Storytelling Questions Intermission

4 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

Microsoft patterns & practices  Guidance on Enterprise Business Applications  Available for download from Microsoft’s website  Learning the most significant challenges from customers  Analyzing the patterns and/or best practices for solving those challenges

6 Enterprise Development Reference Architecture (EDRA)  EDRA incorporates numerous best practices for solving enterprise business system challenges  Utilizes various p&p guidance to apply the best practices  Includes a reusable implementation of the architecture  Includes complete conceptual architecture documentation  Includes Global Bank sample application demonstrating real-world uses cases using the framework

EDRA Key Benefits  Extensible architecture for cross cutting concerns  Support for secure infrastructure deployments  Support for integration  Improved developer productivity  Easier adjustment to significant system requirement changes

Reference Architecture Challenges  Integration Capable  Multiple transport  Exception handling  Application hosting  Extensible architecture  Services Based  Stateless Components  Secure deployment  Transport choice  Developer Productivity  Developer Portability  Concern Separation  Live Configuration Updates  Requirements Change Adaptability (deployment, transport, etc)  Consistent Development Experience  Consistent Usage of Best Practices  Application Architectural Governance  Transaction Management  Authentication  Authorization  Validation  Remote Debugging  Compensating Transaction  Timeout Management  Instrumentation  Logging  Duplicate Requests (Idempotency)  Business Eventing

Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

Challenge: Integration Capable  Challenge Summary: An organization can have all the integration infrastructure in the world, such as various networks, EAI middleware, integration server products, messaging systems, etc. However, if an applications architecture is closed and offers no way of interfacing with any of the integration infrastructure, then you have an application that you cannot integrate with. How can you ensure your application architecture is integration capable so it is possible to be integrated with other systems?  Poll  Stories

Challenge: Integration Capable  More Challenge Details A new application may not start with integration requirements Sometime after deployment, integration requirements come up because of needs from other applications Want to avoid screen scraping or data oriented integration

Challenge: Integration Capable  Solution Best Practices Build your application with a cleanly separated business API Expose the business API with an external invocation mechanism Include an interception mechanism to allow adding hooks for raising “business events”  Questions

Challenge: Exception Management  Challenge Summary: All applications will have errors occur during operation, both expected and unexpected types of errors. When errors occur, how should they get handled by the application?  Poll  Stories

Challenge: Exception Management  More Challenge Details Do all errors get reported to the caller or user? What about error information containing information that is a security risk such as “Connection string X failed”? What about reporting errors to the system administrator? What about the error propagation within the system?

Challenge: Exception Management  Solution Best Practices Categorize errors as “business” errors versus “technical” errors Always propagate errors to the system boundary (unless explicitly handled) Use normal try/catch/throw, not error return codes Business logic code throws “business” errors such as a business rule violation, with a message that is safe and user appropriate At the system boundary, if error is a “technical” error then: Log the error for a system administrator including unique log id Replace error message with generic message to ensure unsafe information is not leaked Include log id in generic message for correlation  Questions

Challenge: Secure Deployment  Challenge Summary: A very common infrastructure setup for security is creating a perimeter network (DMZ) that “outsiders” access, separated with a firewall from the secure network. Additionally, there might be another firewall inside the secure network separating your database servers. How do you design your application architecture so it can be deployed to a secure infrastructure setup?  Poll  Stories

Challenge: Secure Deployment  More Challenge Details Are the “outsiders” users or systems (i.e. UI or programmatic access)? How do you split your application architecture for the different zones?

Challenge: Secure Deployment  Solution Best Practices Build your application with a cleanly separated business API Split your business tier into an “interface” and “implementation” Handle boundary verification responsibilities (validation, authentication, etc) in the interface Deploy your interface in the DMZ and implementation in the secure network  Questions

Challenge: Multiple Transports  Challenge Summary: Sometimes an application needs to be used by multiple external systems, but they do not all support a single communication mechanism. How do you design your application architecture so it can support multiple communication mechanisms?  Poll  Stories

Challenge: Multiple Transports  More Challenge Details The organization hasn’t implemented an integration server, or one or more systems are an “exception” to using it This application instance alone cannot justify bringing in an integration server, and expanding scope isn’t realistic Transitioning communication mechanisms and need to support old and new simultaneously, or plan to transition in the future

Challenge: Multiple Transports  Solution Best Practices Create a separation between the communication transport and the rest of the architecture Normalize the request input and request output mechanisms of the architecture and have the transports adapt to them  Questions

Challenge: Concern Separation  Challenge Summary: Your organization or development team contains a mix of more skilled developers or architects experienced in dealing with technical issues, and less skilled developers experienced in coding business logic and rules. How can you factor your application architecture so the coding for the technical issues is separated from the coding of the business logic?  Poll  Stories

Challenge: Concern Separation  More Challenge Details Ratio of highly skilled developers to less skilled developers can be very low Coding things such as instrumentation, logging, authentication, database connections, transactions, and authorization tend to be different types of thinking then business logic When business logic and technical code are intermingled, it makes it harder to follow the code when focusing specifically on the business logic or vice versa

Challenge: Concern Separation  Solution Best Practices Encapsulate the business logic into specific components called “business actions” Try to move as much technical code as possible into separate components from business logic For each business action, call the necessary technical components before and/or after the business action The components with the technical code can be further sub- divided based on concern type  Questions

25 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

Database Server Database Server Application Server Application Server Building An Architecture ASPX pages SQL Server Database Web Browser

Application Server Application Server Business Tier Business Tier Database Server Database Server ASPX pages SQL Server Database Web Browser Business Logic Business API

Application Server Application Server Business Tier Business Tier Database Server Database Server ASPX pages SQL Server Database Web Browser Business Logic Interception Mechanism ASMX pages Integration Infrastructure / External Applications Integration Infrastructure / External Applications Business Events Business API

Application Server Application Server Business Tier Business Tier Database Server Database Server ASPX pages SQL Server Database Web Browser Business Logic Interception Mechanism ASMX pages Integration Infrastructure / Other Applications Integration Infrastructure / Other Applications Business API Exception Management Business Events

Application Server (Secure) Application Server (Secure) Service Implementation Service Implementation Application Server (DMZ) Application Server (DMZ) Service Interface Service Interface Database Server Database Server ASPX pages SQL Server Database Web Browser ASMX pages Integration Infrastructure / Other Applications Integration Infrastructure / Other Applications Firewall Business API Business Logic Interception Mechanism Exception Management Boundary Logic Business Events

Application Server (Secure) Application Server (Secure) Service Implementation Service Implementation Application Server (DMZ) Application Server (DMZ) Service Interface Service Interface Database Server Database Server ASPX pages SQL Server Database Web Browser ASMX Integration Infrastructure / Other Applications Integration Infrastructure / Other Applications Firewall Business API InProc MSMQ Internal Application Internal Application Business Events Boundary Logic Business Logic Interception Mechanism Exception Management

Application Server (Secure) Application Server (Secure) Service Implementation Service Implementation Business Logic Business Logic Application Server (DMZ) Application Server (DMZ) Service Interface Service Interface Database Server Database Server ASPX pages SQL Server Database Web Browser ASMX Integration Infrastructure / Other Applications Integration Infrastructure / Other Applications Firewall Business API InProc MSMQ Internal Application Internal Application Business Events Concerns Biz Actions

33 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

Creating an Architectural Framework  Creating an architectural framework is taking an architecture and making it reusable  Some challenge best practices can help with reusability  An architectural framework is itself a best practice for solving many challenges

35 Challenge: Consistent Usage of Best Practices  Challenge Summary: Various architectural best practices may be known by different people, but the applications being built by the organization inconsistently apply them. How can you ensure that best practices are used as new applications are being developed by various development teams across the organization?

36 Challenge: Consistent Usage of Best Practices  More Challenge Details Organizations often make efforts to try and improve the quality of architectures across the company Setting up meetings or trainings to share “best practices” across projects or teams Creating documentation or training to show best practices that can be used  Why a Framework Helps Usage of best practices on an application can become an “implicit” activity requiring no training or communication Adding best practices to development can also be “implicit”

37 Challenge: Developer Productivity  Challenge Summary: The various business units in your organization always have more IT needs then what gets fulfilled because they cannot afford or justify the costs. How can you improve the productivity of the development teams to try and fulfill more business needs cost effectively?

38 Challenge: Developer Productivity  More Challenge Details More training Improved development processes More developer specialization  Why a Framework Helps Reduced time spent on establishing and building the architecture Reuse of architecture reduces overall development

39 Challenge: Application Architectural Governance  Challenge Summary: Many organizations have a person or group responsible for setting rules or policies affecting the architectures of applications. How can you enforce rules or policies that affect application architecture or development?

40 Challenge: Application Architectural Governance  More Challenge Details How to communicate rules and policies Enforcement through reviews and general policing What to do when application slips through the cracks How to keep existing applications compliant with rules and policies  Why a Framework Helps Rules and policies can be enforced through updates to framework Existing applications can be upgraded to newest framework to ensure compliance

41 Challenge: Developer Portability  Challenge Summary: Organizations often need to transfer developers from working on one application to another. This can mean significant ramp up time for the developer to understand the application well enough to work on it effectively. How can you reduce the ramp up time necessary for a developer to switch from working on one application to another?

42 Challenge: Developer Portability  More Challenge Details Sometimes moving developers occurs in “swaps” that take a long time because you then have ramp up dependencies Understanding an application architecture can be time consuming Understanding the business logic versus architecture logic  Why a Framework Helps A framework creates more consistencies in architecture requiring less ramp up time Better separation of concerns allows focusing more strictly on business logic

43 Challenge: Requirement Change Adaptability  Challenge Summary: Changes in the requirements for an application can usually be reasonably handled if they affect business rules or business functionality. But requirement changes that impact the architecture can be extremely difficult to deal with. How can you reduce the difficulty of dealing with requirement changes impacting an applications architecture?

44 Challenge: Requirement Change Adaptability  More Challenge Details Difficult to predict the requirement changes Cost of adding flexibility  Why a Framework Helps Reusability for different scenarios offers flexibility Flexibility cost is significantly less

45 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

To Download  To download the EDRA source code, documentation, candidate features for future releases, and the EDRI: Go to the EDRA community workspace at Sign in (you will first need to join the workspace) Go to the “Releases” section  For a knowledge base on EDRA including frequently asked questions, known issues, etc: Go to the Wiki site at

Summary  Application architecture requires understanding and choosing your challenges  Architectural frameworks can help solve challenges  EDRA is an application architectural framework that attempts to incorporate several best practices

48 Agenda  About This Talk  What is p&p and EDRA  Application Architecture Challenges  Building an Architecture  Creating an Architectural Framework  Summary  Questions

Questions?