Core Java® Volume II—Advanced Features Tenth Edition This Page Intentionally Left Blank Core Java® Volume II—Advanced Features Tenth Edition

Total Page:16

File Type:pdf, Size:1020Kb

Core Java® Volume II—Advanced Features Tenth Edition This Page Intentionally Left Blank Core Java® Volume II—Advanced Features Tenth Edition Core Java® Volume II—Advanced Features Tenth Edition This page intentionally left blank Core Java® Volume II—Advanced Features Tenth Edition Cay S. Horstmann Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sydney • Hong Kong • Seoul • Singapore • Taipei • Tokyo The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the United States, please contact [email protected]. Visit us on the Web: informit.com/ph Library of Congress Catalog Number: 2016952666 Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 500 Oracle Parkway, Redwood Shores, CA 94065 Portions © 2017 Cay S. Horstmann All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights & Permissions Department, please visit www.pearsoned.com/permissions/. Oracle America Inc. does not make any representations or warranties as to the accuracy, adequacy or completeness of any information contained in this work, and is not responsible for any errors or omissions. ISBN-13: 978-0-13-417729-8 ISBN-10: 0-13-417729-0 Text printed in the United States of America. 1 16 Contents Preface ........................................................................................................... xv Acknowledgments ......................................................................................... xix Chapter 1: The Java SE 8 Stream Library ..................................................... 1 1.1 From Iterating to Stream Operations ........................................................ 2 1.2 Stream Creation ............................................................................................ 5 1.3 The filter , map , and flatMap Methods ............................................................. 9 1.4 Extracting Substreams and Concatenating Streams ............................. 10 1.5 Other Stream Transformations ................................................................ 11 1.6 Simple Reductions ..................................................................................... 12 1.7 The Optional Type ..................................................................................... 13 1.7.1 How to Work with Optional Values .......................................... 14 1.7.2 How Not to Work with Optional Values .................................. 15 1.7.3 Creating Optional Values ........................................................... 16 1.7.4 Composing Optional Value Functions with flatMap .................. 16 1.8 Collecting Results ...................................................................................... 19 1.9 Collecting into Maps ................................................................................. 24 1.10 Grouping and Partitioning ....................................................................... 28 1.11 Downstream Collectors ............................................................................ 29 1.12 Reduction Operations ............................................................................... 33 1.13 Primitive Type Streams ............................................................................. 36 1.14 Parallel Streams .......................................................................................... 41 Chapter 2: Input and Output ........................................................................ 47 2.1 Input/Output Streams .............................................................................. 48 2.1.1 Reading and Writing Bytes ........................................................ 48 2.1.2 The Complete Stream Zoo ......................................................... 51 2.1.3 Combining Input/Output Stream Filters ................................ 55 v vi Contents 2.2 Text Input and Output .............................................................................. 60 2.2.1 How to Write Text Output ......................................................... 60 2.2.2 How to Read Text Input ............................................................. 62 2.2.3 Saving Objects in Text Format ................................................... 63 2.2.4 Character Encodings ................................................................... 67 2.3 Reading and Writing Binary Data ........................................................... 69 2.3.1 The DataInput and DataOutput interfaces .......................................... 69 2.3.2 Random-Access Files .................................................................. 72 2.3.3 ZIP Archives ................................................................................. 77 2.4 Object Input/Output Streams and Serialization ................................... 80 2.4.1 Saving and Loading Serializable Objects ................................. 80 2.4.2 Understanding the Object Serialization File Format .............. 85 2.4.3 Modifying the Default Serialization Mechanism .................... 92 2.4.4 Serializing Singletons and Typesafe Enumerations ............... 94 2.4.5 Versioning ..................................................................................... 95 2.4.6 Using Serialization for Cloning ................................................. 98 2.5 Working with Files .................................................................................. 100 2.5.1 Paths ............................................................................................ 101 2.5.2 Reading and Writing Files ........................................................ 104 2.5.3 Creating Files and Directories ................................................. 105 2.5.4 Copying, Moving, and Deleting Files .................................... 106 2.5.5 Getting File Information ........................................................... 108 2.5.6 Visiting Directory Entries ......................................................... 110 2.5.7 Using Directory Streams .......................................................... 111 2.5.8 ZIP File Systems ........................................................................ 115 2.6 Memory-Mapped Files ........................................................................... 116 2.6.1 Memory-Mapped File Performance ....................................... 116 2.6.2 The Buffer Data Structure ......................................................... 124 2.6.3 File Locking ................................................................................ 126 2.7 Regular Expressions ................................................................................ 128 Chapter 3: XML ............................................................................................ 143 3.1 Introducing XML ..................................................................................... 144 3.1.1 The Structure of an XML Document ....................................... 146 Contents vii 3.2 Parsing an XML Document .................................................................... 149 3.3 Validating XML Documents ................................................................... 162 3.3.1 Document Type Definitions ..................................................... 163 3.3.2 XML Schema .............................................................................. 172 3.3.3 A Practical Example .................................................................. 175 3.4 Locating Information with XPath .......................................................... 190 3.5 Using Namespaces ................................................................................... 196 3.6 Streaming Parsers ..................................................................................... 199 3.6.1 Using the SAX Parser ................................................................ 199 3.6.2 Using the StAX Parser ............................................................... 205 3.7 Generating XML Documents ................................................................. 208 3.7.1 Documents without Namespaces ........................................... 209 3.7.2 Documents with Namespaces ................................................. 209 3.7.3 Writing Documents ................................................................... 210 3.7.4 An Example: Generating an SVG File .................................... 211 3.7.5 Writing an XML Document
Recommended publications
  • Bibliography of Erik Wilde
    dretbiblio dretbiblio Erik Wilde's Bibliography References [1] AFIPS Fall Joint Computer Conference, San Francisco, California, December 1968. [2] Seventeenth IEEE Conference on Computer Communication Networks, Washington, D.C., 1978. [3] ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, Los Angeles, Cal- ifornia, March 1982. ACM Press. [4] First Conference on Computer-Supported Cooperative Work, 1986. [5] 1987 ACM Conference on Hypertext, Chapel Hill, North Carolina, November 1987. ACM Press. [6] 18th IEEE International Symposium on Fault-Tolerant Computing, Tokyo, Japan, 1988. IEEE Computer Society Press. [7] Conference on Computer-Supported Cooperative Work, Portland, Oregon, 1988. ACM Press. [8] Conference on Office Information Systems, Palo Alto, California, March 1988. [9] 1989 ACM Conference on Hypertext, Pittsburgh, Pennsylvania, November 1989. ACM Press. [10] UNIX | The Legend Evolves. Summer 1990 UKUUG Conference, Buntingford, UK, 1990. UKUUG. [11] Fourth ACM Symposium on User Interface Software and Technology, Hilton Head, South Carolina, November 1991. [12] GLOBECOM'91 Conference, Phoenix, Arizona, 1991. IEEE Computer Society Press. [13] IEEE INFOCOM '91 Conference on Computer Communications, Bal Harbour, Florida, 1991. IEEE Computer Society Press. [14] IEEE International Conference on Communications, Denver, Colorado, June 1991. [15] International Workshop on CSCW, Berlin, Germany, April 1991. [16] Third ACM Conference on Hypertext, San Antonio, Texas, December 1991. ACM Press. [17] 11th Symposium on Reliable Distributed Systems, Houston, Texas, 1992. IEEE Computer Society Press. [18] 3rd Joint European Networking Conference, Innsbruck, Austria, May 1992. [19] Fourth ACM Conference on Hypertext, Milano, Italy, November 1992. ACM Press. [20] GLOBECOM'92 Conference, Orlando, Florida, December 1992. IEEE Computer Society Press. http://github.com/dret/biblio (August 29, 2018) 1 dretbiblio [21] IEEE INFOCOM '92 Conference on Computer Communications, Florence, Italy, 1992.
    [Show full text]
  • Network Working Group H. Birkholz Internet-Draft Fraunhofer SIT Intended Status: Informational C
    Network Working Group H. Birkholz Internet-Draft Fraunhofer SIT Intended status: Informational C. Vigano Expires: January 4, 2018 Universitaet Bremen C. Bormann Universitaet Bremen TZI July 03, 2017 Concise data definition language (CDDL): a notational convention to express CBOR data structures draft-greevenbosch-appsawg-cbor-cddl-11 Abstract This document proposes a notational convention to express CBOR data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on January 4, 2018. Copyright Notice Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
    [Show full text]
  • SARIF) Version 2.1.0 Committee Specification Draft 01 / Public Review Draft 01 27 May23 July 2019
    Static Analysis Results Interchange Format (SARIF) Version 2.1.0 Committee Specification Draft 01 / Public Review Draft 01 27 May23 July 2019 This version: https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.docx (Authoritative) https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.html https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.pdf https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.docx (Authoritative) https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.pdf Previous version: N/A Latest version: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.docx (Authoritative) https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.pdf Technical Committee: OASIS Static Analysis Results Interchange Format (SARIF) TC Chairs: David Keaton ([email protected]), Individual Member Luke Cartey ([email protected]), Semmle Editors: Michael C. Fanning ([email protected]), Microsoft Laurence J. Golding ([email protected]), Microsoft Additional artifacts: This prose specification is one component of a Work Product that also includes: • JSON schemas: https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/schemas/ Related work: This specification replaces or supersedes: • Static Analysis Results Interchange Format (SARIF) Version 2.0.
    [Show full text]
  • Secure Public Instant Messaging
    Secure Public Instant Messaging By Mohammad Abdul Mannan A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfilment of the requirements for the degree of Master of Computer Science Ottawa-Carleton Institute for Computer Science School of Computer Science Carleton University Ottawa, Ontario, Canada August 2005 ©Copyright Mohammad Abdul Mannan, 2005 Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Library and Bibliotheque et 1*1 Archives Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A 0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre reference ISBN: 0-494-10118-0 Our file Notre reference ISBN: 0-494-10118-0 NOTICE: AVIS: The author has granted a non­ L'auteur a accorde une licence non exclusive exclusive license allowing Library permettant a la Bibliotheque et Archives and Archives Canada to reproduce,Canada de reproduire, publier, archiver, publish, archive, preserve, conserve,sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par I'lnternet, preter, telecommunication or on the Internet,distribuer et vendre des theses partout dans loan, distribute and sell theses le monde, a des fins commerciales ou autres, worldwide, for commercial or non­ sur support microforme, papier, electronique commercial purposes, in microform,et/ou autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in et des droits moraux qui protege cette these. this thesis. Neither the thesis Ni la these ni des extraits substantiels de nor substantial extracts from it celle-ci ne doivent etre imprimes ou autrement may be printed or otherwise reproduits sans son autorisation.
    [Show full text]
  • Draft-Soilandreyes-Arcp-03.Html
    The University of Manchester Research The Archive and Package (arcp) URI scheme Document Version Submitted manuscript Link to publication record in Manchester Research Explorer Citation for published version (APA): Soiland-Reyes, S., & Cáceres, M. (2018). The Archive and Package (arcp) URI scheme: Internet-Draft. Internet Engineering Task Force. https://tools.ietf.org/id/draft-soilandreyes-arcp-03.html Citing this paper Please note that where the full-text provided on Manchester Research Explorer is the Author Accepted Manuscript or Proof version this may differ from the final Published version. If citing, it is advised that you check and use the publisher's definitive version. General rights Copyright and moral rights for the publications made accessible in the Research Explorer are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Takedown policy If you believe that this document breaches copyright please refer to the University of Manchester’s Takedown Procedures [http://man.ac.uk/04Y6Bo] or contact [email protected] providing relevant details, so we can investigate your claim. Download date:24. Sep. 2021 Network Working Group S. Soiland-Reyes Internet-Draft The University of Manchester Intended status: Informational M. Caceres Expires: August 9, 2018 Mozilla Corporation February 05, 2018 The Archive and Package (arcp) URI scheme draft-soilandreyes-arcp-03 Abstract This specification define the Archive and Package URI scheme "arcp". arcp URIs can be used to consume or reference hypermedia resources bundled inside a file archive or an application package, as well as to resolve URIs for archive resources within a programmatic framework.
    [Show full text]
  • Dissertation
    DISSERTATION Titel der Dissertation An Infrastructure for the Development of Semantic Desktop Applications Verfasser Bernhard Schandl Angestrebter akademischer Grad Doktor der technischen Wissenschaften (Dr. techn.) Wien, im August 2009 Studienkennzahl lt. Studienblatt: A 786 881 Dissertationsgebiet lt. Studienblatt: Informatik Betreuer: Univ.Prof. Dr. Wolfgang Klas Zweitbetreuer: Univ.Prof. DDr. Gerald Quirchmayr ii Abstract The extent to which our daily lives are digitized is continuously growing. Many of our every- day activities manifest themselves in digital form; either in an explicit way, when we actively use digital information for work or spare time; or in an implicit way, when information is in- directly created or manipulated as a consequence of our action. A large fraction of these data volumes can be considered as personal information, that is, information that has a certain class of relationship to us as human beings. The storage and processing capacity of the devices that we use to interact with these data has been enormously increasing over the last years, and we can expect this development to continue in the future. However, while the power of physical data storage is permanently increasing, the development of logical data organization power of personal devices has been stagnating since the invention of the first personal computers. Still, hierarchical file systems are the de-facto standard for data organization on personal devices. File systems represent information as a set of discrete data units (files) that are ar- ranged as leaves on a tree of labeled nodes (directories). This structure, on the one hand, can be easily understood by humans, since the separation into small information units supports the manual manageability of the personal data space, in comparison to systems that employ continuous data structures.
    [Show full text]
  • 8089 QUT Updates: 1738 February 2017 Category: Standards Track ISSN: 2070-1721
    Internet Engineering Task Force (IETF) M. Kerwin Request for Comments: 8089 QUT Updates: 1738 February 2017 Category: Standards Track ISSN: 2070-1721 The "file" URI Scheme Abstract This document provides a more complete specification of the "file" Uniform Resource Identifier (URI) scheme and replaces the very brief definition in Section 3.10 of RFC 1738. It defines a common syntax that is intended to interoperate across the broad spectrum of existing usages. At the same time, it notes some other current practices around the use of file URIs. Status of This Memo This is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc8089. Copyright Notice Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
    [Show full text]
  • ES 201 873-10 V3.4.1 (2008-07) ETSI Standard
    Final draft ETSI ES 201 873-10 V3.4.1 (2008-07) ETSI Standard Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3; Part 10: TTCN-3 Documentation Comment Specification 2 Final draft ETSI ES 201 873-10 V3.4.1 (2008-07) Reference RES/MTS-00108-10 T3 ed341 DOC Keywords methodology, MTS, testing, TTCN ETSI 650 Route des Lucioles F-06921 Sophia Antipolis Cedex - FRANCE Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Siret N° 348 623 562 00017 - NAF 742 C Association à but non lucratif enregistrée à la Sous-Préfecture de Grasse (06) N° 7803/88 Important notice Individual copies of the present document can be downloaded from: http://www.etsi.org The present document may be made available in more than one electronic version or in print. In any case of existing or perceived difference in contents between such versions, the reference version is the Portable Document Format (PDF). In case of dispute, the reference shall be the printing on ETSI printers of the PDF version kept on a specific network drive within ETSI Secretariat. Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at http://portal.etsi.org/tb/status/status.asp If you find errors in the present document, please send your comment to one of the following services: http://portal.etsi.org/chaircor/ETSI_support.asp Copyright Notification No part may be reproduced except as authorized by written permission.
    [Show full text]
  • Uniform Resource Identifier (URI): Generic Syntax
    Network Working Group T. Berners-Lee Request for Comments: 3986 W3C/MIT Obsoletes: 2732, 2396, 1808 R. Fielding STD: 66 Day Software Updates: 1738 L. Masinter Category: Standards Track Adobe Systems January 2005 Uniform Resource Identifier (URI): Generic Syntax Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the “Internet Official Protocol Standards” (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright © The Internet Society (2005). All Rights Reserved. Abstract A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. RFC 3986 URI Generic Syntax January 2005 Table of Contents 1. Introduction..............................................................................................................................................................4
    [Show full text]
  • Uniform Resource Identifier (URI): Generic Syntax
    Network Working Group T. Berners-Lee Request for Comments: 3986 W3C/MIT Obsoletes: 2732, 2396, 1808 R. Fielding STD: 66 Day Software Updates: 1738 L. Masinter Category: Standards Track Adobe Systems January 2005 Uniform Resource Identifier (URI): Generic Syntax Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the “Internet Official Protocol Standards” (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright © The Internet Society (2005). All Rights Reserved. Abstract A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. RFC 3986 URI Generic Syntax January 2005 Table of Contents 1. Introduction..............................................................................................................................................................4
    [Show full text]
  • URI Use and Abuse
    URI Use and Abuse Nathan McFeters – Senior Security Advisor, Ernst & Young Billy Rios – SeniorErnst Researcher, & Young’s Advanced Microsoft Security Cente r – URI Use and Abuse Rob Carter – Security Advisor, Ernst1 & Young Intended Audience This paper assumes the reader has a solid understanding of web application security principles, Cross Site Scripting, and web browser security mechanisms. This paper will provide information on the discovery of, access of, and exploitation of various URI’s supported by various browsers. Please see the reference section of this paper for more information regarding individual types of attacks. Contributing Authors Version 1.2 Nathan McFeters – Senior Security Advisor – Ernst & Young Advanced Security Center, Houston Billy Kim (BK) Rios – Senior Researcher – Microsoft, Seattle Rob Carter – Security Advisor – Ernst & Young Advanced Security Center, Houston Ernst & Young’s Advanced Security Center – URI Use and Abuse ii Table of Contents INTENDED AUDIENCE ............................................................................................................................ II CONTRIBUTING AUTHORS ................................................................................................................... II CHAPTER 1 – UNIVERSAL RESOURCE INDICATORS (URIS) ........................................................ 5 1. OVERVIEW .............................................................................................................................................. 5 2. INTERACTION WITH BROWSERS
    [Show full text]
  • Enterprise Application Integration Architecture Recovery
    Enterprise Application Integration Architecture Recovery Ossi Galkin School of Science Thesis submitted for examination for the degree of Master of Science in Technology. Espoo 21.5.2019 Supervisor Prof. Mikko Kivelä Advisor M.Sc. (Tech.) Minttu Mustonen Copyright ⃝c 2019 Ossi Galkin Aalto University, P.O. BOX 11000, 00076 AALTO www.aalto.fi Abstract of the master’s thesis Author Ossi Galkin Title Enterprise Application Integration Architecture Recovery Degree programme Life Science Technologies Major Complex Systems Code of major SCI3060 Supervisor Prof. Mikko Kivelä Advisor M.Sc. (Tech.) Minttu Mustonen Date 21.5.2019 Number of pages 55 Language English Abstract Large and medium-sized enterprise has multiple business applications, such as cus- tomer relations management (CRM) and enterprise resource planning (ERP) software. Business applications need data from each other, but they rarely communicate with each other out of the box. An enterprise application integration (EAI) platform is used to tie them together. Automating communication between business applications is called orchestration. As EAI is used to implement communication between business applications, in theory, it could be used to map the architecture of the orchestration layer. As companies evolve, so does the software they use. Either documentation is never done, or it is not updated. Overall, the frequent problem is that the company loses track of what software systems it has and how they are used. This work studies the feasibility of building software that can automatically recover orchestration architecture. The orchestration architecture is then represented as a network to enable further analysis and visualization. This research investigates whether it is possible to use that network to detect business applications that are being used and whether the production environment is separate from the testing environment.
    [Show full text]