Title: Object Oriented Paradigm
1Object Oriented Paradigm
2Programming At Its Infancy
- A program is a single block of procedural code
- Disadvantages
- Reusability is practically nil.
- Programming Complexity is high.
- Software cannot not evolve gracefully as changes
in one part of the software can have unwanted
side-effects.
3Software Development- The Structured Approach
- Top-down design followed by bottom-up programming
- Top-down decomposition driven by functional
criteria - Architecture reflects system functions
4The Structured Approach - Advantages
- Modularization implies
- Reduction in software complexity
- Increased reusability
- Reduction in unwanted side-effects as much of the
effect is confined to the module being changed.
5The Structured Approach - Disadvantages
- Produces satisfactory results only when functions
have been identified properly and remain
unchanged through time. - Software structure is induced by functions. Thus
evolution of these functions may imply important
structural modifications. - Guarantees only limited modularizations thereby
rendering subsequent modifications difficult and
filled with side-effects.
6Software Development - The Object Oriented
Approach
- A paradigm shift from a function-centric approach
to an object-centric approach to software
development. - Structure induced by players (which constitute
the more static part of the system) rather than
by functions (the dynamic and evolving part of
the system). - Doesnt replace the structured approach builds
on top of it. - Further modularization achieved through the
decoupling of the system into independent objects.
7Object Oriented Approach - Advantages
- Models the real world more closely.
- Is easier to maintain because its structure is
inherently decoupled. - Leads to reuse which in turn leads to faster
software development and higher quality programs.
8Object Oriented Paradigm Key Features
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
-
9Changing Scenario
- Emergence of networks Can the capabilities of
networks be exploited to create an application
that is distributed over the network? YES - Increasing software complexity Can a software
be assembled from a collection of pre-built,
plug-and-play software components much in the
same way as a hardware is created? YES - HOW?
10Component Technology
- A software component is defined as an
independent, binary piece of code that can
connect at run-time with other software
components to provide the desired functionality.
11Component Technology - Goals
- Basic Interoperability A software component
developed by one developer should be able to
interoperate with other components - Versioning It should be possible to upgrade a
component without need to upgrade the entire
software - Language Independence Components written in
different languages should be able to communicate - Cross-process Interoperability Two software
components running in two different process
spaces should be interoperable - Cross-network Interoperability Two software
components running in two different machines
connected over the network should be interoperable
12Component Technology Industry Initiatives
- Microsofts COM
- OMGs CORBA
- SUNs Java Beans / EJBs
13Component Technology
- Microsofts COM
- OMGs CORBA
- Java Beans / EJBs
14COM Key Features
- Component Object Model (COM)
- A component communication protocol by Microsoft
- OS (Windows) dependent
- Language independent
- Provides a standard way of accessing all kinds of
software services be it in a library (DLL), in
another process (EXE) or in another machine
(DCOM)
15Component Technology
- Microsofts COM
- OMGs CORBA
- Java Beans / EJBs
16CORBA Specification
- A specification defined by Object Management
Group (OMG) - Non-profit organization
- Engaged in promoting vendor-independent solution
using Object Technology - Language independent
- OS independent
17Component Technology
- Microsofts COM
- OMGs CORBA
- Java Beans / EJBs
18JB/EJB Specifications
- Java Beans (JB), Enterprise Java Beans (EJB)
- Expounded by Sun Microsystems
- Language Dependent
- Built around Java Language
- Java specification Controlled by Sun
Microsystems - OS Independent
19Component Technology Common Features
- All the three technologies built on Protocols
that guide the inter-Process communication among
processes on same or different systems - Adopt the key features of the object-oriented
paradigm - Interface is everything
20Component based approach to software development
- Software is developed as a collection of
collaborating components - Collaboration may be intra-process, inter-process
or inter-network - Individual components may be written in
multiple-languages (in case of COM) - Components may be ported to multiple platforms
(in case of JB/EJB)
21Component Based Approach to Software Development
- Disadvantages of current technologies
- Limited language independence
- JB/EJB components limited to Java
- COM components support language independence but
require a conscious effort - Interacting components must comply to the same
standard - JB/EJB components can interact only with other
JB/EJB components - Similarly with COM
22COM Components Drawbacks
- Allow only limited language independence
- Allow inheritance only if both parent child
components are written in the same language - Can be accessed only by COM compliant components
- Create DLL Hell
23Web Services
- An application delivered as a service that can be
integrated with other Web services using the
ubiquitous Internet Standards (HTTP, XML, SOAP
protocols). - Can be implemented using full feature set of any
language, object model or platform. - Can be consumed by applications implemented in
any language for any platform - Built on and an extension of COM Technology
- Abstraction scaled up to higher level
- Group of components, capable of delivering a
meaningful service, is seen as a reusable unit - The service is extended through Contract
(comparable to Interface in Component) - The Contract is published by provider on web
24.NET Framework
- The Microsoft .NET Framework is a new platform
for building integrated, internet-based,
service-oriented applications to meet the needs
of applications that gather information from, and
interact with, a wide variety of sources,
regardless of the platforms or languages in use.
25.NET Framework - Objectives
- Use the Right Language for the Right Job Cross
Language Integration - Execute on many platforms Platform Independence
- Run Once, Run Always The end of DLL Hell
26.NET Framework Enabling Features
- Standardisation of language Architecture
- Common data Types, Sys_Lib etc.
- Common Language Runtime (CLR)
- Comparable to Java Virtual Machine but capable of
handling multiple languages - Microsoft Intermediate Language (MSIL)
- Comparable to byte code of Java
- CLR MSIL enable JIT compilation on any platform
that supports CLR
27Software Development using the .NET Framework
- Develop applications as a collection of
collaborating components or web services that are
portable across platforms and can interact across
language boundaries - Strengthened by open protocol of accessibility
like http, xml etc - Web Services assisted by .NET
- Platform language independence
28HailStorm a user-centric web service
- .Net based Web Services
- The first paid web-service from Microsoft
- Based on Microsoft Passport user Authentication
- Domain Personal Information Management
- Helps you manage and protect your information and
interaction across all applications and devices - Strengthened by Authentication, authorization and
access period
29Hailstorm Services
- myAddress
- myProfile
- myContacts
- myLocation
- myNotifications
- MyInbox
- myCalendar
- myDocuments
- myApplicationsettings
- myFavouritewebsites
- myWallet
- myDevices
- myServices
- myUsage
30SoftwareDevelopment using Hailstorm
- Use HailStorm services in your applications for
user authentication, routing notifications to the
users of your applications
31Future
- High Independence at Low level
- Easy Integration at middle level
- Total Convergence at Application level
- Any where Any Time
- Any Language Any OS
- Any Device
- Thanx