Known Uses
- The Solo Operating System [Brinch77] is a simple but useful single user operating system for the development and distribution of Pascal programs for the PDP 11/45 computer. This is the Software Site in which the system is constructed. The description of Solo continues by introducing its Software Structure that consists of a hierarchy of program layers, each of which controls a particular kind of computer resource, and a set of concurrent processes that use these resources. The user communicates with the system through a console. Since the development of this system is previous to GUI's creation, a very simple interface allows the user to edit, compile and store Pascal programs. The actual physical resources are controlled by a set of concurrent processes that allow the system to execute programs by operator's request, to feed the input processes with information stored in punched cards, to print lines sent by the output processes, etc. These concurrent processes are Solo's Software Services. During the description of each one of the layers composing the structure, The Software Space Plan for each one is introduced, describing each layer in terms of abstract data types as monitors and classes. Finally, Software Stuff is a description of the data structures and their implementation in Pascal [Brinch77].
- The Architecture Example for a video store system [Benn97] is a clear example of the use of the Architectural Development pattern. First, he starts proposing the Software Site by defining the system boundary, and representing the devices and external actors, which influence the development of the system. Then, he nominates the model, presentation and interface subsystems, representing in order, the Software Structure, the Software Skin and the Software Services of his system. At the next stage, he adds a list of services that define the model behaviour, such as process queries, change inventory, administer members administer cash drawer, check inventory, change users, define reports and process bills. These services are provided by one or more elements that are affected according to the kind of service. So, each model component is made responsible for a group of shared actions. These define the Software Space Plan. Finally, he proposes an incremental implementation of each component, which represents the Software Stuff of the video store system [Benn97].
- CORBA (Common Object Request Broker Architecture) is an example of the Architectural Development pattern [OMG90]. CORBA represents an application of OO concepts to distributed systems. An Object Request Broker (ORB) allows objects to publish their interfaces and allows client programs to locate them anywhere on a computer network, requesting services for these remote objects. The Software Site of CORBA is then this network of distributed workstation systems. A client computer program makes requests of services provided by another object implementation. Both client and object implementation use the same ORB interface. This Software Structure used is similar to the Broker architectural pattern [POSA96]. CORBA applications may or may not present a Software Skin. In the first case, they use GUI's to communicate with end users, such in the case when integrating CORBA and, for instance, Java applets. Software Services are represented by the ORB code that performs connection management and all the low-level details of interacting with a remote object. The CORBA components use several patterns to achieve their function, representing the Software Space Plan. Especially, the Bridge pattern [GoF94] and the Proxy pattern [POSA96, GoF94] are used at this level. Finally, the implementation of CORBA services, and the actual data structures can be seen as the CORBA Software Stuff [OMG90].
Contact Information
Jorge Luis Ortega Arjona.
E-mail jortega-arjona@acm.org