1 JBus, A Platform Independent Publish/Subscribe Bus for CWave 2000 M.S. Thesis Defense Joseph W. Longson March 30, 2000.

Slides:



Advertisements
Similar presentations
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Advertisements

1 CGICGI Common Gateway Interface Server-side Programming Lecture.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Web Visualization Technology Horner APG Ver 1.0.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Introduction to Java Kiyeol Ryu Java Programming Language.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Distributed Object Computing Weilie Yi Dec 4, 2001.
DCS Architecture Bob Krzaczek. Key Design Requirement Distilled from the DCS Mission statement and the results of the Conceptual Design Review (June 1999):
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
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.
Introduction to Web Database Processing
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
VCT May 20, 2009 Sapna Blesson Advisor: Dr.Christopher Pollett.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
Introduction to Web Interface Technology (CSE2030)
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
INTRODUCTION TO WEB DATABASE PROGRAMMING
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Week 7 Lecture Web Database Development Samuel Conn, Asst. Professor
Oracle8 JDBC Drivers Section 2. Common Features of Oracle JDBC Drivers The server-side and client-side Oracle JDBC drivers provide the same basic functionality.
DATA COMMUNICATION DONE BY: ALVIN SAMPATH CARLVIN SAMPATH.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
A+ Guide to Managing and Maintaining Your PC Fifth Edition Chapter 19 PCs on the Internet.
Java applet
Internet, intranet, and multimedia database processing l Database processing across local and wide area networks l Alternative architectures for distributing.
Enabling Embedded Systems to access Internet Resources.
Chapter 4 Networking and the Internet © 2007 Pearson Addison-Wesley. All rights reserved.
第十四章 J2EE 入门 Introduction What is J2EE ?
Lecture 15 Introduction to Web Services Web Service Applications.
Chapter 4 Networking and the Internet. © 2005 Pearson Addison-Wesley. All rights reserved 4-2 Chapter 4: Networking and the Internet 4.1 Network Fundamentals.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Remote Access Using Citrix Presentation Server December 6, 2006 Matthew Granger IT665.
By: PHANIDEEP NARRA. OVERVIEW Definition Motivation.NET and J2EE Architectures Interoperability Problems Interoperability Technologies Conclusion and.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Copyright © Curt Hill Connectivity Communicating with the Database.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
ASP.NET Web Services.  A unit of managed code installed under IIS that can be remotely invoked using HTTP.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
Web Services Using Visual.NET By Kevin Tse. Agenda What are Web Services and Why are they Useful ? SOAP vs CORBA Goals of the Web Service Project Proposed.
Web Services An Introduction Copyright © Curt Hill.
REST By: Vishwanath Vineet.
Internet Infrastructure Min Ding Smeal College of Business Administration Pennsylvania State University.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
Application Sharing Bhavesh Amin Casey Miller Casey Miller Ajay Patel Ajay Patel Bhavesh Thakker Bhavesh Thakker.
Computer and Internet Basics
WEB SERVICES.
#01 Client/Server Computing
Chapter 14 Web-Based Management 14-1 Chapter 14
New Tools In Education Minjun Wang
Web Servers (IIS and Apache)
Mobile Internet and WAP
#01 Client/Server Computing
Presentation transcript:

1 JBus, A Platform Independent Publish/Subscribe Bus for CWave 2000 M.S. Thesis Defense Joseph W. Longson March 30, 2000

2 Publish / Subscribe bus Bus Client Bus Client Bus Client Pub/Sub bus l Implementation is like a chat room –Each member uses a room number for communication (topic) –Allows multiple clients in the same room (topic) –Transmit strings, pictures, sounds, etc (data) Introduction

3 Platform Independent l Code does not rely upon a platform –Implemented for a virtual platform –Multiple Operating Systems for clients (Mac, Windows, UNIX, etc) –Multiple Hardware Platforms for clients (Mac, PC, SGI, SUN, etc) Introduction UNIX Platform Mac Platform Windows Platform Bus Client Bus Client Bus Client Pub/Sub bus

4 CWave 2000 Toolkit l Toolkit containing many components including –Environment for setting up bus clients –Publish Subscribe bus implementation l Includes a Publish / Subscribe bus implementation –Based on Microsoft’s COM/DCOM, limited to the Windows platform –Allows process and machine independent client interaction Introduction VB Program C++ Program MS Java Program Windows Platform Windows Platform Windows Platform CWave bus

5 Problem Statement l Problem: CWave 2000 not platform independent. –Limited to the Windows OS, on the PC platform –Uses DCOM, which is designed for a LAN, not for the Internet l Solution: –Extend CWave 2000’s Publish / Subscribe bus –Allow communication from other operating systems –Allow non-COM languages to communicate with bus Introduction

6 JBus l Provides a platform independent Publish / Subscribe bus –Implemented in Java for the Java Virtual Machine –Interfaces available for Java, C, and C++ l Compatible with the CWave 2000 System –But not dependent on it Introduction VB Program C++ Program MS Java Program Windows Platform Windows Platform Windows Platform C Program Java Program Windows Platform UNIX Platform Mac Platform JBus Java Pub/Sub busCWave Pub/Sub bus C++ Program

7 Primary Design Constraints l Platform independence –Hard to achieve completely, so this will used as a guideline l Leverage the Internet for communication –Using HTTP and XML for message Transport l Maintain compatibility with CWave 2000 –Compatible but not dependent on CWave l Modular design –Allows bus implementation to be easily replaced Introduction

8 Secondary Design Constraints l Have a small memory and disk space footprint –This allows JBus clients such as Web Browsers to be developed l Platform independent data marshalling –This is a hard constraint that may not be solved l Support new and existing C/C++ clients –Extends the languages available for JBus client implementation l Entire system should perform at an interactive level –Performance will be tuned to a usable level Introduction

9 Related Work Introduction

10 Java Bus Implementation

11 JBus Representation l Provided the illusion of a single omnipresent bus –Platform independent (using Java) –Topic based communication JBus Java Client Machine 1, WindowsMachine 3, Web Browser Web Client Java Client Machine 2, UNIX C++ Client Phase 1

12 JBus Implementation l Implemented as a set of connected local buses –Each client has a local bus instance –Transport objects used for communication between buses –Each local bus acts as either a Server or Proxy Phase 1 Machine 2, UNIX JBus Java Client Machine 1, Windows C++ Client Transport JBus

13 JBus Architecture Bus Client Interface Message Filtering Message Transport l Bus Client Interface –Used to get a JBus instance –Publish/Subscribe methods l Message Filtering –Routes messages to Bus Clients –Filtering of messages l Message Transport –Implemented as Bus Client –Can have local filtering –Communicates using desired medium (e.g. HTTP, SSL) Phase 1

14 JBus Client Example l Case 1, Java Client –Connects as a Bus Server –Installs an HTTP Server on the local machine l Case 2, C/C++ Client –Connects as a Bus Proxy –Remotely connects to a machine using the HTTP protocol Phase 1

15 2 Bus Factory Java Client (1) - Java Client asks Bus Factory to create a Bus Server HTTP Server Bus Server (2) - Bus factory creates Bus Server and HTTP Server (3) - HTTP Server subscribes to bus and begins communicating with bus (4) - Client begins communicating with bus 4 3 Phase 1 Bus Factory 1 JBus Client Example Case 1: Java Client Machine 1

16 Bus Factory 5 6 Bus Factory (5) - C/C++ Client asks Bus Factory to create a Bus Proxy to a Server (6) - Bus Factory creates a local Bus Proxy and a local Transport object (8) - Communication commences between Transport Objects Java Client HTTP Server Bus Server C/C++ Client Bus Proxy Transport (7) - Remote HTTP Server creates a Transport Object for proxy connection (9) - Client and Transports begin communicating with their buses Transport Phase 1 JBus Client Example Case 2: C/C++ Client with Transports Machine 1 Machine 2

17 JBus Client Example Case 1 and 2 in action

18 CWave 2000 Gateway Object

19 Gateway Object Representation l Interfaces between the JBus and CWave 2000 –Transparent to the client –Allows communication from either implementation Phase 2 JBus CWave 2000 Gateway JBus interface CWave interface Java Client CWave Client

20 Gateway Object Implementation l Implemented as a JBus object –This provides a transparent interface for JBus clients l Uses Microsoft’s Extensions for Java –This allows communication with the CWave 2000 bus Phase 2

21 JBus Client Example l Case 3, CWave Client –Uses the Gateway Object –Connects as a Bus Proxy –Begins communicating with JBus or CWave bus clients Phase 1

22 10 Bus Factory (11) - Bus Factory creates Gateway and Transports. Transports connect and begin communicating Java Client HTTP Server Bus Server C/C++ Client Bus Proxy Transport (10) - CWave Client asks Bus Factory to create a Gateway Proxy to Server (12) - Client and Transports begin communicating with their buses Transport Phase 1 JBus Client Example Case 3: CWave Client with Gateway CWave Client JBus Gateway Transport 12 Machine 1 Machine 2 Machine 3 Bus Factory 11

23 JBus Client Example Case 3 in action

24 Data Marshaling with XML

25 Data Marshaling l What is Data Marshaling? –The translation of data from one form to another l Where is it used? –Between Transport Objects –Between Programming Languages l What options do we have? –BINARY –ASCII –XML Phase BINARY 183 c ASCII 183 c XML

26 XML l Similar to HTML –ASCII format –Uses the concept of Tags l Structure of XML –Stores the format with the data –Multiple formats can be intermixed in a transmission l Why use? –Flexible –Platform Independent –Many parser implementations available. World World Phase 3

27 What to Marshall? EasyHard Primitives: Int, Float, Char, etc Multi-element A: AnEvent, Java Vector Complex: Struct, Class Subtyping: Inherited classes, Multiple class instances JBus 1.0 Multi-element B: general collection classes Phase 3

28 Bus Factory Java Client HTTP Server Bus Server C/C++ Client Bus Proxy Transport (13) - Properly Marshal data between the Client and the bus, and between Transports Transport Phase 1 JBus Client Example with Data Marshaling CWave Client JBus Gateway Transport Machine 1 Machine 2 Machine 3 13

29 JBus Client Example with Data Marshaling in action

30 Performance Results

31 Preliminary Performance

32 Preliminary Performance

33 Preliminary Performance

34 Conclusion

35 Contributions l Platform independent extension to CWave 2000 –Extends client implementation choice –Extends CWave communication to the Internet l Message Transport using XML over HTTP –Allows more Platform independent data marshaling l Can function with or without CWave 2000 –Allows use of the JBus beyond CWave 2000 l Modular bus design –More flexible for bus experimentation Conclusion

36 Future Research l Performance Tuning l Better data marshaling for complex data types l Enhance the ability for thin clients to use the JBus Conclusion

37 Questions? Thank you!

38 Preliminary Performance 2

39 Preliminary Performance 2

40 Preliminary Performance 2

41 Extensions C/C++ Extension Web Extension

42 JBus++ Extension (C/C++) l Extension to the JBus Client Interface –Allows C or C++ clients to use the JBus functionality –Relies upon the JNI from Sun l Data Marshaling –XML –JNI Data Types JBus Client Interface Message Filtering Message Transport JBus++ Client Interface Extensions

43 Web Extension l HTTP Transport –Allows Firewall Penetration –Works with Proxy Servers l Web Clients –Create a Web Server –Serves Web pages with embedded Applets l Thin Clients –Use the JME (Java Micro Edition) –Download Applets Extensions

44 Research Progression l Phase 1 –Java version of the bus –Simple TCP/IP communication l Phase 2 –CWave 2000 Gateway l Phase 3 –Data Marshalling using XML –HTTP communication Introduction l Extensions –C/C++ clients –Web Interface