INTERNET, SOFTWARE ARCHITECTURES AND DESIGN PATTERNS

Today, most of us around the world are familiar with the internet. This is all possible due to the advent of internet architecture. Enterprises that developed Information Systems can easily get data or send data using this internet architecture. Legacy systems/Information Systems that are being used by the enterprises today are developed with the help of software architects who apply suitable architectures. Moreover, their architecture is determined by various forces within the organization and outside. In the early 1960’s the object oriented programming concepts were developed, since then it has been growing and has a plethora of advantages. Furthermore, this lead to the innovation of design patterns, which is a convenient way of addressing an object-oriented design solution. According to Christopher Alexander, “The elements of this language are entities called patterns. Each pattern describes a problem that occurs over and over again in our environment and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.”  (Wikipedia, 2014).

Initially the internet architecture was developed for the defense purposes of the United States Military, therefore they had set some basic goals in order to make it efficient and be able to connect to a plenty of networks. For this architecture packet switching was implemented. Since it was being built for defense purposes the cost wasn’t taken into consideration. Some of their fundamental goals were that, the internet connection must prevail in the event of loss of gateways or networks; In addition, the internet must also support other types of communication services et al., The other important consideration was the endurance that was built into it in case of a failure. This internet architecture could also support a variety of service due to the splitting of TCP (Transmission Control Protocol) and IP (Internet Protocol). The use of datagrams in the internet architecture helped in achieving some of its important goals (Clark, 1988).

Mr. Alistair Cockburn in his article “The Interaction of Social Issues and Software Architecture” discusses the various forces and counter forces that influence a software architecture. Based on these forces, Mr. Cockburn came up with some principles and design decisions. One of the principle patterns of interest to me was the “Owner per Deliverable” (Cockburn, 1996); hence by implementing this principle-pattern one can guard the system from gray areas as there would be an owner who will take responsibility and maintain that sub-system. If one follows the design principles mentioned in this article they would be able to design a flawless information system.

Design Pattern can be used to build reusable software (Gamma et al., n.d.).  In the paper written by Erich Gamma et al., design patterns are considered “micro architectures” that provide for the overall system architecture. The design patterns have been categorized based on their characteristics in this article. Design Patterns can be distinguished into creational; deals with the process of object creation, Structural; deals with the composition of classes and behavioral; deals with the interaction between classes (Gamma et al., n.d.). Design pattern cut down on the work required to understand a library of classes. Thus, one shouldn’t aimlessly implement design patterns; this can lead to convoluted software systems (Gamma et al., n.d.).

Leave a Reply

Your email address will not be published. Required fields are marked *