480 likes | 501 Views
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.
E N D
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