+ All Categories
Home > Documents > High-Level Architectural Model for DDI Applications

High-Level Architectural Model for DDI Applications

Date post: 31-Jan-2023
Category:
Upload: ualberta
View: 0 times
Download: 0 times
Share this document with a friend
18
Data Documentation Initiative DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 1 Best Practice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Subject: High-Level Architectural Model for DDI Applications (2009-02-22) Document identifier: DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Location: http://www.ddialliance.org/bp/DDIBestPractices_HighLevelArchitectureForApps.doc. PDF Authors: Karl Dinkelmann, Pascal Heus, Chuck Humphrey, Jeremy Iverson, Jannik Jensen, Sigbjørn Revheim, Joachim Wackerow Editors: Jeremy Iverson Intended audience: This document is for software designers who are developing DDI applications. The designers may be familiar or unfamiliar with the DDI specification. Abstract: This best practices document looks at a possible way to design components that can be combined to create DDI applications. Given that object-oriented design is the most common programming paradigm, and that systems are often based around service-oriented principles, and given the modular design of DDI 3.0 itself, this document provides an architectural model that can be a reference point for implementers. The document also takes into consideration issues of maintenance and management of DDI applications, and discusses best practices for application documentation and configuration. The focus is on interoperability of DDI applications. Status: This document is updated periodically on no particular schedule. Send comments to editor: [email protected] 29
Transcript

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 1

Best Practice 1

2 3

4 5

6 7 8

9 10 11

12 13

14 15 16

17 18 19 20 21 22 23 24 25 26

27 28

Subject: High-Level Architectural Model for DDI Applications (2009-02-22)

Document identifier: DDIBestPractices_HighLevelArchitectureForApps.doc.PDF

Location: http://www.ddialliance.org/bp/DDIBestPractices_HighLevelArchitectureForApps.doc.PDF

Authors: Karl Dinkelmann, Pascal Heus, Chuck Humphrey, Jeremy Iverson, Jannik Jensen, Sigbjørn Revheim, Joachim Wackerow

Editors: Jeremy Iverson

Intended audience: This document is for software designers who are developing DDI applications. The designers may be familiar or unfamiliar with the DDI specification.

Abstract: This best practices document looks at a possible way to design components that can be combined to create DDI applications. Given that object-oriented design is the most common programming paradigm, and that systems are often based around service-oriented principles, and given the modular design of DDI 3.0 itself, this document provides an architectural model that can be a reference point for implementers. The document also takes into consideration issues of maintenance and management of DDI applications, and discusses best practices for application documentation and configuration. The focus is on interoperability of DDI applications.

Status: This document is updated periodically on no particular schedule. Send comments to editor: [email protected] 29

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 2

Table of Contents 30

31

32

33

34

35

36

37

38

39

40

41

42

43

1 INTRODUCTION.................................................................................................... 3

1.1 Problem statement .................................................................................................................. 3

1.2 Terminology ............................................................................................................................. 3

2 BEST PRACTICE SOLUTION ........................................................................... 3

2.1 Definitions ................................................................................................................................ 3

2.2 Best Practice behavior............................................................................................................ 4

2.3 Discussion ............................................................................................................................. 11

2.4 Examples................................................................................................................................ 11

3 REFERENCES ................................................................................................. 14

3.1 Normative ............................................................................................................................... 14

APPENDIX A. ACKNOWLEDGMENTS ................................................................. 15

APPENDIX B. REVISION HISTORY ...................................................................... 17

APPENDIX C. LEGAL NOTICES ........................................................................... 18

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 3

44

45 46 47 48 49

51 52 53

55 56 57

60 61

62

63

64

65 66

67 68 69

70 71

72 73

1 Introduction This best practices document looks at a possible way to design components that can be combined to create DDI applications. The paper is targeted at developers, but it does not assume a high level of DDI knowledge. It is intended to serve as a starting point for developers new to the DDI.

1.1 Problem statement 50 Software developers who are new to the DDI 3.0 standard may find the standard daunting. This best practices document provides an overview of how an application may be structured so that developers have a starting point for the design of their application.

1.2 Terminology 54 The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this document are to be interpreted as described in [RFC2119]. Additional DDI standard terminology and definitions are found in http://www.ddialliance.org/definitions/.

2 Best Practice Solution 58

2.1 Definitions 59 DDI: When used without a version, DDI refers to the latest DDI specification, currently version 3.0. When older versions are referenced, the version number will be explicitly specified.

DDI community: Any person or organization working with the DDI specification.

DDI application: A software application that reads and/or writes DDI XML.

Specification: The DDI specification.

Component: A piece of software with a specific purpose with a well-defined input and well-defined output.

Middleware: In the context of this best practices paper, middleware refers to utilities that manage the interface between the DDI metadata model and application services or high-level end-user tools.

Task: An activity that a person undertakes in order to create, edit, or view documentation about data.

End user: Person performing work in the data life cycle for whom DDI metadata is required. The end user will likely not even be aware of the DDI metadata in the application he or she is using.

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 4

Java: Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed to have the "look and feel" of the

74 C++ language,

but it is simpler to use than C++ and enforces an 75

object-oriented programming model. 76

Eclipse: Eclipse is an ongoing project in support of an open source integrated development environment (

77 IDE). Eclipse provides a framework and a basic platform (called the Eclipse

Platform) that allows a company to build an integrated development environment from 78

plug-in software components provided by Eclipse members.

79 80

81 GNU-LGPL: The GNU Lesser General Public License (formerly the GNU Library General Public License) is a free software license published by the Free Software Foundation. 82

Unicode: Unicode is a computing industry standard allowing computers to consistently represent and manipulate

83 text expressed in most of the world's writing systems. 84

85

86 87

GUI: A GUI is a graphical (rather than purely textual) user interface to a computer.

API: An API (or Application Programming Interface) is a language and message format used by an application program to communicate with the operating system or some other control program such as a database management system (DBMS) or communications protocol. APIs are implemented by writing function calls in the program, which provide the linkage to the required subroutine for execution.

88 89 90

91 92

Internationalization: Internationalization is the process of planning and implementing products and services so that they can easily be adapted to specific local languages and cultures, a process called localization. 93

94 95 96

97 98 99

100 101 102

104 105 106 107 108 109

DDI instance: A DDI Instance is the top-level wrapper for any DDI document. It may contain a set of top-level elements, which generally correspond to the modular breakdown within DDI. Every DDI Instance will use this wrapper, regardless of its content.

Resource package: A resource package is a means of packaging any maintainable set of DDI metadata for referencing as part of a study unit or group. A resource package structures materials for publication that are intended to be reused by multiple studies, projects, or communities of users. A resource package uses the group module with an alternative top-level element called Resource Package that is used to describe maintainable modules or schemes that may be used by multiple study units outside of a group structure.

2.2 Best Practice behavior 103 Given that object-oriented design is the most common programming paradigm, and that systems are often based around service-oriented principles, and given the modular design of DDI itself, it makes sense to have a reference model for the componentization of functions within DDI-based systems. This document provides an overview of the component architecture that DDI applications may use. Additionally, it discusses resources available to developers creating DDI applications, as well as general software application development best practices.

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 5

110

111 112 113

114

115 116 117

118 119 120 121

DDI Profiles

DDI applications will inevitably support only a portion of the DDI specification. Applications should describe which portions of the standard they implement. This can be described using DDI profiles. See the Creating a DDI Profile Best Practice document for details.

DDI Application Components

This best practice defines a standard architectural model to be used as a reference point for implementers. This section describes several of the tiers and components that may be used in creating a DDI application.

Applications should be designed in such a way that each component has a single, stand-alone purpose. Components should avoid overlapping functionality. Depending on the development paradigm being used, components may take the form of assemblies, classes, methods, or other programming constructs.

122

123 Figure 1: Sample Component Model

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 6

124 125 126

127 128 129

130 131 132 133 134 135

136 137 138

139 140 141

142 143 144

145 146

147 148 149

150 151 152 153

154 155 156 157

Components may be created as needed by application developers. In some cases, it may be possible to use existing third-party components. For more information on possible sources of DDI-related components, see the DDI Application Development Resources section below.

Components that allow users to generate DDI should ideally implement the area of the specification completely so the end user can rely exclusively on the tool for that aspect of metadata management.

High-level components High level components are considered the software front-ends with which users interact. These could be rich desktop applications, Web applications, or command-line tools. These could include utilities with a single purpose such as extracting metadata from an existing file and storing it in DDI format, full-featured metadata creation and editing suites, or anything in between.

It should be clear to end users which stage of the data life cycle a tool addresses. The purpose of the tool will imply what sorts of things can be used as input, and what sorts of things will be output.

These applications should not necessarily mirror the DDI model, but should provide the user with a highly usable interface for working with the metadata. See the DDI Identifier Best Practices document for more information.

Application services Application services components are application services called by the high-level components. These could be in the form of Web services.

Examples include repositories based on DDI schemes such as question banks or concept banks.

DDI transmitted from or to application services may be held in resource packages. The DDI should be wrapped in a DDI instance element, even if only a small snippet of DDI is included. See DDI User Guide Part II, line 2215 for details.

Middleware components Middleware components are utilities that manage the interface between the DDI metadata model and application services or high-level end-user tools. Some examples of middleware components are described here.

Identifier Generation DDI requires specialized forms of identifiers. Application developers will need to create a component to create these identifiers. See the DDI Identifer Best Practices document for details [see References section].

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 7

158 159 160 161 162 163

164 165 166 167 168

169 170 171 172 173 174

175 176 177 178 179 180

181 182 183

184 185 186 187

188 189 190

191

192

URN Resolution In DDI, URN identifiers may be resolved to locate resources within a DDI instance. The DDI instance holding the identified resource could be held internally or externally to the current DDI instance. Application developers will want to create or use a specialized component to provide this URN resolution functionality. See the DDI URN Resolution Best Practices document for details [see References section].

DDI Validation In order to be valid, DDI instances generated by application components must validate against the DDI specification schema. Instances must also validate against second-level validation tools as described in the Interoperability with Other DDI Applications section below. Developers will want to use a component that provides this validation functionality.

DDI Manager A DDI Manager component allows developers to work with the underlying metadata model in a convenient manner. It provides access to metadata that are required for a specific task. It may provide access to the elements actually used by other components, instead of all DDI elements. It can also provide easy ways of retrieving desired elements by providing methods for searching and filtering.

Group Manager The DDI grouping mechanism allows the definition and redefinition of hierarchical relationships among objects. See DDI Overview Part I, line 1819 for details.An application may provide grouping functionality such as editing, regrouping, and extracting. This functionality will require a component that allows items to be put into groups, as well as for existing group structures to be edited.

Low-level components Low level components are the software libraries on top of which middleware and high-level components are implemented. Several examples follow, but this list is by no means exhaustive.

Metadata/DDI Model All DDI applications require a model of the data with which they work. The model allows developers to query, add, update, and remove metadata. Depending on the scope of the application, the model may represent the full DDI specification, or a subset of the specification.

DDI Serialization All DDI applications must be able to read and/or write valid DDI XML. A serialization component provides one or both of the following functions:

• Read and parse valid DDI XML and load the data into the application’s DDI model

• Write the application’s DDI model to an XML file

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 8

193 194 195

196 197

198

199 200 201

202 203 204

205 206 207 208 209

210 211 212 213

214

215 216 217 218 219 220 221

222 223 224 225 226

227

The DDI XML created by an export component must be a complete DDI instance. See the Interoperability with Other DDI Applications section below for details about ensuring interoperability among DDI applications.

Import/Export Components DDI applications may wish to read from and write to file formats other than DDI.

Interoperability with Other DDI Applications

DDI applications must interoperate well with other DDI applications written by the DDI community. A DDI application must have output that other DDI applications are able to use, and must be able to take as input DDI generated by other applications.

DDI XML must be wrapped in a DDI instance element. This applies whether the DDI is loaded from a file or retrieved from an application service. The documentation for this element can be found in the DDI User Guide Part II, line 269.

DDI instances must validate against the schema published as the standard. DDI instances should also validate against second-level validation tools like the reference validator available from the DDI Foundation Tools web site (http://tools.ddialliance.org/?lvl1=library) . Identifiers and URNs used in the DDI instance should conform to the best practices described in the DDI Identifier Best Practices document and the DDI URN Resolution Best Practices paper.

XML allows namespace prefix declarations to be used flexibly. Developers should write DDI to use namespace prefix conventions as they are published in the DDI specification. See DDI User Guide Part II, line 208 for more information. Applications should be able to read DDI documents even if an instance does not use the conventional prefixes.

DDI Application Development Resources

DDI foundation tools program The DDI Foundation Tools Program (DDI-FTP) is an initiative aimed at the development of a Foundation Framework and a Toolkit to support the implementation of DDI applications and utilities. The DDI-FTP implements several of the components described above. The components are mainly available under the open source GNU-LGPL, so developers of both open source and proprietary applications can make use of them. The tools are mainly written in Java. The user interface portions are mainly based on the Eclipse platform.

Application/component catalog DDI application developers may submit information regarding their development efforts to the DDI Alliance. The DDI Alliance will publish the details of the application or component in a directory. This will allow developers to get exposure for their software, and may help to foster collaboration among developers.

A component listing consists of the following:

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 9

228

229

230

231

232

233

234 235 236 237

238 239 240 241 242 243

244 245 246

247 248 249 250

251 252

253 254

255 256 257

258

• Title

• Developer

• Description

• License

• Screenshots (if appropriate)

DDI Development Pitfalls

Link integrity Developers should be sure elements being linked to exist in the document. When an object is deleted, links to that object should be removed. If an object identifier is renamed, links to that object should be updated.

DDI namespace URNs DDI namespace URNs contain the version number of the schema (e.g., “ddi:instance:3_0”). This number will change when new DDI XML schema versions are released (e.g., “ddi:instance:3_01”). This could present issues for DDI parsers that expect certain namespace URNs. DDI components should be careful to work with potential future version numbers, for example, by not depending on explicit namespace URNs.

Avoid circular references DDI applications should not create circular reference patterns, and should detect circular reference patterns in order to avoid abnormal program behavior.

Loss of metadata When importing metadata from a DDI file, all metadata should be preserved so that everything in the original DDI instance is reflected in a new version. Identifiers from imported DDI should be preserved.

If an application manages data that cannot be stored in DDI format, it should warn the user that those metadata are not supported when exporting to DDI format.

If an application reads a DDI file that contains metadata that the application will not preserve or manage, it should warn the user that the metadata will be lost.

Be aware of encoding Make sure the characters being saved in an XML instance are a valid part of the encoding being used. Use an encoding that supports the characters. Work with Unicode (generally UTF-8).

General Software Development Recommendations

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 10

259 260 261

262 263 264 265

266 267 268

269 270 271 272 273

274 275 276 277

278 279

280 281 282 283

284 285 286 287

288 289 290 291 292 293

This section describes some general software application development best practices. DDI application developers should follow these guidelines in order to provide the best user experience.

Documentation DDI applications should include effective end-user documentation so researchers can use the application productively. Several types of help should be available to meet the needs of different types of users.

Tutorials A Tutorials section may contain a series of “how to” articles describing how to perform common tasks. This is useful to users who are new to an application or who only use it occasionally.

Reference A Reference section contains detailed descriptions of each part of the software. Each form and user interface element of a GUI may be described, along with screenshots where appropriate. This is useful for those who use an application frequently and need quick access to reference information.

Technical Reference A Technical Reference section provides information for system administrators, programmers, and other technical users. It can include information about installation, file formats, and software developer’s kits.

For developers providing their source code or an API, thorough code documentation should be provided. This could be derived from JavaDoc or similar documentation systems.

Knowledge Base A Web-based Knowledge Base allows developers to deliver up-to-date information to end users. A knowledge base should contain searchable and well-categorized information related to the software. Articles can be added to the knowledge base based on user feedback.

Internationalization DDI applications should be written with globalization in mind. This will enabled localized versions of applications to be created, increasing the audience for the tool. Applications should support Unicode text encoding.

Logging DDI applications should write logs with enough detail so that end users can submit the logs to developers in the event of unanticipated behavior, and the logs will provide sufficient information to the developers to diagnose any issues with the software. Users should be able to adjust the level of logging (for example, Debug, Info, Warn, Error). Developers may wish to use existing logging libraries such as log4j or log4net.

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 11

294 295

296 297

298 299 300

301 302 303

304 305 306 307

309 310 311

312 313 314 315

316 317 318

320

321 322

Keep in mind that this log data may be useful metadata usable at different stages of the life cycle. Log file formats should be documented.

Performance DDI applications should operate responsively and should not overuse a system’s resources.

Configuration DDI applications should provide a reasonable level of end-user customization. Commonly used configuration systems should be used, for example, Java properties files.

Platform independence Ideally, DDI applications should be written in a platform-independent manner so they may run on Windows, Mac OSX, Linux, and other operating systems.

Intellectual property issues of third-party components Developers should be aware of licensing implications of any third-party components they use. Third-party licenses should not be more restrictive than the desired license of the developer’s application.

2.3 Discussion 308 The paradigm used in this document for structuring the identified components is based on an object-oriented, tiered approach. Developers who do not use this approach should still be able to gain insight from the description of the functionality identified in this document.

These best practices provide the foundation for implementing feature-rich, interoperable DDI applications. They do not address every aspect of the DDI specification. Applications that wish to provide certain functionality (e.g., geographical metadata management or a statistical engine) will need components to provide those features.

The DDI Alliance is committed to digital preservation, which may require applications to incorporate additional preservation standards (e.g., PREMIS, http://www.oclc.org/research/projects/pmwg/).

2.4 Examples 319

Applying Architectural Components to Data Life Cycle Application

This section contains several examples of how a developer might apply the architectural components to create specific applications for the data life cycle.

Data Documentation Initiative

323

324

325 326 327 328 329 330

331

332

333

334

335

336

337

338

339

340

341

342

Figure 2: From the DDI User Guide Part I Page 6

Data collection example A sample application that addresses the data collection stage of the data life cycle would be a survey instrument documentation application. Such an application might read source code from a Computer Assisted Interviewing system, populate a metadata model, generate documentation, and store a representation of an instrument in DDI format. The application may submit questions to an online question repository.

In order to create this application, the developer may make use of the following components.

• Low level

o DDI/Metadata model

o Serialization

o Import and export

• Middleware

o ID generation

o Validation

• Application services

o Question bank Web service

• High level

o Graphical user interface

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 12

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 13

343

344 345 346 347

348

349

350

351 352

353

354

355

356

357

358

359

360 361

362 363 364 365 366 367

368 369 370

o Questionnaire visualization component

Data discovery and data analysis example A Web application allows researchers to browse metadata to discover data suitable for their work. The application might dynamically produce descriptive statistics based on various physical data product formats, and allow users to generate custom datasets.

• Low level

o Metadata model

o Serialization for reading DDI

o Exporters for generating custom datasets (which could be used by the statistical engine)

• Middleware

o DDI Manager to access underlying metadata model.

• Application services

o Variable bank

o Statistical engine

• High level

o Web pages to display study metadata and allow the user to navigate through it

o Dynamic Web pages to display variables selected by the user (data visualizations), let the user select descriptive statistics, and display results

Integrating components across the data life cycle DDI allows applications that address different stages of the data life cycle to work together. An example application could allow researchers to discover data based on questions found in survey instrument documentation, and then proceed to extract the relevant data and perform analysis on it. This process can be done using the two previously described applications if they both follow interoperability best practices.

Publicizing applications Developers who want information about the application or component to be available to the DDI community should submit an entry to the DDI application/component catalog. The catalog can be found at the DDI Foundation Tools site -- http://tools.ddialliance.org/. The application should contain a DDI Profile that describes which parts of the DDI specification it uses.

371 372

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 14

3 References 373 DDI User Guide Part I (http://www.ddialliance.org/ddi3/index.html) 374

DDI User Guide Part II (http://www.ddialliance.org/ddi3/index.html) 375

DDI Tools Foundation Web site (http://tools.ddialliance.org/) 376

DDI Tools Foundation Roadmap (http://tools.ddialliance.org/?lvl1=ftp&lvl2=roadmap) 377

378 DDI Profile Best Practices: http://www.ddialliance.org/bp/DDIBestPractices_CreatingAProfile.doc.PDF 379

380 DDI Identifiers Best Practices: http://www.ddialliance.org/bp/ManagementOfDDI3Identifiers.doc.PDF 381

382 DDI URN Resolution Best Practices: http://www.ddialliance.org/bp/URNsAndEntityResolution.doc.PDF 383

385

386 387

388 389

3.1 Normative 384

[RFC2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels, http://www.ietf.org/rfc/rfc2119.txt, IETF RFC 2119, March 1997.

OASIS, Best Practice, http://www.oasis-open.org/committees/uddi-spec/doc/bp/uddi-spec-tc-bp-template.doc, 2003

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 15

390

12

393

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

Appendix A. Acknowledgments 39 The following individuals were members of the DDI Expert Workshop held 10-14 November 39

2008 at Schloss Dagstuhl, Leibniz Center for Informatics, in Wadern, Germany.

Nikos Askitas, Institute for the Study of Labor (IZA) 39

Karl Dinkelmann, University of Michigan 39

Michelle Edwards, University of Guelph 39

Janet Eisenhauer, University of Wisconsin 39

Jane Fry, Carleton University 39

Peter Granda, Inter-university Consortium for Political and Social Research (ICPSR) 39

Arofan Gregory, Open Data Foundation 40

Rob Grim, Tilburg University 40

Pascal Heus, Open Data Foundation 40

Maarten Hoogerwerf, Data Archiving and Networked Services (DANS) 40

Chuck Humphrey, University of Alberta 40

Jeremy Iverson, Algenta Technology 40

Jannik Vestergaard Jensen, Danish Data Archive (DDA) 40

Kirstine Kolsrud, Norwegian Social Science Data Services (NSD) 40

Stefan Kramer, Yale University 40

Jenny Linnerud, Statistics Norway 40

Hans Jørgen Marker, Danish Data Archive (DDA) 41

Ken Miller, United Kingdom Data Archive (UKDA) 41

Meinhard Moschner, GESIS - Leibniz Institute for the Social Sciences 41

Ron Nakao, Stanford University 41

Sigbjørn Revheim, Norwegian Social Science Data Services (NSD) 41

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 16

5

6

417

418

Wendy Thomas, University of Minnesota 41

Mary Vardigan, Inter-university Consortium for Political and Social Research (ICPSR) 41

Joachim Wackerow, GESIS - Leibniz Institute for the Social Sciences

Wolfgang Zenk-Möltgen, GESIS - Leibniz Institute for the Social Sciences

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 17

9420

Appendix B. Revision History 41

Rev Date By Whom What 0.1 10 Nov 2008 Jeremy Iverson Initial draft 0.9 2009-02-15 Stefan Kramer Changed sections above ToC to heading

3, rebuilt ToC for heading levels 1-2 only. Added rev. date to Subject. Added future URLs for DDI BPs to References section.

421

Data Documentation Initiative

DDIBestPractices_HighLevelArchitectureForApps.doc.PDF Copyright © DDI Alliance 2009. All Rights Reserved. Page 18

422

3424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465

Appendix C. Legal Notices 42 Copyright © DDI Alliance 2009, All Rights Reserved http://www.ddialliance.org/ Content of this document is licensed under a Creative Commons License: Attribution-Noncommercial-Share Alike 3.0 United States This is a human-readable summary of the Legal Code (the full license). http://creativecommons.org/licenses/by-nc-sa/3.0/us/ You are free:

• to Share - to copy, distribute, display, and perform the work • to Remix - to make derivative works

Under the following conditions:

• Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

• Noncommercial. You may not use this work for commercial purposes. • Share Alike. If you alter, transform, or build upon this work, you may distribute the

resulting work only under the same or similar license to this one. For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this Web page.

• Any of the above conditions can be waived if you get permission from the copyright holder.

• Apart from the remix rights granted under this license, nothing in this license impairs or restricts the author's moral rights.

Disclaimer The Commons Deed is not a license. It is simply a handy reference for understanding the Legal Code (the full license) — it is a human-readable expression of some of its key terms. Think of it as the user-friendly interface to the Legal Code beneath. This Deed itself has no legal value, and its contents do not appear in the actual license. Creative Commons is not a law firm and does not provide legal services. Distributing of, displaying of, or linking to this Commons Deed does not create an attorney-client relationship. Your fair use and other rights are in no way affected by the above. Legal Code: http://creativecommons.org/licenses/by-nc-sa/3.0/us/legalcode


Recommended