JINI-1 JINI: Evaluating the Technology JINI: Evaluating the Technology & Impact & Impact on Present & Future Army Systems on Present & Future Army Systems 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
78
Embed
JINI: Evaluating the Technology & Impact on Present & Future Army Systems
JINI: Evaluating the Technology & Impact on Present & Future Army Systems. 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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
JINI-1
JINI: Evaluating the Technology & ImpactJINI: Evaluating the Technology & Impacton Present & Future Army Systemson Present & Future Army Systems
Prof. Steven A. Demurjian and Dr. Paul BarrParag Bhogte and Haiying Ren
What is a Distributed Application?What is a Distributed Application?
Distributed Computing/Applications are …Distributed Computing/Applications are … Systems of Systems Interoperation of New & Existing Applications Legacy, Databases, COTS, New Clients, etc. Network Centric Environment
Distributed Computing Applications must …Distributed Computing Applications must … Manage, Control, Access, and Modify Data Allow Humans to Interact with Data Provide High-Availability and Performance Evolvable Over Time
Present & Future Army Systems Exhibit All of Present & Future Army Systems Exhibit All of These Characteristics and More!These Characteristics and More!
JINI-3
Why is Distributed Computing Needed?Why is Distributed Computing Needed?
Today’s Environments Contain Applications … Today’s Environments Contain Applications … Created with Multiple Prog. Languages Executing on Heterogeneous Platforms Locally and Geographically Distributed
Distributed Computing Applications Must … Distributed Computing Applications Must … Allow Seamless and Transparent Interoperation Provide Tools for Engineers and Users
Result: Inter-Operating Environment Result: Inter-Operating Environment Utilize Information in New/Innovative Ways Leveraged to Increase Productivity Support Diverse User Activities Dynamically Respond to Changes
JINI-4
Who are the Players in Who are the Players in Distributed Computing?Distributed Computing?
StakeholdersStakeholders Software Architects (Requirements) System Designers (Solutions) Application Builders (Implementation)
Stakeholders Striving to Provide …Stakeholders Striving to Provide … System Interaction and Information Exchange Utilization of Existing Applications in New
and Innovative Ways End-Users at Various Skill Levels and with End-Users at Various Skill Levels and with
Specific and Limited Access RequirementsSpecific and Limited Access Requirements Novice vs. Adept vs. Expert Division vs. Brigade vs. Battalion Division vs. Brigade vs. Battalion Who Uses What When and for How Long?Who Uses What When and for How Long?
JINI-5
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 Solutions that Aren’t Extensible and Evolvable 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!
JINI-6
What are Emerging Technologies for What are Emerging Technologies for Distributed Computing?Distributed Computing?
Distributed Object Computing (DOC)Distributed Object Computing (DOC) DCE, CORBA, DCOM/OLE Middleware for Heterogeneous Hardware and
Together “System of Systems” Software Agent Models and TechnologiesSoftware Agent Models and Technologies
A Mobile Agent is Application Capable of Migrating Across Network with Code and Data to Accomplish Required Tasks
JINI-7
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 to Distributed OS with Conceptually, JINI Similar to Distributed OS with Dynamically Definable/Changeable ResourcesDynamically Definable/Changeable Resources
JINI-8
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???
JINI-9
Overview of PresentationOverview of Presentation
Brief Review: Background Material on JAVABrief Review: Background Material on JAVA What is Java? Object Serialization Remote Method Invocation
Sun’s JINI TechnologySun’s JINI Technology 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
JINI-10
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
JINI-11
Background Material on JAVA Background Material on JAVA Object SerializationObject Serialization
Object Serialization is a Bi-directional Process ofObject Serialization is a Bi-directional Process of Writing an Object (Save in Serialized form) Reading an Object (Reconstruct Serialized)
Used in:Used in: Remote Method Invocation (RMI) Exchange of Information Across Network // SerializePerson p = new Person ("Steve", "CS&E UConn"); FileOutputStream f = new FileOutputStream("tmp"); ObjectOutputStream s = new ObjectOutputStream(f); s.writeObject(i); // DeserializeFileInputStream in = new FileInputStream("tmp"); ObjectInputStream s = new ObjectInputStream(in); Person p = (Person)s.readObject();
JINI-12
Background Material on JAVABackground Material on JAVABlock Diagram for RMIBlock Diagram for RMI
Start rmiregistery
Unmarshall UnmarshallMarshall Marshall
NDR NDR NDR NDR
Stub Stub Skel Skel
Transport Transport Transport Transport
HelloApplet HelloImpl
Hello
1 2 3
4
5
ServerClient
RMI Layer
rmic HelloImpl.java
Java Objects in JVMs (on Different Computers) Java Objects in JVMs (on Different Computers) Transparently Invoke Each Other's MethodsTransparently Invoke Each Other's Methods
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 (Army Personnel) Resources Provide Services (Weather Data,
Map Overlays, Logistics Data) 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
JINI-14
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:
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 Our IntentOur Intent
Evaluate Effectiveness for Software
JINI-16
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 Leases are Forever or with Expirations Resources Renew Services Prior to Expiration If not, Services Become Unavailable Lookup Service Maintains Registry Logistics Data Only Available at Start of
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!
JINI-18
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
JINI-19
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 Both Critical for “Moving” Personnel
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
JINI-20
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 Present/Future Army Systems
Goals of JINIGoals of JINI Plug-and-Play of Clients and Services Erasing Hardware/Software Distinction:
Everything is a Service Enable Spontaneous Network Applications Architecture where Services Define Function Strive for Easy to Use/Understand Technology
JINI-21
Sun’s JINI TechnologySun’s JINI Technology Overall Computing Architecture and JINI Overall Computing Architecture and JINI..
JINI-22
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
JINI-23
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, Search for Services, Invocation Multiple Lookup ServicesMultiple Lookup Services
Resources Responsible for Registering All Clients Interact with Multiple Lookups Stakeholders Must Write “Apropos” Code
Discovery Initiates Process for Client or ResourceDiscovery Initiates Process for Client or Resource
JINI-24
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
JINI-25
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
JINI-26
Sun’s JINI TechnologySun’s JINI TechnologyJoin, Lookup, and Service InvocationJoin, Lookup, and Service Invocation
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
JINI-27
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
Present/Future Army SystemsPresent/Future Army Systems Movement of Clients/Reconfigure Networks Need for Data Availability on Demand Receive “Current” Data if Client/Resource
Plugs Back In
JINI-28
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 Army Domain
Client Java GUI for University ApplicationClient Java GUI for University ApplicationCorrespond to New Java GUI for Army Appl.Correspond to New Java GUI for Army Appl.
Resource Java Application for Database ResourceResource Java Application for Database ResourceLegacy Relational Database in Army Appl.Legacy Relational Database in Army Appl.
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
JINI-29
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
JINI-30
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
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
JINI-31
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)
JINI-32
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
JINI-33
Services ConsoleServices Console
JINI-34
Services GUIServices GUI
JINI-35
User Login ScreenUser Login Screen
JINI-36
Add CourseAdd Course
JINI-37
ConfirmationConfirmation
JINI-38
Course InformationCourse Information
JINI-39
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
JINI-40
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
JINI-41
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
JINI-42
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
JINI-43
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
JINI-44
Add CourseAdd Course
GUI ACTION CAUSES addCourse(CSE900) TO BE EXECUTED ON ONE PRIMARY DATABASE RESOUCE AND MIGRATED FROMTHERE TO THE OTHER TWO REPLICAS
JINI-45
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
JINI-46
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)
JINI-47
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
JINI-48
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
JINI-49
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
JINI-50
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
JINI-51
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)
JINI-52
Pre-Lookup when Two Replicated Pre-Lookup when Two Replicated Database Resources RegisterDatabase Resources Register
TWO DATABASE RESOURCES ARE INTERACTINGWITH THE PRE-LOOKUP TO …
Pre-Lookup when Client Invokes Pre-Lookup when Client Invokes “addCourse” Service“addCourse” Service
CLIENT BEING GRANTED ACCESS TO addCourse SERVICE ON DALMATION & SHEPARD
JINI-54
Client Passed Through Pre-Lookup Client Passed Through Pre-Lookup
CLIENT INTERACTING WITH PRE-LOOKUP
ANNOUNCING PRESENCE: User foundESTABLISHING IDENTIFIERREAD REQUEST: NO LOCK NECESSARY
JINI-55
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
JINI-56
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
JINI-57
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 Army 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 Army Systems!
JINI-58
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 Army 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 Army Applications
JINI-59
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?
JINI-60
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 Utilizing
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
JINI-61
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
JINI-62
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
JINI-63
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!
JINI-64
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!
JINI-65
JINI: Evaluating the Technology & ImpactJINI: Evaluating the Technology & Impacton Present & Future Army Systemson Present & Future Army Systems
EXTRA SLIDES REMOVED FROM TALK
JINI-66
Background Material on JAVA Background Material on JAVA An Overview of JavaAn Overview of Java
Java is a Third Generation, General Purpose, Java is a Third Generation, General Purpose, Platform Independent, Concurrent, Class-Based, Platform Independent, Concurrent, Class-Based, Object-Oriented Language and EnvironmentObject-Oriented Language and Environment
Java Composed of JDK and JREJava Composed of JDK and JRE Java LanguageJava Language Java Packages (Libraries)Java Packages (Libraries) javac Compiler to Bytecode (p-code)javac Compiler to Bytecode (p-code) JDB Java Debugger JDB Java Debugger Java Interpreter - Platform SpecificJava Interpreter - Platform Specific
JDK: Java Development EnvironmentJDK: Java Development Environment http://www.javasoft.com/products/jdk/1.2/http://www.javasoft.com/products/jdk/1.2/
Background Material on JAVA Background Material on JAVA Java Virtual Machine (JVM)Java Virtual Machine (JVM)
JVM is a JVM is a Platform Specific ProgramPlatform Specific Program which which Interprets and Executes Java CodeInterprets and Executes Java Code
JVM Interprets and Executes BytecodesJVM Interprets and Executes Bytecodes
JVM Targeted as Small/Efficient - Embeddable JVM Targeted as Small/Efficient - Embeddable within Consumer Electronicswithin Consumer Electronics
JVM Stack Based Machine - Simulates Real JVM Stack Based Machine - Simulates Real ProcessorProcessor
CA FE BA BE 00 03 00 2D 00 3ECA FE BA BE 00 03 00 2D 00 3E08 00 3B 08 00 01 08 00 20 0808 00 3B 08 00 01 08 00 20 08
JINI-68
Background Material on JAVA Background Material on JAVA The Java API PackagesThe Java API Packages
Application Programming Interface (API)Application Programming Interface (API) Java Defined - Building Blocks/LibrariesJava Defined - Building Blocks/Libraries Java Platform 1.2/2 Core APIJava Platform 1.2/2 Core API