Proposal for DSpace Web MVC



Similar documents
SSC - Web development Model-View-Controller for Java web application development

Portals, Portlets & Liferay Platform

Client-server 3-tier N-tier

JEE Web Applications Jeff Zhuk

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

SAP Web Application Server 6.30: Learning Map for Development Consultants

CrownPeak Java Web Hosting. Version 0.20

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Complete Java Web Development

Building native mobile apps for Digital Factory

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

Course Name: Course in JSP Course Code: P5

Web Cloud Architecture

Developing Java Web Services

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Creating Web Services in NetBeans

Pro<DOC/> e-commerce Technology An Introduction

Budget Event Management Design Document

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

SENIOR WEB DEVELOPER

Tutorial: Building a Web Application with Struts

An Architecture for Web-based DSS

Pentesting Web Frameworks (preview of next year's SEC642 update)

CSI 2132 Lab 8. Outline. Web Programming JSP 23/03/2012

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

Model-View-Controller. and. Struts 2

Joseph Mertz, Ph.D Teaching Professor H. John III Heinz College Dietrich College IS Program

Building Web Applications, Servlets, JSP and JDBC

Books-by-Users Web Development with SAS by Example (Third Edition) Frederick E. Pratter

Web Application Development for the SOA Age Thinking in XML

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Oracle SOA Reference Architecture

Customer Bank Account Management System Technical Specification Document

Corporate Bill Analyzer

Framework Adoption for Java Enterprise Application Development

Operationalise Predictive Analytics

Glassfish, JAVA EE, Servlets, JSP, EJB

How To Build A Web App

Developing XML Solutions with JavaServer Pages Technology

Joseph M Conaty Software Engineer

Getting Started Guide for Developing tibbr Apps

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

E-COMMERCE - project course

JAVA/J2EE DEVELOPER RESUME

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Introduction to Sun ONE Application Server 7

ANNEX A.1 TECHNICAL SPECIFICATIONS OPEN CALL FOR TENDERS F-SE-13-T01 WEB DEVELOPMENT SERVICES

Microsoft Training and Certification Guide. Current as of March 16, 2015

Web Frameworks and WebWork

IT6503 WEB PROGRAMMING. Unit-I

Resume of Victor Kachan (Web developer, Java developer)

Web and Enterprise Applications Developer Track

The Oracle Fusion Development Platform

B. WEB APPLICATION ARCHITECTURE MODELS

Java EE Web Development Course Program

MA-WA1920: Enterprise iphone and ipad Programming

Research on the Model of Enterprise Application Integration with Web Services

ORACLE ADF MOBILE DATA SHEET

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

What Is the Java TM 2 Platform, Enterprise Edition?

WIRIS quizzes web services Getting started with PHP and Java

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Mobilize Your ERP with ADF Mobile

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

MBARI Deep Sea Guide: Designing a web interface that represents information about the Monterey Bay deep-sea world.

A framework for web-based product data management using J2EE

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Human Resources Department.

MODULE 7: TECHNOLOGY OVERVIEW. Module Overview. Objectives

Lucy Zhang UI Developer Contact:

Guiding Principles for Modeling and Designing Reusable Services

Middleware- Driven Mobile Applications

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

JSP Java Server Pages

BEAWebLogic. Portal. Portlet Development Guide

CS Developing Web Applications with Java Technologies

Emrah Dayioglu Phone: Bernhard-Weiß Str.3, Berlin

Arduino Training - Basics of Micro-controllers Programming Basics

Avaya Inventory Management System

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Enterprise Application Development In Java with AJAX and ORM

Web Applications and Struts 2

Oracle Application Development Framework Overview

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi

SwiftScale: Technical Approach Document

Transcription:

Proposal for DSpace Web MVC QIN ZHENGQUAN Short description: In my experiences of building enterprise applications (Tourist Portal and Video rental system) my JSP pages were often peppered with scriptlets containing certain business logic. I am interested in taking on this project because I have witnessed for myself how logic at the presentation layer could create tight coupling scenarios and obstruct the evolvement of the front layer coding, thus impairing the quality of my code. Additional info: http://max.mailbigfile.com/7c426b328011d66b0630... Proposal for DSpace Web MVC "DSpace Web MVC" Qin Zhengquan, 2011 Self description I am a year 3 Information Systems Student specializing in Service Science Systems at the National University of Singapore (NUS). I have previously been involved in two enterprise applications development projects. 1. Online Tourist Portal 2. Online Video Rental Portal 3. Embedding of external SDK into iphone/ipad apps Online Tourist Portal In the online tourist portal project, my main scope of responsibilities involved the creation of a tourist map application that retrieves the various stakeholders meta-data information and displays them via the use of thegoogle Map API. I was also involved in the creation of a tourist analytics platform that uses data-mining techniques to search through the various purchasing and customer demographics information and to identify various sales and customer behavioral patterns and present them to the end-user via the use of JFree charts. Online Video Rental Portal In the online video rental portal project, I took my enterprise application development education to the next level by embarking on the use of web services to encourage interoperability via the use of auto-generated WSDL and SOAP XML contracts. My scope responsibility was to create a platform for users to upload videos, add inventory, performed sales analysis of the various inventory items and to allow customers to watch online videos. Extracts of my source code are available at the following links:

Online Tourist Portal: http://max.mailbigfile.com/aeefd9149fd1a61fd248e59f1f01c2b6/listfiles.php Online Video Rental Portal: http://max.mailbigfile.com/2d5a34530f1a7d5fa8aacc3fb6154219/listfiles.php Embedding of external SDK (Open source) into iphone apps I had a one year internship stint with a software development company in Beijing, China. I was mainly involved in project management to coordinate the work responsibilities between the developers and designers in the deliveries of an iphone application that is embedded with our company s SmarTots API. Part of my responsibilities includes embedding the external API method calls (Local and Remote) into the developers software code. I had to manually look through every developer s code to understand the specific portion to embed the required API calls. The table below depicts my skills sets and competency level. Technical Skill set Type Competency Level Java HTML, CSS Javascript JSP, Servlets Google Maps API JFree charts Enterprise Javabeans Web services XML C SQL Development Environment Skill set Netbeans Glassfish/Tomcat Spring Web MVC Framework Freemarker None None Technical Skill set English (Written) English (Spoken) Chinese (Written) Average Chinese (Spoken) Average Presentation

Reasons for joining this project In my experiences of building enterprise applications (Tourist Portal and Video rental system) my JSP pages were often peppered with scriptlets containing certain business logic. For example, within the JSP page itself, my scriptlets would contain method calls, like (get methods) to ensure the required content is displayed on the page. JSP pages should not contain too much logic as it creates tight coupling scenarios and can create obstruction to web design works. For example, the combination of javascript, scriptlet logic and html code could complicate web design development at the front end layer. Scriptlet logic should best be confined within the Servlet and JSP should mainly contain HTML code. I am interested in taking on this project because I have witnessed for myself how logic at the presentation layer could create tight coupling scenarios and obstruct the evolvement of the front layer coding, thus impairing the quality of my code. Above all, I wished to utilize the opportunity of the GSOC program to brush up on the quality of my software development skills by working with expert developers in the industry to develop real world applications. I strongly believe the experience gained from the GSOC program would put me in good standing with my future employers when I transit to the workforce upon graduation from NUS. Project Proposal Problem Statement: Separation of processing logic from presentation layer at the Web UI component in the DSpace application layer. Problem Elaboration: Although the DSpace three-tier architecture follows the model-view-controller (MVC) architecture, with most of the logic encapsulated in the logic layer, there is still a fair amount of processing logic involved in the Web UI component at the application layer. For example, in the full.jsp file under the browse folder of DSpace JSP-UI, there is a thick chunk of scriplet logic embedded from lines 30 to 164. Solution: The current proposal is to adopt the Spring Web MVC framework as a means to enforce the MVC framework architecture and the use of the Freemarker template engine to restrict the amount of logic at the presentation layer. To apply it to the DSpace context, for example, the amount of scriptlet logic in the full.jsp file could be drastically reduced if they were placed within the Controller component. For example, all the string variables could have been instantiated within Servlets and have their values defined there using the variousgetmethods() from the business logic layer. Once the values have been defined, we can then call request.setattribute( value, value) within the Servlet to have all the String values passed into an object. These objects can then be retrieved using therequest.getattribute method in the JSP page. The current approach seems to contain the request.setattribute method call within the JSP pages as well.

The use of the Spring Web MVC, with its dependency injection could also create loose coupling amongst the logic layer and perhaps improve performance as a result. Breakdown of goals within MVC framework Views: To ensure that JavaServer Pages (JSP) are strictly involved only in presentation layer and does not contain processing logic. Controller: To ensure that the HTTP request and response logic processing are handled by the specific Servlets. Model: To ensure that complex logic algorithms computation is handled entirely at the business logic layer. For example, session beans, web services. Proposal Timeline Before April 20: Installation of DSpace with netbeans Initiate contact with the Mentor to confirm the specific milestones required in the project development Initiate contact with the Mentor on the specific skill sets required for this project To code a complete Spring Web MVC application with Netbeans To read up the DSpace API documentation April 20 May 23 (Before the official coding time): To remain in contact with the mentor via email and IRC and to clarify existing doubts in the process of learning and discovery about DSpace. Continue reading up on DSpace API documentation, especially the specific required components To re-model previous enterprise applications based on the Spring MVC framework Using of FreeMarker engine for presentation layer code generation May 23 June 18 (Official coding period starts): Understanding the project objectives of the first phase deliverables Coding on the first phase deliverables Recoding all logic from the JSP (Method call handlers) into relevant Servlets. System documentation Reporting of any system bugs and errors on https://jira.duraspace.org/browse/dwmvc Weekly scrum with mentor on progress statuses including clarification on any existing doubts June 18 July 5:

Progressive unit testing on the previous milestone deliverable Post implementation review of the previous milestone deliverable Coding on the next mile stone deliverable System documentation Reporting of any system bugs and errors on https://jira.duraspace.org/browse/dwmvc Weekly scrum with mentor on progress statuses including clarification on any existing doubts JULY 6th MID TERM EVALUATION July 6 July 15: To prepare a presentation report to update developers on the developed functionalities, exceptions and bugs encountered Make further changes in the code to improve the Functionality, Exception handling, Bug Removal. To maintain contact with the developers and to update them on the progress Consultation with the mentor on the next phase of milestones deliverables Coding on the second phase deliverable Phase 2 system documentation July 15 July 25: To be in constant touch with the developers and to let them know about our progress. Progressive unit testing on the previous milestone deliverable Post implementation review of the previous milestone deliverable Coding on the next mile stone deliverable Most of the time will be consumed for rigorous testing and bug fixes. Coding on phase three deliverables Phase 3 system documentation July 25 July 31: Post implementation review A Buffer of two weeks has been kept for any unpredictable delay.