310 likes | 584 Views
Object Oriented Paradigm. An evolutionary path. Programming At Its Infancy. A program is a single block of procedural code Disadvantages: Reusability is practically nil. Programming Complexity is high.
E N D
Object Oriented Paradigm An evolutionary path
Programming 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.
Software Development- The Structured Approach • Top-down design followed by bottom-up programming • Top-down decomposition driven by functional criteria • Architecture reflects system functions
The 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.
The 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.
Software 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). • Doesn’t replace the structured approach; builds on top of it. • Further modularization achieved through the decoupling of the system into independent objects.
Object 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.
Object Oriented Paradigm – Key Features • Abstraction • Encapsulation • Inheritance • Polymorphism
Changing 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?
Component 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.
Component 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
Component Technology – Industry Initiatives • Microsoft’s COM • OMG’s CORBA • SUN’s Java Beans / EJBs
Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs
COM– 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)
Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs
CORBA 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
Component Technology • Microsoft’s COM • OMG’s CORBA • Java Beans / EJBs
JB/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
Component 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
Component 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)
Component 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
COM 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
Web 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
.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 platformsor languages in use.
.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
.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
Software 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
HailStorm – 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
myAddress myProfile myContacts myLocation myNotifications MyInbox myCalendar myDocuments myApplicationsettings myFavouritewebsites myWallet myDevices myServices myUsage Hailstorm Services
SoftwareDevelopment using Hailstorm • Use HailStorm services in your applications for user authentication, routing notifications to the users of your applications
Future • 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