Safe and Efficient Hardware Specialization of Java Applications

Total Page:16

File Type:pdf, Size:1020Kb

Safe and Efficient Hardware Specialization of Java Applications Safe and Efficient Hardware Specialization of Java Applications Matt Welsh Computer Science Division University of California, Berkeley Berkeley, CA 94720-1776 USA [email protected] Abstract take full advantage of these interfaces, instead fo- cusing on the other aspects of performance, such as Providing Java applications with access to low-level compilation [18], garbage collection [1], and thread system resources, including fast network and I/O inter- performance [2]. faces, requires functionality not provided by the Java Traditionally, Java applications make use of low- Virtual Machine instruction set. Currently, Java appli- level system functionality through the use of native cations obtain this functionality by executing code writ- ten in a lower-level language, such as C, through a native methods, which are written in a language such as C. method interface. However, the overhead of this inter- To bind native method code to the Java application, face can be very high, and executing arbitrary native a native method interface is used, which has been code raises serious protection and portability concerns. standardized across most JVMs as Sun Microsys- Jaguar [37] provides Java applications with efficient tems' Java Native Interface [29]. However, the use of access to hardware resources through a bytecode spe- native methods raises two important concerns. The cialization technique which transforms Java bytecode first is performance: the cost of traversing the na- sequences to make use of inlined Jaguar bytecode which tive method interface can be quite high, especially implements low-level functionality. Jaguar bytecode is when a large amount of data must be transferred portable and type-exact, making it both safer and more across the Java-native code boundary. The second efficient than native methods. Jaguar requires that the is safety: invoking arbitrary native code from a Java target JVM or compiler recognizes Jaguar bytecode, application effectively negates the protection guar- which is a superset of the Java bytecode instruction set. antees of the Java Virtual Machine. These two prob- We describe two implementations of Jaguar: one based lems conflate, as programmers tend to write more on a static Java compiler, and the other which uses a application code in the native language to amortize standard JVM coupled with a Jaguar-enabled just-in- the cost of crossing the native interface. time compiler. The JIT compiler applies code patches We have developed a system called Jaguar [37] to the original Java bytecode, stored in the form of an- which provides applications with efficient and safe notations in the Java class file. We demonstrate that access to low-level system resources. This is accom- Jaguar-specialized Java applications perform as well as plished through a bytecode specialization technique C for a set of communication benchmarks, and that the in which certain Java bytecode sequences are trans- code patching technique involves minimal compile-time lated to low-level code which is capable of perform- overhead. ing functions not allowed by the JVM, such as direct memory access. Because this low-level code is in- lined into the Java application at compile time, the 1 Introduction overhead of the native interface is avoided. Also, aggressive optimizations can be performed on the Java [14] is becoming increasingly popular for combined application and inlined Jaguar code. large-scale server applications, including Internet Our original prototype of Jaguar, described services [27, 34], databases [16], and parallel pro- in [37], made use of a Java just-in-time (JIT) com- cessing [40, 24]. To obtain high performance, these piler which recognized certain bytecode sequences applications need to make use of specialized hard- and translated them to x86 machine code directly. ware and O/S interfaces, such as fast cluster net- This approach is both non-portable and error-prone, works [32], asynchronous I/O [23], and raw disk ac- requiring that the machine code sequences be tai- cess [17]. To date, few Java systems have striven to lored for the particular combination of JVM, JIT, and machine architecture. It also requires non- usually have special requirements for buffer alloca- trivial changes to the JIT compiler to recognize and tion. However, this requirement runs counter to the translate Java bytecode sequences. existing Java model in which all objects and arrays This paper presents a new design based on trans- are allocated from a single heap, managed by the lating Java bytecode to Jaguar bytecode, which is a JVM's garbage collector. superset of the Java instruction set. Jaguar byte- Native methods are the traditional mechanism code is used to represent low-level operations oth- by which these operations are implemented in Java. erwise unsupported by the JVM. Jaguar bytecode Native methods permit the binding of arbitrary contains two additional instructions | peek and code written in a lower-level language (such as C) poke | which are used to perform direct memory to the Java application. Apart from raising serious access. Application programmers are not permit- protection and safety concerns, native methods are ted to make use of these instructions; rather, they not well-suited for providing fine-grained, efficient are restricted to use within Java-to-Jaguar trans- access to system resources. As we demonstrated lation rules. Because Jaguar bytecode is portable, in [37], the Java Native Interface itself imposes a type-exact, and inlined directly into the Java appli- large performance penalty, making them suitable cation, it is both safer and more efficient than using only for relatively long operations which pass only native methods for low-level operations. a small amount of data across the Java-native code We present two implementations of Jaguar based boundary. Furthermore, native methods limit ex- upon this design. The first makes use of a static pressiveness, as native code can only be bound to Java compiler to translate Jaguar bytecode to ma- method invocation. Field access, operators, and chine code. The second uses a modified JIT com- other Java operations cannot hook into the native piler which applies a \patch" to produce Jaguar code interface in any way. bytecode at compile time; this mechanism requires Several projects have attempted to bind fast Jaguar support only in the JIT compiler, and is communication layers into the Java environment fully compatible with unmodified JVMs. Both ap- through the use of native methods. Native method proaches relegate the (relatively expensive) trans- bindings to MPI [13] and PVM [33] have been de- lation from Java to Jaguar bytecode to a portable scribed, however, neither of these have considered front-end compiler, minimizing the complexity im- performance issues with respect to obtaining low la- pact on the back-end compilers. tency or high bandwidth. Little work has been done to support other types of I/O, although Sun Mi- crosystems is currently considering new APIs sup- 2 Motivation and Background porting asynchronous I/O interfaces [25]. Another approach is to extend the JVM or Much previous work has addressed the CPU- Java compiler to provide special support for certain related aspects of Java performance, including com- classes, such as communication buffers [9], bulk I/O pilation [28, 18, 11], thread synchronization [2], and interfaces [4], or JVM-internal data structures [8]. garbage collection [30]. However, Java I/O per- While this technique can provide a point solution formance remains largely uninvestigated. Imple- for particular communication and I/O interfaces, it menting high-performance communication and I/O lacks generality and requires that significant new in Java requires two classes of operations which functionality be incorporated into each JVM imple- the Java Virtual Machines does not directly sup- mentation. In addition, this functionality must it- port. The first is direct access to I/O device inter- self be trusted, much in the same that native meth- faces, including user-level network interfaces [35, 32] ods are. and raw disk I/O [17]. These mechanisms gener- The Jaguar approach is motivated by the obser- ally require the use of specialized system calls, or vation that the sort of low-level operations required even memory-mapped interfaces which circumvent for enabling high-performance communication and the O/S kernel entirely. The second is the use of I/O are generally short and easily expressed as a se- explicitly-managed memory regions. For example, quence of simple instructions (e.g., accessing a par- user-level network interfaces often require that com- ticular memory address, or invoking a system call). munication buffers be pinned to physical memory This suggests that such operations can be inlined for direct access by the NI hardware; these pages into the compiled Java bytecode stream for perfor- must be allocated from a special pool or pinned dy- mance, and that some form of static analysis could namically by the O/S or NI [36]. Memory-mapped be performed to guarantee safety or type-exactness. files are often used for I/O, and raw disk interfaces Jaguar is based on the concept of bytecode spe- Instruction Stack effect Java Machine <type>peek ..., int address Bytecode Jaguar Code ) Translation ..., <type> value Rules <type>poke ..., int address, <type> value ... ) Jaguar Front-end Bytecode Back-end Compiler Compiler Figure 2: Effect of Jaguar instructions on the Java stack. <type> represents one of the Java primitive types byte, short, int, or long. Figure 1: The design of the Jaguar system. A front-end compiler applies a set of translation rules to a Java class- file to produce a Jaguar classfile, which is then compiled to machine code. Our design is illustrated in Fig- by a back-end compiler to machine code. ure 1. An example of a Jaguar translation rule is to convert a call to a particular method (repre- cialization in which Java bytecode is specialized sented in Java bytecode using the invokevirtual, at compile time to perform low-level operations.
Recommended publications
  • Web Services Edge East Conference & Expo Featuring FREE Tutorials, Training Sessions, Case Studies and Exposition
    JAVA & LINUX FOCUS ISSUE TM Java COM Conference: January 21-24, 2003 Expo: January 22-24, 2003 www.linuxworldexpo.com The Javits Center New York, NY see details on page 55 From the Editor Alan Williamson pg. 5 Java & Linux A Marriage Made in Heaven pg. 6 TCO for Linux Linux Fundamentals: Tools of the Trade Mike McCallister ...and J2EE Projects pg. 8 Programming Java in Linux – a basic tour $40010 60 Linux Vendors Life Is About Choices pg. 26 Feature: Managing HttpSession Objects2003 SAVEBrian A. Russell 8 PAGE CONFERENCE Create a well-designed session for a better Web appEAST INSERT PAGE18 63 Career Opportunities Bill Baloglu & Billy Palmieri DGE pg. 72 Integration: PackagingE Java Applications Ian McFarland for OS X Have great looking double-clickable applications 28 Java News ERVICES pg. 60 S EB Specifications: JCP Expert Group Jim Van Peursem JDJ-IN ExcerptsW Experiences – JSR-118 An inside look at the process 42 SPECIALpg. 61 INTERNATIONAL WEB SERVICES CONFERENCE & EXPO Letters to the Editor Feature: The New PDA Profile Jim Keogh OFFER!pg. 62 The right tool for J2ME developers 46 RETAILERS PLEASE DISPLAY UNTIL MARCH 31, 2003 Product Review: exe4j Jan Boesenberg by ej-technologies – a solid piece of software 56 Interview: JDJ Asks ...Sun on Java An exclusive chance to find out what’s going on at Sun 58 SYS -CON Blair Wyman MEDIA Cubist Threads: ‘(Frozen)’ A snow-packed Wyoming highway adventure 74 Everybody’s focused on exposing applications as Web services while letting someone else figure out how to connect them. We’re that someone else.
    [Show full text]
  • Jaké Je to Vyvíjet Prekladace?
    Jak to zacalo?ˇ What’s GNU? Gnu’s Not Unix! AMD64 port a SUSE GCC dnes Jaké je to vyvíjet prekladaˇ ce?ˇ Jan Hubickaˇ Katedra aplikované matematiky Filosofické problémy informatiky Jak to zacalo?ˇ What’s GNU? Gnu’s Not Unix! AMD64 port a SUSE GCC dnes Co je GCC GNU Compiler collection: • Prekladaˇ cˇ C, C++, obj-C, obj-C++, Fortranu, Ady, Go,. • Podporující více než 50 procesor˚ua nekolikˇ set target˚u(kombinací procesor+OS) • Vyvjený od 80. let jako jeden ze základních balík˚uGNU projektu • První verze vydaná v roce 1987 • Verze 8 vyjde tento týden? • 10m rádek,ˇ cca 100-150 aktivních vývojár˚u,odhademˇ 2000 clovˇ ekoletˇ Hacker na MIT od 1971. V záríˇ 1983 oznamuje GNU operating system. 1984 ochází a venujeˇ se GNU projektu. Zacalˇ vyvíjet základní nástroje Emacs, GCC, GDB, make, . Jak to zacalo?ˇ What’s GNU? Gnu’s Not Unix! AMD64 port a SUSE GCC dnes Richard Mathew Stallman (RMS) vs Xerox 9700 Hacker na MIT od 1971. V záríˇ 1983 oznamuje GNU operating system. 1984 ochází a venujeˇ se GNU projektu. Zacalˇ vyvíjet základní nástroje Emacs, GCC, GDB, make, . Jak to zacalo?ˇ What’s GNU? Gnu’s Not Unix! AMD64 port a SUSE GCC dnes Richard Mathew Stallman (RMS) vs Xerox 9700 Jak to zacalo?ˇ What’s GNU? Gnu’s Not Unix! AMD64 port a SUSE GCC dnes Richard Mathew Stallman (RMS) vs Xerox 9700 Hacker na MIT od 1971. V záríˇ 1983 oznamuje GNU operating system. 1984 ochází a venujeˇ se GNU projektu. Zacalˇ vyvíjet základní nástroje Emacs, GCC, GDB, make, .
    [Show full text]
  • Download Jdk 1.3.1 for Linux
    Download jdk 1.3.1 for linux click here to download For production use Oracle recommends downloading the latest JDK and JRE versions and allowing . RPM in self-extracting file, MB, www.doorway.ru .. Java(TM) 2 SDK, Standard Edition Documentation The officially supported Linux platform for J2SDK is Red Hat Linux , and VMs in J2SDK , you must download and install glibcirpm file. The officially supported Linux platform for JRE is Red Hat Linux , and to get Java runtime environment to work on Debian , they had to install. Java(TM) 2 SDK, Standard Edition Documentation You must accept the Java SE License Agreement to download this software. Accept License. Download. Java EE 6 SDK Update 2 (with JDK 6 U26), MB, www.doorway.ru Java EE 6 SDK Update 2 (with JDK 6 U26), MB. JavaFX SDK, MB, javafx_sdk-1_3_1-linux-izip must accept the Oracle Binary Code License Agreement for Java SE to download this software. Old Version of Java Runtime Environment Website. www.doorway.ru Developer. Oracle Corporation. Selected Version. Java Runtime Environment. The SDK v kit is available for Red Hat Linux® , and SuSE® , , Although this error will not affect most Java programs, you can download a. Can anyone please point me to a location from where I can download IBM JDK and JRE Thank you for the help. -Rahul. Log in to. www.doorway.ru Sun JRE (Linux Sun Java 2 Runtime Environment _08 Sun JRE (Linux Production Release) _01a. java bundles, java budles for JBoss AS, Tomcat M, , LGPL, mod_clusterFinal Downloads: 0. linux-x86_64 mod_cluster binaries.
    [Show full text]
  • Ambience Project
    $PELHQFH3URMHFW ³)LQGD0HHWLQJ´9LGHR (GLWRU3DXO6LPRQV &R$XWKRUV<DFLQH*KDPUL'RXGDQH 3KLOLSV5HVHDUFK/DERUDWRULHV5HGKLOO 6LGL0RKDPPHG6HQRXFL)DULG%DFKLUL $QHOLVH0XQDUHWWR-RXNR.DDVLOD SDXOVLPRQV#SKLOLSVFRP *ZHQGDO/H*UDQG ,VDEHOOH'HPHXUH $%675$&7 updates with reassuring messages until he reaches This video demonstrates a highly integrated system his destination. for automatically registering, guiding and assisting Peter continues to use his PDA during the meeting to delegates of a conference. The delegate uses an exchange text messages with other participants, iPAQ to communicate with a conference server follow the agenda and make notes. At the end of the system that delivers a variety of services that use meeting, the participants move to a coffee area. fixed infrastructure to provide an ambient Anticipating that the network capacity will be more environment. The work was conducted as demo M1 of useful in the coffee area than the meeting rooms, the the Ambience European Project 2003. mobile robot routers are automatically moved to .H\ZRUGV ensure a seamless communication service. Ambience, ZigBee positioning, ad-hoc networking, robot routing, XML messaging, network monitoring. ,1752'8&7,21 A video is presented which illustrates the integration of a number of new technologies in an ambient environment. This will show for a conference delegate: x Automatic biometric registration x Route guidance to a place or person x Text messaging & file transfer to other delegates x Robot routing & ad-hoc networking to seamlessly extend network coverage )LJXUH,QWHUDFWLYHURXWHJXLGDQFH x Custom applications for meeting chairman The video presents a scenario that is designed to 6<67(029(59,(: demonstrate the features of this Ambient system. Figure 2 shows an overview of the system.
    [Show full text]
  • Android Cours 1 : Introduction `Aandroid / Android Studio
    Android Cours 1 : Introduction `aAndroid / Android Studio Damien MASSON [email protected] http://www.esiee.fr/~massond 21 f´evrier2017 R´ef´erences https://developer.android.com (Incontournable !) https://openclassrooms.com/courses/ creez-des-applications-pour-android/ Un tutoriel en fran¸caisassez complet et plut^ot`ajour... 2/52 Qu'est-ce qu'Android ? PME am´ericaine,Android Incorporated, cr´e´eeen 2003, rachet´eepar Google en 2005 OS lanc´een 2007 En 2015, Android est le syst`emed'exploitation mobile le plus utilis´edans le monde (>80%) 3/52 Qu'est-ce qu'Android ? Cinq couches distinctes : 1 le noyau Linux avec les pilotes ; 2 des biblioth`equeslogicielles telles que WebKit/Blink, OpenGL ES, SQLite ou FreeType ; 3 un environnement d'ex´ecutionet des biblioth`equespermettant d'ex´ecuterdes programmes pr´evuspour la plate-forme Java ; 4 un framework { kit de d´eveloppement d'applications ; 4/52 Android et la plateforme Java Jusqu'`asa version 4.4, Android comporte une machine virtuelle nomm´eeDalvik Le bytecode de Dalvik est diff´erentde celui de la machine virtuelle Java de Oracle (JVM) le processus de construction d'une application est diff´erent Code Java (.java) ! bytecode Java (.class/.jar) ! bytecode Dalvik (.dex) ! interpr´et´e L'ensemble de la biblioth`equestandard d'Android ressemble `a J2SE (Java Standard Edition) de la plateforme Java. La principale diff´erenceest que les biblioth`equesd'interface graphique AWT et Swing sont remplac´eespar des biblioth`equesd'Android. 5/52 Android Runtime (ART) A` partir de la version 5.0 (2014), l'environnement d'ex´ecution ART (Android RunTime) remplace la machine virtuelle Dalvik.
    [Show full text]
  • Open Source Trends – a Personal View
    Open Source Trends – A Personal View Dr Mark Little VP Engineering (JBoss)/Red Hat Ask ques(ons or rate the Speaker www.sli.do/openslava The Dark Ages? ● Before 1980’s heterogeneous environments encouraged code dissemination ● Personal computing grew through code sharing ● ZX80, Spectrum, BBC Model A/B, Commodore, … ● Licences? The 1980s ● Richard Stallman launches GNU Project in 1983 ● Free Software Foundation in 1986 ● GPL 1989 ● Rise of the internet and heterogeneous systems ● Helped by academic adoption ● Helped by many versions of Unix ● C and C++ adoption grows ● gcc begins ● Early thread packages, emacs/micro-emacs, … Linux ● 1987 saw Minix adoption in academic circles ● Not open source originally ● Trend was to have something at home similar to work ● Also for cheaper student equipment ● 1991 saw first Linux release ● Open source! ● Taken to heart by academic and research communities ● Huge contributor community ● Linux replaced Unix at the backend FreeBSD ● Open source BSD distribution ● Released in 1993 ● Large adoption ● Large contributor community ● Basis of Mac OS X! ● Macs rising on the desktop instead of Windows Enterprise open source round 1 ● 1990’s saw the rise of CORBA ● Limited by proprietary ORBs ● Orbix, Hardpack, Visibroker ● Open source helps ● OmniORB, ORBacus, TAO, JacORB ● Open source contributes to enterprise standards ● Much more experience based input ● Still not happening with many standards efforts The World Wide Web ● CERN httpd released as open source 1991 ● Huge adoption and kicked off e-commerce, global
    [Show full text]
  • Designing the Next Generation of Tools Using an Open Systems Approach: a Usability Study
    DOCUMENT RESUME ED 444 585 IR 020 241 AUTHOR Ahern, Terence C.; Jamison, Mark; Olivarez, Arturo TITLE Designing the Next Generation of Tools Using an Open Systems Approach: A Usability Study. PUB DATE 2000-00-00 NOTE 7p.; In: Society for Information Technology & Teacher Education International Conference: Proceedings of SITE 2000 (11th, San Diego, California, February 8-12, 2000). Volumes 1-3; see IR 020 112. Figures contain illegible type. PUB TYPE Reports Research (143)-- Speeches/Meeting Papers (150) EDRS PRICE MF01/PC01 Plus Postage. DESCRIPTORS *Computer Assisted Testing; Educational Technology; Higher Education; *Instructional Design; Instructional Effectiveness; Preservice Teacher Education; Student Attitudes; Student Surveys; Systems Approach; *Test Construction; Test Format; *World Wide Web IDENTIFIERS HTML; *Open Systems Theory; Technology Integration; *Usability; XML ABSTRACT This paper reports on the results of a usability study that investigated the suitability of using an open systems approach for developing an online assessment application. Issues examined included ease of use, security, effectiveness, and ease of maintenance. Participants were 68 preservice teachers taking a technology integration course. Students were administered a Web-based demographics survey, followed by an exam of 25 multiple choice questions. Results indicate that an open systems approach was a feasible way to design instructional tools. Data encapsulation using XML (Extensible Markup Language) was easily created, maintained,' and modified, allowing for a seamless interaction on the part of the faculty. The students reported in exit interviews that taking the exam was easy, and they liked the convenience of immediate scores. (Contains 11 references.) (MES) Reproductions supplied by EDRS are the best that can be made from the original document.
    [Show full text]
  • The 64-Bit Question: Page 1 of 6
    Computer Power User Article - The 64-Bit Question: Page 1 of 6 Subscribe Today | Contact Us | Re Home | Customer Service | Forums | Article Search | Product Reviews | Shop C Email This Print This The 64-Bit Question: View My Personal Library Spotlight Add To My Personal Library November 2003 • Vol.3 Issue 11 Page(s) 63-66 in print issue The 64-Bit Question: Are You Ready For The Athlon 64? Ladies and gentlemen, welcome to the Athlon 64 show. AMD's eighth-generation architecture, a hot topic since late 2000, is finally available in high-end server trim (Opteron), gaming-oriented enthusiast form (Athlon 64 FX), and in a toned-down, less expensive package (Athlon 64). All versions feature an integrated memory controller and the SSE2 (Streaming SIMD Extensions) support needed to contest Intel's dominance in content-creation applications, while the most powerful models support a 128-bit memory bus. Benchmarks indicate AMD may be on the verge of another blitzkrieg assault, the kind it executed in 1999 when the original Athlon materialized. And with Intel preparing its 90nm Prescott core, the end of 2003 promises to be a white-knuckle shootout. Paving the way for 64-bit computing has been a struggle for AMD, though. Timely as its launches may seem, the desktop Athlon 64 and server-based Opteron products were initially intended to appear early in 2001. Granted, the K8 micro-architecture gains its heritage from the K7 design before it, but the combination of 130nm manufacturing and innovative silicon-on-insulator enhancements has certainly affected the platform's readiness.
    [Show full text]
  • Java Ilovasi
    https://ru.m.wikipedia.org/wiki/Java-апплет Определить язык узбекский Java ilovasi Sahifaning joriy versiyasi hali tajribali ishtirokchilar tomonidan testdan o'tkazilmagan va 2018 yil 23-dekabr kuni sinovdan o'tgan versiyadan sezilarli farq qilishi mumkin; tekshirish uchun 1 o'zgartirish kerak . Tarjimaning sifatini tekshirish va maqolani Vikipediyaning uslubiy qoidalarigУa зmнoатsь k бelоtлirьisшhе Java ilovasi ko'pincha Java dasturlash tilida bayt kodi shaklida yozilgan dastur dasturi . Java dasturlari veb-brauzerida Java virtual mashinasi (JVM) yoki AppletViewer-da , ilovalarni sinash uchun mustaqil vositada ishlatiladi. Java ilovalari 1995 yilda Java tilining birinchi versiyasiga kiritildi. Java dasturlari odatda Java dasturlash tilida yoziladi, lekin ular Jython kabi Java bytecode-ga kiritilgan boshqa tillarda ham yozilishi mumkin. Appletni qo'llab-quvvatlash 11-versiyadan beri Java'dan olib tashlandi. Appletlar HTMLni yaratib bo'lmaydigan veb-ilovalar uchun interaktiv xususiyatlarni ta'minlash uchun ishlatiladi. Java bytecode platformasi mustaqil bo'lsa, Java ilovalari Microsoft Windows , UNIX , Apple Mac OS va GNU / Linux kabi ko'plab platformalarda brauzerlardan plaginlardan foydalanib ishlasa bo'ladi. Applet2app [1] kabi ochiq manba dasturlari dasturni mustaqil Java manba dasturlari dasturni mustaqil Java dasturlariga yoki Linux va Windows executable fayllariga aylantirish uchun ishlatilishi mumkin. Java Servlet ba'zan norasmiy ravishda server dasturiga nisbatan qiyoslanadi, lekin bu uning tilida, funksiyalarida va bu erda tasvirlangan appletlarning har bir xususiyatiga qarab farq qiladi. Texnik ma'lumotni Ko'pgina brauzerlarda Java ilovalari virtual maydonda ishlaydi va mahalliy ma'lumotlarga kirishga yo'l qo'ymaydi. Dastur kodi veb-serverdan yuklanadi va brauzer dasturni veb-sahifaga qo'shadi yoki o'z applet foydalanuvchi interfeysi y pp y y bilan yangi oyna ochadi.
    [Show full text]
  • ROWC) with CORBA and JMF
    Development of a Remote Object Webcam Controller (ROWC) with CORBA and JMF A Thesis submitted to the Graduate School University of Arkansas at Little Rock in partial fulfillment of requirements for the degree of MASTER OF SCIENCE in Computer Science in the Department of Computer Science of the Donaghey College of Information Science and Systems Engineering July 2002 Frank McCown BS, Harding University, Searcy, Arkansas, 1996 © Copyright 2002 Frank McCown All Rights Reserved Fair Use This thesis is protected by the Copyright Laws of the United States (Public Law 94-553, revised in 1976). Consistent with fair use as defined in the Copyright Laws, brief quotations from this material are allowed with proper acknowledgement. Use of this material for financial gain without the author’s express written permission is not allowed. Abstract The need for a low-cost, scalable, cross-platform, distributed system for performing visual surveillance prompted the development of the Remote Object Webcam Controller (ROWC). With a web cam and personal computer, a user can use ROWC to remotely monitor live video and archive video for later retrieval. This thesis describes the use of the Java™ Programming Language, Java Media Framework™ (JMF), both developed by Sun Microsystems, and the Object Management Group’s (OMG’s) Common Object Request Broker Architecture (CORBA) for constructing the ROWC system. A comparison of this system with other similar distributed systems is made, and several enhancements to the system are offered for future research. Our experience in building ROWC has uncovered some JMF bugs, but the combination of CORBA and JMF has been shown sufficient for producing a distributed video surveillance system that is portable, flexible, and extendable.
    [Show full text]
  • Athlon 64, Athlon 64 FX and Pentium 4 Extreme Edition
    Ace’s Hardware Athlon 64, Athlon 64 FX and Pentium 4 Extreme Edition Athlon 64, Athlon 64 FX and Pentium 4 Extreme Edition By Johan De Gelas – September 2003 The first 64-bit x86 CPU for the Windows desktop is here: the Athlon 64 FX and Athlon 64 have been launched and are available today. AMD's newest CPU has been improved where it matters the most: a much faster memory controller, a more intelligent branch predictor and a faster and larger L2-cache. AMD's ambitions for the Athlon 64 FX are very high, it is "simply the fastest desktop CPU, period!" But Intel isn't sitting still. Despite being a huge company, it is not slow on the draw. History shows that the whole Intel fleet can perform a U-turn at lightning speed, and this time is no exception. In a preemptive strike, Intel is launching the Pentium 4 Extreme Edition, precisely timed to spoil AMD's launch. Or is the new Pentium 4 with 2 MB L3 cache an Emergency Edition chip as some of our readers like to call it? Before we start, I would like to quickly discuss what you may expect from this review. Let us begin with the bad news: don't expect a lot of 64-bit benchmarks in Windows XP/64. At the moment, the number of 64-bit Windows applications is very limited, and all that was available to us were some benchmarks that AMD suggested and sent. We did not have a compiler available, so even developing and compiling our own benchmarks was essentially impossible.
    [Show full text]
  • Ubuntu:Feisty Ubuntu 7.04 (Feisty Fawn)
    Ubuntu:Feisty - http://ubuntuguide.org/wiki/Ubuntu:Feisty Supermicro 1U Twin™ 2x Intel® Xeon® based System in 1U. High-efficiency, Double Performance supermicro.com/DataCenterServer LinuxLIVE for Linux PCs Suspend-Resume, Sharing, Mobility and Re-Connect to Remote X Sessions www.starnet.com SSH Client for Windows EmTec's powerful SSH terminal offers amazing and unique features www.emtec.com/zoc Ubuntu:Feisty From Ubuntu 7.04 (Feisty Fawn) Português • - ﻗﻴﺪ ﻋﺮﺑﻲ -ﺍﻟﺘﺤﺮﻳﺮ 한국어 do Brasil • Português • বাংলা (Bengali) • Bulgarian • Català • 中文 (翻译中) • Česky • German • Español • 繁體中文 (翻譯中) • English • Français • Ελληνικά • Filipino • German • Hindi • Italiano • ລາວ; Nederlands • edit (http://ubuntuguide.org Languages Norsk • Polski• Lietuviškai• /index.php?title=Template:FeistyFawnLanguageBar& Română • Suomi • Türkçe • action=edit) Indonesian (http://wiki.ubuntu- id.org/PanduanUbuntu) • සිංහල • • ไทย • ښﺗﻮپ • ﻓﺎﺭﺳﯽעברית • Русский • Українська • Persian (http://wiki.hezardastan.org /FeistyGuide) • 日本語 (翻訳中); नेपाली • Srpski • Vietnamese • ﺍُﺭﺩﻭ This guide is currently maintained at the Linux Center (http://translate.google.com /translate?hl=en&ie=UTF-8&sl=auto&tl=en&u=http://linux.edu.lv/&prev=_t) of the University of Latvia (http://www.lu.lv/eng/) . Please help test and perfect this guide. To edit pages you need to register. 1 of 242 10/14/2011 02:47 PM Ubuntu:Feisty - http://ubuntuguide.org/wiki/Ubuntu:Feisty Introduction Ubuntu 7.04 (Feisty Fawn) was released on April 19th, 2007 and is no longer supported. It is recommended to upgrade to the current version of Ubuntu. Other Versions For all versions of Ubuntu, see the Main Page. Ubuntu 8.04 (Hardy Heron) is a LTS (Long Term Support) version, released on April 24, 2008, and will be supported with security updates for five years on the server and three years on the desktop.
    [Show full text]