現有軟體之重用技術與應用 techniques and applications of cots software reuse

Download 現有軟體之重用技術與應用 Techniques and Applications of  COTS Software Reuse

If you can't read please download the document

Upload: zanna

Post on 09-Jan-2016

45 views

Category:

Documents


8 download

DESCRIPTION

現有軟體之重用技術與應用 Techniques and Applications of COTS Software Reuse. 林志敏 臺中健康暨管理學院 資訊管理學系 [email protected]. Outlines. Introduction COTS-Based Systems Distributed Software Integration System (DSIS) DSIS Examples MultiAgent Distributed Scripting System (MADSS) Conclusions MADSS Demo. - PowerPoint PPT Presentation

TRANSCRIPT

  • Techniques and Applications of COTS Software [email protected]

  • OutlinesIntroductionCOTS-Based SystemsDistributed Software Integration System (DSIS) DSIS Examples MultiAgent Distributed Scripting System (MADSS)ConclusionsMADSS Demo

  • INTRODUCTION

  • MotivationBuilding a house

  • Motivation (Cont.)Find a parking space in a large parking lot=> 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)

  • CAR RECORDName Jim-Min LinCar_ID RD-9681Parking space 105Check-in-date 04/12/2002Check-in-time 13:06:57 PMCheck-out-date 04/12/2002Check-out-time 15:51:03 PMParking fee NT$ 90.00

  • Software Reuse Why software reuse?Time and money savingDiverse tools/functions supportRevaluing existing software Ensuring software reliabilityEvolving software easilySoftware reuse approachessoftware reuse with source codessoftware reuse without source codes

  • Software ReuseLevels of software reuse:FunctionsModules or objectsSubsystemsApplication systems

  • Software Reuse (cont)Problems with reuseIncreased maintenance costsLack of tool supportMaintaining a component libraryFinding and adapting reusable components=> Component-based Software Engineering is a currently feasible and more and more important solution to software reuse

  • Component Based Software Development (CBSD or CBSE)?CBSD focuses on building large software systems by integrating previously-existing software components.=> Buy, dont build

    Component-based systems encompass both COTS products and components through other means

  • Software componentsComponents with a specific interface protocolCORBA objectsCOM/DCOM objectsJavaBeansEJB ..Components without specific interface protocol off-the-shelf applications with source codesCommercial-Off-The-Shelf (COTS) products without source codes
  • COTS componentCOTS componentA component that isSold, leased, or licensed to the general publicOffered by a vendor trying to profit from itSupported and evolved by the vendor, who retains the intellectual property rightsAvailable in multiple, identical copies; used without modification of the internals

  • CBS: COTS BASED SYSTEMS

  • Software development changes in COTS Based Systems (CBS)

    RequirementsArchitecture & DesignImplementationSimultaneous Definition and TradeoffsMarketplaceArchitecture/ DesignStakeholder needs/ Business ProcessProgrammatics/ RiskAdapted from COTS-Based Systems for Program ManagersTraditional ApproachRequired ITSEP ApproachITSEP:Information Technology Solutions Evolution, 2002, CMU SEI

  • Activities of CBS development

  • Physical View of COTS-Based SystemA set of reusable COTS componentsSoftware architectureGlueware

  • Architecture Software ArchitectureA 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

  • Architecture (cont)

    Class of architectureSystem infrastructureSupport the development of system infrastructureMiddleware integrationSupport component communication and information exchangeExample: CORBA, COM, DCOMEnterprise applicationSupport the development of end-user application

  • GluewareGlueware supports a physical methodology to integrate componentsTypes of GluewareCustom codesSystem tools, ex: Unix pipe filterScripting languageUnix shellVisual BasicTCL/TK(Tool Command Language/Tool Kit)

  • COTS product reuseBenefits with COTS system integrationDiverse functionalityTo reduce costs and delivery timesReduce risksAdaptable alone with system evolution

  • COTS product reuse(cont)Problems with COTS system integrationLack of source codes and the control over functionality and performanceProblems with COTS system interoperabilityLack of support from COTS vendors

  • COTS product reuse(cont)Issues of COTS-based System developmentWhich 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?

  • Reuse of COTS ProductsOur works focused on the CBS integration techniques and applications

  • COTS product IntegrationIntegration technique of COTS productsAdaptation through Wrapper techniqueWrapperA piece of codes that encapsulate the underlying components and bridge the components with their clientsWrapping COTS as another component with specific interface

  • COTS product Integration(cont)

    Wrapper

    COTSSoftware

    Wrapped Component

    Custom Code

    Added Interface

  • Wrapper techniquePurposes and usage of a wrapperenhancing the functionality or performance of the wrapped softwaregluing a software with other (independent) software so that they can work together

  • Distributed Software Integration System (DSIS)

  • Conceptual View of DSISnetwork

  • CORBA-based DSISObjectives => Migrating DOS, Windows, and UNIX applications to CORBA server objects

  • Overall structure of CORBA-based DSIS

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

  • Wrapper Operation Scenario

  • Implementation of WrappersDOS WrapperWindows WrapperUNIX Wrapper

  • DOS WrapperUsing DOS VM to intercept and redirect DOS I/O channels

  • WINDOWS WrapperHooking system message queue and clip board

  • Windows Input Redirection

  • Windows Output Redirection

  • UNIX WrapperA sandwich-structure wrapper

  • DSIS Examples

  • DSIS Example 1:Graphical Parking Lot Management System (GPLMS)

  • Integration Web Server

  • GPLMS

  • DSIS Example 2:A MultiAgent-based Distributed Scripting System (MADSS)Agent-based DSIS + scripting mechanism

  • MADSS Overview

    USER

  • MADSS System Structure

  • MADSSThe benefitsMore intelligent abilities to deal with tasksComponent integration with speech acts communicationLoad balanceAdopting existing technologies:JavaKQML (Agent Communication Language, ACL)

  • MADSS(cont)Roles of MADSSUsersClient AgentSlave AgentFacilitatorService Agent

  • MADSS(cont)MADSS UsersResponsible for writing MADSS scripts

  • MADSS(cont)Client AgentA stationary agentInterpret an MADSS script program as the corresponding agents commands and KQML messagesDelegate tasks to slave agents for usersDelegate sub-tasks to mobile slave agents

  • MADSS(cont)Slave AgentA mobile agentGet delegated tasks from a client agentDirected/driven by an MADSS script programBring the requests to a service agent through KQML and take the results back to another service agent respectively

  • MADSS(cont)Service AgentAdvertising services on facilitatorForward messages and method calls to corresponding COTS components (COTS+wrapper) for slave agentsService management

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

  • MADSS(cont)Distributed Scripting LanguageInstruction typesAgent executionIdentify target agentTask delegationDelegate tasks to target agentScripting scenariosCircular tripParallel executionForth and back

  • Instruction typesAgent executionastart [agent_name] { task1, task2}Start an agent and specify the associated tasksdisposeTerminate an agentexecute [agent_name]Execute an agentpexecute [agent1, agent2, ]Parallel execute several agents

  • Instruction types(cont)Task delegationdelegate [[parameter] value]d (destination)Destinations address [default:local site]s (service)Target service [default:null]n (name)Service Agents namet (expire time)Expire time to dispose an agent

  • Instruction types(cont)Task delegationdelegate [[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

  • Scripting scenariosCircular trip

  • Scripting scenarios (cont)Example of circular tripastart 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 (1+3) -r $result1 -f null delegate -d atp://140.134.26.65 -n Calculator_agent2 -s Math -c ($result1$*4) -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

  • Scripting scenarios (cont)Parallel execution

  • Scripting scenarios (cont)Example of parallel executionastart 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

  • Scripting scenarios (cont)Forth and back

  • Scripting scenarios (cont)Example of forth and backastart AgentD // 140.134.26.58 Aglet 2.0.2 port 4434{ delegate -d atp://140.134.26.65 -n Calculator_1 -s Math -c (1+3) -r $result1 f null delegate -d atp://140.134.26.56 -n Calculator_2 -s Math -c (3+2) -r $result2 -f null delegate -d atp://140.134.26.65 -n Calculator_1 -s Math -c ($result1$*$result2) -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

  • MADSSEnvironment: 3 PCs Windows 2000/98 Java 2 Standard Version IBM Aglet

  • CONCLUSIONS

  • SummaryThe Internet is a repository of countless COTS products.CBS is highly possibly an economic and fast way to building a software systemDSIS 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

  • Future WorksInterface specification mechanism for COTS based software componentsSoftware architecture for COTS based systemsAgent-based CBS component searching systemKQML -> XMLMADSS Programmatic interface

  • Important Source of referencesInternational Conference on COTS Based System (ICCBS) --- initiated by CMU SEIWeb Site: www.sei.cmu.edu

  • Q & A

  • THANK YOU VERY MUCH!1. 2. [email protected]

    The use of commercial off-the-shelf (COTS) products as elements of larger systems is becoming increasingly commonplace. Shrinking budgets, accelerating rates of COTS enhancement, and expanding system requirements are all driving this process. The shift from custom development to COTS-based systems is occurring in both new development and maintenance activities. If done properly, this shift can help establish a sustainable modernization practice. The SEI COTS-Based Systems (CBS) Initiative is addressing the challenges of assembling systems from pre-existing components and of modifying legacy systems to take advantage of a CBS strategy