Are distributed objects fast enough?
|
|
- Sharlene Hutchinson
- 5 years ago
- Views:
Transcription
1 Matjaz B. Juric, Ales Zivkovic, Ivan Rozman Are distributed objects fast enough? Java is becoming important for building real world, mission critical applications. Although Java is still not a perfect language, it is becoming more mature every day. We all know the advantages of Java, especially the write once, run anywhere approach, but we are also aware of the disadvantages. Performance issue is the most common reason for Java rarely use today. In spite of that, there are many large companies claiming they are developing their crucial business applications in Java. Modern applications are not monolithic programs, they are built of objects. Therefor developers need a glue for bringing all the pieces together and combine them into a functional application. Object location independence is an advantage that gives developers the ability to structure the application into multiple tiers. For building distributed applications in Java it is natural to choose Remote Method Invocation (RMI), but there is another possibility - CORBA. CORBA is a valuable alternative to RMI. We could describe CORBA as a superset of RMI, although both technologies are not compatible yet. Both CORBA and RMI allow remote method invocation independently of location, however CORBA is more than just an object request broker. It offers programming language independence and a rich set of object services and common facilities all the way to the business objects. There are multiple factors that can affect the decision. One of them is certainly the performance. To get an overview about the performance of RMI and CORBA we have done several measurements and experiments to simulate real world scenarios. We hope that the founding of our work will help you to get a clearer picture about both distributed object models. Testing method The goal was to measure the overhead which was introduced into method invocation by CORBA and RMI. Therefore we have developed several testing patterns and methods with different basic data types of parameters and return values. As a basis for performed tests we used an ATM (Automatic Teller Machine) application, developed for demonstration purposes for one of our banks. The invocation time was measured for six methods with different return types. The main idea was to investigate the influence of data types on performance. The significant code with methods and corresponding classes is shown in Listing 1. As you can see all the methods return just a value. We chose this approach to minimize the influence of time needed to execute the methods.
2 public class Atm { private long number; private boolean working=true; final public boolean Working() { return working; final public long getatmno() { return number; public class Card { private int number; final public int getnumber() { return number; public class Account { private String type; private float balance=0f; private double limit; final public float getbalance() { return balance; final public String gettype() { return type; final public double getlimit() { return limit; Listing 1: Methods, used for performance measurement The methods were invoked from an applet which had a panel for displaying results and a button for start. Time was measured with System.currentTimeMillis() method. It has returned time in milliseconds. To achieve more accurate results methods were invoked several times. In Listing 2 the skeleton of testing applet is shown. boolean is_working=false; my_account.setbalance((float)50f); for(int j=0;j<10;j++) { long starttime=system.currenttimemillis(); for (n=0;n<no_iter;n++) is_working=my_atm.working(); long stoptime=system.currenttimemillis();
3 tmessage.append("elapsed time "+(stoptime-starttime)+"\n"); Listing 2: Client applet To eliminate inaccuracy we have repeated all the measurements ten times and calculated the average values. To get an idea how the string size affected the performance, the method Account.getType() returned two different string sizes. First, the method returned a string with one character only. Then we repeated the test with a string of characters. All the test code was compiled and executed with Java Development Kit For testing CORBA's performance we chose Visigenic s VisiBroker for Java version 3.0. For local measurements and all server side tests we used Pentium II 233 MHz computer with 64 MB RAM and Windows NT 4.0 Workstation as operating system. At the client side we used 200 MHz Pentium computers with 64 MB RAM and the same operating system. Because the trend today is to use the applications over the Internet where the bandwidth is low, the computers were connected into a 10Mbps Ethernet network. Native Java performance In the first step we measured native Java performance for method invocation where we invoked all methods in a loop one million times to achieve the necessary accuracy. The results are in Table 1. We found results for data types integer, float, boolean and String (1 character) had identical values. Also the results for types long and double were practically the same. Data type Time in ns int 427,8 long 300,5 float 428,3 double 301,5 boolean 428,5 String (1) 428,6 Average 385,9 Table 1: Native Java performance Java RMI performance To measure the overhead distributed processing introduces into method invocation we reprogrammed tests using RMI. We defined interfaces, separated the functionality into a server process and changed the client applet to connect to the server objects. First we
4 started both, the server and the client processes on the same Pentium II computer. As expected, the results showed very substantial performance degradation. In native Java an invocation lasts about 400 nanosecond. When using RMI the time was not measured in nanoseconds but in milliseconds. Because of that, the client repeated all invocations one thousand times thus accurate times could be measured. We have repeated tests ten times and reported the average values. The results are shown in Table 2. Data type Time in ms int 1,87 long 1,95 float 1,83 double 1,96 boolean 1,82 String (1) 1,85 Average 1,88 String (10.000) 108,00 Table 2: Java RMI performance on a single computer The times for methods which returned results of types integer, long, float, double, boolean and String (1 character) were very close. A method invocation using RMI lasted around 1.9 milliseconds on the hardware configuration used for testing. When we increased the string size to characters, the response time grew to 108 ms. The performance degradation factor was slightly over 58. Secondly, the measurement was repeated with server and client on separate computers. The server was the Pentium II computer and the client a Pentium 200. As already stated, the computers were connected using a 10 Mbps Ethernet network. The results are shown in Table 3. Data type Time in ms Relative to local RMI int 2,08 11,4% long 2,13 9,0% float 2,09 14,2% double 2,14 9,3% boolean 2,08 14,2% String (1) 2,10 13,5% Average 2,10 11,9% String (10.000) 77,39-28,3% Table 3: Java RMI performance over the network
5 When the methods were invoked over the network, the time on average was 12% slower than when they were invoked on the same computer. This was true for all return values except for the string with characters. When returning such a string the performance was approximately 28% better over the network. The blame probably went to Java Virtual Machine, which appeared to be quite CPU intensive. In our opinion it is possible to show that using slower computers and method invocation over the network the measurement times will improve compared to local invocation. To get more real performances of a client server system we used eight computers for the same tests. In the next test we tried to figure out the performance degradation under load imposed on the system. We configured eight Pentium computers to run the client applet. For the server side we used the Pentium II computer. The client applets were running on all the client computers simultaneously. Each client invoked each test method one thousand times. All the test were repeated ten times to get an average value. The clients invoked methods without any delays. This did not coincide with typical user interaction, therefore we assumed that this load represented more than eight users. In the Table 4 the results and relative performance degradation are presented. Time in ms Data type PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7 PC 8 Avg Deg % int 9,16 8,88 8,68 8,00 8,54 7,94 8,81 8,59 8,58 312% long 8,76 7,62 7,44 6,91 9,32 8,38 7,72 7,76 7,99 275% float 7,16 8,06 6,64 8,10 7,45 7,90 7,80 7,59 7,59 263% double 7,22 8,25 7,19 7,35 7,67 8,58 7,56 7,74 7,70 260% boolean 8,36 7,85 8,91 8,58 8,47 8,14 8,45 8,11 8,36 302% String (1) 8,38 7,93 8,15 7,60 8,22 8,28 8,56 8,42 8,19 290% Average 8,17 8,10 7,84 7,76 8,28 8,20 8,15 8,04 8,07 284% String (10.000) 226,38 208,43 310,95 198,60 200,22 228,98 298,56 317,42 248,69 221% Table 4: Java RMI performance under eight client load It was determined that the average response time increased for 284% from slightly over 2 to about 8 milliseconds. A similar degradation occurred by string method with string size of characters. The degradation there was slightly smaller, from 77 to 250 milliseconds (about 220%). The results are graphically presented in Graph 1 and Graph 2. The first graph shows the response times for method invocations with different return types for a single computer scenario, a scenario with two and with eight client computers. This are performances a developer might expect when using methods with short return values.
6 50,0HWKRGLQYR DWLRQWLPH 5HVSRQVH WLPH LQ PLOOLVHFRQGV LQW ORQJ IORDW GRXEOH ERRO 6WULQJ FOLHQWV &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHUV &OLHQW DQG VHUYHU RQ WKH VDPH FRPSXWHU 0 HWKRG W\SH Graph 1: RMI method invocation time for simple return values In Graph 2 you can find the invocation times for methods with large return values. For comparison the graph also shows an average performance of methods with simple return values. Please note that the scales for both lines are different. In the graph you can see that the performance of large string method increased when we place the client and server on different computers. This is due to the CPU intensity of Java Virtual Machine. 50, 0HWKRG LQYRFDWLRQ WLPH 7LPHLQ PV &OLHQW DQG VHUYHU RQ RQH &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHU FRPSXWHUV FOLHQWV 0HWKRG ZLWK FRPSOH[ UHWXUQ YDOXH $YHUDJH PHWKRG ZLWK VLPSOH UHWXUQ YDOXH Graph 2: RMI method invocation time for large string method in comparison with average of simple methods.
7 CORBA performance CORBA can be considered a more mature technology than RMI. It has been around for years and there are numerous real world projects using it. CORBA is robust, scalable technology and its performances (especially in C++) are quite good. So it would be expected to get good results from CORBA-Java connection as well. Until now very little research has been done in this area. Therefor we decided to compare Java RMI performance with Java-CORBA. Numerous CORBA implementations exist today and most of them offer Java support. For the comparison we selected Visibroker for Java version 3.0 by Visigenic. It is one of the best CORBA implementations on the market and it has ORB bundled with Netscape Navigator 4.0. We adapted the tests described in Java RMI chapter because our goal was to make the Java RMI and CORBA results comparable. The first step in development of CORBA compliant applications was the definition of interfaces in IDL (Interface Definition Language). Because the return types of methods had been already defined in Java this types had to be mapped into IDL. The correct mapping is shown in Table 5. Java Type int long float double boolean java.lang.string IDL Type long long long float double boolean string Table 5: Type mappings The next step was the definition of interfaces and methods. In IDL we defined the same interfaces and methods as in Java RMI. The important parts of IDL definitions are shown in Listing 3. interface Atm { boolean Working(); long long getatmno(); ; interface Card { long getnumber(); ; interface Account { float getbalance();
8 ; string gettype(); double getlimit(); Listing 3: IDL definitions In both the client and the server code we made only CORBA-specific changes. The testing procedure was the same as when using Java RMI. Again all the measurements were repeated ten times and the applet at client side has reported average values. In the first column of Table 6 you can see the times where server objects and client applet were on the same Pentium II computer. In the second column the times are given where server and client are communicating over network. In the third column the difference in percentage is calculated. Data type Client and server on the same computer (times in ms) Client and server on different computers Difference int 2,20 2,31 5,0% long 2,21 2,32 5,0% float 2,20 2,27 3,2% double 2,25 2,29 1,8% boolean 2,02 2,23 10,4% String (1) 2,24 2,30 2,7% Average 2,19 2,29 4,6% String (10.000) 19,59 28,12 43,5% Table 6: CORBA performance with one client The average slowdown for using methods over network was smaller than 5%. Only the method which returned characters was slower for 43,5%. Our next test was to measure the performance using eight clients. The test was executed under same conditions as when testing Java RMI. Again, on eight client computers the applets were started simultaneously. The results are shown in Table 7. Data type PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7 PC 8 Avg Deg % int 8,36 8,18 6,72 7,09 7,87 7,32 7,59 8,60 7,72 234% long 9,08 8,82 6,36 7,23 7,81 6,55 7,23 7,47 7,57 226% float 6,51 7,45 7,32 7,75 6,92 7,89 7,51 7,50 7,36 224% double 6,39 6,77 7,87 7,04 6,92 8,21 9,54 6,76 7,44 225% boolean 7,79 7,75 7,91 8,05 8,24 9,76 8,04 7,16 8,09 263% String (1) 7,41 8,10 7,77 7,89 7,41 8,03 7,69 8,12 7,80 239% Average 7,59 7,84 7,32 7,51 7,53 7,96 7,94 7,60 7,66 235% String (10.000) 105,64 91,85 88,45 101,00 98,92 178,25 123,60 113,99 112,71 301% Table 7: CORBA performance under eight client load
9 On average it took 3,3 times longer to execute a method under load conditions, the execution times were around 7,7 instead of 2,3 milliseconds. Only the method which returned a large string executed 4 times longer. Rather than 28 it took more than 112 milliseconds to complete. The Graph 3 shows the response times for methods returning different types for all the three scenarios used for testing. The Graph 4 shows the average response time of tested methods compared to response time of large string method for all three scenarios. The scales for both lines are different. &25%$0HWKRGLQYR DWLRQWLPH 7LPH LQ PLOOLVHFRQGV LQW ORQJ IORDW GRXEOH ERRO 6WULQJ FOLHQWV &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHUV &OLHQW DQG VHUYHU RQ WKH VDPH FRPSXWHU 0HWKRG W\SH Graph 3: CORBA method invocation time for simple return values &25%$ 0HWKRG LQYRFDWLRQ WLPH 7LPH LQ PV &OLHQW DQG VHUYHU RQ RQH FRPSXWHU &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHUV FOLHQWV 0HWKRG ZLWK FRPSOH[ UHWXUQ YDOXH $YHUDJH PHWKRG ZLWK VLPSOH UHWXUQ YDOXH Graph 4: CORBA method invocation time for large string method compared to average of simple methods.
10 CORBA vs. RMI The results of tested performance were even more interesting when we compared RMI and CORBA. We could do this because the code used in both cases was the same. It differed only in the way the connection between the client and the server was established. The Graph 5 shows an average response time of CORBA and RMI in three different testing scenarios. $YHUDJHUHVSRQVH RPSDULVRQ 7LPH LQ PV &OLHQW DQG VHUYHU RQ WKH VDPH FRPSXWHU &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHUV FOLHQWV 50, &25%$ Graph 5: Average response time comparison between RMI and CORBA The fact that RMI was slightly faster on one computer and on separate client and server was not surprising. CORBA is much more complex than RMI is. We should not forget that CORBA supports different programming languages and has more layers. On the other hand the computers which we used for testing were quite fast. The deficits of Java Virtual Machine therefore were not so obvious. When the results under the load of eight clients were compared we found out that CORBA was faster. Still the difference was not significant. It is important to notice that the performance trade off by using CORBA was 235%. By using RMI on the other hand it was 284%. The assumption that CORBA is faster was confirmed when comparing responses by invoking a method which returned a character string. The Graph 6 shows that CORBA was faster in all the situations. Under load of eight clients CORBA was more than twice as fast as RMI. The difference was even bigger on one computer, where CORBA was five times faster.
11 /DUJH VWULQJ UHVSRQVH 7LPH LQ PV &OLHQW DQG VHUYHU RQ WKH VDPH FRPSXWHU &OLHQW DQG VHUYHU RQ GLIIHUHQW FRPSXWHUV FOLHQWV 50, &25%$ Graph 6: Large string response time comparison Conclusion The performance tests gave us a picture about method invocation times using different data types of different sizes. We saw that both distributed object architectures introduced large overhead in method invocation. Therefor a developers should have this in mind when developing distributed applications. They should pay a great deal of attention to object design and to communications between them. When applications are poorly designed and the communication between objects is too heavy the users will soon discover unacceptable performances and improving them will be difficult and time consuming. We also saw that on fast computers Java RMI performance was acceptable and in some cases comparable to CORBA. This was true especially when small amounts of information were transferred between objects. By evaluation of numbers we have to stress once again that the tested CORBA implementation Visibroker is not the only CORBA compliant ORB. According to some unexamined sources, mainly on the Internet, Visibroker is one of the best CORBA products available. To get a clearer picture how fast different CORBA products are we are already working on a separate comparisons. And who is the winner? Unfortunately it was not as easy to pick a winner as we hoped it would be. When the most important criteria was examined and that was the performance degradation under heavy client load then CORBA was the winner. CORBA s performance degradation was lower than RMI s. On the other hand it was once again proved that CORBA was a very complex product and this complexity was reflected in performance. This was why in simple cases (small client load, simple
12 return values) on fast computers RMI was faster. This result is also congruent with the goals of both architectures. In our opinion RMI is very useful for simple applications, where it can offer acceptable performances. When applications become more complex other reasons for choosing CORBA besides performance will have to be considered. Based on the announcements of JavaSoft, in the near future RMI will accept the IIOP protocol and both architectures will become compatible. As soon as this will happen we will not hesitate to make another performance comparison. Authors would like to thank Mr. M. Hericko, B. Brumen, T. Domajnko, S. Beloglavec and Ms. A. Marinsek for their help and useful suggestions by performance measurements.
Performance Comparison of CORBA and RMI
Abstract Performance Comparison of CORBA and RMI Matjaz B. Juric, Ivan Rozman, Marjan Hericko Institute of Informatics, Faculty of Electrical Engineering, Computer and Information Science, University of
More informationComparison of CORBA and Java RMI Based on Performance Analysis
Comparison of CORBA and Java RMI Based on Performance Analysis Matjaz B. Juric, Ales Zivkovic, Ivan Rozman Institute of Informatics, Faculty of Electrical Engineering, Computer and Information Science,
More informationJava 2 Remote Method Invocation Performance Analysis, Comparison and Optimization for RMI and RMI-IIOP
Java 2 Remote Method Invocation Performance Analysis, Comparison and Optimization for RMI and RMI-IIOP Matjaz B. Juric, Alan P. tevens, Ivan Rozman, Marjan Hericko Abstract Java and distributed object
More informationCORBA, RMI and RMI-IIOP Performance Analysis and Optimization
CORBA, RMI and RMI-IIOP Performance Analysis and Optimization Matjaz B. Juric, Ivan Rozman, Marjan Hericko, Tomaz Domajnko University of Maribor, Faculty of Electrical Engineering and Computer Science,
More informationJava 2 Remote Method Invocation Performance Analysis, Comparison and Optimization for RMI, RMI-IIOP, and IDL
Java 2 Remote Method Invocation Performance Analysis, Comparison and Optimization for RMI, RMI-IIOP, and IDL Matjaz B. Juric, Alan P. tevens, Ivan Rozman, Marjan Hericko Abstract Java and distributed object
More informationJava 2 Distributed Object Middleware Performance Analysis and Optimization
Java 2 Distributed Object Middleware Performance Analysis and Optimization Matjaz B. Juric*, Ivan Rozman*, imon Nash** *University of Maribor, FERI, Institute of Informatics, metanova 17, I-2000 Maribor
More informationOracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010
Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights
More informationIrbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems
Developing Enterprise Systems with CORBA and Java Integrated Technologies Safwan Al Salaimeh, Amer Abu Zaher Irbid National University, Irbid, Jordan ABSTRACT: The questions of corporate systems development
More information1. Introduction. 2. Performance Evaluation
Performance Evaluation and Optimization of Java 2 Distributed Object Middleware Matjaz B. Juric*, Ivan Rozman*, Marjan Hericko*, Simon Nash**, Alan Stevens** *University of Maribor, Institute of Informatics,
More information1 What is Java? 2 Java is platform independent 3 Applets can be distributed by WWW 4 Example of an applet 5 The Java Language 6 Java is secure 7 Java in four versions 8 Java standard library 9 Event handling
More informationTRW. Agent-Based Adaptive Computing for Ground Stations. Rodney Price, Ph.D. Stephen Dominic TRW Data Technologies Division.
Agent-Based Adaptive Computing for Ground Stations Rodney Price, Ph.D. Stephen Dominic Data Technologies Division February 1998 1 Target application Mission ground stations now in development Very large
More informationQuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment
Models Bringing Compaq NonStop Himalaya server reliability and transactional power to enterprise Java environments Compaq enables companies to combine the strengths of Java technology with the reliability
More informationSummer 2003 Lecture 18 07/09/03
Summer 2003 Lecture 18 07/09/03 NEW HOMEWORK Instruction Execution Times: The 8088 CPU is a synchronous machine that operates at a particular clock frequency. In the case of the original IBM PC, that clock
More informationAn Analysis of Object Orientated Methodologies in a Parallel Computing Environment
An Analysis of Object Orientated Methodologies in a Parallel Computing Environment Travis Frisinger Computer Science Department University of Wisconsin-Eau Claire Eau Claire, WI 54702 frisintm@uwec.edu
More informationAlgorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory II
Memory Performance of Algorithms CSE 32 Data Structures Lecture Algorithm Performance Factors Algorithm choices (asymptotic running time) O(n 2 ) or O(n log n) Data structure choices List or Arrays Language
More informationUNIT 4 CORBA 4/2/2013 Middleware 59
UNIT 4 CORBA 4/2/2013 Middleware 59 CORBA AN OBJECT ORIENTED RPC MECHANISM HELPS TO DEVELOP DISTRIBUTED SYTEMS IN DIFF. PLATFORMS OBJECTS WRITTEN IN DIFF., LANG, CAN BE CALLED BY OBJECTS WRITTEN IN ANOTHER
More informationAs related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope
HORB: Distributed Execution of Java Programs HIRANO Satoshi Electrotechnical Laboratory and RingServer Project 1-1-4 Umezono Tsukuba, 305 Japan hirano@etl.go.jp http://ring.etl.go.jp/openlab/horb/ Abstract.
More informationA Simulation: Improving Throughput and Reducing PCI Bus Traffic by. Caching Server Requests using a Network Processor with Memory
Shawn Koch Mark Doughty ELEC 525 4/23/02 A Simulation: Improving Throughput and Reducing PCI Bus Traffic by Caching Server Requests using a Network Processor with Memory 1 Motivation and Concept The goal
More informationDistributed Objects. Object-Oriented Application Development
Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming
More informationSystem types. Distributed systems
System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors
More informationPerformance Evaluation of Java And C++ Distributed Applications In A CORBA Environment
Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment Sanjay P. Ahuja Roger Eggen Cheryl Daucher Department of Computer and Information Sciences University of North Florida
More informationA Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach
A Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach Shridhar Diwan, Dennis Gannon Department of Computer Science Indiana University Bloomington,
More informationDistributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.
Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined
More informationThe Role of Performance
Orange Coast College Business Division Computer Science Department CS 116- Computer Architecture The Role of Performance What is performance? A set of metrics that allow us to compare two different hardware
More informationAchieving Architectural Design Concepts with Remote Method Invocations
Achieving Architectural Design Concepts with Remote Method Invocations L.ilteri ÖNEY E1305937 Computer Engineering Department - METU Dr.Semih ÇETN ABSTRACT Motivation to write this article is based on
More information1.264 Lecture 16. Legacy Middleware
1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network
More informationDistributed Virtual Reality Computation
Jeff Russell 4/15/05 Distributed Virtual Reality Computation Introduction Virtual Reality is generally understood today to mean the combination of digitally generated graphics, sound, and input. The goal
More informationAN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING
AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING DR. ROGER EGGEN Department of Computer and Information Sciences University of North Florida Jacksonville, Florida 32224 USA ree@unf.edu
More informationDistributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1
Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures
More informationMaximizing Memory Performance for ANSYS Simulations
Maximizing Memory Performance for ANSYS Simulations By Alex Pickard, 2018-11-19 Memory or RAM is an important aspect of configuring computers for high performance computing (HPC) simulation work. The performance
More informationAlgorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I
Memory Performance of Algorithms CSE 32 Data Structures Lecture Algorithm Performance Factors Algorithm choices (asymptotic running time) O(n 2 ) or O(n log n) Data structure choices List or Arrays Language
More informationEnabling Performance & Stress Test throughout the Application Lifecycle
Enabling Performance & Stress Test throughout the Application Lifecycle March 2010 Poor application performance costs companies millions of dollars and their reputation every year. The simple challenge
More informationA METHOD FOR INTEGRATING LEGACY SYSTEMS WITHIN DISTRIBUTED OBJECT ARCHITECTURE
A METHOD FOR INTEGRATING LEGACY SYSTEMS WITHIN DISTRIBUTED OBJECT ARCHITECTURE Matjaz B. Juric, Ivan Rozman, Marjan Hericko Institute of Informatics, University of Maribor, Faculty of Electrical Engineering,
More informationRIKA: Component Architectures
RIKA: Component Architectures Dr. Detlef Kreuz Telematik kreuz@tuhh.de TUHH - TELEMATIK Agenda Introduction What you should learn from this talk N-Tier applications Designing with components What is a
More informationIBM SecureWay On-Demand Server Version 2.0
Securely delivering personalized Web applications IBM On-Demand Server Version 2.0 Highlights Delivers personalized Web solutions on demand to anyone, anywhere using profile serving Provides industry-leading,
More informationPerformance. February 12, Howard Huang 1
Performance Today we ll try to answer several questions about performance. Why is performance important? How can you define performance more precisely? How do hardware and software design affect performance?
More informationAdvanced Lectures on knowledge Engineering
TI-25 Advanced Lectures on knowledge Engineering Client-Server & Distributed Objects Platform Department of Information & Computer Sciences, Saitama University B.H. Far (far@cit.ics.saitama-u.ac.jp) http://www.cit.ics.saitama-u.ac.jp/~far/lectures/ke2/ke2-06/
More informationPerformance comparison of DCOM, CORBA and Web service
Performance comparison of DCOM, CORBA and Web service SeongKi Kim School of Computer Science and Engineering Seoul National University, 56-1 Sinlim, Kwanak Seoul, Korea 151-742 Abstract - The distributed
More informationJazz: A Tool for Demand-Driven Structural Testing
Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania
More informationWebSphere Application Server Base Performance
WebSphere Application Server Base Performance ii WebSphere Application Server Base Performance Contents WebSphere Application Server Base Performance............. 1 Introduction to the WebSphere Application
More informationChapter 16. Layering a computing infrastructure
: Chapter 16 by David G. Messerschmitt Layering a computing infrastructure Applications Application components Middleware Operating system Network 2 1 Spanning layer Application Distributed object management
More informationUsing implicit fitness functions for genetic algorithm-based agent scheduling
Using implicit fitness functions for genetic algorithm-based agent scheduling Sankaran Prashanth, Daniel Andresen Department of Computing and Information Sciences Kansas State University Manhattan, KS
More informationLarge scale SPVC ATM network
Written by Paul Holland and Don Wells Large scale SPVC ATM network Introduction: Asynchronous Transfer Mode (ATM) Data Networks differ from Internet Protocol (IP) Data Networks in many ways, but one of
More informationTHE COMPLETE FIELD GUIDE TO THE WAN
THE COMPLETE FIELD GUIDE TO THE WAN People interested in setting up a wide-area network (WAN) often have very specific reasons for wanting to do so. WANs are specialized technological tools that deliver
More informationAN504: Memory Options and Performance on the Intel 955X Express Chip Set. John Beekley, VP Applications Engineering, Corsair Memory, Inc.
APPLICATIONS NOTE AN504: Memory Options and Performance on the Intel 955X Express Chip Set John Beekley, VP Applications Engineering, Corsair Memory, Inc. Introduction This white paper will examine memory
More informationAlpha Anywhere Standard Application Server
Alpha Anywhere Standard Application Server High Capacity Server Systems The standard Alpha Anywhere Application Server has adequate capacity for many web systems. However, Alpha Software recommends using
More informationRAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE
RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting
More informationWHITESTEIN. Agents in a J2EE World. Technologies. Stefan Brantschen. All rights reserved.
WHITESTEIN Technologies 1 Agents in a J2EE World Stefan Brantschen ttt.info.j2ee v1.6 2002-02-10 SBR Copyright 2002 by Whitestein Technologies AG, Switzerland Goal and Outline Goal Present how J2EE EJB
More informationCHAPTER. The Role of PL/SQL in Contemporary Development
CHAPTER 1 The Role of PL/SQL in Contemporary Development 4 Oracle PL/SQL Performance Tuning Tips & Techniques When building systems, it is critical to ensure that the systems will perform well. For example,
More information6.2 DATA DISTRIBUTION AND EXPERIMENT DETAILS
Chapter 6 Indexing Results 6. INTRODUCTION The generation of inverted indexes for text databases is a computationally intensive process that requires the exclusive use of processing resources for long
More informationMaximizing offload to ziip processors with DB2 9 for z/os native SQL stored procedures
Maximizing offload to ziip processors with DB2 9 for z/os native SQL stored procedures Richard Corrihons IBM Customer Center - PSSC Montpellier, France Introduction This document is based on what has been
More information1 Motivation for Improving Matrix Multiplication
CS170 Spring 2007 Lecture 7 Feb 6 1 Motivation for Improving Matrix Multiplication Now we will just consider the best way to implement the usual algorithm for matrix multiplication, the one that take 2n
More informationEfficient String Concatenation in Python
Efficient String Concatenation in Python An assessment of the performance of several methods Source : http://www.skymind.com/~ocrow/python_string/ Introduction Building long strings in the Python progamming
More informationPROFESSOR: DR.JALILI BY: MAHDI ESHAGHI
PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI 1 2 Overview Distributed OZ Java RMI CORBA IDL IDL VS C++ CORBA VS RMI 3 Distributed OZ Oz Language Multi paradigm language, strong support for compositionality and
More informationDistributed Computing
Distributed Computing 1 Why distributed systems: Benefits & Challenges The Sydney Olympic game system: see text page 29-30 Divide-and-conquer Interacting autonomous systems Concurrencies Transactions 2
More informationMean Value Analysis and Related Techniques
Mean Value Analysis and Related Techniques 34-1 Overview 1. Analysis of Open Queueing Networks 2. Mean-Value Analysis 3. Approximate MVA 4. Balanced Job Bounds 34-2 Analysis of Open Queueing Networks Used
More informationP-NET Management with Java based Components
P-NET Management with based Components Martin Wollschlaeger Abstract The introduction of based software components is a challenge for developers and users of fieldbus products. The paper shows concepts,
More informationWhy You Should Consider a Hardware Based Protocol Analyzer?
Why You Should Consider a Hardware Based Protocol Analyzer? Software-only protocol analyzers are limited to accessing network traffic through the utilization of mirroring. While this is the most convenient
More informationJava- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen
Project Reports Java- and CORBA-Based Network Management Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen Nokia Research Center Nokia developed the Distributed Computing Platform prototype to support
More informationMemory Management Outline. Operating Systems. Motivation. Paging Implementation. Accessing Invalid Pages. Performance of Demand Paging
Memory Management Outline Operating Systems Processes (done) Memory Management Basic (done) Paging (done) Virtual memory Virtual Memory (Chapter.) Motivation Logical address space larger than physical
More informationBenchmarking: Classic DSPs vs. Microcontrollers
Benchmarking: Classic DSPs vs. Microcontrollers Thomas STOLZE # ; Klaus-Dietrich KRAMER # ; Wolfgang FENGLER * # Department of Automation and Computer Science, Harz University Wernigerode Wernigerode,
More informationwww-inst.eecs.berkeley.edu/~cs61c/
CS61C Machine Structures Lecture 34 - Caches II 11/16/2007 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ 1 What to do on a write hit? Two Options: Write-through update
More informationDesign and Performance of an Asynchronous Method handling Mechanism for CORBA
Design and Performance of an Asynchronous Method handling Mechanism for CORBA Mayur Deshpande, Douglas C. Schmidt & Carlos O Ryan {deshpanm,schmidt,coryan}@uci.edu Department of Electrical & Computer Engineering
More informationCMPUT 695 Fall 2004 Assignment 2 Xelopes
CMPUT 695 Fall 2004 Assignment 2 Xelopes Paul Nalos, Ben Chu November 5, 2004 1 Introduction We evaluated Xelopes, a data mining library produced by prudsys 1. Xelopes is available for Java, C++, and CORBA
More informationAdvanced processor designs
Advanced processor designs We ve only scratched the surface of CPU design. Today we ll briefly introduce some of the big ideas and big words behind modern processors by looking at two example CPUs. The
More information!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?
Chapter 10: Virtual Memory Questions? CSCI [4 6] 730 Operating Systems Virtual Memory!! What is virtual memory and when is it useful?!! What is demand paging?!! When should pages in memory be replaced?!!
More informationMEMORY. Objectives. L10 Memory
MEMORY Reading: Chapter 6, except cache implementation details (6.4.1-6.4.6) and segmentation (6.5.5) https://en.wikipedia.org/wiki/probability 2 Objectives Understand the concepts and terminology of hierarchical
More informationTransparent Process Migration for Distributed Applications in a Beowulf Cluster
Transparent Process Migration for Distributed Applications in a Beowulf Cluster Mark Claypool and David Finkel Department of Computer Science Worcester Polytechnic Institute Worcester, MA 01609 USA {claypool
More informationModule 1 - Distributed System Architectures & Models
Module 1 - Distributed System Architectures & Models System Architecture Defines the structure of the system components identified functions of each component defined interrelationships and interactions
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationGUI framework communication via the WWW
GUI framework communication via the WWW Thomas Tilley, School of Information Technology, Griffith University, Australia 4215, T.Tilley@gu.edu.au Peter Eklund, School of Information Technology, Griffith
More informationArchitecture Tuning Study: the SimpleScalar Experience
Architecture Tuning Study: the SimpleScalar Experience Jianfeng Yang Yiqun Cao December 5, 2005 Abstract SimpleScalar is software toolset designed for modeling and simulation of processor performance.
More informationIntroduction to Distributed Systems (DS)
Introduction to Distributed Systems (DS) INF5040/9040 autumn 2009 lecturer: Frank Eliassen Frank Eliassen, Ifi/UiO 1 Outline What is a distributed system? Challenges and benefits of distributed system
More informationshort long double char octet struct Throughput in Mbps Sender Buffer size in KBytes short long double char octet struct
Motivation Optimizations for High Performance ORBs Douglas C. Schmidt (www.cs.wustl.edu/schmidt) Aniruddha S. Gokhale (www.cs.wustl.edu/gokhale) Washington University, St. Louis, USA. Typical state of
More informationMigrating IONA Orbix 3 Applications
Migrating IONA Orbix 3 Applications Contrasting the migration path of Orbix 3 applications to Orbix 2000 and to Borland Enterprise Server, VisiBroker Edition by Will Edwards, Senior Consultant, The New
More informationCHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 20 Dr. Kuo-pao Yang
CHAPTER 6 Memory 6.1 Memory 341 6.2 Types of Memory 341 6.3 The Memory Hierarchy 343 6.3.1 Locality of Reference 346 6.4 Cache Memory 347 6.4.1 Cache Mapping Schemes 349 6.4.2 Replacement Policies 365
More informationKernel Korner What's New in the 2.6 Scheduler
Kernel Korner What's New in the 2.6 Scheduler When large SMP systems started spending more time scheduling processes than running them, it was time for a change. by Rick Lindsley As work began on the 2.5
More informationReview : Pipelining. Memory Hierarchy
CS61C L11 Caches (1) CS61CL : Machine Structures Review : Pipelining The Big Picture Lecture #11 Caches 2009-07-29 Jeremy Huddleston!! Pipeline challenge is hazards "! Forwarding helps w/many data hazards
More informationDistributed Xbean Applications DOA 2000
Distributed Xbean Applications DOA 2000 Antwerp, Belgium Bruce Martin jguru Bruce Martin 1 Outline XML and distributed applications Xbeans defined Xbean channels Xbeans as Java Beans Example Xbeans XML
More informationNetwork Object in C++
Network Object in C++ Final Project of HonorOS Professor David Maziere Po-yen Huang (Dennis) Dong-rong Wen May 9, 2003 Table of Content Abstract...3 Introduction...3 Architecture...3 The idea...3 More
More informationiplanet Web Server, Enterprise Edition 4.0 and Stronghold Performance Comparison Analysis and Details Test Methodology WebBench 3.
iplanet Web Server, Enterprise Edition 4.0 and Stronghold 2.4.2 Performance Comparison Analysis and Details By Bruce Weiner (pdf version 192 KB) White Paper Contents Executive Summary Test Methodology
More informationiplanet Web Server, Enterprise Edition 4.0 and Stronghold Performance Comparison Analysis and Details Test Methodology
Page 1 of 23 iplanet Web Server, Enterprise Edition 4.0 and Stronghold 2.4.2 Performance Comparison Analysis and Details By Bruce Weiner (PDF version, 184 KB) February 7, 2000 Update to September 29,1999
More information12 Cache-Organization 1
12 Cache-Organization 1 Caches Memory, 64M, 500 cycles L1 cache 64K, 1 cycles 1-5% misses L2 cache 4M, 10 cycles 10-20% misses L3 cache 16M, 20 cycles Memory, 256MB, 500 cycles 2 Improving Miss Penalty
More informationBest Practices. Deploying Optim Performance Manager in large scale environments. IBM Optim Performance Manager Extended Edition V4.1.0.
IBM Optim Performance Manager Extended Edition V4.1.0.1 Best Practices Deploying Optim Performance Manager in large scale environments Ute Baumbach (bmb@de.ibm.com) Optim Performance Manager Development
More informationSchool of Computer and Information Science
School of Computer and Information Science CIS Research Placement Report Multiple threads in floating-point sort operations Name: Quang Do Date: 8/6/2012 Supervisor: Grant Wigley Abstract Despite the vast
More informationIntroduction to Distributed Systems (DS)
Introduction to Distributed Systems (DS) INF5040/9040 autumn 2014 lecturer: Frank Eliassen Frank Eliassen, Ifi/UiO 1 Outline Ø What is a distributed system? Ø Challenges and benefits of distributed systems
More informationDS 2009: middleware. David Evans
DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between
More informationAbstract. Testing Parameters. Introduction. Hardware Platform. Native System
Abstract In this paper, we address the latency issue in RT- XEN virtual machines that are available in Xen 4.5. Despite the advantages of applying virtualization to systems, the default credit scheduler
More informationChapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration
Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Sockets Defined as an endpoint for communcation Concatenation of IP
More informationRMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume XLIX, Number 1, 2004 RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON FLORIAN MIRCEA BOIAN AND RAREŞ FLORIN BOIAN Abstract. RMI (Remote Method Invocation)
More informationCALIFORNIA SOFTWARE LABS
Wrapping Jini Services in ActiveX CALIFORNIA SOFTWARE LABS R E A L I Z E Y O U R I D E A S California Software Labs 6800 Koll Center Parkway, Suite 100 Pleasanton CA 94566, USA. Phone (925) 249 3000 Fax
More informationDistributed Object Bridges and Java-based Object Mediator
Distributed Object Bridges and Java-based Object Mediator Konstantinos Raptis, Diomidis Spinellis, Sokratis Katsikas An important aspect of research on software objects, components, and component-based
More informationAzure database performance Azure performance measurements February 2017
dbwatch report 1-2017 Azure database performance Azure performance measurements February 2017 Marek Jablonski, CTO dbwatch AS Azure database performance Introduction The popular image of cloud services
More informationIntroduction to Web Services & SOA
References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that
More informationMEMORY/RESOURCE MANAGEMENT IN MULTICORE SYSTEMS
MEMORY/RESOURCE MANAGEMENT IN MULTICORE SYSTEMS INSTRUCTOR: Dr. MUHAMMAD SHAABAN PRESENTED BY: MOHIT SATHAWANE AKSHAY YEMBARWAR WHAT IS MULTICORE SYSTEMS? Multi-core processor architecture means placing
More informationBorland AppServer. Borland
Borland AppServer An Integrated Solution for Developing, Deploying, and Managing Distributed Multi-tier Applications. August 1998 Borland PAGE 1 Contents Introduction 4 Enterprises Shift to the Middle-tier
More informationKINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK
KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2014 Lecture 14
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2014 Lecture 14 LAST TIME! Examined several memory technologies: SRAM volatile memory cells built from transistors! Fast to use, larger memory cells (6+ transistors
More informationINTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV
INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.
More informationUNIFIED MANAGEMENT OF CONVERGED VOICE, DATA, AND VIDEO TECHNOLOGIES WITH AUTOMATED SUBSCRIBER AND SERVICE PROVISIONING
01010101000101010 10001010010001001 ZMS UNIFIED MANAGEMENT OF CONVERGED VOICE, DATA, AND VIDEO TECHNOLOGIES WITH AUTOMATED SUBSCRIBER AND SERVICE PROVISIONING SINGLE MANAGEMENT SYSTEM FOR THE ENTIRE LOCAL
More information