Presentation is loading. Please wait.

Presentation is loading. Please wait.

(c) 2000 Internet Access Methods, Inc1 Peer-To-Peer Shared Components Gerry Seidman IAM Consulting 212-580-2700.

Similar presentations

Presentation on theme: "(c) 2000 Internet Access Methods, Inc1 Peer-To-Peer Shared Components Gerry Seidman IAM Consulting 212-580-2700."— Presentation transcript:

1 (c) 2000 Internet Access Methods, Inc1 Peer-To-Peer Shared Components Gerry Seidman IAM Consulting 212-580-2700

2 (c) 2000 Internet Access Methods, Inc2 What are we doing? u Banking/Finance u Commerce u Design u Publishing u Consulting u Education

3 (c) 2000 Internet Access Methods, Inc3 What is the problem? u Dissemination of information –Text/images »PDF, HTML –Reports »CGI –Interactive »Data Entry / Analysis

4 (c) 2000 Internet Access Methods, Inc4 Mechanisms of Information Presentation u Asynchronous –User works independently »Books, reports, Web, applications, videos, tapes u Synchronous –User works with one or more other person »In Person u Classroom u Consultant »Remote u Call to Call Center u Direct Call to Person u Conference Call u Video Conference u Instant Messaging

5 (c) 2000 Internet Access Methods, Inc5 Relative Benefits u Asynchronous –Pros »User Paced –Cons »Onus is on user to find solutions to any problems »No Filter of information u Synchronous –Pros »Immediate answers –Cons »Scheduling »All material must be present »Ability to share material »May not be the right person

6 (c) 2000 Internet Access Methods, Inc6 Application Sharing u Dedicated Communication Channel –Instant Message –Shared White Board u Non-Dedicated Applications –Web –Applications –Presentations

7 (c) 2000 Internet Access Methods, Inc7 Methods of Application Sharing u Remote Web Control u Screen Replication over Sockets –PC-Anywhere –Java Based u Hand Coded interactivity –A couple of 100K lines of code you can do anything u Dynamic Sharing –Java Magic URL url = new URL(""); AppletContext ac = myApplet.getAppletContext(); ac.showDocument(url);

8 (c) 2000 Internet Access Methods, Inc8 Issues Behind Application Sharing u Difficulty of implementation u Extensibility u Performance u Quality of Feedback u The Voice Issue –None –Telephone –IP Telephony

9 (c) 2000 Internet Access Methods, Inc9 Development Issues u Location of Partners u Data Model Location u Permission u Security

10 (c) 2000 Internet Access Methods, Inc10 Digression on Communication u Messaging –Stream based –Packet Based (UDP) »Inappropriate for shared applications u Connected Sockets –Requires writing a server –Firewall Restrictions u HTTP –Connectionless »Batch mode –Piggyback on existing server –Little/No Security Restrictions

11 (c) 2000 Internet Access Methods, Inc11 Direct Sockets in Java u Client Side u Server Side ServerSocket ss = new ServerSocket(port); for(;;) { Socket s = ss.accept(); InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); // process interaction, probably multithreaded } Socket s = new Socket(host, port); InputStream in = s.getInputStream(); OutputStream out = s.getOutputStream(); // process interaction, possibly multithreaded

12 (c) 2000 Internet Access Methods, Inc12 HTTP Interaction from Java URL url = new URL(""); URLConnection connect = url.openConnection(); connect.setDoOutput(true); connect.setDoInput(true); OutputStream out = connect.getOutputStream(); // send all information out.close(); InputStream in = connect.getInputStream(); // get entire result in.close();

13 (c) 2000 Internet Access Methods, Inc13 Location of Partners u Generic Joining –No logic, maintain a list of users u Named Joining –Partner must be known –Partner must be available u Context Joining –User State determines partner

14 (c) 2000 Internet Access Methods, Inc14 Context Joining u Session Based –Arbitrary amount of metric information »User ID »Location (in application) »State of Application u Matching algorithms –User Based –Current State –Past history »Server Side State warehousing u Inversion of Call Center –Control of Call Origination

15 (c) 2000 Internet Access Methods, Inc15 Implementations of Joining Algorithm u HTTP using Servlet/CGI –Piggyback on existing server –Little/No security restrictions u Direct Sockets –Only if no HTTP option is available –You only join once, so performance isn't an issue

16 (c) 2000 Internet Access Methods, Inc16 Java Shared Developer Toolkit u Messaging Framework u Channel Management u Session Management

17 (c) 2000 Internet Access Methods, Inc17 Data Model Location u Issue: –Distributed Multithreading –VERY HARD PROBLEM!! u Implementation Options –Multiple Copies of Data Model »Single Master »Multi Master –Single View Data Model Access

18 (c) 2000 Internet Access Methods, Inc18 Multiple Data Model Copies u Every partner has an identical copy of the data u Best solution for document based applications –i.e., where the model is an independent entity –Shared Word Processor u Allows for disconnect/reconnect strategies u Data model synchronization is application specific –Multi-User Diff for Word Processor Synching

19 (c) 2000 Internet Access Methods, Inc19 Replicated Data Models: Single Master Mode u Only one partner can work on model at a time –Control is passed back and forth u All partners can view and notate –glass pane whiteboard, etc. u GUI for obtaining and reporting master mode ownership

20 (c) 2000 Internet Access Methods, Inc20 Replicated Data Models: Multi-Master u Very hard to implement u Requires rollback and user feedback for lagged transaction clashes u Not worth the bother

21 (c) 2000 Internet Access Methods, Inc21 >

22 (c) 2000 Internet Access Methods, Inc22 Single Data Model Access u Only one view has actual access to the data u Note: Don't confuse single model with single model access –Two partners with concurrent access to a CORBA/RMI object is NOT single partner access –Model may be locally accessed by the partner or remote via RMI/CORBA/Sockets u Single master view into the model –Master View into Data u One (or more) Partner (Peer) Views –Views into Master View –GUI to GUI communication u View is on a Sub-Component level feedback –i.e. you see text field typing/selecting

23 (c) 2000 Internet Access Methods, Inc23 >

24 (c) 2000 Internet Access Methods, Inc24 Java is Great u –You still have to rely on library implementations u Reflection –Dynamically determine object types/structure u Introspection –Dynamically inspect data –Security controlled »private is still private –Accessor functions safer u Object Serialization –Copying objects over streams »Good for Models »Bad for GUI (Ironically) u Swing is not currently Serializable u Model would go with GUI through Object Graph

25 (c) 2000 Internet Access Methods, Inc25 Dynamic Loading and Instantiation u Dynamic Loading of classes u Dynamic Instanciation u Polymorphic Usage Component c = (Component) x; Object x = cl.newInstance(); Class cl = Class.forName("iam.talks.Foo");

26 (c) 2000 Internet Access Methods, Inc26 Java GUI Model u Nested Container/Component Model u Traversable GUI tree Component comp =... if (comp instanceof Container) { Container cont = (Container) comp; Component c[] = cont.getComponents(); for(int i=0; i < c.length; i++) { // do something with c[i]

27 (c) 2000 Internet Access Methods, Inc27 Security and Firewalls u User access security is done at location time –This can be reinforced by passwords and encryption u Firewall restrictions –Outward connections no problem in Browser –Possibly a problem at the firewall u Solutions –Work behind the firewall –Open Firewall –Kluge a port 80 server »Frowned upon but works –HTTP Tunnelling »You would then need a periodic or manual refresh u Yuck, but it works

28 (c) 2000 Internet Access Methods, Inc28 Thats All Folks Gerry Seidman Internet Access Methods 212-580-2700

Download ppt "(c) 2000 Internet Access Methods, Inc1 Peer-To-Peer Shared Components Gerry Seidman IAM Consulting 212-580-2700."

Similar presentations

Ads by Google