Framework-Specific Modeling Languages

Total Page:16

File Type:pdf, Size:1020Kb

Framework-Specific Modeling Languages Framework-Specific Modeling Languages by MichalAntkiewicz A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Doctor of Philosophy in Electrical and Computer Engineering Waterloo, Ontario, Canada, 2008 c Micha lAntkiewicz 2008 ISBN: 978-0-494-43232-7 I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. Micha lAntkiewicz ii Abstract Framework-specific modeling languages (FSMLs) help developers build applications based on object-oriented frameworks. FSMLs formalize abstractions and rules of the framework's application programming interfaces (APIs) and can express models of how applications use an API. Such models, referred to as framework-specific models, aid developers in understanding, creating, and evolving application code. We present the concept of FSMLs, propose a way of specifying their abstract syntax and semantics, and show how such language specifications can be interpreted to provide reverse, forward, and round-trip engineering of framework-specific mod- els and framework-based application code. We present a method for engineering FSMLs that was extracted post-mortem from the experience of building four such languages. The method is driven by the use cases that the FSMLs under development are to support. We present the use cases, the overall process, and its instantiation for each language. The presenta- tion focuses on providing concrete examples for engineering steps, outcomes, and challenges. It also provides strategies for making engineering decisions. The presented method and experience are aimed at framework developers and tool builders who are interested in engineering new FSMLs. Furthermore, the method represents a necessary step in the maturation of the FSML concept. Finally, the presented work offers a concrete example of software language engineering. FSML engineering formalizes existing domain knowledge that is not present in language form and makes a strong case for the benefits of such formalization. We evaluated the method and the exemplar languages. The evaluation is both empirical and analytical. The empirical evaluation involved measuring the precision and recall of reverse engineering and verifying the correctness or forward and round- trip engineering. The analytical evaluation focused on the generality of the method. iii Acknowledgements I would like to thank the people who have contributed to this thesis. First and foremost, I would like to thank my supervisor Professor Krzysztof Czarnecki who enormously helped to shape, reinvent, and crystallize the material presented in this thesis in countless discussions. I am deeply grateful that despite his busy schedule, Professor Czarnecki always found the time to delve into the details of my research and that he was never satisfied with \easy" answers. His emphasis on the quality of research is a valuable lesson I am striving to follow. I would also like to thank Professor Ladan Tahvildari, Professor Kostas Kon- togiannis, and Professor Michael Godfrey for serving on my thesis committee. I thank Professor Ralf L¨ammelfor being my external examiner. I am also deeply grateful to my wife Agata, who's continuous support, trust, and understanding were crucial to finishing this thesis. I would like to thank my colleagues from the Generative Software Development Lab at the University of Waterloo who contributed to this research and its imple- mentation: Thiago Tonelli Bartolomei, Herman Lee, and Matthew Stephan. I also thank Henry Lau for his work on the implementation. iv Acknowledgment of contributions Most of the material presented in this thesis was taken from existing and submitted papers. The structure of the thesis is based on [12], to which my personal contri- bution was approximately 70%. Chapter 4 is based on [14], to which my personal contribution was approximately 70%. Section 2.5 is based on [10], to which my personal contribution was approximately 90%. Micha lAntkiewicz As one of the authors of [10, 12, 14], I fully acknowledge the thesis author's statement above and give full permission to use any part of the papers we co- authored mentioned above. I also fully acknowledge that the thesis represents original research conducted by the thesis author. Krzysztof Czarnecki As one of the authors of [14], I fully acknowledge the thesis author's statement above and give full permission to use any part of the papers we co-authored men- tioned above. I also fully acknowledge that the thesis represents original research conducted by the thesis author. Thiago Tonelli Bartolomei As one of the authors of [12], I fully acknowledge the thesis author's statement above and give full permission to use any part of the papers we co-authored men- tioned above. I also fully acknowledge that the thesis represents original research conducted by the thesis author. Matthew Stephan v Dedication I would like to dedicate this thesis to my mother Ma lgorzataand my wife Agata. vi Contents List of Tables xii List of Figures xiv 1 Introduction 1 1.1 Contributions . 5 2 Framework-Specific Modeling Languages 6 2.1 Overview . 6 2.2 Feature Models of Abstract Syntax . 10 2.3 Mapping Definitions . 15 2.4 Code Queries and Transformations . 17 2.5 Metamodel Interpretation Algorithms . 19 2.5.1 Forward engineering . 20 2.5.2 Reverse engineering . 21 2.5.3 Round-trip engineering . 24 2.6 The Generic FSML Infrastructure . 28 2.7 Summary . 29 3 Method for Engineering FSMLs 30 3.1 Overview . 30 3.2 Inception . 32 3.3 Elaboration . 39 3.4 Construction . 42 3.5 Transition . 49 3.6 Summary . 51 vii 4 Evaluation of Reverse Engineering 52 4.1 Introduction . 52 4.2 Challenges of Statically Analyzing Completion Code . 53 4.3 Setup of the Study . 54 4.3.1 Setup of phase 1 . 54 4.3.2 Setup of phase 2 . 55 4.3.3 Setup of phase 3 . 56 4.3.4 Data collection process . 56 4.4 Results of Phase 1: Code Patterns & Code Queries . 58 4.5 Results of Phase 2: Evaluation of the Simple Code Queries . 64 4.5.1 Precision & recall . 64 4.5.2 The Refined Code Queries . 65 4.5.3 Interpretation of the data . 66 4.5.4 Conclusion for phases 1 and 2 . 70 4.6 Results of Phase 3: the Refined Code Queries . 70 4.6.1 Static analysis services used by the code queries . 70 4.6.2 Implementation of the refined code queries . 75 4.6.3 Precision & recall data and interpretation . 77 4.6.4 Conclusion for phase 3 . 80 4.7 Discussion . 82 4.7.1 Threats to validity . 82 4.7.2 Empirical approach to code query refinement . 84 4.7.3 Difficulties of analyzing and understanding framework-based code . 84 4.8 Conclusion . 86 5 Evaluation of Forward Engineering 87 5.1 Introduction . 87 5.2 Code Transformations for Java . 88 5.3 Setup of the Test . 90 5.4 Results and Discussion . 93 5.4.1 Threats to validity . 94 5.5 Conclusion . 95 viii 6 Evaluation of Round-Trip Engineering 96 6.1 Introduction . 96 6.2 Setup of the Tests . 97 6.3 Results and Discussion . 98 6.3.1 Results of test 1 . 98 6.3.2 Results of test 2 . 99 6.3.3 Threats to validity . 99 6.4 Conclusion . 101 7 Evaluation of the Method 102 7.1 Evaluation of the Exemplar Languages . 102 7.1.1 Framework API understanding . 102 7.1.2 Completion code understanding and analysis . 103 7.1.3 Completion code generation and evolution . 105 7.2 Threats to Validity . 106 8 Related Work 109 8.1 Framework Instantiation . 109 8.2 Reverse Engineering . 111 8.3 Forward Engineering . 112 8.4 Round-Trip Engineering . 114 8.5 Reengineering . 114 8.6 FSML Engineering Method . 115 9 Conclusion 118 9.1 Summary of Contributions . 118 9.2 Limitations and Future Work . 119 APPENDICES 121 A Mapping types, Constraints, and Forward parameters 122 B Applications Used in the Third Phase of the Evaluation of Reverse Engineering 124 B.1 Eclipse . 124 B.2 Struts . 124 B.3 Applets . 124 ix C Applications Used in the Computation of the CDC and CDO Met- rics 126 C.1 Eclipse . 126 C.2 Struts . 126 C.3 Applets . 126 D Models Used in the Evaluation of Forward and Round-trip Engi- neering 128 E Traces of the Execution of the Tests in the Evaluation of Round- trip Engineering 135 F Complete Metamodels of the Exemplar FSMLs 138 F.1 Metamodel of WPI FSML . 139 F.2 Metamodel of Struts FSML . 141 F.3 Metamodel of Applet FSML . 142 F.4 Metamodel of EJB FSML . 144 References 147 x List of Tables 2.1 Examples of languages, their artifacts, and language definition for- malisms . 7 2.2 Selected mapping types for structural code patterns for Java . 15 2.3 Selected Mapping types for behavioural code patterns for Java . 17 2.4 Selected code transformations . 21 2.5 Selected code queries . 23 2.6 Synchronization States Decision Table . 27 3.1 Inception of the exemplar FSMLs . 33 3.2 Overview of the Use Cases . 34 3.3 Distribution of features over sources of knowledge . 37 3.4 Legend of Features' Sources . 37 4.1 Mapping types for structural code patterns for Java . 58 4.2 Mapping types for behavioural code patterns for Java . 59 4.3 Code queries for the callsTo mapping type . 62 4.4 Code queries for the callsRec mapping type . 62 4.5 Code queries for the argVal mapping type . 62 4.6 Code queries for the argSameObj mapping type . 62 4.7 Code queries for the before mapping type .
Recommended publications
  • Red Hat AMQ 6.1 Jboss A-MQ for Xpaas Release Notes
    Red Hat JBoss A-MQ 6.1 JBoss A-MQ for xPaaS Release Notes What's new in Red Hat JBoss A-MQ for xPaaS Last Updated: 2017-10-13 Red Hat JBoss A-MQ 6.1 JBoss A-MQ for xPaaS Release Notes What's new in Red Hat JBoss A-MQ for xPaaS JBoss A-MQ Docs Team Content Services [email protected] Legal Notice Copyright © 2014 Red Hat. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • 2Nd USENIX Conference on Web Application Development (Webapps ’11)
    conference proceedings Proceedings of the 2nd USENIX Conference Application on Web Development 2nd USENIX Conference on Web Application Development (WebApps ’11) Portland, OR, USA Portland, OR, USA June 15–16, 2011 Sponsored by June 15–16, 2011 © 2011 by The USENIX Association All Rights Reserved This volume is published as a collective work. Rights to individual papers remain with the author or the author’s employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. Permission is granted to print, primarily for one person’s exclusive use, a single copy of these Proceedings. USENIX acknowledges all trademarks herein. ISBN 978-931971-86-7 USENIX Association Proceedings of the 2nd USENIX Conference on Web Application Development June 15–16, 2011 Portland, OR, USA Conference Organizers Program Chair Armando Fox, University of California, Berkeley Program Committee Adam Barth, Google Inc. Abdur Chowdhury, Twitter Jon Howell, Microsoft Research Collin Jackson, Carnegie Mellon University Bobby Johnson, Facebook Emre Kıcıman, Microsoft Research Michael E. Maximilien, IBM Research Owen O’Malley, Yahoo! Research John Ousterhout, Stanford University Swami Sivasubramanian, Amazon Web Services Geoffrey M. Voelker, University of California, San Diego Nickolai Zeldovich, Massachusetts Institute of Technology The USENIX Association Staff WebApps ’11: 2nd USENIX Conference on Web Application Development June 15–16, 2011 Portland, OR, USA Message from the Program Chair . v Wednesday, June 15 10:30–Noon GuardRails: A Data-Centric Web Application Security Framework . 1 Jonathan Burket, Patrick Mutchler, Michael Weaver, Muzzammil Zaveri, and David Evans, University of Virginia PHP Aspis: Using Partial Taint Tracking to Protect Against Injection Attacks .
    [Show full text]
  • Java- EE Web Application Development with Apache Struts 1
    +91-9791 044 044 Java- EE Web Application Development with Apache Struts 1 Duration:60 HOURS | Price: INR 7000 SAVE NOW! INR 6000 until December 1, 2011 Students Will Learn • Java EE Web Application Architecture • Servlets and JSPs • NDI, RMI, & JDBC • JMS (Java Messaging Service) • Developing Struts Applications • Developing a Struts Controller • Developing a Struts View Course Description: This hands-on course provides participants with the knowledge and experience necessary to develop and deploy large, robust and complex Java web applications utilizing the Apache Struts 1 framework. The Apache Software Foundation has provided numerous open-source tools, which set the standard for web application development. These include the Apache web server and the Tomcat Servlet Container. Apache Struts 1 provides a flexible controller layer for JSP-based applications, with significant facilites for validation, internationalization and page layout. Struts is an implementation of the Model-View-Controller (MVC) pattern, a recommended architectural design pattern for interactive applications. The Struts controller is based on standardized technologies including Servlets, JSP Pages, Tag libraries, JavaBeans and XML. Students will learn how to use the Struts framework to write, assemble, configure and deploy complex web applications. This course covers architectural design issues as well as specific coding models for Java EE components, and is up to date with the latest Java EE 5, JSP 2.1 and Servlet 2.5 specifications. Security, transaction management, inter-component communication and deployment issues are discussed in detail, with hands-on labs to solidify understanding. Since coding and deployment files are standardized by the Jave EE specifications, students may readily apply the skills learned in this class to write code for any compliant server, including Apache Tomcat, JBoss, WebSphere, Oracle, WebLogic and many others.
    [Show full text]
  • Open Source Licenses Applicable to Hitachi's Products Earlier Versions
    Open Source Licenses Applicable to Hitachi’s Products EARLIER VERSIONS Several products are listed below together with certain open source licenses applicable to the particular product. The open source software licenses are included at the end of this document. If the open source package has been modified, an asterisk (*) appears next to the name of the package. Note that the source code for packages licensed under the GNU General Public License or similar type of license that requires the licensor to make the source code publicly available (“GPL Software”) may be available for download as indicated below. If the source code for GPL Software is not included in the software or available for download, please send requests for source code for GPL Software to the contact person listed for the applicable product. The materials below are provided “AS IS,” without warranty of any kind, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement. Access to this material grants you no right or license, express or implied, statutorily or otherwise, under any patent, trade secret, copyright, or any other intellectual property right of Hitachi Vantara Corporation (“Hitachi”). Hitachi reserves the right to change any material in this document, and any information and products on which this material is based, at any time, without notice. Hitachi shall have no responsibility or liability to any person or entity with respect to any damages, losses, or costs arising from the materials
    [Show full text]
  • Proceedings of the IEEE Visweek Workshop on Visual Analytics in Healthcare: Understanding the Physicians Perspective
    Proceedings of the IEEE VisWeek Workshop on Visual Analytics in Healthcare: Understanding the Physicians Perspective October 23rd, 2011 Providence, RI www.visualanalyticshealthcare.org Sponsors: ! Preface Visualization and visual analytics show great potential as methods to analyze, filter, and illustrate many of the diverse data used in clinical practice. Today, (a) physicians and clinical practitioners are faced with the challenging task of analyzing large amount of unstructured, multi-modal, and longitudinal data to effectively diagnose and monitor the progression of a particular disease; (b) patients are confronted with the difficult task of understanding the correlations between many clinical values relevant to their health; and (c) healthcare organizations are faced with the problem of improving the overall operational efficiency and performance of the institution while maintaining the quality of patient care and safety. Visualization and visual analytics can potentially provide great benefits to each of these three core areas of healthcare. However, to be successful, the resulting visualization must be able to meet the physician’s requirements and be useful for both patients and physicians. Despite the continuous use of scientific visualization and visual analytics in medical applications, the lack of communication between engineers and physicians has meant that only basic visualization and analytics techniques are currently employed in clinical practice. The goal of this workshop is to gather together leading physicians and clinical practitioners to share with the visualization community their need for specific visualization tools and discuss the areas in healthcare where additional visualization techniques are needed. Jesus J Caban, NICoE / Naval Medical Center CC / National Institutes of Health David Gotz IBM Research 3 ! 4 Invited Speakers Dr.
    [Show full text]
  • Automatic Method for Testing Struts-Based Application
    AUTOMATIC METHOD FOR TESTING STRUTS-BASED APPLICATION A Paper Submitted to the Graduate Faculty of the North Dakota State University of Agriculture and Applied Science By Shweta Tiwari In Partial Fulfillment for the Degree of MASTER OF SCIENCE Major Department: Computer Science March 2013 Fargo, North Dakota North Dakota State University Graduate School Title Automatic Method For Testing Strut Based Application By Shweta Tiwari The Supervisory Committee certifies that this disquisition complies with North Dakota State University’s regulations and meets the accepted standards for the degree of MASTER OF SCIENCE SUPERVISORY COMMITTEE: Kendall Nygard Chair Kenneth Magel Fred Riggins Approved: 4/4/2013 Brian Slator Date Department Chair ABSTRACT Model based testing is a very popular and widely used in industry and academia. There are many tools developed to support model based development and testing, however, the benefits of model based testing requires tools that can automate the testing process. The paper propose an automatic method for model-based testing to test the web application created using Strut based frameworks and an effort to further reduce the level of human intervention require to create a state based model and test the application taking into account that all the test coverage criteria are met. A methodology is implemented to test applications developed with strut based framework by creating a real-time online shopping web application and using the test coverage criteria along with automated testing tool. This implementation will demonstrate feasibility of the proposed method. iii ACKNOWLEDGEMENTS I would like to sincerely thank Dr. Kendall Nygard, Dr. Tariq M. King for the support and direction.
    [Show full text]
  • Dynamické Generovaní Obsahu S Java Server Pages
    MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Dynamické generovaní obsahu s Java Server Pages BAKALÁRSKÁˇ PRÁCE Petr Lorenc Brno, podzim 2007 Prohlášení Prohlašuji, že tato bakaláˇrskápráce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Vedoucí práce: RNDr. Vlastislav Dohnal, Ph.D. ii Shrnutí Tato bakaláˇrskápráce provádí ˇctenáˇrevznikem webové aplikace. Ta je vystavˇenana plat- formˇeJava, konkrétnˇena technologiích JavaServlets a Java Server Pages. Umožˇnujedyna- mické generování obsahu uloženého v databázi MySQL. Architektura aplikace ctí návrhový vzor Model-Pohled-Rídícíˇ ˇcást.Model aplikace reprezentují JavaBean komponenty, pohled tvoˇríJSP stránky a ˇrídícíˇcástzastupují servlety. V prvních ˇctyˇrechkapitolách je probrána teorie užitá ve webové aplikaci spolu s vysvˇet- lením pojm ˚usouvisejících s danou problematikou. Pátá kapitola, spolu se zdrojovým kó- dem webové aplikace, tvoˇrínávod, demonstrující použití výše popsaných teoretických po- znatk ˚u,kvytvoˇreníwebové aplikace. Tato ukázková webová aplikace má ˇctyˇriverze. První je obdoba aplikace „Ahoj Svˇete!“, následující didakticky pˇridávajídalší funkˇcníprvky s tím, že poslední verze je již principiálnˇeplnohodnotnou webovou aplikací nabízející dynamické generování obsahu díky propojení s databází MySQL. Využívá se zde nástroj ˚utechnologie JSP nabízejících zefektivnˇenípráce pˇrivývoji webových stránek, jako napˇr.JSTL, Expression Language, JSP direktivy a akce. Vyústˇenímtohoto návodu je pak webová aplikace LogoArena.cz. Tato je, co do množ- ství zdrojového kódu, rozsáhlejší, nicménˇes pˇredešlouukázkovou aplikací naprosto rovno- cenná, bere-li se jako mˇeˇrítkonávrh architektury a použité technologie. Aplikace LogoArena.cz má již ambice reálného nasazení na web. Jedná se o internetový obchod s mobilním obsahem, jakým jsou napˇríkladobrázky ˇcianimace.
    [Show full text]
  • Google App Engine Paas Cloud Computing
    GOOGLE APP ENGINE PAAS CLOUD COMPUTING Google App Engine lets developers build scalable web and mobile backends in Services Ecosystem: Tap a growing ecosystem of GCP services from your app . Google cloud computing platform fees Google has set up Google App Engine to encourage its wide adoption. App Engine also features a dedicated Python runtime environment, which includes a fast Python interpreter and the Python standard library. A Web-based administration console: The console helps developers manage their applications. Core to this is the servlet 2. Ruby and C [6] are only available in the flexible environment. Each of these applications can use up to MB of storage, up to 5 million page views each month without an additional fee. No method for bulk downloading data from GAE using Java currently exists. App Engine packages those building blocks and provides access to scalable infrastructure that we hope will make it easier for developers to scale their applications automatically as they grow. Docker containerized applications can run on many types of infrastructure, such as Amazon Web Services , Microsoft Azure , and others. Restrictions[ edit ] Developers have read-only access to the filesystem on App Engine. Programming interfaces to support authenticating users and sending email by using Google Accounts Scheduled tasks for triggering events at specified times and regular intervals This is essentially the same platform that Google uses to build its own software. Apache Struts 1 is supported, and Struts 2 runs with workarounds. As with most cloud-hosting services, with App Engine, you only pay for what you use. Web2py web framework offers migration between SQL Databases and Google App Engine, however it doesn't support several App Engine-specific features such as transactions and namespaces.
    [Show full text]
  • An Analysis of CSRF Defenses in Web Frameworks
    Where We Stand (or Fall): An Analysis of CSRF Defenses in Web Frameworks Xhelal Likaj Soheil Khodayari Giancarlo Pellegrino Saarland University CISPA Helmholtz Center for CISPA Helmholtz Center for Saarbruecken, Germany Information Security Information Security [email protected] Saarbruecken, Germany Saarbruecken, Germany [email protected] [email protected] Abstract Keywords Cross-Site Request Forgery (CSRF) is among the oldest web vul- CSRF, Defenses, Web Frameworks nerabilities that, despite its popularity and severity, it is still an ACM Reference Format: understudied security problem. In this paper, we undertake one Xhelal Likaj, Soheil Khodayari, and Giancarlo Pellegrino. 2021. Where We of the first security evaluations of CSRF defense as implemented Stand (or Fall): An Analysis of CSRF Defenses in Web Frameworks. In by popular web frameworks, with the overarching goal to identify Proceedings of ACM Conference (Conference’17). ACM, New York, NY, USA, additional explanations to the occurrences of such an old vulner- 16 pages. https://doi.org/10.1145/nnnnnnn.nnnnnnn ability. Starting from a review of existing literature, we identify 16 CSRF defenses and 18 potential threats agains them. Then, we 1 Introduction evaluate the source code of the 44 most popular web frameworks Cross-Site Request Forgery (CSRF) is among the oldest web vul- across five languages (i.e., JavaScript, Python, Java, PHP, andC#) nerabilities, consistently ranked as one of the top ten threats to covering about 5.5 million LoCs, intending to determine the imple- web applications [88]. Successful CSRF exploitations could cause re- mented defenses and their exposure to the identified threats. We mote code execution [111], user accounts take-over [85, 87, 90, 122], also quantify the quality of web frameworks’ documentation, look- or compromise of database integrity—to name only a few in- ing for incomplete, misleading, or insufficient information required stances.
    [Show full text]
  • JSOC INSIGHT Vol.8 English Edition(PDF 1.0MB)
    vol.8 October 14, 2015 JSOC Analysis Team JSOC INSIGHT Vol.8 Introduction ................................................................................................................................................. 2 Section 1 Summary of Trends from January to March 2015 ................................................................... 3 1 Summary of trends from January to March 2015 ........................................................................ 3 2 Trends of Severe Incident in JSOC ............................................................................................... 4 2.1 Trends in severe incidents ............................................................................................................................ 4 2.2 Analysis of severe incidents ......................................................................................................................... 5 2.3 Attacking traffic from the Internet that has been detected many times ........................................................... 6 3 Topics of This Volume .................................................................................................................... 8 3.1 Code execution vulnerability in the JBoss Application Server........................................................................ 8 3.1.1 Detected attacks against the JBoss Application Server .......................................................................... 8 3.1.2 Testing the attacking code that exploits the JBoss Application Server vulnerability
    [Show full text]
  • Open Source Software Packages
    Hitachi Content Platform Core Software 5.1 Open Source Software Packages Contact information: Project Manager Hitachi Content Platform Hitachi Vantara Corporation 2535 Augustine Drive Santa Clara, California 95054 Name of Web site License Package Airspeed http://dev.sanityinc.com/airspeed BSD, Two Clause Apache Commons http://commons.apache.org/beanutils Apache License Version 2.0 beanutils Apache http://commons.apache.org/collections Apache License Version 2.0 Commons collections Apache commons http://commons.apache.org/jxpath Apache License Version 2.0 jxpath Apache http://commons.apache.org/cli Apache License Version 2.0 Commons CLI Apache http://commons.apache.org/codec/ Apache License Version 2.0 Commons Codec Apache http://commons.apache.org/compress/ Apache License Version 2.0 Commons Compress Apache http://commons.apache.org/lang/ Apache License Version 2.0 Commons Lang Apache http://hc.apache.org/httpclient-3.x/ Apache License Version 2.0 Commons HttpClient Apache Directory http://directory.apache.org/ Apache License Version 2.0 Server Apache Struts 1 http://struts.apache.org/2.x/index.html Apache License Version 2.0 Apache Struts 2 http://struts.apache.org/2.x/index.html Apache License Version 2.0 Apache Velocity http://velocity.apache.org/ Apache License Version 2.0 BeautifulSoup http://www.crummy.corn/software/BeautifulSoup/ PSF Bouncy Castle http://www.bouncycastle.org Bouncycastle License Crypto APIs Cheetah http://www.cheetahtemplate.org/ MIT Cjkcodecs http://cjkpython.i18n.org/ BSD, Two Clause Code Generation http://cglib.sourceforge.net
    [Show full text]
  • Comparative Study on Python Web Frameworks: Flask and Django
    Devndra Ghimire Comparative study on Python web frameworks: Flask and Django Metropolia University of Applied Sciences Bachelor of Engineering Media Engineering Bachelor’s Thesis 5 May 2020 Abstract Devndra Ghimire Author(s) Comparative study on Python web frameworks: Flask and Title Django. Number of Pages 37 pages + 0 appendices Date 5 May 2010 Degree Bachelor of Engineering Degree Programme Media Engineering Specialisation option Software Engineering Instructor(s) Kari Salo, Senior Lecturer The purpose of the thesis was to the study the various features, advantages, and the limita- tion of two web development frameworks for Python programming language. It aims to com- pare the usage of Django and Flask frameworks from a novice point of view. The theoretical part of the thesis presents the various types of programming languages and web technolo- gies. In the practical part, however, the study is divided into two parts, each part observing the respective web application framework. In order to perform the comparison, a social network and eCommerce like application was built for Flask and Django respectively. The comparison was started by developing the social network application first with Flask and finished with the e-commerce application using Django. Python programing language, SQLite database for the backend and HTML, JavaS- cript, and Ajax were used for the frontend technology. At the end of the project, both appli- cations were deployed to the cloud platform called Heroku. After the comparison, it was found that the most significant advantages of Flask were that it provides simplicity, flexibility, fine-grained control and quick and easy to learn. On the other hand, Django was easy to work with because of its extensive features and support for librar- ies.
    [Show full text]