???????????? Techniques and Applications of COTS Software Reuse - PowerPoint PPT Presentation

About This Presentation
Title:

???????????? Techniques and Applications of COTS Software Reuse

Description:

Title: COTS Software Reuse in Distributed Environments Author: Jim-Min Lin Last modified by: BlueSky Created Date: 11/7/2000 8:37:56 AM Document presentation format – PowerPoint PPT presentation

Number of Views:164
Avg rating:3.0/5.0
Slides: 72
Provided by: JimMi160
Category:

less

Transcript and Presenter's Notes

Title: ???????????? Techniques and Applications of COTS Software Reuse


1
????????????Techniques and Applications of COTS
Software Reuse
  • ???
  • ?????????
  • ??????
  • jimmy_at_thmu.edu.tw

2
Outlines
  • Introduction
  • COTS-Based Systems
  • Distributed Software Integration System (DSIS)
  • DSIS Examples
  • MultiAgent Distributed Scripting System (MADSS)
  • Conclusions
  • MADSS Demo

3
INTRODUCTION
4
Motivation
  • Building a house
  • ??????
  • ?????

5
Motivation (Cont.)
  • Find a parking space in a large parking lot
  • gt How to build a Graphic Parking Lot ?Management
    System?
  • design from scratch (higher cost, longer
    development time, suitable for popular software)
  • design by reusing existing software (lower cost,
    shorter development time, suitable for
    customizing software)

6
CAR RECORD Name Jim-Min
Lin Car_ID RD-9681 Parking space
105 Check-in-date 04/12/2002 Check-in-time
130657 PM Check-out-date 04/12/2002 Check-out-t
ime 155103 PM Parking fee NT 90.00
7
Software Reuse
  • Why software reuse?
  • Time and money saving
  • Diverse tools/functions support
  • Revaluing existing software
  • Ensuring software reliability
  • Evolving software easily
  • Software reuse approaches
  • software reuse with source codes
  • software reuse without source codes

8
Software Reuse
  • Levels of software reuse
  • Functions
  • Modules or objects
  • Subsystems
  • Application systems

9
Software Reuse (cont)
  • Problems with reuse
  • Increased maintenance costs
  • Lack of tool support
  • Maintaining a component library
  • Finding and adapting reusable components
  • gt Component-based Software Engineering is a
    currently feasible and more and more important
    solution to software reuse

10
Component Based Software Development (CBSD or
CBSE)?
  • CBSD focuses on building large software systems
    by integrating previously-existing software
    components.
  • gt Buy, dont build
  • Component-based systems encompass both COTS
    products and components through other means

11
Software components
  • Components with a specific interface protocol
  • CORBA objects
  • COM/DCOM objects
  • JavaBeans
  • EJB ..
  • Components without specific interface protocol
  • off-the-shelf applications with source codes
  • Commercial-Off-The-Shelf (COTS) products without
    source codes lt Focus of our works

12
COTS component
  • COTS component
  • A component that is
  • Sold, leased, or licensed to the general public
  • Offered by a vendor trying to profit from it
  • Supported and evolved by the vendor, who retains
    the intellectual property rights
  • Available in multiple, identical copies used
    without modification of the internals

13
CBS COTS BASED SYSTEMS
14
Software development changes in COTS Based
Systems (CBS)
TraditionalApproach
Required ITSEP Approach
Stakeholder needs/Business Process
Requirements
SimultaneousDefinitionand Tradeoffs
Architecture Design
Architecture/Design
Marketplace
Programmatics/Risk
Implementation
ITSEPInformation Technology Solutions Evolution,
2002, CMU SEI
Adapted from COTS-Based Systems for Program
Managers
15
Activities of CBS development
16
Physical View of COTS-Based System
  • A set of reusable COTS components
  • Software architecture
  • Glueware

17
Architecture
  • Software Architecture
  • A high level design that provides decisions made
    about the problem(s) that the component will
    solve, component descriptions, relationships
    between components, and dynamic operation
    description.
  • A sub-system design made up of a collection of
    components

18
Architecture (cont)
  • Class of architecture
  • System infrastructure
  • Support the development of system infrastructure
  • Middleware integration
  • Support component communication and information
    exchange
  • Example CORBA, COM, DCOM
  • Enterprise application
  • Support the development of end-user application

19
Glueware
  • Glueware supports a physical methodology to
    integrate components
  • Types of Glueware
  • Custom codes
  • System tools, ex Unix pipe filter
  • Scripting language
  • Unix shell
  • Visual Basic
  • TCL/TK(Tool Command Language/Tool Kit)

20
COTS product reuse
  • Benefits with COTS system integration
  • Diverse functionality
  • To reduce costs and delivery times
  • Reduce risks
  • Adaptable alone with system evolution

21
COTS product reuse(cont)
  • Problems with COTS system integration
  • Lack of source codes and the control over
    functionality and performance
  • Problems with COTS system interoperability
  • Lack of support from COTS vendors

22
COTS product reuse(cont)
  • Issues of COTS-based System development
  • Which technologies and COTS products are most
    appropriate?
  • How can COTS product mismatches be rectified in
    our system?
  • How can we engineer system attributes such as
    reliability, security, and performance in spite
    of decreasing control over individual system
    components?
  • How do we integrate COTS products with the custom
    code that continues to provide the core of many
    systems?
  • How do we take advantage of COTS while delivering
    a system that can evolve over a long lifetime?

23
Reuse of COTS Products
  • Our works focused on the CBS integration
    techniques and applications

24
COTS product Integration
  • Integration technique of COTS products
  • Adaptation through Wrapper technique
  • Wrapper
  • A piece of codes that encapsulate the underlying
    components and bridge the components with their
    clients
  • Wrapping COTS as another component with specific
    interface

25
COTS product Integration(cont)
26
Wrapper technique
  • Purposes and usage of a wrapper
  • enhancing the functionality or performance of
    the wrapped software
  • gluing a software with other (independent)
    software so that they can work together

27
Distributed Software Integration System (DSIS)
28
Conceptual View of DSIS
network
29
CORBA-based DSIS
  • Objectives
  • gt Migrating DOS, Windows, and UNIX applications
    to CORBA server objects

30
Overall structure of CORBA-based DSIS
31
Wrapper for CORBA DSIS
  • a program that consists of a CORBA interface
    module and an I/O redirector module
  • gt the former part is responsible for accepting
    requests from CORBA clients and then rescheduling
    the transactions to PC applications if necessary
  • gt the latter part is to intercept I/O data of PC
    applications and support multithreading (or
    multi-instance) for increasing system throughput

32
(No Transcript)
33
Wrapper Operation Scenario
34
Implementation of Wrappers
  • DOS Wrapper
  • Windows Wrapper
  • UNIX Wrapper

35
DOS Wrapper
  • Using DOS VM to intercept and redirect DOS I/O
    channels

36
WINDOWS Wrapper
  • Hooking system message queue and clip board

37
Windows Input Redirection
38
Windows Output Redirection
39
UNIX Wrapper
  • A sandwich-structure wrapper

40
(No Transcript)
41
DSIS Examples
42
DSIS Example 1
  • Graphical Parking Lot Management System (GPLMS)

43
Integration Web Server??
44
GPLMS??????????
45
DSIS Example 2
  • A MultiAgent-based Distributed Scripting System
    (MADSS)
  • Agent-based DSIS scripting mechanism

46
MADSS Overview
USER
47
MADSS System Structure
48
MADSS
  • The benefits
  • More intelligent abilities to deal with tasks
  • Component integration with speech acts
    communication
  • Load balance
  • Adopting existing technologies
  • Java
  • KQML (Agent Communication Language, ACL)

49
MADSS(cont)
  • Roles of MADSS
  • Users
  • Client Agent
  • Slave Agent
  • Facilitator
  • Service Agent

50
MADSS(cont)
  • MADSS Users
  • Responsible for writing MADSS scripts

51
MADSS(cont)
  • Client Agent
  • A stationary agent
  • Interpret an MADSS script program as the
    corresponding agents commands and KQML messages
  • Delegate tasks to slave agents for users
  • Delegate sub-tasks to mobile slave agents

52
MADSS(cont)
  • Slave Agent
  • A mobile agent
  • Get delegated tasks from a client agent
  • Directed/driven by an MADSS script program
  • Bring the requests to a service agent through
    KQML and take the results back to another service
    agent respectively

53
MADSS(cont)
  • Service Agent
  • Advertising services on facilitator
  • Forward messages and method calls to
    corresponding COTS components (COTSwrapper) for
    slave agents
  • Service management

54
MADSS(cont)
  • Facilitator
  • Record agent information for newly created agents
  • Assist an agent to look for an appropriate
    service agent.
  • Assist an agent to deliver messages to the
    corresponding agents.

55
MADSS(cont)
  • Distributed Scripting Language
  • Instruction types
  • Agent execution
  • Identify target agent
  • Task delegation
  • Delegate tasks to target agent
  • Scripting scenarios
  • Circular trip
  • Parallel execution
  • Forth and back

56
Instruction types
  • Agent execution
  • astart agent_name task1, task2
  • Start an agent and specify the associated tasks
  • dispose
  • Terminate an agent
  • execute agent_name
  • Execute an agent
  • pexecute agent1, agent2,
  • Parallel execute several agents

57
Instruction types(cont)
  • Task delegation
  • delegate parameter value
  • d (destination)
  • Destinations address defaultlocal site
  • s (service)
  • Target service defaultnull
  • n (name)
  • Service Agents name
  • t (expire time)
  • Expire time to dispose an agent

58
Instruction types(cont)
  • Task delegation
  • delegate parameter value
  • -c (message content)
  • Message contents for communicating with remote
    service agents.
  • -fn (nth file name)
  • The nth file containing data carried by a mobile
    slave agent to a destination site
  • -r (file name)
  • the file containing the service results back to
    origin

59
Scripting scenarios
  • Circular trip

60
Scripting scenarios (cont)
  • Example of circular trip
  • astart AgentA //140.134.26.58, default agent
    transfer protocol (atp) port 4434
  • delegate -d atp//140.134.26.56 -n
    Calculator_agent1 -s Math -c (13) -r result1
    -f null
  • delegate -d atp//140.134.26.65 -n
    Calculator_agent2 -s Math -c (result14) -r
    result2 -f null
  • delegate -d atp//140.134.26.58 -n
    client_agent -s Home -c result1,result2 -r null
    -f null
  • dispose
  • execute AgentA

61
Scripting scenarios (cont)
  • Parallel execution

62
Scripting scenarios (cont)
  • Example of parallel execution
  • astart AgentB //140.134.26.58
  • delegate -d atp//140.134.26.56 -n KqmlMedia -s
    Media -c c\abc.mpg -r null -f file_B
  • astart AgentC //140.134.26.58
  • delegate -d atp//140.134.26.65 -n KqmlMedia -s
    Media c C\song.mp3 -r null -f file_c
  • pexecute AgentB,AgentC

63
Scripting scenarios (cont)
  • Forth and back

64
Scripting scenarios (cont)
  • Example of forth and back
  • astart AgentD // 140.134.26.58 Aglet 2.0.2 port
    4434
  • delegate -d atp//140.134.26.65 -n Calculator_1
    -s Math -c (13) -r result1 f null
  • delegate -d atp//140.134.26.56 -n Calculator_2
    -s Math -c (32) -r result2 -f null
  • delegate -d atp//140.134.26.65 -n Calculator_1
    -s Math -c (result1result2) -r result3 -f
    null
  • delegate -d atp//140.134.26.58 -n agent_jimmy
    -s print_result -c result1,result2,result3 -r
    null -f null
  • dispose
  • execute AgentA

65
????MADSS
  • Environment
  • 3 PCs
  • Windows 2000/98
  • Java 2 Standard Version
  • IBM Aglet

66
CONCLUSIONS
67
Summary
  • The Internet is a repository of countless COTS
    products.
  • CBS is highly possibly an economic and fast way
    to building a software system
  • DSIS provides a feasible solution to constructing
    a CBS. MADSS is for integrating heterogeneous
    software through a scripting programming.
  • We have successfully implemented an experimental
    MADSS based on IBM Aglet package

68
Future Works
  • Interface specification mechanism for COTS based
    software components
  • Software architecture for COTS based systems
  • Agent-based CBS component searching system
  • KQML -gt XML
  • MADSS Programmatic interface

69
Important Source of references
  • International Conference on COTS Based System
    (ICCBS) --- initiated by CMU SEI
  • Web Site www.sei.cmu.edu

70
Q A
71
THANK YOU VERY MUCH!
  • ???
  • 1.????????? ??????,????
  • 2.???? ??????,???
  • Jimmy_at_thmu.edu.tw
Write a Comment
User Comments (0)
About PowerShow.com