"Babes-Bolyai" University of Cluj-Napoca
Faculty of Mathematics and Computer Science

Component-based development methods
Code
Semes-
ter
Hours: C+S+L
Credits
Type
Section
MI363
2
2+2+0
9
compulsory
Programare bazată pe componente - în limba engleză
Teaching Staff in Charge
Prof. PÂRV Bazil, Ph.D.,  bparvcs.ubbcluj.ro
Aims
At the completion of this course, the students will be able to:
a) have a good understanding of the specifics of component and component-based system development
b) know the roles involved in component-based software development
c) know how to use Java technologies for developing Enterprise JavaBeans applications
Content
1. Component-based architectures
1.1. Two-tier application architecture
1.2. Traditional three-tier application architectures
1.3. Early Web-based application architectures
1.4. J2EE application architectures
2. Team structure and roles in the component development
2.1. Component developer
2.2. Application assembler
2.3. Deployer
2.4. System administrator
2.5. EJB container and server provider roles
3. Enterprise JavaBeans Components
3.1. Enterprise bean home interface
3.2. Enterprise bean remote interface
3.3. Enterprise bean class
3.4. Deployment descriptor
3.5. Container tools and services
4. Session Beans
4.1. Where to use session beans
4.2. The state of a session bean
4.3. Stateful session beans
4.4. Stateless session beans
4.5. Container-generated artifacts
4.6. Managing session beans at runtime
5. Entity Beans
5.1. The client view of an entity bean
5.2. Home and remote interfaces
5.3. The primary key and object identity
5.4. Entity object life cycle
5.5. Entity bean handles
5.6. The developer view of an entity bean
5.7. Entity object persistence
5.8. Entity bean class methods
5.9. Entity bean instance life cycle
5.10. Using the ejbLoad and ejbStore methods
5.11. Designing the entity bean remote interface
5.12. Concurrent invocation of an entity object
6. Transaction management
6.1. Declarative transaction demarcation
6.2. Programmatic transaction demarcation
7. Security issues
7.1. System administrator's responsibilities.
7.2. Container provider's responsibilities.
7.3. Application provider's responsibilities.
7.4. Deployer's responsibilities.

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. Starting the development of a distributed application using Enterprise JavaBeans. Define the problem
2. Team members and their roles. Requirements specification.
3. Business processes and business entities. The client application.
4. Design issues. Where to use session beans and where to use entity beans
5. Using stateful session beans
6. Using stateless session beans
7. Using command beans for accessing databases
8. Using entity beans with BMP
9. Using entity beans with CMP
10. Integrating parts from multiple providers
11. Application deployment
12. Application ready to use. Administration issues
References
1. D'SOUZA, DESMOND FRANCIS - WILLS, ALAN CAMERON: Objects, Components, and
Frameworks with UML : The Catalysis Approach, Addison-Wesley, 1999.
2. LOWY, JUVAL: Programming .NET Components, O'Reilly, 2003.
3. MATENA, VLADA - STEARNS, BETH - KRISHNAN, SANJEEV - DEMICHIEL, LINDA: Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform, Addison-Wesley, 2nd ed., 2003.
4. ROMAN, ED: Mastering Enterprise JavaBeans, John Wiley, 2nd ed., 2001.
5. Component Technology Homepage, [http://www.fja-odateam.com/cop/].
6. Enterprise Solution Patterns Using Microsoft .NET, [http://msdn.microsoft.com/ architecture/ patterns/default.aspx?pull=/library/en-us/dnpatterns/html/Esp.asp].
7. Java Platform, Enterprise Edition, Sun Corp., 1999-2004. [http://java.sun.com/j2ee/].
8. Microsoft Component Object Model Technologies, [http://www.microsoft.com/com/ default.mspx].
Assessment
The final mark will cover lab (i.e. completing a project) and research (preparing a research paper) activities. It is computed as follows, on a 10-point scale:
1pt by default
1pt lab attendance
4pts the project
4pts the research paper.