Component Development - PowerPoint PPT Presentation

About This Presentation
Title:

Component Development

Description:

Event object recipients are themselves free to post new events. ... How can component services be described to allow for efficient retrievel and hight precision? ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 32
Provided by: tacianaamo
Category:

less

Transcript and Presenter's Notes

Title: Component Development


1
Component Development
  • Taciana Amorim Vanderlei
  • tav_at_cin.ufpe.br

2
Contents
  • The methodology
  • Problems of asynchrony
  • Multithreading
  • Learning from circuit design
  • Living without implementation inheritance
  • Nutshell classes
  • Language support
  • Caller encapsulation
  • The enviroment
  • The tools

3
The methodology
  • Requires support for component-oriented
    programming
  • polymorphism
  • modular encapsulation
  • late binding and loading
  • safety

4
Problems of asynchrony
  • Multicasting
  • Event object recipients are themselves free to
    post new events.
  • The set of recipients could change while a
    multicasting is in progress.
  • Some of the recipients might raise exceptions
    while handling received event objects and the
    multicast is in progress.

5
Multithreading
  • Concept of supporting multiple sequential
    activities concurrently over the same state
    space.
  • Problems
  • Conflits from concurrent writes
  • Deadlocks
  • Degradation of performance with synchronization
  • Prolonged locking of frequently shared resources
  • Propagation of exceptions across thread
    boundaries
  • Difficult to debug code that uses multiple
    threads and complex interlocking patterns.

6
Multithreading
  • A concept that would help to reduce complexity in
    many such cases is transactional programming.
  • Application server technologies that are
    increasing availability of transactional
    infrastructure support for components
  • COM
  • EJB
  • CCM
  • CLR

7
Learning from circuit design
  • Fully asynchronous circuits
  • Best performance
  • Complex to design
  • Synchronous circuits
  • Synchronize all activities of component
    boundaries to clock signals.
  • Require asynchrounous communication at the
    boundary.
  • Synchronous communication at the boundary
    requires asynchronous circuit.
  • Introdution of remote procedure calls in the
    software
  • Tendency to support synchronous communication,
    forcing the introdution of asynchronous
    computation.

8
Living without implementation inheritance
  • Subclass a class introduces implementation
    overhead and runtime overhead.
  • COM-style aggregation helps to avoid the
    performance implications of forwarding.
  • The implementation cost can be hidden by using
    various forms of automation.
  • Generate the code of a forwarders class
  • Use a template mechanism.

9
Nutshell classes
  • It has the same interface as the object it is
    forwarding to, and all methods are implemented as
    plain forwards to the target object.
  • Nutshell classes are themselves abstract.
  • Recently added to Java in the form of the proxy.
  • CLR offers a similar mechanism via its RealProxy
    class.

10
Language support
  • The programming overhead is minimal and the
    runtime overhead in time and space is equal of
    implementation inheritance schemes.
  • Objective-C support dynamic inheritance from an
    object.

11
Caller encapsulation
  • Need to encapsule the caller rather than the
    callee.
  • Caller encapsulation is put to good use in
    several places in the BlackBox component
    framework.

12
The enviroment selecting target framework
  • A component object cannot function outside a
    defined enviroment.
  • A component object can be design to operate in
    multiple such enviroments simutaneously.
  • Danger to investing heavily in solutions based on
    a single framework.

13
The tools selecting programming languages
  • Requirements to component programming selecting
    language
  • Polymorphism
  • Late binding
  • Encapsulation
  • Safety
  • Explicity state dependencies
  • Language paradigm level
  • Object-oriented
  • Java and C
  • Functional

14
Component distribution and acquisition
15
Contents
  • Building what sells
  • Product cataloging and description
  • Component location and selection
  • Superdistribution
  • Intermediaries

16
Building what sells
  • In the past was a lack of business models.
  • Slowly changing with the growth of specialized
    markers of software components and
    intermediaries.
  • Software services are becoming increasingly
    popular.

17
Product cataloging and description
  • It is not clear how to specify a software
    component.
  • Component specification need to be placed in an
    architectural context that includes
  • Possible embedding in component framework
  • Platform assumptions
  • Requirements
  • Styles of composition.

18
Component location and selection
  • How can component services be described to
    allow for efficient retrievel and hight precision?

Ontolological approaches
19
Component location and selection
  • KIF, developed at standford, proposes a standard
    (logic.standford.edu/kif).
  • Project called Reuse Center in Corinto, Italy
    (www.corinto.it).
  • Computer Industry Project (SCIP), project at
    Standford (www.standford.edu/group/scip).

20
Superdistribution
  • Pay-per-use
  • Send a component to everyone who might at all
    benefit.
  • Works by encouraging users of a component to send
    it to friends.

21
Intermediaries
  • Represent bundled interests of one side to the
    other.
  • Intermediary services
  • Quality control
  • Integration services across products
  • Application service provider (APS)

22
Component assembly
23
Contents
  • Systematic initialization and wiring
  • Visual component assembly
  • Compound documents to supersede visual assembly
  • Componente beyond graphical user interface
    environmetns
  • Managed and self-guided component assembly
  • End-user assembly
  • Component evolution

24
Systematic initialization and wiring
  • Composition
  • Selecting components and interconnecting those
    using selected connectors.
  • BML (bean markup language) is a JavaBeans
    composition language.

25
Visual component assembly
  • One way of simplifying the assembly process.
  • JavaBeans and COM support general connection
    paradigms.

26
Compound documents to supersede visual assembly
  • Documents are applications and document editing
    is component (instance) assembly.
  • Integration of build and use enviroments,
    especially in the context of compound documents.
  • Strong and produtive case for application
    development.

27
Components beyond graphical user interface
environments
Reusable components valuable assets
Modern graphical user interfaces
Relative regularity of user interfaces

  • Server-based solutions in particular have
    inspired many of the current components software
    approaches.
  • Server-side solutions
  • Suns EJB
  • Microsofts COM
  • Suns servlets
  • Microsofts VB
  • Microsoft .NET

28
Managed and self-guided component assembly
  • Managed assembly
  • Automated assembly component that implements the
    policies that govern the dynamic assembly of
    instances.
  • Self-guided assembly
  • Similar as above, but uses rules that are carried
    by the component instances themselves.

29
End-user assembly
  • Enable end users to assemble custom solutions.
  • Anders Morch termed this feature distinguished
    three levels
  • Customization
  • Integration
  • Extension
  • Robert Slagter and Henri ter Hofte show an
    application with computer-suported collaboration.
  • Groove Transceiver (www.groove.net)

30
Component evolution
  • Potential components increases with deferral of
    assembly gt Fragility increases
  • Problems of version conflits
  • Upgrading of operacional instances to newer
    versions is of active research.
  • COM robust approach to supporting version
    coexistence.
  • Java does not have a special version control
    mechanism.

31
Questions?
Write a Comment
User Comments (0)
About PowerShow.com