Saturday, January 19, 2008

Interface Architecture

An architectural process centered on interfaces has important capabilities and benefits.  The term interfaces relates to one or all of the graphical user interface, the network interface, and the application programming interface in the design and development of interactive network applications.  The graphical user interface is primarily in the domain of Interactive Design (IxD), except to remain aware that it is an integral component of an interactive system.

Design and development focused on network interfaces more than software frameworks and their architecture has the advantage of a crisp computational problem definition and solution.  It has the benefit of implementation independence and in this way it has both broad interoperability and long term durability.  The computational problems of network systems, including the issues of interactive applications as well as the subjects of integration, performance, and data distribution.  The analysis and development in these subjects is traditionally performed in terms of the interfaces inherent in both network services and data (payload / transfer / representation) formats.  For example this is the work of the IETF and W3C, as well as many other organizations.

Design and development focused on application programming interfaces defines a software system as a collection of interfaces.   This process is not so different from that of the network interface.  It has the same capabilities and advantages, translated from the network interaction domain to the host interaction domain.  Analysis, design and development in terms of these interfaces provides crisp problem definition and solution, broad interoperability and long term durability.  For example in multithreading, locking under each interface will not deadlock unless and then certainly when the implementation of one interface employs another interface.

Interface Architecture is a logical razor that cuts problems into solvable units.  In working on interfaces rather than components, the parties to a project have an efficient and effective subject for communication and interoperability.  The discipline of Interface Architecture demands of its participants a simple (and singular) logical view of the interface as the first class citizen of the world of the project, and its various implementations as relatively second class replications or adaptations of the design of the interface.  An interface has a singular purpose that must be rationalized among all participants before design work may commence.  An interface may begin simply and include technically implicit or explicit avenues for its own extension in order to serve its own subsequent evolution.

No comments: