component technology. challenges facing the software industry today’s applications are large &...

17
Component Technology

Upload: andrew-miles

Post on 02-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

Component Technology

Page 2: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 3: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 4: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 5: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 6: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 7: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 8: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 9: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 10: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 11: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 12: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 13: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

What makes Components so useful?

Encapsulation Encapsulation is a crucial condition for

dynamic linking 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

Page 14: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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 application

Page 15: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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

Page 16: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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)

Page 17: Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly

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