Osgi in Practice

Total Page:16

File Type:pdf, Size:1020Kb

Osgi in Practice OSGi In Practice Neil Bartlett January 11, 2009 Contents Preface xiii I Nuts and Bolts1 1 Introduction3 1.1 What is a Module?.........................4 1.2 The Problem(s) with JARs....................5 1.2.1 Class Loading and the Global Classpath.........6 1.2.2 Conflicting Classes.....................8 1.2.3 Lack of Explicit Dependencies...............9 1.2.4 Lack of Version Information................ 10 1.2.5 Lack of Information Hiding Across JARs......... 12 1.2.6 Recap: JARs Are Not Modules.............. 12 1.3 J2EE Class Loading........................ 13 1.4 OSGi: A Simple Idea........................ 15 1.4.1 From Trees to Graphs................... 16 1.4.2 Information Hiding in OSGi Bundles........... 18 1.4.3 Versioning and Side-by-Side Versions........... 19 1.5 Dynamic Modules......................... 19 1.6 The OSGi Alliance and Standards................ 20 1.7 OSGi Implementations....................... 21 1.8 Alternatives to OSGi........................ 21 1.8.1 Build Tools: Maven and Ivy................ 22 1.8.2 Eclipse Plug-in System................... 22 1.8.3 JSR 277........................... 23 2 First Steps in OSGi 25 2.1 Bundle Construction........................ 25 2.2 OSGi Development Tools..................... 26 2.2.1 Eclipse Plug-in Development Environment........ 26 2.2.2 Bnd............................. 27 2.3 Installing a Framework....................... 28 2.4 Setting up Eclipse......................... 29 2.5 Running Felix............................ 31 2.6 Installing bnd............................ 33 2.7 Hello, World!............................ 34 DRAFT PREVIEW iv Contents 2.8 Bundle Lifecycle.......................... 36 2.9 Incremental Development..................... 39 2.10 Interacting with the Framework.................. 40 2.11 Starting and Stopping Threads.................. 43 2.12 Manipulating Bundles....................... 43 2.13 Exercises.............................. 44 3 Bundle Dependencies 47 3.1 Introducing the Example Application............... 48 3.2 Defining an API.......................... 48 3.3 Exporting the API......................... 51 3.4 Importing the API......................... 53 3.5 Interlude: How Bnd Works.................... 57 3.6 Requiring a Bundle......................... 59 3.7 Version Numbers and Ranges................... 61 3.7.1 Version Numbers...................... 62 3.7.2 Versioning Bundles..................... 63 3.7.3 Versioning Packages.................... 63 3.7.4 Version Ranges....................... 64 3.7.5 Versioning Import-Package and Require-Bundle ... 65 3.8 Class Loading in OSGi....................... 66 3.9 JRE Packages............................ 69 3.10 Execution Environments...................... 70 3.11 Fragment Bundles......................... 72 3.12 Class Space Consistency and “Uses” Constraints........ 73 4 Introduction to Services 75 4.1 Late Binding in Java........................ 75 4.1.1 Dependency Injection Frameworks............ 76 4.1.2 Dynamic Services...................... 77 4.2 Registering a Service........................ 79 4.3 Unregistering a Service....................... 81 4.4 Looking up a Service........................ 84 4.5 Service Properties......................... 86 4.6 Introduction to Service Trackers................. 88 4.7 Listening to Services........................ 90 4.8 Tracking Services.......................... 92 4.9 Filtering on Properties....................... 95 4.10 Cardinality and Selection Rules.................. 96 4.10.1 Optional, Unary...................... 98 4.10.2 Optional, Multiple..................... 101 4.10.3 Mandatory, Unary..................... 101 4.10.4 Mandatory, Multiple.................... 101 5 Example: Mailbox Reader GUI 103 DRAFT PREVIEW Contents v 5.1 The Mailbox Table Model and Panel............... 103 5.2 The Mailbox Tracker........................ 103 5.3 The Main Window......................... 106 5.4 The Bundle Activator....................... 109 5.5 Putting it Together......................... 111 6 Concurrency and OSGi 115 6.1 The Price of Freedom....................... 115 6.2 Shared Mutable State....................... 117 6.3 Safe Publication.......................... 119 6.3.1 Safe Publication in Services................ 121 6.3.2 Safe Publication in Framework Callbacks........ 124 6.4 Don’t Hold Locks when Calling Foreign Code.......... 126 6.5 GUI Development......................... 129 6.6 Using Executors.......................... 131 6.7 Interrupting Threads........................ 138 6.8 Exercises.............................. 141 7 The Whiteboard Pattern and Event Admin 143 7.1 The Classic Observer Pattern................... 143 7.2 Problems with the Observer Pattern............... 144 7.3 Fixing the Observer Pattern.................... 145 7.4 Using the Whiteboard Pattern.................. 146 7.4.1 Registering the Listener.................. 149 7.4.2 Sending Events....................... 151 7.5 Event Admin............................ 154 7.5.1 Sending Events....................... 154 7.5.2 The Event Object..................... 155 7.5.3 Receiving Events...................... 158 7.5.4 Running the Example................... 159 7.5.5 Synchronous versus Asynchronous Delivery....... 161 7.5.6 Ordered Delivery...................... 162 7.5.7 Reliable Delivery...................... 162 7.6 Exercises.............................. 163 8 The Extender Model 165 8.1 Looking for Bundle Entries.................... 166 8.2 Inspecting Headers......................... 168 8.3 Tracking Bundles.......................... 169 8.4 Synchronous and Asynchronous Bundle Listeners........ 176 8.5 The Eclipse Extension Registry.................. 181 8.6 Impersonating a Bundle...................... 183 8.7 Conclusion............................. 187 9 Configuration and Metadata 189 DRAFT PREVIEW vi Contents II Component Oriented Development 191 10 Component Oriented Development 193 11 Declarative Services 195 III Practical OSGi 197 12 Testing OSGi Bundles 199 13 Using Third-Party Libraries 201 14 Building Web Applications 203 IV Appendices 205 A Bundle Tracker 207 B ANT Build System for Bnd 211 DRAFT PREVIEW List of Figures 1.1 The standard Java class loader hierarchy.............7 1.2 Example of an internal JAR dependency.............9 1.3 A broken internal JAR dependency................ 10 1.4 Clashing Version Requirements.................. 11 1.5 A typical J2EE class loader hierarchy............... 14 1.6 The OSGi class loader graph.................... 17 1.7 Different Versions of the Same Bundle............... 20 2.1 Adding Felix as a User Library in Eclipse............ 30 2.2 Creating a new Java project in Eclipse: adding the Felix library 32 2.3 A New OSGi Project, Ready to Start Work........... 33 2.4 Bundle Lifecycle.......................... 37 3.1 The runtime resolution of matching import and export..... 57 3.2 The runtime resolution of a Required Bundle.......... 60 3.3 Simplified OSGi Class Search Order............... 66 3.4 Full OSGi Search Order...................... 68 4.1 Service Oriented Architecture................... 78 4.2 Updating a Service Registration in Response to Another Service 91 5.1 The Mailbox GUI (Windows XP and Mac OS X)........ 112 5.2 The Mailbox GUI with a Mailbox Selected............ 113 6.1 Framework Calls and Callbacks in OSGi............. 116 6.2 The Dining Philosophers Problem, Simplified.......... 128 7.1 The Classic Observer Pattern................... 144 7.2 An Event Broker.......................... 146 7.3 A Listener Directory........................ 147 7.4 The Event Admin Service..................... 155 8.1 Inclusion Relationships of Bundle States............. 171 8.2 Bundle Transitions and Events.................. 175 8.3 Synchronous Event Delivery when Starting a Bundle...... 179 8.4 Asynchronous Event Delivery after Starting a Bundle..... 180 8.5 Editing an Extension Point in Eclipse PDE........... 182 DRAFT PREVIEW viii List of Figures 8.6 Editing an Extension in Eclipse PDE............... 183 B.1 OSGi Project Structure...................... 212 DRAFT PREVIEW List of Code Listings 2.1 A Typical OSGi MANIFEST.MF File.............. 25 2.2 A Typical Bnd Descriptor File.................. 27 2.3 Hello World Activator....................... 35 2.4 Bnd Descriptor for the Hello World Activator.......... 35 2.5 Bundle Counter Activator..................... 42 2.6 Bnd Descriptor for the Bundle Counter............. 42 2.7 Heartbeat Activator........................ 43 2.8 Hello Updater Activator...................... 45 3.1 The Message Interface....................... 49 3.2 The Mailbox Interface....................... 50 3.3 Mailbox API Exceptions...................... 51 3.4 Bnd Descriptor for the Mailbox API............... 52 3.5 String Message........................... 54 3.6 Fixed Mailbox........................... 55 3.7 MANIFEST.MF generated from fixed_mailbox.bnd ....... 56 3.8 Bnd Sample: Controlling Bundle Contents............ 58 3.9 Bnd Sample: Controlling Imports................. 58 4.1 Naïve Solution to Instantiating an Interface........... 76 4.2 Welcome Mailbox Activator.................... 79 4.3 Bnd Descriptor for the Welcome Mailbox Bundle........ 80 4.4 File Mailbox Activator....................... 82 4.5 File Mailbox (Stub Implementation)............... 83 4.6 Bnd Descriptor for File Mailbox Bundle............. 83 4.7 Message Count Activator..................... 85 4.8 Bnd Descriptor for the Message Counter Bundle........ 86 4.9 Adding Service Properties to the Welcome Mailbox....... 87 4.10 Message Count
Recommended publications
  • Gaming Cover Front
    Gaming A Technology Forecast Implications for Community & Technical Colleges in the State of Texas Authored by: Jim Brodie Brazell Program Manager for Research Programs for Emerging Technologies Nicholas Kim IC² Institute Program Director Honoria Starbuck, PhD. Eliza Evans, Ph.D. Michael Bettersworth, M.A. Digital Games: A Technology Forecast Authored by: Jim Brodie Brazell Nicholas Kim Honoria Starbuck, PhD. Program Manager for Research, IC² Institute Eliza Evans, Ph.D. Contributors: Melinda Jackson Aaron Thibault Laurel Donoho Research Assistants: Jordan Rex Matthew Weise Programs for Emerging Technologies, Program Director Michael Bettersworth, M.A. DIGITAL GAME FORECAST >> February 2004 i 3801 Campus Drive Waco, Texas 76705 Main: 254.867.3995 Fax: 254.867.3393 www.tstc.edu © February 2004. All rights reserved. The TSTC logo and the TSTC logo star are trademarks of Texas State Technical College. © Copyright IC2 Institute, February 2004. All rights reserved. The IC2 Institute logo is a trademark of The IC2 Institute at The Uinversity of Texas at Austin. This research was funded by the Carl D. Perkins Vocational and Technical Act of 1998 as administered by the Texas Higher Education Coordinating Board. ii DIGITAL GAME FORECAST >> February 2004 Table of Contents List of Tables ............................................................................................................................................. v List of Figures ..........................................................................................................................................
    [Show full text]
  • 1 Introduction
    User Customization of Virtual Network Interfaces with U-Net/SLE David Opp enheimer and Matt Welsh fdavidopp,[email protected] Decemb er 9, 1997 Abstract We describ e U-Net/SLE Safe Language Extensions, a user-level network interface architecture which enables p er-application customization of communication semantics through downloading of user extension applets, imple- mented as Java class les, into the network interface. This architecture p ermits application s to safely sp ecify co de to b e executed within the NI on message transmission and reception. By leveraging the existing U-Net mo del, applications may implement proto col co de at the user level, within the NI, or using some combination of the two. Our current implementation, using the Myricom Myrinet interface and a small Java Virtual Machine subset, obtains go o d p erformance, allowing host communication overhead to b e reduced and improving the overlap of communication and computation during proto col pro cessing. 1 Intro duction Recentwork in high-sp eed interconnects for distributed and parallel computing architectures, particularly workstation clusters, has fo cused on developmentofnetwork interfaces enabling low-latency and high-bandwidth communication. Often, these systems bypass the op erating system kernel to achieve high p erformance; however the features and functionality provided by these di erent systems vary widely. Several systems, such as U-Net [26] and Active Messages [27], virtualize the network interface to provide multiple applications on the same host with direct, protected network access. Other systems, including Fast Messages [16] and BIP [17], eschew sharing the network in lieu of design simplicity and high p erformance.
    [Show full text]
  • Web Services Edge East Conference & Expo Featuring FREE Tutorials, Training Sessions, Case Studies and Exposition
    JAVA & LINUX FOCUS ISSUE TM Java COM Conference: January 21-24, 2003 Expo: January 22-24, 2003 www.linuxworldexpo.com The Javits Center New York, NY see details on page 55 From the Editor Alan Williamson pg. 5 Java & Linux A Marriage Made in Heaven pg. 6 TCO for Linux Linux Fundamentals: Tools of the Trade Mike McCallister ...and J2EE Projects pg. 8 Programming Java in Linux – a basic tour $40010 60 Linux Vendors Life Is About Choices pg. 26 Feature: Managing HttpSession Objects2003 SAVEBrian A. Russell 8 PAGE CONFERENCE Create a well-designed session for a better Web appEAST INSERT PAGE18 63 Career Opportunities Bill Baloglu & Billy Palmieri DGE pg. 72 Integration: PackagingE Java Applications Ian McFarland for OS X Have great looking double-clickable applications 28 Java News ERVICES pg. 60 S EB Specifications: JCP Expert Group Jim Van Peursem JDJ-IN ExcerptsW Experiences – JSR-118 An inside look at the process 42 SPECIALpg. 61 INTERNATIONAL WEB SERVICES CONFERENCE & EXPO Letters to the Editor Feature: The New PDA Profile Jim Keogh OFFER!pg. 62 The right tool for J2ME developers 46 RETAILERS PLEASE DISPLAY UNTIL MARCH 31, 2003 Product Review: exe4j Jan Boesenberg by ej-technologies – a solid piece of software 56 Interview: JDJ Asks ...Sun on Java An exclusive chance to find out what’s going on at Sun 58 SYS -CON Blair Wyman MEDIA Cubist Threads: ‘(Frozen)’ A snow-packed Wyoming highway adventure 74 Everybody’s focused on exposing applications as Web services while letting someone else figure out how to connect them. We’re that someone else.
    [Show full text]
  • The Personaljava Platform: a Revolution
    SUN MICROSYSTEMS BROCHURE PERSONALJAVA™ The PersonalJava™ Platform A REVOLUTION PERSONALJAVA™ TECHNOLOGY FOR CONSUMER DEVICES Since PersonalJava™ technology was introduced, it has enjoyed widespread support and momentum in the consumer electronics industry. PersonalJava technology is a revolutionary software environment designed to bring the power of Java™ technology to personal, consumer, and mobile devices. Based on Sun’s acclaimed Java application environment, PersonalJava technology is ushering in a new era of network-connectable devices that can communicate with a wide range of information sources on the World Wide Web or other network. Already, devices such as web phones, digital set-top boxes, personal digital assistants (PDA’s) and car navigation systems are rolling out with this exciting technology. With the PersonalJava platform, new content and functionality An address book application using the baseline Touchable can be delivered to the device after it is in the hands of look-and-feel design. the end-user, thereby enriching the device’s usefulness and product life. Broad Adoption From its inception, PersonalJava technology was designed to shift the burden of innovation in consumer electronics from hardware to software where the development cycles Applications and Applets are faster, the business model is more leveraged, and the pace of innovation is accelerated. Everything you need for Optional Libraries innovation is already in place, including a broad industry knowledge base about Java software, and the infrastructure to support it. All of this can help you to lower your reliance on proprietary systems and their accompanying support PersonalJava costs. Since writing to the PersonalJava API means using Core Required Libraries Platform the popular Java programming language, the standard Java™ Development Kit (JDK™) toolkit or familiar off-the- shelf development tools can be used.
    [Show full text]
  • OPEN SOURCE VERSUS the JAVA Platformpg. 6
    OPEN SOURCE VERSUS THE JAVA PLATFORM pg. 6 www.JavaDevelopersJournal.com Web Services Edge West 2003 Sept. 30–Oct. 2, 2003 Santa Clara, CA details on pg. 66 From the Editor Best Laid Plans... Alan Williamson pg. 5 Viewpoint In Medias Res Bill Roth pg. 6 Q&A: JDJ Asks... IBM-Rational J2EE Insight Interview with Grady Booch 10 We Need More Innovation Joseph Ottinger pg. 8 Feature: JSP 2.0 Technology Mark Roth J2SE Insight The community delivers a higher performing language 16 Sleeping Tigers Jason Bell pg. 28 Graphical API: Trimming the Fat from Swing Marcus S. Zarra Simple steps to improve the performance of Swing 30 J2ME Insight The MIDlet Marketplace Glen Cordrey pg. 46 Feature: Xlet: A Different Kind of Applet Xiaozhong Wang The life cycle of an Xlet 48 Industry News for J2ME pg. 68 Network Connectivity: java.net.NetworkInterface Duane Morin Letters to the Editor A road warrior’s friend – detecting network connections 58 pg. 70 RETAILERS PLEASE DISPLAY Labs: ExtenXLS Java/XLS Toolkit Peter Curran UNTIL SEPTEMBER 30, 2003 by Extentech Inc. – a pure Java API for Excel integration 62 JSR Watch: From Within the Java Community Onno Kluyt Process Program More mobility, less complexity 72 From the Inside: The Lights Are On, SYS -CON MEDIA but No One’s Home Flipping bits 74 WE’VE ELIMINATED THE NEED FOR MONOLITHIC BROKERS. THE NEED FOR CENTRALIZED PROCESS HUBS. THE NEED FOR PROPRIETARY TOOL SETS. Introducing the integration technology YOU WANT. Introducing the Sonic Business Integration Suite. Built on the Business Integration Suite world’s first enterprise service bus (ESB), a standards-based infrastructure that reliably and cost-effectively connects appli- cations and orchestrates business processes across the extended enterprise.
    [Show full text]
  • Architectural Frameworks for Automated Content Adaptation to Mobile Devices Based on Open-Source Technologies
    Architectural Frameworks for Automated Content Adaptation to Mobile Devices Based on Open-Source Technologies Thesis submitted to the Faculty of Economics of the European University Viadrina (Frankfurt/Oder) in fulfillment of the requirements for the degree of Dr. rer. pol. Author: Bożena Jankowska First Advisor: Prof. Dr. Eberhard Stickel Second Advisor: Prof. Dr. Karl Kurbel Submitted: 03.11.2006 Thesis defense: 06.09.2007 Abstract The Web and enterprise information systems are gradually increasing their reach to a wide range of mobile devices. Although analysts hope for a breakthrough in the popularity of mobile solutions, field studies show that, except for Japan and South Korea, there is still a large gap between the technical capabilities of wireless devices/networks and the adoption of mobile services for business and private use. This paradox can be attributed to a high extent to low quality of existing mobile solutions and to their insufficient usability, represented particularly by two attributes: simplicity of use and content relevance. Additionally, network providers are afraid that mobile Internet could cannibalize their revenues from SMS and entertainment services and do not want to cooperate with service providers to improve the quality of services offered. Wireless applications depend on device-specific features such as input/output mechanisms, screen sizes, computing resources, and support for various multimedia formats and languages. This leads to the need for multi-source authoring - the creation of separate presentations for each device type or, at least, for each class of devices. Multi-source authoring is not a cost-efficient and feasible solution, especially for mobile services consisting of numerous pages.
    [Show full text]
  • JTRON on Javachip
    JavaJavaTMTM SolutionsSolutions forfor EmbeddedEmbedded AppliancesAppliances JTRON on picoJava IITM Electronic Devices Group FUJITSU LIMITED Haruyasu Ito 1 JavaTM - Infrastructure for a Connected World BS DTV SOHO Broadcasters Base Station Home LAN Mobile Broadcasters Navigation System Enterprise System Internet Mobile Phone Mobile terminal E-Commerce IC Card Agent Electronic Watermark Authentication Java Encryption XML WWW mail The Internet’s TCP/IP HTML Multimedia news base technologies 2 JavaTM Characteristics Java TM refers to a application programming language as well as an execution environment developed by Sun Microsystems, that is platform independent. • High programmer productivity → Improved productivity in software development due to being object oriented language, and high reusability etc. • Platform independence → Doesn’t depend on CPU. ‘Write once, run anywhere’. • Ideal for networked communications → Downloadable Java applets (small program + data) → Compact bytecode for transmission. → Built in security for safe network communications. → Equipped with TCP/IP protocol. Through the Internet, has spread rapidly Java 3 JavaTM Developments Downsizing - Expanding into Embedded Devices 95 96 97 98 99 00 01 02 03 04 i-mode i-mode WCDMA phone with Java Home Appliances DTV Navigation Game Mobile Mobile Mainframe PC/WS NC/POS Phone : terminal : •95/3 •96/1 JDK1.0 release •99/2 Java2 source code opened JavaOS/VM Java a-version •97/2 JDK1.1 release goes public •97/11 JavaOS for NCs1.1 •98/8 JavaOS for Business1.0 •98/3 JavaOS for Consumers
    [Show full text]
  • Jini™Architectureoverview
    JiniArchitectureOverview Jim Waldo A Jini system is a Java-centric distributed system designed for simplicity, flexibility,andfederation.TheJiniarchitectureprovidesmechanismsformachines or programs to enter into a federation where each machine or program offers resources to other members of the federation and uses resources as needed. The design of the Jini architecture exploits the ability to move Java language code from machine to machine and unifies under the notion of a service everything from the user of a Jini system to the software available on the machines to the hardware components of the machines themselves. 1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, CA 94303 U.S.A. All rights reserved. Copyright in this document is owned by Sun Microsystems, Inc. Sun Microsystems, Inc. (SUN) hereby grants to you at no charge a nonexclusive, nontransferable, worldwide, limited license (without the right to sublicense) under SUN’s intellectual property rights that are essential to use this Specification for internal evaluation purposes only. Other than this limited license, you acquire no right, title, or interest in or to the Specification and you shall have no right to use the Specification for productive or commercial use. RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the U.S. Government is subject to restrictions of FAR 52.227-14(g)(2)(6/87) and FAR 52.227-19(6/87), or DFAR 252.227-7015(b)(6/95) and DFAR 227.7202-1(a). This software and documentation is the proprietary information of Sun Microsystems, Inc. You shall use it only in accordance with the terms of the license agreement you entered into with Sun.
    [Show full text]
  • Développons En Java
    Développons en Java Jean Michel DOUDOUX Table des matières Développons en Java.............................................................................................................................................................1 Préambule..............................................................................................................................................................................2 A propos de ce document.........................................................................................................................................2 Remerciements.........................................................................................................................................................3 Notes de licence.......................................................................................................................................................3 Marques déposées....................................................................................................................................................4 Historique des versions............................................................................................................................................4 Partie 1 : les bases du langage Java....................................................................................................................................6 1. Présentation.......................................................................................................................................................................7
    [Show full text]
  • Oct-07 Java Jazz up 1 2 Java Jazz up Oct-07 Editorial
    Oct-07 Java Jazz Up 1 2 Java Jazz Up Oct-07 Editorial Dear Readers, October 2007 Volume I Issue IV We are here again with the fourth issue of Java Jazz-up. The current edition highlights the interesting Java technologies in form of articles developed by the Java “ Just don’t do because others are doing, Give Jazz-up Developer’s Team. This issue reflects our it a thought…. consistent attempts to avail the quality technological Still circumstances want you to do the same updates that enforce the readers to appreciate a lot and Just explore a smarter way to get the deeds be a part of its Readers Community. in perfection ” With this issue, we have begun few of the new sections like Editorial Choice, Java ME and Know The Champions. Published by The Editorial Choice section highlights the editor’s viewpoint orienting around the java innovations in diverse RoseIndia spheres of human interest. This section talks high of JavaFX Technology and tries to avail its features which JavaJazzUp Team aims to provide a consistent user experience across a wide variety of devices including desktops (as applets and stand-alone clients), set-top boxes, mobile devices Editor-in-Chief and Blu-Ray players. Java ME section highlights the role of java in the Deepak Kumar development of softwares for small, resource-constrained devices such as cell phones, PDAs and set-top boxes. Editor-Technical Next, newer section is “Know The Champions” which highlights the “Java Champions program” sponsored by Ravi Kant Sun Microsystems. This program is an effort to recognize Noor-En-Ahmed leaders in the Java Community and invite them to participate in the development of the Java platform in collaboration with Sun engineers and Java Luminaries.
    [Show full text]
  • A Taxonomy of Compositional Adaptation Technical Report MSU-CSE-04-17 May 2004 (Updated July 2004)
    A Taxonomy of Compositional Adaptation Technical Report MSU-CSE-04-17 May 2004 (Updated July 2004) Philip. K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, and Betty H. C. Cheng Software Engineering and Network Systems Laboratory Department of Computer Science and Engineering Michigan State University East Lansing, Michigan 48824 mckinley,sadjadis,kasten,cheng ¡ @cse.msu.edu Abstract Driven by the emergence of pervasive computing and the increasing need for self-managed systems, many approaches have been proposed for building software that can dynamically adapt to its environ- ment. These adaptations involve not only changes in program flow, but also run-time recomposition of the software itself. We discuss the supporting technologies that enable dynamic recomposition and clas- sify different approaches according to how, when and where recomposition occurs. We also highlight key challenges that need to be addressed to realize the full potential of run-time adaptable software. This survey is intended to be a living document, updated periodically to summarize and classify new contri- butions to the field. The document is maintained under the RAPIDware project web site, specifically, at http://www.cse.msu.edu/rapidware/survey. Keywords: adaptive software, compositional adaptation, middleware, survey, taxonomy, pervasive com- puting, autonomic computing, computational reflection, separation of concerns, component-based de- sign, aspect-oriented programming, object-oriented programming. 1 Introduction Interest in adaptive computing systems has grown dramatically in the past few years, and the research community has responded. A variety of techniques now enable software to adapt dynamically to its current use or environmental conditions. Even the structure of the software itself can be changed during execution to fix errors, improve performance, enhance fault tolerance, or harden security in response to attack.
    [Show full text]
  • Ispitivanje Sigurnosti Mobilnih Aplikacija
    Ispitivanje sigurnosti mobilnih aplikacija studeni 2011. CIS-DOC-2011-11-030 Ispitivanje sigurnosti mobilnih aplikacija Upozorenje Podaci, informacije, tvrdnje i stavovi navedeni u ovom dokumentu nastali su dobrom namjerom i dobrom voljom te profesionalnim radom CIS-ovih stru čnjaka, a temelje se na njihovom znanju i petnaestak godina iskustva u radu u informacijskoj sigurnosti. Namjera je da budu to čni, precizni, aktualni, potpuni i nepristrani. Ipak, oni su dani samo kao izvor informacija i CIS ne snosi nikakvu izravnu ili posrednu odgovornost za bilo kakve posljedice nastale korištenjem podataka iz ovog dokumenta. Ukoliko primijetite bilo kakve neto čnosti, krive podatke ili pogreške u ovom dokumentu, ili imate potrebu komentirati sadržaj molimo Vas da to javite elektroni čkom poštom na adresu [email protected] . O CIS-u CIS izra đuje pregledne dokumente (eng. white paper) na teme iz podru čja informacijske sigurnosti koji će biti korisni zainteresiranoj javnosti, a u svrhu podizanje njezine svijesti o informacijskoj sigurnosti i sposobnosti za čuvanje i zaštitu informacija i informacijskih sustava . Pored toga, CIS razvija i održava mrežni portal www.CIS.hr kao referalnu to čku za informacijsku sigurnost za cjelokupnu javnost; izra đuje obrazovne materijale namijenjene javnosti; organizira doga đaje za podizanje svijesti o informacijskoj sigurnosti u javnosti i pojedinim skupinama te djeluje u suradnji sa svim medijima. CIS okuplja mlade zainteresirane za informacijsku sigurnost i radi na njihovom pravilnom odgoju i obrazovanju u podru čju informacijske sigurnosti te pripremu za profesionalno bavljenje informacijskom sigurnoš ću. Centar informacijske sigurnosti [CIS] nastao je 2010. godine na poticaj Laboratorija za sustave i signale[LSS] Zavoda za elektroni čke sustave i obradbu informacija Fakulteta elektrotehnike i ra čunarstva Sveu čilišta u Zagrebu, a kao posljedica 15togodišnjeg rada na istraživanju, razvoju i primjeni informacijske sigurnosti.
    [Show full text]