Collaborative Picture Gallery Project Presentation Amos Hersch Aviad Barzilai Supervisor Maxim Gurevitch Lab Chief Eng. Ilana David.

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

Closing the Gap: Analyzing the Limitations of Web Application Vulnerability Scanners David Shelly Randy Marchany Joseph Tront Virginia Polytechnic Institute.
Extreme User Interfaces for Alfresco Kevin Dorr Sr. Solutions Engineer Americas Channel.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
SoftLab Project Winter 2008 Supervisor: Victor Kulikov Students: Dmitry Kanevsky Nir Lev-Ari.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
File Management Systems
DotNet Market Web Site “EMarket” Milena Natanov Project Supervisor: Victor Kulikov Lab Chief Engineer: Dr. Ilana David Semester spring, – Project.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Chapter 9 Introduction to the Document Object Model (DOM) JavaScript, Third Edition.
Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 DISSERTATION PROPOSAL A Software Framework for Collaborative.
Bonrix Track & Trace System A GPS Based Vehicle Tracing System (SMS, GPRS/3G, Offline) Bonrix Software Systems Ahmedabad (INDIA) Website:
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Linux Operations and Administration
Client/Server Architectures
INTRODUCTION TO WEB DATABASE PROGRAMMING
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
● Problem statement ● Proposed solution ● Proposed product ● Product Features ● Web Service ● Delegation ● Revocation ● Report Generation ● XACML 3.0.
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
JavaScript and The Document Object Model MMIS 656 Web Design Technologies Acknowledgements: 1.Notes from David Shrader, NSU GSCIS 2.Some material adapted.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
AJAX Chat Analysis and Design Rui Zhao CS SPG UCCS.
1 Web Server Concepts Dr. Awad Khalil Computer Science Department AUC.
©Kwan Sai Kit, All Rights Reserved Windows Small Business Server 2003 Features.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
ASP.NET 2.0 Chapter 5 Advanced Web Controls. ASP.NET 2.0, Third Edition2 Objectives.
Advanced Web Forms with Databases Programming Right from the Start with Visual Basic.NET 1/e 13.
Writing various AJAX forms in Drupal 7 1. Overview of Form API 2. Ctools 2.1 Ctools features 3. Ajax 3.1 Ajax Forms in Drupal 4. Putting it all together.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 21 - Web Servers (IIS, PWS and Apache) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Needs for Accessing Database To make your web site more dynamic and maintainable, you can display information on your web pages that are retrieved from.
Web 2.0 Pragith Prakash Vikram Singh By The Era of.
1 Welcome to CSC 301 Web Programming Charles Frank.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 Chapter Overview Performing Configuration Tasks Setting Up Additional Features Performing Maintenance Tasks.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.
Customer Identification system based on Smart Card for PDA shops.
Developing MVC based AJAX applications Kapil Mohan Rich Internet Application Developer, Uzanto Consulting A talk by.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
How I spend my money Software architecture course Mohan, Maxim.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
 Shopping Basket  Stages to maintain shopping basket in framework  Viewing Shopping Basket.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Configuring and Deploying Web Applications Lesson 7.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
Developer Exam Preparation Thom Robbins Bryan Soltis
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
Presented by Deepak Varghese Reg No: Introduction Application S/W for server load balancing Many client requests make server congestion Distribute.
Architecture Review 10/11/2004
DHTML.
Content Management System
Application with Cross-Platform GUI
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
The Application Lifecycle
Data, Databases, and DBMSs
Lecture 1: Multi-tier Architecture Overview
Presentation transcript:

Collaborative Picture Gallery Project Presentation Amos Hersch Aviad Barzilai Supervisor Maxim Gurevitch Lab Chief Eng. Ilana David

Outline  Introduction  Work Summary  Abstract Gallery Structure  Three Tier Architecture Presentation Layer Business Logic Layer Data Access Layer  Class Diagram  Screenshots  Summary & Looking Ahead

Introduction  The Collaborative Picture Gallery is an implementation of a web picture gallery.  The Collaborative Picture Gallery is based on the WEB 2.0 approach, which aims to enhance creativity, information sharing, and, most notably, collaboration among users.  In short, our system will bring the “ wiki ” world, where everyone contributes and shares information, to the photo album world.

Work Summary  Designing a layer approach for the web application Issue: Easily connecting between the GUI and the data infrastructure. Solution: The system was designed using the 3 tier architecture.  Version management Issue: Maintaining different versions for each item. All changes to the system should be temporary unless approved by the administrator. Solution: Changes are kept in logs, and the system dynamically replays these logs upon object requests. The administrators can commit and revert actions.

Work Summary (continued)  Supporting multiple actions Issue: Designing the system so that actions, such as renaming an album, can be easily added. Solution: Actions are described using XML and are dynamically loaded into instances. To create a new system action, a new action class should be created and the system will automatically identify it.  Designing the user administration Issue: How to identify a user and what are the allowed actions for each user. Solution: Each user is identified using a sequence ID, which is randomly generated on each login. Users can have restricted access.

Work Summary (continued)  Synchronization between users Issue: Multiple users can update the same item simultaneously. Solution: Logs are locked and synchronized between different requests. The system maintains versions for each item and validates that users are manipulating the most recent version.  Template infrastructure Issue: Designing and building an infrastructure for dynamic web pages based on templates. Solution: We have designed and implemented an infrastructure for XML based template web sites.

Abstract Gallery Structure Root directory Album 1Album 2Album 3 Album 4 Meta Data Album 5 Meta Data Album 4 Log Album 5 Log Album 4Album 5 Image 1 Meta Data Image 1 Log Image 1 File

Three Tier Architecture Presentation Layer Entry Point Template Builders /index.html html Business Logic Layer Album & Image Managers File System Data Access Layer Log & Meta wrappers The Collaborative Picture Gallery ’ s architecture is known as the “ Three Tier Architecture ” and is formed by the usage of several layers interfacing between them.

Presentation Layer The presentation layer connects between the user's HTTP request and the business logic layer. The presentation layer is invoked by the web server and is in charge of basic start functions and template processing. To make the system more robust, the GUI is built from XML files and templates. Error Handler Command Runner Entry Point Sxml Template builder Album builder BLL Response Maker

  username  Presentation Layer (continued) Build using HTML templates Validate authentication Globally or for each part Build parts dynamically Inserted into comments

Business Logic Layer The business layer incorporates most of the systems activities. BLL modules are activated and used by the presentation layer and information is retrieved from the DAL. Image Manager DAL Presentation Layer Album Manager Actions Rename Action Create Action Delete Action … Account Manager Ajax Command Runner

Business Logic Layer (continued) Using Ajax Ajax (asynchronous JavaScript and XML), or AJAX, is a group of interrelated web development techniques used for creating interactive web applications or rich Internet applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. Communicate commands in the background Everything is a file (same authentication)

Business Logic Layer (continued) Actions Each action can be executed on a logged item. Actions can be added by simply implementing the sub class required, and dropping it in the imports directory. Actions are done on virtual objects and can only be committed permanently by the administrator. Action Describe Action Delete Action Rename Action Rotate Action Logged Item Manager Image Manager Album Manager

Data Access Layer The Data Access Layer is the only layer that has direct access to the file system. The system stores information in XML files which are divided into Log Files and Meta Data. Image (PIL) Meta Data Wrapper Business Logic Layer File Manager Log Wrapper SXML File Wrapper Cross Lock

Data Access Layer (continued) Log files  changes are not made physically on the items, they are just written into the log files.  After an admin reviews the proposed changes the layer commits the approved changes permanently. SEPERATION_STRING New Album Name SEPERATION_STRING …

Data Access Layer (continued) Synchronization  The system will verify that the user had the most recent version before requesting a change.  This check is done by sending the version number of each object to the user, when given, and back to the server, when a change is requested.  Log files are locked when reading and / or writing.  We have implemented a cross platform lock module (Cross Lock). On windows, the file locking is done by using a named system mutex and on UNIX the file locking is done by using the flock mechanism, which is a part of the fcntl module.

Class diagram Sxml Template Builder Sxml Parser Xxml Parser Global Error Handler Entry Point Album Builder Request Data Cache Account Manager Command Runner Response Maker File Manager Ajax Command Runner Error Handler Cross Lock Log Wrapper Meta Data Wrapper Logged Item Manager Action Image Manager Album Manager Html Parser Global Action Describe Action Delete Action Rename Action Rotate Action PIL

Screenshots Create your own album or share existing ones

Screenshots (continued) Users can edit

Screenshots (continued) Admin can commit / revert

Screenshots (continued) Online image manipulation

Summary & Looking Ahead  The collaborative picture gallery project's main goal was building a reliable back end, which will allow multiple versions of multiple objects, shared among users.  The system's back end is extremely strong and very easily updated to support more actions and image manipulations.  We have set the path for many additional UI options by adding AJAX and by implementing the template infrastructure on our own.  The system's next version should include a good caching mechanism, to improve performance, and the UI should be updated with more image features.