Clues from the World of computer programming
What is an object?
Industrial Age thinking sees objects as things to be fully understood and controlled. Information age thinking doesn't know or care how objects work. Objects are just sent messages and they are expected to respond appropriately. If object don't respond properly, they are eliminated, or, messages are diverted to bypass them.
Industrial Age thinking separates an object from the object's creator. Information age thinking sees the creator as part of the object. This is the key to understanding the difference between the different approaches to object oriented design.
Most people, who have difficulties in coming to grips with the concept of object oriented thinking, are usually stumbling over the definition of an object. An object is hard to conceptualise because it can describe literally anything. This is one of those complexity problems that can completely blank out the mind. With an infinite range of possible objects, it is not possible to think of any single example that would be representative of all.
The trick though is to concentrate on the definition and not on any particular example. The definition of an object is elegantly simple, it is anything that has a boundary, a function and can receive and transmit messages. The function can be anything you want it to be. The ability to receive and transmit messages is understandable. The only enigmatic quality of an object is its boundary. This can be thoroughly confusing until you appreciate that objects can combine with each other to form virtual objects.
The boundary of an object is described by the functions and features you want to give an object. For example, a piece of software that stores data can be called an object: i.e., a database object. Such a database object is designed to communicate with the operating system of a computer. However, a computer that has database software can also be called a database object. It is a virtual object because it is made up of two other objects: the database software and the operating system.
This virtual database that included a computer and a computer operating system could then communicate with a human: a human object. The human need have no knowledge at all as to how the database communicated with the operating system, the human would just see a computer with which they could communicate to obtain information.
Someone asking the computer operator to get data for them from a database wouldn't care how the computer operator communicated with the computer. In fact, to them, the operator represents the database: the computer operator would simply be a single object that could be seen as a database object.
In a company providing a service to supply information, clients will sees the company as a virtual object. They'd simply communicate with somebody in say the information department, make a request and the necessary information is returned without them having to know what objects are involved inside the company to get the information to them.
The internal messaging goes to and from the internal objects: the software, the operating system; the computer operator; the person who communicates with the client. All this is transparent to the client. They will not know or care what the name of the computer operator is. They will not care if it's a happily married woman or a drug addict. They don't know or care what kind of computer is used or the type of database software. The client is solely concerned with how efficiently they can get their request for information fulfilled by the one single virtual object: the company.
This is what is so enigmatic yet so powerful about object oriented systems: boundaries are flexible and can exist in different forms with different combinations of objects. Even more enigmatic and powerful is the way objects in a virtual object can be arranged to form new virtual objects without changing the original virtual object.
This is not so confusing as it sounds. For example, any company can be considered to be virtual object made up of people objects. The company can thus be considered to be a virtual object made up of other virtual objects: the departments. Now imagine this company to have a bowling team. This bowling team can also be considered to be an object that is made up of people objects taken from different department objects of the company objects. In this way virtual objects can exist in many different forms from the same set of objects
It is this ability to metamorph objects into different conceptual configurations of virtual objects that give object orientation its power and versatility. This, as we shall see, makes object oriented design ideal for devising solutions for e-business and e-commerce. The structures and constructs can be built as systems of interacting modules that are re-configurable and replaceable. Each of these objects and virtual objects can then be dealt with in the same way that the newsagent deals with his paper delivery boys and girls. They can be arranged to be dispensable and replaceable
Object oriented thinking allows you to analyse and construct systems at several different levels of organisation. It allows you to break up an e-business or e-commerce solution into hierarchical patterns of virtual objects each of which is able to be further decomposed into more basic objects.
In this way the design of a Web site for example needn't be considered as a single project. It can be considered as consisting of a myriad of independent objects that fit into a communicating framework. This would allow the decomposing of a site into a group of interacting and communicating servers that are run by different groups that are physically separated, even separated by oceans and national boundaries. The trick is to think of the servers as virtual server objects that each consist of the hardware, the programs and the expertise that can be tapped into.