Components
E N D
Presentation Transcript
Components Lecture Five
Group Projects • Draft material due on Feb. 18 • Assignment Description due on Feb. 18 • URLs for group work • Sign up for review • Final material due on March 1st.
Reading after Class • Szyperski • Chapters 1, 4, 5, 7, 8, 9, 10, 15
Application Architecture • Macro-level physical and logical system structure • partition code into packages • Distributing packages and processes among network nodes • Collaboration strategies
Partition • Layers: vertical partitions • Subsystems: horizontal partitions • Example: • Viewer Layer • Application Layer • Domain Layer • Persistence Layer
Couplings • Strongly/weak coupled • Reduce couplings between layers is primarily done by introducing an interface (façade) • Reduce couplings between subsystems is done by introducing components
Two Java Component Architectures • JavaBeans Architecture • Use Observer pattern • Invisible/visible • Enterprise JavaBeans Architecture • distributing components on a network • Locating, instantiating, communicating with these distributed components • Session/Entity Beans
Enterprise Java Server • Has EJB contains • Containers manage life-cycle of EJB • Locate/instantiate/transaction/…
View • All user interface classes • Only layer visible to actors • Undergo most changes • Less reuable, rarely subclassed • Instatiate classes from Application model layer • Propagate events to app. Model layer
Appliation Model Layer • Mediate between View Layer and Domain Layer • Most Application Logic • Controllers • View controllers (application logic only, no business logic): JavaBeans • Use case controllers (transactional): Session Beans • Adapters
Domain • Business objects • Reusable to all applicatons • Comprehenible to everyone • Most persistent: Ivisible JavaBeans • Coupled to persistence layer only
Persistence Layer • Weakly coupled to Domain Layer (preferably by metadata)
Layer Distribution • Fat Client • All application layers on client; server nodes for persistent storage • Not scalable • Anorexic • Web browser only; 3270 client • Limited functionality
Layer Distribution (II) • Big-boned Client • Viewer layer and part of application-model layer on client • Viewer controllers on client; user case controller on upper tier • Domain objects travel back and froth between client and server • Shared resources on server; rich interface; client software installation required