Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University

Slides:



Advertisements
Similar presentations
Introduction to the Spring Framework
Advertisements

Connecting to Databases. connecting to DB DB server typically a standalone application Server runs on localhost for smaller sites –i.e. Same machine as.
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
Introduction to .NET Framework
Apache Struts Technology
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Spring, Hibernate and Web Services 13 th September 2014.
© 2004, The Trustees of Indiana University Kuali Project Architecture JA-SIG December 7, 2004 James Thomas Manager, Systems Integration Indiana University.
פתרונות J2EE וטכנולוגיות Oracle Mr. Liran Zelkha, Chief Architect
An architecture for webb applications, J2EE
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Hello Vaadin! CS 3130 Summer 2015.
Apache Struts Technology A MVC Framework for Java Web Applications.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Spring/Testing Training Jay Sissom. Topics Java Interfaces Service Oriented Architecture Spring Testing with junit.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Java Frameworks Indy Java Users Group January 29, 2003.
JDBC Session 5 Tonight: Data Access Patterns 1.J2EE Architecture & Design Patterns 2.The Data Access Tier 3.Data Access Patterns –DataAccessObject (DAO)
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
NetArchive Suite Workshop 2011 Technical Track - Code refactoring with the Spring Framework.
Traditional Web Based Application Structure Frameworks define how the application is designed, organised and deployed across various tiers.
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Opus College - overview. OpusCollege - background First project: ICT Capacity Building Mozambican Higher Education Institutions Partners: RUG Groningen,
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Spring Framework. Spring Overview Spring is an open source layered Java/J2EE application framework Created by Rod Johnson Based on book “Expert one-on-one.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
© 2004, The Trustees of Indiana University Kuali Project Development Methodology, Architecture, and Standards James Thomas, Kuali Project Manager Brian.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Sakai WebApp Structure
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool The problem fixed by ORM Advantage Hibernate Hibernate Basic –Hibernate sessionFactory –Hibernate Session.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
JSP Server Integrated with Oracle8i Project2, CMSC691X Summer02 Ching-li Peng Ying Zhang.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool Used in data layer of applications Implements JPA.
Test Driven Development Introduction Issued date: 8/29/2007 Author: Nguyen Phuc Hai.
Text 16 de mayo de 2009 Spring Framework Part III. Portable Service Abstractions and Spring MVC Buenos Aires, June 2009.
Apache Struts Technology A MVC Framework for Java Web Applications.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Best 3 Software Development Languages. Hibernate Training Hibernate is a high-performance object-relational mapping tool and query service. Hibernate.
The Holmes Platform and Applications
Introduction to J2EE Architecture
Unit 6-Chapter 2 Struts.
Sakai WebApp Structure
Design and Maintenance of Web Applications in J2EE
Lecture 1: Multi-tier Architecture Overview
JavaServer Faces: The Fundamentals
Developing and testing enterprise Java applications
Objectives In this lesson, you will learn about:
SDMX IT Tools SDMX Registry
Presentation transcript:

Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University

Code public interface Presenter() { public String talk(); } public Jay implements Presenter { public String talk() { return “Welcome”; }

Agenda Overview Tools Architecture The Steps!

Quote "Things should be made as simple as possible, but no simpler.” Albert Einstein

Overview Developing Enterprise Applications is HARD! IU has developed 10+ Enterprise Applications in Java in the last 3 years Teams were made up of 1 to 10 developers Most developed using the Rational Unified Process RUP didn’t work well for our developers We were looking for a better way to build applications

Methodologies Problems with previous methodologies  Process driven  Difficult to keep up with changes  Time consuming  Inefficient  Sometimes less than satisfactory results  Inflexible – requirements do change

Overview A new Methodology was used to build the Pre-Disbursement Processor application We had a team of five to build this application  Project Manager  Lead Java Developer  Java Developer  Batch Developer  Project Consultant

Overview Other Libraries SIS Purchasing PDP Banks Direct Deposit Check Printing

Tools - Application Frameworks OJB Object/Relational Mapping Spring Framework Application Framework Struts User Interface Framework Log4j Debug Logging jUnit Testing Framework

Tools - Development Tools Java Java Virtual Machine Eclipse Integrated Development Environment MyEclipse Web/XML plugin to Eclipse Tomcat Servlet Container CVS - Source Code Version Control

Tools - Server Platform RedHat Advanced Linux - Operating System Sun JDK Java Virtual Machine Tomcat Servlet Container Apache Web Server

Architecture Key Objectives  Design highly functional and flexible software  Technology choices based on industry standard, open source, and “proven” solutions  Deliver applications via loosely-coupled components and services with clearly defined APIs  Leverage core “IT assets”  Emphasize code re-use/reduce redundancy

Service Based Architecture Services are loosely coupled Services have well-defined interfaces and are reusable Focus on business processes

Service Based Architecture Data Access Objects (DAO) Data Access Objects (DAO) Service Struts Actions Struts Actions Struts Forms Struts Forms Business Objects Service InterfaceDAO Interface

DAO - Data Access Object DAO’s talk to datasources to create, retrieve, update and delete data No business logic allowed All JDBC, SQL and/or OJB features should be contained within these objects No JDBC, SQL and/or OJB objects should be exposed Generally one DAO per entity

DAO Interface Java interfaces for DAO objects Services should only be aware of the interface, not actual DAO implementation The interface allows the use of Mock objects when testing

Service Used for business logic Call DAO’s to access data Should not contain SQL, JDBC or web specific information Each method will be a single database transaction

Server Interface Java interfaces for Service objects The interface allows the use of Mock objects when testing

Struts Actions Web user interface logic No business logic Call Services for business logic Generally should only call a single method in a service object

Struts Forms Only used when a user posts a form to the server All user edited fields are String properties Validation should just validate that fields have the proper format Validation in the Struts Action should call business logic Action Forms can contain Business Objects

Business Object A Business object is a Javabean (POJO) There should be a business object for each entity in the application Business objects can be used in any tier of the application In most cases, Business objects will be OJB data objects Entity specific business logic can be in Business objects

Isolation Each tier should be isolated from other tiers A tier shouldn’t have knowledge of how a different tier is implemented A tier should only communicate to another tier through a Java interface The Spring framework can handle dependencies so each tier is truly isolated

Dependency Injection Spring will pass dependant objects via calls set methods on managed objects so client objects don’t need to know details about how a dependant object works The dependencies are built into Spring’s context.xml file

Declarative Transactions Spring will manage transactions if they are defined in the context.xml No code is required to begin, rollback or commit a transaction No code is required to open and close database connections Spring handles this automatically Less code to maintain is a good thing!

Declarative Transactions Each method call into a service object is a transaction Spring automatically begins the transaction before the method call and ends it after If the method throws a runtime exception, Spring rolls back the transaction

Exceptions Runtime Exceptions  Use when situation is non-recoverable Checked Exceptions  Use when situation is recoverable Best Practice - fail as soon as possible  The closer the failure to the problem, the easier it is to find the problem Best Practice - fail big  Hidden failures make it more difficult to fix the problem

The Steps An Application is a collection of Use Cases One Use Case is implemented at a time Only develop functionality for the current use case - resist developing for future use cases

Step One: Review Use Case Review the Use Case  Do you understand it?  Is it complete? Work with functional people until it is clear and has all the information required for development

Step Two: Build a Prototype Users want to see what will be developed Most users can’t “visualize” a use case Update the use case based on the approved prototype, if necessary The HTML from the prototype can be used in your implementation

Step Three: Build an Outline Create all the objects/methods required for the use case Don’t implement the methods yet

Step Four: Test/Implement You can give this task to your less experienced developers Build unit tests first, then implement OR Build the implementation, then unit tests Make sure to do both

Step Five: Refactor Look for duplicate code Look for common functionality Look for unclear code Refactor to fix these problems Unit tests will make sure nothing broke

Step Six: User Testing Let the end user test the implemented use case They will probably find problems with the use case they wrote! Make sure this use case works the way the users want it to work

Next Steps Repeat these steps for each use case When there are no more use cases, your application is done! Refactoring and testing are the keys to this methodology

Quote - Revisited "Things should be made as simple as possible, but no simpler.” Albert Einstein

Summary The PDP application was built within the allotted time and budget It is possible to follow a simple methodology to build enterprise applications This is one methodology that can be used to successfully complete your applications