Presentation.

Slides:



Advertisements
Similar presentations
RP Designs Semi-Custom e-Commerce Package. Overview RP Designs semi- custom e-commerce package is a complete website solution. Visitors can browse a catalog.
Advertisements

Introduction to the Spring Framework
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Web Applications Development Using Coldbox Platform Eddie Johnston.
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
LHCbPR V2 Sasha Mazurov, Amine Ben Hammou, Ben Couturier 5th LHCb Computing Workshop
1 JavaScript & AJAX CS , Spring JavaScript.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
UNIT-V The MVC architecture and Struts Framework.
Client/Server Architectures
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Ori Calvo, 2010 “If people want to have maximum reach across *all* devices then HTML will provide the broadest reach” Scott Guthrie,
NextGen Technology upgrade – Synerizip - Sandeep Kamble.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
JavaScript & jQuery the missing manual Chapter 11
 SE18 T07S. NameStudent Number Aye Thet MonA U Ng Siew LengA L PragatiA X Tin Lai WaiHT082204N Varun TakA E Zhang ShudongA A.
May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Build Great Web Application 'Fast and Easy'
What’s New in Sage SalesLogix V Release Overview Sage SalesLogix v7.5.2 focuses on: −User Enhancements streamline the user experience furthering.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Introduction to ArcGIS API for JavaScript
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
SE18S07 1ISS SE18T7S Metric NoName A U AYE THET MON A L NG SIEW LENG A X PRAGATI A X TIN LAI WAI A E VARUN TAK A A.
Echo2 Java AJAX Web Framework Petar Milev. Contents 1.Introduction to Echo2 2.Echo2 Target – Business Web 3.Why Choosing Echo2? 4.Live Demo 5.How It Works?
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Kenny Trytek Joe Briggie Abby Birkett Derek Woods Advisor: Simanta Mitra Client: Matt Good, Kingland Systems.
TVAC Electronic Call Sheet System Team HeatWave Summer 2007.
Copyright 2007 Adobe Systems Incorporated. 1 ColdFusion 8 : Advanced AJAX Development Rakshith N Computer Scientist Jan 02, 2008.
ANSTO E-Science workshop Romain Quilici University of Sydney CIMA CIMA Instrument Remote Control Instrument Remote Control Integration with GridSphere.
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
CS 494 Web Development Class Size: Winter, 214: 97 Spring, 214: 81 Summer, 2014: 69.
The huge amount of resources available in the Grids, and the necessity to have the most up-to-date experimental software deployed in all the sites within.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
WebSphere Portal Technical Conference U.S Creating Rich Internet (AJAX) Applications with WebSphere Portlet Factory.
AJAX Compiled from “AJAX Programming” [Sang Shin] (Asynchronous JavaScript and XML)
Why data services? Common challenges when creating rich web applications Creating rich web applications with data services Future scenarios & roadmap.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Team S07. Agenda Scope of project Global use case diagram Analysis use cases High Level design (Software Architecture) Prototype challenges faced and.
Rails & Ajax Module 5. Introduction to Rails Overview of Rails Rails is Ruby based “A development framework for Web-based applications” Rails uses the.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Model View Controller MVC Web Software Architecture.
Team S07 Metric NoName A U AYE THET MON A L NG SIEW LENG A X PRAGATI A X TIN LAI WAI A E VARUN TAK A A ZHANG SHUDONG.
Asynchronous Javascript And XML AJAX : an introduction UFCEUS-20-2 : Web Programming.
Getting started with ASP.NET MVC Dhananjay
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
Web Technologies Lecture 6 State preservation. Motivation How to keep user data while navigating on a website? – Authenticate only once – Store wish list.
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
IPS Infrastructure Technological Overview of Work Done.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
The overview How the open market works. Players and Bodies  The main players are –The component supplier  Document  Binary –The authorized supplier.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
 AJAX technology  Rich User Experience  Characteristics  Real live examples  JavaScript and AJAX  Web application workflow model – synchronous vs.
.  A reference model developed for an important use case (Air Job) including UI widgets, controllers, services and DAOs.  After full requirement analysis.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
Open Solutions for a Changing World™ Eddy Kleinjan Copyright 2005, Data Access WordwideNew Techniques for Building Web Applications June 6-9, 2005 Key.
Using E-Business Suite Attachments
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
AJAX.
WEB API.
Lecture 1: Multi-tier Architecture Overview
ASP.NET Module Subtitle.
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
WCF Data Services and Silverlight
SDMX IT Tools SDMX Registry
Presentation transcript:

Presentation

Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer injection and loose coupled approach of having an MVC architecture. Rich UI achieved using ExtJS 4.0 Framework at UI layer. Communication achieved using AJAX calls (XMLHttpRequest) from Client to Server using JSON objects.

Architecture View of ECMS Recap Architecture View of ECMS

Design Use Case #1 (UI Layer) Maintain Air Freight Job Records

Design Use Case #1 (Service Layer) Maintain Air Freight Job Records (ADD)

Design Use Case #1 (Service Layer) Maintain Air Freight Job Records (Update)

Design Use Case #1 (Service Layer) Maintain Air Freight Job Records (Remove)

Design Use Case #1 (Service Layer) Maintain Air Freight Job Records (List)

Development

Development Approach A reference model developed for an important use case (Air Job) including UI widgets, controllers, services and DAOs. After full requirement analysis Entities and DAO layer interfaces are finalized, and implemented. Individual was assigned use cases to construct both UI components and Service components.

Flow of Development Activities Requirement Gathering, UI Prototype and Analysis Entity and DAO Implementation Continuous Integration and Test Design and Development Of Use Cases Experimental Reference application development Improvement And updates in Reference App

Development Activities

Important Features

GRID Panel All use cases has their entry point at Grid Panels, details of the record can be view in pop-up window and arranged in tabs. Grid Panels are build much powerful to provide functionalities such as Filter/Search Records ( Including advanced search) Refresh the Grid without navigating away from the page. Pagination. Add, Remove and Update records, all in one request to server (which enhance usability and makes less server calls) Sorting by columns and mix of columns.

Tab Panels with Forms Detail of records are shown in a pop-up window. Window includes as many tabs as required. Tabs contains as many forms as required in Accordion layout.

Event Based UI programming model Following important events are used to make server calls upon events trigger when User interacts with the system. beforeShow (to assemble different forms and their data before it shown to the user.) afterRequest (to fetch the records to sync UI store with database asynchronously and avoid any race conditions) beforeRequest (to set parameters to the request) beforeDestroy (to avoid destroying the pop-up windows and forms to enhance the performance of the system) expand (upon expanding the accordion layout’s panels) Collapse( upon colapsing the accordion layout’s panels). beforeRender (executes before rendering any view)

Filter/Search Records

Transaction Management and Concurrency Control Optimistic Concurrency control mechanism is used. This is achieved by version checking against session and retrieved objects, upon any update and delete.

Versioning to control Concurrent updates RequestContextHolder Request Session Version ECMS DB DAO Version

Spring Security Plug and play way of apply security to the web application. More configuration less of coding to maintain the security aspects of the application. Aspect Oriented Programming model (AOP) Spring Security 3.0 release is experimented and successfully plugged into Spring Framework 3.x. Secure and extremely secure folders are created to secure static and dynamic contents of server. Access level of such folders are described in security configuration xml. Cryptography is used to protect password from exposure.

Security Context Security Context Authentication Object Authority WebAuthenticationDetails Object User

Security Schema

Race Conditions During the coding, many race conditions are discovered, because of asynchronous nature of the requests. Among such scenarios the most encountered one is, when a code segment is in under UPDATE or CREATE operation, during this time sending a SELECT request for the same record within the same session is found to be a race condition. Above race condition identified, and resolved by using afterRequest event handle the SELECT request to update the UI Store.

Race Conditions-Problem Result with no updates Race condition here

Race Conditions-Solution After request event fired

Technical Challenges Novelty of technology at UI layer. ExtJS documentation studied and referenced. Wiki pages were used to share the knowledge within the team. www.code.google.com/p/iss2011s7/w/list JSON Parser wasn't able to parse, if object properties contain null values Work around Null values are replaced with empty string before it transmitted from server to UI layer. Long term fix strategy JSON Parser to be fixed.

Technical Challenges Handling complex objects at UI Layer (ExtJS) mapping between objects Communication and parsing of Complex object from UI to Service Layer. Lazy Fetching Lazy fetching was not able to achieve because of JSON Parser limitation of unable to handle null values.

Traditional Vs Rich UI Approach Fast and Easy

Future aspects and improvements Refreshing the stale records by estimating user’s operation Rest Time. UI layer can be enhanced to have capability to refresh the data grids by estimating user’s rest time, and if it reaches a particular threshold value, the system would refresh the data grid by using beforeActivate event of the RowEditor. Above would avoid user to get into a situation of updating a stale record on grid.

Future aspects and improvements UI Update for Mobility in work Proposing client for an update of UI version for Tablets and Smart Phones. ExtTouch( A mobile javascript framework) shall be used to built tablet and smart phone applications. HTML 5 standards. Only User Interface shall required to update and service shall remain as it is. This is to have an advantage of mobility and instant access to the application with greater performance.

Future aspects and improvements Integration Requirement Understand from client that operations are not integrated to the Accounts system. Proposal for an integration between both of the systems can be consider.

Future aspects and improvements Concurrent updates acknowledgement- Grid Panel records can be highlighted in red color of text to notify users that the local copy of the record is stale or no more fresh, and any updates to the stale data will not be persist in database. The above can be achieve by Observer Design Pattern and Push model of communication from server.

Doing It Again After getting full understanding of the domain (cargo management), we would like to go for more generalized and multi-tenancy approach of building this application. Metadata entity model can be used instead of rigid domain model, by which we can achieve customization requirements of data grids, forms and any other view panels for different customer. Spring’s web service framework can be used to expose server side operation as web services, if necessary. Releasing it as a software as a service (SaaS).

Q&A

Thank You