Home Page
Sponsors
Join a Community

  Join CM Pros
 
  Join the Information Architecture Institute
 
  Join DITA Users, helping you get started with topic-based structured writing
 
  Join CMS Consultants

ObjectOriented

Object Oriented print pdf
Object-Oriented? Programming (OOP) and Object-Oriented? Design give rise to a more general use of the concept of a reusable software object that has major implications for ContentManagement.

Object-Oriented? Languages like Java and Python, and Object-Oriented? Databases are important tools in EnterpriseContentManagement Systems. Languages like Perl?, VisualBasic)), PHP? and Javascript?, permit an object orientation, but do not enforce it. Unfortunately, the strong data typing and object-oriented design of Java do not guarantee that programmers really write object-oriented code.

The core idea of object-oriented design is that something going on in the real world can be modelled in a structure which includes software (code) and data. Pushed to its extreme, there are parts of the software object that correspond to (are isomorphic with) real world objects or processes. This is called abstraction, as real-world processes are abstracted to their essential functions.

Complex objects may be built up from simpler objects (often called components), which encourages reuse, a major benefit of an object orientation and a core concept of ContentManagement.

Object-Oriented? Programming (OOP) is an advance over the previous state of programming art called structured or procedural programming, even as it builds on the concept of structure. Structured programming constrains the entrance and exit points of procedures (functions).

Unstructured programming languages (famously Basic) permitted arbitrary "go to" statements that are not allowed in structured programming.

In Object-Oriented? Languages, procedures are called methods (or functions).

Three basic properties are required of an object-oriented programming language:
  • Polymorphism (invoking different behaviors in an "overloaded" method by passing it different numbers of parameters)
  • Inheritance (a new object based on an existing class object inherits all its methods, and may then be extended with new methods, or changed by "overriding" existing methods)
  • Encapsulation (data and code hiding behind an interface specification)

Compiled software objects do not reveal the specific code that implements their methods. Instead they publish an "interface" to externally available "black box" methods. The interface promises to return a specific result when the method is called with specific input data. This allows the object to be implemented differently, to suit a specific hardware/operating system/software environment for example or simply to optimize the performance of the object. The new version will substitute perfectly for the old object, as long as it still complies with the "contract obligations" implicit in its published interface. Its internal methods may be completely changed.

Objects communicate (methods are called) by passing "messages" between them, so it was quite natural to send these messages over the Internet using TCP/IP protocols like HTTP. More complex protocols were developed to access an object on remote computers.

As XML evolved into a data transfer mechanism (it began its existence as an extensible markup language simpler than SGML and more robust than HTML), it became the message formatting mechanism of choice in XML-RPC (Remote Procedure Call), SOAP?, and RSS.

Like a software object, a remote application program publishes an interface, which can be discovered via UDDI (Universal Description, Discovery, and Integration) using WSDL? (Web Services Description Language).

Earlier standards for calling remote procedures to provide services (application programs) over the Internet, such as EDI?, CORBA and Microsoft DCOM are rapidly being replaced by XML-based WebServices.

Object-oriented WebServices connectors and adapters are critically important tools for content management systems that integrate legacy databases into a VirtualRepository?.

Object-oriented is also used to describe vector graphics (which are programmed drawing instructions and data) when compared to pixel graphics.

References:
Hyperdictionary
Wikipedia

RT - Reuse


Up to CmsGlossary.

Created by: admin last modification: Saturday 12 of June, 2004 [18:48:34 UTC] by admin



Login
Search
in: