Jump to content

Library Oriented Architecture

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chris the Paleontologist (talk | contribs) at 21:14, 9 April 2012 (Chris the Paleontologist moved page Library oriented architecture to Library Oriented Architecture: This is how it is capitalized in the article). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software engineering, a Library Oriented Architecture (LOA) is a set of principles and methodologies for designing and developing software in the form of reusable software libraries constrained in a specific ontology domain.

Overview

LOA provides one of the many alternate methodologies that enable the further exposure of software through a Service Oriented Architecture. Library orientation dictates the ontological boundaries of a library that exposes business functionality through a set of public APIs. Library Oriented Architecture further promotes practices similar to Modular Programming, and encourages the maintenance of internal libraries and modules with independent internal open-source life-cycles. This approach promotes good software engineering principles and patterns such as separation of concerns and designing to interfaces and not implementations.

Principles

Three principles rule Library Oriented Architecture frameworks:

  1. A software library implementation and subject area expertise must be constrained to only one ontology domain.
  2. A software library that needs to use concepts and artifacts from a different ontology domain than the one it belongs to, must interface and reuse the library corresponding to that specific ontology domain.[1]
  3. All domain specific software libraries must be maintained and supported with separate lifecycles.[2]

Benefits

Library Oriented Architecture may provide different process improvements to existing software engineering practices and software development life-cycle. Some tangible benefits from its adoption are:

  1. Simplify configuration management of distributed systems.[3]
  2. Build highly reliable software systems because of the inherent properties of the LOA principles.
  3. Information Systems build using LOA are technology-independent, and have the ability to entire libraries and domain implementations with localized impact and minimal upstream ripple effect.
  4. Increase the Maintainability Index of your distributed systems and integration repositories.
  5. Minimize the risk of high coupling, this can be more evident on large enterprise systems.
  6. Bring developers up to speed orders of magnitude more quickly than a traditional system. Move developers and teams across libraries and domain ontologies and collaborate seamlessly.
  7. Spot bugs and zero-in on the problem almost instantly. There is something to be said about the amount of time a developer spends debugging.
  8. Maximization of the Bus Factor of the software engineering team.

See also

Ontology

Service Oriented Architecture

Distributed System

Modular Programming

Software Library

Software Design Patterns


References

  1. ^ Gruber, Thomas Robert (1992). "Toward Principles for the Design of Ontologies Used for Knowledge Sharing" (PDF). International Journal Human-Computer Studies. 43: 907–928.
  2. ^ Triana, Michel. "Library Oriented Architecture". Retrieved 04/09/2012. {{cite web}}: Check date values in: |accessdate= (help)
  3. ^ Crowley, Richard. "Developing Operability". Retrieved 04/09/2012. {{cite web}}: Check date values in: |accessdate= (help)