Platinum Partner
architects,enterprise-integration,theory,architecture

Basic Application Architecture Breakdown of a Very Simple System

Over the past 10 years I have been developing software as a one man IT department, software engineering team member, and/or acting as an independent software consultant. This mixed past has allowed me the opportunity to participate in various levels of the architectural process. I have been able to gain experience with creating applications based on a brief conversation with owners and managers without any sort of documentation to developing full systems that require me to create functional specifications to creating design documents that require Use Cases, Sequence Diagrams, Class Diagrams, Flow Charts, and so on.

Recently, I developed a new application in the form of an automated task that pushed data via an HTTP Post an external API and then processed the data that was return so that it could be entered back in to an internal system.  This project was broken up in to several components but the primary focus was on a managing component that spawned off requests to a worker component that basically encapsulated and each individual process away from the primary controlling component. I broke this application up in to the two main components so that I could have a better separation of concerns and this architecture allowed for more of a fault tolerant system because errors found in each individual request were suppressed to the managing component so that if a request returned back bad data then the request would still have the opportunity to process. Additionally, the main managing process handles the spinning off of requests as well as obtaining the list of items to be requested. If any errors were found in this layer of the application then no processing would occur in till all of the errors were eliminated during the management process.

Additional common components were created to allow for encapsulating data via Data Transfer Objects, accessing and manipulating data via Data Access Layer, and generic common component that allowed for code the be used amongst all of the other components.

For this basic application my thought process was to keep everything very simple and try to design the application so that it closely followed Uncle Bob’s Solid principles.

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}