If you can't read please download the document
Upload
zanna
View
46
Download
8
Embed Size (px)
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
Citation preview
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
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