Agoracast: Design and Tools Review David Wallace Croft Senior Java Architect CroftSoft Inc Talk-Java/Drink-Java Las Colinas, Texas.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 Applets.
Advertisements

Web Visualization Technology Horner APG Ver 1.0.
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
XP Browser and Basics1. XP Browser and Basics2 Learn about Web browser software and Web pages The Web is a collection of files that reside.
1 L52 Networking (1). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L24 (Chapter 25) Networking.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 25 Networking.
Object-Oriented Analysis and Design
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
Chapter 6 DOJO TOOLKITS. Objectives Discuss XML DOM Discuss JSON Discuss Ajax Response in XML, HTML, JSON, and Other Data Type.
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
UNIT-V The MVC architecture and Struts Framework.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
MVC pattern and implementation in java
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Bookstore Web Application Introducing Visual Web Developer 2008 Express and the.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
The Internet in Education Objectives Introduction Overview –The World Wide Web –Web Page v. Web Site v. Portal Unique and Compelling Characteristics Navigation.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
Internet, intranet, and multimedia database processing l Database processing across local and wide area networks l Alternative architectures for distributing.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Creating Web Applications Using ASP.NET Chapter Microsoft Visual Basic.NET: Reloaded 1.
NASRULLAH KHAN.  Lecturer : Nasrullah   Website :
How did the internet develop?. What is Internet? The internet is a network of computers linking many different types of computers all over the world.
COMP 321 Week 7. Overview HTML and HTTP Basics Dynamic Web Content ServletsMVC Tomcat in Eclipse Demonstration Lab 7-1 Introduction.
CSCI 6962: Server-side Design and Programming Web Services.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Web Server Administration Web Services XML SOAP. Overview What are web services and what do they do? What is XML? What is SOAP? How are they all connected?
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
What does WWW stand for? And following abbreviations? HTTP: Hyper Text Transfer Protocol HTML: Hyper Text Mark-up Language URL: Uniform Resource Locator.
Chapter 6 Server-side Programming: Java Servlets
Pravin Yannawar, DOCS, NMU Jalgaon Basic Java : Applets 2 Objectives of This Session Identify the need for Applets Distinguish between Applets and Applications.
1 Chapter 28 Networking. 2 Objectives F To comprehend socket-based communication in Java (§28.2). F To understand client/server computing (§28.2). F To.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Javadoc Comments.  Java API has a documentation tool called javadoc  The javadoc tool is used on the source code embedded with javadoc-style comments.
CIS 644 Thurs. Sept. 30, 1999 W6B … assignment: 2ed object model … patterns … Java … assignment: Java … patterns.
Accessing the World Wide Web
Introduction to Java Beans CIS 421 Web-based Java Programming.
Model View Controller MVC Web Software Architecture.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
ANDROID AND MODEL / VIEW / CONTROLLER. Slide 2 Design Patters Common solutions to programming problems are called design patterns Design patterns are.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
NASRULLAH KHAN.  Lecturer : Nasrullah   Website :
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 32 JavaBeans and Bean.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
The Chain of Responsibility Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty)
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 33 Networking.
Web Programming Language
PHP / MySQL Introduction
Hyper Text Transfer Protocol
Presentation transcript:

Agoracast: Design and Tools Review David Wallace Croft Senior Java Architect CroftSoft Inc Talk-Java/Drink-Java Las Colinas, Texas

Outline Agoracast Demonstration Network News Transfer Protocol Consumer-to-Peer Displaying HTML in Java HTML as a Swing Alternative Launching a Browser from Java Java Web Start Jakarta Ant Customizing Javadoc Reusable Code Libraries Model/View/Controller Composite View Review Decoupling View Components Resources

Agoracast Demonstration

Network News Transfer Protocol Client Posts to Newsgroup Server Newsgroup Server Shares with Neighbors Messages Previously Received Ignored Completely Decentralized World Wide Broadcast with Single Post Eliminates Need for Web Servers Message Propagation Relatively Slow Multicast Publish-and-Subscribe Java Message Service (JMS) API Java APIs for XML Messaging (JAXM)

Consumer-to-Peer Auction sites are Consumer-to-Consumer (C2C) Auction sites provide middleman services Middlemen charge middleman fees Consumer-to-Peer (C2P) removes middleman Peer software performs middleman functionality Decentralization promotes competition Data broadcast to all via public medium Shared data requires standard format Shared data requires standard semantics World Wide Exchange (WWX)

Displaying HTML in Java public static JEditorPane createHtmlPane ( URL initialPage, HyperlinkListener hyperlinkListener ) throws IOException ////////////////////////////////////////////////////////////////////// { JEditorPane jEditorPane = new JEditorPane ( initialPage ); jEditorPane.setEditable ( false ); jEditorPane.setCaretPosition ( 0 ); if ( hyperlinkListener != null ) { jEditorPane.addHyperlinkListener ( hyperlinkListener ); } return jEditorPane; }

HTML as a Swing Alternative With Swing, you can Display an HTML file and Use HyperlinkListener to get mouse clicks. HTML as a Java app GUI scripting language? Possible advantages: HTML easier and quicker than Swing Use Web Designers to create the GUI Mix online and offline components Refresh “static” HTML immediately

Launching a Browser from Java javax.jnlp.BasicService.showDocument public boolean showDocument(java.net.URL url) Directs a browser on the client to show the given URL. This will typically replace the page currently being viewed in a browser with the given URL, or cause a browser to be launched that will show the given URL. Parameters: url - an URL giving the location of the document. A relative URL will be relative to the codebase. Returns: true if the request succeded, otherwise false

Java Web Start Java Network Launch Protocol (JNLP) Free Installer Automatic Code Updating Windows, Linux, Solaris Open Source Implementations Macintosh Forthcoming?

Jakarta Ant <jar jarfile="agoracast.jar" basedir="jar" manifest="bld/agoracast/manifest.txt"/>

Customizing Javadoc <property name="javadoc_bottom" value="${amazon} <center>CroftSoft Javadoc (${TODAY_ISO}) © ${YEAR} <a target=\"_blank\" href=\" >CroftSoft Inc</a>." /> CroftSoft Javadoc ( ) © 2001 CroftSoft Inc. <javadoc author ="${javadoc_author}" bottom ="${javadoc_bottom}" classpath ="${javadoc_classpath}" destdir ="${javadoc_destdir_core}" doctitle ="${ad2}The CroftSoft Java Core Library"...

Reusable Code Libraries Application-specific vs. Reusable Code Projects without Reusable Code Libraries Cut-and-Paste Libraries are your Knowledge Store Libraries make you Faster over Time Code that is Reused is Code that is Debugged Build your Library While Building Your Apps If it is Reusable, Separate it Immediately Javadoc Your Reusable Code Meet Weekly to Review a Library Component Broadcast Additions to the Library Update Your Reusable Code Javadoc Nightly

Model/View/Controller Model: the application object (data & behaviors) View: its screen presentation Controller: controls reaction to user input MVC decoupling for flexibility and reuse Example: Model and multiple Views Example: Controller Replacement (Strategy) Decoupled using the Observer design pattern a.k.a. Publish/Subscribe or Subscribe/Notify Changes to Model generate Events Events drive Views to reload and refresh

Composite View Review Composite View: composed of nested Views Each component View has common superclass Each component View has common methods Method calls traverse component hierarchy public void java.awt.Component.paintAll(Graphics g) Paints this component and all of its subcomponents. Communication solely via superclass methods

Decoupling View Components Custom Views are often Composite Views Parent constructor instantiates children Maintains subclass references to children Serves as Controller for children Children need reference to parent/Controller Reference passed as a constructor argument Interface reference promotes child class reuse public interface EventListener { public void hearEvent ( Object event ); }

Resources Agoracast Croftsoft Code Library Launching a Browser from Java Java Web Start Jakarta Ant