Title: ???????????? Techniques and Applications of COTS Software Reuse
1????????????Techniques and Applications of COTS
Software Reuse
- ???
- ?????????
- ??????
- jimmy_at_thmu.edu.tw
2Outlines
- Introduction
- COTS-Based Systems
- Distributed Software Integration System (DSIS)
- DSIS Examples
- MultiAgent Distributed Scripting System (MADSS)
- Conclusions
- MADSS Demo
3INTRODUCTION
4Motivation
- Building a house
- ??????
- ?????
5Motivation (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)
6CAR 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
7Software 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
8Software Reuse
- Levels of software reuse
- Functions
- Modules or objects
- Subsystems
- Application systems
9Software 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
10Component 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
11Software 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
12COTS 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
13CBS COTS BASED SYSTEMS
14Software 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
15Activities of CBS development
16Physical View of COTS-Based System
- A set of reusable COTS components
- Software architecture
- Glueware
17Architecture
- 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
18Architecture (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
19Glueware
- 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)
20COTS product reuse
- Benefits with COTS system integration
- Diverse functionality
- To reduce costs and delivery times
- Reduce risks
- Adaptable alone with system evolution
21COTS 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
22COTS 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?
23Reuse of COTS Products
- Our works focused on the CBS integration
techniques and applications
24COTS 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
25COTS product Integration(cont)
26Wrapper 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
27Distributed Software Integration System (DSIS)
28Conceptual View of DSIS
network
29CORBA-based DSIS
- Objectives
- gt Migrating DOS, Windows, and UNIX applications
to CORBA server objects
30Overall structure of CORBA-based DSIS
31Wrapper 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)
33Wrapper Operation Scenario
34Implementation of Wrappers
- DOS Wrapper
- Windows Wrapper
- UNIX Wrapper
35DOS Wrapper
- Using DOS VM to intercept and redirect DOS I/O
channels
36WINDOWS Wrapper
- Hooking system message queue and clip board
37Windows Input Redirection
38Windows Output Redirection
39UNIX Wrapper
- A sandwich-structure wrapper
40(No Transcript)
41DSIS Examples
42DSIS Example 1
- Graphical Parking Lot Management System (GPLMS)
43Integration Web Server??
44GPLMS??????????
45DSIS Example 2
- A MultiAgent-based Distributed Scripting System
(MADSS) - Agent-based DSIS scripting mechanism
46MADSS Overview
USER
47MADSS System Structure
48MADSS
- 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)
49MADSS(cont)
- Roles of MADSS
- Users
- Client Agent
- Slave Agent
- Facilitator
- Service Agent
50MADSS(cont)
- MADSS Users
- Responsible for writing MADSS scripts
51MADSS(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
52MADSS(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
53MADSS(cont)
- Service Agent
- Advertising services on facilitator
- Forward messages and method calls to
corresponding COTS components (COTSwrapper) for
slave agents - Service management
54MADSS(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.
55MADSS(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
56Instruction 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
57Instruction 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
58Instruction 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
59Scripting scenarios
60Scripting 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
61Scripting scenarios (cont)
62Scripting 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
63Scripting scenarios (cont)
64Scripting 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
66CONCLUSIONS
67Summary
- 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
68Future 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
69Important Source of references
- International Conference on COTS Based System
(ICCBS) --- initiated by CMU SEI - Web Site www.sei.cmu.edu
70Q A
71THANK YOU VERY MUCH!
- ???
- 1.????????? ??????,????
- 2.???? ??????,???
- Jimmy_at_thmu.edu.tw