Design Real Time Java Remote Method Invocation


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Good morning, my name is Sangig Rho. Today I would like to present the work of my dissertation, “A Distributed Hard Real-time Java System for High Mobility Components”.
  • Design Real Time Java Remote Method Invocation

    1. 1. Design Real-Time Java Remote Method Invocation: A Server-Centric Approach Sangig Rho (Samsung Electronics, Korea), Byung Choi (Michigan Tech), Riccardo Bettati (Texas A&M) Nov 14, 2005
    2. 2. Overview <ul><li>Background </li></ul><ul><li>Research Objective </li></ul><ul><li>Related Work </li></ul><ul><li>Proposed Methodology </li></ul><ul><li>Conclusions and Future Work </li></ul>
    3. 3. Background 1: <ul><li>Distributed open real-time systems? </li></ul><ul><ul><li>Scheduling parameters (workload, deadline, priority) </li></ul></ul><ul><ul><li>Release parameters (arrival time, arrival pattern) </li></ul></ul><ul><ul><li>Bursty arrival of client’s requests </li></ul></ul><ul><li>Implementation vehicle? </li></ul><ul><ul><li>Component-based (CORBA, DCOM, .NET, EJB) </li></ul></ul><ul><ul><li>Java …? </li></ul></ul>
    4. 4. Background 2: <ul><li>Server declared? </li></ul><ul><ul><li>Server defined priority </li></ul></ul><ul><li>Client propagated? </li></ul><ul><ul><li>Inherit global priority </li></ul></ul><ul><li>Real-Time guarantee with admission Control! </li></ul>
    5. 5. Research Objectives: <ul><li>Providing real-time Java RMI which supports: </li></ul><ul><ul><li>Temporal isolation from other components’ CPU demand </li></ul></ul><ul><ul><li>So, predictable RMI execution time in various conditions </li></ul></ul><ul><li>Solutions? </li></ul><ul><ul><li>Server declared real-time property model </li></ul></ul>
    6. 6. Related Work 1: <ul><li>Real-time extensions for component-based systems </li></ul><ul><ul><li>TAO ( T he A CE O RB) project [Schmidt: 2000?] </li></ul></ul><ul><ul><ul><li>A CORBA preserving the priority levels of calls across component boundaries </li></ul></ul></ul><ul><ul><li>The Specification for Real-Time CORBA [Schmidt 2000] </li></ul></ul><ul><ul><ul><li>Management of CPU, network, and memory resources </li></ul></ul></ul><ul><ul><ul><li>Server declared or client propagated model for fixed priority scheduling between client and server </li></ul></ul></ul><ul><li>No isolation due to static priority scheduling </li></ul>
    7. 7. Related Work: 2 <ul><li>Java RMI system </li></ul><ul><ul><li>Simplicity, security, portability </li></ul></ul><ul><ul><li>Middleware for distributed systems </li></ul></ul><ul><li>The Real-Time Specification for Java (RTSJ) </li></ul><ul><ul><li>Provide standards for real-time Java APIs except real-time RMI [Bollella 2000] </li></ul></ul><ul><li>The Distributed Real-Time Specification for Java (DRTSJ) </li></ul><ul><ul><li>Not released, rather complicated, no isolation in timing domain because of using static priority scheduling [Jensen 2001] </li></ul></ul>
    8. 8. <ul><li>TimeSys RTSJ Reference Implementation (RI) </li></ul><ul><ul><li>Based on J2ME (Java Micro Edition) source </li></ul></ul><ul><ul><li>No RMI support </li></ul></ul><ul><ul><li>Our implementation base </li></ul></ul><ul><li>jRate [Corsaro 2002] </li></ul><ul><li>JTime </li></ul><ul><ul><ul><li>Commercialized product </li></ul></ul></ul><ul><ul><ul><li>RTSJ-compliant Java for embedded systems </li></ul></ul></ul><ul><ul><ul><li>No RMI support </li></ul></ul></ul>Related Work 3:
    9. 9. Research Objectives Revisited <ul><li>Real-time guarantees in form of deadline guarantees to remote method invocations </li></ul><ul><ul><li>Bounded maximum response time of remote method </li></ul></ul><ul><li>Hard real-time guarantees </li></ul><ul><ul><li>Contingent upon </li></ul></ul><ul><ul><ul><li>The real-time capabilities of the underlying OS and runtime environment </li></ul></ul></ul><ul><ul><ul><li>Well-known number of clients </li></ul></ul></ul><ul><ul><ul><li>Well-behaved clients </li></ul></ul></ul><ul><ul><ul><li>Well-known worst case execution of each method of components </li></ul></ul></ul><ul><li>At best soft real-time guarantees if fails to meet one of above conditions </li></ul><ul><li>Timing isolation through a guaranteed-rate scheduler </li></ul><ul><ul><li>The worst case response time of jobs in a component does not depend on the processor-time demands of other components </li></ul></ul>
    10. 10. <ul><li>Real-time capability for component-based distributed systems </li></ul><ul><ul><li>Real-time scheduling of tasks in Java Virtual Machine </li></ul></ul><ul><ul><li>Provide predictable executions of sporadic tasks of software components </li></ul></ul><ul><ul><ul><li>Extension of the Real-Time Specification for Java (RTSJ) </li></ul></ul></ul><ul><ul><ul><li>Real-Time Java RMI </li></ul></ul></ul><ul><ul><ul><li>Deadline-driven EDF scheduler </li></ul></ul></ul><ul><ul><ul><li>Total Bandwidth server mechanism </li></ul></ul></ul><ul><ul><li>A server-centric execution environment in terms of holder of real-time properties </li></ul></ul><ul><ul><ul><li>Server declared model for real-time properties </li></ul></ul></ul><ul><ul><ul><li>No need for delivering and inheriting real-time properties between client and server for scheduling purposes </li></ul></ul></ul>Our Methodology
    11. 11. Probabilistic Approach for Characterizing Total Bandwidth Servers <ul><li>How to allocate a utilization for a remote method RM ij </li></ul><ul><ul><li>Maximum budget </li></ul></ul><ul><ul><ul><li>Given worst case execution time of the remote method RM ij </li></ul></ul></ul><ul><ul><li>Period </li></ul></ul><ul><ul><ul><li>Unknown </li></ul></ul></ul><ul><li>How to decide the period of Total Bandwidth server TB ij </li></ul><ul><ul><li>Assumption </li></ul></ul><ul><ul><ul><li>Given distribution function of interarrival times of client requests for RM ij </li></ul></ul></ul><ul><ul><li>By using minimum interarrival time of client requests </li></ul></ul><ul><ul><ul><li>Hard real-time guarantees </li></ul></ul></ul><ul><ul><ul><li>Overallocate system resources </li></ul></ul></ul><ul><ul><li>By using a probabilistic approach </li></ul></ul><ul><ul><ul><li>Proof of a G/D/1 queue model for Total Bandwidth server </li></ul></ul></ul><ul><ul><ul><li>Lower allocated resources due to a larger period than that of the above </li></ul></ul></ul><ul><ul><ul><li>Efficiently utilize system resources </li></ul></ul></ul><ul><ul><ul><li>Soft real-time guarantees </li></ul></ul></ul>
    12. 12. <ul><li>Experimental Evaluation </li></ul><ul><ul><li>Determine overhead of local method </li></ul></ul><ul><ul><li>Determine overhead of real-time RMI </li></ul></ul><ul><ul><li>Predictable latency of remote method invocation </li></ul></ul><ul><ul><ul><li>Under overloaded condition </li></ul></ul></ul><ul><ul><ul><li>With CPU-bound tasks, two Java applications for file compression </li></ul></ul></ul>Experimental Evaluation
    13. 13. Latency of Remote Method Invocation <ul><li>Real-Time RMI performance </li></ul><ul><ul><li>Measure latency and jitter </li></ul></ul><ul><ul><li>Dell 930 MHz with memory of 256 Megabytes </li></ul></ul><ul><ul><li>An Agilent Technologies Network Analyzer </li></ul></ul><ul><ul><ul><li>Capture all packets </li></ul></ul></ul><ul><ul><ul><li>Nanosecond timer resolution </li></ul></ul></ul><ul><ul><ul><li>Windows 2000 Pro Embedded with two CPUs </li></ul></ul></ul><ul><li>Latency of a remote method invocation </li></ul><ul><ul><li>Measure time difference between </li></ul></ul><ul><ul><ul><li>Moment of client’s sending of the first packet of RMI request </li></ul></ul></ul><ul><ul><ul><li>Moment of server’s sending of the last packet of the result </li></ul></ul></ul><ul><ul><li>Ethereal </li></ul></ul><ul><ul><ul><li>Network Protocol Analyzer </li></ul></ul></ul><ul><ul><ul><li>Refined data display by using display filter </li></ul></ul></ul>Fast Ethernet 100-Mbps Link Client Host Dell Dimension 4100 Pentium III Server Host Dell Dimension 4100 Pentium III Agilent Technologies Network Analyzer Fast Ethernet 100-Mbps Link
    14. 14. Local Method Execution Time on TimeSys 3.1-RT
    15. 15. RMI Latency with Two Running Java Applications for File Compression
    16. 16. Standard Deviation of RMI Latency
    17. 17. Conclusions and Future Work <ul><li>One step toward distributed open real-time systems with Java RMI </li></ul><ul><ul><li>Predictable end-to-end latency </li></ul></ul><ul><li>Further investigation on this methodology with the Distributed Real-Time Specification for Java (DRTSJ) needed </li></ul><ul><li>Real-time CORBA vs. DRTSJ? </li></ul>
    18. 18. Real-Time Infrastructure: Guaranteed-Rate Scheduling <ul><li>At time 1 : </li></ul><ul><ul><li>Budget server = 1.0; </li></ul></ul><ul><ul><li>Deadline server = 1 + (1.0 / 0.25); </li></ul></ul><ul><ul><li> = 5; </li></ul></ul><ul><li>At time 4 : </li></ul><ul><ul><li>Budget server = 2.0; </li></ul></ul><ul><ul><li>Deadline server = 5 + (2.0 / 0.25); </li></ul></ul><ul><ul><li>= 13; </li></ul></ul><ul><li>At time 12 : </li></ul><ul><ul><li>Budget server = 3.0; </li></ul></ul><ul><ul><li>Deadline server = 13 + (3.0 / 0.25); </li></ul></ul><ul><ul><li>= 25; </li></ul></ul><ul><li>Feasible scheduling for isolation </li></ul><ul><li>in time domain </li></ul><ul><li>Guaranteed-rate scheduling in </li></ul><ul><li>deadline-driven real-time systems </li></ul><ul><li>Total Bandwidth server </li></ul><ul><ul><li>Better responsiveness of </li></ul></ul><ul><ul><li>budget replenishment </li></ul></ul>Periodic Task ( Period of 3 Time Units, Execution Time of 1 Time Unit ) 1 2 3 0 1 3 4 8 12 20 Time Budget of Total Bandwidth Server 0 1 5 4 13 12 25 Total Bandwidth Server of Size 0.25 1.0 2.0 3.0 0 3 6 9 12 15 18 21 24 27 0 4 8 16 12 20 24 28 Periodic Task ( Period of 4 Time Units, Execution Time of 1 Time Unit )
    19. 19. Real-Time Infrastructure: Earliest Deadline First Scheduler <ul><li>EDF scheduling algorithm </li></ul><ul><ul><li>Feasible scheduling for a system </li></ul></ul><ul><ul><ul><li>Independent </li></ul></ul></ul><ul><ul><ul><li>Preemptive </li></ul></ul></ul><ul><ul><ul><li>Periodic </li></ul></ul></ul><ul><ul><ul><li>Sporadic tasks </li></ul></ul></ul><ul><ul><li>If ∑ (instantaneous utilization) ≤ 1 </li></ul></ul><ul><li>No support in the RTSJ RI </li></ul><ul><li>Higher priority over RealtimeThreads </li></ul>Updating The Status of RT-Threads Processing Newly Admitted Real-Time Threads Processing Inactive RT-Threads Sorting RT-Threads by Deadline Assigning Priorities to RT-Threads Waking Processing Released RT-Threads Calculating Next Wake-Up Time Waiting Expiration of The Timer for Next Wake-Up Or Notification from a Real-Time Thread
    20. 20. Real-Time Infrastructure: Adjustment of Priorities of Real-Time Worker Threads Based on Admitted Utilization public class AOUnicastServerRef extends UnicastRef { … public void dispatch(Remote obj, StreamRemoteCall call, ObjID id ) throws IOException { … if (obj instanceof Migratable) { isAO = true; bandwidthMonitor = ((Migratable) obj).getBandwidthMonitor(); defaultAdmissionControl = AdmissionControl.getDefaultAdmissionControl(); MethodWorkloadInfo methodWorkloadInfo = defaultAdmissionControl.findMethodWorkloadInfo(aoID, methodName); … /* * For BandwidthMonitor */ long relativeDeadlineNanos = bandwidthMonitor.getServerPeriodNanos(); /* * We will wake up EDF Scheduler. * Cost and deadline should be adjusted for SchedulableData. */ RealtimeThread.setTotalBandwidthParameters(costNanos, relativeDeadlineNanos); … /* * For BandwidthMonitor */ bandwidthMonitor.acquire(); } … } … } Executing at the Adjusted Priority Based on the Requested Remote Method Executing at the Maximum Priority Regardless of the Requested Remote Method <ul><li>Update properties of </li></ul><ul><li>javax.realtime.ReleaseParameters instance </li></ul><ul><ul><li>Cost (worst case execution time) </li></ul></ul><ul><ul><li>Relative Deadline </li></ul></ul><ul><li>Reflect updated deadline into scheduling </li></ul><ul><ul><li>Wake up EDF scheduler </li></ul></ul><ul><ul><li>Reschedule tasks </li></ul></ul>
    21. 21. <ul><li>Feasible scheduling algorithms for isolation in time domain </li></ul><ul><li>Guaranteed-rate scheduling in deadline-driven real-time systems </li></ul><ul><ul><li>Better responsiveness of server’s budget replenishment in Total Bandwidth server </li></ul></ul><ul><li>Total Bandwidth Server </li></ul><ul><ul><li>A Initial state </li></ul></ul><ul><ul><ul><li>Budget server = 0; </li></ul></ul></ul><ul><ul><ul><li>Deadline server = 0; </li></ul></ul></ul><ul><ul><ul><li>A job queue with no backlogged jobs </li></ul></ul></ul><ul><ul><li>At time t , arrival of a job with workload of ExecutionTime Job_1 </li></ul></ul><ul><ul><ul><li>Budget server = ExecutionTime Job_1 ; </li></ul></ul></ul><ul><ul><ul><li>Deadline server = max ( Deadline server , t ) + ( ExecutionTime Job_1 / Utilization server ) ; </li></ul></ul></ul><ul><ul><li>Current job’s completion with backlogged jobs </li></ul></ul><ul><ul><ul><li>Budget server = ExecutionTime Job_2 ; </li></ul></ul></ul><ul><ul><ul><li>Deadline server = Deadline server + ( ExecutionTime Job_2 / Utilization server ) ; </li></ul></ul></ul><ul><ul><li>Current job’s completion with no backlogged jobs </li></ul></ul><ul><ul><ul><li>Do nothing; </li></ul></ul></ul><ul><ul><ul><li>Suspend the thread of Total Bandwidth server, a worker thread , by EDF scheduler </li></ul></ul></ul>Real-Time Infrastructure: Guaranteed-Rate Scheduling
    22. 22. A Model for Distributed Component-Based Applications <ul><li>A collection of </li></ul><ul><ul><li>n clients, C 1 , C 2 , …, C n </li></ul></ul><ul><ul><li>m components, A 1 , A 2 , …, A m </li></ul></ul><ul><li>Each component A i </li></ul><ul><ul><li>k remote methods, RM i1 , RM i2 , …, RM ik </li></ul></ul><ul><li>Client </li></ul><ul><ul><li>Execute outside of our resource control </li></ul></ul><ul><li>Execution environments </li></ul><ul><ul><li>A client execution environment </li></ul></ul><ul><ul><ul><li>No further consideration </li></ul></ul></ul><ul><ul><li>A component execution environment </li></ul></ul><ul><li>Component execution environment </li></ul><ul><ul><li>h hosts, H 1 , H 2 , …, H h </li></ul></ul><ul><li>A uniform processing environment </li></ul><ul><ul><li>Relative speed Δ ℓ for each host H ℓ </li></ul></ul><ul><ul><li>Execution of ε time units on reference host takes ε / Δ ℓ time units on a host with relative speed Δ ℓ </li></ul></ul>
    23. 23. The Task Model <ul><li>Synchronous invocation of remote methods </li></ul><ul><ul><li>Migration of the thread of control between caller and callee </li></ul></ul><ul><li>Model workload as a set of tasks </li></ul><ul><li>Each task T i </li></ul><ul><ul><li>A sequence of jobs, J i (1) , J i (2) , …, J i (k) </li></ul></ul><ul><li>Each job J i </li></ul><ul><ul><li>The execution of each job is triggered by an invocation of a remote method by a client </li></ul></ul><ul><ul><li>Consists of a set of subjobs, J i = { J i1 , J i2 , … , J im } </li></ul></ul><ul><ul><li>Workload of each job J i </li></ul></ul><ul><ul><ul><li>Σ (Workload of each subjob J ij ) </li></ul></ul></ul>Component A 1 Component A 2 Component A m Task T i Job J i (1) J i (4) J i (3) J i (2) J i1 J i2 J im
    24. 24. Real-Time Infrastructure: Decomposition of RMI Latency
    25. 25. Admission Control Policy for Components <ul><li>Utilization-based admission feasibility tests </li></ul><ul><ul><li>Check required utilization demands of migrating components </li></ul></ul><ul><ul><ul><li>Single resource </li></ul></ul></ul><ul><ul><li>Assign real-time properties to each remote method </li></ul></ul><ul><ul><ul><li>Worst case execution time </li></ul></ul></ul><ul><ul><ul><li>Utilization </li></ul></ul></ul>
    26. 26. Motivation & Introduction: What is Real-Time? <ul><li>Being Fast as much as possible? </li></ul><ul><li>Meeting deadlines! </li></ul><ul><ul><li>How? </li></ul></ul><ul><li>Hard real-time vs. soft real-time systems </li></ul><ul><li>Applications: job scheduling, packet scheduling, etc.. </li></ul>
    27. 27. Typical Real-Time Systems <ul><li>Admission Control </li></ul><ul><ul><li>Schedulability Test </li></ul></ul><ul><li>Client Request </li></ul><ul><ul><li>Timing constraints: release time, execution time, deadline </li></ul></ul><ul><li>(Job) Scheduling </li></ul><ul><ul><li>EDF, priority? </li></ul></ul><ul><li>Real-Time Tasks: </li></ul><ul><ul><li>Periodic, Aperiodic, Sporadic </li></ul></ul><ul><li>Overload? </li></ul><ul><ul><li>Out of scope! </li></ul></ul>
    28. 28. Background: Component-Based Design <ul><li>Component-based technology </li></ul><ul><ul><li>Increasing popularity in software systems development </li></ul></ul><ul><ul><li>Modularity allows to easily build and test parts of large system </li></ul></ul><ul><ul><li>Reusability enables realization of new software systems as assemblies of existing software components </li></ul></ul>
    29. 29. Background: Characteristics of Components <ul><li>Opaqueness </li></ul><ul><ul><li>Do not make internal state available to component’s environment </li></ul></ul><ul><li>Composability </li></ul><ul><ul><li>Provide well-defined services either to a client or to other components </li></ul></ul><ul><li>Isolation </li></ul><ul><ul><li>The behavior of a component does not depend on the state, even in presence of another component </li></ul></ul><ul><li>Isolation requirement </li></ul><ul><ul><li>D ecoupling of the component implementation from the communication infrastructure </li></ul></ul><ul><ul><li>Given sufficiently effective communication infrastructure, components can be decoupled from their execution platform </li></ul></ul>
    30. 30. <ul><li>Models for distributed systems </li></ul><ul><ul><li>Control flow of remote method invocation </li></ul></ul><ul><ul><li>Point-to-point flow of data through object serialization </li></ul></ul><ul><ul><li>Message passing mechanism </li></ul></ul><ul><li>The Distributed Real-Time Specification for Java (DRTSJ) </li></ul><ul><ul><li>Extend the RTSJ for real-time RMI </li></ul></ul><ul><ul><li>Distributed thread model </li></ul></ul><ul><ul><ul><li>System-wide ID </li></ul></ul></ul><ul><ul><ul><li>Transparent propagation of real-time properties over execution environments </li></ul></ul></ul><ul><ul><li>Provide predictability of end-to-end timeliness in distributed real-time systems </li></ul></ul><ul><li>The DRTSJ under development </li></ul><ul><ul><li>No consideration for sporadic real-time tasks of real-time Java RMI </li></ul></ul><ul><ul><li>Non-server-centric execution environment </li></ul></ul>Real-Time Infrastructure: Java for Distributed Real-Time Systems
    31. 31. <ul><li>Three layers to implement transparent remote method invocations </li></ul><ul><ul><li>The stub layer </li></ul></ul><ul><ul><ul><li>A proxy for client side </li></ul></ul></ul><ul><ul><ul><li>Stub classes generated by rmic, RMI compiler </li></ul></ul></ul><ul><ul><ul><li>Marshall and unmarshall parameters and returned values </li></ul></ul></ul><ul><ul><li>The remote reference layer </li></ul></ul><ul><ul><ul><li>Support semantics of reference and invocation (unicast, multicast) </li></ul></ul></ul><ul><ul><ul><li>Translate between local and remote object references using remote object tables </li></ul></ul></ul><ul><ul><li>The transport layer </li></ul></ul><ul><ul><ul><li>Establish connections to remote address spaces by using TCP connection related classes </li></ul></ul></ul>Real-Time Infrastructure: Sun’s Java RMI Implementation
    32. 32. <ul><li>The association of the RTSJ javax.realtime.RealtimeThread class </li></ul><ul><ul><li>sun.rmi.transport.RMIThreadAction class </li></ul></ul><ul><ul><li> class </li></ul></ul><ul><ul><ul><li>javax.realtime.AperiodicParameters class </li></ul></ul></ul><ul><ul><ul><li>Workload, deadline, overrun handler, deadline miss handler </li></ul></ul></ul><ul><ul><ul><li>Unknown real-time properties for requested up-call </li></ul></ul></ul><ul><ul><li>Initially assign highest priority to avoid priority inversion </li></ul></ul><ul><li>The Deadline-driven Earliest Deadline First (EDF) scheduling </li></ul>Real-Time Infrastructure: A Solution for Creation of Real-Time Worker Threads for RMI
    33. 33. <ul><li>Create real-time Java threads </li></ul><ul><ul><li>Real-time worker threads for handling client requests </li></ul></ul><ul><ul><li>Schedule the worker threads to meet their real-time properties </li></ul></ul><ul><li>Propagation of real-time timing constraints between client and server </li></ul><ul><ul><li>Guarantee to meet deadline of client’s real-time applications </li></ul></ul><ul><li>Provide real-time guarantees for sporadic tasks </li></ul><ul><ul><li>Aperiodic arrivals of client requests </li></ul></ul>Challenges for Real-Time RMI
    34. 34. <ul><li>A server-centric execution environment </li></ul><ul><ul><li>A server declared model for real-time properties </li></ul></ul><ul><ul><li>Isolation in real-time domain </li></ul></ul><ul><ul><ul><li>Save network bandwidth for delivering and inheriting real-time properties between client and server </li></ul></ul></ul><ul><ul><ul><li>Effective admission negotiation for migrating components by using utilization-based admission control </li></ul></ul></ul>Real-Time Infrastructure: A Solution for Propagating Real-Time Constraints Between Client and Server