Component Requirements

March 15, 2008 at 10:05 am (COM, Unit 5) ()

Component Requirements

The advantage of using components result directly from their ability to dynamically plug into and unplug from an application. In order to achieve this capability , components must meet two requirements.

1.       Components must link dynamically

2.       Components must hide (or encapsulate) the details of how they were implemented.

1.       Dynamic Linking

·         The ultimate goal of this is to have an end user replace components in an application while that application is running.

·         Support for changing components at run time requires the ability of dynamically link components together.

·         In distributed environment there is no assurance that the component will be idle for modification. So, components should have facility to update or replace them while it is used by other system in the network.

2.       Encapsulation

·         A program or a component that uses another component is called the client. A client is connected to a component through an interface.

·         If the component changes without changing the interface, the client doesn’t have to change. Similarly, if the client changes without changing the interface, the component doesn’t have to change.

·         However, if changing either the component or the client changes the interface, the other side of the interface must also change.

·         Therefore, to take advantage of dynamic linking, components and clients must strive not to change their interfaces. They must be encapsulated.

·         The more the interface is isolated from implementation details, the less likely the interface will change as a result of changing the client or the component.

·         If the interface doesn’t change, changing a component will have little effect on the rest of the application.

Isolating the client from the component’s implementation puts some important constraints on the component. The following is a list of these constraints.

1.       The component must hide the computer language used for its implementation. Exposing the implementation language creates new dependencies between the client and the component.

2.       Components must be shipped in a binary form. If components are to hide their implementation language, they must be shipped already compiled, linked and ready to use.

3.       Components must be upgradable without breaking existing users. New versions of a component should work with both old and new clients.

4.       Components must be transparently relocatable on a network. A component and the program that uses it should be able to run in the same process, in different processes, or on different machines. The client should be able to treat a remote component the same way it treats a local component.

Permalink Leave a Comment

COM : Fundamentals

March 15, 2008 at 9:21 am (COM, Unit 5) ()

COM

  • COM is a specification
  • It specifies how to build components that can be dynamically interchanged.
  • COM provides the standard that components and clients follow to ensure that they can operate together.
  • The COM specification is a document that sets the standard for the component architecture.

 

What are COM Components?

  • COM component consists of executable code distributed either as Win32 dynamic link libraries (DLLs) or as executables (EXEs).
  • Components written to the COM standard meet all requirements for component architecture.
  • COM components link dynamically using DLLs.
  • COM components can be encapsulated easily because:

o COM components are fully language independent. They can be developed using almost any procedural language Ada to C to Java to Modula-3 to Oberon to Pascal.

o Any language can be modified to use COM components, including Smalltalk and Visual Basic.

o COM components can be shipped in binary form.

o COM components can be upgraded without breaking old clients. Because it provides a standard way to implement different versions of a component.

o COM components can be transparently relocated on a network. A component on a remote system is treated the same as a component on the local system.

  • COM components announce their existence in a standard way. Using COM’s publication scheme, clients can dynamically find the components they need to use.
  • COM components are a great way to provide object-oriented APIs or services to other applications.
  • COM components are also great for building language-independent component libraries from which applications can be rapidly built.

 

COM is not…

  • COM is not a computer language.
  • COM does not compete with computer languages.
  • COM tells how to write components.
  • COM also does not compete with or replace DLLs.
  • COM uses DLLs to provide components with the ability to dynamically link.
  • COM is not primarily an API or a set of functions like the Win32 API.
  • COM does not provide services such as MoveWindow or the like.
  • COM is not a C++ class library like the Microsoft Foundation Classes (MFC).
  • COM provides a way to develop language-independent component libraries, but COM does not provide any implementation.

 

The COM Library

  • COM has an API, the COM library, which provides component management services that are useful for all clients and components.
  • Most of the functions in the API are not too difficult to implement when developing COM-style components on a non-Windows system.
  • The COM library was written to guarantee that the most important operations are done in the same way for all components.
  • The COM library also saves developers time implementing their own components and clients.
  • Most of the code in the COM library is support for distributed or networked components.
  • The Distributed COM (DCOM) implementation on Windows System provides the code needed to communicate with components over a network.
  • This reduces to write the networking code.

Permalink Leave a Comment