d277a07d403f26153287230748747cac.ppt
- Количество слайдов: 103
Component Software An Introduction Martin Naedele Industrial Software Systems CHCRC. C 2 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 1 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 2 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Topic overview Part 1 2 3 The challenges of SWE - how can component SW help? What is component software? Elements of a component infrastructure 4 5 6 7 Specific component models Developing SW with components - some guidelines Problems and research issues Sources of further information ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 3 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 1 The challenges of software engineering how can component software help? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 4 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 5 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Software engineering problems NATO conf 1968 SW crisis SW engineering The “software crisis” (1968) still exists: components n SW is late n SW is buggy n SW is expensive Component software - yet another “silver bullet”? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 6 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Also, applications are not adaptable to changes n re-invention n re-coding n re-testing Component-based software engineering can help because it focuses on reuse of n subsystems n infrastructure ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 7 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component-based software construction (1) components Component #1 construction Component #4 Component #2 Component #3 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 8 application Component #1 Component #2 Component #3 Component #4 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component-based software construction (2) application Component #1 Component #2 Component #3 Component #4 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 9 component New Component #4 update 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Side remark: OO and reuse Object orientation is not primarily concerned with reuse, but with appropriate domain/problem representation using the technological enablers n n objects classes inheritance polymorphism [Wegener] Experience has shown that the use of OO does not necessarily produce reusable SW n fragile base class problem ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 10 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 different application fast construction ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 11 reuse of an application of which parts have changed evolvability, extensibility 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 12 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 13 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 2 What is a component? What is component-based software? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 14 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
The history n Structured Analysis n functional decomposition, hierarchy n Object Orientation n n encapsulation of state and behavior domain modeling interactions interfaces inheritance n Frameworks n domain-specific reusable infrastructure Not really: 1968 n Patterns n reuse of abstract mechanisms, experience n Component-based SW n ? ? ? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 15 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component definitions … are a hot academic research and dispute topic: client-centered events usable in unanticipated contexts self-contained reusable contracts compositional distributable required interfaces independently deployable encapsulated provided interfaces binary visual programming quality of service COTS ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 16 connectors configurable boundaries 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component definitions … are a hot marketing topic: COM+ Active. X DCOM controls Corba language independent EJB COM Java. Beans binary. NET ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 17 platform independent builder tools 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 19 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 20 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 A component may provide / implement several interfaces IFoo 2 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 21 IBar 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Interface description: (M)IDL (Microsoft) Interface Definition Language [ uuid(00112233 -ABBA-ABBA-BADBAD), object ] interface IAddress. List { HRESULT add. Address ([in] name, [in] address); HRESULT delete. Address ([in] name, [in] address); } n language independent interface specification n can be compiled into language dependent code skeletons ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 22 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 n transactions distributed computing persistence, DB access security (access control) more later. . . “The COM+ philosophy: The runtime does all the grungy stuff” [Microsoft] ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 23 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 24 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Multi-level programming with application server An application server can be - a Web Server, - a Database Server - a CORBA Server - a TP-Monitor … Client Application Server Imperative Programming Server Component Attribute Based Programming Transaction Security Resources. . . ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 25 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Multi-level programming Here: EJB approach Bean Provider A Application Assembler plugs beans together Bean Provider B Deployer puts beans into containers Container Provider Server Provider System Administrator configures and administrates enterprise environment ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 26 2000 ABB Corporate Research Ltd, Baden, Switzerland [SUN] ABB
CBS vs. subsystem structuring Component-based system n focus is on interfaces between units n multiple instances of one component (class) in the running system n composition, bottom-up ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 27 System with subsystems n focus is on functional units n subsystem is singleton n structuring, top-down 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 28 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 29 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 3 Elements of a component infrastructure What does it offer? How does it work? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 30 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 31 2000 ABB Corporate Research Ltd, Baden, Switzerland Knowing these patterns will make it easier to understand a particular vendors component infrstructure ABB
Component infrastructure functionality (1) n n n runtime component/memory management service/component discovery (naming, broker) transparent distributed computing security (access control) persistence, DB access transactions ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 32 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component infrastructure functionality (2) n n n n message queues event handling fault tolerance error isolation load balancing, pooling WWW connectivity data exchange over open protocols ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 33 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Generic component runtime Communication Publish/Subscribe Message Queue Eventing Request/Reply (HTTP, IIOP, RMI, DCOM) Naming Service Transaction Service Load balancing - Multi-Process - Multi-Thread Security Service State Object Cache Management Cache DB Connection Pool Web Integration Legacy Integration Lifecycle Management ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 34 EJB COM CORBA Servlets Business Logic (Components) Data Streaming 2000 ABB Corporate Research Ltd, Baden, Switzerland DB ABB
Architectural pattern (1) Proxy, aka proxy-stub, aka stub-skeleton used for location transparency, distributed components, interprocess component access Data packaging (marshalling) and transfer transparent for the user „stub“ (local proxy) „skeleton“ (remote proxy) remote object client ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 35 server 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Generation of proxies from IDL Interface specification in IDL Part of CORBA, Java. IDL, or COM implementation IDL Compiler Client Stub Proxies Server Skeleton Programming language dependent source code to be compiled into client and server application ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 36 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Location transparency aka distributed computing Goal Realization with proxy client server naming service/ broker ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 37 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Architectural pattern (2) Allows object/compone nts to “hibernate” Serialization used for storage or transmission n the component writes/reads itself to/from a stream n serialization is started using a specific interface of the component IBar ISerialize IBar IFoo 2 deserialization IFoo 2 serialization ISerialize IFoo 2 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 38 2000 ABB Corporate Research Ltd, Baden, Switzerland IBar ABB
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 2 ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 39 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Architectural pattern (4) Interception used to give the runtime infrastructure control over calls to a component’s interface, e. g. for n n access control instrumentation and logging location transparency (see proxy). . . Server process Application client IFoo Security service ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 40 IFoo Application Server 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Architectural pattern (5) Dynamic connections, aka events used for communication between partners that are only known at runtime n follows publish-subscribe pattern <
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 42 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 4 Specific component models ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 43 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 / Active. X n Microsoft. NET n OPC ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 44 n Sun EJB n Sun Java. Beans n Corba 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Java. Beans, Active. X controls: n n n creation of GUIs visual programming using builder tools have design-time and run-time user-interface have properties communicate with events ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 45 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
COM ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 46 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Microsoft COM (Component Object Model) n General purpose component model n Basic technology behind multiple marketing names n COM, DCOM, COM+, Active. X, OLE, Automation n History n developed in 1995 n since W 2 K 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 47 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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, crossmachine) 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 48 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Microsoft COM: location transparency (1) Object running on client COM Server COM over DCOM Client Remote object on any server Object running on client ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 51 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Microsoft COM: infrastructure n n n n transactions: MTS message queues: MSMQ database wrapping: OLE DB, ADO, . . . security functionality using Win. OS multi-user functionality using Win. OS broker/discovery: runtime + registry multithreading ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 53 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Microsoft COM: Active. X n n n Active. X controls: GUI component model on top of COM certain additional conventions visual programming with builder tools, e. g. VB properties and events downloadable code (web scripting) n security issues! (no sandbox, codesigning only) ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 56 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 57 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
. NET ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 58 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 59 ABB
OPC ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 60 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 61 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
OPC: Why is OPC needed? Display Application Software Driver Trend Application Software Driver ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 62 Software Driver Report Application Software Driver 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
OPC: How does OPC Solve the Problem? Display Application Trend Application Report Application OPC OPC Software Driver ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 63 OPC Software Driver 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
OPC: application ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 64 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
EJB ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 65 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun EJB (Enterprise Java Beans) n component model for middle-tier applications (no GUI) n part of the Java 2 Platform, Enterprise Edition n History n EJB 1. 0 (3/1998) n EJB 1. 1 (1999) n EJB 2. 0 currently in draft state COM: full power to the programmer, EJB: convenience for the programmer n Design goals n isolate the business logic developer from the infrastructure plumbing n vendor independence for middleware (infrastructure) n platform independence n scalability ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 66 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun EJB: J 2 EE 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 Java. IDL (Corba interface) RMI remote method invocation) JDBC Java database connectivity JNDI Java naming and directory services XML ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 67 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun EJB: key features (1) n n n infrastructure provided by component server/container available from middleware vendors containers are specified/standardized RMI/IIOP (Corba inter-ORB protocol) used for distribution 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 68 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 69 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 n n security functionality built into container/server, JAAS multi-user functionality built into container/server broker/discovery: container/server + JNDI multithreading Corba interface built into container/server ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 71 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun EJB: container and server One server may contain multiple containers low-level communications, load balancing, directory services ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 72 transactions, access control, communication, lifecycle management, persistency 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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" 4/1999] ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 74 [IDC, 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Java. Beans ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 75 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun Java. Beans n n component model for GUIs and client-side applications visual programming with builder tools, e. g. JBuilder properties and events (JDK 1. 1 event model) 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 76 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Sun Java. Beans 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 Bean. Info class per component n n automatic serialization support deployed in JARs property editors (also beans) and customizer events can be adapted using automatically generated adapterscan be written manually w/o wizards n additional APIs: Info. Bus, JAF; Bean. Context ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 77 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Corba ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 78 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 79 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 80 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Corba: Object Management Architecture Corba is based on the Object Management Architecture (OMA) reference model: Vertical domain-specific Non-standardized application-specific interfaces Application Objects Horizontal facility interfaces Domain Objects CORBAFacilities Object Request Broker (ORB) Transportation and Communication CORBAServices General service interfaces ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 81 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Corba: infrastructure - Corba services n n n Collection Service Concurrency Service Event Service Externalization Service Licensing Service Life Cycle Service Naming Service Notification Service Persistent Object Service Property Service Query Service ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 83 n n n Relationship Service Security Service Time Service Trading Object Service Transaction Service 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Corba: summary n n oldest distribution standard, mature carefully designed architecture incorporates middleware experts’ experience 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 (Java. Corba) ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 84 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 5 Developing software with components some guidelines ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 85 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component documentation Idea: building SW systems like HW systems. . . Point: components are more than SW IBar IFoo 2 … 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 86 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
“Three questions of software contracts” [Meyer] n What does it expect? n What does it maintain? n What does it guarantee? ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 87 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 88 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 89 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Requirements for successful reuse [Gartner] n n n n Inventory (something to reuse. . . ) Catalog/repository & search Reuse administrator and facilitator A&D methodology incorporates reuse and design for reuse Design standards ensure consistency Measurement of reuse effectiveness Quality assurance Incentives to encourage reuse ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 90 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 91 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 n n n SW-builder tool vendors modeling tool vendors open source community component standard groups component consortiums books web sites java. sun. com/beans/marketing. html www. alphaworks. ibm. com www. cbop. gr. jp www. componentsource. com www. developer. com www. flashline. com www. devtools. de ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 92 www. openavenue. com www. pparadise. com www. qbssoftware. com www. sourceforge. com www. theorycenter. com www. xtras. com. . . 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 6 Problems and research issues ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 93 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
CBSE research and the SW life-cycle - certification - SW development process - configuration - team structure management Project Management Quality Management Analysis Design Implementation Deployment Testing Components Analysis Design Implementation Deployment Testing Application Analysis Design - development - design for methods customization/ - notations - storage variability - frameworks - documentation - wrapping - specification/contracts ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 94 Implementation Testing Deployment - run-time - assembly infrastructures - finding - trusting - distribution - glue code 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Contracts and documentation Are more than interface method definitions n How to specify? n n n interfaces behavior (pre-/post conditions, invariants) dependencies (required interfaces) quality of service ? ? ? 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 95 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 96 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 n n interfaces functionality component model certification level previous usage, trust n multiobjective optimization n negotiable requirements ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 97 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Software development process n Current approach requirements - analyse - design - implementation - test n CBSE approach must include n n reuse component selection component test requirements reconciliation component mining for reuse n CBSE must be supported by n modeling formalisms and tools n development tools ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 98 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 n New mind-set: create -> construct Allocate reuse management staff (repository, training) Accept short term productivity reduction 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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 99 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 100 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 101 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 102 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Component models for embedded systems n n n real-time requirements limited processing resources higher reliability requirement hot-swapping non-mainstream OSes definition of component (HW included? ) ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 103 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Problems and research issues n n n n n Contracts and documentation Design for reuse Repositories Software development process Organizational changes Developing a component market Versioning and configuration management Security Component models for embedded systems ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 104 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Part 7 Information sources ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 105 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Books n n n Ivar Jacobson, Martin Griss, Patrik Jonsson: Software Reuse : Architecture, Process, and Organization for Business Success (1997) Desmond Francis D'Souza, Alan Cameron Wills: Objects, Components, and Frameworks With Uml : The Catalysis Approach (1998) Clemens Szyperski: Component Software : Beyond Object-Oriented Programming: (1998) Peter Herzum and Oliver Sims: Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise (1999) Alan W. Brown: Large-Scale Component-Based Development (2000) Betrand Meyer: Object-Oriented Software Construction, 2 nd Edition (2000) ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 106 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Journals n n n IEEE Computer IEEE Software IEEE Internet Computing IEEE Transactions on Software Engineering IEEE Transactions on Computers ACM Transactions on Programming Languages and Systems languages and programming systems. ACM Transactions on Software Engineering and Methodology ACM Transactions on Computer Systems Software Development (www. sdmagazine. com) MSDN Magazine (msdn. microsoft. com/msdnmag) … all major SW development magazines ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 107 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Conferences Scientific n n n n n ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (oopsla. acm. org) International Workshop on Component-Based Software Engineering (www. sei. cmu. edu/cbse 2000/index. html) International Workshop on Component-Oriented Programming (WCOP) (ecoop 2000. unice. fr) IEEE Symposium on Engineering of Computer-Based Systems (ECBS) (www. dcs. napier. ac. uk/ecbs) Symposium on Generative and Component-Based Software Engineering (wwwstja. transit-online. de/gcse/) Technology of Object-Oriented Languages and Systems (TOOLS) (www. toolsconferences. com) International Conference on Software Engineering (ICSE) International Workshop on Software Specification and Design (IWSSD) (www. ics. uci. edu/IRUS/iwssd) International Conference on Software Reuse (ICSR) Trade n n Component Computing (www. tieturi. fi/coco 99) Component Developer's and User's Forum (CDUF) (www. componentdevelopment. com) ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 108 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
Others n http: //www. cetus-links. org/ n http: //www. designbycontract. com/ ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 109 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 110 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
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 Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 111 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB
ABB Corporate Research Industrial Software Systems, CHCRC. C 2, Naedele /00 -08 -23 / 112 2000 ABB Corporate Research Ltd, Baden, Switzerland ABB


