Ticket Reservation System Using Blazor

Total Page:16

File Type:pdf, Size:1020Kb

Ticket Reservation System Using Blazor Masaryk University Faculty of Informatics Ticket Reservation System using Blazor Bachelor’s Thesis Peter Bolfa Brno, Fall 2020 Masaryk University Faculty of Informatics Ticket Reservation System using Blazor Bachelor’s Thesis Peter Bolfa Brno, Fall 2020 This is where a copy of the official signed thesis assignment and a copy ofthe Statement of an Author is located in the printed version of the document. Declaration Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Peter Bolfa Advisor: Ing. Lukáš Grolig i Acknowledgements These are the acknowledgements for my thesis, which can span multiple paragraphs. ii Abstract This thesis goal is to implement a free ticket reservation system for smaller cinemas using a new framework from Microsoft called Blazor. Firstly the current state of web application development is re- viewed, giving a summary on each of the well-known, currently most used JavaScript frameworks (Vue, React, Angular). It can be hard to decide what framework to pick. That is why the comparison section examines the popularity and performance factors of these frameworks. The implementation part was built using WebAssembly hosting model. In the WebAssembly chapter, the thesis quickly reviews what WebAssembly is, how this innovative technology works, and where it should be used. WebAssembly brought benefits and drawbacks, which are described in this chapter as well. Various advanced patterns were used throughout the implementa- tion and are explained in the architecture chapter, which focuses on the most important ones. Multiple cinemas should be able to use the resulting web applica- tion. This possibility opened up a new problem called multi-tenancy. The known approaches to solve multi-tenancy and what approach was used are described in the multi-tenancy chapter. In the last section of the theoretical part, a detailed inspection is given into the Blazor framework, reviewing Blazor’s internals, describ- ing its most essential features, which are also used in the implementa- tion part. The implementation part is separated into a database, back-end, and front-end part, speaking of problems that occurred during devel- opment and a way of resolving them. In the last chapter, a reader can find a listing of recommendations that should be followed when designing similar solutions in Blazor. iii Keywords Blazor, C#, WASM, JavaScript, ASP .NET Core, SQLite, EFCore iv Contents 1 Introduction 2 2 Current state of web development 3 2.1 Approaches in creating JavaScript solutions .........3 2.1.1 Bundler . .3 2.1.2 Components . .4 2.1.3 DOM . .4 2.2 React .............................5 2.2.1 JSX . .5 2.2.2 Virtual DOM . .5 2.2.3 Example of React application . .6 2.3 Vue ..............................6 2.3.1 Template Syntax . .7 2.3.2 Interpolations . .7 2.3.3 Directives . .7 2.3.4 Example of Vue application . .7 2.4 Angular ............................8 2.4.1 Regular DOM . .8 2.4.2 Directives . .8 2.4.3 Example of Angular application . .9 2.5 Comparison ..........................9 2.5.1 Popularity comparison . .9 2.5.2 Conclusion . 10 2.5.3 Performance comparison . 11 2.5.4 Conclusion . 12 3 WebAssembly 13 3.1 Pros and cons ......................... 13 3.2 When to use .......................... 13 3.2.1 Performance . 14 3.2.2 Portability . 14 3.3 Conclusion .......................... 14 4 Architecture 15 4.1 Tools .............................. 15 4.1.1 Entity Framework . 15 v 4.1.2 JavaScript interop . 15 4.2 Patterns ............................ 15 4.2.1 Dependency injection . 15 4.2.2 API . 16 4.2.3 Repository pattern . 16 4.2.4 CQRS . 17 5 Multitenancy 18 5.1 Known approaches ...................... 18 5.1.1 Database-per-tenant . 18 5.1.2 Separate schema . 19 5.1.3 Tenant column . 19 5.2 Conclusion .......................... 19 6 Blazor 21 6.1 Razor ............................. 21 6.2 Routing ............................ 22 6.3 Hosting models ........................ 22 6.3.1 WebAssembly hosting model . 22 6.3.2 Server hosting model . 23 6.3.3 Visual comparison of hosting models . 24 6.4 Component lifecycle methods ................. 24 6.5 Conclusion .......................... 26 7 Implementation 27 7.1 Solution structure ....................... 27 7.1.1 Client . 27 7.1.2 Server . 27 7.1.3 Shared . 27 7.2 Database ............................ 27 7.2.1 SQLite . 28 7.3 Database schema ....................... 28 7.4 Backend ............................ 29 7.5 Services ............................ 30 7.5.1 Mail service . 31 7.5.2 Payment timeout service . 31 7.5.3 API . 32 7.6 Front-end ........................... 32 vi 7.6.1 Components . 32 7.6.2 General . 33 7.6.3 SeatAdder . 33 7.6.4 ShowSeatAdder . 34 7.7 Reservation Flow ....................... 36 7.8 Front-end services ....................... 38 7.8.1 Authentication service . 38 7.9 Deployment and testing .................... 38 8 Recommendations 40 8.1 Do’s and Don’ts ........................ 40 8.1.1 Do . 40 8.1.2 Do not . 40 8.2 Solution structure ....................... 41 8.2.1 Client . 41 8.2.2 Server . 41 8.2.3 Shared . 42 8.3 Recommended libraries to use ................. 42 8.3.1 Blazorise . 42 8.3.2 HangFire . 43 8.3.3 Swagger . 43 8.3.4 BCrypt . 43 8.3.5 Stripe . 43 8.3.6 SendGrid . 44 9 Conclusion 45 Bibliography 46 vii List of Tables 2.1 Frameworks popularity - GitHub Stars(02.12.2020), NPM (22.11.2020), SO(03.12.2020) 10 2.2 Frameworks profiled by LightHouse - average of 5 runs 12 viii List of Figures 6.1 Visual comparison of Blazor hosting models, taken from [31] 24 6.2 Blazor lifecycle methods, taken from [32] 25 7.1 Schema of a database used in the application 29 7.2 Diagram of which layers does the incoming request gets through in the application 30 7.3 Example of a form which handles creating of a new hall 33 7.4 Creating hall layout 34 7.5 Show seat picking - bought seats are marked red, reserved orange and currently picked blue 35 7.6 Diagram of actions which are done when users reserves a seat 37 ix List of Codes 2.1 Button with counter in React . .6 2.2 Button with counter in Vue . .7 2.3 Button with counter in Angular . .9 6.1 Button with counter in Razor . 21 1 1 Introduction In these challenging times of COVID-19, many businesses had to be closed because of financial problems. One of the businesses that are closed is cinemas. Smaller local cinemas do not have sufficient amount of finances to secure their run. The open-source implementation of a ticket reservation system was created to support them. Most of the local cinemas still do not have any reservation system. This implementation can be used by any cinema, even if the cinema is beginning. These beginning cinemas can then spend their finances on obtaining movies, advertisements and attracting more clients rather than spending money on buying system. One of the requirements that had to be satisfied was that the im- plementation would be programmed in a C#. Because of that, Blazor seemed like the smartest choice. It is considered to be still young since its production version came out only about half-a-year ago. Blazor provides two hosting models. One is a server model where a server is created and then the front-end communicates with this server. The other model is the WebAssembly model, which opens a new door into web development, mainly because of its speed and porta- bility. WebAssembly is a new format of a low-level assembly-like lan- guage run by any modern web browser. Thanks to its low-levelness, it should run faster than a language mainly used in the web development area, JavaScript. The implementation was built in conventional order, starting from the database using SQLite as a provider, which appeared as the most straightforward choice for application needs. The back-end part was then created, including obliged services and a RESTful API, thanks to what the front-end can communicate to the back-end. In the last step, a front-end was created using the already mentioned Blazor. 2 2 Current state of web development When creating a new web application today, there is not much to choose from, speaking of programming languages. From these lan- guages, JavaScript has been around for the longest time and has gained massive popularity, which resulted in being the most used program- ming language in the world right now[1]. With the arrival of WebAssembly technology, the situation has slightly changed as it brings a new and different way of web develop- ment. More about WebAssembly can be found in chapter 3. The main problem with JavaScript frameworks is that the devel- opment environment changes quickly and often, meaning that many frameworks just come and go. There exist three main JavaScript frameworks which established over time, and have been used for a few years now, namely React, Angular, and Vue[2]. 2.1 Approaches in creating JavaScript solutions Most of the front-end frameworks share similar concepts of building solutions and approaches in creating applications. 2.1.1 Bundler The application usually consists of multiple JavaScript files bundled together into one final file executed in the browser. Example ofsuch bundler nowadays can be parcel or webpack. Module bundler is required because[3]: • Browser does not support module system, although this is not entirely true nowadays • It helps you manage the dependency relationship of your code, it will load modules in dependency order for you.
Recommended publications
  • SOAP Plug-In
    User Guide SOAP Plug-in Release 5.0 © 2010 Avaya Inc. All Rights Reserved. Notice While reasonable efforts were made to ensure that the information in this document was complete and accurate at the time of printing, Avaya Inc. can assume no liability for any errors. Changes and corrections to the information in this document may be incorporated in future releases. Documentation disclaimer Avaya Inc. is not responsible for any modifications, additions, or deletions to the original published version of this documentation unless such modifications, additions, or deletions were performed by Avaya. Link disclaimer Avaya Inc. is not responsible for the contents or reliability of any linked Web sites referenced elsewhere within this Documentation, and Avaya does not necessarily endorse the products, services, or information described or offered within them. We cannot guarantee that these links will work all of the time and we have no control over the availability of the linked pages. License USE OR INSTALLATION OF THE PRODUCT INDICATES THE END USER'S ACCEPTANCE OF THE TERMS SET FORTH HEREIN AND THE GENERAL LICENSE TERMS AVAILABLE ON THE AVAYA WEBSITE AT http://support.avaya.com/LicenseInfo/ ("GENERAL LICENSE TERMS"). IF YOU DO NOT WISH TO BE BOUND BY THESE TERMS, YOU MUST RETURN THE PRODUCT(S) TO THE POINT OF PURCHASE WITHIN TEN (10) DAYS OF DELIVERY FOR A REFUND OR CREDIT. Avaya grants End User a license within the scope of the license types described below. The applicable number of licenses and units of capacity for which the license is granted will be one (1), unless a different number of licenses or units of capacity is specified in the Documentation or other materials available to End User.
    [Show full text]
  • Asp Net Jquery Ajax Json Example Wersja
    Asp Net Jquery Ajax Json Example Conquering and exculpatory Thorsten wited clumsily and prickle his heed unforcedly and soothingly. Unanswered and numinous Graig never conscripts observably when Bela shoals his luffas. Oligarchic and ben Ashton held so rifely that Simon sticky his bajada. Dbcontect classes to help, i am glad you will send ajax call will execute and the feedback. Scheduled tasks in asp jquery example will help make them together with an array of products table that will decrease automatically. Provides the asp net jquery json helper method, what the about. Via json format in asp net example given by microsoft json request is given by default name to your network have your data has a formatted result. Comment is shown the asp ajax json request to understand concept is the project, the article we click on the product details. Loads data types, ajax example is, the other articles. Into our method in asp net example we can get request and suggestions will not the future of response, for this by both the _layout. We should then the asp net ajax methods of errors potentially introduced by using chart with razor page without updating the class as an array of the div tag. Developer will call with jquery ajax json or with my things, then passes the database and the body. Message using and the example is the client side method can be the console. Year passed to use jquery json data you know what follows is providing different types in the year. Installing a controller folder and a button to products model, simple example below is, and then the _layout.
    [Show full text]
  • Front-End Development with ASP.NET Core, Angular, And
    Table of Contents COVER TITLE PAGE FOREWORD INTRODUCTION WHY WEB DEVELOPMENT REQUIRES POLYGLOT DEVELOPERS WHO THIS BOOK IS FOR WHAT THIS BOOK COVERS HOW THIS BOOK IS STRUCTURED WHAT YOU NEED TO USE THIS BOOK CONVENTIONS SOURCE CODE ERRATA 1 What’s New in ASP.NET Core MVC GETTING THE NAMES RIGHT A BRIEF HISTORY OF THE MICROSOFT .NET WEB STACK .NET CORE INTRODUCING ASP.NET CORE NEW FUNDAMENTAL FEATURES OF ASP.NET CORE AN OVERVIEW OF SOME ASP.NET CORE MIDDLEWARE ASP.NET CORE MVC SUMMARY 2 The Front‐End Developer Toolset ADDITIONAL LANGUAGES YOU HAVE TO KNOW JAVASCRIPT FRAMEWORKS CSS FRAMEWORKS PACKAGE MANAGERS TASK RUNNERS SUMMARY 3 Angular in a Nutshell ANGULAR CONCEPTS THE LANGUAGE OF ANGULAR SETTING UP AN ANGULAR PROJECT THE STRUCTURE OF AN ANGULAR APP DATA BINDING DIRECTIVES SERVICES AND DEPENDECY INJECTION MULTIPLE COMPONENTS INPUT AND OUTPUT PROPERTIES TALKING TO THE BACK END USING ANGULAR WITH ASP.NET MVC VISUAL STUDIO 2017 SUPPORT FOR ANGULAR SUMMARY 4 Bootstrap in a Nutshell INTRODUCTION TO BOOTSTRAP BOOTSTRAP STYLES COMPONENTS JAVASCRIPT CUSTOMIZING BOOTSTRAP WITH LESS BOOTSTRAP SUPPORT IN VISUAL STUDIO 2017 AND ASP.NET CORE SUMMARY 5 Managing Dependencies with NuGet and Bower GENERAL CONCEPTS NUGET NPM (NODE.JS PACKAGE MANAGER) BOWER SUMMARY 6 Building Your Application with Gulp and webpack WHAT FRONT‐END BUILD SYSTEMS ARE FOR A DEEPER LOOK AT GULP INTRODUCTION TO WEBPACK VISUAL STUDIO 2017 AND BUILD SYSTEMS SUMMARY 7 Deploying ASP.NET Core THE NEW HOSTING MODEL OF ASP.NET CORE INSTALLING ON INTERNET INFORMATION SERVICES ON PREMISE
    [Show full text]
  • A Comparative Study on SOAP and Restful Web Services Sirsha Chatterjee1, Mamatha T2
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 07 Issue: 05 | May 2020 www.irjet.net p-ISSN: 2395-0072 A comparative study on SOAP and RESTful web services Sirsha Chatterjee1, Mamatha T2 1Under Graduate Student, Dept. of Computer Science and Engineering, RV College of Engineering, Bengaluru, Karnataka 2Assistant Professor, Dept. of Computer Science and Engineering, RV College of Engineering, Bengaluru, Karnataka ---------------------------------------------------------------------***---------------------------------------------------------------------- Abstract - Modern enterprise applications nowadays need request is sent by the client to the server, where the message to build web-based applications using a wide variety of is processed and appropriate response os sent back to the programming platforms, for different requirements. While client. REST was developed in 2000 by Roy Fielding. [3] backend service applications are developed using Java, .Net, or states that REST services is not only limited to XML but can Node JS, front-end application are developed using ReactJS, also support JSON (JavaScript Object Notation), as well as AngularJS, etc. These heterogeneity in use of types of plain text, unlike SOAP which only supports documents in application platforms require a common communication XML format. service to transfer information and data. Web services provide this service which enables multiple applications to In this paper, the two services are analyzed and compared communicate with each other. Web services perform functions based on their underlying architecture, differences, ranging from simple requests to complicate business advantages and disadvantages. processes. SOAP (Simple Object Access Protocol) and REST (Representational State Transfer) are the most common and 2. SOAP Web Service popular types of web service protocols in use.
    [Show full text]
  • Reasonml Install Guide Fall 2019
    CS17 Integrated Introduction to Computer Science Hughes ReasonML Install Guide Fall 2019 Contents 1 Install Guide (Windows) 1 1.1 Installing Node . .1 1.2 WSL.............................................1 1.3 Configuring Visual Studio Code . .2 2 Install Guide (Mac OSX) 2 2.1 Installing Visual Studio Code . .2 2.2 Installing Various XCode Tools (NVM, Node) . .2 2.3 Configuring Visual Studio Code . .5 3 Using ReasonML 5 3.1 Configuring Your Project . .5 3.2 Compiling ReasonML . .5 3.3 Running ReasonML . .5 4 Reason Tools (Browser) 6 1 Install Guide (Windows) 1.1 Installing Node Click here to install Node. 1.2 WSL Follow this guide to install Windows Subsystem for Linux (WSL). Select the Linux Distribution choice Ubuntu, which has an orange icon. Open the "Command Prompt" on your machine and type the following command. This can take a long time to install fully. Let it sit for some time, even if it appears as if it’s not doing anything. Feel free to move on to other steps while it loads. npm install - g ocaml - reason - wsl CS17 ReasonML Install Guide Fall 2019 Inside of Visual Studio Code go to Settings > User Settings. In the upper right-hand corner, click on the icon that looks like a file with an arrow wrapped around it. A window should open up with a file in it. Copy and paste the following lines into the file in between the curly braces and save the file. "reason.path.bsb":"bash - ic bsb", "reason.path.ocamlfind":"bash - ic ocamlfind", "reason.path.ocamlmerlin":"bash - ic ocamlmerlin", "reason.path.opam":"bash - ic opam", "reason.path.rebuild":"bash - ic rebuild", "reason.path.refmt":"bash - ic refmt", "reason.path.refmterr":"bash - ic refmterr", "reason.path.rtop":"bash - ic rtop", "editor.formatOnSave": true, "reason.diagnostics.tools":["merlin","bsb"], "terminal.integrated.shell.windows":"C:\\\\WINDOWS\\\\System32\\\\bash.exe" After the initial install command has terminated, you can now open WSL (Ubuntu).
    [Show full text]
  • Iroha Handbook: Installation, Getting Started, API, Guides, and Troubleshooting
    Iroha handbook: installation, getting started, API, guides, and troubleshooting Hyperledger Iroha community Aug 24, 2021 TABLE OF CONTENTS 1 Overview of Iroha 3 1.1 What are the key features of Iroha?...................................3 1.2 Where can Iroha be used?........................................3 1.3 How is it different from Bitcoin or Ethereum?..............................3 1.4 How is it different from the rest of Hyperledger frameworks or other permissioned blockchains?...4 1.5 How to create applications around Iroha?................................4 2 Concepts and Architecture 5 2.1 Core concepts..............................................5 2.2 What’s inside Iroha?........................................... 13 3 Quick Start Guide 17 3.1 Prerequisites............................................... 17 3.2 Starting Iroha Node........................................... 17 3.3 Try other guides............................................. 19 4 Integrated Projects 29 4.1 Hyperledger Ursa............................................. 29 4.2 Hyperledger Explorer.......................................... 29 4.3 Hyperledger Burrow........................................... 30 5 Building Iroha 37 5.1 Prerequisites............................................... 37 5.2 Installing dependencies with Vcpkg Dependency Manager....................... 39 5.3 Build Process............................................... 40 6 Configure 45 6.1 Configure TLS for client-peer communication (torii).......................... 45 6.2 Deployment-specific
    [Show full text]
  • Manual De Iroha: Instalaci´On,Inicio, API, Gu´Iasy Resoluci´Onde Problemas Выпуск
    Manual de Iroha: instalaci´on,inicio, API, gu´ıasy resoluci´onde problemas Выпуск Comunidad Iroha Hyperledger янв. 26, 2021 Содержание 1 Overview of Iroha 3 1.1 What are the key features of Iroha?................................3 1.2 Where can Iroha be used?......................................3 1.3 How is it different from Bitcoin or Ethereum?..........................3 1.4 How is it different from the rest of Hyperledger frameworks or other permissioned blockchains?4 1.5 How to create applications around Iroha?.............................4 2 С чего начать 5 2.1 Prerequisites.............................................5 2.2 Starting Iroha Node.........................................5 2.3 Try other guides...........................................7 3 Use Case Scenarios 9 3.1 Certificates in Education, Healthcare...............................9 3.2 Cross-Border Asset Transfers.................................... 10 3.3 Financial Applications........................................ 10 3.4 Identity Management........................................ 11 3.5 Supply Chain............................................. 11 3.6 Fund Management.......................................... 12 3.7 Related Research........................................... 12 4 Ключевые концепции 13 4.1 Sections................................................ 13 5 Guides and how-tos 23 5.1 Building Iroha............................................ 23 5.2 Конфигурация........................................... 29 5.3 Deploying Iroha..........................................
    [Show full text]
  • Declare Module Typescript Library
    Declare Module Typescript Library Mahmud quintuplicate fantastically as untenantable Glynn grabbles her jays clot tribally. Measlier and noisier Matthias always scunges enlargedly and tessellating his mitzvahs. Undebauched Gunter enisled: he fledging his padauks philosophically and yore. Roughly speaking, how exactly do we make use of these declaration files in our code base? Not every component fully supports any component type you pass in. The compiler will accept JSX. Component Library is like any other NPM Module. Sometimes, I am exporting it to maintain symmetry with the other files. The types here are fine but they do not truly convey the meaning or intent of the code. Passing CLI arguments via shebang is allowed on Mac but not Linux. But they work differently. Software engineer taught me that a Startup product grows and develops every day. In this article, we are going to learn the structure of the Type Declaration files and their use cases. Mozilla and individual contributors. Now, this means something is wrong with the way PHPStorm interprets tsconfig. Typescript will then also export type definitions together with the compiled javascript code so the package can be used with both Typescript and Javascript. Either choice will solve your error. Dan is a big geek who likes making stuff with computers! Senior Front End Engineer at Modus Create. An introduction to TypeScript's module system techscouting. Plus, this should be true. How do I use it? Now that we have everything set up, etc. Once you have the clone URL, the Redux pattern is a radical departure from the style of programming we are used to.
    [Show full text]
  • A Package Manager for Curry
    A Package Manager for Curry Jonas Oberschweiber Master-Thesis eingereicht im September 2016 Christian-Albrechts-Universität zu Kiel Programmiersprachen und Übersetzerkonstruktion Betreut durch: Prof. Dr. Michael Hanus und M.Sc. Björn Peemöller Eidesstattliche Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig ver- fasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Kiel, Contents 1 Introduction 1 2 The Curry Programming Language 3 2.1 Curry’s Logic Features 3 2.2 Abstract Curry 5 2.3 The Compiler Ecosystem 6 3 Package Management Systems 9 3.1 Semantic Versioning 10 3.2 Dependency Management 12 3.3 Ruby’s Gems and Bundler 16 3.4 JavaScript’s npm 19 3.5 Haskell’s Cabal 21 4 A Package Manager for Curry 25 4.1 The Command Line Interface 26 4.2 What’s in a Package? 29 4.3 Finding Packages 35 4.4 Installing Packages 37 4.5 Resolving Dependencies 38 vi A Package Manager for Curry 4.6 Interacting with the Compiler 43 4.7 Enforcing Semantic Versioning 46 5 Implementation 51 5.1 The Main Module 52 5.2 Packages and Dependencies 56 5.3 Dependency Resolution 58 5.4 Comparing APIs 71 5.5 Comparing Program Behavior 73 6 Evaluation 85 6.1 Comparing Package Versions 85 6.2 A Sample Dependency Resolution 88 6.3 Performance of the Resolution Algorithm 90 6.4 Performance of API and Behavior Comparison 96 7 Summary & Future Work 99 A Total Order on Versions 105 B A Few Curry Packages 109 C Raw Performance Figures 117 D User’s Manual 121 1 Introduction Modern software systems typically rely on many external libraries, reusing func- tionality that can be shared between programs instead of reimplementing it for each new project.
    [Show full text]
  • Investigating the Reproducbility of NPM Packages
    Investigating the Reproducbility of NPM packages Pronnoy Goswami Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science in Computer Engineering Haibo Zeng, Chair Na Meng Paul E. Plassmann May 6, 2020 Blacksburg, Virginia Keywords: Empirical, JavaScript, NPM packages, Reproducibility, Software Security, Software Engineering Copyright 2020, Pronnoy Goswami Investigating the Reproducbility of NPM packages Pronnoy Goswami (ABSTRACT) The meteoric increase in the popularity of JavaScript and a large developer community has led to the emergence of a large ecosystem of third-party packages available via the Node Package Manager (NPM) repository which contains over one million published packages and witnesses a billion daily downloads. Most of the developers download these pre-compiled published packages from the NPM repository instead of building these packages from the available source code. Unfortunately, recent articles have revealed repackaging attacks to the NPM packages. To achieve such attacks the attackers primarily follow three steps – (1) download the source code of a highly depended upon NPM package, (2) inject mali- cious code, and (3) then publish the modified packages as either misnamed package (i.e., typo-squatting attack) or as the official package on the NPM repository using compromised maintainer credentials. These attacks highlight the need to verify the reproducibility of NPM packages. Reproducible Build is a concept that allows the verification of build artifacts for pre-compiled packages by re-building the packages using the same build environment config- uration documented by the package maintainers. This motivates us to conduct an empirical study (1) to examine the reproducibility of NPM packages, (2) to assess the influence of any non-reproducible packages, and (3) to explore the reasons for non-reproducibility.
    [Show full text]
  • United Concordia (UCD) Real Time Claim Submission & Adjudication
    United Concordia (UCD) Real Time Claim Submission & Adjudication Connectivity Specifications May 15, 2015 Contents 1. Real Time Overview 2. Requirements 3. SOAP Messages 4. SOAP Faults 5. CORE-Compliant Error Responses 6. UCD EDI WebServices Certificate 1 1. Overview Real Time transactions utilize Simple Object Access Protocol (SOAP). SOAP is a simple XML based protocol to let applications exchange information over HTTP. Since the Internet is being utilized to transport the data, encryption will be utilized to secure messages in the same way financial transactions are secured over the Internet. Access to UCD’s networks will follow the same security model in place today, which requires a Login/Password. In order to understand the lifecycle of the transaction, processes have been outlined below: (1) Transaction Initiation UCD Trading Partner’s Transaction Management System will initiate a Real Time X12 HIPAA transaction. (2) Establish Connection The Trading Partner’s Transaction Management System will establish a secure Internet connection (HTTPS) to UCD and send an encrypted SOAP message that contains a HIPAA X12 transaction payload, along with the Trading Partner logon id, and password assigned by UCD. (3) Receive Transaction UCD receives the Real Time request on its Web Server. 2 (4) Authentication/Authorization When the SOAP message is received by UCD’s WebSphere application, the SOAP message is validated and the Trading Partner’s logon id, password and defined role are authenticated using LDAP (Lightweight Directory Access Protocol). Only Trading Partners that have signed a UCD Trading Partner Agreement are granted logon id’s, passwords and defined roles. To obtain a copy of the Trading Partner Agreement and the Trading Partner Application, please visit: https://secure.ucci.com/ducdws/dentist.xhtml?content=dentist-trading-partners .
    [Show full text]
  • CSS-1H, CSS-1Hl, CSS-1Hm SDS Number: AMI-403 Revision Date: 2/1/2019 Page 1 of 5
    Asphalt Materials, Inc. CSS-1h, CSS-1hL, CSS-1hM SDS Number: AMI-403 Revision Date: 2/1/2019 Page 1 of 5 1 PRODUCT AND COMPANY IDENTIFICATION Manufacturer Vendor Asphalt Materials, Inc. Asphalt Materials, Inc. 5400 W. 86th Street 5400 W. 86th Street Indianapolis, Indiana 46268 Indianapolis, Indiana 46268 Emergency: CHEMTREC: 800-424-9300 Emergency: CHEMTREC: 800-424-9300 Contact: Keith Toombs Contact: Keith Toombs Phone: 317-872-6010 Phone: 317-872-6010 Fax: 317-874-4900 Fax: 317-874-4900 Email: [email protected] Email: [email protected] Web: www.asphalt-materials.com Web: www.asphalt-materials.com Product Name: CSS-1h, CSS-1hL, CSS-1hM Revision Date: 2/1/2019 SDS Number: AMI-403 Common Name: Asphalt Emulsion Cationic CAS Number: Mixture Chemical Family: Emulsified complex petroleum hydrocarbon and water Synonyms: Cationic Asphalt Emulsion, Emulsified Asphalt, Microsurfacing Asphalt Emulsion Product Use: Highway Paving Applications and Mixtures 2 HAZARDS IDENTIFICATION Classification of the substance or mixture GHS Classification in accordance with 29 CFR 1910 (OSHA HCS): Health, Acute toxicity, 5 Dermal Health, Serious Eye Damage/Eye Irritation, 2 B GHS Label elements, including precautionary statements GHS Signal Word: WARNING GHS Hazard Pictograms: no GHS pictograms indicated for this product GHS Hazard Statements: H313 - May be harmful in contact with skin H320 - Causes eye irritation GHS Precautionary Statements: P202 - Do not handle until all safety precautions have been read and understood. P280 - Wear protective gloves/protective clothing/eye protection/face protection. Hazards not otherwise classified (HNOC) or not covered by GHS Inhalation: Breathing vapors, fumes, or mists may cause irritation to nasal and respiratory tract and central nervous system effects.
    [Show full text]