Visualizing and Analyzing Software Infrastructures Architecture
Total Page:16
File Type:pdf, Size:1020Kb
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