rajib mall lecture notes part 22

Upload: anuj-nagpal

Post on 04-Apr-2018

262 views

Category:

Documents


3 download

TRANSCRIPT

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    1/56

    1

    Emerging Trends inSoftware Engineering

    Prof. R. Mall

    Dept. of CSE, IIT, Kharagpur

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    2/56

    2

    Introduction

    Technology developments occur: To adapt to new environments To respond to new challenges

    Few important developments that haveoccurred over the last decade or so: Desktops have become more powerful andat the same time more affordable.

    Internet has become widely accepted. Mobile computing. Outsourcing has become prevalent.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    3/56

    3

    Background Software market has two parts:

    Products (General purpose

    software)Services (custom software)

    Total business appx. $1 Trillion

    Half in products and half servicesServices segment is growing fast

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    4/56

    4

    Backgroundcont

    SE goal is to develop softwareto satisfy user needs.

    Either generic or one-off. Customer needs are consideredsacrosanct and fixed:

    Vendor has to find the solution.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    5/56

    5

    Background: A Constraint onSoftware Engineering Process

    Business Process

    Implementation in IT

    Time required = T1

    Change in Business Process

    Change in the IT solutionsupporting

    the business process

    Time required = T2

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    6/56

    6

    Background: Desired Goals A. Reduce T1 (and improve quality) B. Reduce T2 A requires:

    Process should efficiently capturerequirements of the business and thenefficiently convert it to code.

    B requires: Implementation should be such thatbusiness process changes can be easilyaccommodated in the software solution.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    7/56

    7

    ChallengesBeing Faced Delivery time requirements areshortening: High business velocity requires this.

    Software is becoming a bottleneck inimplementing business process changes.

    Businesses are getting tired of software

    cost, late deliveries, poor quality, risk, Hardware and software cost differentialsare becoming more and more glaring.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    8/56

    8

    Challenges Being Facedcont

    Software sizes are furtherincreasing. How software is to be effectively

    developed in following contexts isnot clear: Distributed platforms

    Working with Internet Distributed development teams

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    9/56

    9

    Noticeable SoftwareEngineering Technology Trends

    Following software engineeringtrends are easily noticeable:

    Client-server (or Component-based)development

    Service-Oriented Architecture(SOA)

    Software as a Service (SaaS)

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    10/56

    10

    Client-Server Technology

    Both clients and servers are pieces ofsoftware. Concepts of Clients and Servers are

    nothing new --- have existed forages: Clients are consumers of service. Servers are providers of service.

    Why is then a sudden interest seen inclient-server software architecture?

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    11/56

    11

    Advantages of Client-ServerCompared to Traditional Software Flexibility:

    Clients and servers can be easily attached andremoved.

    Modularity Concurrency Fault-tolerance Clients are cheap computers:

    Servers are expensive computers tucked away insome AC rooms.

    To use a software you not need not buyexpensive server hardware and software.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    12/56

    12

    Client-Server versusTraditional Software

    The following two factors are possibly themost relevant:

    Component-based software development: To develop a hardware solution an electronicengineer does not solder transistors andresistors on a PCB --- uses off-the-shelf ICs.

    Why not do the same for software.

    Current trend of mobile computing: Handhelds can only be clients due to lowprocessing and memory capabilities.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    13/56

    13

    Component Architectures

    Two tier architecture: Most obvious

    But does not work.

    Server 1 Server m

    Client 1

    Client n

    Internet

    Wh h P bl i h

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    14/56

    14

    What are the Problems withthe 2-tier Architecture?

    Servers can be bottleneck. How to locate servers? Client-Server incompatibility:

    Analogy: House hunting in

    Bangalore.

    S l ti 3 ti

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    15/56

    15

    Middleware

    Solution: 3-tierArchitecture

    Server 1 Server m

    Client 1 Client n

    InternetMiddleware

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    16/56

    16

    Middleware Standards CORBA versus COM/DCOM CORBA (common object request

    broker architecture) Being advocated by OMG

    COM/DCOM:

    Being advocated by Microsoft

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    17/56

    17

    CORBA Architecture

    ORB

    Server 1 Server mSkeleton Skeleton

    Client 1 Client n

    Stub Stub

    Object Adapter

    DSI DSI

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    18/56

    18

    CORBA Architecture Skeleton:

    Marshalls client requests

    The servers register themselves with

    the object-adapter. The ORB delivers the client request tothe server.

    The Skeleton marshalls the serverresponse.

    DII/DSI for dynamic service invocation.

    IDL: Interface

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    19/56

    19

    IDL: InterfaceDevelopment Language

    Interfaces between clients andservers can be specified.

    Similar to C++ or Java: But no executable statements.Interface clock{

    set-time(int hh, int mm, int ss);get-time(int hh, int mm, int ss);

    }

    H t D v l p C mp n nt

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    20/56

    20

    How to Develop Component-Based Applications?

    Divide application into components. Determine component interfaces:

    Define using IDL. Get available components:

    Build the ones not available

    Integrate the components and test

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    21/56

    21

    CORBA Implementations

    VisigenicIonaOrbixJava IDL

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    22/56

    22

    COM/DCOM

    COM used when application runs on asingle machine: DCOM for distributed machine.

    Concepts are similar to CORBA: Though terminologies are different. Proxy on client side. More usable than CORBA.

    What is a component in COM/DCOM? A .exe or .dll component Created using VB or VC++

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    23/56

    23

    COM/DCOM versus CORBA

    COM/DCOM strong on client side: CORBA on server side. Java Beans an attempt to bridge thisgap.

    COM/DCOM more usable: If your application is to run only onMicrosoft operating systems, better use

    COM/DCOM. If your application needs to run onheterogeneous platforms, better useCORBA.

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    24/56

    24

    Service-Oriented

    Architecture (SOA)

    SOA I d i

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    25/56

    25

    SOA: Introduction Service-orientation principles havetheir roots in the object-orienteddesigning.

    Many claim that service-orientationwill replace object-orientation:

    Others think the two arecomplementary paradigms.

    Wh i OA?

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    26/56

    26

    What is SOA?

    Build applications by composing softwareservices. What is a software service?

    Essentially software components. Typically implement functionality mosthumans would recognize as a service.

    Examples of services:

    Filling out an online application Viewing an online bank-statement Placing an online booking

    F ll

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    27/56

    27

    Service: More Formally

    A service is a contractuallydefined behavior:

    Implemented and provided by acomponent for use by anapplication developer.

    d l

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    28/56

    28

    SOA vs. Component Model

    Several things common betweenservices and components: Multiple-use

    Non-context-specific Composable Encapsulated i.e., non-investigablethrough its interfaces

    A unit of independent deploymentand versioning

    Loose coupling

    SOA vs Component Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    29/56

    29

    SOA vs. Component Modelcont

    Several things different. Compared to components:

    SOA's atomic-level objects areoften 100 to 1,000 times larger.

    Services may be developed and

    hosted separately.Possibly pay per use.

    SOA vs Component Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    30/56

    30

    SOA vs. Component Modelcont

    Instead of services embedding calls toeach other in their source code: They use defined protocols whichdescribe how services can talk to eachother.

    This architecture relies on a businessprocess expert:

    Links and sequences services, in a processknown as orchestration, to meet a newbusiness requirement.

    SOA vs Component Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    31/56

    31

    SOA vs. Component Modelcont

    SOA targets fairly large chunks offunctionality to be strung together toform new services:

    Built almost entirely from existingsoftware services.

    The larger the chunks: The fewer the interfacings required; Faster development; However, very large chunks may notprove easy to reuse.

    SOA Nitt G itt

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    32/56

    32

    SOA: Nitty Gritty SOA is a collection of services:

    That communicate with each other.

    The services are self-contained: Do not depend on the context or stateof the other service.

    Each service works within adistributed-system architecture.

    SOA : Nitty Gritty

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    33/56

    33

    SOA : Nitty Grittycont

    A paradigm for utilizing distributedcapabilities: May be under the control of

    different ownership domains. Provides a uniform means:

    To offer, discover, interact with anduse capabilities to achieve desiredresults.

    SOA: Nitty Gritty

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    34/56

    34

    SOA: Nitty Grittycont

    SOA would fundamentally change theway we construct software systems.

    SOA involves statically and dynamicallyplugging-in services to build software.

    SOA players:

    BEA Aqua logic, Oracle Web services

    manager, HP Systinet Registry, MS .Net,IBM Web Sphere, Iona Artrix, Javacomposite application suite.

    SOA: Nitty Gritty

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    35/56

    35

    SOA: Nitty Grittycont

    Views software as providing a set of services: Each service composed of smaller services.

    Leverages the Internet and emergingstandardization on it for interoperability

    Hopes that a market place for differentpredefined services can emerge: Not tied to any specific vendor

    An app can be built using these services: And building the missing ones.

    Principles of Service-

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    36/56

    36

    Principles of ServiceOrientation: Services

    Services: Abstract the underlying data andlogic

    Composable Autonomous Share a formal contract

    Loosely coupled Stateless Discoverable

    SOA Entiti s

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    37/56

    37

    ServiceConsumer

    ServiceProvider

    Contract Registry

    SOA Entities

    SOA Implementation

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    38/56

    38

    SOA Implementation

    Web services can implement aservice-oriented architecture.

    Web services make functional

    building blocks Accessible over standard Internetprotocols

    Independent of platforms andprogramming languages.

    Service Orchestration

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    39/56

    39

    Service Orchestration

    Requires metadata in sufficient detailto describe: The characteristics of the services, Also the data that drives them.

    The services are typically described byWSDL.

    Communications protocols by SOAP. Data and meta data by XML

    SOA Vision

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    40/56

    40

    SOA Vision

    Have a marketplace for services: It will automatically improve qualityand reduce prices.

    To build an application: Use off-the-shelf services andpossibly build some.

    Cost of building reduces; Also cost of ownership (which is quitelarge for regular software) reduces.

    Great Promise of SOA

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    41/56

    41

    Great Promise of SOA The cost of creating the n-thapplication is near-zero,

    As all of the software servicesrequired already exists.

    Only orchestration required to

    produce a new application.

    SOA Challenges

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    42/56

    42

    SOA Challenges

    Building services and infrastructure Composing services formal theoryand algebra, languages, semantics

    Testing and verification Trust Non Functional properties Changes Business level modeling and translation Developing the marketplace

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    43/56

    43

    Software as a

    Service (SaaS)

    Challenge Faced

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    44/56

    44

    Challenge Faced Owning software is very expensive:

    An Rs. 50 Lakh software running on an Rs.1 Lakh computer is common place.

    As with hardware, owning software isthe business tradition: Both products and services bought and

    used. Most of IT budget now goes in supportingthe software assets.

    Background

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    45/56

    45

    Background To have water supply at home:

    Do you install system to pump water fromriver directly to your home?

    To get electricity supply: Do you install a thermal or hydro electricgenerator?

    It would lead to wastage:You do not need to have all the water pipesopen all the time.

    Unnecessarily expensive proposition.

    Background

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    46/56

    46

    Backgroundcont

    Should you own Rational Suitepaying Rs. 50 Lakhs: If you use it only 10 hours every

    month One hour of usage costs Rs. 100/- Also frees use from maintenance and

    data storage costs --- Given thatmaintenance is usually a severeoverhead.

    SaaS

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    47/56

    47

    SaaS Lets customers pay for whatthey need and when:With price reflecting market

    place supply and demand. SaaS includes:

    Elements of outsourcing andApplication service provisioning

    SaaS

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    48/56

    48

    SaaS

    SaaS is a model of softwaredelivery:Software owner provides

    maintenance, daily technicaloperation, and support for thesoftware.

    Services are provided to theclients on amount of usage basis.

    SaaS vs SOA

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    49/56

    49

    SaaS vs. SOA

    SaaS is a software delivery model: SOA is a software constructionmodel.

    SaaS counters the concept of auser as the owner: Owner is a vendor who hosts the

    software and lets the users executeon-demand charges per usage units.

    SaaS versus SOA

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    50/56

    50

    SaaS versus SOA Despite significant differences:

    Espouse closely related architecturemodels.

    SaaS and SOA complement each other: SaaS helps to offer components for SOAto use.

    SOA helps to help quickly realize SaaS.

    Main enabler of SaaS and SOA: Internet and web services technologies.

    Key Characteristics

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    51/56

    51

    Key Characteristics

    Network-based access and management ofcommercially available (not custom) software.

    Activities managed from central location andnot at customer site, Enabling customers to access applicationsremotely via the Web.

    Application delivery follows a one-to-many

    model (single instance, multi-tenantarchitecture): In contrast to a one-to-one model.

    Business Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    52/56

    52

    Business Model Shift "ownership" of the software:

    From the customer to a service provider.

    Shift responsibility for hardware and

    software management: From the customer to the provider

    Reduce the cost of providing software

    services: Through specialization and economy ofscale.

    Target the "long tail" of small customers

    Current Business Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    53/56

    53

    Current Business Model

    SaaS Business Model

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    54/56

    54

    SaaS Business Model

    SaaS Architecture

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    55/56

    55

    SaaS Architecture

    Meta-Model

    Data

    Player

    Designer

    ApplicationInstance

    Play/Edit

    Edit

    Client 1

    Client 2

    Client n

    Summary

  • 7/30/2019 Rajib Mall Lecture Notes part 22

    56/56

    56

    Summary Some of the basic assumptions of software

    are changing This is leading to some different paradigmsfor software delivery.

    Component-based development: Expected to reduce development time, cost andat the same time improve quality.

    SaaS is changing the way software isdelivered.

    SOA conceives a component based assemblymodel with independent component vendors.