Mac OS X Development Tools Overview

Total Page:16

File Type:pdf, Size:1020Kb

Mac OS X Development Tools Overview Mac OS X Development Tools Overview February 25, 2004 Java and all Java-based trademarks are Apple Computer, Inc. trademarks or registered trademarks of Sun © 2003, 2004 Apple Computer, Inc. Microsystems, Inc. in the U.S. and other All rights reserved. countries. OpenGL is a trademark of Silicon Graphics, No part of this publication may be Inc. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, PowerPC and and the PowerPC logo are mechanical, electronic, photocopying, trademarks of International Business recording, or otherwise, without prior Machines Corporation, used under license written permission of Apple Computer, Inc., therefrom. with the following exceptions: Any person X Window System is a trademark of the is hereby authorized to store documentation Massachusetts Institute of Technology. on a single computer for personal use only Simultaneously published in the United and to print copies of documentation for States and Canada. personal use provided that the documentation contains Apple’s copyright Even though Apple has reviewed this manual, APPLE MAKES NO WARRANTY OR notice. REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, The Apple logo is a trademark of Apple ITS QUALITY, ACCURACY, Computer, Inc. MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS Use of the “keyboard” Apple logo MANUAL IS SOLD ªAS IS,º AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE (Option-Shift-K) for commercial purposes RISK AS TO ITS QUALITY AND ACCURACY. without the prior written consent of Apple IN NO EVENT WILL APPLE BE LIABLE FOR may constitute trademark infringement and DIRECT, INDIRECT, SPECIAL, INCIDENTAL, unfair competition in violation of federal OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR and state laws. INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages. No licenses, express or implied, are granted THE WARRANTY AND REMEDIES SET with respect to any of the technology FORTH ABOVE ARE EXCLUSIVE AND IN described in this document. Apple retains LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer, agent, all intellectual property rights associated or employee is authorized to make any with the technology described in this modification, extension, or addition to this document. This document is intended to warranty. assist application developers to develop Some states do not allow the exclusion or limitation of implied warranties or liability for applications only for Apple-labeled or incidental or consequential damages, so the Apple-licensed computers. above limitation or exclusion may not apply to you. This warranty gives you specific legal Every effort has been made to ensure that rights, and you may also have other rights which the information in this document is vary from state to state. accurate. Apple is not responsible for typographical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014 408-996-1010 Apple, the Apple logo, AppleScript, AppleScript Studio, Aqua, Carbon, Cocoa, Mac, Mac OS, Macintosh, MPW, QuickTime, Sherlock, and WebObjects are trademarks of Apple Computer, Inc., registered in the United States and other countries. Finder, Quartz, and Xcode are trademarks of Apple Computer, Inc. Objective-C is a trademark of NeXT Software, Inc. Contents Chapter 1 Introduction 9 Who Should Read This Document 9 Organization of This Document 10 See Also 10 Chapter 2 Getting Started 13 About Xcode 13 The Mac OS X Application Environments 14 Carbon 15 Cocoa 15 BSD and Darwin 16 Java 16 Classic 17 Development Projects and System Architecture 17 What to Read Next 18 Developers New to the Macintosh 18 Experienced Macintosh Developers, Pre±Mac OS X 20 Macintosh Developers With a Non-Apple IDE 21 Tool Developers 21 Plug-in Developers 21 Developers of Drivers and System Software 22 Pure Java Developers 22 Solutions Providers 23 QuickTime Developers 24 Chapter 3 The Apple Integrated Development Environment 25 Features of the Xcode Application 25 Creating a Project 26 Writing an Application 27 Carbon-Based Applications 27 Cocoa-Based Applications 28 Using Interface Builder to Add a UI to a Program 30 3 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. CONTENTS Chapter 4 Development Process 33 Designing an Application 34 Designing a User Interface 35 Creating Source Code 36 Localization 36 Documenting Code 37 Help 37 Property Lists 37 Icons 37 Graphics 37 Source-Code Utilities 38 Version Control 38 Debugging and Tuning 38 Memory Use 39 Efficiency of Execution 39 Graphics 40 Packaging 40 Copying and Moving Files 41 Libraries 41 Chapter 5 Notes for Specific Project Types 43 Scripting 43 Creating Frameworks 44 Standard Apple Plug-in Projects 45 Tool Projects 45 Java 46 Java Remote Interface 46 Debugging Java Applications 47 Packaging Java Applications 47 Kernel Extensions 47 Networking Extensions 48 I/O Kit Drivers 48 WebObjects 49 Appendix A Tool Descriptions 51 Creating Source Code 51 Localization Tools 51 Documentation and Help Tools 52 Compilers, Linkers, Build Tools 52 Library Utilities 53 Code Utilities 54 Version Control 56 RCS 56 4 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. CONTENTS CVS 56 Comparing Files 57 Debugging and Tuning 57 General 57 Memory 58 Graphics 59 Examining Code 59 Performance 60 KEXTs, Drivers, and Instruction Traces 61 Packaging 62 Scripting 63 Interpreters and Compilers 63 Script Language Converters 64 Perl Tools 64 Parsers and Lexical Analyzers 65 Documentation Tools 65 Java 66 General 66 Java Utilities 66 Java Archive (JAR) Files 67 Kernel Extensions 68 I/O Kit Drivers 68 Document Revision History 71 Index 73 5 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. CONTENTS 6 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. Figures Chapter 2 Getting Started 13 Figure 2-1 Xcode application 14 Figure 2-2 Mac OS X system architecture and development environments 18 Chapter 3 The Apple Integrated Development Environment 25 Figure 3-1 Interface Builder windows for a new Carbon project 30 Figure 3-2 Interface Builder windows for a new Cocoa project 31 Chapter 4 Development Process 33 Figure 4-1 The software development process 34 7 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. FIGURES 8 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. CHAPTER 1 Introduction Mac OS X, with its heritage of great user interfaces and its roots in a solid, open-source UNIX implementation, is the most advanced computer operating system available today. Because of the selection of development environments and tools available for it, Mac OS X is also the easiest platform to write software for. Whether you want to take advantage of the rapid development afforded by Apple's object-oriented frameworks (Cocoa), or the power and flexibility of its procedural API (Carbon), there is a large assortment of tools available for your use. The Xcode application, Interface Builder, and the other tools that constitute Apple's full-featured integrated development environment (IDE) work equally well with Carbon and Cocoa and can also be used for cross-platform UNIX and Java development. The Xcode software development tool set includes the IDE, other applications and command-line tools written by Apple, and many tools written by other companies and by the UNIX open-source community. This document introduces the software development tools provided on the Xcode CD (also available on the Apple Developer Connection website at http://developer.apple.com), puts the various tools in the context of the development process, and briefly describes each tool so you can determine when you might want to use it. The tools in the Xcode tool set include many written by Apple, plus a variety of tools available from other sources and provided by Apple for your convenience. Whether you are new to Mac OS X or an old hand, this document will help you find the tools you need. Who Should Read This Document This document is intended for all developers of Mac OS X software. If you are new to developing software for Mac OS X, read the remaining sections in this Introduction to determine which development environment to use and to learn which additional sections of this document to read. If you are an experienced Mac OS X software developer, this document can serve as a resource to help you find the right tool for a specific task. You can skim through it to get an idea of what tools are available and come back to it later when you need to locate a tool for a specific purpose. Who Should Read This Document 9 © 2003, 2004 Apple Computer, Inc. All Rights Reserved. CHAPTER 1 Introduction Organization of This Document This document outlines the software development process, tells you which tools are useful at each stage of development, and lists and describes all the tools available from Apple. This document contains the following chapters: ■ ªGetting Startedº (page 13) explains what Xcode and the Xcode application are, describes the different sorts of development projects that can be undertaken using Apple's tools, describes how each type of development project relates to the system architecture, and tells youÐbased on your experience and the type of project you intend to undertakeÐwhat to read next. ■ ªThe Apple Integrated Development Environmentº (page 25) provides a brief introduction to The Xcode application and Interface Builder, including a summary of their capabilities and how they interact with each other and with other tools. The Xcode application is the core application of Apple's integrated development environment (IDE) for Mac OS X. Together with Interface Builder and the other tools in the IDE, it provides all of the features you need to build a program for the Mac OS X platform, whether it's an application, kernel extension, shared library, or tool. ■ ªDevelopment Processº (page 33) gives an outline of the software development process for Carbon and Cocoa applications, and describes how the Xcode tools support this process.
Recommended publications
  • Kutrace: Where Have All the Nanoseconds Gone?
    KUTrace: Where have all the nanoseconds gone? Richard Sites, Invited Professor EPFL 2017.10.27 Tracing Summit 2017, Prague Richard Sites 2017.10.27 Outline Observability problem statement KUTrace solution Tracing design goals Goals drive the design Results Display Design Comparisons Conclusions Richard Sites 2017.10.27 Observability problem statement Richard Sites 2017.10.27 3 Problem statement This talk is about tail latency in real user-facing datacenter transactions. It is not about batch processing throughput, nor about benchmarks. Context: A datacenter of perhaps 20,000 servers running software services that spread work for a user-facing transaction across a few hundred or thousand machines in parallel. Each server handles hundreds of transactions per second. Some transactions are unusually slow, but not repeatably. Slow transactions occur unpredictably, but there are several per minute. We wish to observe where all the time goes in such transactions, and observe why they are slow. Richard Sites 2017.10.27 Problem statement ☞ Some transactions are unusually slow, but not repeatably. ∴ There is some source of interference just before or during a slow transaction. Understanding tail latency requires complete traces of CPU events over a few minutes, with small enough CPU and memory overhead to be usable under busiest-hour live load. Existing tracing tools have much-too-high overhead. Problem: build better tail-latency observation tools Richard Sites 2017.10.27 KUTrace solution Richard Sites 2017.10.27 6 KUTrace solution KUTrace uses minimal Linux kernel patches on a single server to trace every transition between kernel- and user-mode execution, on every CPU core, with small enough overhead to use routinely on live loads.
    [Show full text]
  • Doxydoxygen User Guide Release 0.79.4
    DoxyDoxygen User Guide Release 0.79.4 20Tauri Aug 16, 2021 MANUAL 1 Welcome to DoxyDoxygen 1 2 Installation 3 2.1 Software installation with Package Control...............................3 2.2 Manual software installation.......................................3 2.3 License installation............................................4 2.4 EULA (End User License Agreement)..................................4 2.4.1 Licenses.............................................4 2.4.2 Description of other rights and limitations...........................4 2.4.3 No warranties..........................................5 3 Usage 7 3.1 Create a documentation block......................................7 3.2 Update / wrap an existing documentation block.............................8 3.3 Switch between comment styles.....................................9 3.4 Extend a documentation block......................................9 3.4.1 Auto-completion........................................9 3.4.2 Comment continuation..................................... 10 3.5 Navigate in documentation........................................ 10 3.5.1 Move to the right column.................................... 10 3.5.2 Follow references........................................ 10 3.6 Fold / Unfold comments......................................... 11 3.7 Translate................................................. 11 3.8 Generate documentation......................................... 12 4 Customization 13 4.1 Settings.................................................. 13 4.1.1 Understand
    [Show full text]
  • Use of the Protocol Generator
    Manual for the protocol generator Table of contents Manual for the protocol generator.....................................................................................................................1 Introduction..................................................................................................................................................3 Acknowledgements.......................................................................................................................................................3 Preparation and installation..........................................................................................................................4 Preparation for Presentation *.log file before acquiring data........................................................................................4 Installation......................................................................................................................................................................5 Using the protocol generator........................................................................................................................6 Activating the plugin......................................................................................................................................................6 Main menu.....................................................................................................................................................................7 Option 1: generating a protocol file..............................................................................................................8
    [Show full text]
  • Debugging Kernel Problems
    Debugging Kernel Problems by GregLehey Edition for AsiaBSDCon 2004 Taipei, 13 March 2004 Debugging Kernel Problems by GregLehey([email protected]) Copyright © 1995-2004 GregLehey 3Debugging Kernel Problems Preface Debugging kernel problems is a black art. Not manypeople do it, and documentation is rare, in- accurate and incomplete. This document is no exception: faced with the choice of accuracyand completeness, I chose to attempt the latter.Asusual, time was the limiting factor,and this draft is still in beta status. This is a typical situation for the whole topic of kernel debugging: building debug tools and documentation is expensive,and the people who write them are also the people who use them, so there'satendencytobuild as much of the tool as necessary to do the job at hand. If the tool is well-written, it will be reusable by the next person who looks at a particular area; if not, it might fall into disuse. Consider this book a starting point for your own develop- ment of debugging tools, and remember: more than anywhere else, this is an area with ``some as- sembly required''. Debugging Kernel Problems 4 1 Introduction Operating systems fail. All operating systems contain bugs, and theywill sometimes cause the system to behave incorrectly.The BSD kernels are no exception. Compared to most other oper- ating systems, both free and commercial, the BSD kernels offer a large number of debugging tools. This tutorial examines the options available both to the experienced end user and also to the developer. In this tutorial, we’ll look at the following topics: • Howand whykernels fail.
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • Headerdoc Unfettered
    HeaderDoc Unfettered May 27, 2004 CDB is a trademark of Third Eye Software, Apple Computer, Inc. Inc. © 1999, 2004 Apple Computer, Inc. Helvetica is a trademark of Heidelberger All rights reserved. Druckmaschinen AG, available from Linotype Library GmbH. No part of this publication may be reproduced, stored in a retrieval system, or Java and all Java-based trademarks are transmitted, in any form or by any means, trademarks or registered trademarks of Sun mechanical, electronic, photocopying, Microsystems, Inc. in the U.S. and other recording, or otherwise, without prior countries. written permission of Apple Computer, Inc., Simultaneously published in the United with the following exceptions: Any person States and Canada. is hereby authorized to store documentation Even though Apple has reviewed this manual, on a single computer for personal use only APPLE MAKES NO WARRANTY OR and to print copies of documentation for REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, personal use provided that the ITS QUALITY, ACCURACY, documentation contains Apple's copyright MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS notice. MANUAL IS SOLD ªAS IS,º AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE The Apple logo is a trademark of Apple RISK AS TO ITS QUALITY AND ACCURACY. Computer, Inc. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, Use of the ªkeyboardº Apple logo OR CONSEQUENTIAL DAMAGES (Option-Shift-K) for commercial purposes RESULTING FROM ANY DEFECT OR without the prior written consent of Apple INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages.
    [Show full text]
  • Chapter 1. Origins of Mac OS X
    1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years.
    [Show full text]
  • Optimization of System's Performance with Kernel Tracing by Cohort Intelligence
    I.J. Information Technology and Computer Science, 2017, 6, 59-66 Published Online June 2017 in MECS (http://www.mecs-press.org/) DOI: 10.5815/ijitcs.2017.06.08 Optimization of System’s Performance with Kernel Tracing by Cohort Intelligence Aniket B. Tate Dept. of Computer Engineering, Vishwakarma Institute of Information Technology, Pune, 411048, India E-mail: [email protected] Laxmi A. Bewoor Dept. of Computer Engineering, Vishwakarma Institute of Information Technology, Pune, 411048, India E-mail: [email protected] Abstract—Linux tracing tools are used to record the execution time etc. which shows better results. While events running in the background on the system. But scheduling a process on one of the cores, the scheduler these tools lack to analyze the log data. In the field of considers the average waiting time, turnaround time, time Artificial Intelligence Cohort Intelligence (CI) is recently quantum for a process, number of context switches, proposed technique, which works on the principle of self- earliness, the tardiness of process etc. But the scheduler learning within a cohort. This paper presents an approach does not take CPU load into consideration. As a result of to optimize the performance of the system by tracing the this, the cores get unevenly loaded and many of the cores system, then extract the information from trace data and will be kept in ideal state. Cohort Intelligence (CI) is pass it to cohort intelligence algorithm. The output of recently introduced meta-heuristics [6][7] it works on cohort intelligence algorithm shows, how the load of the self-supervised learning behavior in a cohort.
    [Show full text]
  • BSD UNIX Toolbox 1000+ Commands for Freebsd, Openbsd
    76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page i BSD UNIX® TOOLBOX 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iv BSD UNIX® Toolbox: 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD® Power Users Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-37603-4 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data is available from the publisher. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permis- sion should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions.
    [Show full text]
  • Supporting the Development of a Vision and Strategic Plan for Zhejiang University’S Academic Medical Center
    Supporting the Development of a Vision and Strategic Plan for Zhejiang University’s Academic Medical Center Rafiq Dossani, Peggy G. Chen, Christopher Nelson C O R P O R A T I O N For more information on this publication, visit www.rand.org/t/RR2819 Library of Congress Cataloging-in-Publication Data is available for this publication ISBN: 978-1-9774-0196-0 Published by the RAND Corporation, Santa Monica, Calif. © Copyright 2019 RAND Corporation R® is a registered trademark. Cover image courtesy Zhejiang University Limited Print and Electronic Distribution Rights This document and trademark(s) contained herein are protected by law. This representation of RAND intellectual property is provided for noncommercial use only. Unauthorized posting of this publication online is prohibited. Permission is given to duplicate this document for personal use only, as long as it is unaltered and complete. Permission is required from RAND to reproduce, or reuse in another form, any of its research documents for commercial use. For information on reprint and linking permissions, please visit www.rand.org/pubs/permissions. The RAND Corporation is a research organization that develops solutions to public policy challenges to help make communities throughout the world safer and more secure, healthier and more prosperous. RAND is nonprofit, nonpartisan, and committed to the public interest. RAND’s publications do not necessarily reflect the opinions of its research clients and sponsors. Support RAND Make a tax-deductible charitable contribution at www.rand.org/giving/contribute www.rand.org Preface Zhejiang University is developing an academic medical center (AMC) in Hangzhou. The Center, which is under construction as of the writing of this report in late 2018, aims to undertake research and training and to provide clinical care in a collaborative and integrated environment.
    [Show full text]
  • Comments and Documentation 2501ICT/7421Ictnathan
    C Comments Using Doxygen Comments and Documentation 2501ICT/7421ICTNathan René Hexel School of Information and Communication Technology Griffith University Semester 1, 2012 René Hexel Comments and Documentation C Comments Using Doxygen Outline 1 C Comments 2 Using Doxygen René Hexel Comments and Documentation C Comments Using Doxygen Comments Plain C allows comments between /* and */ /* this is a valid C comment */ Comments may not be nested /* this /* is not a valid C comment */ */ C99 also allows double-slash // end-of-line comments // this is a valid comment no closing sequence needed – the comment ends at the end of the line René Hexel Comments and Documentation C Comments Using Doxygen Comment Example Example (Program with Comments) /* * This program prints "j = 007". * It does not take any parameters and returns 0 on success. */ int main(void)/ * main function definition */ { int j; // our int variable to play with j=7; // assign a value to be printed printf("j = %03.3dnn",j); // print value with leading zeroes return 0; // everything is fine, exit program } René Hexel Comments and Documentation C Comments Using Doxygen Where to put comments? At the beginning of each file (module) describe the name of the module, purpose, author, and dates when first created and last modified Before each function (method) describe the purpose of the function or method, input parameters (arguments), return values (output parameters), and pre- and postconditions (contract) At the beginning of each class describe the purpose of the class, and things to
    [Show full text]
  • Fedora 4 API Extension (API-‐X) Architecture
    Fedora 4 API Extension (API-X) Architecture The Sheridan Libraries at Johns Hopkins University request $120,500 from the Institute of Museum and Library Services (IMLS) to develop a service proxy layer on top of the Fedora 4 software platform that will facilitate the exposure of repository contents and services as linked data web resources. This work was initially inspired by a redesign and refactoring of the Data Conservancy1 software, which was initially prototyped by the Sheridan Libraries and a network of partners through a grant from the National Science Foundation’s (NSF) DataNet program. Following the end of DataNet funding, the Data Conservancy decided to apply the lessons learned and redesign and refactor the entire architecture and software platform. The re-imagined Data Conservancy infrastructure builds upon Fedora 4, a digital object repository platform whose development is led by the nonprofit DuraSpace2 organization. IMLS wisely emphasizes that any national digital platform must leverage and extend existing technology. There is an existing user base of Fedora software for institutional repositories that will grow given the important enhancements and robustness offered by Fedora 4. By providing architecture to deploy repository services as lightweight extensions, institutions that use Fedora 4 for their institutional repository needs would be automatically positioned to extend their platforms for more robust data management. As federal funding agencies respond to the White OSTP memoranda regarding public access to publications and data, it is becoming clear that simply depositing and subsequently downloading data will not be sufficient. The proposed work supports a vision of data management where data are packaged with information graphs that capture and preserve connections to publications and software.3 The direct audience for the proposed API-X work is Fedora 4 software developers and repository managers who support a range of cultural heritage institutions including libraries, museums and archives.
    [Show full text]