710 likes | 847 Views
現有軟體之重用技術與應用 Techniques and Applications of COTS Software Reuse. 林志敏 臺中健康暨管理學院 資訊管理學系 jimmy@thmu.edu.tw. Outlines. Introduction COTS-Based Systems Distributed Software Integration System (DSIS) DSIS Examples MultiAgent Distributed Scripting System (MADSS) Conclusions MADSS Demo.
E N D
現有軟體之重用技術與應用Techniques and Applications of COTS Software Reuse 林志敏 臺中健康暨管理學院 資訊管理學系 jimmy@thmu.edu.tw
Outlines • Introduction • COTS-Based Systems • Distributed Software Integration System (DSIS) • DSIS Examples • MultiAgent Distributed Scripting System (MADSS) • Conclusions • MADSS Demo
Motivation • Building 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 RECORD Name Jim-Min Lin Car_ID RD-9681 Parking space 105 Check-in-date 04/12/2002 Check-in-time 13:06:57 PM Check-out-date 04/12/2002 Check-out-time 15:51:03 PM Parking fee NT$ 90.00
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
Software Reuse • Levels of software reuse: • Functions • Modules or objects • Subsystems • Application systems
Software Reuse (con’t) • Problems with reuse • Increased maintenance costs • Lack of tool support • Maintaining a component library • Finding 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, don’t build • Component-based systems encompass both COTS products and components through other means
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 <= Focus of our works
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
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 ITSEP:Information Technology Solutions Evolution, 2002, CMU SEI Adapted from COTS-Based Systems for Program Managers
Physical View of COTS-Based System • A set of reusable COTS components • Software architecture • Glueware
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
Architecture (con’t) • 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
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)
COTS product reuse • Benefits with COTS system integration • Diverse functionality • To reduce costs and delivery times • Reduce risks • Adaptable alone with system evolution
COTS product reuse(con’t) • 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
COTS product reuse(con’t) • 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?
Reuse of COTS Products • Our works focused on the CBS integration techniques and applications
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
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
Conceptual View of DSIS network
CORBA-based DSIS • Objectives => Migrating DOS, Windows, and UNIX applications to CORBA server objects
Wrapper for CORBA DSIS • a 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
Implementation of Wrappers • DOS Wrapper • Windows Wrapper • UNIX Wrapper
DOS Wrapper • Using DOS VM to intercept and redirect DOS I/O channels
WINDOWS Wrapper • Hooking system message queue and clip board
UNIX Wrapper • A sandwich-structure wrapper
DSIS Example 1: • Graphical Parking Lot Management System (GPLMS)
DSIS Example 2: • A MultiAgent-based Distributed Scripting System (MADSS) • Agent-based DSIS + scripting mechanism
MADSS Overview USER
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)
MADSS(con’t) • Roles of MADSS • Users • Client Agent • Slave Agent • Facilitator • Service Agent
MADSS(con’t) • MADSS Users • Responsible for writing MADSS scripts