Visualizing and Analyzing Software Infrastructures Architecture

Total Page:16

File Type:pdf, Size:1020Kb

Visualizing and Analyzing Software Infrastructures Architecture featurearchitecture Visualizing and Analyzing Software Infrastructures Adam Buchsbaum, Yih-Farn Chen, Huale Huang, Eleftherios Koutsofios, John Mocenigo, and Anne Rogers, AT&T Labs—Research Michael Jankowsky, AT&T Business Services Spiros Mancoridis, Drexel University Large ompanies frequently need to redesign their software infrastruc- corporations tures in response to marketplace changes, but they must do so typically run carefully so that the new architecture will not disrupt existing op- complex C erations or increase operating costs unnecessarily. To support infrastructures these goals, system architects have long recognized the need to build a involving repository of information about all of their company’s systems and their in- hundreds or terfaces. Using this information, architects create system interface diagrams thousands of software systems. to help them study the existing architecture. ucts and service offerings. Since these queries As marketplaces At AT&T, these diagrams used to be created are unexpected and therefore the diagrams change, these and updated manually, published annually, not published, manually producing all these and distributed throughout the business units. diagrams could take a long time. This situa- infrastructures The process of manually drawing system tion would likely delay the reengineering deci- must be interface diagrams is tedious and error-prone: sion process. redesigned. The a simple diagram showing all the interconnec- We built a system called Enterprise Navi- Enterprise tions to a single system could take 30 minutes gator to let users make ad hoc queries about or more to draw, and the diagram often be- an enterprise software architecture and then Navigator system comes obsolete before it is published. More- automatically generate the corresponding lets architects over, it is not easy, through the draw-and- system interface diagram in real time on the visualize and publish mechanism, to get a system interface Web. Figure 1 shows a typical diagram EN analyze the system diagram in real time based on an ad hoc query generated for a particular ad hoc query. Each because the need for the diagram might not node represents a system, and each link rep- interconnections have been anticipated. For example, a man- resents an interface between the two con- of selected ager in charge of reengineering billing opera- nected systems. With EN, users can products and tions across the company might want to gen- services. erate diagrams that show the systems involved I study a system architecture’s evolution in bill calculations for more than 200 prod- over time, 62 IEEE SOFTWARE September/October 2001 0740-7459/01/$10.00 © 2001 IEEE I find substructures embedded in com- plex diagrams, and HYRUVK I determine which systems dominate in- formation flows. WMVL Reference data EN runs as a collection of stand-alone tools using a set of database visualization tools, EVH 1 called Ciao, or as an integrated Web serv- JYVT ice. This article focuses on the latter. CKSZ Our work builds on established research NIFKS QAMWHV in source code analysis, graph drawing, and MQWZQ 2 3 reverse engineering. Acacia and Chava are Customer ERR examples of reverse engineering tools for an- data QIL alyzing C, C++, and Java programs, respec- WKN tively. These systems store source code analy- DJU sis results in an entity–relationship database VUS PLHP so that users can extract software structure VEFCWN information through ad hoc queries without TDMI relying on customized parsers. Software engi- IHK ETTE neers often use visualization tools that em- TEPP COC ploy automatic graph-drawing algorithms4,5 NLAF (see the “Graph Drawing” sidebar) to help HGZ them comprehend the results of their analy- XTRYR ses. Many reverse engineering techniques, in- CSW HLJ XNTT cluding techniques for software clustering6 UGNLM 7 and dominator analysis, have underpinnings UHJ LWBQH based on optimization theory, statistics, and PROBM graph theory. AMK WIWMP To date, these techniques and tools have been applied mainly to individual software DQZ XGBW systems written in a variety of programming languages. The work described here takes the next step by showing how to model, query, analyze, and visualize the entire soft- Account info ZRC ware infrastructure of a large enterprise such as AT&T when the infrastructure in- QKF formation is available in a database. EANL Architecture Figure 2 presents a high-level view of XSI EN’s architecture. You interact with EN by means of a Java applet (as shown in Figure VKBT IPL 3). The applet establishes a two-way socket connection to a Java application running on SIPEKN a server. The Java application communi- cates with a database of software infra- QAXD structure specifics via a JDBC (Java Data- base Connectivity) connection (http://java. KPET sun.com/products/jdbc). The applet passes your visualization requests to the server ap- plication, which formulates an SQL query to retrieve the necessary information from Figure 1. A typical system interface diagram generated by the database. The server application then Enterprise Navigator. To protect proprietary information, we constructs a system interface graph and have replaced real system names with randomly generated opens a connection to a graph layout pro- ones and omitted certain interface names. September/October 2001 IEEE SOFTWARE 63 Graph Drawing Graph drawing addresses the problem of visualizing structural informa- tion by constructing geometric representations of abstract graphs and net- works. The automatic generation of graph drawings has important applica- The glue holding EN together is the Java tions in key technologies such as database design, software engineering, application on the server machine. The EN VLSI, network design, and visual interfaces in other domains. In any setting, components linked by the server application effective visualization should reveal interesting characteristics of data while include avoiding distractions and irrelevancy. Most objective properties for graph layout algorithms correspond to a few simple visual principles: I System Profile Database, an infrastruc- ture database; • Favor recognition and readability of individual objects. Identifying ob- I Grappa, a graph manipulation and dis- jects should be easy—for example, by giving them legible text labels or play tool; by choosing certain shapes, colors, or styles. This principle implies effi- I Bunch, a graph clustering tool; and cient use of available layout area. I Dominator, a graph dominator tool. • Avoid aliases, including edge crossings, sharp bends, and the intersec- tion of unrelated objects. • Control eye movement to help users trace edges and paths in diagrams System profile database and find sources and sinks. Short and straight or at least monotonic SPDB, the underlying database supplying edges are good. EN, contains key information about all sys- • Reveal patterns by emphasizing symmetry, parallelism, and regularity. tem entities and interfaces within the enter- Layouts having these characteristics are often easier to read and memo- prise of interest. In AT&T’s SPDB, EN pri- rize than ones lacking such organization. marily uses these three tables: Three families of graph layout algorithms have been particularly success- I The system table contains basic informa- ful: hierarchical layouts of trees and directed acyclic graphs, virtual physical tion about each system in the entire busi- layouts of undirected graphs (for example, spring model layouts), and or- ness enterprise. It also includes such en- thogonal grid layouts of planarized graphs. tities as work centers, network elements, Graphviz, a set of tools for Unix, Windows, and OSX, has components databases, and Web sites as well as ex- for the first two families of layouts just mentioned. Source code and binary ternal systems that participate in data executables for common platforms are available at www.research.att.com/ flows to or from other systems within sw/tools/graphviz. One of the Graphviz tools, called Dot, was used to cre- the enterprise. Information about a sys- ate most of Enterprise Navigator’s layouts. tem can include system type, name, Grappa is a Java graph-drawing package that simplifies the inclusion of owner, and status; business unit owner; graph display and manipulation capabilities in Java applications and ap- phase-in and phase-out dates; and its plets. Grappa does not have graph layout capabilities built into it, but inte- parent system. grates easily with tools such as Dot. Moreover, because Grappa stores graph I The interface table gives information structure information, it simplifies the coding of custom layout algorithms in about flows between systems and other Java. Grappa also enables questions about the graph structure to be an- entities described in the system table. swered easily (for instance, finding nodes that are directly connected to a This information can include interface given node). Grappa is available from the Graphviz Web site. It provided type, owner, and status; the “from” and the interactive graph displays we used in Enterprise Navigator. “to” systems; the business unit owner; and transmission media, frequency, and mode. I The mapping table links other entities such as products and services or business gram to position the graph’s elements auto- functions to systems in the system table. matically. When the server application fin- ishes the layout, it sends the graph using In constructing a system interface dia- Java object serialization (http://java. gram, EN constructs
Recommended publications
  • Paper Title (Use Style: Paper Title)
    Observing Access Control Policies Using Scrabble Games Suzana Ahmad Nasiroh Omar Faculty of Computer and Mathematical Sciences, Faculty of Computer and Mathematical Sciences UiTM Shah Alam UiTM Shah Alam Selangor Malaysia. Selangor Malaysia [email protected] [email protected] Siti Zaleha Zainal Abidin Stephan Reiff-Marganiec Faculty of Computer and Mathematical Sciences, Department of Computer Science, UiTM Shah Alam University of Leicester Selangor Malaysia. United Kingdom [email protected] [email protected] Abstract—Access control is concerned with the policies that users in collaborative environments. The implementation of manage data sharing activities. It is an important aspect of e- the policies is often not a trivial task in the development of an service in many application domains such as education, health application involving data sharing. The provision of access and business. However, there is limited support in most control policies mechanisms is the weaknesses of most existing programming languages and programming environments for programming language and development tools. implementing access control policies. High-level features, such as access control management policies are usually hard coded by In this paper, we attempt to identify a collection of useful skilled programmers, who are often scarce in many applications access control policies that are common in many data sharing such as e-services. In this paper, we present an abstraction of applications. We consider an abstraction of various access control management policies in the form of extended collaborative data sharing application in the form of variation scrabble in its rules. The needs of access control policies of rules of scrabble game.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Learning Standards for Career Development and Teaching
    DOCUMENT RESUME ED 400 435 CE 072 793 TITLE Learning Standards for Career Development and Occupational Studies. Revised Edition. INSTITUTION New York State Education Dept., Albany. PUB DATE Jul 96 NOTE 103p. PUB TYPE Guides Classroom Use Teaching Guides (For Teacher)(052) EDRS PRICE MF01/PC05 Plus Postage. DESCRIPTORS *Career Development; 'Career Education; Competence; Elementary Secondary Education; Employment Potential; *Evaluation Criteria; *Integrated Curriculum; Job Skills; Learning Activities; Mastery Learning; *Specifications; *Standards; Vocational Education IDENTIFIERS New York ABSTRACT This document contains four learning standards for career development and occupational studies at three levels: elementary, intermediate, and commencement. The first section consists of these four standards:(1) career development, (2) integrated learning,(3a) universal foundation skills, and (3b) career majors. The format for displaying the standardsincludes the following: key ideas regarding the standard; performance indicators describing expectations for students and designated for one of the three levels; and sample tasks suggesting evidence of progress toward the standard at a given level. Selected sample tasks are followed by an asterisk indicating their appropriateness forinclusion in a student's career plan. The second section provides samples of student work that are intended to begin the process of articulating the performance standards at each level of achievement. Each sample indicates level, context, performance indicators, and commentary.
    [Show full text]
  • Life and Writings of Juán De Valdés, Otherwise Valdesso, Spanish
    fS" '"%IIMiiiK'i«a?..;?L.l!"3" "e VaWes 3 1924 029 olln 228 370 DATE DUE DECQjpg Cornell University Library ^^,^4^€^^/ The original of tliis book is in tlie Cornell University Library. There are no known copyright restrictions in the United States on the use of the text. http://www.archive.org/details/cu31924029228370 LIFE AND WEITINGS OP JUAN DE VALDES. LONDON PHIKTED BY SPOTTISWOODE AND CO. NEW-STREET SQUARE LIFE AND WEITINGS OF JUAN DE YALDES, SPAl^ISH EEFOEMER IN THE SIXTEENTH CENTURY, BY BENJAMIN B?^'^FFEN. WITH ^ 'translation from tfte Italian OF HIS BY JOHN T. BETTS. TAUJESIO HISPANTTS SCarPTORE SUPEKBIAT ORBIS. Daniel Rogers. NON 'MoBTruBA.~&iulia Oomaga's Motto, p. 112. ^ LONDON: BEENAED QUAEITCH, 15 PICCADILLY. 1865. ix [_T/te Hghf of Tramlation and npprodiiHiov reserved^ *®6cse JWeUitatfons \xitxt UEStpeB to txtxtt tn tje goul t^E lobe ana fear of C&oii; anti tSeg ougfit to 6e realr, not in tfic Surrg of iustness, ftut in rettwmtnt; in fragments, get smtessiklB ; tje reaUer laging tjbem at once astfte loSen fie is foearg.' ANSELM. /]^36f;f .^^^^- "'^ I T!.3 "^^ Pre:i:lonc White Library PREFACE The book entitled The Hundred and Ten Considera- tions OF SiSNiOK John Valdesso, printed at Oxford in 1638, 4to., has become scarce. It is shut up in libraries, and should a stray copy come abroad, it is rarely to be obtained by him who seeks for it. This is not so much because the work is sought for by many, and largely known; for the principles it teaches are almost as much in advance of the present times as they were in the days of the 'sainted George Herbert' and Nicholas Ferrar, who first published it in English.
    [Show full text]
  • Scénarisation D'environnements Virtuels: Vers Un Équilibre Entre Contrôle, Cohérence Et Adaptabilité
    Scénarisation d’environnements virtuels : vers un équilibre entre contrôle, cohérence et adaptabilité Camille Barot To cite this version: Camille Barot. Scénarisation d’environnements virtuels : vers un équilibre entre contrôle, co- hérence et adaptabilité. Autre. Université de Technologie de Compiègne, 2014. Français. NNT : 2014COMP1615. tel-01130812 HAL Id: tel-01130812 https://tel.archives-ouvertes.fr/tel-01130812 Submitted on 12 Mar 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Par Camille BAROT Scénarisation d’environnements virtuels : vers un équilibre entre contrôle, cohérence et adaptabilité Thèse présentée pour l’obtention du grade de Docteur de l’UTC Soutenue le 24 février 2014 Spécialité : Technologies de l’Information et des Systèmes D1615 Thèse pour l’obtention du grade de Docteur de l’Université de Technologie de Compiègne Spécialité : Technologies de l’Information et des Systèmes Scénarisation d’environnements virtuels. Vers un équilibre entre contrôle, cohérence et adaptabilité. par Camille Barot Soutenue le 24 février 2014 devant un jury composé de : M. Ronan CHAMPAGNAT Maître de Conférences (HDR) Université de la Rochelle Rapporteur M. Stéphane DONIKIAN Directeur de Recherche (HDR) INRIA Rennes-Bretagne Rapporteur M. Stacy MARSELLA Professor Northeastern University Examinateur Mme Indira MOUTTAPA-THOUVENIN Enseignant-Chercheur (HDR) Université de Technologie de Compiègne Examinatrice M.
    [Show full text]
  • Wednesday, November 16, 11
    Wednesday, November 16, 11 <Insert Picture Here> Top 10 things to know about Java SE 7 Danny Coward Principal Engineer Wednesday, November 16, 11 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3 Wednesday, November 16, 11 Java SE 7 Top 10 1. Project Coin 4 Wednesday, November 16, 11 coin, n. A piece of small change coin, v. To create new language 5 Wednesday, November 16, 11 Evolving the Language From “Evolving the Java Language” - JavaOne 2005 • Java language principles – Reading is more important than writing – Code should be a joy to read – The language should not hide what is happening – Code should do what it seems to do – Simplicity matters – Every “good” feature adds more “bad” weight – Sometimes it is best to leave things out • One language: with the same meaning everywhere • No dialects • We will evolve the Java language • But cautiously, with a long term view • “first do no harm” 6 Wednesday, November 16, 11 Better Integer Literals • Integer literals int mask = 0b101010101010; aShort = (short)0b1010000101000101; long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L; • With underscores for clarity int mask = 0b1010_1010_1010;
    [Show full text]
  • Object-Oriented Programming in Javatm
    OBJECT-ORIENTED PROGRAMMING IN JAVATM Richard L. Halterman 2 March 2007 Draft © 2007 Richard L. Halterman. CC Some rights reserved. All the content of this document (including text, figures, and any other original works), unless otherwise noted, is licensed under a Creative Commons License. Attribution-NonCommercial-NoDerivs This document is free for non-commericial use with attribution and no derivatives. You are free to copy, distribute, and display this text under the following conditions: • BY: Attribution. You must attribute the work in the manner specified by the author or licensor. • $n Noncommercial. You may not use this work for commercial purposes. • = No Derivative Works. You may not alter, transform, or build upon this work. • For any reuse or distribution, you must make clear to others the license terms of this work. • Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. See http://www.creativecommons.org for more information. Java is a registered trademark of Sun Microsystems, Incorporated. DrJava Copyright © 2001-2003 was developed by the JavaPLT group at Rice University ([email protected]). Eclipse is an open-source project managed by the Eclipse Foundation (http://www.eclipse.org). 2 March 2007 Draft i Contents 1 The Context of Software Development 1 1.1 Software . .1 1.2 Development Tools . .2 1.3 The Java Development Environment . .5 1.4 The DrJava Development Environment . .9 1.5 Summary . 11 1.6 Exercises . 12 2 Values, Variables, and Types 14 2.1 Java Values in DrJava’s Interaction Pane .
    [Show full text]
  • Chapter 12 Simple Graphics Programming
    140 Chapter 12 Simple Graphics Programming Graphical applications are more appealing to users than text-based programs. When designed properly, graphical applications are more intuitive to use. From the developers perspective, graphical programs provide an ideal oppor- tunity to apply object-oriented programming concepts. Java provides a wealth of classes for building graphical user interfaces (GUIs). Because of the power and flexibility provided by these classes experienced developers can use them to create sophisticated graphical applications. On the other hand, also because of the power and flexibility of these graphical classes, writing even a simple graphics program can be daunting for those new to programming— especially those new to graphics programming. For those experienced in building GUIs, Java simplifies the process of developing good GUIs. Good GUIs are necessarily complex. Consider just two issues: • Graphical objects must be positioned in an attractive manner even when windows are resized or the application must run on both a PC (larger screen) and a PDA or cell phone (much smaller screen). Java graphical classes simplify the programmer’s job of laying out of screen elements within an application. • The user typically can provide input in several different ways: via mouse clicks, menu, dialog boxes, and keystrokes. The program often must be able to respond to input at any time, not at some predetermined place in the program’s execution. For example, when a statement calling nextInt() on a Scanner object (§ 8.3) is executed, the program halts and waits for the user’s input; however, in a graphical program the user may select any menu item at any time.
    [Show full text]
  • Visualizations in Vulnerability Management Marco Krebs
    Visualizations in Vulnerability Management Marco Krebs Technical Report RHUL–MA–2013– 8 01 May 2013 Information Security Group Royal Holloway, University of London Egham, Surrey TW20 0EX, United Kingdom www.ma.rhul.ac.uk/tech Title Visualizations in Vulnerability Management Version of this document 1.0 (released) Student Marco Krebs Student number 080401461 Date March 08, 2012 Supervisor William Rothwell Submitted as part of the requirements for the award of the MSc in Information Security of the University of London. ! Acknowledgements ACKNOWLEDGEMENTS! This is the place to express my thanks to all the people who have supported me over the last couple of months. However, I would like to single out a few names. For example, there is Marc Ruef with whom I touched base on the initial idea for this thesis during a lunch discussion. We share a similar experience on security testing and found out that we were both not fully satisfied with the way the results are provided to the client. Another thank you goes to Jan Monsch, the creator of DAVIX. He was able to draw my attention to the subject of visualization when we worked together as security analysts. Quite a few items of his personal library moved to my place for the duration of this thesis. I would also like to thank William Rothwell for becoming my project supervisor and for his ongoing support. He received the first status report in October last year and has been providing valuable feedback since. Few people have read the project report as many times as he did.
    [Show full text]
  • BI.Ue Coat Certified Proxysg Administrator Course
    BlueOCoat Secure and Acceerate Your Business a BI.ue Coat Certified ProxySG Administrator Course version 3.5.1 Student Textbook Accelerating Business Applications www. b u e coat .com BlueTouch Training Services — BCCPA Course v3.5.1 Contact Information Blue Coat Systems Inc. 410 North Mary Avenue Simnyvale, California 94085 North America (USA) Toll Free: +1.866.302.2628 (866.30.BCOAT) North America Direct (USA): +1.408.220.2200 Asia Pacific Rim (Hong Kong): +852.2166.8121 Europe, Middle East, and Africa (United Kingdom): +44 (0) 1276 854 100 [email protected] [email protected] www.bluecoat.com Copyright ©1999-2011 Blue Coat Systems, Inc. All rights reserved worldwide. No part of this document may be reproduced by any means nor translated to any electronic medium without the written consent of Blue Coat Systems, Inc. Specifications are subject to change without notice. Information contained in this document is believed to be accurate and reliable, however, Blue Coat Systems, Inc. assumes no responsibility for its use. Blue Coat, ProxySG, PacketShaper, CacheFlow, IntelligenceCenter and BlueTouch are registered trademarks of Blue Coat Systems, Inc. in the U.S. and worldwide. All other trademarks mentioned in this document are the property of their respective owners. July 2011 r Table of Contents Course Introduction .1 Chapter 1: Blue Coat Product Family 3 Chapter 2: ProxySG Fundamentals 29 Chapter 3: ProxySG Deployment 37 Chapter 4: ProxySG Licensing 53 Chapter 5: ProxySG Initial Setup 63 Chapter 6: ProxySG Management Console
    [Show full text]
  • Y(X,E)=Y, *>»(*) + Vow'x + 0(Ear)' (1-7)
    Methods and Applications of Analysis © 1995 International Press 2 (2) 1995, pp. 212-221 ISSN 1073-2772 ASYMPTOTIC SOLUTION TO A CLASS OF SINGULARLY PERTURBED VOLTERRA INTEGRAL EQUATIONS L. A. Skinner ABSTRACT. A uniformly valid asymptotic expansion for the solution to a class of singularly perturbed Volterra integral equations displaying exponential boundary layer behavior is established. Certain quasilinear ordinary differential equations are a noted special case, and a model for population growth with attrition is briefly discussed. 1. Introduction Let /(a;, e) E C^QO, 1] x [0,1]) and k(x, t, e, y) 6 C^QO, 1] x [0, x] x [0,1] x [a, 6]), where (a, b) contains the derivative /e(0,0), and assume /(0,0) = 0. We are interested in the asymptotic behavior as e —> 0+ of the solution to the Volterra integral equation €y(x,e)+ / k(x,t,e,y(t,e))dt = f(x,e). (1.1) Jo The assumption /(0, 0) = 0, which implies y(0, e) = /e(0, 0) + O(e), is nontrivial unless (1.1) is linear. If kyy(x,t,e,y) = 0, we can get /(0,0) = 0 by changing the unknown (if necessary) to ey(x^e). In the special case k(x, t, 6, y) = p(t, e)y + (x - t)[q(t, e, y) - pt(t, e)]y, (1.2) f(x, e) = ae+ tfe + ap(0, e)]x, (1.3) equation (1.1) is equivalent to the singularly perturbed initial-value problem ey" + p(x, e)yl + q{x, c, y) = 0, (1.4) 2/(0) = a, y,(0) = p.
    [Show full text]
  • Bytecodes Meet Combinators
    ! Bytecodes Meet Combinators John Rose Architect, Da Vinci Machine Project Sun Microsystems VMIL 2009: 3rd Workshop on Virtual Machines and Intermediate Languages (OOPSLA, Orlando, Florida October 25, 2009) http://cr.openjdk.java.net/~jrose/pres/200910-BcsMeetCmbs.pdf 1 Overview • The JVM is useful for more languages than Java • Bytecodes have been successful so far, but are showing some “pain points” • Composable “function pointers” fill in a key gap 2 3 “Java is slow because it is interpreted” • Early implementations of the JVM executed bytecode with an interpreter [slow] 4 “Java is fast because it runs on a VM” • Major breakthrough was the advent of “Just In Time” compilers [fast] > Compile from bytecode to machine code at runtime > Optimize using information available at runtime only • Simplifies static compilers > javac and ecj generate “dumb” bytecode and trust the JVM to optimize > Optimization is real... ...even if it is invisible 5 HotSpot optimizations compiler tactics language-specific techniques loop transformations delayed compilation class hierarchy analysis loop unrolling tiered compilation devirtualization loop peeling on-stack replacement symbolic constant propagation safepoint elimination delayed reoptimization autobox elimination iteration range splitting program dependence graph representation escape analysis range check elimination static single assignment representation lock elision loop vectorization proof-based techniques lock fusion global code shaping exact type inference de-reflection inlining (graph integration)
    [Show full text]