+ All Categories
Home > Documents > Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana...

Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana...

Date post: 03-Jul-2019
Category:
Upload: buique
View: 212 times
Download: 0 times
Share this document with a friend
154
NIST Special Publication 1500-9r1 DRAFT NIST Big Data Interoperability Framework: Volume 8, Reference Architecture Interfaces NIST Big Data Public Working Group Reference Architecture Subgroup Version 3 February 25, 2019 http://dx.doi.org/10.6028/--------- 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
Transcript
Page 1: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

NIST Special Publication 1500-9r1

DRAFT NIST Big Data Interoperability Framework:

Volume 8, Reference Architecture Interfaces

NIST Big Data Public Working GroupReference Architecture Subgroup

Version 3February 25, 2019

http://dx.doi.org/10.6028/---------

1

2

3

4

5

6

7

8

9

10

11

12

131415

161718

19

20

21

22

23

24

25

Page 2: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

NIST Special Publication 1500-9r1Information Technology Laboratory

DRAFT NIST Big Data Interoperability Framework:

Volume 8, Reference Architecture InterfacesVersion 3

NIST Big Data Public Working Group (NBD-PWG)Definitions and Taxonomies Subgroup

National Institute of Standards and TechnologyGaithersburg, MD 20899

This draft publication is available free of charge from:http://dx.doi.org/10.6028/----------

February 2019

U. S. Department of CommerceWilbur L. Ross, Jr., Secretary

National Institute of Standards and TechnologyDr. Walter Copan Under Secretary of Commerce for Standards and Technology

and NIST Director

27

2829303132

33

34

3536

3738394041424344454647484950515253545556

5758596061626364

Page 3: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

National Institute of Standards and Technology (NIST) Special Publication 1500-9119 pages (February 25, 2019)

NIST Special Publication series 1500 is intended to capture external perspectives related to NIST standards, measurement, and testing-related efforts. These external perspectives can come from industry, academia, government, and others. These reports are intended to document external perspectives and do not represent official NIST positions.

Certain commercial entities, equipment, or materials may be identified in this document to describe an experimental procedure or concept adequately. Such identification is not intended to imply recommendation or endorsement by NIST, nor is it intended to imply that the entities, materials, or equipment are necessarily the best available for the purpose.

There may be references in this publication to other publications currently under development by NIST in accordance with its assigned statutory responsibilities. The information in this publication, including concepts and methodologies, may be used by federal agencies even before the completion of such companion publications. Thus, until each publication is completed, current requirements, guidelines, and procedures, where they exist, remain operative. For planning and transition purposes, federal agencies may wish to closely follow the development of these new publications by NIST.

Organizations are encouraged to review all publications during public comment periods and provide feedback to NIST. All NIST publications are available at http://www.nist.gov/publication-portal.cfm .

Comments on this publication may be submitted to Wo Chang

National Institute of Standards and TechnologyAttn: Wo Chang, Information Technology Laboratory

100 Bureau Drive (Mail Stop 8900) Gaithersburg, MD 20899-8930Email: [email protected]

iii

65

6667

68

69707172

73

74757677

787980818283

8485

86

87

888990919293949596

97

98

Page 4: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Reports on Computer Systems TechnologyThe Information Technology Laboratory (ITL) at NIST promotes the U.S. economy and public welfare by providing technical leadership for the Nation’s measurement and standards infrastructure. ITL develops tests, test methods, reference data, proof of concept implementations, and technical analyses to advance the development and productive use of information technology. ITL’s responsibilities include the development of management, administrative, technical, and physical standards and guidelines for the cost-effective security and privacy of other than national security-related information in federal information systems. This document reports on ITL’s research, guidance, and outreach efforts in Information Technology and its collaborative activities with industry, government, and academic organizations.

AbstractThis document summarizes interfaces that are instrumental for the interaction with Clouds, Containers, and High Performance Computing (HPC) systems to manage virtual clusters to support the NIST Big Data Reference Architecture (NBDRA). The REpresentational State Transfer (REST) paradigm is used to define these interfaces, allowing easy integration and adoption by a wide variety of frameworks.

Big Data is a term used to describe extensive datasets, primarily in the characteristics of volume, variety, velocity, and/or variability. While opportunities exist with Big Data, the data characteristics can overwhelm traditional technical approaches, and the growth of data is outpacing scientific and technological advances in data analytics. To advance progress in Big Data, the NIST Big Data Public Working Group (NBD-PWG) is working to develop consensus on important fundamental concepts related to Big Data. The results are reported in the NIST Big Data Interoperability Framework (NBDIF) series of volumes. This volume, Volume 8, uses the work performed by the NBD-PWG to identify objects instrumental for the NIST Big Data Reference Architecture (NBDRA) which is introduced in the NBDIF: Volume 6, Reference Architecture.

KeywordsAdoption; barriers; implementation; interfaces; market maturity; organizational maturity; project maturity; system modernization.

iv

99

100101102103104105106107108

109

110

111

112113114115

116117118119120121122123124

125

126

127

128129

130

131

132

Page 5: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

AcknowledgementsThis document reflects the contributions and discussions by the membership of the NBD-PWG, cochaired by Wo Chang (NIST ITL), Bob Marcus (ET-Strategies), and Chaitan Baru (San Diego Supercomputer Center; National Science Foundation). For all versions, the Subgroups were led by the following people: Nancy Grady (SAIC), Natasha Balac (San Diego Supercomputer Center), and Eugene Luster (R2AD) for the Definitions and Taxonomies Subgroup; Geoffrey Fox (Indiana University) and Tsegereda Beyene (Cisco Systems) for the Use Cases and Requirements Subgroup; Arnab Roy (Fujitsu), Mark Underwood (Krypton Brothers; Synchrony Financial), and Akhil Manchanda (GE) for the Security and Privacy Subgroup; David Boyd (InCadence Strategic Solutions), Orit Levin (Microsoft), Don Krapohl (Augmented Intelligence), and James Ketner (AT&T) for the Reference Architecture Subgroup; and Russell Reinsch (Center for Government Interoperability), David Boyd (InCadence Strategic Solutions), Carl Buffington (Vistronix), and Dan McClary (Oracle), for the Standards Roadmap Subgroup.

The editors for this document were the following:

Version 1: This volume resulted from Stage 2 work and was not part of the Version 1 scope. Version 2: Gregor von Laszewski (Indiana University) and Wo Chang (NIST). Version3: Gregor von Laszewski (Indiana University) and Wo Chang (NIST).

Laurie Aldape (Energetics Incorporated) and Elizabeth Lennon (NIST) provided editorial assistance across all NBDIF volumes.

NIST SP 1500-9, Draft NIST Big Data Interoperability Framework: Volume 8, Reference Architecture Interfaces, Version 2 has been collaboratively authored by the NBD-PWG. As of the date of publication, there are over six hundred NBD-PWG participants from industry, academia, and government. Federal agency participants include the National Archives and Records Administration (NARA), National Aeronautics and Space Administration (NASA), National Science Foundation (NSF), and the U.S. Departments of Agriculture, Commerce, Defense, Energy, Census, Health and Human Services, Homeland Security, Transportation, Treasury, and Veterans Affairs.

NIST would like to acknowledge the specific contributionsa to this volume, during Version 1, Version 2, and/or Version 3 activities, by the following NBD-PWG members:

Wo ChangNational Institute of Standard and Technology

Geoffrey C. FoxIndiana University

Pratik ThakkarPhilips

Gregor von LaszewskiIndiana University

Badi Abdhul WahidIndiana University

Fugang WangIndiana University

Robert C. WhetselDISA/NBIS

Alicia Zuniga-AlvaradoConsultant

a “Contributors” are members of the NIST Big Data Public Working Group who dedicated great effort to prepare and gave substantial time on a regular basis to research and development in support of this document.

v

133

134135136137138139140141142143144

145

146147148

149150

151152153154155156157

158159

160

161

12

Page 6: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

TABLE OF CONTENTSEXECUTIVE SUMMARY..................................................................................................................................... VIII

1 INTRODUCTION.......................................................................................................................................... 1

1.1 BACKGROUND.................................................................................................................................................11.2 SCOPE AND OBJECTIVES OF THE REFERENCE ARCHITECTURES SUBGROUP...................................................................31.3 REPORT PRODUCTION......................................................................................................................................31.4 REPORT STRUCTURE.........................................................................................................................................4

2 NBDRA INTERFACE REQUIREMENTS............................................................................................................ 5

2.1 HIGH-LEVEL REQUIREMENTS OF THE INTERFACE APPROACH....................................................................................62.1.1 Technology- and Vendor-Agnostic.........................................................................................................62.1.2 Support of Plug-In Compute Infrastructure............................................................................................62.1.3 Orchestration of Infrastructure and Services..........................................................................................72.1.4 Orchestration of Big Data Applications and Experiments.......................................................................72.1.5 Reusability..............................................................................................................................................72.1.6 Execution Workloads..............................................................................................................................72.1.7 Security and Privacy Fabric Requirements..............................................................................................7

2.2 COMPONENT-SPECIFIC INTERFACE REQUIREMENTS................................................................................................82.2.1 System Orchestrator Interface Requirements........................................................................................82.2.2 Data Provider Interface Requirements...................................................................................................92.2.3 Data Consumer Interface Requirements................................................................................................92.2.4 Big Data Application Interface Provider Requirements..........................................................................92.2.5 Big Data Provider Framework Interface Requirements........................................................................112.2.6 Big Data Application Provider to Big Data Framework Provider Interface...........................................12

3 SPECIFICATION PARADIGM....................................................................................................................... 13

3.1 HYBRID AND MULTIPLE FRAMEWORKS..............................................................................................................133.2 DESIGN BY RESOURCE-ORIENTED ARCHITECTURE.................................................................................................133.3 DESIGN BY EXAMPLE......................................................................................................................................133.4 VERSION MANAGEMENT.................................................................................................................................133.5 INTERFACE COMPLIANCY.................................................................................................................................13

4 EXAMPLE SPECIFICATION.......................................................................................................................... 15

4.1 LIST OF SPECIFICATIONS..................................................................................................................................154.2 IDENTITY......................................................................................................................................................17

4.2.1 Authentication.....................................................................................................................................174.2.2 Organization........................................................................................................................................184.2.3 User......................................................................................................................................................214.2.4 PublicKeyStore.....................................................................................................................................25

4.3 GENERAL RESOURCES.....................................................................................................................................284.3.1 Timestamp...........................................................................................................................................284.3.2 Alias.....................................................................................................................................................304.3.3 Variables..............................................................................................................................................334.3.4 Keyvaluestore.......................................................................................................................................354.3.5 Default.................................................................................................................................................38

4.4 DATA MANAGEMENT.....................................................................................................................................414.4.1 File.......................................................................................................................................................41

vi

162

163

164

165166167168

169

170171172173174175176177178179180181182183184

185

186187188189190

191

192193194195196197198199200201202203204205

Page 7: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.4.2 Replica.................................................................................................................................................434.4.3 Database..............................................................................................................................................464.4.4 Virtual Directory...................................................................................................................................49

4.5 COMPUTE MANAGEMENT - VIRTUAL CLUSTERS...................................................................................................524.5.1 Virtual Cluster......................................................................................................................................524.5.2 Scheduler.............................................................................................................................................57

4.6 COMPUTE MANAGEMENT - VIRTUAL MACHINES.................................................................................................604.6.1 Image...................................................................................................................................................604.6.2 Flavor...................................................................................................................................................634.6.3 VM.......................................................................................................................................................674.6.4 Secgroup..............................................................................................................................................694.6.5 Nic........................................................................................................................................................75

4.7 COMPUTE MANAGEMENT - CONTAINERS...........................................................................................................784.7.1 Containers............................................................................................................................................78

4.8 COMPUTE MANAGEMENT - FUNCTIONS.............................................................................................................814.8.1 Microservice.........................................................................................................................................81

4.9 BATCH PROCESSING.......................................................................................................................................834.9.1 Batchjob...............................................................................................................................................834.9.2 Slurmjob...............................................................................................................................................86

4.10 RESERVATION...............................................................................................................................................894.10.1 Reservation......................................................................................................................................89

4.11 DATA STREAMS.............................................................................................................................................924.11.1 Stream.............................................................................................................................................924.11.2 Filter................................................................................................................................................95

4.12 MAPREDUCE................................................................................................................................................974.12.1 Hadoop............................................................................................................................................97

4.13 DEPLOYMENT.............................................................................................................................................1004.13.1 Deployment...................................................................................................................................100

5 STATUS CODES AND ERROR RESPONSES..................................................................................................104

APPENDIX A: ACRONYMS AND TERMS.............................................................................................................105

APPENDIX B: BIBLIOGRAPHY........................................................................................................................... 107

FIGURES

FIGURE 1: NIST BIG DATA REFERENCE ARCHITECTURE (NBDRA)...........................................................................5

FIGURE 2: PROVIDER VIEW................................................................................................................................ 16

FIGURE 3: RESOURCE VIEW............................................................................................................................... 17

TABLES

TABLE 1: LIST OF SPECIFICATIONS...................................................................................................................... 15

TABLE 2: HTTP RESPONSE CODES..................................................................................................................... 104

vii

206207208209210211212213214215216217218219220221222223224225226227228229230231232233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

Page 8: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Executive SummaryThe NIST Big Data Interoperability Framework (NBDIF): Volume 8, Reference Architecture Interfaces document was prepared by the NIST Big Data Public Working Group (NBD-PWG) Reference Architecture Subgroup to identify interfaces in support of the NIST Big Data Reference Architecture (NBDRA) The interfaces contain two different aspects:

The definition of resources that are part of the NBDRA. These resources are formulated in JavaScript Object Notation (JSON) format and can be easily integrated into a REpresentational State Transfer (REST) framework or an object-based framework.

The definition of simple interface use cases that allow us to illustrate the usefulness of the resources defined.

The resources were categorized in groups that are identified by the NBDRA set forward in the NBDIF: Volume 6, Reference Architecture document. While the NBDIF: Volume 3, Use Cases and General Requirements document provides application-oriented high-level use cases, the use cases defined in this document are subsets of them and focus on interface use cases. The interface use cases are not meant to be complete examples, but showcase why the resource has been defined. Hence, the interfaces use cases are only representative, and do not encompass the entire spectrum of Big Data usage. All the interfaces were openly discussed in the working group. Additions to the interfaces are welcome and the NBD-PWG is open to discuss any contributions.

The NIST Big Data Interoperability Framework consists of nine volumes, each of which addresses a specific key topic, resulting from the work of the NBD-PWG. The nine volumes are as follows:

Volume 1: Definitions [1] Volume 2: Taxonomies [2] Volume 3: Use Cases and General Requirements [3] Volume 4: Security and Privacy [4] Volume 5: Architectures White Paper Survey [5] Volume 6: Reference Architecture [6] Volume 7: Standards Roadmap [7] Volume 8: Reference Architecture Interfaces (this volume) Volume 9: Adoption and Modernization [8]

The NBDIF will be released in three versions, which correspond to the three development stages of the NBD-PWG work. The three stages aim to achieve the following with respect to the NBDRA.

Stage 1. Identify the high-level Big Data reference architecture key components, which are technology-, infrastructure-, and vendor-agnostic.

Stage 2. Define general interfaces between the NBDRA components. Stage 3. Validate the NBDRA by building Big Data general applications through the general

interfaces.

This document is the result of Stage 3 work of the NBD-PWG. Coordination of the group is conducted on the NBD-PWG web page (https://bigdatawg.nist.gov).

viii

248

249250251252

253254255256257

258259260261262263264265

266267

268269270271272273274275276

277278

279280281282283

284285

286

Page 9: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

1 INTRODUCTION1.1 BACKGROUNDThere is broad agreement among commercial, academic, and government leaders about the remarkable potential of Big Data to spark innovation, fuel commerce, and drive progress. Big Data is the common term used to describe the deluge of data in today’s networked, digitized, sensor-laden, and information-driven world. The availability of vast data resources carries the potential to answer questions previously out of reach, including the following:

How can a potential pandemic reliably be detected early enough to intervene? Can new materials with advanced properties be predicted before these materials have ever been

synthesized? How can the current advantage of the attacker over the defender in guarding against cybersecurity

threats be reversed?

There is also broad agreement on the ability of Big Data to overwhelm traditional approaches. The growth rates for data volumes, speeds, and complexity are outpacing scientific and technological advances in data analytics, management, transport, and data user spheres.

Despite widespread agreement on the inherent opportunities and current limitations of Big Data, a lack of consensus on some important fundamental questions continues to confuse potential users and stymie progress. These questions include the following:

How is Big Data defined? What attributes define Big Data solutions? What is new in Big Data? What is the difference between Big Data and bigger data that has been collected for years? How is Big Data different from traditional data environments and related applications? What are the essential characteristics of Big Data environments? How do these environments integrate with currently deployed architectures? What are the central scientific, technological, and standardization challenges that need to be

addressed to accelerate the deployment of robust, secure Big Data solutions?

Within this context, on March 29, 2012, the White House announced the Big Data Research and Development Initiative (The White House Office of Science and Technology Policy, “Big Data is a Big Deal,” OSTP Blog, accessed February 21, 2014 [9]. The initiative’s goals include helping to accelerate the pace of discovery in science and engineering, strengthening national security, and transforming teaching and learning by improving analysts’ ability to extract knowledge and insights from large and complex collections of digital data.

Six federal departments and their agencies announced more than $200 million in commitments spread across more than 80 projects, which aim to significantly improve the tools and techniques needed to access, organize, and draw conclusions from huge volumes of digital data. The initiative also challenged industry, research universities, and nonprofits to join with the federal government to make the most of the opportunities created by Big Data.

Motivated by the White House initiative and public suggestions, the National Institute of Standards and Technology (NIST) accepted the challenge to stimulate collaboration among industry professionals to further the secure and effective adoption of Big Data. As a result of NIST’s Cloud and Big Data Forum held on January 15–17, 2013, there was strong encouragement for NIST to create a public working group

1

287

288

289290291292293

294295296297298

299300301

302303304

305306307308309310311312313

314315316317318319

320321322323324

325326327328

Page 10: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

for the development of a Big Data Standards Roadmap. Forum participants noted that this roadmap should define and prioritize Big Data requirements, including interoperability, portability, reusability, extensibility, data usage, analytics, and technology infrastructure. In doing so, the roadmap would accelerate the adoption of the most secure and effective Big Data techniques and technology.

On June 19, 2013, the NIST Big Data Public Working Group (NBD-PWG) was launched with extensive participation by industry, academia, and government from across the nation. The scope of the NBD-PWG involves forming a community of interests from all sectors—including industry, academia, and government—with the goal of developing consensus on definitions, taxonomies, secure reference architectures, security and privacy, and, from these, a standards roadmap. Such a consensus would create a vendor-neutral, technology- and infrastructure-independent framework that would enable Big Data stakeholders to identify and use the best analytics tools for their processing and visualization requirements on the most suitable computing platform and cluster, while also allowing added value from Big Data service providers.

The NIST Big Data Interoperability Framework (NBDIF) will be released in three versions, which correspond to the three stages of the NBD-PWG work. The three stages aim to achieve the following with respect to the NIST Big Data Reference Architecture (NBDRA).

Stage 1: Identify the high-level Big Data reference architecture key components, which are technology, infrastructure, and vendor agnostic.

Stage 2: Define general interfaces between the NBDRA components. Stage 3: Validate the NBDRA by building Big Data general applications through the general

interfaces.

On September 16, 2015, seven NBDIF Version 1 volumes were published (http://bigdatawg.nist.gov/V1_output_docs.php), each of which addresses a specific key topic, resulting from the work of the NBD-PWG. The seven volumes are as follows:

Volume 1, Definitions [1] Volume 2, Taxonomies [2] Volume 3, Use Cases and General Requirements [3] Volume 4, Security and Privacy [4] Volume 5, Architectures White Paper Survey [5] Volume 6, Reference Architecture [6] Volume 7, Standards Roadmap [7]

The NBD-PWG worked on Stage 2 with the goals to enhance the Version 1 content, define general interfaces between the NBDRA components by aggregating low-level interactions into high-level general interfaces, and demonstrate how the NBDRA can be used. As a result of the Stage 2 work, the following two additional NBDIF volumes were developed.

Volume 8, Reference Architecture Interfaces (this volume) Volume 9, Adoption and Modernization [8]

Version 2 of the NBDIF volumes, resulting from Stage 2 work, can be downloaded from the NBD-PWG website (https://bigdatawg.nist.gov/V2_output_docs.php). The current effort documented in this volume reflects concepts developed within the rapidly evolving field of Big Data.

1.2 SCOPE AND OBJECTIVES OF THE REFERENCE ARCHITECTURES SUBGROUP

Reference architectures provide “an authoritative source of information about a specific subject area that guides and constrains the instantiations of multiple architectures and solutions” [10]. Reference

2

329330331332

333334335336337338339340341

342343344

345346347348349

350351352

353354355356357358359

360361362363

364365

366367368

369

370

371372

Page 11: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

architectures generally serve as a foundation for solution architectures and may also be used for comparison and alignment of instantiations of architectures and solutions.

The goal of the NBD-PWG Reference Architecture Subgroup is to develop an open reference architecture for Big Data that achieves the following objectives:

Provides a common language for the various stakeholders; Encourages adherence to common standards, specifications, and patterns; Provides consistent methods for implementation of technology to solve similar problem sets; Illustrates and improves understanding of the various Big Data components, processes, and

systems, in the context of a vendor- and technology-agnostic Big Data conceptual model; Provides a technical reference for U.S. government departments, agencies, and other consumers

to understand, discuss, categorize, and compare Big Data solutions; and Facilitates analysis of candidate standards for interoperability, portability, reusability, and

extendibility.

The NBDRA is a high-level conceptual model crafted to serve as a tool to facilitate open discussion of the requirements, design structures, and operations inherent in Big Data. The NBDRA is intended to facilitate the understanding of the operational intricacies in Big Data. It does not represent the system architecture of a specific Big Data system, but rather is a tool for describing, discussing, and developing system-specific architectures using a common framework of reference. The model is not tied to any specific vendor products, services, or reference implementation, nor does it define prescriptive solutions that inhibit innovation.

The NBDRA does not address the following:

Detailed specifications for any organization’s operational systems; Detailed specifications of information exchanges or services; and Recommendations or standards for integration of infrastructure products.

The goals of the Subgroup were realized throughout the three planned phases of the NBD-PWG work, as outlined in Section 1.3.

1.3 REPORT PRODUCTIONThe NBDIF: Volume 8, References Architecture Interfaces is one of nine volumes, whose overall aims are to define and prioritize Big Data requirements, including interoperability, portability, reusability, extensibility, data usage, analytic techniques, and technology infrastructure to support secure and effective adoption of Big Data. The overall goals of this volume are to define and specify interfaces to implement the Big Data Reference Architecture. This volume arose from discussions during the weekly NBD-PWG conference calls. Topics included in this volume began to take form in Phase 2 of the NBD-PWG work. During the discussions, the NBD-PWG identified the need to specify a variety of interfaces.

Phase 3 work, which built upon the groundwork developed during Phase 2, included an early specification based on resource object specifications that provided a simplified version of an API interface design. To achieve technical and high-quality document content, this document will go through a public comment period along with NIST internal review.

The following milestone were achieved in the versions produced listed below:

Version 2.1: A previous volume used just the definition of the schema based on examples. It was easier to read but only included the definition of the resources and not the interaction with the resources. This volume was in place until June 2018.

Version 2.2: This version was significantly changed and now uses OpenAPI to specify the Interfaces between the various services and components.

3

373374

375376

377378379380381382383384385

386387388389390391392

393

394395396

397398

399

400401402403404405406

407408409410

411

412413414415416

Page 12: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Version 3.1.0: The version includes the significant improvements of the object specifications.

1.4 REPORT STRUCTURETo enable interoperability between the NBDRA components, a list of well-defined NBDRA interfaces is needed. These interfaces are documented in this volume. To introduce them, the NBDRA structure will be followed, focusing on interfaces that allow bootstrapping of the NBDRA. The document begins with a summary of requirements that will be integrated into our specifications. Subsequently, each section will introduce a number of objects that build the core of the interface addressing a specific aspect of the NBDRA. A selected number of interface use cases will be showcased to outline how the specific interface can be used in a reference implementation of the NBDRA. Validation of this approach can be achieved while applying it to the application use cases that have been gathered in the NBDIF: Volume 3, Use Cases and Requirements document. These application use cases have considerably contributed towards the design of the NBDRA. Hence the expectation is that: (1) the interfaces can be used to help implement a Big Data architecture for a specific use case; and (2) the proper implementation. This approach can facilitate subsequent analysis and comparison of the use cases.

The organization of this document roughly corresponds to the process used by the NBD-PWG to develop the interfaces. Following the introductory material presented in Section 1, the remainder of this document is organized as follows:

Section 2 presents the interface requirements; Section 3 presents the specification paradign the we use; Section 4 presents several objects grouped by functional use while providing a summary table of

selected proposed objects in Section 4.1.

4

417

418

419420421422423424425426427428429430

431432433

434435436437

438

Page 13: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

2 NBDRA INTERFACE REQUIREMENTSThe development of a Big Data reference architecture requires a thorough understanding of current techniques, issues, and concerns. To this end, the NBD-PWG collected use cases to gain an understanding of current applications of Big Data, conducted a survey of reference architectures to understand commonalities within Big Data architectures in use, developed a taxonomy to understand and organize the information collected, and reviewed existing technologies and trends relevant to Big Data. The results of these NBD-PWG activities were used in the development of the NBDRA (Figure 1) and the interfaces presented herein. Detailed descriptions of these activities can be found in the other volumes of the NBDIF.

Figure 1: NIST Big Data Reference Architecture (NBDRA)

This vendor-neutral, technology- and infrastructure-agnostic conceptual model, the NBDRA, is shown in Figure 1 and represents a Big Data system composed of five logical functional components connected by interoperability interfaces (i.e., services). Two fabrics envelop the components, representing the interwoven nature of management and security and privacy with all five of the components. These two fabrics provide services and functionality to the five main roles in the areas specific to Big Data and are crucial to any Big Data solution. Note: None of the terminology or diagrams in these documents is intended to be normative or to imply any business or deployment model. The terms provider and consumer as used are descriptive of general roles and are meant to be informative in nature.

5

439

440441442443444445446447

448449

450451452453454455456457

Page 14: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

The NBDRA is organized around five major roles and multiple sub-roles aligned along two axes representing the two Big Data value chains: the Information Value (horizontal axis) and the Information Technology (IT; vertical axis). Along the Information Value axis, the value is created by data collection, integration, analysis, and applying the results following the value chain. Along the IT axis, the value is created by providing networking, infrastructure, platforms, application tools, and other IT services for hosting of and operating the Big Data in support of required data applications. At the intersection of both axes is the Big Data Application Provider role, indicating that data analytics and its implementation provide the value to Big Data stakeholders in both value chains. The term provider as part of the Big Data Application Provider and Big Data Framework Provider is there to indicate that those roles provide or implement specific activities and functions within the system. It does not designate a service model or business entity.

The DATA arrows in Figure 1 show the flow of data between the system’s main roles. Data flows between the roles either physically (i.e., by value) or by providing its location and the means to access it (i.e., by reference). The SW arrows show transfer of software tools for processing of Big Data in situ. The Service Use arrows represent software programmable interfaces. While the main focus of the NBDRA is to represent the run-time environment, all three types of communications or transactions can happen in the configuration phase as well. Manual agreements (e.g., service-level agreements) and human interactions that may exist throughout the system are not shown in the NBDRA.

Detailed information on the NBDRA conceptual model is presented in the NBDIF: Volume 6, Reference Architecture document.

Prior to outlining the specific interfaces, general requirements are introduced and the interfaces are defined.

2.1 HIGH-LEVEL REQUIREMENTS OF THE INTERFACE APPROACH

This section focuses on the high-level requirements of the interface approach that are needed to implement the reference architecture depicted in Figure 1.

2.1.1 TECHNOLOGY- AND VENDOR-AGNOSTICDue to the many different tools, services, and infrastructures available in the general area of Big Data, an interface ought to be as vendor-independent as possible, while, at the same time, be able to leverage best practices. Hence, a methodology is needed that allows extension of interfaces to adapt and leverage existing approaches, but also allows the interfaces to provide merit in easy specifications that assist the formulation and definition of the NBDRA.

2.1.2 SUPPORT OF PLUG-IN COMPUTE INFRASTRUCTUREAs Big Data is not just about hosting data, but about analyzing data, the interfaces provided herein must encapsulate a rich infrastructure environment that is used by data scientists. This includes the ability to integrate (or plug-in) various compute resources and services to provide the necessary compute power to analyze the data. These resources and services include the following:

Access to hierarchy of compute resources from the laptop/desktop, servers, data clusters, and clouds;

The ability to integrate special-purpose hardware such as graphics processing units (GPUs) and field-programmable gate arrays (FPGAs) that are used in accelerated analysis of data; and

The integration of services including microservices that allow the analysis of the data by delegating them to hosted or dynamically deployed services on the infrastructure of choice.

6

458459460461462463464465466467468

469470471472473474475

476477

478479

480

481

482483

484

485486487488489

490

491492493494

495496497498499500

Page 15: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

2.1.3 ORCHESTRATION OF INFRASTRUCTURE AND SERVICESFrom review of the use case collection, presented in the NBDIF: Volume 3, Use Cases and General Requirements document [4], the need arose to address the mechanism of preparing suitable infrastructures for various use cases. As not every infrastructure is suited for every use case, a custom infrastructure may be needed. As such, this document is not attempting to deliver a single deployed NBDRA, but allow the setup of an infrastructure that satisfies the particular use case. To achieve this task, it is necessary to provision software stacks and services while orchestrating their deployment and leveraging infrastructures. It is not the focus of this document to replace existing orchestration software and services, but provide an interface to them to leverage them as part of defining and creating the infrastructure. Various orchestration frameworks and services could therefore be leveraged, even as part of the same framework, and work in orchestrated fashion to achieve the goal of preparing an infrastructure suitable for one or more applications.

2.1.4 ORCHESTRATION OF BIG DATA APPLICATIONS AND EXPERIMENTSThe creation of the infrastructure suitable for Big Data applications provides the basic computing environment. However, Big Data applications may require the creation of sophisticated applications as part of interactive experiments to analyze and probe the data. For this purpose, the applications must be able to orchestrate and interact with experiments conducted on the data while assuring reproducibility and correctness of the data. For this purpose, a System Orchestrator (either the data scientists or a service acting on behalf of the data scientist) is used as the command center to interact on behalf of the Big Data Application Provider to orchestrate dataflow from Data Provider, carry out the Big Data application life cycle with the help of the Big Data Framework Provider, and enable the Data Consumer to consume Big Data processing results. An interface is needed to describe these interactions and to allow leveraging of experiment management frameworks in scripted fashion. A customization of parameters is needed on several levels. On the highest level, application-motivated parameters are needed to drive the orchestration of the experiment. On lower levels, these high-level parameters may drive and create service-level agreements, augmented specifications, and parameters that could even lead to the orchestration of infrastructure and services to satisfy experiment needs.

2.1.5 REUSABILITYThe interfaces provided must encourage reusability of the infrastructure, services, and experiments described by them. This includes (1) reusability of available analytics packages and services for adoption; (2) deployment of customizable analytics tools and services; and (3) operational adjustments that allow the services and infrastructure to be adapted while at the same time allowing for reproducible experiment execution.

2.1.6 EXECUTION WORKLOADSOne of the important aspects of distributed Big Data services can be that the data served is simply too big to be moved to a different location. Instead, an interface could allow the description and packaging of analytics algorithms, and potentially also tools, as a payload to a data service. This can be best achieved, not by sending the detailed execution, but by sending an interface description that describes how such an algorithm or tool can be created on the server and be executed under security considerations (integrated with authentication and authorization in mind).

2.1.7 SECURITY AND PRIVACY FABRIC REQUIREMENTSAlthough the focus of this document is not security and privacy, which are documented in the NBDIF: Volume 4, Security and Privacy [8], the interfaces defined herein must be capable of integration into a secure reference architecture that supports secure execution, secure data transfer, and privacy.

7

501

502503504505506507508509510511512

513

514515516517518519520521522523524525526527

528

529530531532533

534

535536537538539540

541

542543544

Page 16: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Consequently, the interfaces defined herein can be augmented with frameworks and solutions that provide such mechanisms. Thus, diverse requirement needs stemming from different use cases addressing security need to be distinguished. To contrast that the security requirements between applications can vary drastically, the following example is provided. Although many of the interfaces and their objects to support Big Data applications in physics are similar to those in healthcare, they differ in the integration of security interfaces and policies. While in physics the protection of data is less of an issue, it is a stringent requirement in healthcare. Thus, deriving architectural frameworks for both may use largely similar components, but addressing security issues will be very different. The security of interfaces may be addressed in other documents. In this document, they are considered an advanced use case showcasing that the validity of the specifications introduced here is preserved, even if security and privacy requirements differ vastly among application use cases.

2.2 COMPONENT-SPECIFIC INTERFACE REQUIREMENTSThis section summarizes the requirements for the interfaces of the NBDRA components. The five components are listed in Figure 1 and addressed in Section 2.2.1 (System Orchestrator Interface Requirements) and Section 2.2.4 (Big Data Application Provider to Big Data Framework Provider Interface) of this document. The five main functional components of the NBDRA represent the different technical roles within a Big Data system and are the following:

System Orchestrator: Defines and integrates the required data application activities into an operational vertical system (see Section 2.2.1);

Data Provider: Introduces new data or information feeds into the Big Data system (see Section 2.2.2);

Data Consumer: Includes end users or other systems that use the results of the Big Data Application Provider (see Section 2.2.3);

Big Data Application Provider: Executes a data life cycle to meet security and privacy requirements as well as System Orchestrator-defined requirements (see Section 2.2.4);

Big Data Framework Provider: Establishes a computing framework in which to execute certain transformation applications while protecting the privacy and integrity of data (see Section 2.2.5); and

Big Data Application Provider to Framework Provider Interface: Defines an interface between the application specification and the provider (see Section 2.2.6).

2.2.1 SYSTEM ORCHESTRATOR INTERFACE REQUIREMENTSThe System Orchestrator role includes defining and integrating the required data application activities into an operational vertical system. Typically, the System Orchestrator involves a collection of more specific roles, performed by one or more actors, which manage and orchestrate the operation of the Big Data system. These actors may be human components, software components, or some combination of the two. The function of the System Orchestrator is to configure and manage the other components of the Big Data architecture to implement one or more workloads that the architecture is designed to execute. The workloads managed by the System Orchestrator may be assigning/provisioning framework components to individual physical or virtual nodes at the lower level, or providing a graphical user interface that supports the specification of workflows linking together multiple applications and components at the higher level. The System Orchestrator may also, through the Management Fabric, monitor the workloads and system to confirm that specific quality of service requirements is met for each workload, and may elastically assign and provision additional physical or virtual resources to meet workload requirements resulting from changes/surges in the data or number of users/transactions. The interface to the System Orchestrator must be capable of specifying the task of orchestration the deployment, configuration, and the execution of applications within the NBDRA. A simple vendor-neutral specification to coordinate the various parts

8

545546547548549550551552553554555

556

557558559560561

562563564565566567568569570571572573574

575

576577578579580581582583584585586587588589590

Page 17: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

either as simple parallel language tasks or as a workflow specification is needed to facilitate the overall coordination. Integration of existing tools and services into the System Orchestrator as extensible interfaces is desirable.

2.2.2 DATA PROVIDER INTERFACE REQUIREMENTSThe Data Provider role introduces new data or information feeds into the Big Data system for discovery, access, and transformation by the Big Data system. New data feeds are distinct from the data already in use by the system and residing in the various system repositories. Similar technologies can be used to access both new data feeds and existing data. The Data Provider actors can be anything from a sensor, to a human inputting data manually, to another Big Data system. Interfaces for data providers must be able to specify a data provider so it can be located by a data consumer. It also must include enough details to identify the services offered so they can be pragmatically reused by consumers. Interfaces to describe pipes and filters must be addressed.

2.2.3 DATA CONSUMER INTERFACE REQUIREMENTSLike the Data Provider, the role of Data Consumer within the NBDRA can be an actual end user or another system. In many ways, this role is the mirror image of the Data Provider, with the entire Big Data framework appearing like a Data Provider to the Data Consumer. The activities associated with the Data Consumer role include the following:

Search and Retrieve, Download, Analyze Locally, Reporting, Visualization, and Data to Use for Their Own Processes.

The interface for the data consumer must be able to describe the consuming services and how they retrieve information or leverage data consumers.

2.2.4 BIG DATA APPLICATION INTERFACE PROVIDER REQUIREMENTSThe Big Data Application Provider role executes a specific set of operations along the data life cycle to meet the requirements established by the System Orchestrator, as well as meeting security and privacy requirements. The Big Data Application Provider is the architecture component that encapsulates the business logic and functionality to be executed by the architecture. The interfaces to describe Big Data applications include interfaces for the various subcomponents including collections, preparation/curation, analytics, visualization, and access. Some of the interfaces used in these subcomponents can be reused from other interfaces, which are introduced in other sections of this document. Where appropriate, application-specific interfaces will be identified and examples provided with a focus on use cases as identified in the NBDIF: Volume 3, Use Cases and General Requirements.

2.2.4.1 CollectionIn general, the collection activity of the Big Data Application Provider handles the interface with the Data Provider. This may be a general service, such as a file server or web server configured by the System Orchestrator to accept or perform specific collections of data, or it may be an application-specific service designed to pull data or receive pushes of data from the Data Provider. Since this activity is receiving data at a minimum, it must store/buffer the received data until it is persisted through the Big Data Framework Provider. This persistence need not be to physical media but may simply be to an in-memory queue or other service provided by the processing frameworks of the Big Data Framework Provider. The collection activity is likely where the extraction portion of the Extract, Transform, Load (ETL)/Extract, Load,

9

591592593

594

595596597598599600601602

603

604605606607

608609610611612613

614615

616

617618619620621622623624625

626

627628629630631632633634

Page 18: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Transform (ELT) cycle is performed. At the initial collection stage, sets of data (e.g., data records) of similar structure are collected (and combined), resulting in uniform security, policy, and other considerations. Initial metadata is created (e.g., subjects with keys are identified) to facilitate subsequent aggregation or look-up methods.

2.2.4.2 PreparationThe preparation activity is where the transformation portion of the ETL/ELT cycle is likely performed, although analytics activity will also likely perform advanced parts of the transformation. Tasks performed by this activity could include data validation (e.g., checksums/hashes, format checks), cleansing (e.g., eliminating bad records/fields), outlier removal, standardization, reformatting, or encapsulating. This activity is also where source data will frequently be persisted to archive storage in the Big Data Framework Provider and provenance data will be verified or attached/associated. Verification or attachment may include optimization of data through manipulations (e.g., deduplication) and indexing to optimize the analytics process. This activity may also aggregate data from different Data Providers, leveraging metadata keys to create an expanded and enhanced data set.

2.2.4.3 AnalyticsThe analytics activity of the Big Data Application Provider includes the encoding of the low-level business logic of the Big Data system (with higher-level business process logic being encoded by the System Orchestrator). The activity implements the techniques to extract knowledge from the data based on the requirements of the vertical application. The requirements specify the data processing algorithms to produce new insights that will address the technical goal. The analytics activity will leverage the processing frameworks to implement the associated logic. This typically involves the activity providing software that implements the analytic logic to the batch and/or streaming elements of the processing framework for execution. The messaging/communication framework of the Big Data Framework Provider may be used to pass data or control functions to the application logic running in the processing frameworks. The analytic logic may be broken up into multiple modules to be executed by the processing frameworks which communicate, through the messaging/communication framework, with each other and other functions instantiated by the Big Data Application Provider.

2.2.4.4 VisualizationThe visualization activity of the Big Data Application Provider prepares elements of the processed data and the output of the analytic activity for presentation to the Data Consumer. The objective of this activity is to format and present data in such a way as to optimally communicate meaning and knowledge. The visualization preparation may involve producing a text-based report or rendering the analytic results as some form of graphic. The resulting output may be a static visualization and may simply be stored through the Big Data Framework Provider for later access. However, the visualization activity frequently interacts with the access activity, the analytics activity, and the Big Data Framework Provider (processing and platform) to provide interactive visualization of the data to the Data Consumer based on parameters provided to the access activity by the Data Consumer. The visualization activity may be completely application-implemented, leverage one or more application libraries, or may use specialized visualization processing frameworks within the Big Data Framework Provider.

2.2.4.5 AccessThe access activity within the Big Data Application Provider is focused on the communication/interaction with the Data Consumer. Like the collection activity, the access activity may be a generic service such as a web server or application server that is configured by the System Orchestrator to handle specific requests from the Data Consumer. This activity would interface with the visualization and analytic activities to respond to requests from the Data Consumer (who may be a person) and uses the processing

10

635636637638

639

640641642643644645646647648

649

650651652653654655656657658659660661

662

663664665666667668669670671672673

674

675676677678679

Page 19: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

and platform frameworks to retrieve data to respond to Data Consumer requests. In addition, the access activity confirms that descriptive and administrative metadata and metadata schemes are captured and maintained for access by the Data Consumer and as data is transferred to the Data Consumer. The interface with the Data Consumer may be synchronous or asynchronous in nature and may use a pull or push paradigm for data transfer.

2.2.5 BIG DATA PROVIDER FRAMEWORK INTERFACE REQUIREMENTSData for Big Data applications are delivered through data providers. They can be either local providers, data contributed by a user, or distributed data providers, data on the Internet. This interface must be able to provide the following functionality:

Interfaces to files, Interfaces to virtual data directories, Interfaces to data streams, and Interfaces to data filters.

2.2.5.1 Infrastructures Interface RequirementsThis Big Data Framework Provider element provides all the resources necessary to host/run the activities of the other components of the Big Data system. Typically, these resources consist of some combination of physical resources, which may host/support similar virtual resources. The NBDRA needs interfaces that can be used to deal with the underlying infrastructure to address networking, computing, and storage.

2.2.5.2 Platforms Interface RequirementsAs part of the NBDRA platforms, interfaces are needed that can address platform needs and services for data organization, data distribution, indexed storage, and file systems.

2.2.5.3 Processing Interface RequirementsThe processing frameworks for Big Data provide the necessary infrastructure software to support implementation of applications that can deal with the volume, velocity, variety, and variability of data. Processing frameworks define how the computation and processing of the data is organized. Big Data applications rely on various platforms and technologies to meet the challenges of scalable data analytics and operation. A requirement is the ability to interface easily with computing services that offer specific analytics services, batch processing capabilities, interactive analysis, and data streaming.

2.2.5.4 Crosscutting Interface RequirementsSeveral crosscutting interface requirements within the Big Data Framework Provider include messaging, communication, and resource management. Often these services may be hidden from explicit interface use as they are part of larger systems that expose higher-level functionality through their interfaces. However, such interfaces may also be exposed on a lower level in case finer-grained control is needed. The need for such crosscutting interface requirements will be extracted from the NBDIF: Volume 3, Use Cases and General Requirements document.

2.2.5.5 Messaging/Communications FrameworksMessaging and communications frameworks have their roots in the High Performance Computing environments long popular in the scientific and research communities. Messaging/Communications Frameworks were developed to provide application programming interfaces (APIs) for the reliable queuing, transmission, and receipt of data.

11

680681682683684

685

686687688

689690691692

693

694695696697

698

699700

701

702703704705706707

708

709710711712713714

715

716717718719

Page 20: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

2.2.5.6 Resource Management FrameworkAs Big Data systems have evolved and become more complex, and as businesses work to leverage limited computation and storage resources to address a broader range of applications and business challenges, the requirement to effectively manage those resources has grown significantly. While tools for resource management and elastic computing have expanded and matured in response to the needs of cloud providers and virtualization technologies, Big Data introduces unique requirements for these tools. However, Big Data frameworks tend to fall more into a distributed computing paradigm, which presents additional challenges.

2.2.6 BIG DATA APPLICATION PROVIDER TO BIG DATA FRAMEWORK PROVIDER INTERFACE

The Big Data Framework Provider typically consists of one or more hierarchically organized instances of the components in the NBDRA IT value chain (Figure 1). There is no requirement that all instances at a given level in the hierarchy be of the same technology. In fact, most Big Data implementations are hybrids that combine multiple technology approaches to provide flexibility or meet the complete range of requirements, which are driven from the Big Data Application Provider.

12

720

721722723724725726727

728

729

730731732733734

Page 21: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

3 SPECIFICATION PARADIGMThis section summarizes the elementary services that are important to the NBDRA.

3.1 HYBRID AND MULTIPLE FRAMEWORKSTo avoid vendor lock-in, Big Data systems must be able to deal with hybrid and multiple frameworks. This is not only true for Clouds, containers, DevOps, but also for components of the NBDRA.

3.2 DESIGN BY RESOURCE-ORIENTED ARCHITECTUREA resource-oriented architecture represents a software architecture and programming paradigm for designing and developing software in the form of resources. It is often associated with REpresentational State Transfer (REST) interfaces. The resources are software components which can be reused in concrete reference implementations. The service specification is conducted with OpenAPI, allowing use to provide it in a very general form that is independent of the framework or computer language in which the services can be specified. Note that OpenAPI defines services in REST The previous version only specified the resource objects.

3.3 DESIGN BY EXAMPLETo accelerate discussion among the NBD-PWG members, contributors to this document are encouraged to also provide the NBD-PWG with examples that can be included in an appendix.

3.4 VERSION MANAGEMENTDuring the design phase and development period of each version of this document, enhancements are managed through GitHub and community contributions are managed via GitHub issues. This allows preservation of the history of this document. When a new version is ready, the version will be tagged in GitHub. Older versions will, through this process, also be available as historical documents. Discussions about objects in written form are communicated as GitHub issues.

3.5 INTERFACE COMPLIANCYDue to the easy extensibility of the objects in this document and their implicit interfaces, it is important to introduce a terminology that allows the definition of interface compliancy. We define three levels of interface compliance as follows:

Full Compliance: These are reference implementations that provide full compliance to the objects defined in this document. A version number will be added to assure that the snapshot in time of the objects is associated with the version. This reference implementation will implement all objects.

Partial Compliance: These are reference implementations that provide partial compliance to the objects defined in this document. A version number will be added to assure that the snapshot in time of the objects is associated with the version. This reference implementation will implement a partial list of the objects. A document will be generated during the reference implementation that

13

735

736

737

738739

740

741742743744745746747

748

749750

751

752753754755756

757

758759760

761762763764765766767768

Page 22: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

lists all objects defined, but also lists the objects that are not defined by the reference architecture. The document will outline which objects and interfaces have been implemented.

Full and Extended Compliance: These are interfaces that in addition to the full compliance also introduce additional interfaces and extend them. A document will be generated during the reference implementation that lists the differences to the document defined here.

The documents generated during the reference implementation can then be forwarded to the Reference Architecture Subgroup for further discussion and for possible future modifications based on additional practical user feedback.

14

769770771772773

774775776

Page 23: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4 EXAMPLE SPECIFICATIONThe specifications to this document are provided through an automated document creation process so that the actual OpenAPI specifications are the source for the document. Thus we will have all OpenAPI specifications located in the following directory in GitHub:

https://github.com/cloudmesh-community/nist/tree/master/spec

Limitations of the current implementation are as follows. It is a demonstration that showcases the generation of a fully functioning REST service based on the specifications provided in this document. However, it is expected that scalability, distribution of services, and other advanced options need to be addressed based on application requirements.

4.1 LIST OF SPECIFICATIONSThe following table lists the current set of resource objects that we are defining in this draft. Additional objects are also available at:

https://github.com/cloudmesh-community/nist/tree/master/spec

Table 1: List of Specifications

Service Version Date

Alias 3.1.1 29-01-2019

Batch Job 3.0.2 10-30-2018

Containers 3.1.1 02-15-2019

Database 3.1.1 02-15-2019

Default 3.1.1 02-15-2019

Deployment 3.0.2 10-30-2018

File 3.1.1 02-15-2019

Filter 3.0.2 10-30-2018

Flavor 3.1.1 02-15-2019

Hadoop 3.1.1 02-15-2019

Image 3.1.1 02-15-2019

Keyvaluestore 3.1.1 02-15-2019

Microservice 3.0.1

Nic 3.0.1

Organization 3.1.1 02-15-2019

15

777

778779780

781

782783784785

786

787788

789

790

791

Page 24: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Service Version Date

Key 3.1.1 02-15-2019

Replica 3.1.1 02-15-2019

Reservation 3.0.2 10-30-2018

Scheduler 3.1.1 02-15-2019

Scheduler 3.1.1 02-15-2019

Secgroup 3.1.1 02-12-2019

Batch Job 3.0.0 02-08-2019

Stream 3.0.2 10-30-2018

Timestamp 3.1.1 02-15-2019

User 3.1.1 02-15-2019

Variables 3.1.1 02-15-2019

Variables 3.1.1 02-15-2019

VCluster 3.1.1 02-11-2019

Virtual Cluster 3.1.1 02-11-2019

Virtualdirectory 3.1.1 02-15-2019

Virtual Machine 3.1.1 02-15-2019

Figure 2 shows the provider view of the specification resources.

Figure 2: Provider view

Figure 3 shows the resource view of the specification resources.

16

792

793

794795

796

797

Page 25: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Figure 3: Resource view

4.2 IDENTITYAs part of services an identity often needs to be specified. In addition, such persons are often part of groups and have roles within these groups. Thus, four important terms related to the identity are distinguished as follows:

User: The information identifying the profile of a person Group: A group that a person may belong to that is important to define access to services Role: A role given to a person as part of the group that can refine access rights. Organization: The information representing an Organization that manages a Big Data Service

4.2.1 AUTHENTICATIONAt this time, mechanisms are not yet included to manage authentication to external services such as clouds that can stage virtual machines. However, the group has shown multiple solutions to this in cloudmesh.

Local configuration file: A configuration file is managed locally to allow access to the clouds. It is the designer’s responsibility not to expose such credentials.

Session based authentication: No passwords are stored in the configuration file and access is granted on a per session basis where the password needs to be entered.

Service based authentication: The authentication is delegated to an external process. One example here is Auth.

The service that acts in behalf of the user needs to have access to the appropriate cloud provider credentials

An example for a configuration file is provided at the following location:

https://github.com/cloudmesh-community/cm/blob/master/cm4/etc/cloudmesh4.yaml

17

798799

800

801802803

804805806807

808

809810811

812813814815816817818819

820

821

Page 26: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.2.2 ORGANIZATIONAn important concept in many services is the management of a group of users in an organization that includes Big Data services. User management within an organization can be achieved through several concepts. First, it can be achieved by defining the organization. Second, this organization can contain a number of users. Third, users within the organization can have a variety of roles and be separated in various groups. These roles and groups are used, for example, to distinguish different access rights to services.

4.2.2.1 Properties OrganizationProperty Type Description

name string Name of the organization

users array[#/definitions/User] list of users

timestamp

timestamps associated with the organization

4.2.2.2 Paths

4.2.2.2.1 /cloudmesh/organization

4.2.2.2.1.1 GET /cloudmesh/organizationReturns all organizations

Responses

Code Description Schema

200 organization info

4.2.2.2.1.2 PUT /cloudmesh/organizationCreates a new organization

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

organization

body The new organization to create False Organization

4.2.2.2.2 /cloudmesh/organization/{name}

4.2.2.2.2.1 GET /cloudmesh/organization/{name}Returns the organization

Responses

18

822

823824825826827828

829

830

831

832

833

834

835

836

837

838

839

840

841

842

Page 27: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Code Description Schema

200 organization info

Organization

Parameters

Name

Located in Description Required Schema

name path The name of the organization

True

4.2.2.2.3 /cloudmesh/organization/users

4.2.2.2.3.1 GET /cloudmesh/organization/usersReturns all users of the organization

Responses

Code Description Schema

200 organization info

Organization

4.2.2.2.4 /cloudmesh/organization/users/{username}

4.2.2.2.4.1 GET /cloudmesh/organization/users/{username}Returns the specific user of that organization

Responses

Code Description Schema

200 organization info

Organization

Parameters

Name Located in Description Required Schema

username

path The username

True

4.2.2.3 organization.yamlswagger: "2.0"info: version: "3.1.1" x-status: defined x-date: 02-15-2019 title: Organization description: |- An important concept in many services is the management of a group of users in an organization that includes Big Data services. User management within an organization can be achieved through several concepts. First, it can be achieved by defining the organization. Second, this organization can contain a number of users. Third, users within the organization can have a variety of

19

843

844

845

846

847

848

849

850

851

852

853854855856857858859860861862863864865866867

Page 28: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

roles and be separated in various groups. These roles and groups are used, for example, to distinguish different access rights to services.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/organization: get: tags: - Organization summary: Returns all organizations description: Returns all organizations operationId: cloudmesh.organization.get produces: - application/json responses: '200': description: organization info schema: type: array items: $ref: '#/definitions/Organization' put: tags: - Organization summary: Create a new organization description: Create a new organization operationId: cloudmesh.organization.put parameters: - in: body name: organization description: The new organization to create schema: $ref: '#/definitions/Organization' responses: '201': description: Created '/cloudmesh/organization/{name}': get: tags: - Organization summary: Returns the organization description: Returns the organization operationId: cloudmesh.organization.get_by_name parameters: - name: name description: The name of the organization in: path required: true type: string produces: - application/json responses: '200': description: organization info schema: $ref: '#/definitions/Organization'

20

868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936

Page 29: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

/cloudmesh/organization/users: get: tags: - Organization summary: Returns all users of the organization description: Returns all users of the organization operationId: cloudmesh.organization.get_user produces: - application/json responses: '200': description: organization info schema: $ref: '#/definitions/Organization' /cloudmesh/organization/users/{username}: get: tags: - Organization summary: Returns the spcific user of that organization description: Returns the spcific user of that organization operationId: cloudmesh.organization.get_user_by_name parameters: - name: username description: The username in: path required: true type: string produces: - application/json responses: '200': description: organization info schema: $ref: '#/definitions/Organization'/cloudmesh/organization/users/{username}: put: tags: - Organization summary: Create a new user in the organization description: Create a new user in the organization operationId: cloudmesh.organization.put_user parameters: - name: username description: The username in: path required: true type: string produces: - application/json responses: '200': description: organization info schema: $ref: '#/definitions/Organization'definitions: Organization: type: object properties: name: description: Name of the organization type: string users: description: list of users type: array items: $ref: '#/definitions/User' timestamp: description: timestamps associated with the organization

21

937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999

10001001100210031004

Page 30: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

$ref: '#/definitions/Timestamp'

4.2.3 USERServices need to specify which users have access to them. User information can be reused in other services. Users are useful to create a virtual organization that depends on user data. Users can be added, removed, and listed. A group associated with the user can be used to augment users to be part of one or more groups. A number of roles can identify a specific role of a user.

Terminology

Group: A user can be part of a Group Role: A user can have a role within that Group

4.2.3.1 Properties UserProperty Type Description

uuid string A unique id for the user

username string The unique username associated with the user

group array[string] A list of groups that are associated to the user

role array[string] A list of groups that are associated to the user

resource array[string] A list of resources the user has access to

description

string A description for this user

firstname string The firstanme of the user

lastname string The lastname of the user

publickey string The lastname of the user

email string The email of the user

timestamp timestamps associated with the resource

4.2.3.2 Paths

4.2.3.2.1 /cloudmesh/user

4.2.3.2.1.1 GET /cloudmesh/userReturns all users

Responses

Code Description Schema

200 user information

4.2.3.2.1.2 PUT /cloudmesh/userCreates a new user

Responses

Code Descriptio Schema

22

1005

1007

1008100910101011

1012

10131014

1015

1016

1017

1018

1019

1020

1021

1022

1023

Page 31: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

n

201 Created

Parameters

Name Located in

Description Required Schema

user body The new user to create False User

4.2.3.2.2 /cloudmesh/user/{name}

4.2.3.2.2.1 GET /cloudmesh/user/{name}Returns the user of a user while looking it up with the username

Responses

Code Description Schema

200 user information User

Parameters

Name Located in

Description Required Schema

name path name of the user

True

4.2.3.3 user.yaml---swagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: User description: |- Services need to specify which users have access to them. User information can be reused in other services. Users are useful to create a virtual organization that depends on user data. Users can be added, removed, and listed. A group associated with the user can be used to augment users to be part of one or more groups. A number of roles can identify a specific role of a user. Terminology

* *Group*: A user can be part of a Group * *Role*: A user can have a role within that Group

termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: Cloudmesh User url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes:

23

1024

1025

1026

1027

1028

1029

103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062

Page 32: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

- application/jsonproduces: - application/jsonpaths: /cloudmesh/user: get: tags: - User summary: Returns all users description: Returns all users operationId: cloudmesh.user.get produces: - application/json responses: 200: description: user information schema: type: array items: $ref: '#/definitions/User' put: tags: - User summary: Create a new user description: Create a new user operationId: cloudmesh.user.put parameters: - in: body name: user description: The new user to create schema: $ref: '#/definitions/User' responses: 201: description: Created /cloudmesh/user/{name}: get: tags: - User summary: Returns the user of a user while looking it up with the username description: Returns the user of a user while looking it up with the username operationId: cloudmesh.user.get_by_name parameters: - name: name description: name of the user in: path required: true type: string produces: - application/json responses: 200: description: user information schema: $ref: '#/definitions/User'definitions: User: type: object properties: uuid: type: string description: A unique id for the user username: type: string description: The unique username associated with the user group: type: array description: A list of groups that are associated to the user items:

24

106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131

Page 33: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

type: string role: type: array description: A list of groups that are associated to the user items: type: string resource: type: array description: A list of resources the user has access to items: type: string description: type: string description: A description for this user firstname: type: string description: The firstanme of the user lastname: type: string description: The lastname of the user publickey: type: string description: The lastname of the user email: type: string description: The email of the user timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.2.4 PUBLICKEYSTOREMany services and frameworks use Secure Shell (SSH) keys to authenticate. This service allows the convenient storage of the public keys.

4.2.4.1 Properties PublicKeyProperty Type Description

name string The name of the public key

value string The value of the public key

kind string The key kind such as rsa, dsa

group string An optional group name allowing to group keys to create custom groups

comment string A comment for the public key

uri string The uri of the public key if any

fingerprint string The fingerprint of the public key

timestamp timestamps associated with the resource

4.2.4.2 Paths

4.2.4.2.1 /cloudmesh/publickeystore

4.2.4.2.1.1 GET /cloudmesh/publickeystoreReturns all public keys

Responses

25

11321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160

1161

11621163

1164

1165

1166

1167

1168

1169

Page 34: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Code

Description Schema

200 public key information

4.2.4.2.1.2 PUT /cloudmesh/publickeystorePut a new public key into the public key store

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

publickey body The public key to be uploaded False PublicKey

4.2.4.2.2 /cloudmesh/publickeystore/{name}

4.2.4.2.2.1 GET /cloudmesh/publickeystore/{name}Returns a public key by name

Responses

Code Description Schema

200 public key information PublicKey

Parameters

Name

Located in Description Required Schema

name path The name of the public key True

4.2.4.3 publickeystore.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: Key description: |- Many services and frameworks use Secure Shell (SSH) keys to authenticate. This service allows the convenient storage of the public keys.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - http

26

1170

1171

1172

1173

1174

1175

1176

1177

1178

1179118011811182118311841185118611871188118911901191119211931194119511961197119811991200

Page 35: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

consumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/publickeystore: get: tags: - Publickeystore summary: Returns all public keys description: Returns all public keys operationId: cloudmesh.publickeystore.get produces: - application/json responses: '200': description: public key information schema: type: array items: $ref: '#/definitions/PublicKey' put: tags: - Publickeystore summary: Put a new public key into the public key store description: Put a new public key into the public key store operationId: cloudmesh.publickeystore.put parameters: - in: body name: publickey description: The public key to be uploaded schema: $ref: '#/definitions/PublicKey' responses: '201': description: Created '/cloudmesh/publickeystore/{name}': get: tags: - Publickeystore summary: Returns a public key by name description: Returns a public key by name operationId: cloudmesh.publickeystore.get_by_name parameters: - name: name in: path required: true type: string description: The name of the public key produces: - application/json responses: '200': description: public key information schema: $ref: '#/definitions/PublicKey'definitions: PublicKey: type: object description: the public key properties: name: type: string description: The name of the public key value: type: string description: The value of the public key kind: type: string

27

120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269

Page 36: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: The key kind such as rsa, dsa group: type: string description: An optional group name allowing to group keys to create custom groups comment: type: string description: A comment for the public key uri: type: string description: The uri of the public key if any fingerprint: type: string description: The fingerprint of the public key timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.3 GENERAL RESOURCES4.3.1 TIMESTAMPData often needs to be timestamped to indicate when it has been accessed, created, or modified. All objects defined in this document will have, in their final version, a timestamp. The date-time string is defined in RFC3339.

4.3.1.1 Properties TimestampProperty Type Description

accessed string

The time stamp when the object was last accessed

created string

The time stamp when the object was created

modified string

The time stamp when the object was modified

4.3.1.2 Paths

4.3.1.2.1 /cloudmesh/timestamp

4.3.1.2.1.1 GET /cloudmesh/timestampReturns all timestamps

Responses

Code

Description Schema

200 timestamp info

4.3.1.2.1.2 PUT /cloudmesh/timestampCreate a new timestamp

Responses

28

12701271127212731274127512761277127812791280128112821283128412851286

1287

1288

128912901291

1292

1293

1294

1295

1296

1297

1298

1299

1300

Page 37: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

timestamp body The new timestamp to create False Timestamp

4.3.1.2.2 /cloudmesh/timestamp/{name}

4.3.1.2.2.1 GET /cloudmesh/timestamp/{name}Returns a timestamp

Responses

Code Description Schema

200 timestamp info

Timestamp

Parameters

Name

Located in Description Required Schema

name path the name of the time stamp

True

4.3.1.3 timestamp.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: Timestamp description: |- Data often needs to be timestamped to indicate when it has been accessed, created, or modified. All objects defined in this document will have, in their final version, a timestamp. The date-time string is defined in [RFC3339](https://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14).

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/timestamp: get: tags:

29

1301

1302

1303

1304

1305

1306

13071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338

Page 38: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

- Timestamp summary: Returns all timestamps description: Returns all timestamps operationId: cloudmesh.timestamp.get produces: - application/json responses: '200': description: timestamp info schema: type: array items: $ref: '#/definitions/Timestamp' put: tags: - Timestamp summary: Create a new timestamp description: Create a new timestamp operationId: cloudmesh.timestamp.put parameters: - in: body name: timestamp description: The new timestamp to create schema: $ref: '#/definitions/Timestamp' responses: '201': description: Created '/cloudmesh/timestamp/{name}': get: tags: - Timestamp summary: Returns a timestamp description: Returns a timestamp operationId: cloudmesh.timestamp.get_by_name parameters: - name: name in: path required: true type: string description: the name of the time stamp produces: - application/json responses: '200': description: timestamp info schema: $ref: '#/definitions/Timestamp'definitions: Timestamp: type: object description: the timestamp properties: accessed: type: string format: date-time description: The time stamp when the object was last accessed created: type: string format: date-time description: The time stamp when the object was created modified: type: string format: date-time description: The time stamp when the object was modified

30

13391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403

Page 39: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.3.2 ALIASA user may desire to create an alias for a resource. An alias may be used to more easily remember a resource. A User can deploy a service in which such aliases are stored. The aliases could naturally be shared with other users. A resource could have one or more aliases. The reason for an alias is that a resource may have a complex name but a user may want to refer to the resource using a name that is suitable for the user’s application.

4.3.2.1 Properties AliasProperty Type Description

name string The name of the alias

origin string The original object name

timestamp timestamps associated with the resource

4.3.2.2 Paths

4.3.2.2.1 /cloudmesh/alias

4.3.2.2.1.1 GET /cloudmesh/aliasReturns all aliases

Responses

Code

Description Schema

200 alias information

4.3.2.2.1.2 PUT /cloudmesh/aliasCreates a new alias

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

alias body The new alias to create

True Alias

4.3.2.2.2 /cloudmesh/alias/{name}

4.3.2.2.2.1 GET /cloudmesh/alias/{name}Returns an alias by name

Responses

31

1404

14051406140714081409

1410

1411

1412

1413

1414

1415

1416

1417

1418

1419

1420

1421

1422

1423

Page 40: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Code Description

Schema

200 alias info Alias

Parameters

Name Located in Description Required Schema

name path The name of the alias

True

4.3.2.3 alias.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 29-01-2019 title: Alias description: |-

A user may desire to create an alias for a resource. An alias may be used to more eaily remember a resource. A User can deploy a service in which such aliasses are stored. The aliasses could naturally be shared with other users. A resource could have one or more aliasses. The reason for an alias is that a resource may have a complex name but a user may want to refer to the resource using a name that is suitable for the user's application.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/alias: get: tags: - Alias summary: Returns all aliases description: Returns all aliases operationId: cloudmesh.alias.get produces: - application/json responses: '200': description: alias information schema: type: array items: $ref: '#/definitions/Alias' put: tags: - Alias summary: Create a new alias description: Create a new alias operationId: cloudmesh.alias.put parameters: - in: body

32

1424

142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478

Page 41: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

name: alias required: true description: The new alias to create schema: $ref: '#/definitions/Alias' responses: '201': description: Created '/cloudmesh/alias/{name}': get: tags: - Alias summary: Returns an alias by name description: Returns an alias by name operationId: cloudmesh.alias.get_by_name parameters: - name: name in: path required: true type: string description: The name of the alias produces: - application/json responses: '200': description: alias info schema: $ref: '#/definitions/Alias'definitions: Alias: type: object description: the alias properties: name: type: string description: The name of the alias origin: type: string description: The original object name timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.3.3 VARIABLESVariables are used to store simple values. Each variable can have a type, which is also provided as demonstrated in the object below. The variable value format is defined as string to allow maximal probability.

4.3.3.1 Properties VariablesProperty Type Description

name string name of the variable

value string type of the variable

kind string value of the variable

timestamp timestamps associated with the resource

33

147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520

1521

152215231524

1525

Page 42: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.3.3.2 Paths

4.3.3.2.1 /cloudmesh/variables

4.3.3.2.1.1 GET /cloudmesh/variablesReturns all variabless

Responses

Code Description Schema

200 variables info

4.3.3.2.1.2 PUT /cloudmesh/variablesCreate a new variables

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required

Schema

variables

body The new variables to create

False Variables

4.3.3.2.2 /cloudmesh/variables/{name}

4.3.3.2.2.1 GET /cloudmesh/variables/{name}Returns a variables

Responses

Code

Description Schema

200 variables info Variables

Parameters

Name

Located in Description Required Schema

name path Name of the variable

True

4.3.3.3 variables.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined

34

1526

1527

1528

1529

1530

1531

1532

1533

1534

1535

1536

1537

1538

1539

15401541154215431544

Page 43: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

x-date: 02-15-2019 title: Variables description: |- Variables are used to store simple values. Each variable can have a type, which is also provided as demonstrated in the object below. The variable value format is defined as string to allow maximal probability. termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/variables: get: tags: - Variables summary: Returns all variabless description: Returns all variabless operationId: cloudmesh.variables.get produces: - application/json responses: 200: description: variables info schema: type: array items: $ref: '#/definitions/Variables' put: tags: - Variables summary: Create a new variables description: Create a new variables operationId: cloudmesh.variables.add parameters: - in: body name: variables description: The new variables to create schema: $ref: '#/definitions/Variables' responses: 201: description: Created '/cloudmesh/variables/{name}': get: tags: - Variables summary: Returns a variables description: Returns a variables operationId: cloudmesh.variables.get_by_name parameters: - name: name description: Name of the variable in: path required: true type: string produces: - application/json

35

154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613

Page 44: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

responses: 200: description: variables info schema: $ref: '#/definitions/Variables'definitions: Variables: type: object description: the variables properties: name: type: string description: name of the variable value: type: string description: type of the variable kind: type: string description: value of the variable timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.3.4 KEYVALUESTOREKeyvaluestore is a service to store key, value, and type information, all of which are stored as Strings. However, the type could be used to transform it into a non-string type.

4.3.4.1 Properties KeyProperty Type Description

uuid string The uuid of the key, tha uuid must be unique

name string The name of the key. The name must be unique

description string A description of the key

value string The value, or content of the key

kind string The type of the key

timestamp timestamps associated with the resource

4.3.4.2 Paths

4.3.4.2.1 /cloudmesh/keyvaluestore/key

4.3.4.2.1.1 GET /cloudmesh/keyvaluestore/keyReturns all keys with their values and types included

Responses

Code Description

Schema

200 key info

4.3.4.2.1.2 PUT /cloudmesh/keyvaluestore/keyCreates a new key

Responses

36

1614161516161617161816191620162116221623162416251626162716281629163016311632163316341635

1636

16371638

1639

1640

1641

1642

1643

1644

1645

1646

1647

Page 45: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required Schema

key body The new key to create True Key

4.3.4.2.2 /cloudmesh/keyvaluestore/key/{name}

4.3.4.2.2.1 GET /cloudmesh/keyvaluestore/key/{name}Returns the key with its detailed information by name of the key

Responses

Code Description

Schema

200 key info Key

Parameters

Name

Located in Description Required

Schema

name path name of the key True

4.3.4.3 keyvaluestore.yaml---swagger: "2.0"info: version: 3.1.1 x-status: compare to variable and merge x-date: 02-15-2019 title: Keyvaluestore description: |-

Keyvaluestore is a service to store key, value, and type information, all of which are stored as Strings. However the type could be use to transform it into a non strin type.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/keyvaluestore/key: get: tags: - Keyvaluestore

37

1648

1649

1650

1651

1652

1653

16541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685

Page 46: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

summary: Returns all keys with their values and types included description: Returns all keys with their values and types included operationId: cloudmesh.keyvaluestore.get produces: - application/json responses: '200': description: key info schema: type: array items: $ref: '#/definitions/Key' put: tags: - Keyvaluestore summary: Create a new key description: Create a new key operationId: cloudmesh.keyvaluestore.put parameters: - in: body name: key description: The new key to create required: true schema: $ref: '#/definitions/Key' responses: '201': description: Created /cloudmesh/keyvaluestore/key/{name}: get: tags: - Keyvaluestore summary: Returns the key with its detailed information by name of the key description: Returns the key with its detailed information by name of the key operationId: cloudmesh.keyvaluestore.get_by_name parameters: - name: name description: name of the key in: path required: true type: string produces: - application/json responses: '200': description: key info schema: $ref: '#/definitions/Key'definitions: Key: type: object properties: uuid: type: string description: The uuid of the key, tha uuid must be unique name: type: string description: The name of the key. The name must be unique description: type: string description: A description of the key value: type: string description: The value, or content of the key kind: type: string description: The type of the key timestamp:

38

16861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753

Page 47: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.3.5 DEFAULTA default is a special variable that has a context associated with it. This allows one to define values that can be easily retrieved based on the associated context. For example, a default could be the image name for a cloud where the context is defined by the cloud name. In addition to the context, the service name is also specified since a service could have multiple contexts. To be able to define the kind of service there is also a kind attribute.

4.3.5.1 Properties DefaultProperty Type Description

name string The name of the default

value string The type of the default

kind string The value of the default

service string The name of the service

context string The context of the service

timestamp timestamps associated with the resource

4.3.5.2 Paths

4.3.5.2.1 /cloudmesh/default

4.3.5.2.1.1 GET /cloudmesh/defaultReturns all defaults

Responses

Code Description

Schema

200 default info

4.3.5.2.1.2 PUT /cloudmesh/defaultCreates a new default

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required Schema

default body The new default to create True Default

39

17541755

1756

17571758175917601761

1762

1763

1764

1765

1766

1767

1768

1769

1770

1771

Page 48: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.3.5.2.2 /cloudmesh/default/{name}

4.3.5.2.2.1 GET /cloudmesh/default/{name}Returns a default

Responses

Code Description

Schema

200 default info Default

Parameters

Name Located in Description Required Schema

name path The name of the default

True

4.3.5.3 default.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: Default description: |- A default is a special variable that has a context associated with it. This allows one to define values that can be easily retrieved based on the associated context. For example, a default could be the image name for a cloud where the context is defined by the cloud name. In addition to the context, the service name is also specified since a service could have multiple contexts. To be able to define the kind of service there is also a kind attribute. termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/default: get: tags: - Default summary: Returns all defaults description: Returns all defaults operationId: cloudmesh.default.get produces: - application/json responses: '200': description: default info schema: type: array items:

40

1772

1773

1774

1775

1776

1777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822

Page 49: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

$ref: '#/definitions/Default' put: tags: - Default summary: Create a new default description: Create a new default operationId: cloudmesh.default.add parameters: - in: body name: default required: true description: The new default to create schema: $ref: '#/definitions/Default' responses: '201': description: Created '/cloudmesh/default/{name}': get: tags: - Default summary: Returns a default description: Returns a default operationId: cloudmesh.default.get_by_name parameters: - name: name in: path required: true type: string description: The name of the default produces: - application/json responses: '200': description: default info schema: $ref: '#/definitions/Default'definitions: Default: type: object description: the defaults properties: name: type: string description: The name of the default value: type: string description: The type of the default kind: type: string description: The value of the default service: type: string description: The name of the service context: type: string description: The context of the service timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.4 DATA MANAGEMENT4.4.1 FILEExample:

41

182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882

1883

1884

1885

Page 50: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

"name": "report.dat","endpoint": "file://[email protected]:/data/report.dat","checksum": {"sha256":"c01b39c7a35ccc ....... ebfeb45c69f08e17dfe3ef375a7b"},"accessed": "1.1.2017:05:00:00:EST","created": "1.1.2017:05:00:00:EST","modified": "1.1.2017:05:00:00:EST",size": ["GB", "Byte"]

A file is a resource allowing storage of data as a traditional file being processed. The interface to a file provides the mechanism to appropriately locate a file in a distributed system. File identification includes the name, endpoint, checksum, and size. Additional parameters, such as a timestamp can also be stored. The interface only describes the location of the file. The file object has name, endpoint (location), size (in gigabytes [GB], megabytes [MB], and Bytes), and checksum for integrity check.

4.4.1.1 Properties FileProperty Type Description

name string The name of the file

endpoint string The location of the file

checksum string The checksum of the file

size integer

The size of the file in byte

timestamp timestamps associated with the file

4.4.1.2 Paths

4.4.1.2.1 /cloudmesh/file

4.4.1.2.1.1 GET /cloudmesh/fileReturns all files

Responses

Code Description

Schema

200 file info

4.4.1.2.1.2 PUT /cloudmesh/fileCreates a new file

Responses

Code Description

Schema

201 Created

42

1886188718881889189018911892

18931894189518961897

1898

1899

1900

1901

1902

1903

1904

1905

1906

Page 51: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Parameters

Name

Located in Description Required

Schema

file body The new file record to create True File

4.4.1.2.2 /cloudmesh/file/{name}

4.4.1.2.2.1 GET /cloudmesh/file/{name}Returns a file by name

Responses

Code Description

Schema

200 file info File

Parameters

Name

Located in Description Required Schema

name path The name of the file

True

4.4.1.3 file.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: File description: |- A file is a resource allowing storage of data as a traditional file being processed. The interface to a file provides the mechanism to appropriately locate a file in a distributed system. File identification includes the name, endpoint, checksum, and size. Additional parameters, such as a timestamp can also be stored. The interface only describes the location of the file. The file object has name, endpoint (location), size (in gigabytes [GB], megabytes [MB], and Bytes), and checksum for integrity check. termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/file: get: tags: - File

43

1907

1908

1909

1910

1911

1912

191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948

Page 52: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

summary: Returns all files description: Returns all files operationId: cloudmesh.file.get produces: - application/json responses: '200': description: file info schema: type: array items: $ref: '#/definitions/File' put: tags: - File summary: Create a new file description: Create a new file operationId: cloudmesh.file.put parameters: - in: body name: file required: true description: The new file record to create schema: $ref: '#/definitions/File' responses: '201': description: Created '/cloudmesh/file/{name}': get: tags: - File summary: Returns a file by name description: Returns a file by name operationId: cloudmesh.file.get_by_name parameters: - name: name in: path required: true type: string description: The name of the file produces: - application/json responses: '200': description: file info schema: $ref: '#/definitions/File'definitions: File: type: object description: an object representing a file properties: name: type: string description: The name of the file endpoint: type: string description: The location of the file checksum: type: string description: The checksum of the file size: type: integer description: The size of the file in byte timestamp: description: timestamps associated with the file $ref: '#/definitions/Timestamp'

44

19491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016

Page 53: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.4.2 REPLICAIn many distributed systems, it is important that a file can be replicated among different systems to provide faster access. It is important to provide a mechanism to trace the pedigree of the file while pointing to its original source.

4.4.2.1 Properties ReplicaProperty Type Description

name string the name of the replica

filename string the original filename

endpoint string The location of the file

checksum string The checksum of the file

size integer

The size of the file in byte

timestamp

The timestamp of the replica. The timestamp refers to when this entry has been accessed or changed, not the object this replica is pointing to.

4.4.2.2 Paths

4.4.2.2.1 /cloudmesh/replica

4.4.2.2.1.1 GET /cloudmesh/replicaReturns all replicas records

Responses

Code Description

Schema

200 replica info

4.4.2.2.1.2 PUT /cloudmesh/replicaCreates a new replica

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required Schema

replica body The new replica entry to create True Replica

45

2017

2019

202020212022

2023

2024

2025

2026

2027

2028

2029

2030

2031

2032

Page 54: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.4.2.2.2 /cloudmesh/replica/{name}

4.4.2.2.2.1 GET /cloudmesh/replica/{name}Returns a replica by name

Responses

Code Description

Schema

200 replica info Replica

Parameters

Name

Located in Description Required Schema

name path name of the replica entry

True

4.4.2.3 replica.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: Replica description: |- In many distributed systems, it is important that a file can be replicated among different systems to provide faster access. It is important to provide a mechanism to trace the pedigree of the file while pointing to its original source.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/replica: get: tags: - Replica summary: Returns all replicas records description: Returns all replicas records operationId: cloudmesh.replica.get produces: - application/json responses: 200: description: replica info schema: type: array items: $ref: '#/definitions/Replica'

46

2033

2034

2035

2036

2037

20382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081

Page 55: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

put: tags: - Replica summary: Create a new replica description: Create a new replica operationId: cloudmesh.replica.add parameters: - in: body name: replica required: true description: The new replica entry to create schema: $ref: '#/definitions/Replica' responses: 201: description: Created '/cloudmesh/replica/{name}': get: tags: - Replica summary: Returns a replica by name description: Returns a replica by name operationId: cloudmesh.replica.get_by_name parameters: - name: name description: name of the replica entry in: path required: true type: string produces: - application/json responses: 200: description: replica info schema: $ref: '#/definitions/Replica'definitions: Replica: type: object description: An entry representing a file replica record properties: name: type: string description: the name of the replica filename: type: string description: the original filename endpoint: type: string description: The location of the file checksum: type: string description: The checksum of the file size: type: integer description: The size of the file in byte timestamp: $ref: '#/definitions/Timestamp' description: The timestamp of the replica. The timestamp refers to when this entry has been accessed or changed, not the object this replica is pointing to.

4.4.3 DATABASEA database could have a name, an endpoint (e.g., host, port), and a protocol used (e.g., SQL, MongoDB).

47

208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141

2143

2144

Page 56: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.4.3.1 Properties DatabaseProperty Type Description

name string

name of the database

description string

description of the database

endpoint string

endpoint of the database

kind string

the kind of the database

timestamp timestamps associated with the resource

4.4.3.2 Paths

4.4.3.2.1 /cloudmesh/database

4.4.3.2.1.1 GET /cloudmesh/databaseReturns all databases

Responses

Code Description Schema

200 database info

4.4.3.2.1.2 PUT /cloudmesh/databaseCreates a new database

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

database

body The new database record to create

True Database

4.4.3.2.2 /cloudmesh/database/{name}

4.4.3.2.2.1 GET /cloudmesh/database/{name}Returns a database by name

Responses

Code

Description Schema

48

2145

2146

2147

2148

2149

2150

2151

2152

2153

2154

2155

2156

2157

2158

Page 57: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

200 database info Database

Parameters

Name

Located in Description Required Schema

name path name of the database

True

4.4.3.3 database.yamlswagger: "2.0"info: version: 3.1.1 x-status: defined x-date: 02-15-2019 title: Database description: |- A database could have a name, an endpoint (e.g., host, port), and a protocol used (e.g., SQL, MongoDB).

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/database: get: tags: - Database summary: Returns all databases description: Returns all databases operationId: cloudmesh.datbase.get produces: - application/json responses: 200: description: database info schema: type: array items: $ref: '#/definitions/Database' put: tags: - Database summary: Create a new database description: Create a new database operationId: cloudmesh.database.put parameters: - in: body name: database required: true description: The new database record to create schema: $ref: '#/definitions/Database' responses:

49

2159

21602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215

Page 58: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

201: description: Created '/cloudmesh/database/{name}': get: tags: - Database summary: Returns a database by name description: Returns a database by name operationId: cloudmesh.database.get_by_name parameters: - name: name description: name of the database in: path required: true type: string produces: - application/json responses: 200: description: database info schema: $ref: '#/definitions/Database'definitions: Database: type: object description: This defines a database object as an entry properties: name: type: string description: name of the database description: type: string description: description of the database endpoint: type: string description: endpoint of the database kind: type: string description: the kind of the database timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.4.4 VIRTUAL DIRECTORYA virtual directory is a collection of files or replicas of the files. A virtual directory can contain a number of entities including files, streams, and other virtual directories as part of a collection. The element in the collection can either be defined by uuid or by name.

4.4.4.1 Properties UnauthorizedErrorProperty Type Description

code string Code form of the error

message string Human readable form of the error

4.4.4.2 Properties VirtualdirectoryProperty Type Description

name string The name of the virtual directory

description string description of the virtual directory

50

221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257

2258

225922602261

2262

2263

Page 59: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

host string remote host of the virtual directory

location string remote location, e.g., a directory with full path on a host

protocol string access protocol, e.g., HTTP, FTP, SSH, etc.

credential object credential to access, e.g., username, password

timestamp timestamps associated with the resource

4.4.4.3 Paths

4.4.4.3.1 /cloudmesh/virtualdirectory

4.4.4.3.1.1 GET /cloudmesh/virtualdirectoryReturns all virtualdirectorys

Responses

Code

Description Schema

200 virtualdirectory info

Code Description Schema

401 unauthorized error UnauthorizedError

4.4.4.3.1.2 PUT /cloudmesh/virtualdirectoryCreates a new virtualdirectory

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

virtualdirectory body The new virtualdirectory to create True Virtualdirectory

4.4.4.3.2 /cloudmesh/virtualdirectory/{name}

4.4.4.3.2.1 GET /cloudmesh/virtualdirectory/{name}Returns a virtualdirectory by name

Responses

Code

Description Schema

200 virtualdirectory info Virtualdirectory

Parameters

Nam Located in Description Required Schema

51

2264

2265

2266

2267

2268

2269

2270

2271

2272

2273

2274

2275

2276

2277

Page 60: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

e

name path name of the virtual directory

True

4.4.4.4 virtualdirectory.yaml---swagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Virtualdirectory description: |- A virtual directory is a collection of files or replicas of the files. A virtual directory can contain a number of entities including files, streams, and other virtual directories as part of a collection. The element in the collection can either be defined by uuid or by name.

termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup Service Example url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonsecurityDefinitions: httpbasic: type: basic apikey: type: apiKey in: query name: api_key apisecret: type: apiKey in: query name: api_secretpaths: /cloudmesh/virtualdirectory: get: tags: - Virtualdirectory summary: Returns all virtualdirectorys description: Returns all virtualdirectorys operationId: cloudmesh.virtualdirectory.get produces: - application/json security: - httpbasic: [] responses: '200': description: virtualdirectory info schema: type: array items: $ref: '#/definitions/Virtualdirectory' '401': description: unauthorized error schema:

52

22782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339

Page 61: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

$ref: '#/definitions/UnauthorizedError' put: tags: - Virtualdirectory summary: Create a new virtualdirectory description: Create a new virtualdirectory operationId: cloudmesh.virtualdirectory.add parameters: - in: body name: virtualdirectory required: true description: The new virtualdirectory to create schema: $ref: '#/definitions/Virtualdirectory' security: - apikey: [] apisecret: [] responses: '201': description: Created '/cloudmesh/virtualdirectory/{name}': get: tags: - Virtualdirectory summary: Returns a virtualdirectory by name description: Returns a virtualdirectory by name operationId: cloudmesh.virtualdirectory.get_by_name parameters: - name: name description: name of the virtual directory in: path required: true type: string produces: - application/json security: - httpbasic: [] responses: '200': description: virtualdirectory info schema: $ref: '#/definitions/Virtualdirectory'definitions: UnauthorizedError: type: object description: unauthorized error properties: code: type: string description: Code form of the error message: type: string description: Human readable form of the error Virtualdirectory: type: object description: the virtualdirectory properties: name: description: The name of the virtual directory type: string description: description: description of the virtual directory type: string host: description: remote host of the virtual directory type: string location: description: remote location, e.g., a directory with full path on a host type: string

53

234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408

Page 62: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

protocol: description: access protocol, e.g., HTTP, FTP, SSH, etc. type: string credential: description: credential to access, e.g., username, password type: object timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.5 COMPUTE MANAGEMENT - VIRTUAL CLUSTERS4.5.1 VIRTUAL CLUSTERA Virtual Cluster is modeled as one Front-end, or manager node, and one or multiple compute nodes. The manager node usually served as a login node and can be accessed from outside via a public IP. The compute nodes are connected to the manager node via a private, usually high performance (high throughput and low latency), network and thus accessible only from the manager node. To use the virtual cluster, you login to the manager node, and from there you can login to any compute node, or submit a job to run on the compute nodes.

4.5.1.1 Properties VirtualClusterProperty Type Description

name string The name of the virtual cluster

description string A description of the virtual cluster

nnodes integer number of nodes of the virtual cluster

owner string owner of the virtual cluster

manager Manager node of the virtual cluster

nodes array[#/definitions/Node] List of nodes of the virtual cluster

timestamp timestamps associated with the resource

4.5.1.2 Properties NodeProperty Type Description

name string name of the node

state string power state of the node

ncpu integer number of virtual CPUs of the node

ram string RAM size of the node

disk string Disk size of the node

nics array[#/definitions/NIC]

List of network interfaces of the node

4.5.1.3 Properties NICPropert Type Description

54

240924102411241224132414241524162417

2419

2420

242124222423242424252426

2427

2428

2429

Page 63: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

y

mac string MAC address of the node

ip string IP address of the node

4.5.1.4 Paths

4.5.1.4.1 /cloudmesh/virtualcluster/virtualcluster

4.5.1.4.1.1 GET /cloudmesh/virtualcluster/virtualclusterReturns all virtual clusters

Responses

Code Description

Schema

200 profile info

4.5.1.4.1.2 PUT /cloudmesh/virtualcluster/virtualclusterCreates a new virtual cluster

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required

Schema

virtualcluster

body The new virtual cluster to create True VirtualCluster

4.5.1.4.2 /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}

4.5.1.4.2.1 GET /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}Returns a virtual cluster by its name

Responses

Code

Description Schema

200 virtualcluster info VirtualCluster

Parameters

Name Located in Description Required

Schema

virtualclustername

path name of the virtual cluster True

55

2430

2431

2432

2433

2434

2435

2436

2437

2438

2439

2440

2441

2442

2443

Page 64: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.5.1.4.3 /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/manager

4.5.1.4.3.1 GET /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/managerReturns the manager node info of the specified virtual cluster

Responses

Code

Description Schema

200 virtual cluster manager node info Node

Parameters

Name Located in

Description Required Schema

virtualclustername path name of the virtua cluster True

4.5.1.4.4 /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/{nodename}

4.5.1.4.4.1 GET /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/{nodename}Returns the specified node info of the specified virtualcluster

Responses

Code Description Schema

200 virtualcluster node info

Node

Parameters

Name Located in

Description Required Schema

virtualclustername path name of the virtua cluster True

nodename path name of the name True

4.5.1.5 vc.yaml---swagger: "2.0"info: version: 3.1.1 x-date: 02-11-2019 x-status: defined title: "Virtual Cluster" description: |-

A Virtual Cluster is modeled as one Front-end, or manager node, and one or multiple compute nodes. The manager node usually served as a login node and can be accessed from outside via a public IP. The compute nodes are connected to the manager node via a private, usually high performance (high throughput and low latency), network and thus accessible only from the manager node. To use the virtual cluster, you login to the manager node, and from there you can login to any compute node, or submit a job to run on the compute nodes. termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact:

56

2444

2445

2446

2447

2448

2449

2450

2451

2452

2453

245424552456245724582459246024612462246324642465246624672468246924702471247224732474

Page 65: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

name: NIST BDRA Interface Subgroup Service Example url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/virtualcluster/virtualcluster: get: tags: - Virtualcluster summary: Returns all virtual clusters description: Returns all virtual clusters operationId: cloudmesh.virtualcluster.get produces: - application/json responses: "200": description: profile info schema: type: array items: $ref: "#/definitions/VirtualCluster" put: tags: - Virtualcluster summary: Create a new virtual cluster description: Create a new virtual cluster operationId: cloudmesh.virtualcluster.add parameters: - in: body name: virtualcluster description: The new virtual cluster to create required: true schema: $ref: "#/definitions/VirtualCluster" responses: "201": description: Created /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}: get: tags: - Virtualcluster summary: Returns a virtual cluster by its name description: Returns a virtual cluster by its name operationId: cloudmesh.virtualcluster.getByName parameters: - name: virtualclustername description: name of the virtual cluster in: path required: true type: string produces: - application/json responses: "200": description: virtualcluster info schema: $ref: "#/definitions/VirtualCluster" /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/manager: get: tags: - Virtualcluster summary: Returns the manager node info of the specified virtual cluster

57

247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543

Page 66: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: Returns the manager node info of the specified virtual cluster operationId: cloudmesh.virtualcluster.getManagerByName parameters: - name: virtualclustername description: name of the virtua cluster in: path required: true type: string produces: - application/json responses: "200": description: virtual cluster manager node info schema: $ref: "#/definitions/Node" /cloudmesh/virtualcluster/virtualcluster/{virtualclustername}/{nodename}: get: tags: - Virtualcluster summary: Returns the specified node info of the specified virtualcluster description: Returns the specified node info of the specified virtualcluster operationId: cloudmesh.virtualcluster.getNodeByName parameters: - name: virtualclustername description: name of the virtua cluster in: path required: true type: string - name: nodename description: name of the name in: path required: true type: string produces: - application/json responses: "200": description: virtualcluster node info schema: $ref: "#/definitions/Node"definitions: VirtualCluster: type: object properties: name: description: The name of the virtual cluster type: string description: type: string description: A description of the virtual cluster nnodes: type: integer description: number of nodes of the virtual cluster owner: type: string description: owner of the virtual cluster manager: description: Manager node of the virtual cluster $ref: "#/definitions/Node" nodes: description: List of nodes of the virtual cluster type: array items: $ref: "#/definitions/Node" timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

Node:

58

254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612

Page 67: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

type: object properties: name: type: string description: name of the node state: type: string description: power state of the node ncpu: type: integer description: number of virtual CPUs of the node ram: type: string description: RAM size of the node disk: type: string description: Disk size of the node nics: type: array description: List of network interfaces of the node items: $ref: "#/definitions/NIC" NIC: type: object properties: mac: type: string description: MAC address of the node ip: type: string description: IP address of the node

4.5.2 SCHEDULERThe scheduler is a service to store scheduler, value, and type information, all of which are stored as strings.

4.5.2.1 Properties SchedulerProperty Type Description

name string name of the scheduler

value string information of the scheduler

kind string the scheduler kind or type

timestamp timestamps associated with the resource

4.5.2.2 Paths

4.5.2.2.1 /cloudmesh/schedulers

4.5.2.2.1.1 GET /cloudmesh/schedulersReturns all schedulers

Responses

Code Description Schema

200 scheduler info

59

2613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643

2644

26452646

2647

2648

2649

2650

2651

2652

Page 68: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.5.2.2.1.2 PUT /cloudmesh/schedulersCreate a new scheduler

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

scheduler

body The new scheduler to create

False Scheduler

4.5.2.2.2 /cloudmesh/scheduler/{name}

4.5.2.2.2.1 GET /cloudmesh/scheduler/{name}Returns a scheduler

Responses

Code Description Schema

200 scheduler info

Scheduler

Parameters

Name Located in

Description Required Schema

name path name of the scheduler True

4.5.2.3 scheduler.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Scheduler description: |- The scheduler is a service to store scheduler, value, and type information, all of which are stored as strings. termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths:

60

2653

2654

2655

2656

2657

2658

2659

2660

2661

26622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687

Page 69: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

/cloudmesh/schedulers: get: tags: - Scheduler summary: Returns all schedulers description: Returns all schedulers operationId: cloudmesh.scheduler.get produces: - application/json responses: '200': description: scheduler info schema: type: array items: $ref: '#/definitions/Scheduler' put: tags: - Scheduler summary: Create a new scheduler description: Create a new scheduler operationId: cloudmesh.scheduler.add parameters: - in: body name: scheduler description: The new scheduler to create schema: $ref: '#/definitions/Scheduler' responses: '201': description: Created '/cloudmesh/scheduler/{name}': get: tags: - Scheduler summary: Returns a scheduler description: Returns a scheduler operationId: cloudmesh.scheduler.get_by_name parameters: - name: name description: name of the scheduler in: path required: true type: string produces: - application/json responses: '200': description: scheduler info schema: $ref: '#/definitions/Scheduler'definitions: Scheduler: type: object description: the scheduler properties: name: type: string description: name of the scheduler value: type: string description: information of the scheduler kind: type: string description: the scheduler kind or type timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

61

26882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755

Page 70: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6 COMPUTE MANAGEMENT - VIRTUAL MACHINESThis section summarizes a basic interface specification of virtual machines.

4.6.1 IMAGEImage defines an object representing a system image in a cloud that can be used to start virtual machines.

4.6.1.1 Properties ImageProperty Type Description

id string A unique id for the image

name string Name of the image

label string A label that can be defined by the user for the image

description string A description for the image

collection string The collection in which the image fits

cloud string A cloud provider for which the image is designed. If multiple are using the image, they are passed along as space seperated strings

os_type string The OS of the image

osVersion string The OS version of the image

min_requirement

minimum requirement to run the image

status string The status of the image

progress integer

The loading progress percentage of the image

visibility string The visibility of the image

timestamp timestamps associated with the file

4.6.1.2 Properties Minimum_RequirementsProperty Type Description

disk_space

integer

Minimum disk space in bytes required for the image

ram integer

Minimum ram size in bytes to run the image

cpu string Minimum cpu required to run the image including number of cores and clock speed

4.6.1.3 Paths

4.6.1.3.1 /cloudmesh/image

4.6.1.3.1.1 GET /cloudmesh/imageReturns all general description images

62

2756

2757

2758

2759

2760

2761

2762

2763

2764

2765

Page 71: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Responses

Code Description Schema

200 default image info

4.6.1.3.1.2 PUT /cloudmesh/imageCreates a new image

Responses

Code Description

Schema

201 Created

Parameters

Name

Located in Description Required Schema

image body The new image record to create True Image

4.6.1.3.2 /cloudmesh/image/{name}

4.6.1.3.2.1 GET /cloudmesh/image/{name}Returns general description of an image

Responses

Code Description

Schema

200 image info Image

Parameters

Name

Located in Description Required

Schema

name path name of the image True

4.6.1.4 image.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Image description: |- Image defines an object representing a system image in a cloud that can be used to start virtual machines. termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist/spec/ license:

63

2766

2767

2768

2769

2770

2771

2772

2773

2774

2775

27762777277827792780278127822783278427852786278727882789279027912792

Page 72: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/image: get: tags: - Image summary: Returns all general description images description: Returns all general description images operationId: cloudmesh.image.get produces: - application/json responses: '200': description: default image info schema: type: array items: $ref: '#/definitions/Image' put: tags: - Image summary: Create a new image description: Create a new image operationId: cloudmesh.image.put parameters: - in: body name: image required: true description: The new image record to create schema: $ref: '#/definitions/Image' responses: '201': description: Created '/cloudmesh/image/{name}': get: tags: - Image summary: Returns general description of an image description: Returns general description of an image operationId: cloudmesh.image.get_by_name parameters: - name: name description: name of the image in: path required: true type: string produces: - application/json responses: '200': description: image info schema: $ref: '#/definitions/Image'definitions: Image: type: object properties: id: type: string description: A unique id for the image name:

64

279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861

Page 73: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

type: string description: Name of the image label: type: string description: A label that can be defined by the user for the image description: type: string description: A description for the image collection: type: string description: The collection in which the image fits cloud: type: string description: A cloud provider for which the image is designed. If multiple are using the image, they are passed along as space seperated strings os_type: type: string description: The OS of the image osVersion: type: string description: The OS version of the image min_requirement: $ref: '#/definitions/Minimum_Requirements' description: minimum requirement to run the image status: type: string description: The status of the image progress: type: integer description: The loading progress percentage of the image visibility: description: The visibility of the image type: string timestamp: description: timestamps associated with the file $ref: '#/definitions/Timestamp' Minimum_Requirements: type: object properties: disk_space: type: integer description: Minimum disk space in bytes required for the image ram: type: integer description: Minimum ram size in bytes to run the image cpu: type: string description: Minimum cpu required to run the image including number of cores and clock speed

4.6.2 FLAVORThe flavor specifies elementary information about a compute node. This information includes name, id, label, ram size, swap size, disk space, availability of ephemeral disk, available bandwidth, price value, cloud name, and date and time of last update. Flavors and the corresponding information are essential to size a virtual cluster appropriately.

65

2862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910

2911

2912291329142915

Page 74: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6.2.1 Properties FlavorProperty Type Description

name string name of the flavor

id string the id of the flavor

label string a label that a user can set for this flavor

description string A description for the commpute node

ram integer number of bytes used for the image in RAM

swap integer number of bytes used for the image in SWAP

disk integer number of bytes used for the disk

ephemeral_disk boolean specifies wether the flavor features an ephemeral disk

bandwidth integer bandwidth of the node

price integer price for the flavor

cloud string name of the cloud this flavor is used

timestamp timestamps associated with the resource

4.6.2.2 Paths

4.6.2.2.1 /cloudmesh/flavors

4.6.2.2.1.1 GET /cloudmesh/flavorsReturns all flavors

Responses

Code Description

Schema

200 flavor info

4.6.2.2.1.2 PUT /cloudmesh/flavorsCreates a new flavor

Responses

Code Description

Schema

201 Created

66

2916

2917

2918

2919

2920

2921

2922

2923

2924

Page 75: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Parameters

Name Located in Description Required Schema

flavor body The new flavor to create

True Flavor

4.6.2.2.2 /cloudmesh/flavor/{name}

4.6.2.2.2.1 GET /cloudmesh/flavor/{name}Returns a flavor

Responses

Code Description

Schema

200 flavor info Flavor

Parameters

Name

Located in Description Required Schema

name path name of the flavor True

4.6.2.3 flavor.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Flavor description: |- The flavor specifies elementary information about a compute node. This information includes name, id, label, ram size, swap size, disk space, availability of ephemeral disk, available bandwidth, price value, cloud name, and date and time of last update. Flavors and the correponding information are essential to size a virtual cluster appropriately.

termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apache url: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txthost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/flavors: get: tags: - Flavor summary: Returns all flavors description: Returns all flavors

67

2925

2926

2927

2928

2929

2930

2931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967

Page 76: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

operationId: cloudmesh.flavor.get produces: - application/json responses: '200': description: flavor info schema: type: array items: $ref: '#/definitions/Flavor' put: tags: - Flavor summary: Create a new flavor description: Create a new flavor operationId: cloudmesh.flavor.add parameters: - in: body name: flavor required: true description: The new flavor to create schema: $ref: '#/definitions/Flavor' responses: '201': description: Created '/cloudmesh/flavor/{name}': get: tags: - Flavor summary: Returns a flavor description: Returns a flavor operationId: cloudmesh.flavor.get_by_name parameters: - name: name description: name of the flavor in: path required: true type: string produces: - application/json responses: '200': description: flavor info schema: $ref: '#/definitions/Flavor'definitions: Flavor: type: object description: the flavor properties: name: type: string description: name of the flavor id: type: string description: the id of the flavor label: type: string description: a label that a user can set for this flavor description: type: string description: A description for the commpute node ram: type: integer description: number of bytes used for the image in RAM swap: type: integer description: number of bytes used for the image in SWAP

68

296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036

Page 77: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

disk: type: integer description: number of bytes used for the disk ephemeral_disk: type: boolean description: specifies wether the flavor features an ephemeral disk bandwidth: type: integer description: bandwidth of the node price: type: integer description: price for the flavor cloud: type: string description: name of the cloud this flavor is used timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.6.3 VMVM is a service to manage virtual machines.

4.6.3.1 Properties VMProperty Type Description

provider string

Name of the provider

id string

a unique id for the vm

name string

the name of the vm

image string

the image for the vm

region string

an optional region

size string

The size of the vm

state string

The state of the vm

private_ips string

The private IPs

public_ips string

The public IPS

metadata string

The meta data passed along to the VM

timestamp timestamps associated with the resource

69

303730383039304030413042304330443045304630473048304930503051305230533054

3055

3056

3057

Page 78: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6.3.2 Paths

4.6.3.2.1 /vm

4.6.3.2.1.1 GET /vmReturns the list of the vms

Responses

Code

Description Schema

200 Listing the VMs

Parameters

Name

Located in Description Required

Schema

cloud query specify the cloud from which we list, if ommitted all clouds are returned.

False

4.6.3.3 vm.yamlswagger: "2.0"info: description: |-

VM is a service to manage virtual machines. version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Virtual Machine termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup Service Example url: https://cloudmesh-community.github.io/nist/spec/ license: name: Apachehost: localhost:8080basePath: /cloudmesh/v3schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /vm: get: tags: - VM summary: Returns the list of the vms description: Returns the list of the vms operationId: cloudmesh.vm.get produces: - application/json parameters: - name: cloud in: query type: string description: 'specify the cloud from which we list, if ommitted all clouds are returned.' required: false

70

3058

3059

3060

3061

3062

3063

306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105

Page 79: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

responses: '200': description: Listing the VMs schema: type: array items: $ref: '#/definitions/VM'definitions: VM: type: object properties: provider: type: string description: Name of the provider id: type: string description: a unique id for the vm name: type: string description: the name of the vm image: type: string description: the image for the vm region: type: string description: an optional region size: type: string description: The size of the vm state: type: string description: The state of the vm private_ips: type: string description: The private IPs public_ips: type: string description: The public IPS metadata: type: string description: The meta data passed along to the VM timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp' example: image: image metadata: metadata size: size provider: provider name: name private_ips: private_ips id: id state: state region: region public_ips: public_ips

4.6.4 SECGROUPA security group defines the incoming and outgoing security rules which can then be assigned to a node when a node is being created. Once the node is up, the connection to and from the node will be decided by the security group rules, in addition to any other possible rules applied on network devices or from the instance’s firewall settings. A security group may have one or multiple rules and a node may be associated with one or more security groups.

71

3106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160

3161

31623163316431653166

Page 80: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6.4.1 Properties SecgroupProperty Type Description

uuid string Unique identifier of the security group

name string name of the secgroup

description string describes what the secgroup is for

rules array[#/definitions/SecGroupRule]

List of Secgroup rules

4.6.4.2 Properties SecGroupRuleProperty Type Description

uuid string Unique identifier of the rule

ingress boolean The defined security group rule is for ingress if True

egress boolean The defined security group rule is for egress if True

remote_group string Name of the group if the rule is defined by group instead of IP range

protocol string The protocol used such as TCP, UDP, ICMP

from_port integer Port range starting port

to_port integer Port range ending port

cidr string The source or destination network in CIDR notation, e.g., 129.79.0.0/16

timestamp timestamps associated with the resource

4.6.4.3 Paths

4.6.4.3.1 /cloudmesh/secgroup

4.6.4.3.1.1 GET /cloudmesh/secgroupReturns all secgroups

Responses

Code Description Schema

200 secgroup info

4.6.4.3.1.2 POST /cloudmesh/secgroupCreates a new secgroup

Responses

Code Description

Schema

201 Created

Parameters

Name Located Description Required Schema

72

3167

3168

3169

3170

3171

3172

3173

3174

3175

3176

3177

Page 81: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

in

secgroup body The new secgroup to create

False Secgroup

4.6.4.3.2 /cloudmesh/secgroup/{secgroup}

4.6.4.3.2.1 GET /cloudmesh/secgroup/{secgroup}Find a secgroup by name

Responses

Code Description Schema

200 secgroup info Secgroup

Parameters

Name Located in

Description Required

Schema

secgroup path name of the security group True

4.6.4.3.3 /cloudmesh/secgroup/{secgroup}/rule

4.6.4.3.3.1 GET /cloudmesh/secgroup/{secgroup}/ruleGet the defined security group rules for a specified secgroup

Responses

Code

Description Schema

200 security group rules info

Parameters

Name Located in

Description Required

Schema

secgroup path name of the security group True

4.6.4.3.3.2 POST /cloudmesh/secgroup/{secgroup}/ruleCreates a new rule in secgroup

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

secgroup path The name of the new secgroup to create True

secgroupob body The secgroup object to create True SecGroupRule

73

3178

3179

3180

3181

3182

3183

3184

3185

3186

3187

3188

3189

3190

3191

Page 82: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

j

4.6.4.3.4 /cloudmesh/secgroup/{secgroup}/rule/{ruleid}

4.6.4.3.4.1 GET /cloudmesh/secgroup/{secgroup}/rule/{ruleid}Creates a new rule in secgroup

Responses

Code

Description Schema

200 The security group rule definition info

SecGroupRule

Parameters

Name Located in Description Required

Schema

secgroup

path The named of the secgroup from which the rule will be deleted

True

ruleid path The uuid of the rule to be deleted True

4.6.4.3.4.2 DELETE /cloudmesh/secgroup/{secgroup}/rule/{ruleid}Creates a new rule in secgroup

Responses

Code Description Schema

202 Deletion request accepted and will be performed

Parameters

Name Located in Description Required

Schema

secgroup

path The named of the secgroup from which the rule will be deleted

True

ruleid path The uuid of the rule to be deleted True

4.6.4.4 secgroup.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-12-2019 x-status: defined title: Secgroup description: |- A security group defines the incoming and outgoing security rules which can then be assigned to a node when a node is being created. Once the node is up the connection to and from the node will be decided by the security group rules, in addition to any other possible rules applied on network devices or from the instance"s firewall settings.

74

3192

3193

3194

3195

3196

3197

3198

3199

3200

320132023203320432053206320732083209321032113212321332143215

Page 83: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

A security group may have one or multiple rules and a node may be associated with one or more security groups. termsOfService: "https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt" contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/secgroup: get: tags: - Secgroup summary: Returns all secgroups description: Returns all secgroups operationId: cloudmesh.secgroup.get produces: - application/json responses: "200": description: secgroup info schema: type: array items: $ref: "#/definitions/Secgroup" post: tags: - Secgroup summary: Create a new secgroup description: Create a new secgroup operationId: cloudmesh.secgroup.add parameters: - in: body name: secgroup description: The new secgroup to create schema: $ref: "#/definitions/Secgroup" responses: "201": description: Created "/cloudmesh/secgroup/{secgroup}": get: tags: - Secgroup summary: Find a secgroup by name description: Find a secgroup by name operationId: cloudmesh.secgroup.get_by_name parameters: - name: secgroup description: name of the security group in: path required: true type: string produces: - application/json responses: "200": description: secgroup info schema: $ref: "#/definitions/Secgroup" "/cloudmesh/secgroup/{secgroup}/rule":

75

321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284

Page 84: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

get: tags: - Secgroup summary: Get the defiend security group rules for a specified secgroup description: Get the defiend security group rules for a specified secgroup operationId: cloudmesh.secgroup.get_rules_in_secgroup parameters: - name: secgroup description: name of the security group in: path required: true type: string produces: - application/json responses: "200": description: security group rules info schema: type: array items: $ref: "#/definitions/SecGroupRule" post: tags: - Secgroup summary: Create a new rule in the specified security group description: Create a new rule in secgroup operationId: cloudmesh.secgroup.add_rule_in_secgroup parameters: - in: path name: secgroup required: true description: The name of the new secgroup to create type: string - in: body name: secgroupobj required: true description: The secgroup object to create schema: $ref: "#/definitions/SecGroupRule" responses: "201": description: Created "/cloudmesh/secgroup/{secgroup}/rule/{ruleid}": get: tags: - Secgroup summary: Get an existing rule from the specified security group description: Create a new rule in secgroup operationId: cloudmesh.secgroup.get_rule_by_id_in_secgroup parameters: - in: path name: secgroup required: true description: The named of the secgroup from which the rule will be deleted type: string - in: path name: ruleid required: true description: The uuid of the rule to be deleted type: string responses: "200": description: The security group rule definition info schema: $ref: "#/definitions/SecGroupRule" delete: tags: - Secgroup summary: Delete an existing rule from the specified security group

76

328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353

Page 85: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: Create a new rule in secgroup operationId: cloudmesh.secgroup.delete_rule_by_id_in_secgroup parameters: - in: path name: secgroup required: true description: The named of the secgroup from which the rule will be deleted type: string - in: path name: ruleid required: true description: The uuid of the rule to be deleted type: string responses: "202": description: Deletion request accepted and will be performeddefinitions: Secgroup: type: object description: the security group object properties: uuid: type: string description: Unique identifier of the security group name: type: string description: name of the secgroup description: type: string description: describes what the secgroup is for rules: type: array description: List of Secgroup rules items: $ref: "#/definitions/SecGroupRule" SecGroupRule: type: object description: security group rule properties: uuid: type: string description: Unique identifier of the rule ingress: type: boolean description: The defined security group rule is for ingress if True egress: type: boolean description: The defined security group rule is for egress if True remote_group: type: string description: Name of the group if the rule is defined by group instead of IP range protocol: type: string description: The protocol used such as TCP, UDP, ICMP from_port: type: integer description: Port range starting port to_port: type: integer description: Port range ending port cidr: type: string description: The source or destination network in CIDR notation, e.g., 129.79.0.0/16 timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

77

335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419

Page 86: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6.5 NICA service to store Network Interface Controller (NIC) information. All of them are stored as Strings.

4.6.5.1 Properties NicProperty Type Description

name string name of the nic

kind string kind of the nic, such as wireless

mac string the mac address

ip string the ip address

mask string the network mask

broadcast string the broadcast address

gateway string the gateway address

mtu integer the mtu

bandwidth integer the bandwidth in bps

timestamp timestamps associated with the resource

4.6.5.2 Paths

4.6.5.2.1 /cloudmesh/nics

4.6.5.2.1.1 GET /cloudmesh/nicsReturns all nics

Responses

Code Description

Schema

200 nic info

4.6.5.2.1.2 PUT /cloudmesh/nicsCreates a new nic

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

nic body The new nic to create

False Nic

78

3420

3421

3422

3423

3424

3425

3426

3427

3428

3429

3430

3431

Page 87: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.6.5.2.2 /cloudmesh/nic/{name}

4.6.5.2.2.1 GET /cloudmesh/nic/{name}Returns a nic

Responses

Code Description

Schema

200 nic info Nic

Parameters

Name Located in Description Required Schema

name path Get nic info by name

True

4.6.5.3 nic.yamlswagger: "2.0"info: version: 3.0.1 title: Nic description: |- A service to store Network Interface Controller (NIC) information. All of them are stored as Strings.

* TODO: assign and improve termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/nics: get: tags: - NIC summary: Returns all nics description: Returns all nics operationId: cloudmesh.nic.get produces: - application/json responses: '200': description: nic info schema: type: array items: $ref: '#/definitions/Nic' put: tags: - NIC summary: Create a new nic

79

3432

3433

3434

3435

3436

3437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482

Page 88: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: Create a new nic operationId: cloudmesh.nic.put parameters: - in: body name: nic description: The new nic to create schema: $ref: '#/definitions/Nic' responses: '201': description: Created '/cloudmesh/nic/{name}': get: tags: - NIC summary: Returns a nic description: Returns a nic operationId: cloudmesh.nic.get_by_name parameters: - name: name description: Get nic info by name in: path required: true type: string produces: - application/json responses: '200': description: nic info schema: $ref: '#/definitions/Nic'definitions: Nic: type: object description: the nic properties: name: type: string description: name of the nic kind: type: string description: kind of the nic, such as wireless mac: type: string description: the mac address ip: type: string description: the ip address mask: type: string description: the network mask broadcast: type: string description: the broadcast address gateway: type: string description: the gateway address mtu: type: integer description: the mtu bandwidth: type: integer description: the bandwidth in bps timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

80

348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548

Page 89: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.7 COMPUTE MANAGEMENT - CONTAINERS4.7.1 CONTAINERSA service to store containers.

4.7.1.1 Properties ContainerProperty Type Description

name string name of the container

version string version of the container

label string label of the container

type string type of the container

definition string definition or manifest of the container

imgURI string URI of the container

tags array[string] tags of the container

timestamp

timestamps associated with the resource

4.7.1.2 Paths

4.7.1.2.1 /cloudmesh/container

4.7.1.2.1.1 GET /cloudmesh/containerReturns all containers

Responses

Code Description Schema

200 containers info

4.7.1.2.1.2 PUT /cloudmesh/containerCreates a new container

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

containers

body The new containers to create

False Container

81

3550

3551

3552

3553

3554

3555

3556

3557

3558

3559

3560

3561

3562

Page 90: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.7.1.2.2 /cloudmesh/container/{name}

4.7.1.2.2.1 GET /cloudmesh/container/{name}Returns a container

Responses

Code

Description Schema

200 containers info Container

Parameters

Name Located in

Description Required

Schema

name path name of the container True

4.7.1.3 containers.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Containers description: |-

A service to store containers.

termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/container: get: tags: - Container summary: Returns all containers description: Returns all containers operationId: cloudmesh.conteiners.get produces: - application/json responses: 200: description: containers info schema: type: array items: $ref: '#/definitions/Container' put: tags: - Container summary: Create a new containers description: Create a new containers

82

3563

3564

3565

3566

3567

3568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613

Page 91: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

operationId: cloudmesh.containers.put parameters: - in: body name: containers description: The new containers to create schema: $ref: '#/definitions/Container' responses: 201: description: Created '/cloudmesh/container/{name}': get: tags: - Container summary: Returns a containers description: Returns a containers operationId: cloudmesh.containers.get_by_name parameters: - name: name description: name of the container in: path required: true type: string produces: - application/json responses: 200: description: containers info schema: $ref: '#/definitions/Container'definitions: Container: type: object description: A record representing a container properties: name: type: string description: name of the container version: type: string description: version of the container label: type: string description: label of the container type: type: string description: type of the container definition: type: string description: definition or manifest of the container imgURI: type: string description: URI of the container tags: type: array description: tags of the container items: type: string timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

83

3614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674

Page 92: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.8 COMPUTE MANAGEMENT - FUNCTIONS4.8.1 MICROSERVICEAs part of microservices, a function with parameters that can be invoked has been defined.

4.8.1.1 Properties MicroserviceProperty Type Description

name string name of the microservice

endpoint string the end point of the microservice

function string the function the microservice represents

timestamp timestamps associated with the resource

4.8.1.2 Paths

4.8.1.2.1 /cloudmesh/microservices

4.8.1.2.1.1 GET /cloudmesh/microservicesReturns all microservices

Responses

Code

Description Schema

200 microservice info

4.8.1.2.1.2 PUT /cloudmesh/microservicesCreates a new microservice

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required

Schema

microservice body The new microservice to create False Microservice

4.8.1.2.2 /cloudmesh/microservice/{name}

4.8.1.2.2.1 GET /cloudmesh/microservice/{name}Returns a microservice

Responses

Cod Description Schema

84

3675

3676

3677

3678

3679

3680

3681

3682

3683

3684

3685

3686

3687

3688

3689

3690

3691

Page 93: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

e

200 microservice info Microservice

Parameters

Name

Located in Description Required Schema

name path Get microservie info by name True

4.8.1.3 microservice.yamlswagger: "2.0"info: version: 3.0.1 title: Microservice description: |- As part of microservices, a function with parameters that can be invoked has been defined.

* TODO: assign and improve termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/microservices: get: tags: - Microservice summary: Returns all microservices description: Returns all microservices operationId: cloudmesh.microservice.get produces: - application/json responses: '200': description: microservice info schema: type: array items: $ref: '#/definitions/Microservice' put: tags: - Microservice summary: Create a new microservice description: Create a new microservice operationId: cloudmesh.microservice.put parameters: - in: body name: microservice description: The new microservice to create schema: $ref: '#/definitions/Microservice' responses:

85

3692

3693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747

Page 94: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

'201': description: Created '/cloudmesh/microservice/{name}': get: tags: - Microservice summary: Returns a microservice description: Returns a microservice operationId: cloudmesh.microservice.get_by_name parameters: - name: name in: path description: Get microservie info by name required: true type: string produces: - application/json responses: '200': description: microservice info schema: $ref: '#/definitions/Microservice'definitions: Microservice: type: object description: the microservice properties: name: type: string description: name of the microservice endpoint: type: string description: the end point of the microservice function: type: string description: the function the microservice represents timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.9 BATCH PROCESSING4.9.1 BATCHJOBVM is a service to manage virtual machines.

86

374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786

3787

3788

3789

Page 95: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.9.1.1 Properties VMProperty Type Description

provider string

Name of the provider

id string

a unique id for the vm

name string

the name of the vm

image string

the image for the vm

region string

an optional region

size string

The size of the vm

state string

The state of the vm

private_ips string

The private IPs

public_ips string

The public IPS

metadata string

The meta data passed along to the VM

timestamp timestamps associated with the resource

4.9.1.2 Paths

4.9.1.2.1 /vm

4.9.1.2.1.1 GET /vmReturns the list of the vms

Responses

Code

Description Schema

200 Listing the VMs

Parameters

Name

Located in Description Required

Schema

cloud query specify the cloud from which we list, if omitted all clouds are returned.

False

87

3790

3791

3792

3793

3794

3795

3796

Page 96: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.9.1.3 batchjob.yamlswagger: "2.0"info: version: 3.0.2 x-date: 10-30-2018 title: Batch Job description: |- Computing jobs that can run without end user interaction, and are scheduled through queuing systems, are called batch jobs. Batch jobs are used to minimize human interaction and allow the submission and scheduling of many jobs in parallel while attempting to utilize the resources through a resource scheduler more efficiently or simply in sequential order. Batch processing scarce resources managed by batch queues are highly optimized and in many cases, provide significant performance advantages over other services. Disadvantages include the limited and preinstalled software stacks that, in some cases, do not allow the latest applications to run.

termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/batch/job: get: tags: - Batchjob summary: Returns all batchjobs description: Returns all batchjobs operationId: cloudmesh.batchjob.get produces: - application/json responses: 200: description: batchjob info schema: type: array items: $ref: '#/definitions/Batchjob' put: tags: - Batchjob summary: Create a new batchjob description: Create a new batchjob operationId: cloudmesh.batchjob.add parameters: - in: body name: batchjob description: The new batchjob to create schema: $ref: '#/definitions/Batchjob' responses: 201: description: Created '/cloudmesh/batch/job/{name}': get: tags:

88

37973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864

Page 97: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

- Batchjob summary: Returns a batchjob description: Returns a batchjob operationId: cloudmesh.batchjob.get_by_name parameters: - name: name description: Get batchjob info by name in: path required: true type: string produces: - application/json responses: 200: description: batchjob info schema: $ref: '#/definitions/Batchjob'definitions: Batchjob: type: object description: the batchjob properties: name: type: string description: name of the batchjob output: type: string description: name of the output file(s) TBD array script: type: string description: the script of the job cmd: type: string description: a command can be scpecified alternatively to the script queue: type: string description: the queue name id: type: string description: after submissin the job gets an id cluster: type: string description: the name of the cluster th job is submitted to time: type: string description: the time the job is to be started duration: type: string description: the duration of the job script_path: type: string description: the path to a script nodes: type: string description: the nodes used to execute the job dir: type: string description: the directory in which to execute the job timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.9.2 SLURMJOBVM is a service to manage virtual machines.

89

3865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925

3926

3927

Page 98: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.9.2.1 Properties VMProperty Type Description

provider string

Name of the provider

id string

a unique id for the vm

name string

the name of the vm

image string

the image for the vm

region string

an optional region

size string

The size of the vm

state string

The state of the vm

private_ips string

The private IPs

public_ips string

The public IPS

metadata string

The meta data passed along to the VM

timestamp timestamps associated with the resource

4.9.2.2 Paths

4.9.2.2.1 /vm

4.9.2.2.1.1 GET /vmReturns the list of the vms

Responses

Code

Description Schema

200 Listing the VMs

Parameters

Name

Located in Description Required

Schema

cloud query specify the cloud from which we list, if ommitted all clouds are returned.

False

90

3928

3929

3930

3931

3932

3933

3934

Page 99: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.9.2.3 slurmjob.yamlswagger: "2.0"info: version: 3.0.0 x-date: 02-08-2019 title: Batch Job description: |-

Computing jobs based on a slurm script that can be run on a remote slurm cluster without end user interaction are called Slurm jobs. Slurm jobs are helpful to minimize the user's interaction with the slurm workload manager and allows seamless communication to the remote server. The script as well as the accompanied files are automatically transfered to the remote slurm cluster and results are automatically collected when ready.

termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/slurmjob/job: get: tags: - Slurmjob summary: Returns all slurmjobs description: Returns all slurmjobs operationId: cloudmesh.slurmjob.get produces: - application/json responses: 200: description: slurmjob info schema: type: array items: $ref: '#/definitions/Slurmjob' put: tags: - Slurmjob summary: Create a new slurmjob description: Create a new slurmjob operationId: cloudmesh.slurmjob.add parameters: - name: slurmjob in: body description: The new slurmjob to create schema: $ref: '#/definitions/Slurmjob' responses: 200: description: Created '/cloudmesh/slurmjob/job/{name}': get: tags: - Slurmjob summary: Returns a slurmjob description: Returns a slurmjob operationId: cloudmesh.slurmjob.get_by_name

91

39353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002

Page 100: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

parameters: - name: name description: name of the slurmjob in: path required: true type: string produces: - application/json responses: 200: description: slurmjob info schema: $ref: '#/definitions/Slurmjob'definitions: Slurmjob: type: object description: the batch job properties: name: type: string description: name of the batch job suffix: type: string description: the suffix of the filename for a job clustername: type: string description: slurm cluster on which the job is gonna run input_type: type: string description: type of the input for the script that is going to be run on remote cluster, possible values are params OR params+file remote_path: type: string description: path in the remotes on which the scripts is gonna be copied to and ran from items: $ref: '#/definitions/Path' slurm_script: type: string description: path of the slurm script items: $ref: '#/definitions/Path' job_script: type: string description: path of the file that is going to be run on the cluster via slurm script items: $ref: '#/definitions/Path' argfile: type: string description: path of the file that has to be passed to the file as an argument (if any) items: $ref: '#/definitions/Path' local_folder: type: string description: local path to which the results are gonna be copied items: $ref: '#/definitions/Path' timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

Path: type: object description: path information properties: folder_path: type: string description: absolute path to the folder file_path: type: string

92

400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071

Page 101: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: absolute path to the file file_name: type: string description: the name of the script/file

4.10 RESERVATION4.10.1 RESERVATIONSome services may consume a considerable amount of resources, necessitating the reservation of resources.

4.10.1.1 Properties ReservationProperty Type Description

name string name of the reservation

service string the name of the service on which we reserve

description

string the description of the reservation

start string the start time and date

end string the end time and date

timestamp timestamps associated with the resource

4.10.1.2 Paths

4.10.1.2.1 /cloudmesh/reservations

4.10.1.2.1.1 GET /cloudmesh/reservationsReturns all reservations

Responses

Code Description Schema

200 reservation info

4.10.1.2.1.2 PUT /cloudmesh/reservationsCreates a new reservation

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required

Schema

93

4072407340744075

4076

4077

40784079

4080

4081

4082

4083

4084

4085

4086

4087

4088

4089

Page 102: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

reservation body The new reservation to create False Reservation

4.10.1.2.2 /cloudmesh/reservation/{name}

4.10.1.2.2.1 GET /cloudmesh/reservation/{name}Returns a reservation

Responses

Code

Description Schema

200 reservation info Reservation

Parameters

Name

Located in Description Required Schema

name path Get reservation info by name

True

4.10.1.3 reservation.yamlswagger: "2.0"info: version: 3.0.2 x-date: 10-30-2018 title: Reservation description: |- Some services may consume a considerable amount of resources, necessitating the reservation of resources.

* TODO: assign and improve termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/reservations: get: tags: - Reservation summary: Returns all reservations description: Returns all reservations operationId: cloudmesh.reservation.get produces: - application/json responses: '200': description: reservation info schema: type: array

94

4090

4091

4092

4093

4094

40954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135

Page 103: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

items: $ref: '#/definitions/Reservation' put: tags: - Reservation summary: Create a new reservation description: Create a new reservation operationId: cloudmesh.reservation.add parameters: - in: body name: reservation description: The new reservation to create schema: $ref: '#/definitions/Reservation' responses: '201': description: Created '/cloudmesh/reservation/{name}': get: tags: - Reservation summary: Returns a reservation description: Returns a reservation operationId: cloudmesh.reservation.get_by_name parameters: - name: name description: Get reservation info by name in: path required: true type: string produces: - application/json responses: '200': description: reservation info schema: $ref: '#/definitions/Reservation'definitions: Reservation: type: object description: the reservation properties: name: type: string description: name of the reservation service: type: string description: the name of the service on which we reserve description: type: string description: the description of the reservation start: type: string format: date description: the start time and date end: type: string format: date description: the end time and date timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

95

41364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197

Page 104: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.11 DATA STREAMS4.11.1 STREAMThe stream object describes a data flow, providing information about the rate and number of items exchanged while issuing requests to the stream. A stream may return data items in a specific format that is defined by the stream.

4.11.1.1 Properties StreamProperty Type Description

name string name of the stream

format string format of the stream

rate integer the rate of messages

limit integer the limit of items send

timestamp timestamps associated with the resource

4.11.1.2 Paths

4.11.1.2.1 /cloudmesh/streams

4.11.1.2.1.1 GET /cloudmesh/streamsReturns all streams

Responses

Code Description

Schema

200 stream info

4.11.1.2.1.2 PUT /cloudmesh/streamsCreates a new stream

Responses

Code Description

Schema

201 Created

Parameters

Name Located in Description Required Schema

stream

body The new stream to create False Stream

96

4198

4199

420042014202

4203

4204

4205

4206

4207

4208

4209

4210

4211

4212

Page 105: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.11.1.2.2 /cloudmesh/stream/{name}

4.11.1.2.2.1 GET /cloudmesh/stream/{name}Returns a stream

Responses

Code Description

Schema

200 stream info Stream

Parameters

Name Located in Description Required Schema

name path Get stream info by name

True

4.11.1.3 stream.yamlswagger: "2.0"info: version: 3.0.2 x-date: 10-30-2018 title: Stream description: |- The stream object describes a data flow, providing information about the rate and number of items exchanged while issuing requests to the stream. A stream may return data items in a specific format that is defined by the stream.

* TODO: assign and improve termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/streams: get: tags: - Stream summary: Returns all streams description: Returns all streams operationId: cloudmesh.stream.get produces: - application/json responses: '200': description: stream info schema: type: array items: $ref: '#/definitions/Stream' put:

97

4213

4214

4215

4216

4217

4218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263

Page 106: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

tags: - Stream summary: Create a new stream description: Create a new stream operationId: cloudmesh.stream.add parameters: - in: body name: stream description: The new stream to create schema: $ref: '#/definitions/Stream' responses: '201': description: Created '/cloudmesh/stream/{name}': get: tags: - Stream summary: Returns a stream description: Returns a stream operationId: cloudmesh.stream.get_by_name parameters: - name: name description: Get stream info by name in: path required: true type: string produces: - application/json responses: '200': description: stream info schema: $ref: '#/definitions/Stream'definitions: Stream: type: object description: the stream properties: name: type: string description: name of the stream format: type: string description: format of the stream rate: type: integer description: the rate of messages limit: type: integer description: the limit of items send timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.11.2 FILTERFilters can operate on a variety of objects and reduce the information received based on a search criterion.

4.11.2.1 Properties FilterProperty Type Description

name string

name of the filter

function strin the function of the data exchanged in the stream

98

426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317

4318

4319

4320

Page 107: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

g

kind string

the filter kind or type

timestamp timestamps associated with the resource

4.11.2.2 Paths

4.11.2.2.1 /cloudmesh/filters

4.11.2.2.1.1 GET /cloudmesh/filtersReturns all filters

Responses

Code Description

Schema

200 filter info

4.11.2.2.1.2 PUT /cloudmesh/filtersCreates a new filter

Responses

Code Description

Schema

201 Created

Parameters

Name

Located in Description Required Schema

filter body The new filter to create False Filter

4.11.2.2.2 /cloudmesh/filter/{name}

4.11.2.2.2.1 GET /cloudmesh/filter/{name}Returns a filter

Responses

Code Description

Schema

200 filter info Filter

Parameters

Name

Located in Description Required Schema

name path Get filter info by name

True

99

4321

4322

4323

4324

4325

4326

4327

4328

4329

4330

4331

4332

4333

4334

Page 108: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.11.2.3 filter.yamlswagger: "2.0"info: version: 3.0.2 x-date: 10-30-2018 title: Filter description: |- Filters can operate on a variety of objects and reduce the information received based on a search criterion.

* TODO: assign for review and improvement termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/filters: get: tags: - Filter summary: Returns all filters description: Returns all filters operationId: cloudmesh.filter.get produces: - application/json responses: '200': description: filter info schema: type: array items: $ref: '#/definitions/Filter' put: tags: - Filter summary: Create a new filter description: Create a new filter operationId: cloudmesh.filter.put parameters: - in: body name: filter description: The new filter to create schema: $ref: '#/definitions/Filter' responses: '201': description: Created '/cloudmesh/filter/{name}': get: tags: - Filter summary: Returns a filter description: Returns a filter operationId: cloudmesh.filter.get_by_name parameters: - name: name description: Get filter info by name

100

43354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402

Page 109: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

in: path required: true type: string produces: - application/json responses: '200': description: filter info schema: $ref: '#/definitions/Filter'definitions: Filter: type: object description: the filter properties: name: type: string description: name of the filter function: type: string description: the function of the data exchanged in the stream kind: type: string description: the filter kind or type timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.12 MAPREDUCE4.12.1 HADOOPA service to store the information of a hadoop deployment definition. All of the attributes are stored as Strings.

101

440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429

4430

4431

44324433

Page 110: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.12.1.1 Properties HadoopProperty Type Description

name string name of the hadoop cluster

deployment_type string the type of the deployer such as ansible

deployment_git string the url where to find the deployment scripts

resource_managers integer number of resource managers

namenodes integer number of name nodes

datanodes integer number of data nodes

historynodes integer number of history nodes

journalnodes integer number of journal nodes

yarn boolean

true if yarn is used

hdfs boolean

true if hdfs is used

timestamp timestamps associated with the resource

4.12.1.2 Paths

4.12.1.2.1 /cloudmesh/hadoop

4.12.1.2.1.1 GET /cloudmesh/hadoopReturns all hadoops

Responses

Code Description

Schema

200 hadoop info

4.12.1.2.1.2 PUT /cloudmesh/hadoopCreates a new hadoop

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required

Schema

hadoop body The new hadoop to create False Hadoop

102

4434

4435

4436

4437

4438

4439

4440

4441

4442

4443

Page 111: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.12.1.2.2 /cloudmesh/hadoop/{name}

4.12.1.2.2.1 GET /cloudmesh/hadoop/{name}Returns a hadoop

Responses

Code Description

Schema

200 hadoop info Hadoop

Parameters

Name

Located in Description Required Schema

name path name of the hadoop

True

4.12.1.3 hadoop.yamlswagger: "2.0"info: version: 3.1.1 x-date: 02-15-2019 x-status: defined title: Hadoop description: |- A service to store the information of a hadoop deployment definition. All of the attributes are stored as Strings.

* TODO: assign for review and imporvement termsOfService: 'https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt' contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/hadoop: get: tags: - Hadoop summary: Returns all hadoops description: Returns all hadoops operationId: cloudmesh.hadoop.get produces: - application/json responses: '200': description: hadoop info schema: type: array items: $ref: '#/definitions/Hadoop'

103

4444

4445

4446

4447

4448

44494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492

Page 112: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

put: tags: - Hadoop summary: Create a new hadoop description: Create a new hadoop operationId: cloudmesh.hadoop.put parameters: - in: body name: hadoop description: The new hadoop to create schema: $ref: '#/definitions/Hadoop' responses: '201': description: Created '/cloudmesh/hadoop/{name}': get: tags: - Hadoop summary: Returns a hadoop description: Returns a hadoop operationId: cloudmesh.hadoop.get_by_name parameters: - name: name in: path description: name of the hadoop required: true type: string produces: - application/json responses: '200': description: hadoop info schema: $ref: '#/definitions/Hadoop'definitions: Hadoop: type: object description: An object representing a Hadoop deployment definition properties: name: type: string description: name of the hadoop cluster deployment_type: type: string description: the type of the deployer such as ansible deployment_git: type: string description: the url where to find the deployment scripts resource_managers: type: integer description: number of resource managers namenodes: type: integer description: number of name nodes datanodes: type: integer description: number of data nodes historynodes: type: integer description: number of history nodes journalnodes: type: integer description: number of journal nodes yarn: type: boolean description: true if yarn is used hdfs: type: boolean

104

449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561

Page 113: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: true if hdfs is used timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

4.13 DEPLOYMENT4.13.1 DEPLOYMENTA service to store deployment, value, type information. All of them are stored as Strings.

4.13.1.1 Properties DeploymentProperty Type Description

cluster string the name of the cluster

stack array[object]

ERROR: description missing

timestamp timestamps associated with the resource

4.13.1.2 Paths

4.13.1.2.1 /cloudmesh/deployments

4.13.1.2.1.1 GET /cloudmesh/deploymentsReturns all deployments

Responses

Code Description Schema

200 deployment info

4.13.1.2.1.2 PUT /cloudmesh/deploymentsCreates a new deployment

Responses

Code Description

Schema

201 Created

Parameters

Name Located in

Description Required Schema

deployment body The new deployment to create False Deployment

105

4562456345644565

4566

4567

4568

4569

4570

4571

4572

4573

4574

4575

4576

4577

4578

Page 114: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

4.13.1.2.2 /cloudmesh/deployment/{name}

4.13.1.2.2.1 GET /cloudmesh/deployment/{name}Returns a deployment

Responses

Code Description Schema

200 deployment info Deployment

Parameters

Name

Located in Description Required Schema

name path Get deployment info by name True

4.13.1.3 deployment.yamlswagger: "2.0"info: version: 3.0.2 x-date: 10-30-2018 title: Deployment description: |- A service to store deployment, value, type information. All of them are stored as Strings.

* TODO: assign for review and improvement termsOfService: https://github.com/cloudmesh-community/nist/blob/master/LICENSE.txt contact: name: NIST BDRA Interface Subgroup url: https://cloudmesh-community.github.io/nist license: name: Apachehost: localhost:8080schemes: - httpconsumes: - application/jsonproduces: - application/jsonpaths: /cloudmesh/deployments: get: tags: - Deployment summary: Returns all deployments description: Returns all deployments operationId: cloudmesh.deployment.get produces: - application/json responses: 200: description: deployment info schema: type: array items: $ref: '#/definitions/Deployment' put: tags: - Deployment summary: Create a new deployment

106

4579

4580

4581

4582

4583

45844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630

Page 115: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

description: Create a new deployment operationId: cloudmesh.deployment.add parameters: - in: body name: deployment description: The new deployment to create schema: $ref: '#/definitions/Deployment' responses: '201': description: Created '/cloudmesh/deployment/{name}': get: tags: - Deployment summary: Returns a deployment description: Returns a deployment operationId: cloudmesh.deployment.get_by_name parameters: - name: name description: Get deployment info by name in: path required: true type: string produces: - application/json responses: '200': description: deployment info schema: $ref: '#/definitions/Deployment'definitions: Deployment: type: object description: the deployment properties: cluster: type: string description: the name of the cluster stack: type: array items: type: object #layers: string timestamp: description: timestamps associated with the resource $ref: '#/definitions/Timestamp'

107

46314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677

Page 116: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

5 STATUS CODES AND ERROR RESPONSES

In case of an error or a successful response, the response header contains a HTTP code (see https://tools.ietf.org/html/rfc7231). The response body usually contains the following:

The HTTP response code; An accompanying message for the HTTP response code; and A field or object where the error occurred.

Table 2: HTTP Response Codes

HTTP Response

Description Code

200 OK success code, for GET or HEAD request.

201 Created success code, for POST request.

204 No Content success code, for DELETE request.

300 The value returned when an external ID exists in more than one record.

304 The request content has not changed since a specified date and time.

400 The request could not be understood.

401 The session ID or OAuth token used has expired or is invalid.

403 The request has been refused.

404 The requested resource could not be found.

405 The method specified in the Request-Line isn’t allowed for the resource specified in the URI.

415 The entity in the request is in a format that’s not supported by the specified method.

108

4678

4679

46804681

468246834684

4685

Page 117: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Appendix A: Acronyms and TermsThe following acronyms and terms are used in this volume.

ACID Atomicity, Consistency, Isolation, Durability

API Application Programming Interface

ASCII American Standard Code for Information Interchange

BASE Basically Available, Soft state, Eventual consistency

Container See http://csrc.nist.gov/publications/drafts/800-180/sp800-180_draft.pdf

Cloud Computing The practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer. See http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf.

DevOps A clipped compound of software DEVelopment and information technology OPerationS

Deployment The action of installing software on resources

HTTP HyperText Transfer Protocol HTTPS HTTP Secure

Hybrid Cloud See http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf.

IaaS Infrastructure as a Service SaaS Software as a Service

ITL Information Technology Laboratory

Microservice Architecture Is an approach to build applications based on many smaller modular services. Each module supports a specific goal and uses a simple, well-defined interface to communicate with other sets of services.

NBD-PWG NIST Big Data Public Working Group

NBDRA NIST Big Data Reference Architecture

NBDRAI NIST Big Data Reference Architecture Interface

NIST National Institute of Standards and Technology

OS Operating System

REST REpresentational State Transfer

Replica A duplicate of a file on another resource to avoid costly transfer costs in case of frequent access.

Serverless Computing Serverless computing specifies the paradigm of function as a service (FaaS). It is a cloud computing code execution model in which a cloud provider manages the function deployment and utilization while clients can utilize them. The charge model is based on execution of the function rather than the cost to manage and host the VM or container.

Software Stack A set of programs and services that are installed on a resource to support applications.

109

4686

4687

4688

4689

4690

4691

4692

469346944695

46964697

4698

4699

47004701

4702

4703

470447054706

4707

4708

4709

4710

4711

4712

47134714

47154716471747184719

47204721

Page 118: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Virtual Filesysyem An abstraction layer on top of a distributed physical file system to allow easy access to the files by the user or application.

Virtual Machine A virtual machine (VM) is a software computer that, like a physical computer, runs an operating system and applications. The VM is composed of a set of specification and configuration files and is backed by the physical resources of a host.

Virtual Cluster A virtual cluster is a software cluster that integrate either VMs, containers, or physical resources into an agglomeration of compute resources. A virtual cluster allows users to authenticate and authorize to the virtual compute nodes to utilize them for calculations. Optional high-level services that can be deployed on a virtual cluster may simplify interaction with the virtual cluster or provide higher-level services.

Workflow The sequence of processes or tasks

WWW World Wide Web

110

47224723

4724472547264727

472847294730473147324733

4734

4735

4736

Page 119: Introduction · Web viewPhilips Gregor von Laszewski Indiana University Badi Abdhul Wahid Indiana University Fugang Wang Indiana University Robert C. Whetsel DISA/NBIS Alicia Zuniga-Alvarado

DRAFT NIST BIG DATA INTEROPERABILITY FRAMEWORK: VOLUME 8, REFERENCE ARCHITECTURE INTERFACES

Appendix B: Bibliography[1] W. L. Chang (Co-Chair), N. Grady (Subgroup Co-chair), and NIST Big Data Public

Working Group, “NIST Big Data Interoperability Framework: Volume 1, Big Data Definitions (NIST SP 1500-1r1 VERSION 2),” Jun. 2018.

[2] W. L. Chang (Co-Chair), N. Grady (Subgroup Co-chair), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 2, Big Data Taxonomies (NIST SP 1500-2r1 VERSION 2),” Jun. 2018.

[3] W. L. Chang (Co-Chair) and G. Fox (Subgroup Co-chair), “NIST Big Data Interoperability Framework: Volume 3, Big Data Use Cases and General Requirements (NIST SP 1500-3r1 VERSION 2),” Jun. 2018.

[4] W. L. Chang (Co-Chair), A. Roy (Subgroup Co-chair), M. Underwood (Subgroup Co-chair), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 4, Big Data Security and Privacy (NIST SP 1500-4r1 VERSION 2),” Jun. 2018.

[5] W. L. Chang (Co-Chair), S. Mishra (Editor), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 5, Big Data Architectures White Paper Survey (NIST SP 1500-5 VERSION 1),” Sep. 2015.

[6] W. L. Chang (Co-Chair), D. Boyd (Subgroup Co-chair), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 6, Big Data Reference Architecture (NIST SP 1500-6r1 VERSION 2),” Jun. 2018.

[7] W. L. Chang (Co-Chair), R. Reinsch (Subgroup Co-chair), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 7, Big Data Standards Roadmap (NIST SP 1500-7r1 VERSION 2),” Jun. 2018.

[8] W. L. Chang (Co-Chair), R. Reinsch (Subgroup Co-chair), and NIST Big Data Public Working Group, “NIST Big Data Interoperability Framework: Volume 9, Adoption and Modernization (NIST SP 1500-10 VERSION 1),” Jun. 2018.

[9] T. White House Office of Science and Technology Policy, “Big Data is a Big Deal,” OSTP Blog, 2012. [Online]. Available: http://www.whitehouse.gov/blog/2012/03/29/big-data-big-deal. [Accessed: 21-Feb-2014].

[10] Department of Defense, “The DoDAF Architecture Framework Version 2.02,” Apr. 2010.

111

4737

473847394740

474147424743

474447454746

4747474847494750

475147524753

475447554756

475747584759

476047614762

476347644765

4766

4767


Recommended