Sakai WebApp Structure

Slides:



Advertisements
Similar presentations
Introduction to the Spring Framework
Advertisements

Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Tool Naming Tips Aaron Zeckoski
Apache Struts Technology
A Blackboard Building Block™ Crash Course for Web Developers
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Recap of Sakai Services Antranig.
JNDI Java Naming Directory Interface JNDI is an API specified in Java that provides naming and directory functionality to applications written in Java.
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
Objectives In this session, you will learn to:
Model-View-Controller ("MVC") This is a architectural design pattern for interactive applications. This design pattern organizes an interactive application.
The 21th Century Repairman Agenda Introduction J2EE - Interface Subcontractor Manager Subcontractor Demonstration.
Layers & Tiers Umair Javed Lec - 41.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
Apache Tomcat Server Typical html Request/Response cycle
27-Jun-15 Directories and DDs. 2 Web apps A web application is basically a web site that: “Knows who you are”--it doesn’t just give you static pages,
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Data Persistence and Intro to Hibernate.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Software Development Architectures Ankur K. Rajopadhye Louisiana Tech University.
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.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Sakai Persistence and Intro to Hibernate Aaron.
11. Java-Based Web: JSP, JSF. 2 Motto: Rule 1: Our client is always right Rule 2: If you think our client is wrong, see Rule 1. - Anonymous.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Introduction to Sakai and Sakai.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
Module - Technical Basics
DICOM / HL7 Verfication / Java Basis Random user with no account justs wants to validate an HL7 message or DICOM object The next diagram shows a number.
Introduction to J2EE Architecture Portions by Kunal Mehta.
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
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Introduction to Sakai and Sakai Services Aaron Zeckoski
J2EE Overview Web Programming CSCI J2EE multi-tier architecture Servlet: Java class loaded into Web server JSP page: enhanced HTML page that is.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Sakai Development Practices, Best, and otherwise.
Introduction to Web Dimitar Nenchev Ivan Nakov
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Persistence and Hibernate Aaron Zeckoski
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Welcome to the Sakai Oxford Tetra ELF Workshop.
Model View Controller Architecture of Java Web Applications Dr. M V S Peri Sastry, Ph.D.[BITS-Pilani]
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Training Workshop Tata Interactive Systems Mumbai, India.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai development and app/tool tips Aaron Zeckoski
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Sakai code exercises Aaron Zeckoski.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
CS 4720 Model-View-Controller CS 4720 – Web & Mobile Systems.
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Welcome to the Sakai Oxford Tetra ELF Workshop.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
Developing with the Framework Zach A. Thomas, Texas State University
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Comparative Display Technologies in Sakai.
Structure of a web application
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
Persistence – Iteration 4 Vancouver Bootcamp
Introduction to J2EE Architecture
Aaron Zeckoski Sakai Tool Naming Tips Aaron Zeckoski
Sakai WebApp Structure
Introduction to Struts
Introduction to Sakai and Sakai Services
Lecture 1: Multi-tier Architecture Overview
JavaServer Faces: The Fundamentals
International Living Atlases Workshop Madrid 2018
CS4961 Software Design Laboratory Understand Aquila Backend
Finding transactions through your application
Presentation transcript:

Sakai WebApp Structure Aaron Zeckoski aaronz@vt.edu

What are we talking about? Let’s review some basics about web applications (to get on the same page) 3-tier architecture (or n-tier where n=3) Look at the basics of Sakai webapps Go over some Sakai app file structure conventions Talk about some package naming conventions

3-tier Application Architecture 3-tier architecture External Presentation User Other Apps Business Logic Database Data Access

Presentation Layer This is what the user sees and interacts with Sometimes called the GUI or client view Should not contain business logic or data access code 3-tier architecture Presentation Business Logic Data Access

Logic (Business) Layer The set of rules for processing business information Sometimes called middle tier or backend Should not contain presentation or data access code 3-tier architecture Presentation Business Logic Data Access

Data Access Layer The physical storage layer for data persistence Manages access to DB or file system Should not contain presentation or business logic code 3-tier architecture Presentation Business Logic Data Access

The 3-tier keys Each tier should be independent and should not expose dependencies related to the implementation Unconnected tiers should not communicate 3-tier architecture Presentation Business Logic Data Access

Application Structure and Dependencies Implementing the 3-tier structure in Sakai requires use of 3 deployment areas Shared - Tomcat shared library space More things than you would think will have to go here for your app to work Components - Sakai application context This is how Sakai maintains its collection of beans WebApp - Tomcat webapps (for your app/tool) Anything specific to your app gets deployed the same way it would if it were outside Sakai Note: Deployment areas do not map to tiers URL: http://issues.sakaiproject.org/confluence/x/BGo

Application Structure Diagram Shared Model Logic-api (business logic) Public-api (service) Dao-api (data access) Components Logic-impl (business logic) Webapps Dao-impl (data access) Tool (presentation) URL: http://issues.sakaiproject.org/confluence/x/BGo

Sakai App File Structure 3 main directories (can be separate projects) Api (interfaces) Logic - business logic and dao apis Model - POJOs (value/data objects) Public - Service API (if you have one) Impl (implementations) Dao - data access implementation Hbm - Hibernate HBM files (if using hibernate) Logic - business logic implementation Pack - spring config files (Sakai components.xml) Tool (webapp) src/java - java classes used by your tool only src/webapp - xml, jsp, html, other meta files URL: http://issues.sakaiproject.org/confluence/x/BGo

File Structure Diagram Don’t try to memorize this, use the café app structure reference instead Don’t build this manually, use the Sakai AppBuilder plugin for Eclipse URL: http://issues.sakaiproject.org/confluence/x/BGo

Sakai App Package Structure org.sakaiproject - base package prefix You could also use your local prefix (e.g. edu.vt.sakai) org.sakaiproject.app-name Use something unique for app-name, long is good dao - data access hbm - hibernate mapping files logic - business logic model - value/data objects service - public api tool - webapp Add impl to represent implementations URL: http://issues.sakaiproject.org/confluence/x/BGo

Package Structure Diagram As before, don’t try to memorize this, use the café app structure reference instead Don’t build this manually, use the Sakai AppBuilder plugin for Eclipse URL: http://issues.sakaiproject.org/confluence/x/BGo

Reference Materials Refer to the Programmers Café Use the café app structure reference Try out the Sakai AppBuilder plugin Take advantage of the power of Eclipse to auto-complete and organize Use the Package Explorer Java view

Questions?