Component-based programming |
ter |
|||||
Teaching Staff in Charge |
Prof. PÂRV Bazil, Ph.D., bparv@cs.ubbcluj.ro |
Aims |
At the completion of this course, the students will be able to:
a) have a good understanding of the importance of component wiring models b) completely understand the object models discussed, with their common and specific features c) know how to use programming languages (C++, Java, Component Pascal) to implement COM, CORBA, and Java Beans, and Component Pascal components |
Content |
1. Component wiring models
1.1. The main features of a component 'wiring' model 1.2. Manipulating objects in a distributed environment 1.3. Interface relations and polymorphism 1.4. Identifying and localizing objects 1.5. Compound documents 2. The OMG CORBA model 2.1. The main functions of an ORB (Object Request Broker) 2.2. CORBA and Object Management Architecture OMA 2.3. CORBAServices Specification 2.4. CORBA implementations 2.5. CORBAFacilities Specification 3. The Microsoft COM/DCOM model 3.1. COM - how to connect objects 3.2. COM interfaces and polymorphism 3.3. Creating and using COM objects 3.4. COM and Distributed COM 3.5. COM services specification 3.6. Compound documents and OLE 3.7. Controls: from VBX to ActiveX 4. The Sun Java/JavaBeans model 4.1. The Java programming language and component-based programming 4.2. The Java programming language and distributed objects 4.3. JavaBeans specification 4.4. Java services 4.5. The Java distributed object model 4.6. Java native interfaces 5. Model comparison 5.1. Other component 'wiring' models 5.2. Common features of the models discussed 5.3. Specific features of the models discussed 6. Open problems 6.1. Domain standards 6.2. The impact of the components on software engineering 6.3. Mobile agents 6.4. Contract specification 7. Component architecture 7.1. The roles of a component architecture 7.2. Architecture conceptualization 7.3. Key terms 7.4. A tiered component architecture 8. Component frameworks 8.1. The roles of a component framework 8.2. OpenDoc 8.3. BlackBox Component Framework 8.4. OpenDoc versus BlackBox Seminar activity S1- The survey of information sources available on Internet and Intranet S2 - Planning of the working papers S3 - S14 - Presentation of the working papers, with the following topics 1. The CORBA model (4 papers) 1.1. OMG IDL 1.2. CORBA ORB - overview 1.2. CORBAServices 1.3. CORBAFacilities 2. The COM/DCOM models (3 papers) 2.1. COM interfaces 2.2. COM services 2.3. DCOM and COM+ 3. The Java/JavaBeans model (3 papers) 3.1. Java classes and interfaces. Exception handling. Threads and synchronization 3.2. JavaBeans: events and connections, propierties, introspection 3.3. Other Java services: reflection, serialization 4. The OpenDoc Model 5. The BlackBox Component Builder and Component Pascal |
References |
1. Documentatia BlackBox Builder Component Framework, http://www.oberon.ch/prod/BlackBox/download.html
2. Don Box, The Component Object Model and Some Other Model: A comparison of technologies revisited yet again, http://www.develop.com/COM_vs_SOM_Summ.htm 3. Component Technology Homepage, http://www.odateam.com 4. Bert Fitie, Component Software and Oberon: A Perspective on Oberon/F, The Oberon Tribune No 1/1, July 1995. 5. The System Object Model (SOM) and the Component Object Model (COM): A comparison of technologies revisited, IBM Corp., http://www.developer.ibm.com/library/ref/SOM_vs_ COM_Summ.html 6. Java Platform, Enterprise Edition Specification, Sun Corp., 1999. http://java.sun.com/j2ee/docs.html 7. The Microsoft Object Technology Strategy: Component Software, Microsoft, 1996, http://www.microsoft.com/oledev/olemkt/oleent/obstrat2.htm 8. Jason Pritchard, COM and CORBA Side By Side. Architectures, Strategies, and Implementations, Addison-Wesley, 1999. 9. Clemens Szyperski, Component Software. Beyond Object-Oriented Programming, Addison-Wesley 1998. |
Assessment |
The assessment method is written exam. The final mark (on a ten points scale, one point by default) will be obtained as:
a) Seminar activity: 2 pts b) Written exam: 7 pts |