Patterns for Enterprise Applications

author-image
CIOL Bureau
Updated On
New Update

Avijeet Dash and Satyabrata Dash


We are going to start a new series of Design Pattern articles based on "Patterns of Enterprise Application Architecture" book by Martin Fowler et al.



Let’s refresh the definition of pattern, enterprise application and architecture before we move to content and structure of publication.


Pattern


Let’s revise the definition of pattern before we go to discuss about P of EAA. So what is a Pattern? The well-known 3-part rule inspired by Christopher Alexander to a pattern is that " A pattern is a solution to a problem in context".

Advertisment

Problem: We need to contain global warming.


Context: The ozone layer is depleting.


Solution: Implement stringent emission laws.

But Vlissides in Pattern Hatching insists that a pattern also must have:


  1. Recurrence, solution should be applicable in different variation of context.

  2. Teaching, which tells about description and resolution of forces, and the consequences of application.

  3. Name, by which a pattern can be referred to.
  4. Advertisment

    Enterprise Application


    Enterprise applications are normally characterized with the following similarities:


    1. Transaction integrity

    2. Distributed computing

    3. Data persistence

    4. Integration with other enterprise applications.

    5. Volumes of data.
    6. The challenges of enterprise applications cut through projects and a small subset of that is:


        Advertisment

      1. Scalability

      2. Concurrent access

      3. Security

      4. Performance tuning

      5. Development platform

      6. Legacy connectivity etc.
      7. P of EAA has listed a good number of enterprise application examples like payroll, patient records, supply chain, accounting, customer service etc.


        Architecture


        Booch, Rumbaugh, and Jacobson have explained in "The UML Modeling Language User Guide" that an architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization---these elements and their interfaces, their collaborations, and their composition.

        Software architecture involves key decisions about the structure of the system and relationship between various components of system. In Pattern Oriented Software Architecture book, you can find mention of several architectural design patterns like


        Layered architecture, pipes and filter and blackboard architecture.



        P of EAA Series


        P of EAA book is organized into two parts. The first part contains a set of narrative chapters on a number of important topics in design of enterprise applications and patterns, with detailed solutions have been recorded in the second part.

        Advertisment

        Some of the interesting topics in enterprise applications that the book covers are


        1. Layering of enterprise applications

        2. Structuring domain logic.

        3. Structuring a Web User interface

        4. Linking in-memory modules to a relational database.

        5. Handling session states in stateless environments

        6. Principles of distribution

        7. Advertisment

          We will mainly focus on the second part of the book that is patterns although we will summarize the discussion presented in the narratives section of the book. We will discuss one pattern every fortnight from P of EAA book. We will present the pattern in the format specified in Structure section and we will also try to provide as many examples as we can in Java and C# language.

          more....

          Structure

          We have included a new sub-section called Anti Pattern where we will discuss the scenarios when the pattern can become an anti-pattern.The design pattern structure that we will follow is given below.




          Pattern Name


          Name of the pattern.



          Intent

          The intent will explain the context of the pattern.

          Advertisment

          In 30 Seconds

          There is a business-management rule, which says if you can explain a solution in 30 seconds then you know what you are talking about. So this section will help capturing the necessity of the pattern as briefly as possible.
          Advertisment

          Motivation

          Highlight the key benefits of using the pattern.

          Structure

          The structure will define the collaboration between various objects through an UML diagram.

          Sample Code

          Sample example in Java or C#.

          Complexities simplified


          Explain the variations of the pattern and simplify any intricacies involved in the pattern.

          more....

          Related Patterns

          Examples of frameworks using the pattern and related patterns.


          Anti Patterns


          Possible scenarios when the pattern becomes an anti-pattern.


          Conclusion


          We introduced to P of EAA series this time and also outlined the structure that we will be following for our subsequent pattern discussions. We will discuss about Layering and Organizing Domain Logic narratives next time.

          Reader feedback is utmost important to us. This is a forum to discuss about P of EAA design patterns and share practical experiences with each other. So if you have opinion or suggestion about the upcoming articles, then write us and we will incorporate them into our publications.


          References


          1. Software Design Patterns

          2. Patterns of Software Enterprise Architecture by Martin Fowler , David Rice , Matthew Foemmel , Edward Hieatt , Robert Mee , Randy Stafford

          3. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (The Gang of Four).

          4. Pattern-Oriented Software Architecture A System of Patterns by F. Buschmann, R. Meunier, H. Rohnert, P.Sommerlad, M. Stal

          5. Software architecture definitions

          6. Anti Patterns

          7. Pattern Hatching by John Vlissides

          8. About Authors


            Avijeet Dash and Satyabrata Dash can be reached at avijeetd@yahoo.com and satyabrata_dash@yahoo.com respectively.

            tech-news