1 / 71

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

現有軟體之重用技術與應用 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.

zanna
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 現有軟體之重用技術與應用Techniques and Applications of COTS Software Reuse 林志敏 臺中健康暨管理學院 資訊管理學系 jimmy@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 => 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 13:06:57 PM Check-out-date 04/12/2002 Check-out-time 15:51:03 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 (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

  10. 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

  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 <= 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 ITSEP:Information 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 (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

  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(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

  22. 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?

  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(con’t)

  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 => 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 => 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

  32. Wrapper Operation Scenario

  33. Implementation of Wrappers • DOS Wrapper • Windows Wrapper • UNIX Wrapper

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

  35. WINDOWS Wrapper • Hooking system message queue and clip board

  36. Windows Input Redirection

  37. Windows Output Redirection

  38. UNIX Wrapper • A sandwich-structure wrapper

  39. DSIS Examples

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

  41. Integration Web Server首頁

  42. GPLMS在瀏覽器上的執行結果

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

  44. MADSS Overview USER

  45. MADSS System Structure

  46. 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)

  47. MADSS(con’t) • Roles of MADSS • Users • Client Agent • Slave Agent • Facilitator • Service Agent

  48. MADSS(con’t) • MADSS Users • Responsible for writing MADSS scripts

More Related