Document Sample
COM Powered By Docstoc
					Component Technology
Challenges Facing the Software Industry
   Today’s applications are large & complex –
    time consuming to develop, difficult and
    costly to maintain and risky to extend with
    additional functionality
   Applications are monolithic – consisting of a
    single binary file – prepackaged with wide
    range of features, most of which cannot be
    upgraded independently
Challenges Facing the Software Industry
   Applications are not easily integrated – data
    & functionality of one application are not
    easily available to other applications, even if
    the applications are written in the same
    language and running on the same computer
Solution – Component Architecture
   Solution lies in breaking the software into
    reusable “Components”
   A Component is like a mini application, which
    comes as a binary bundle of code, that is
    compiled, linked and ready to use
   Monolithic application is replaced with custom
    components that connect with each other at
    run-time to form an application
Solution – Component Architecture
   For example, a component might be a spell
    checking feature sold by one vendor that can
    be plugged into several different word
    processing applications
   Modifying or enhancing the application is a
    simple matter of replacing one of these
    constituent components with a new version
   Application remain no more static entity,
    instead it evolves gracefully over time as new
    components replace older ones
Component Benefits
   Application Customisation
       Component      architecture  lends     itself to
        customisation as each component can be replaced
        with a different component that better meets the
        needs of the user
   Helps evolution of application as new
    components replace the older ones
Component Benefits
   Rapid Application Development
       Component        architecture  facilitates rapid
        application development, by choosing components
        from a component library and snap them together
        to build application
Component Benefits
   Distributed Components
       With increasing bandwidth, the need for
        applications composed of parts spread over a
        network is going to increase
       Component architecture simplifies the process of
        developing such distributed applications
Component Benefits
    Client/Server applications have already
     taken first step towards a component
     architecture by splitting into two parts –
     client part and server part
    Making a distributed application out of an
     existing application is easier, if it is made
     of components, as the application is
     already divided into functional parts that
     can be located remotely
Component Benefits
    The distributed application can contain a
     component that has a sole purpose of
     communicating with a remotely located
     component,     thereby    rendering   the
     application completely independent of
     where actual components are located
What makes Components so useful?
   The advantages 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
       First, components must link dynamically
       Second, components must hide (or encapsulate)
        the details of how they are implemented
What makes Components so useful?
   Dynamic Linking
       The ultimate goal is to provide the facility to
        replace the components in our application while
        the application is still running. Support for
        changing components at run time requires the
        ability to dynamically link components together
What makes Components so useful?
   Encapsulation
       Encapsulation is a crucial condition for dynamic
       To replace an old component in a system with a
        new component, it is necessary that the new
        component must connect in the same manner as
        the old component or else atleast a recompile, if
        not a rewrite will have to be done
What makes Components so useful?
     To achieve encapsulation, Components
      connect to each other through interfaces
     Interface isolate implementation details of
      the    component,     thus   changing     a
      component has no effect on the rest of the
How Things are Achieved?
   The Component Object Model (COM), which
    is the underlying specification, meets all the
    requirements for component architecture

   COM is a standard which specifies how to
    build components and how components talk
    to each other
COM Components
   Components written to COM specifications are
    refered to as COM components

   COM Components consist of executable code
    distributed either as dynamic linked libraries (DLLs)
    or as executables (EXEs)
COM Components
   COM components meet all the requirements
    for a component architecture
       COM Component are fully language independent
       Can be shipped in binary form
       Can be upgraded without breaking old clients
       Can be transparently relocated on a network
       Announce their existence in a standard way using
        COM’s publication scheme

Shared By: