60 likes | 432 Views
Modern Java Web application. Preferred Solution Technology Presentation Tier: F5 Load Balancer, Apache 2.2(+) x 2, (Tomcat 7, JSF2+ ) Business Tier: F5 Load Balancer, Weblogic 11g x 2 (JAVA EE 5(+) EBJ3+) Persistence Tier: Toplink 11g, Oracle 11g with RAC clustering Justification
E N D
Modern Java Web application Preferred Solution Technology Presentation Tier: F5 Load Balancer, Apache 2.2(+) x 2, (Tomcat 7, JSF2+ ) Business Tier: F5 Load Balancer, Weblogic 11g x 2 (JAVA EE 5(+) EBJ3+) Persistence Tier: Toplink 11g, Oracle 11g with RAC clustering Justification Tomcat provides JndiRealm to authenticate and retrieve LDAP user roles JSF provides consistent look and feel (Facelets template tags) and, declarative navigations via (faces-config.xml) and dynamic navigation EBJ3+ provides POJO promotion for ease of development EJB Stateless session beans to increase scalability Toplink persistence framework to manage OR mapping Oracle 11g persistence
Modern Java Web application Meeting Non Functional Requirements Security Declarative role based security via configuration files (web.XML) url patterns to define secure resources (web.XML), form based authentication with HTTPS (web.XML) Dual Firewall architecture with F5 + Apache in DMZ (if available) F5 + Weblogic in Internal Network Availability and failover Load balancing of 2 Apache Web Servers Load Balancing of 2 Web Logic 11g Servers (failover) RAC clustering of 2 Oracle 11G instances Scalability Add additional servers and database instances as needed
Modern Java Web application Alternative technology options Presentation Tier: JSP Structs, CSS Business Tier: JBoss 6.0, Websphere, Glassfish 3+ Persistence Tier: Hibernate, SQL Server, PostgresSQL Why not chosen JSF is a java standard, Facelets Glassfish lacks failover Oracle 11g best performing, failsafe and scalable. RIAs e.g Flex (not java), Ajax harder to program than JSF though may form a component of JSF solution Nevertheless Cheaper Glassfish based option may suffice dependent on yet to be clarified non-functionals. Struts is a capable framework, tiles give consistent look and feel.
Modern Java Web application Meeting Non Functional Requirements Testing Environment Replica of Production environment is best as it gives confidence that the application will perform the same as in production. A compromise for cost is to reduce the number of servers by hosting multiple instances of each tier on each machine. Virtualisation is a favoured approach to this. If virtualisation is unavailable then one server per tier is the next best option. Disaster Recovery Implies the need for an alternative site, similar design considerations as for testing. Dependent on the time to recovery and willingness to lose recent data this alternate site could be hot or cold. Oracle Goldengate replication could provide a near real time copy of the database at the backup site to minimise recovery time.
Modern Java Web application Design Patterns and Frameworks JSF 2+ is a framework based on a collection of design patterns. These include: Model View Controller(FacesServlet, beans as model, Uicomponent View), Singleton(FacesServlet, Application and Lifecycle), Factory (Lifecycle etc), State( e.gRestoreViewPhase), Composite, Decorator, Strategy (rendering), Template (via PhaseListeners), Observer Remote access to the EJB container implies the remote proxy pattern from stub to bean. The FACADE pattern would be used to provide a simple interface to EJB bean methods and reduce granularity and chattiness. The ADAPTOR pattern to access EIS’s. The Transfer Object pattern may be used to transfer beans to the web server container rather than using a stub if performance is an issue and data staleness can be tolerated. This could be teamed with the observer pattern to notify of the need to refresh.
Modern Java Web application SOA Fit EJB stateless session bean methods can be exposed as web services. This would be an alternative way for the JSP to access the beans. It would also provide access to other applications via web services calls and so this app could become a service provider. Critical to ensure bean coarseness for performance in this case, Facade The EJB session beans could also call SOA services wrapping legacy apps for further processing before passing the result to the presentation tier.