Docstoc

Component Software

Document Sample
Component Software Powered By Docstoc
					                            Component Software
                                                       An Introduction



                                                  Martin Naedele
                                            Industrial Software Systems
                                                     CHCRC.C2




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 1
 Objectives

 n “Get the feel” for the concept of component-based SWE
          n What are components?
          n What are components not?
          n What are components good for?
 n Know the terminology and the important acronyms
 n Know where the limits and problems are


 Not
 n How do I do “X” with technology of vendor “Y”?
 n a programming course



ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 2
 Topic overview

 Part
 1              The challenges of SWE - how can component SW help?
 2              What is component software?
 3              Elements of a component infrastructure
 4              Specific component models
 5              Developing SW with components - some guidelines
 6              Problems and research issues
 7              Sources of further information




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 3
                          Part 1
         The challenges of software engineering -
           how can component software help?




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 4
 Terms

        component
          n a piece of software, definition discussed later

        component-based software (CBS),
        aka component software,
        aka componentware
          n application built from components

        component-based development (CBD),
        aka component-based software engineering (CBSE)
          n the activity of building applications from components




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 5
                                                                                                                       NATO conf 1968
                                                                                                                        NATO conf 1968
 Software engineering problems                                                                                            SW crisis
                                                                                                                           SW crisis
                                                                                                                       SW engineering
                                                                                                                        SW engineering
 The “software crisis” (1968) still exists:                                                                              components
                                                                                                                          components


 n SW is late
 n SW is buggy
 n SW is expensive

 Component software - yet another “silver bullet”?




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 6
 SWE problems and component SW

          n SW is late
          n SW is buggy
          n SW is expensive
        … because too often applications are created instead of
        constructed, requiring
          n re-invention                                                                                                     Also,
                                                                                                                              Also,
                                                                                                                       applications are
                                                                                                                        applications are
          n re-coding                                                                                                  not adaptable to
                                                                                                                        not adaptable to
          n re-testing                                                                                                     changes
                                                                                                                            changes


        Component-based software engineering can help because
        it focuses on reuse of
          n subsystems
          n infrastructure


ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 7
 Component-based software construction (1)
components
  Component
           #1                         construction                                 application

   Component                                                   Component                                    Component
      #4                                                          #1                                           #2

  Component
     #2
                                                               Component                                    Component
                                                                  #3                                           #4
  Component
     #3
ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 8
 Component-based software construction (2)


                             application

         Component                                 Component                                  component
            #1                                        #2                                         New
                                                                                               Component
                                                                                                  #4
         Component                                 Component
            #3                                        #4                           update




ABB Corporate Research                                         Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                       ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 9
 Side remark: OO and reuse
        Object orientation is not primarily concerned with reuse,
        but with appropriate domain/problem representation

        using the technological enablers
          n    objects
          n    classes
          n    inheritance
          n    polymorphism
                                                                                 [Wegener]


        Experience has shown that the use of OO does not
        necessarily produce reusable SW
          n fragile base class problem



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 10
 Expectations from comp.-based development
  Reuse of components should
  n improve productivity, speed up development
  n reduce risk
  n improve robustness, increase quality
  n generate additional income

  Reuse has two forms
    reuse of a component in a                                                reuse of an application of
    different application                                                    which parts have changed




        fast construction                                                     evolvability, extensibility


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 11
 The promises of component SW - quotes
 Microsoft:
          “Monolithic solutions won’t work
          n No one vendor or one team of programmers can move fast enough
          n Need to leverage others’ work and to build and ship smaller pieces
            incrementally
          n Need to evolve smaller pieces asynchronously without sacrificing the
            whole”
 Gartner:
        “Component-based development is an evolving best practice”
        “By 2002, 70 percent of all new applications will be deployed using
        component-based application building blocks.”
        “... components can improve programmer productivity by 40 percent or
        more…”
        “Through 2004, IS organizations that are mature in CBD methods and that
        use a model-driven or pattern-based application development framework
        containing a large inventory of business components have the potential to
        be 5 to 10 times more productive than those that do not.”


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 12
 Part 1 - Summary

 The challenges of SWE - how can component SW help?


 n Reuse is the solution to many problems in SWE
 n CBD focuses on SW reuse
 n CBD tries to avoid re-creation of code
 n OO is a technology that facilitates creation of new code
   (if necessary)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 13
                              Part 2
                      What is a component?
               What is component-based software?




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 14
 The history
 n Structured Analysis
                  n functional decomposition, hierarchy
 n Object Orientation
                  n encapsulation of state and behavior
                  n domain modeling
                  n interactions
                  n inheritance                             interfaces
 n Frameworks
                  n domain-specific reusable infrastructure                                                             Not really: 1968
                                                                                                                         Not really: 1968
 n Patterns
                  n reuse of abstract mechanisms, experience
 n Component-based SW
 n ???


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 15
 Component definitions
… are a hot academic research and dispute topic:
                           client-centered                                                                      connectors
                                                                                 usable in
           events                                                              unanticipated
                                     self-contained
                                                                                 contexts
           reusable                                  contracts                                            independently
                                                                                                            deployable
                           compositional                        encapsulated
                                                                                                         visual
                                                  provided
       distributable                                                                                  programming
                                                 interfaces
                                                                           quality of
                      binary                                                service
                                                    COTS
           required                                                                                          configurable
          interfaces                                                       boundaries

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 16
 Component definitions

 … are a hot marketing topic:
                                                                                                             COM+

                                                                        ActiveX
              DCOM
                                                                                                                 controls
                                     Corba

                                                                                           COM
                                                       language
                         EJB                         independent
                                                                                                          platform
            binary                                              JavaBeans                               independent

                                     .NET
                                                                   builder tools


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 17
 Software Component?
 n “A reusable software component is a logical cohesive,
   loosely coupled module that denotes a single abstraction”
   [Booch1987]
 n “A software component is a static abstraction with plugs.
   Plugs refer to the in and outgoing interfaces. The static
   aspect is according to the definition in this book; it allows
   components to be stored in repositories.”
    [Nierstrasz1995]
 n “A software component is a unit of composition with
   contractually specified interfaces and explicit context
   dependencies only. A software component can be
   deployed independently and is subject to composition by
   third parties.” [Szyperski1997]
 n ...


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 18
 Pragmatic definition of CBS

 Components
 n independently deployable SW entities with a certain functionality which
 n can be composed into larger systems by means of dynamically
   discoverable, immutable interfaces following standardized conventions.

 Component-based software (CBS) consists of
 n connected components on multiple levels which also extensively use
 n services provided by the runtime infrastructure of the component model




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 19
 Terminology
n Component object, component instance: actual occurrence
       of a component in a running system
n Component class: abstract template for the creation of
       component instances
n Component: conceptual building block of a system, depending on
       context the term used for any of the above
n Component model: conceptual and implementation framework
       for writing and working with components
         n languages, platforms
         n runtime infrastructure, functionality, and API
         n technical details of interface and distribution implementation
         n … more later
         Examples: MS COM, Sun EJB, Corba

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 20
 Interface
   Group of related methods that specifies a contract between
   user and provider of the interface
     n usually only syntax explicitly specified, semantics implicit
     n concept of a contract also includes
             n semantics
             n non-functional properties, quality of service
             n negotiation
     n once public, it must be immutable with respect to
             n functionality
             n syntax
             n semantics
     n implementation may change at any time                                                                            IBar

   A component may provide /                                         IFoo
   implement several interfaces

ABB Corporate Research
                                                                     IFoo2
                                                                Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 21
 Interface description: (M)IDL
   (Microsoft) Interface Definition Language
           [
                  uuid(00112233-ABBA-ABBA-ABBA-BADBADBADBAD),
                  object
           ]
           interface IAddressList {
                HRESULT addAddress ([in] name, [in] address);
                HRESULT deleteAddress ([in] name, [in] address);
           }


   n language independent interface specification
   n can be compiled into language dependent code skeletons




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 22
 Infrastructure
 “30 % of SW development effort is spent on infrastructure that adds no value”


 n Goal
   Developer should concentrate fully on the application
   instead of spending time on reccurring side issues

 n Each commercial component model offers ready-made
   infrastructures for e.g.
          n    transactions
          n    distributed computing
          n    persistence, DB access
          n    security (access control)
                                                                         more later...

 “The COM+ philosophy: The runtime does all the grungy stuff” [Microsoft]


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 23
 Multi-level programming

 n Performance oriented languages (C, C++)
 n Application development languages (Java, C#)
 n End-user languages/GUI builder (Visual Basic, visual
   programming, scripting)
 n Configuration (attribute based programming (ABP))
          n security rules, user roles
          n database names
          n distributed deployment
          n feature set/available subsystems
          n transaction requirements
          … are set at installation time




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 24
Multi-level programming with application server

 An application server can                                      Client                         Client
 be
 - a Web Server,
 - a Database Server
 - a CORBA Server
 - a TP-Monitor                                                               Application
 …                                                                              Server


                Imperative                                   Server                         Server                        ...
               Programming                                 Component                      Component

                                                            Transaction                    Transaction
             Attribute Based                                Security                       Security
              Programming                                   Resources                      Resources
                                                            ...                            ...



ABB Corporate Research                                            Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                          ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 25
 Multi-level programming
  Here: EJB approach



       Bean
       Provider
       A                       Application            Deployer                      Container                    Server
                               Assembler                                            Provider                     Provider
                                                      puts beans into
                               plugs beans            containers
                               together
       Bean
       Provider
       B                                                   System
                                                           Administrator
                                                           configures and
                                                           administrates                                                    [SUN]
                                                           enterprise

                                                                                                                         ABB
                                                           environment

ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 26
 CBS vs. subsystem structuring

 Component-based system                                                System with subsystems
 n focus is on interfaces                                              n focus is on functional
   between units                                                          units
 n multiple instances of one                                           n subsystem is singleton
   component (class) in the
   running system
                                                                       n structuring, top-down
 n composition, bottom-up




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 27
 Component aspects

      Depending on the point of view, components are units of
      n functionality
      n reusability
      n purchase/outsourcing
      n deployment
      n maintainability
      n quality management
      n documentation
      n …

      When discussing CBSE it is important to ensure that everybody
      talks about the same aspect.



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 28
 Part 2 - Summary

 What is component-based software?

 n No clearly defined concept
 n No revolutionary technology

 n Most important features can be summarized as
          n interfaces
          n infrastructure
          n multi-level programming

 n CBSE is not really (only) about components



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 29
                           Part 3
           Elements of a component infrastructure
                    What does it offer?
                    How does it work?




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 30
 Infrastructure

 n All commercial component models offer runtime
   infrastructure support to allow the developer to
   concentrate on the business logic
 n infrastructure = middleware
 n certain architectural patterns can be found in all
   component models                                                                                                     Knowing these
                                                                                                                         Knowing these
                                                                                                                         patterns will
                                                                                                                          patterns will
                                                                                                                        make it easier to
                                                                                                                        make it easier to
                                                                                                                         understand aa
                                                                                                                          understand
                                                                                                                           particular
                                                                                                                            particular
                                                                                                                            vendors
                                                                                                                             vendors
                                                                                                                          component
                                                                                                                           component
                                                                                                                         infrstructure
                                                                                                                          infrstructure




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 31
 Component infrastructure functionality (1)

  n       runtime component/memory management
  n       service/component discovery (naming, broker)
  n       transparent distributed computing
  n       security (access control)
  n       persistence, DB access
  n       transactions




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 32
 Component infrastructure functionality (2)

  n       message queues
  n       event handling
  n       fault tolerance
  n       error isolation
  n       load balancing, pooling
  n       WWW connectivity
  n       data exchange over open protocols




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 33
 Generic component runtime

                                                                Communication

                            Request/Reply                       Publish/Subscribe
                                                                                                            Data
                                (HTTP,IIOP,                      Message Queue
    Naming                      RMI, DCOM)
                                                                                                         Streaming
                                                                    Eventing
    Service
                           Load balancing                                                                    DB
Transaction                                                 Object
                                                            Object   State
                           - Multi-Process                                                               Connection
  Service                  - Multi-Thread                   Cache Management
                                                             Cache                                          Pool
   Security                                                                         Web                      Legacy
   Service                      Lifecycle Management
                                                                                Integration                Integration
                                  Servlets


                                             CORBA


                                                         COM


                                                                   EJB

Business Logic                                                                                                             DB
(Components)



ABB Corporate Research                                            Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                          ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 34
 Architectural pattern (1)
 Proxy, aka proxy-stub, aka stub-skeleton
 used for location transparency, distributed components, inter-
    process component access

    Data packaging (marshalling) and transfer transparent for the user
  „stub“ (local proxy)                   „skeleton“ (remote proxy)
                                                              remote
                                                              object


client                                                                                                   server




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 35
 Generation of proxies from IDL



                           Interface
                         specification                                       Part of CORBA, JavaIDL, or COM
                               in                                                     implementation
                              IDL
                                                                  IDL Compiler
                                                                IDL Compiler




                                                 Client             Proxies              Server
                                                 Client                                   Server
                                                 Stub
                                                  Stub                                  Skeleton
                                                                                         Skeleton

                                     Programming language dependent source code
                                     to be compiled into client and server application



ABB Corporate Research                                             Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                           ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 36
 Location transparency

 aka distributed computing



  Goal                                                                   Realization with proxy




            client                  server

                                                                            naming
                                                                            service/
                                                                            broker



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 37
 Architectural pattern (2)                                                                                                   Allows
                                                                                                                              Allows
                                                                                                                        object/compone
                                                                                                                         object/compone
 Serialization                                                                                                               nts to
                                                                                                                              nts to
                                                                                                                          “hibernate”
 used for storage or transmission                                                                                          “hibernate”



 n the component writes/reads itself to/from a stream
 n serialization is started using a specific interface of the
   component

                                                                                    ISerialize                            IBar


 ISerialize                         IBar
                                                                                        IFoo2
                                                                                               deserialization
    IFoo2                      serialization                                        ISerialize                            IBar


                                                                                        IFoo2

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 38
 Architectural pattern (3)
 Inheritance by delegation
 used for implementation reuse

 n components do not use implementation inheritance to
   avoid dependencies and anomalies
 n a call to a method of an interface of a component is
   passed on (delegated) to a different component that
   implements the actual functionality

                                                                delegation
                  IFoo                                                             IFoo


                 IFoo2

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 39
 Architectural pattern (4)

 Interception
 used to give the runtime infrastructure control over calls to a
     component’s interface, e.g. for
          n    access control
          n    instrumentation and logging
          n    location transparency (see proxy)
          n    ...
                                               Server process


                                                    Security                                    Application
       Application
                                                    service                                       Server
         client                                                             IFoo
                                   IFoo



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 40
 Architectural pattern (5)
 Dynamic connections, aka events
 used for communication between partners that are only known at
    runtime
 n follows publish-subscribe pattern
 n notification may be asynchronous              <<Interface>>
                                                                                                        MyEventListener
                                                                                                      myEventOccured()


        aSender                                                                    aReceiver

                         addMyEventListener(this)


                         myEventOccurred(...)


                          removeMyEventListener(this)



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 41
 Part 3 - Summary
 Elements of a component infrastructure
 What does it offer? How does it work?

 n All component models offer similar runtime infrastructure
   services, though under very different names
 n These services are implemented using certain
   architectural patterns




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 42
                                       Part 4
                            Specific component models




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 43
 Definition
  Component model
    Conceptual and implementation framework for writing and
    working with components
            n interface structure
            n interaction mechanisms
            n guidelines on implementation
  or
          A vendor’s approach towards writing components and
          providing infrastructure

  Presented here:
            n Microsoft COM / ActiveX                                         n Sun EJB
            n Microsoft .NET                                                  n Sun JavaBeans
            n OPC                                                             n Corba


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 44
 Purpose
Not all component models have the same purpose
n (D)COM, EJB, Corba:
         n distributed computing
         n infrastructure for multi-tier systems, integrated with middleware
         n components usually business objects
n JavaBeans, ActiveX controls:
         n    creation of GUIs
         n    visual programming using builder tools
         n    have design-time and run-time user-interface
         n    have properties
         n    communicate with events




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 45
                                                                COM




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 46
 Microsoft COM (Component Object Model)

 n General purpose component model
 n Basic technology behind multiple marketing names
          n COM, DCOM, COM+, ActiveX, OLE, Automation

 n History
          n developed in 1995
          n since W2K COM+ with enhanced infrastructure
          n since 7/00 future unclear because of .NET

 n Design goals
          n simplicity (of concept, not use!)
          n performance (zero sacrifice if used in process)
          n binary compatibility

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 47
 Microsoft COM: key features

n infrastructure ‘COM runtime’ built in on Win OS
n ‘binary compatibility’, language independent
n requires implementation of interface ‘IUnknown’
n uses ‘GUIDs’ (globally unique IDs) to name interfaces etc
n location independence (in-process, cross-process, cross-
  machine)
n supports distributed computing with DCOM wire protocol
n component deployment as DLL or EXE
n programming languages HTML/ASP, VB and VC++




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 48
 Microsoft COM: architecture
                 Client                      Ask for a reference to an interface                         IUnknown
            Call_service                                                                               QueryInterface

                   *                       Call a service on an interface

                           CreateInstance

                   * CoClass (conceptual component)
              ClassObject    1      *         Class                                             1+        Extension
          (instance factory)              (functionality)                                                 Interface i
                                  new                                            implements
           Create_Component                             Create_Component
                                                                                                       QueryInterface
                                                                                                       service_i
                                                                                                                   <<extends>>



                 Server
           Initialize
           unititialize



ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 49
 Microsoft COM: remoting architecture



           Client                          COM                                   COM
                                                                                                               Component
                                         run time                              run time
                                  Security
                                                     RPC
                                                         Inprocess
                                                            LPC
                                                               Security
                                                                                       RPC
                                  provider                         provider

                                     Protocol stack                   Protocol stack
                                                            Local

                                                      DCOM network-
                                                        protocol

                                                        Remote


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 50
 Microsoft COM: location transparency (1)


                    Client                                                                      Server
            Object running




                                                                  COM over DCOM
              on client
                                                                                  Remote object on
                                                                                    any server
                        COM


            Object running
              on client


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 51
 Microsoft COM: location transparency (2)
 Uses the proxy pattern
 u         In the same process                                      Client                                 Component
             Ø    Fast, direct function calls

                                                                Client Process               Server Process
  u        On the same machine
                                                                Client                                                  Component
            Ø Fast, secure IPC                                                         COM




                                                                Client Machine            Server Machine
    u        Across machines
              Ø Secure, reliable                           Client                   DCE
                                                                                                                          Component
                                                                        COM     COM
                and flexible                                                RPC
                DCE-RPC based
                DCOM protocol

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 52
 Microsoft COM: infrastructure

 n      transactions: MTS
 n      message queues: MSMQ
 n      database wrapping: OLE DB, ADO, ...
 n      security functionality using WinOS
 n      multi-user functionality using WinOS
 n      broker/discovery: runtime + registry
 n      multithreading




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 53
 Microsoft COM: infrastructure

                                      Components and Applications

 The COM Runtime
                              Core Services
         (Automation, Monikers, Storage, ComCat, Data Transfer, IR)

                  COM and Distributed COM                                                                 Registry

                                                                                              Pluggable Security
                                    MS-RPC                                                         (SSPI)

                      Pluggable Transports                                                         NTLM DCE
                                                                                                  Kerberos ETC...
       TCP         UDP           IPX         SPX        HTTP MSMQ



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 54
 Microsoft COM: OLE (object linking and embedding)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 55
 Microsoft COM: ActiveX

 n      ActiveX controls: GUI component model on top of COM
 n      certain additional conventions
 n      visual programming with builder tools, e.g. VB
 n      properties and events
 n      downloadable code (web scripting)
          n security issues! (no sandbox, codesigning only)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 56
 Microsoft COM: summary
n very flexible
n very low level programming necessary to use all features
        n high learning threshold
n requires use of higher level support
        n ATL (active template libray): class template library with wizards
n successful in the market
            “… a market currently sized at $410 million dollars just for third party
            components. This number excludes Microsoft built components and
            is projected to grow at 65 percent a year, to approximately 3 billion
            dollars by 2001”
            “Choose today from over 1,000 controls from hundreds of vendors”
                                                            [Giga Information Group]




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 57
                                                                .NET




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 58
 Microsoft .NET
 n recently announced (7/00)
          n not yet clear how much of it is only marketing
          n basic plumbing still COM
 n focus on ‘Web Services’
          n application integration using internet technology
 n new programming languages ASP+ and C#
          n C# very similar to Java
          n C++ deprecated
          n VB gets OO extensions
 n SOAP (simple object access protocol) replaces DCOM
   XML-based
          n can get through firewalls
 n infrastructure called CLR (common language runtime)
          n includes language independent type system
          n all ‘runtime aware’ languages can use it
ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 59
                                                                OPC




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 60
 OPC (OLE for Process Control)

 n industry standard for communication between components
   in field devices, automation equipment and business
   applications (generic driver)
          n data access
          n historical data access
          n event & alarm handling
 n data model
 n set of interfaces for COM
          n server interfaces
          n callback interfaces
 n managed by OPC Foundation (www.opcfoundation.org)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 61
 OPC: Why is OPC needed?
      Display                                             Trend                                            Report
     Application                                        Application                                      Application




    Software                             Software                         Software                                Software
     Driver                               Driver                           Driver                                  Driver




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 62
 OPC: How does OPC Solve the Problem?
      Display                                             Trend                                             Report
     Application                                        Application                                       Application
            OPC                                                 OPC                                               OPC



      OPC                                  OPC                               OPC                                     OPC
    Software                             Software                          Software                                Software
     Driver                               Driver                            Driver                                  Driver




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 63
 OPC: application




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 64
                                                                 EJB




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 65
 Sun EJB (Enterprise Java Beans)

 n component model for middle-tier applications (no GUI)
 n      part of the Java 2 Platform, Enterprise Edition
                                                                                                                        COM: full power
                                                                                                                         COM: full power
                                                                                                                              to the
                                                                                                                               to the
 n History                                                                                                                programmer,
                                                                                                                           programmer,
                                                                                                                               EJB:
                                                                                                                                EJB:
          n EJB 1.0 (3/1998)                                                                                            convenience for
                                                                                                                         convenience for
          n EJB 1.1 (1999)                                                                                              the programmer
                                                                                                                         the programmer
          n EJB 2.0 currently in draft state


 n Design goals
          n isolate the business logic developer from the infrastructure
            plumbing
          n vendor independence for middleware (infrastructure)
          n platform independence

                                                                                                                         ABB
          n scalability
ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 66
 Sun EJB: J2EE
Overview: Java 2 Platform, Enterprise Edition
                                                                                    EJB enterprise java beans
                                                                                    JSP Java server pages
                                                                                    JMS Java messaging
                                                                                    services
                                                                                    Servlets
                                                                                    JTA/JTS Java transaction
                                                                                    API/services
                                                                                    JavaIDL (Corba interface)
                                                                                    RMI remote method
                                                                                    invocation)
                                                                                    JDBC Java database
                                                                                    connectivity
                                                                                    JNDI Java naming and
                                                                                    directory services


ABB Corporate Research
                                                                                    XML
                                                                Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 67
 Sun EJB: key features (1)

 n infrastructure provided by component server/container
 n server/container available from middleware vendors
 n containers are specified/standardized
 n RMI/IIOP (Corba inter-ORB protocol) used for distribution
 n components deployed as compiled Java classes &
   resources in JAR (Java archive) format
 n two flavors
          n session beans (non-persistent), e.g. shopping cart
          n entity beans (persistent), e.g. bank account




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 68
 Sun EJB: key features (2)
 EJB spec prescribes certain coding rules (naming and
    semantics) for components
 n EJBHome (home interface, lifecycle management by
    container)
 n EJBObject (remote interface, accessible for client)
 n Bean class (implementation of functionality)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 69
 Sun EJB: architecture
                    JNDI
               Naming                                                                               Deployment
               Service                                                                              Descriptor
    lookup ”Home”
                                 EJBHome
                                                                                                EJB
                                                                 EJB                                                               EJB
             create ”Bean”                                                                     Context
                                                                Home                                                               Jar
              find                  Remote Bean
                                   Home Interface
                                                                new
                                                                 4
      Client
                                EJBObject                                                         EnterpriseBean
                                                                                  ejbCreate
                       remove                                    EJB              ejb...                                       Bean
                                                                Object                                                       Instance
   bean-methods                  Remote Bean                                               bean-methods
                                   Interface


                                                      Application Server (Container)

ABB Corporate Research                                               Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                              ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 70
 Sun EJB: infrastructure
 n Container/Server manage object lifetime, persistence, DB
   access (JDBC), security
 n transactions: JTS, JTA
 n message queues: JMS
 n database wrapping: JDBC
 n persistency (entity beans)
          n container managed
          n bean managed
 n      security functionality built into container/server, JAAS
 n      multi-user functionality built into container/server
 n      broker/discovery: container/server + JNDI
 n      multithreading
 n      Corba interface built into container/server

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 71
 Sun EJB: container and server


                                                                                                             One server may
                                                                                                             contain multiple
                                                                                                             containers




                                                                       transactions, access control,
low-level communications, load
                                                                       communication, lifecycle
balancing, directory services
                                                                       management, persistency


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 72
 Sun EJB: session beans & entity beans
 n Session beans
          n non-persistent
          n stateful
                  n instance represents a client
                  n instance associated with one client
          or
          n stateless
                  n offer standard utilities (e.g. currency conversion)
                  n preserve no state past method completion
                  n are not associated with a client
 n Entity beans
          n    persistent
          n    represent business objects
          n    are shared by multiple clients
          n    contain a primary key and search methods

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 73
 Sun EJB: summary


 n transaction services not quite as mature as MS MTS
 n designed as server component technology
 n considered promissing for n-tier applications

      “...IDC believes that EJB is well on the way to becoming a de
        facto standard for heterogeneous, multiplatform environments"
                                                                                                                    [IDC,
        4/1999]




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 74
                                                      JavaBeans




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 75
 Sun JavaBeans

 n      component model for GUIs and client-side applications
 n      visual programming with builder tools, e.g. JBuilder
 n      properties and events (JDK 1.1 event model)
 n      require (only) certain coding rules (design patterns)
          n some helper classes exist
 n interfaces for design time and run time
 n built on top of Java




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 76
 Sun JavaBeans

 n interface and property lookup by builder tool
          n implicit: needs only class files, based on built-in
            introspection and “design patterns”
          n explicit: optionally BeanInfo class per component
 n automatic serialization support
 n deployed in JARs
 n property editors (also beans) and customizer
 n events can be adapted using automatically generated
   adapterscan be written manually w/o wizards
 n additional APIs: InfoBus, JAF; BeanContext




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 77
                                                                Corba




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 78
 CORBA (Common Object Request Broker Architecture)

n server-side component model
n standard for distributed computing
n defined by members of the Object Management Group (OMG)

n History
         n started in 1991 (Corba 1.1)
         n current version: Corba 3 (1999)

n Design goals
         n comprehensiveness
         n interoperability
         n infrastructure services as components



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 79
 CORBA: key features
   n implemented by various vendors
   n central concept: ORB (object request broker)
             n provides location transparency
             n provides platform, language independence
   n wire protocol IIOP (Internet inter-ORB protocol)
   n interface definition in OMG IDL
             n bindings for many languages exist
             n produces proxy pattern
   n spezialized Corba
             n real-time CORBA,
             n minimal CORBA for embedded systems
             n fault-tolerant CORBA.




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 80
 Corba: Object Management Architecture
 Corba is based on the Object Management Architecture (OMA)
 reference model:
               Non-standardized        Vertical domain-specific                                     Horizontal facility
         application-specific interfaces       interfaces                                              interfaces
                 Application Objects                       Domain Objects                              CORBAFacilities




                                              Object Request Broker (ORB)

                                                                                                  Transportation and
                                                                                                   Communication


                                                                CORBAServices

                                                  General service interfaces


ABB Corporate Research                                             Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                           ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 81
 Corba: remoting architecture


                                   Client                                         Object
                                                                              Implementation



                                                                                                                     Standardized
                                                                                                                      interfaces


                                                          ORB       IDL              Dynamic           Object
         Interface  Dynamic                 IDL                                                        Adap- Implementation
                                                         Inter-   Skeleton           Skeleton
        Repository Invocation               Stub
                                                          face                                          ter    Repository



                                                                                                                   Proprietary
                                             Object Request Broker (ORB)                                            interfaces




ABB Corporate Research                                            Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                          ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 82
 Corba: infrastructure - Corba services
 n      Collection Service                                             n       Relationship Service
 n      Concurrency Service                                            n       Security Service
 n      Event Service                                                  n       Time Service
 n      Externalization Service                                        n       Trading Object Service
 n      Licensing Service                                              n       Transaction Service
 n      Life Cycle Service
 n      Naming Service
 n      Notification Service
 n      Persistent Object Service
 n      Property Service
 n      Query Service



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 83
 Corba: summary

 n oldest distribution standard, mature
 n carefully designed architecture
 n incorporates middleware experts’ experience
 n OMG provides only specification, implementations must
   be bought from various vendors
 n contains all features, but is complex and slow

 n current trend: integration of Java and Corba (JavaCorba)




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 84
                          Part 5
          Developing software with components -
                     some guidelines




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 85
 Component documentation                                                                                              Point:
                                                                                                                       Point:
                                                                                                                  components are
                                                                                                                   components are
                                                                                                                   more than SW
                                                                                                                    more than SW
 Idea: building SW systems like HW systems ...

                                              IBar
          IFoo

          IFoo2

… the rest of the analogy is often neglected:
                                                          Knowledge about the pinout (interface
                                                          methods) is not enough, also needed are
                                                          specifications of
                                                           n behavior
                                                           n tolerances
                                                           n dependencies
                                                           n environmental requirements
                                                           n application notes

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 86
 “Three questions of software contracts” [Meyer]


      n What does it expect?

      n What does it maintain?

      n What does it guarantee?




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 87
 Requirements for successful CBSE [Gartner]
  n Create components of appropriate scope
  n Make each component independent
  n Require minimum inputs
  n Check all inputs for validity
  n Design related components simultaneously
  n Adhere to one methodology and one component model
  n Validate the design early
            n get early feedback from potential (re)users
  n Maintain the documentation
  n Create and maintain an inventory



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 88
 Component granularity

     Small enough to learn easily, but large enough to be
     worth learning


         reuse gain
                          n wrapped (legacy) application

                          n functional block

                          n functional piece (e.g. control)
         reusability



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 89
 Requirements for successful reuse [Gartner]

 n      Inventory (something to reuse ...)
 n      Catalog/repository & search
 n      Reuse administrator and facilitator
 n      A&D methodology incorporates reuse and design for reuse
 n      Design standards ensure consistency
 n      Measurement of reuse effectiveness
 n      Quality assurance
 n      Incentives to encourage reuse




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 90
 CBSE - reasons for failure [Gartner]
 “Between 1999 and 2003 under 30 percent of first-generation corporate component
 investments will deliver the expected productivity improvements.”

  Common component reuse mistakes:
  n Undefinded goals of reuse
  n Conflicts of purpose of components
  n Uncertain future (business & technology)
  n Inflexible components
  n Turf wars
  n Inadequate reuse infrastructure




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 91
 Sources of components
  “Through 2002, components will be available from a wide variety of sources in an
  immature and exploding market with no dominant leaders.”                [Gartner]
  “We expect the market [for prebuilt components] to grow from about $1.4 billion in
  1997 to more than $8 billion in 2002”                                   [Gartner]

  n       SW-builder tool vendors
  n       modeling tool vendors
  n       open source community
  n       component standard groups
  n       component consortiums
  n       books
  n       web sites
             java.sun.com/beans/marketing.html                                   www.openavenue.com
             www.alphaworks.ibm.com                                              www.pparadise.com
             www.cbop.gr.jp                                                      www.qbssoftware.com
             www.componentsource.com                                             www.sourceforge.com
             www.developer.com                                                   www.theorycenter.com
             www.flashline.com                                                   www.xtras.com
             www.devtools.de                                                     ...

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 92
                                   Part 6
                        Problems and research issues




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 93
 CBSE research and the SW life-cycle
                                                      - SW development process
      - certification                                                        - configuration
                                     - team structure
                                                                               management
                                                       Project Management

                                                       Quality Management
        Analysis      Implementation
        Design           Testing
                                     Deployment                           Application
               Components                                       Analysis               Implementation
        Analysis      Implementation                                                                                     Deployment
        Design           Testing
                                     Deployment                 Design                    Testing
                                     - development
                                                                                                      - run-time
      - design for                     methods                                         - assembly     infrastructures
        customization/               - notations                                       - finding
        variability     - storage    - frameworks                                      - trusting
      - wrapping        - documentation                                                - distribution
      - specification/contracts
ABB Corporate Research
                                                                                       - glue code
                                                                 Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                          ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 94
 Contracts and documentation
 Are more than interface method definitions
 n How to specify?
          n    interfaces
          n    behavior (pre-/post conditions, invariants)
          n    dependencies (required interfaces)
          n    quality of service
          n     ???
 n How to test/verify component specifications?
 n How to document component specifications?
 n How to negotiate service levels between components at
   runtime?
 n How to automatically connect components in builder tools
   using their specification?
 n How to verifiy the correctness of a composite system?
 n ...

ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 95
 Design for reuse

 Design for reuse requires additional effort

 n What is the best level of reuse (component granularity)?
 n How can the benefit of reuse be measured?
 n Development and documentation of component usage
   patterns




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 96
 Repositories
 are an enabling technology for CBSE

 n How to store components?
 n How to classify and describe components?
 n How to find components?
          n fast
          n different aspects
                  n interfaces
                  n functionality
                  n component model
                  n certification level
                  n previous usage, trust
          n multiobjective optimization
          n negotiable requirements


ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 97
 Software development process

 n Current approach
                  requirements - analyse - design - implementation - test


 n CBSE approach must include
          n    reuse component selection
          n    component test
          n    requirements reconciliation
          n    component mining for reuse

 n CBSE must be supported by
          n modeling formalisms and tools
          n development tools



ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 98
 Organizational changes
   “Through at least 2002, most IS organizations will be unable to achieve
   anticipated CBD payback due to factors such as undefined goals, conflicts of
   purpose, inflexibility in component design, domain scope or turf wars, and
   inadequate reuse infrastructure”                                      [Gartner]



     n New mind-set: create -> construct
     n Allocate reuse management staff (repository, training)
     n Accept short term productivity reduction
     n Accept new business model: first use of a component
       designed for reuse may not recover production cost
     n More interdepartmental cooperation and trust necessary




ABB Corporate Research                                          Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                        ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 99
 Developing a component market
  Imperative feature for component success

  n Have to establish framework for …?
           n legal aspects (licensing and warranties)
           n technical abilities
           n economic forces
  n Proven business case
  n Repositories, precise descriptions and search engines
  n Documentations and application support




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 100
 Versioning and configuration management

 n Is more complex than usually (DLL hell)
          n especially in dynamic environments
 n Dependencies and composition constraints have to be
   resolved almost automatically
          n consider systems comprising thousands of components
 n How to do safe exchange of components e.g. upgrade,
   without contractual specification and proof?
 n All of the issues above are prerequisite for uploading and
   downloading of components




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 101
 Security

 n Requires trust and certification
 n complicated by large group of (small) vendors
 n ‘mobile code security’ important
          n not user access control but code access control
 n current mechanisms
          n sandboxing: restricted functionality, restricted availability
          n codesigning: not necessarily suitable to establish trust
                  n prove of problem origin
                  n difficulty of persecution




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 102
  Component models for embedded systems

 n      real-time requirements
 n      limited processing resources
 n      higher reliability requirement
 n      hot-swapping
 n      non-mainstream OSes
 n      definition of component (HW included?)




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 103
 Problems and research issues

 n      Contracts and documentation
 n      Design for reuse
 n      Repositories
 n      Software development process
 n      Organizational changes
 n      Developing a component market
 n      Versioning and configuration management
 n      Security
 n      Component models for embedded systems




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 104
                                              Part 7
                                        Information sources




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 105
 Books

n      Ivar Jacobson, Martin Griss, Patrik Jonsson: Software Reuse :
       Architecture, Process, and Organization for Business Success
       (1997)
n      Desmond Francis D'Souza, Alan Cameron Wills: Objects,
       Components, and Frameworks With Uml : The Catalysis Approach
       (1998)
n      Clemens Szyperski: Component Software : Beyond Object-Oriented
       Programming: (1998)
n      Peter Herzum and Oliver Sims: Business Component Factory : A
       Comprehensive Overview of Component-Based Development for
       the Enterprise (1999)
n      Alan W. Brown: Large-Scale Component-Based Development
       (2000)
n      Betrand Meyer: Object-Oriented Software Construction, 2nd Edition
       (2000)



ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 106
 Journals
 n      IEEE Computer
 n      IEEE Software
 n      IEEE Internet Computing
 n      IEEE Transactions on Software Engineering
 n      IEEE Transactions on Computers
 n      ACM Transactions on Programming Languages and Systems languages and
        programming systems.
 n      ACM Transactions on Software Engineering and Methodology
 n      ACM Transactions on Computer Systems
 n      Software Development (www.sdmagazine.com)
 n      MSDN Magazine (msdn.microsoft.com/msdnmag)
 n       … all major SW development magazines




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 107
 Conferences
 Scientific
 n      ACM Conference on Object-Oriented Programming, Systems, Languages, and
        Applications (OOPSLA) (oopsla.acm.org)
 n      International Workshop on Component-Based Software Engineering
        (www.sei.cmu.edu/cbs/cbse2000/index.html)
 n      International Workshop on Component-Oriented Programming (WCOP)
        (ecoop2000.unice.fr)
 n      IEEE Symposium on Engineering of Computer-Based
        Systems (ECBS) (www.dcs.napier.ac.uk/ecbs)
 n      Symposium on Generative and Component-Based Software Engineering (www-
        stja.transit-online.de/gcse/)
 n      Technology of Object-Oriented Languages and Systems (TOOLS) (www.tools-
        conferences.com)
 n      International Conference on Software Engineering (ICSE)
 n      International Workshop on Software Specification and Design (IWSSD)
        (www.ics.uci.edu/IRUS/iwssd)
 n      International Conference on Software Reuse (ICSR)
 Trade
 n      Component Computing (www.tieturi.fi/coco99)
 n      Component Developer's and User's Forum (CDUF) (www.componentdevelopment.com)

ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 108
 Others


 n http://www.cetus-links.org/

 n http://www.designbycontract.com/




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 109
 Key researchers
 Bertrand Meyer (Interactive Software Engineering; Monash University)
     n Eiffel, design-by-contract, trusted components
     n http://www.sd.monash.edu.au/~bertrand/
 Clemens Szyperski (Oberon Microsystems; Microsoft; QUT)
     n Book: “Component Software”
     n http://www.research.microsoft.com/users/cszypers/
 Jan Bosch (University of Karlskrona/Ronneby)
     n SW architecture, product lines
     n http://www.ipd.hk-r.se/bosch/
 Heinz Schmidt (Monash University)
     n trusted components
     n http://www.csse.monash.edu.au/~hws/
 Kurt Wallnau (SEI/CMU)
     n COTS-based systems
     n http://www.sei.cmu.edu/staff/kcw/
 Oscar Nierstrasz (Uni Bern)
     n SW composition; coordination models
     n http://www.iam.unibe.ch/~oscar/
 Oliver Sims
          n Business objects

ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 110
 Thanks!!

 Slides and content of this tutorial have partly been stolen from
 n Microsoft
 n Sun
 n OPC Foundation
 n OMG
 n O. Preiss, ABB CHCRC
 n C. Zeidler, ABB DECRC
 n various unidentifiable sources




ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 111
ABB Corporate Research                                           Ó 2000 ABB Corporate Research Ltd, Baden, Switzerland
                                                                                                                         ABB
Industrial Software Systems, CHCRC.C2, Naedele /00-08-23 / 112

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:7/13/2013
language:English
pages:112