Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.

Slides:



Advertisements
Similar presentations
Introduction to the Spring Framework
Advertisements

PHP I.
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
Raptor Technical Details. Outline Workshop structured by Raptor workflow – Raptor Event model. – ICA log file parsing – ICA/MUA event storage – ICA event.
Java Script Session1 INTRODUCTION.
Expense Tracking System Advisor : Dr. Ali Arsanjani Members: Ebe Pubudu Viduranga ( )
Integration of Applications MIS3502: Application Integration and Evaluation Paul Weinberg Adapted from material by Arnold Kurtz, David.
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
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.
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.
GIS technologies and Web Mapping Services
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.
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.
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.
ANSTO E-Science workshop Romain Quilici University of Sydney CIMA CIMA Instrument Remote Control Instrument Remote Control Integration with GridSphere.
1 Another group of Patterns Architectural Patterns.
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.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
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.
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.
Session 7: JMS, JCA, JSF Dr. Nipat Jongsawat.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
Presentation.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
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.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
 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.
Exploring Networked Data and Data Stores Lesson 3.
1/7/2016www.infocampus.co.in1. 1/7/2016www.infocampus.co.in2 Web Development training gives you and all-round training in both the design and the development.
Using E-Business Suite Attachments
CMPE 280 Web UI Design and Development October 24 Class Meeting
AJAX.
WEB API.
ARCH-1: Application Architecture made Simple
ASP.NET Module Subtitle.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
…and web frameworks in general
Choosing between Silverlight and AJAX
敦群數位科技有限公司(vanGene Digital Inc.) 游家德(Jade Yu.)
Chapter 6: Architectural Design
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.

Recap Architectural view of ECMS

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. Individual was assigned use cases to construct UI and Services.

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

Development Activities

Hibernate (DAO Layer)

Grid View Search (Filter Approach) All use cases has their entry point at Grid Panels, Form panels are the second step of user interaction. Grid Panels are made much powerful to provide functionalities such as – Filter/Search Records – Refresh the Grid without navigating away from the page. – Embedded Pagination. – Add, Remove and Update records, all in one request to server (which enhance usability and makes less server calls)

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 RequestContext Holder Request Session Version DAO ECMS DB

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 Authentication Object WebAuthenticatio nDetails Object User Authority

Security Schema

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)

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 Race condition here Result with no updates

Race Conditions-Solution After request event fired

Example of the code

Technical Challenges Novelty of technology at UI layer. – ExtJS documentation studied and referenced. JSON Parser couldn't able to parse if object properties contains null. – 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

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).