| JavaOne 2003 | Session #1870 Massive Scale Deployments Tips, Tricks, & Pitfalls Stephen Davidson Principal Associate Stephen Davidson & Associates, Inc.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

The State of the Art in Distributed Query Processing by Donald Kossmann Presented by Chris Gianfrancesco.
Introduction to DBA.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Chapter 13 (Web): Distributed Databases
Faith Allington Program Manager Microsoft Corporation Session Code: WSV304.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
An architecture for webb applications, J2EE
Lesson 11-Virtual Private Networks. Overview Define Virtual Private Networks (VPNs). Deploy User VPNs. Deploy Site VPNs. Understand standard VPN techniques.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
File Systems (2). Readings r Silbershatz et al: 11.8.
Understanding and Managing WebSphere V5
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
N-Tier Architecture.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Introduction to the JBoss Presented by: Hao Shi. Agenda Application Servers What is JBoss JBoss features Architecture of JBoss Installation and running.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Yavor Todorov. Introduction How it works OS level checkpointing Application level checkpointing CPR for parallel programing CPR functionality References.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.
How to Deploy, Monitor and Manage Middle-Tier Applications Lars Ewe, Principal Product Manager Valerie K. Kane, Group Manager Oracle Corporation Session.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Distributed File Systems
Introduction to J2EE Architecture Portions by Kunal Mehta.
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
JavaOne '99 Confidential Performance and Scalability of EJB-based applications Sriram Srinivasan Principal Engineer, BEA/WebLogic.
J2EE Structure & Definitions Catie Welsh CSE 432
Session-8 Data Management for Decision Support
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
JBoss Overview J2EE Sig Presenter: Steve Davidson Stephen Davidson & Associates, INC.
Personal Computer - Stand- Alone Database  Database (or files) reside on a PC - on the hard disk.  Applications run on the same PC and directly access.
ArcGIS Server for Administrators
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
MC365 Application Servers, Servlets, and Java Server Pages (JSP’s): Tomcat.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
CS 3500 L Performance l Code Complete 2 – Chapters 25/26 and Chapter 7 of K&P l Compare today to 44 years ago – The Burroughs B1700 – circa 1974.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
Java Servlets and Java Server Pages Norman White Stern School of Business.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Distributed Computing Systems CSCI 4780/6780. Scalability ConceptExample Centralized servicesA single server for all users Centralized dataA single on-line.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Servlets and Java Server Pages
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
1 CEG 2400 Fall 2012 Network Servers. 2 Network Servers Critical Network servers – Contain redundant components Power supplies Fans Memory CPU Hard Drives.
Background Computer System Architectures Computer System Software.
PARALLEL AND DISTRIBUTED PROGRAMMING MODELS U. Jhashuva 1 Asst. Prof Dept. of CSE om.
17 Copyright © 2004, Oracle. All rights reserved. Integrating J2EE Components.
Apache Struts Technology A MVC Framework for Java Web Applications.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Databases and DBMSs Todd S. Bacastow January 2005.
Netscape Application Server
Types for Programs and Proofs
The Client/Server Database Environment
Introduction to J2EE Architecture
Enterprise Application Architecture
Cracking the Coding Interview
Understanding and Designing with EJB
Evaluating Transaction System Performance
Understanding and Designing with EJB
Developing and testing enterprise Java applications
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Enterprise Java Beans.
Client/Server Computing and Web Technologies
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

| JavaOne 2003 | Session #1870 Massive Scale Deployments Tips, Tricks, & Pitfalls Stephen Davidson Principal Associate Stephen Davidson & Associates, Inc

| JavaOne 2003 | Session #18701 Primary Purpose Discussion on Development & Design Techniques for Large & Massive Scale Web-Applications

| JavaOne 2003 | Session #18701 Speaker’s Qualifications Stephen Davidson has worked as a Developer and Technical Lead for three years on Massive Scale Applications The Web Domains Stephen has worked on have been designed to support 150, million concurrent users The Web Domains developed have had Applications, with multiple "screens" per application Stephen Davidson is the Chair of the Dallas- FortWorth J2EE Sig.

| JavaOne 2003 | Session #18701 Presentation Agenda ● Design Goals and Choices ● Deployment Strategies & Tricks ● Programming Tips & Pitfalls ● Future Choices ● Q & A

| JavaOne 2003 | Session #18701 Design Goals and Choices ● Response Speed ● Scalability ● Reliability ● Failover ● Modularity ● Development Speed

| JavaOne 2003 | Session #18701 Deployment Strategies & Tricks ● Packages and Multiple Jars ● Precompiling JSPs ● Ear files, EJBs, and Hot re-Deploys ● Clusters ● Refactoring Strategies

| JavaOne 2003 | Session #18701 Packages and Multiple Jars ● One Application should not do all. Look for logical breaks. ● Breaking code down by packages per Application makes for; – Easier Testing/Debugging – Faster Redeployments ● 1 or 2 Packages per Jar makes for faster redeployments – Most appservers can recognize which EJB-Jars have been updated, and will only redeploy those – For Developers, most AppServers have unpacked directories that updated jars can be immediately redeployed to during a build.

| JavaOne 2003 | Session #18701 Precompiling JSPs ● Most Appservers supply a JSPC tool (jsp compiler), including Weblogic & JBoss ● Advantages – Find compile bugs during development/build – Immediate deployment of JSPs, user does not need to wait for JSP to compile ● Disadvantage – May need to merge generated JSP web.xml file with project's file for deployment

| JavaOne 2003 | Session #18701 EAR Files ● Most AppServers unpack before deploying contents ● Many Appservers will check to see which jars (especially ejb jars) have been changed before redeploying jar (ex. Orion, JBoss) ● Deploying Jars in an Ear helps EJB Container keep classes synchronized across jars. ● If large file being copied over network, copy to another extension, then rename ● many deployment scanners get confused with half-copied files, crashing the AppServer and forcing a restart

| JavaOne 2003 | Session #18701 Clusters ● Many Appservers now support this, with varying degrees of efficiency, reliability, and speed ● Usually a performance hit – Session Data has to be copied across cluster – Other nodes have to be monitored (by Appserver) – Transactions can be distributed over other machines in cluster

| JavaOne 2003 | Session #18701 Clusters (continued) ● Transactions can be sped up by using READ- ONLY Entity attributes (and Read-Mostly when available - for instance WL).

| JavaOne 2003 | Session #18701 Refactoring ● Application Layer ● Development Group

| JavaOne 2003 | Session #18701 Refactoring by Layer ● Presentation Layer ● Business Tier ● Sessions & Entities ● Data Access

| JavaOne 2003 | Session #18701 Refactoring by 'Group' ● Individual ● Team Leader/Mentor ● Project Leader ● Group/Peer Review

| JavaOne 2003 | Session #18701 Programming Tips & Pitfalls ● Identify Common Algorithms ● AppServers are NOT created Equal ● Storing Objects in Sessions and Requests ● Optimizing & Profiling

| JavaOne 2003 | Session #18701 Identify Common Algorithms (Refactor Continously) ● Identify and "Basify" Common Algorithms and Utility Functions – Watch for "Copy and Paste" of code by Developers – Common/Base code into one or more Utility Jars

| JavaOne 2003 | Session #18701 AppServers are NOT created equal ● Weblogic vs JBoss – Deploy Speed – Start Speed – Support – Functions and Reliability – Hot Redeploy - test with YOUR Application! – Certification Issues ● For more comprehensive studies, c/o

| JavaOne 2003 | Session #18701 Storing Objects in Sessions & Requests ● When ● Why ● Consequences

| JavaOne 2003 | Session #18701 Optimizing and Profiling ● Obvious stuff should be done early – Coarse grain EJB calls – Caching EJB handles – Don't cache object Handles – Use StringBuffer for concats, instead of Strings – Write Byte/Char arrays to sockets, instead of Strings - its much faster – If JDK 1.4+, lookout for Bug # (StringBuffer Memory Leak) ● Appeared in 1.4.1, Fixed in 1.4.1_04, 1.4.2RC

| JavaOne 2003 | Session #18701 Optimizing & Profiling (continued) ● Keep Code Readable – Don't try to optimize code during initial development – Why save a few milleseconds when their may be places with delays of several seconds? – Keeping code readable gets code done faster with fewer errors – Easier to Debug

| JavaOne 2003 | Session #18701 Optimizing & Profiling When to Profile? ● Depends on Experience of Developer – If 'new', then generally more frequently, such as when a major object or method is completed – When more experienced, less frequently, but still at major milestones ● Just BEFORE Integration with other components – Make sure that everything is running at reasonable efficiency ● Just AFTER Integration with other components

| JavaOne 2003 | Session #18701 Future Choices ● AppServer Clustering vs OS Clustering ● Bandwidth vs Processing Power

| JavaOne 2003 | Session #18701 Summary Break Down EJBs into Groups, and put Groups in Jars PreCompile JSPs Profile everything

| JavaOne 2003 | Session #18701 If You Only Remember One Thing… Profile Profile Profile

| JavaOne 2003 | Session #1870 Q&A ● USEFUL RESOURCES ● Core J2EE Patterns - Best Practices and Design Strategies ● ● ●

| JavaOne 2003 | Session #1870