66
JINI-1 JINI: A Technology for 21st JINI: A Technology for 21st Century Century Is it Ready for Prime Time? Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer Science & Engineering Department 191 Auditorium Road, Box U-155 The University of Connecticut Storrs, Connecticut 06269-3155 {steve, parag, hyren}@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818

JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-1

JINI: A Technology for 21st CenturyJINI: A Technology for 21st CenturyIs it Ready for Prime Time?Is it Ready for Prime Time?

Prof. Steven A. Demurjian and Dr. Paul BarrParag Bhogte and Haiying Ren

Computer Science & Engineering Department191 Auditorium Road, Box U-155

The University of ConnecticutStorrs, Connecticut 06269-3155

{steve, parag, hyren}@engr.uconn.eduhttp://www.engr.uconn.edu/~steve

(860) 486 - 4818

Page 2: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-2

Overview of PresentationOverview of Presentation

Component-Based DevelopmentComponent-Based Development Distributed Development/Emerging TechnologiesDistributed Development/Emerging Technologies Sun’s JINI TechnologySun’s JINI Technology

Background Material on JAVA What is JINI? How Does JINI Work? Comparison with DOC Technologies

Experimental Prototyping EffortExperimental Prototyping Effort Assumptions and Scenarios Prototypes: Approach and Results Future Work

Conclusions and RecommendationsConclusions and Recommendations

Page 3: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-3

What is CBD?What is CBD?

CBD: Component-Based DevelopmentCBD: Component-Based Development

Page 4: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-4

Supplier /Consumer ModelSupplier /Consumer Model

SUPPLY Build New Wrap Existing Buy

CONSUME Assemble Applications

MANAGE Publish Subscribe Catalog Browse

Page 5: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-5

Components vs. ObjectsComponents vs. Objects

ComponentsComponents

Business Oriented Coarse Grained Standards Based Multiple Interfaces Provide Services Fully Encapsulated Understood by

Everyone

ObjectsObjects Technology-Oriented Fine Grained Language Based Single Interface Provide Operations Use Inheritance Understood by

Developers

Page 6: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-6

SpecificationSpecification

ImplementationImplementation

ExecutableExecutable

InterfacesInterfaces

ComponentComponent

Page 7: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-7

Components as Assets can GrowComponents as Assets can Grow

Complexity of ComponentComplexity of Component

Page 8: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-8

JavaClient

JavaClient

LegacyClient

DB Client

COTSClient

What is a Distributed Application?What is a Distributed Application?

LegacyDatabase

Server

Legacy

COTSServer

Database

COTS

Network Centric Environment

High-AvailabilityPerformanceHeterogeneity Hardware OS, PLs

Transparent Interoperation New/Innovative Information Use

Increase ProductivityDynamic

Environment

System of Systems

Page 9: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-9

Why Must We Strive for Why Must We Strive for New Techniques and Technologies?New Techniques and Technologies?

We Must Diverge from Business as UsualWe Must Diverge from Business as Usual C Programming with RPC Customized Development without Reuse Non-Extensible and Non-Evolvable Solutions Cobbling Together Solutions w/o Method or

Reason is Unacceptable and Doomed to Fail! We Must Face Today’s RealitiesWe Must Face Today’s Realities

Legacy Code is Fact of Life New Technologies Offer New Challenges Adopt to Leverage Their Benefits We Must Draw Careful Balance to Opt for

Mature Technologies While Targeting Emerging Technologies with Potential!

Page 10: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-10

What are Emerging Technologies for What are Emerging Technologies for Distributed Computing?Distributed Computing?

Distributed Object Computing Distributed Object Computing DCE, CORBA, DCOM/OLE Middleware for Heterogeneous Hardware and

Software Environments Java Technologies: Platform IndependenceJava Technologies: Platform Independence

Enterprise Java Beans, Java IDL, JDBC System of Systems via Wrappers/Middleware Systems are “Components”!

Software Agent Models and TechnologiesSoftware Agent Models and Technologies Mobile Agent Migrates Across Network with

Code and Data to Accomplish Required Tasks How Will Technologies (JINI, CORBA, Agents, How Will Technologies (JINI, CORBA, Agents,

etc.) Work Together?etc.) Work Together?

Page 11: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-11

What are Basic JINI Concepts?What are Basic JINI Concepts?

JINI JINI Lookup ServiceLookup Service Maintains Registry for Maintains Registry for Available Services of Distributed ApplicationAvailable Services of Distributed Application

Resources Provide Resources Provide ServicesServices that that RegisterRegister and and JoinJoin with JINI Lookup Servicewith JINI Lookup Service

Clients Clients DiscoverDiscover and Utilize Services Based on and Utilize Services Based on Interface of ServicesInterface of Services Ask Lookup for RegisterForCourse(CSE900) Return Proxy for Execution of Service Location of Service Transparent to Client

Locations of Clients, Services, Lookup Service, Locations of Clients, Services, Lookup Service, etc., can Change over Timeetc., can Change over Time

Conceptually, JINI Similar Distributed OS with Conceptually, JINI Similar Distributed OS with Dynamically Definable/Changeable ResourcesDynamically Definable/Changeable Resources

Page 12: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-12

Goals of Research EffortGoals of Research Effort

Can JINI Support Can JINI Support Highly-Available Distributed Highly-Available Distributed ApplicationsApplications??

Can Replicated Database Services be Registered Can Replicated Database Services be Registered and Available for Use by Clients?and Available for Use by Clients?

Can JINI Support a Network-Centric Environment Can JINI Support a Network-Centric Environment with with Dynamic Clients and ServicesDynamic Clients and Services??

Will Clients Continue to Operate Effectively if Will Clients Continue to Operate Effectively if Replicated Databases Services FailReplicated Databases Services Fail??

Can JINI be Utilized to Can JINI be Utilized to Maintain “minutes-off” Maintain “minutes-off” Data ConsistencyData Consistency of Replicas? of Replicas?

Is JINI Easy to Learn and Use?Is JINI Easy to Learn and Use? What is Maturity Level of JINI Technology?What is Maturity Level of JINI Technology? Is JINI Ready for Prime Time???Is JINI Ready for Prime Time???

Page 13: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-13

Background Material on JAVA Background Material on JAVA Java Visualization Java Visualization

Java is a Third Generation, General Purpose, Platform Independent, Concurrent, Class-Based, Object-Oriented

Language and Environment

Page 14: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-14

Sun’s JINI TechnologySun’s JINI Technology

JINI is a Sophisticated Java APIJINI is a Sophisticated Java API Construct Distributed Applications Using JINI by Construct Distributed Applications Using JINI by

Federating Groups of Users Resources Provide Services (Database Access,

Printing, Real-Time Sensor) for Users JINI and StakeholdersJINI and Stakeholders

Core of Technologies to Architect, Design, Implement, and Test Distributed Applications

Construct Software “Resistant” to Failure JINI and UsersJINI and Users

High Availability Through Redundancy Dynamic Responses to User Requests

Regardless of Network & Resource Changes

Page 15: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-15

Sun’s JINI TechnologySun’s JINI TechnologyKey JINI Concepts and TermsKey JINI Concepts and Terms

A A ResourceResource Provides a Set of Services for Use by Provides a Set of Services for Use by Clients (Users) and Other Resources (Services)Clients (Users) and Other Resources (Services)

A A ServiceService is Similar to a Public Method is Similar to a Public Method Exportable - Analogous to API Any Entity Utilized by Person or Program Samples Include:

Computation, Persistent Store, Printer, Sensor Software Filter, Real-Time Data Source Anything that is Relevant for Your Domain!

Services: Concrete Interfaces of Components Services Register with Services Register with Lookup ServiceLookup Service

Clearinghouse for Resources to Register Services and Clients to Locate Services

Page 16: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-16

Sun’s JINI TechnologySun’s JINI TechnologyResources & ServicesResources & Services

JINILookupService

Printer Resource

Service ObjectService Attributes

PrinterActions Class enqueuePrintJob dequeuePrintJob getPrinterStatus getPrinterType installPrinter removePrinter startJob cancelJob

Class and Methods Define Servicesto beRegistered

Register Services

Sun’s Initial PerspectiveSun’s Initial Perspective JINI for Hardware Printers, Digital

Cameras, etc. Plug-and-Play on

Network PrinterActions Class Defines PrinterActions Class Defines

the the “Component”“Component” that is that is Registered with JINIRegistered with JINI

Page 17: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-17

Sun’s JINI TechnologySun’s JINI TechnologyKey JINI Concepts and TermsKey JINI Concepts and Terms

RegistrationRegistration of Services via of Services via Leasing MechanismLeasing Mechanism Resource Leases Services to Lookup Service Resources Renew Services Prior to Expiration If not, Services Become Unavailable Lookup Service Maintains Registry Limit Availability of Services Based on

Time, Workload, User Requirements, etc. Services as Available “Components”

Leasing Supports High-AvailabilityLeasing Supports High-Availability Registration and Renewal Process Upon Failure, Services Removed from Registry

Clients, Resources, Lookup Can Occupy Same or Clients, Resources, Lookup Can Occupy Same or Different Computing NodesDifferent Computing Nodes

Page 18: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-18

JINILookupService

Printer Resource

Service ObjectService Attributes

Leasing/Lease Renewal

PrinterActions Class enqueuePrintJob dequeuePrintJob getPrinterStatus getPrinterType installPrinter removePrinter startJob cancelJob

Class and Methods Define Servicesto beRegistered

Sun’s JINI TechnologySun’s JINI TechnologyRegistration & LeasingRegistration & Leasing

FOREVER or EXPIRATION DATE (millisecs)FOREVER or EXPIRATION DATE (millisecs) Renewal Must Occur Prior to ExpirationRenewal Must Occur Prior to Expiration JINI Provides Lease Renewal Manager to Allow JINI Provides Lease Renewal Manager to Allow

Resource to Delegate Renewal ResponsibilityResource to Delegate Renewal Responsibility

Lease for 5 minutes (3000000 msec) Must Renew Before 5 Minutes Expire If Not Renewed, Lookup Removes If Failure, Lookup May Still Supply Service Until Expiration (5 mins) Client MUST be SMART!

Page 19: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-19

Sun’s JINI TechnologySun’s JINI TechnologySupport for Distributed ComputingSupport for Distributed Computing

Legacy

Legacy

COTS

COTS

Database

Legacy COTS

Database

Resources Provide ServicesJava

Client

JavaClient

LegacyClient

DatabaseClient

COTSClient

ClientsUsingServices

JINI LookupService

JINI LookupService

RedundantLookups

Page 20: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-20

Component Perspective and JINIComponent Perspective and JINI

Resources as ComponentsResources as Components Resources Provide Services What Service Provides: Component Interface Clients, Servers, Resources, Use Component

Interface to Design/Construct Functionality

Legacy

COTS

Legacy COTS

Database

JavaClient

JINI LookupService

Constructed via Services of Legacy, COTS, Database, etc.Lookup Registered ServicesFunctionality via Service ReuseServices as Component APIs

Page 21: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-21

Sun’s JINI TechnologySun’s JINI Technology Key JINI Concepts and Terms Key JINI Concepts and Terms

For Users, JINI OffersFor Users, JINI Offers Sharing of Resources (Services) over Network Location Transparency of Users and Services Support Dynamic Behavior of Users

For Stakeholders, JINI ProvidesFor Stakeholders, JINI Provides Infrastructure for Federating Services in

Distributed Setting Programming Model to Register & Discover

Services Availability of Services Throughout

Distributed SettingLeading to Ease in Constructing, Maintaining, and Leading to Ease in Constructing, Maintaining, and Evolving Network Centric ApplicationsEvolving Network Centric Applications

Page 22: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-22

Sun’s JINI TechnologySun’s JINI TechnologyWhat is JINI?What is JINI?

An Infrastructure for Network Centric An Infrastructure for Network Centric Applications in Spontaneous EnvironmentApplications in Spontaneous Environment Clients Enter/Leave Network Unpredictably Resources and Services Enter/Leave due to

Failure, Redundancy, Topology Change Both Typify Enterprise Applications

Goals of JINIGoals of JINI Plug-and-Play (Components) of Clients and

Services No HW/SW Distinction: Everything a Service Enable Spontaneous Network Applications Architecture where Services Define Function Strive for Easy to Use/Understand Technology

Page 23: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-23

Sun’s JINI TechnologySun’s JINI Technology Overall Computing Architecture and JINI Overall Computing Architecture and JINI..

Page 24: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-24

Sun’s JINI TechnologySun’s JINI Technology Components and Dependencies Components and Dependencies

Infrastructure Programming Model

Services

Base Java

Java VM

RMI

Java Security

Java APIs

JavaBeans

JNDI

Enterprise Beans

JTS

JMS

Java + JINI

Discovery/Join Leasing Transaction Manager

Distributed Security

Transactions JavaSpaces

Lookup Events Lookup service

Page 25: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-25

Sun’s JINI TechnologySun’s JINI TechnologyHow Does JINI Work?How Does JINI Work?

Distributed Application Constructed Using One or Distributed Application Constructed Using One or More Lookup ServicesMore Lookup Services

Lookup Service Support Interactions by Lookup Service Support Interactions by Resources: ““Advertise”Advertise” Services

Discover, Register Services, Renew LeaseServices as “Components”

Client: “Locate/Utilize”“Locate/Utilize” ServicesDiscover, Search for Services, Invocation

Multiple Lookup ServicesMultiple Lookup Services Resources Responsible for Registering All Clients Interact with Multiple Lookups

Discovery Initiates Process for Client or ResourceDiscovery Initiates Process for Client or Resource

Page 26: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-26

Sun’s JINI TechnologySun’s JINI TechnologyDiscovery by Resource & ClientDiscovery by Resource & Client

Client

JINILookupService

Resource

Service ObjectService Attributes

JINILookupService

Discovery toRegister Services

Discovery toLocate Services

Page 27: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-27

Sun’s JINI TechnologySun’s JINI TechnologyHow Does JINI Work?How Does JINI Work?

Resources Discover and Join Lookup ServiceResources Discover and Join Lookup Service When Resources Leave or Fail to Renew Leases When Resources Leave or Fail to Renew Leases

Lookup Service Must Adjust Registry Time Lag Between Departure and Removal of

Services from Registry What Happens When Client Receives

Service Just Prior to Failure? Utilization of Java Exception Handling Client Code Written to Dynamically Adapt

Resource RegisterResource Register Services on Class-by-Class Basis Service Object (Java API - Method Signatures) Optional Descriptive Service Attributes

Page 28: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-28

Sun’s JINI TechnologySun’s JINI TechnologyJoin, Lookup, and Service InvocationJoin, Lookup, and Service Invocation

ClientResource

Service ObjectService Attributes

Lookup ServiceRequestServiceAddCourse(CSE900)

ReturnService

Proxy toAddCourse( )

Join

Register & Lease Services CourseDB ClassContains Method AddCourse ( )

1. Client Invokes AddCourse(CSE900) on Resource2. Resource Returns Status of Invocation

Service Invocation via Proxy by Transparent RMI Call

Service Object

Service Attributes

Registry of Entries

Page 29: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-29

Experimental Prototyping Effort Experimental Prototyping Effort Goals and ObjectivesGoals and Objectives

High Availability of Services and DataHigh Availability of Services and Data Volatility of Resources, Clients, and NetworkVolatility of Resources, Clients, and Network Clients Rely on Lookup Service to Locate and Clients Rely on Lookup Service to Locate and

Execute Services Against Replicated ResourcesExecute Services Against Replicated Resources Databases Replicated in Multiple Workstations Redundant Services Available if Failure “Minutes-Off” Allowed - Sync Over Time No Lost Updates During Modification Process

Characteristics of Enterprise ApplicationsCharacteristics of Enterprise Applications Movement of Clients/Reconfigure Networks Need for Data Availability on Demand Receive “Current” Data if Client/Resource

Plugs Back In

Page 30: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-30

Experimental Prototyping Effort Experimental Prototyping Effort Assumptions and ScenarioAssumptions and Scenario

Employ University ApplicationEmploy University Application Person and Course Database Repositories Students Query Course Information Faculty Query, Change, Create Schedule Authentication and Authorization Analogous to Tasks in Many Domains

Client Java GUI for University ApplicationClient Java GUI for University ApplicationCorrespond to New Java GUI for DomainCorrespond to New Java GUI for Domain

Resource Java Application for Database ResourceResource Java Application for Database ResourceLegacy Relational Database in a DomainLegacy Relational Database in a Domain

Prototyping Environment: 3 NT 400 Mz. PCsPrototyping Environment: 3 NT 400 Mz. PCs JINI 1.0 and JDK/JRE 2 v1.2.2 Visual Café 3.0 and Microsoft Access

Page 31: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-31

Experimental PrototypesExperimental PrototypesRapid, Incremental Design/Development Rapid, Incremental Design/Development First Prototype: Explore JINI and Develop First Prototype: Explore JINI and Develop

Baseline University Application: Baseline University Application: Single ComputerSingle Computer Second Prototype:Client and Services Spread to Second Prototype:Client and Services Spread to

Two ComputersTwo Computers: Lookup with Database Services: Lookup with Database Services Third Prototype: Extend Second to Multiple Third Prototype: Extend Second to Multiple

Clients and Clients and Three ComputersThree Computers Fourth and Fifth PrototypesFourth and Fifth Prototypes

Single Client, Three Replicated Databases Change in One Replica Propagation to Others Testing of Replica Failures on Application Fifth: Multiple Clients/Simultaneous Updates

Sixth Prototype: Sixth Prototype: Extends Fifth Prototype with Pre-Extends Fifth Prototype with Pre-Lookup Services for Locking During UpdatesLookup Services for Locking During Updates

Page 32: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-32

Prototype OnePrototype One

Functionality:Functionality: One GUI Client/One Database Resource (and

its Services) Microsoft Access for PersonDB & CourseDB Client, Services, and JINI Lookup Service All

Run on the Same NT Workstation Achievements: Learned Basic Concepts of JINIAchievements: Learned Basic Concepts of JINI

Installed JDK1.2, JINI 1.0, &Visual Café 3.0 Establish Environment Variables and Setup

Information for Visual Café and JINI Use of JINI’s Services GUI to Start Httpd,

Rmid and Lookup Services JDBC/ODBC to Connect to MS Access DB

Page 33: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-33

Prototype Two and ThreePrototype Two and Three

Functionality:Functionality: Distributes the Client and Database Resource

(and its Services) on Multiple NT Workstations Lookup Service Runs on the Same Workstation

as Database Fully Functional GUI Client for Course Access Prototype Three Extends Two with Multiple

Clients Purposes:Purposes:

Verify Whether the Same JINI Concepts Function Across Multiple Nodes (Two)

Insure That Multiple Clients Can Interact With the Same Lookup Service (Three)

Page 34: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-34

Block Diagram for Prototype ThreeBlock Diagram for Prototype Three

1. Get services from Course DB

2. Service List Proxies

3. Invoke addCourse(CSE900)

Discover, Join, Reg. Services

PersonDB Class verifyUserCourseDB Class getClasses getClassDescription preReqCourse getVacantClasses addCourse removeCourse updateCourse

Client1 Client2

JINILookupService

Database Resource

Client3

One NT

An

oth

er N

T

Page 35: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-35

Services ConsoleServices Console

Page 36: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-36

Services GUIServices GUI

Page 37: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-37

User Login ScreenUser Login Screen

Page 38: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-38

Add CourseAdd Course

Page 39: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-39

ConfirmationConfirmation

Page 40: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-40

Course InformationCourse Information

Page 41: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-41

Results from Prototype Two and ThreeResults from Prototype Two and Three

Achievements:Achievements: Upgrade to Visual Café 3.0c Full-fledged Application with All Types of

Queries (Select, Insert, Update and Delete) Use of Broadcast Discovery to Locate the

Lookup Server Running on Another Machine Use of Proxy to Allow the Client to Connect to

MS Access DB on the Server Machine Drawbacks:Drawbacks:

Does Not Have Replicated Database Resource

No Experimentation with Failure of Database Resource

Page 42: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-42

Aside: Important Lesson Learned!Aside: Important Lesson Learned!

PT One Downloaded Service Code for DB AccessPT One Downloaded Service Code for DB Access Transition to PT Two Invalidated Code Downloaded Code Attempted to Access DB

that was No Longer Local Downloaded Code

Requires All Assets Local Sophisticated Enough for Inter-Computer Access

Why is Downloading Code a Terrible Idea?Why is Downloading Code a Terrible Idea? Limits Extensibility, Introduces Domain

Specificity, Yields Difficult to Maintain Code Service no Longer Abstract Conceptual Unit If Need to Move Code - Mobile Agents Limited Bandwidth - RMI is Preferred

Page 43: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-43

Prototype FourPrototype Four

Functionality:Functionality: One Client, Three Replicated Database

Resources, and One JINI Lookup Service Client, Resources, Lookup on Three NTs

Purposes:Purposes: Verify that a Single Client Can Interact With

One of the Replicas Attempt Registration of Redundant Replicated

Database Services for High-Availability Demonstrate that the Changes to Replica are

Forwarded to All Other Replicas Experiment With Failure by Taking Down One

and then Two Replicas

Page 44: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-44

Services in Prototype FourServices in Prototype Four

Discover, Join, Register Services for Client

ClientJINI

LookupService

Database(copy 3)

Database(copy 2)

Database(copy 1)

Services Services to Update to Update

Replicas addCourse2

removeCourse2updateCourse2

One NTAnother NT

An

oth

er N

T

PersonDB Class verifyUserCourseDB Class getClasses getClassDescription preReqCourse getVacantClasses addCourse removeCourse updateCourse

Page 45: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-45

Execution in Prototype FourExecution in Prototype Four

1. Get Servicesfor CourseDB

2. Service ListProxies

4. Get Services for CourseDB

ClientJINI

LookupService

Database(copy 3)

Database(copy 2)

Database(copy 1)

6a. Invoke addCourse2(CSE900)

6b. Invoke addCourse2(CSE900)

7. Notify Completion of Service Invocation

3. Invoke addCourse(CSE900)

5. Service List Proxies

Page 46: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-46

Add CourseAdd Course

GUI ACTION CAUSES addCourse(CSE900) TO BE EXECUTED ON ONE PRIMARY DATABASE RESOUCE AND MIGRATED FROMTHERE TO THE OTHER TWO REPLICAS

Page 47: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-47

Prototype FivePrototype Five

Functionality:Functionality: Expand Prototype Four with Three

Clients/Three Replicated DB Services Single Lookup Service Runs on One of the NT

Workstations Client Receives Needed Services from All

Resources Upon Discovery Simultaneous Updates of All Replicas by

Client Purposes:Purposes:

Eliminate Database Interactions Attempt to Improve Database Consistency Test Resource Availability During Failure

Page 48: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-48

Execution in Prototype FiveExecution in Prototype Five

Client1

Database(copy 3)

Database(copy 2)

Database(copy 1)

JINILookupService

1. Get Services for CourseDB

2. Service ListProxies

3. Invoke addCourse(CSE900)

4. Invoke addCourse(CSE900)

5. Invoke addCourse(CSE900)

Page 49: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-49

Results from Prototype Four and FiveResults from Prototype Four and Five

Achievements:Achievements: Same Services Can be Registered With Lookup Client Can Request and Utilize All Replicated

Services in Registry Client Can Function As Long As at Least One

of the Replicated Database Resources is Alive Consistency of Databases is Preserved

Prototype 4: Replica Updates other Replicas Prototype 5: Client Updates All Replicas

Drawbacks:Drawbacks: Registry Currency Problem During Failure Multiple Clients Can Modify Same Data Lost Update Possible if Multiple Clients

Page 50: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-50

Prototype SixPrototype Six

Functionality:Functionality: Incorporate Pre-Lookup Service that Insures

Only One Client Updates Replicas Use a Exclusive Write/Simultaneous Reads

Protocol Client Interacts with Pre-Lookup Service to

“Request” Locks Client Then Asks Lookup Service for Services Client Receives and Updates All Replicas

Purpose:Purpose: Bootstrap: Use JINI to Solve Update Problem Eliminate Consistency Problems Across

Replicas by Locking Databases During Update

Page 51: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-51

Services in Prototype SixServices in Prototype Six

Discover, Join, Reg. Services for Client

LockUnLockgetClientIDaddServicermvService

Client1

JINILookupService

Database(copy 3)

Database(copy 2)

Database(copy 1)

Pre-LookupService

Client2

Client3

Page 52: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-52

Order to Start ApplicationOrder to Start Application

Start6th, 7th, 8th

Register/Ask permission

Back to JINI

Clients

Start2nd

Register

Pre-LookupService

Start1st

JINILookupService

Start3rd, 4th, 5th

Register

Register

DatabaseReplicas

Page 53: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-53

Execution Process in Prototype SixExecution Process in Prototype Six

Client1

JINILookupService

Database(copy 3)

Database(copy 2)

Database(copy 1)

Pre-LookupService

3. Get Services for CourseDB

4. Service ListProxies

1. Request Update Lock

8. Release Lock

2. Granted or Wait

5. Invoke addCourse(CSE900)

6. Invoke addCourse(CSE900)

7. Invoke addCourse(CSE900)

Page 54: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-54

Pre-Lookup when Two Replicated Pre-Lookup when Two Replicated Database Resources RegisterDatabase Resources Register

TWO DATABASE RESOURCES ARE INTERACTINGWITH THE PRE-LOOKUP TO …

Register Services from DALMATION & SHEPARD: getClassDescription, preReqCourse, updateCourse, removeCourse, addCourse, getVacantClasses, getClasses

Page 55: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-55

Pre-Lookup when Client Invokes Pre-Lookup when Client Invokes “addCourse” Service“addCourse” Service

CLIENT BEING GRANTED ACCESS TO addCourse SERVICE ON DALMATION & SHEPARD

Page 56: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-56

Client Passed Through Pre-Lookup Client Passed Through Pre-Lookup

CLIENT INTERACTING WITH PRE-LOOKUP

ANNOUNCING PRESENCE: User foundESTABLISHING IDENTIFIERREAD REQUEST: NO LOCK NECESSARY

Page 57: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-57

Client Locked by Pre-LookupClient Locked by Pre-Lookup

CLIENT INTERACTING WITH PRE-LOOKUP

ANNOUNCING PRESENCE: User foundESTABLISHING IDENTIFIERWAITING FOR AND OBTAINING LOCK ON CSE900

I’m waiting for the service I’m using the DBServer … 2 DBServers are found

Page 58: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-58

Results from Prototype SixResults from Prototype Six

Achievements:Achievements: Any Number of Clients Can Do the Read

Operation on the Database Only One Client Can Modify a Replicated

Database Resource at a Given Point of Time Pre-Lookup Service Can be Modified to

Support other Locking Protocols Drawbacks:Drawbacks:

Can’t Force Stakeholders to Consult Pre-Lookup Service - Rely on SW Practice

No Redundant Lookup/Pre-Lookup Services Failure of Lookup/Pre-Lookup - Total Restart No Logging and Recovery When Replicated

Server Application Fails and is Restarted

Page 59: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-59

Experimental Prototyping Effort Experimental Prototyping Effort Future Work PossibilitiesFuture Work Possibilities

Experimentation with Leasing and FailureExperimentation with Leasing and Failure Failure of Database Resource with Forever

Lease Required 5 mins. to Update Registry Experiment with Lease Capabilities and

Improve Client Code to Process Exceptions Logging and Recovery After Failure Limit Availability of Sensitive Data

Verification of Write-Once-Run AnywhereVerification of Write-Once-Run Anywhere Extend Prototype 6 to

Win95, 98, NT, and Solaris Hardware Other Database Resources (Sybase, Oracle, …)

CRITICAL for Comprehensive Evaluation of JINI’s Readiness for 21st Century!

Page 60: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-60

Experimental Prototyping Effort Experimental Prototyping Effort Future Work PossibilitiesFuture Work Possibilities

Explore Other JINI CapabilitiesExplore Other JINI Capabilities Group/Bind Clients to “Close” Lookup Consistency: Transactions/Two-Phase Commit Experiment with JINI Security Model for

Granting/Denial of Services (Ongoing Project) Response, Consistency, Authorization

Alternative Locking Protocols for Pre-LookupAlternative Locking Protocols for Pre-Lookup Write Excludes Reading/Granularity of Locks Fine Tune Access to Data

Redundant Pre-Lookup/JINI Lookup ServicesRedundant Pre-Lookup/JINI Lookup Services Significantly Increases Client/Resource Code Nesting and Interactions of Lookup Services Extend Replication for Applications

Page 61: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-61

Experimental Prototyping Effort Experimental Prototyping Effort Future Work PossibilitiesFuture Work Possibilities

JavaSpaces: An API that Extends JINI withJavaSpaces: An API that Extends JINI with Shared Persistent Object Space, Distributed

Data Structures, Synchronization Techniques, Message Passing and Channels

Evaluate Yet-Another Emerging Technology Performance Analyses for Prototyping EffortsPerformance Analyses for Prototyping Efforts

Unclear on Impact of UConn Local Network Evaluate Heterogeneous Prototypes

Software Agents and JINISoftware Agents and JINI Ongoing Project this Semester Two Grad Students Can Technologies Work Together?

Page 62: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-62

Conclusions and Recommendations Conclusions and Recommendations Revisiting Goals of Research EffortRevisiting Goals of Research Effort

Can JINI Support Can JINI Support Highly-Available Distributed Highly-Available Distributed ApplicationsApplications?? Strongly Demonstrated by PTs 4, 5 and 6 Architect Highly Available Solutions via JINI Results Basis for Further Investigation

Can Replicated Database Services be Registered Can Replicated Database Services be Registered and Available for Use by Clients?and Available for Use by Clients? PT 4 with Multiple DB Resources PTs 5 and 5 with Multiple Clients JINI Lookup Service Distinguishes Between

“Same” Services from “Different” Resources Clients Treat Services as Component APIs!

Page 63: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-63

Conclusions and Recommendations Conclusions and Recommendations Revisiting Goals of Research EffortRevisiting Goals of Research Effort

Can JINI Support a Network-Centric Environment Can JINI Support a Network-Centric Environment with with Dynamic Clients and ServicesDynamic Clients and Services??Will Clients Continue to Operate Effectively if Will Clients Continue to Operate Effectively if Replicated Databases Services FailReplicated Databases Services Fail?? Yes, PTs 4, 5, 6 All Support Starting and

Stopping of Clients and Database Resources JINI Needs Time to Remove “Old” Services Upgrade Client Software Appropriately

Can JINI be Utilized to Can JINI be Utilized to Maintain “minutes-off” Maintain “minutes-off” Data ConsistencyData Consistency of Replicas? of Replicas? Demonstrated in Varying Degrees by PTs PT 6 Superior Due to Pre-Lookup Service

Guarantee of No Lost Updates

Page 64: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-64

Conclusions and RecommendationsConclusions and Recommendations Is JINI Ready for Prime Time??? Is JINI Ready for Prime Time???

Compatibility of JINI with JavaCompatibility of JINI with Java Homogeneity of JINI and Java Unlike ORBs

and IDL which are Heterogeneous Demonstration of

GUI Client as “New” Java Application Microsoft Access Wrapped with JDBC/ODBC

as a Legacy Database But - Verify Across Heterogeneous HW/SW

Commitment of Sun to Java/JINICommitment of Sun to Java/JINI Keynote Address by Bill Joy Touts Strong

Commitment to Java and JINI Distributed Computing with JINI is Future But - Danger of Evolving Technologies

Page 65: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-65

Conclusions and RecommendationsConclusions and Recommendations Is JINI Ready for Prime Time??? Is JINI Ready for Prime Time???

Track Record of Java and SunTrack Record of Java and Sun Java’s Increasing Dominance in Agents, E-

Commerce, EJB, Data Mining, etc. But - Incompatibility of Java Releases

Understandability and Ease of Use of JINIUnderstandability and Ease of Use of JINI 400 Hours Total for Obtaining Familiarity with

JINI, Visual Café, JDBC/ODBC, 6 PTs, etc. Faster Speed Up w.r.t. CORBA/ORB

High-Level Abstraction of JINIHigh-Level Abstraction of JINI UML Modeling for Distr./Real-Time Design Characterize JINI Architecture/Design Transition to Visual Café Promote Software Engineering and Rigor!

Page 66: JINI-1 JINI: A Technology for 21st Century Is it Ready for Prime Time? Prof. Steven A. Demurjian and Dr. Paul Barr Parag Bhogte and Haiying Ren Computer

JINI-66

Conclusions and Recommendations Conclusions and Recommendations Important CaveatsImportant Caveats

Future Work Clearly Indicate that More Effort Future Work Clearly Indicate that More Effort is Required to Tilt Scales Toward JINIis Required to Tilt Scales Toward JINI Work Extensive w.r.t. JINI Technologies Potential Role of JavaSpaces

Experiences on Whole PositiveExperiences on Whole Positive Leasing Issues Need to be Explored Impact of Registry Currency on Clients

Continued Evolution of JINI SpecificationContinued Evolution of JINI Specification Will JINI 1.1 be Compatible with JINI 1.0? Java has Had Compatibility Problems in Past

(Deprecated APIs) Conclusion: JINI Great Promise as a Successful Conclusion: JINI Great Promise as a Successful

Technology in 21st Century!Technology in 21st Century!