Download presentation
Presentation is loading. Please wait.
1
July 23 th, 2005 Software Architecture in Practice RiSE’s Seminars Bass’s et al. Book :: Chapter 16 Fred Durão
2
July 23th, 2005 2 Summary J2EE/EJB (Chapter 16) The J2EE Architectural Solution The EJB Architectural Solution EJB Programming Deployment Descriptors System Deployment Decisions
3
July 23 th, 20053 J2EE/EJB – A case study of an Industry-Standard Computing Infrastructure
4
July 23th, 2005 4 History In early 1990s was developed CORBA on which… Distributed objects could communicate and interact with each other seamlessly and transparently. After, Sun Microsystems pushed the Java programming Language to support RMI (Remote Method Invocation) The Microsoft release the framework.Net In 1997 Sun Microsystems releases the framework J2EE/EJB J2EE/EJB :: Chapter 16
5
July 23th, 2005 5 Requirements and qualities “The Wimbledon Tennis tournament experienced almost 1 billion Web access in 1999, with 420.000 hits per minute (7000 per second) during one match” J2EE/ EJB aims to: Provide a component-based architecture for building distributed OO applications in Java Scalability – e.g. web access Availability – 24/7 Security - AA Usability – access in different forms Performance – latency Portability – run in a variety of computing platforms Interoperability – server side components implemented on different vendors Extensibility – e.g. struts, JSF… J2EE/EJB :: Chapter 16
6
July 23th, 2005 6 Architectural Solution 3 major features A multi-tiered distributed application model A server-side component model Built-in transaction control Fonte:http://java.sun.com/j2ee/appmodel.html Components and Services EJB – server-side component JSP Java Servelt JMS – Java Message Service JNDI JTS – Java Transaction Service JCA – Java Connector Architecture COM Bridge RMI over IIOP JDBC J2EE/EJB :: Chapter 16
7
July 23th, 2005 7 The EJB Architectural Approach Fonte: http://info.borland.com/techpubs/jbuilder/jbuilder2005/enterprise/images/ejb-architecture.gif J2EE/EJB :: Chapter 16
8
July 23th, 2005 8 The EJB Architectural Approach {2} Session Beans Stateless session beans Stateful session beans Entity Beans Container Manager Persistence Bean Manager Persistence J2EE/EJB :: Chapter 16
9
July 23th, 2005 9 The EJB Architectural Approach – achieving qualities GoalTactics Used Availability/ReliabilityHeartbeat Transactions Passive Redundancy Implementation TransparencyMaintain existing interfaces Semantic Coherence InteroperabilityAdherence to defined protocols PerformanceConfiguration Files Load balancing Maintain multiple copies ScalabilityLoad balancing J2EE/EJB :: Chapter 16
10
July 23th, 2005 10 EJB - Programming To create EJB server-side component, the developer must provide two interfaces: Home Contain the life cycle methods of the EJB Remote Business methods offered by the bean J2EE/EJB :: Chapter 16
11
July 23th, 2005 11 EJB – Programming {2} J2EE/EJB :: Chapter 16
12
July 23th, 2005 12 EJB – Entity Bean J2EE/EJB :: Chapter 16
13
July 23th, 2005 13 EJB – Interface Home J2EE/EJB :: Chapter 16
14
July 23th, 2005 14 EJB – Remote Interface J2EE/EJB :: Chapter 16
15
July 23th, 2005 15 Deployment Descriptor It is XML document associated with an EJB that: Describes the type of the bean (session or entity) Describes the classes used for home, remote and the bean classes Specifies the transactional attributes (access control) Specified if the persistence in the entity bean is handled automatically by the container or performed explicitly by the bean code This the SEMANTIC COHERENCE tactic implemented J2EE/EJB :: Chapter 16
16
July 23th, 2005 16 Deployment Descriptor – ejb-jar.xml J2EE/EJB :: Chapter 16
17
July 23th, 2005 17 Database Descriptor J2EE/EJB :: Chapter 16
18
July 23th, 2005 18 State Management – A performance decision Stateful Session Bean Must be used to atomic actions …else may high the overhead in terms of application performance Stateless Session Bean Many request to the server… …and persist the data on later E.g. shopping cart J2EE/EJB :: Chapter 16
19
July 23th, 2005 19 Entity Bean – to Use or Not Use? That’s the question Typical e-commerce system with an 85% read-only and 15% update transaction mix when implemented with entity beans achieved only half of this performance Causes of degradations: Containers…are the black boxes Bad state management Additional beans participate in the transaction J2EE/EJB :: Chapter 16
20
July 23th, 2005 20 Distribution and Scaling Issues Two ways of increasing the processing power in the server tier Scaling up, or “vertical” scaling Adding memory or faster processors in a single machine Scaling out, or “horizontal” scaling The server application is distributed across more the one machine Increased redundancy Cost efficiency J2EE/EJB :: Chapter 16
21
July 23th, 2005 21 Distributed Transactions Two phase commit protocol is often essential in building enterprise-wide system Is it always necessary? What about the overhead involved in managing them? What about several remote calls that pass over the network? What about the architect experience for that? J2EE/EJB :: Chapter 16
22
July 23th, 2005 22 Resource Pooling Transactions Connections to the databases do not need to be re- established continuously, thus improving application performance J2EE/EJB :: Chapter 16
23
July 23th, 2005 23 Dependence on Java Virtual Machine Performance If the heap size is big, garbage collection will be infrequent…and this can slow down the server processing, giving the impression that the server is slow in unresponsive J2EE/EJB :: Chapter 16
24
July 23th, 2005 24 References Bass L., Clements P. and Kazman R. Software Architecture in Practice. Second Edition, 2003. “a luz no fim do túnel pode ser um trem vindo em sua direção” J2EE/EJB :: Chapter 16
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.