ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.

Slides:



Advertisements
Similar presentations
IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
Advertisements

User Training. Step 1 Press Ctrl-I or choose File > Login, this will open the Login window. Figure 1-1 shows the Login window. Figure 1-1 Login Window.
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Copyright © 2004 ProsoftTraining, All Rights Reserved. Lesson 10: GUI HTML Editors.
Voice Instant Messenger Andrew Miller CS 491B Fall 2006 Professor Sun.
1 Object-Oriented Software Development Project Aaron Christopher.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
Background Info The UK Mirror Service provides mirror copies of data and programs from many sources all over the world. This enables users in the UK to.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Picture Users Making Art Chat An interactive communication tool.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Copyright © 2004 ProsoftTraining, All Rights Reserved. Lesson 10: GUI HTML Editors © 2007 Prosoft Learning Corporation All rights reserved ITD 110 Web.
SubVersioN – the new Central Service at DESY by Marian Gawron.
MiVoice Office v MiVoice Office v6.0 is mainly a service enhancement release, rather than a user feature rich enhancement release.
HiVision SNMP Software.
FTP. SMS based FTP Introduction Existing System Proposed Solution Block Diagram Hardware and Software Features Benefits Future Scope Conclusion.
UNIT-V The MVC architecture and Struts Framework.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Linux Operations and Administration
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 12 Electronic Mail.
Back to content Final Presentation Mr. Phay Sok Thea, class “2B”, group 3, Networking Topic: Mail Client “Outlook Express” *At the end of the presentation.
A 2-D, multi-player tank game developed in PLT Scheme ~ ~ ~ Ben VandenBos, Tim Reeves, Justin Hall, and John Ericksen ~ ~ ~ Senior Project - CS496 Spring.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
© 2011 Delmar, Cengage Learning Chapter 7 Managing a Web Server and Files.
Microsoft Internet Information Services 5.0 (IIS) By: Edik Magardomyan Fozi Abdurhman Bassem Albaiady Vince Serobyan.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Presentation on SubmissionTrackingTool: by Anjan Sharma.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
Computer Emergency Notification System (CENS)
Texas Forty-Two By: Nate Normandin CS 470. What is Texas Forty-Two? A Domino Game A way for people to learn the game A way for people to play others A.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
Strictly Business Using “StrictlyFused” to Create an Extensible Knowledge Portal.
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.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
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,
HBD HV Control System Development Manuel Proissl HBD Meeting 09/18/2007.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
System Design for Home Automaton. Design Goals Performance Criteria – Server prioritizes client requests to provide quick response time to critical requests.
© 2007 by Michal Dobisek; made available under the EPL v1.0 | EclipseCon 2007 Michal Dobisek, Inside Subversive The Subversion.
Why PACKZ? Innovation No real innovations in pre-press for years Offers new approach using standard open file formats Technology is moving fast, we are.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
4000 Imaje 4020 – Software Imaje 4020 – Content ■ Content of Chapter Software: 1. Flash Up 2. Netcenter 3. FTP 4. Active X 5. XCL commands 6. Exercise.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
EBay Searcher Brian Payton, Jason Nowakoski, Justin Szeluga, Salvatore Siragusa, David Wolkiser.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
Tutorial 1 Getting Started with Adobe Dreamweaver CS5.
Server Concepts Dr. Charles W. Kann.
The Client/Server Database Environment
FileSpot Collaborative File Manager
CompTIA Server+ Certification (Exam SK0-004)
Sending data to EUROSTAT using STATEL and STADIUM web client
Message Passing Systems
Presentation transcript:

ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation

What is ProCol? Plugin for the jEdit text editor Facilitates on-line collaboration between developers Small groups (2-10 people) Small to medium sized projects Provides file repository, users are able to check out files Provides communication and project management functions Quick and easy to set up and use Current solutions - CVS, SourceForge, gForge, etc. Complex to set up Time-consuming to maintain Not practical for small projects

Requirements Not developed for a specific client Requirements developed by looking at existing solutions Possible improvements Past experience Scope of project was fairly large Open-ended requirements Goal: Release usable beta version by end of class Development continued as an open-source software project (GPL) Able to be extended by others Clients for other development environments Web-based clients

Client Requirements Compact and simple graphical interface Able to integrate well with jEdit's user interface Complex functionality in separate dialog windows File tree Indicate checkout status with bold text Get information about individual files User list Windows for file transfer, messaging, etc Able to be docked Project snapshot

Server Requirements Handles multiple simultaneous connections from clients Uses SSL sockets for security Information stored on disk in properties files Readable by the Java Properties class Do not need separate database Java uses hash tables for this Maintain project and user information Simple configuration files Store versioning/changelog information for each file Store communication and project management messages Automatic file backup Accidental or malicious deletion/changes

Plugin Interface Options Connect Project Info Change Project File Tree Checked-out File Snapshot User List Private Messages Public Messages Help Upload file/directory New file/directory Todo List Progress Bar Bug List Popup Menu

Connecting to Server Connect Login Join Project

File Management File Info File Check-in

Communication Tools Reading messages Composing a message

Project Management Tools Bug List Posting a New Bug

Docked Windows

Client Architecture Sections communicate using Observer/Observable pattern Network Communication to Server GUI ProColClient IncomingMessageHandlerOutgoingMessageHandler MessageFactoryPacketFactory Misc. Dialogs Message Composers Dockable Windows Model Messages User Project Communication from Server

Server Architecture Network Communication to Client ProColServer ServerConnection IncomingMessageHandlerOutgoingMessageHandler MessageFactoryPacketFactory Model Projects Communication from Client Users ServerConnection maintains reference to currently opened project

Network Protocol Messages are broken into packets of maximum 2048 bytes 16 byte header followed by optional data section Allows low priority messages to be interrupted to send high priority message Less than 1% overhead per packet for full data section PacketFactory class generates packets to be sent Data can be drawn from Strings, byte arrays, files, etc Automatically determines which packet to send next based on priority MessageFactory class reassembles packets into original messages Handed off to Observers for handling messageIDrequestTypedataRemaindataSize Data Section Header (16 bytes) Packet (2048 bytes max) Data (0 to 2032 bytes)

What Worked? Networking Spent large percentage of time developing networking Packets and priority queues Anonymous SSL security Open, easy protocol, able to be used by other ProCol clients/servers Dockable windows Integrate well with jEdit Able to use as normal window or docked Store settings in Properties files Labels, buttons, error messages, etc Central location for changes, applied throughout program

What Did Not Work? NIO (New I/O) Java's new I/O API Good in theory, bad in implementation Many problems in Sun's code that I was unable to work around 2 weeks wasted with troubleshooting and rewriting Rewrote large portions of networking code to revert back to classic networking Too many features Not enough time to implement everything I wanted All required features implemented, but some are rather basic

Conclusion Was project successful? Yes, all requirements satisfied Proved usable during testing Interest expressed by jEdit community Will be released under GPL May continue development What did I learn? Java features – SSL, NIO, Threads, Properties Implementing design patterns – Observer, MVC, Factory jEdit – Plugin programming, Beanshell scripting Apache Ant – automated compiling and packaging

Questions? Justin Dieters Spring 2004 CS470 Final Presentation