Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Design patterns, the big picture, Part 3: Beyond software design patterns

Use patterns to improve interaction design, enterprise architecture, software methodology, and more

  • Print
  • Feedback

Page 3 of 5

  • An ETL (extract, transform, load) architecture focuses on the extraction of data from outside sources, the transformation of this data to fit operational needs, and the loading of the transformed data into a data warehouse or other destination. Also see "ETL - Extract, Transform, Load" for a use case and a demonstration.
  • An event-driven architecture promotes the production, detection, consumption of, and reaction to events (significant changes in state). For example, a vehicle's state changes from "for sale" to "sold" when it is purchased.
  • A layered architecture structures an application so that it can be decomposed into groups of subtasks. Each group of subtasks exists at a specific level of abstraction. The traditional three-tier client/server model is an example of this architectural pattern. Also see Design Pattern: Layers.
  • Multi-tier architecture is a client-server architectural pattern in which presentation, application processing, and data management functionality are separated into logical layers or tiers.
  • Naked objects is a pattern that requires all business logic to be encapsulated by domain objects (that is, business objects); that the user interface be a direct representation of these domain objects, with all user actions focused on creating or retrieving domain objects and/or invoking methods on those objects; and that the user interface be automatically generated from the definition of the domain objects.
  • A pipe and filter pattern transforms data from one format into another by passing it through a series of filters (transformation processes) that are connected via pipes (data conduits). The ETL pattern typically leverages the pipe and filter architecture pattern to transform extracted data into a format that's capable of being stored in a data warehouse.
  • Service-oriented architecture (SOA) provides a set of principles and methodologies for designing and developing software in the form of interoperable services, such as Web services. Various design patterns have been documented for solving problems related to SOA. For example, Version Identification addresses the problem in which a published service contract has changed and clients of this contract are unaware of the change, which results in clients missing an opportunity to utilize the change or being negatively impacted by the change.
  • Model-view-controller is an architectural pattern that most Java developers are familiar with, for instance from using Struts or Spring. In MVC a model stores application data and business rules, the controller mediates input and converts it to commands for the model or view, and the view is any output representation of the model's data, such as a chart or a diagram.

    There is some confusion as to whether MVC is a software design pattern or an architectural pattern. In "Is MVC a design pattern or an architectural pattern?" blogger Kamal Wickramanayake makes the case for MVC being both a software design pattern and an architectural pattern.

See Resources for more implementation examples for the above architectural patterns.

  • Print
  • Feedback

Resources