Enterprise Architecture Strategy driven Enterprise Architecture
Enterprise development reference architecture (EDRA)
-
Upload
aamir97 -
Category
Technology
-
view
603 -
download
4
Transcript of Enterprise development reference architecture (EDRA)
Enterprise development Enterprise development reference architecturereference architecture
(EDRA)(EDRA)
-Deepti Seelamsetti-Deepti Seelamsetti
AgendaAgenda
Current challenges in building enterprise Current challenges in building enterprise class applications.class applications.
Best practices and PatternsBest practices and Patterns EDRAEDRA
What is EDRA?What is EDRA? EDRA High Level Logical viewEDRA High Level Logical view EDRA Pipeline FlowEDRA Pipeline Flow Application BlocksApplication Blocks
SummarySummary
Challenges in Enterprise Challenges in Enterprise Application DevelopmentApplication Development
Complex dataComplex data Multiple simultaneous usersMultiple simultaneous users Varying business requirementsVarying business requirements Heterogeneous platforms.Heterogeneous platforms.
Best practices and patternsBest practices and patterns
What is a pattern?What is a pattern? A pattern is a form, template, or model (or, A pattern is a form, template, or model (or,
more abstractly, a set of rules) which can be more abstractly, a set of rules) which can be used to make or to generate things or parts of used to make or to generate things or parts of a thing, especially if the things that are a thing, especially if the things that are generated have enough in common for the generated have enough in common for the underlying pattern to be inferred or discerned, underlying pattern to be inferred or discerned, in which case the things are said to exhibit the in which case the things are said to exhibit the pattern. pattern.
Best practices and patternsBest practices and patterns
What is a pattern?What is a pattern? Describes a problem which occurs over and Describes a problem which occurs over and
over again in our environment, and then over again in our environment, and then describes the core of the solution to that describes the core of the solution to that problem, in such a way that you can use this problem, in such a way that you can use this solution a million times over, without ever solution a million times over, without ever doing it the same way twice. doing it the same way twice.
EDRAEDRA
EDRA provides architectural guidelines EDRA provides architectural guidelines that an organization can use to that an organization can use to standardize the development of distributed standardize the development of distributed applications.applications.
EDRA Guiding PrinciplesEDRA Guiding Principles
Separation of ConcernsSeparation of Concerns Separating the service interface from the internal service Separating the service interface from the internal service
implementation.implementation. Separating business logic from cross-cutting concerns such as Separating business logic from cross-cutting concerns such as
logging, monitoring, or raising business events.logging, monitoring, or raising business events. Separating business logic from the underlying transport so that Separating business logic from the underlying transport so that
multiple transports can be used to access a single service multiple transports can be used to access a single service implementation.implementation.
BenefitsBenefits Leverage strengths of different types of developers.Leverage strengths of different types of developers. Preserves business logic through changes to “plumbing”.Preserves business logic through changes to “plumbing”.
EDRA Framework (EDAF)EDRA Framework (EDAF) Enterprise Development Application
Framework (EDAF) is one possible is one possible implementation of the conceptual implementation of the conceptual architecture. architecture.
Frameworks are useful for:Frameworks are useful for: Productivity: Frameworks Frameworks
standardize the way in which a standardize the way in which a class of problems is solved.class of problems is solved.
Time to market: Increased Increased productivity due to the need to productivity due to the need to develop and test only code that is develop and test only code that is related to business requirements.related to business requirements.
Predictability: Reusable, tested Reusable, tested solutions based on a predefined solutions based on a predefined architecture reduce risk and architecture reduce risk and increase the predictability of the increase the predictability of the development process.development process.
Life in the PipelineLife in the Pipeline
EDRA-Application BlocksEDRA-Application Blocks Application blocks are a type of guidance, Application blocks are a type of guidance,
provided as source code that can be used "as provided as source code that can be used "as is," extended, or modified by developers to use is," extended, or modified by developers to use on enterprise development projects. on enterprise development projects.
This application block allows developers to incorporate security functionality in their applications. Applications can use the application block in a variety of situations, such as authenticating and authorizing users against a database, retrieving role and profile information, and caching user profile information.
Security Application Block
This application block allows developers to incorporate standard logging and instrumentation functionality in their applications.
Logging and Instrumentation Application Block
This application block allows developers and policy makers to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
Exception Handling Application Block
This application block allows developers to include encryption and hashing functionality in their applications.
Cryptography Application Block
This application block allows developers to incorporate standard database functionality in their applications.
Data Access Application Block
This application block allows applications to read and write configuration information.Configuration Application Block
This application block allows developers to incorporate a local cache in their applications.Caching Application Block
DescriptionApplication Block
SummarySummary EDRA is one model for building distributed applications EDRA is one model for building distributed applications
with the following characteristics:with the following characteristics: Enterprise scale projectsEnterprise scale projects Advanced architectureAdvanced architecture Large, diverse, and distributed development teamsLarge, diverse, and distributed development teams
Includes an extensible application framework that Includes an extensible application framework that incorporates reusable assets allowing you to use:incorporates reusable assets allowing you to use: ASP.NET Web servicesASP.NET Web services Message QueuingMessage Queuing Enterprise ServicesEnterprise Services
Brings together Brings together patterns & practices patterns & practices guidance:guidance: Design patternsDesign patterns Application blocks Application blocks Security and performance guidanceSecurity and performance guidance
BenefitsBenefits Productivity: Frameworks standardize the way Frameworks standardize the way
in which a class of problems is solved.in which a class of problems is solved. Time to market: Increased productivity due to Increased productivity due to
the need to develop and test only code that is the need to develop and test only code that is related to business requirements.related to business requirements.
Predictability: Reusable, tested solutions Reusable, tested solutions based on a predefined architecture reduce based on a predefined architecture reduce risk and increase the predictability of the risk and increase the predictability of the development process.development process.
What EDRA Is NotWhat EDRA Is Not
EDRA is not a supported Microsoft product.EDRA is not a supported Microsoft product. EDRA is architectural guidance provided in the form of code EDRA is architectural guidance provided in the form of code
which you can use “as-is”.which you can use “as-is”. Support: EDRA is considered “user-written code” by product Support: EDRA is considered “user-written code” by product
support.support. Compatibility: EDRA is not guaranteed to be forward or Compatibility: EDRA is not guaranteed to be forward or
backward compatible.backward compatible. Localization: EDRA is not localized.Localization: EDRA is not localized.
EDRA is not the only “right” way to build distributed applications.EDRA is not the only “right” way to build distributed applications. EDRA is not the Microsoft reference architecture for building EDRA is not the Microsoft reference architecture for building
service oriented applications.service oriented applications. EDRA can be used for building any kind of distributed EDRA can be used for building any kind of distributed
application.application. Much of what EDRA does is orthogonal to service orientation.Much of what EDRA does is orthogonal to service orientation.