Chemical Foundations of Distributed Aspects

Total Page:16

File Type:pdf, Size:1020Kb

Chemical Foundations of Distributed Aspects Noname manuscript No. (will be inserted by the editor) Chemical Foundations of Distributed Aspects Nicolas Tabareau ⋅ Éric Tanter the date of receipt and acceptance should be inserted later Abstract Distributed applications are challenging to distributed aspect weaving architecture. Finally, we ex- program because they have to deal with a plethora tend the calculus so that aspects can intervene upon of concerns, including synchronization, locality, replica- migration of localities. tion, security and fault tolerance. Aspect-oriented pro- The semantics of the aspect join calculus is given by gramming (AOP) is a paradigm that promotes better a chemical operational semantics. We give a translation modularity by providing means to encapsulate cross- of the aspect join calculus into the core join calculus, cutting concerns in entities called aspects. Over the and prove this translation correct by a bisimilarity ar- last years, a number of distributed aspect-oriented pro- gument. This translation is used to implement Aspect gramming languages and systems have been proposed, JoCaml on top of JoCaml.1 illustrating the benefits of AOP in a distributed setting. Chemical calculi are particularly well-suited to for- mally specify the behavior of concurrent and distributed 1 Introduction systems. The join calculus is a functional name-passing calculus, with both distributed and object-oriented ex- Distributed applications are complex to develop be- tensions. It is used as the basis of concurrency and cause of a plethora of issues related to synchroniza- distribution features in several mainstream languages tion, distribution, and mobility of code and data across like C# (Polyphonic C#, now C!), OCaml (JoCaml), the network. It has been advocated that traditional and Scala Joins. Unsurprisingly, practical programming programming languages do not allow to separate dis- in the join calculus also suffers from modularity issues tribution concerns from standard functional concerns when dealing with crosscutting concerns. in a satisfactory way. For instance, data replication, We propose the Aspect Join Calculus, an aspect- transactions, security, and fault tolerance often crosscut oriented and distributed variant of the join calculus that the business code of a distributed application. Aspect- addresses crosscutting and provides a formal founda- Oriented Programming (AOP) promotes better sepa- tion for distributed AOP. We develop a minimal aspect ration of concerns in software systems by introducing join calculus that allows aspects to advise reactions, aspects for the modular implementation of crosscutting and then extend it in several directions. We show how concerns [24,15]. Indeed, the pointcut/advice mecha- to deal with causal relations in pointcuts and how to nism of AOP provides the facility to intercept the flow support advanced customizable aspect weaving seman- of control when a program reaches certain execution tics. We also provide the foundation for a decentralized points (called join points) and perform new computa- N. Tabareau tion (called advice). The join points of interest are de- Ascola, INRIA, France noted by a predicate called a pointcut. E-mail: [email protected] AOP is frequently used in distributed component É. Tanter infrastructures such as Enterprise Java Beans, appli- PLEIAD Lab, Computer Science Dept (DCC), University of Chile, Chile 1 Implementation available online at: E-mail: [email protected] http://tabareau.fr/aspect_jocaml 2 Nicolas Tabareau, Éric Tanter cation frameworks (such as Spring2) and application In the join calculus, communication channels are servers (such as JBoss3), Recently, there is a growing created together with a set of reaction rules that spec- interest in the use of AOP for Cloud computing [32, ify, once and for all, how messages sent on these names 9], including practical infrastructures such as Cloud- are synchronized and processed. The crosscutting phe- Stack4. In all these cases however, AOP systems do not nomena manifests in programs written in this style, just support the remote definition or application of aspects. as they do in other languages. The reason is that reac- Rather, non-distributed aspects are used to manipulate tions in the join calculus are scoped: it is not possi- distributed infrastructures [39]. ble to define a reaction that consumes messages on ex- To address these limitations, distributed AOP has ternal channels. Therefore, extending a cache process been the focus of several practical developments: JAC [36], with replication implies modifying the cache definition DJcutter [33], QuO’s ASL [14], ReflexD [46], AWED [4, itself. Similarly, establishing alternative migration poli- 5], Lasagne [47], as well as a higher-order procedural cies based on the availability of locations requires in- language with distribution and aspects [45]. These lan- trusively modifying components. guages introduce new concepts for distributed AOP such The Aspect Join Calculus developed in this paper as remote pointcut (advice triggered by remote join addresses crosscutting issues in the join calculus by in- points), distributed advice (advice executed on a re- troducing the possibility to define aspects that can react mote host), migration of aspects, asynchronous and syn- to chemical reactions. In doing so, it provides a formal chronous aspects, distributed control flow, etc. Almost foundation that can be used to understand and describe all these systems are based on Java and RMI in order to the semantics of existing and future distributed aspect promote the role of AOP on commonly-used large-scale languages. We also use it to describe interesting features distributed applications. But the temptation of using that have not (yet) been implemented in practical dis- a rich language to develop interesting applications has tributed AOP systems. the drawback that it makes it almost impossible to de- Section 2 presents the distributed objective join cal- fine the formal semantics of distributed aspects. While culus, which serves as the basis for the aspect join cal- the formal foundations of aspects have been laid out culus. The core of the aspect join calculus is described in the sequential setting [49,12], to date, no theory of in Section 3. In Section 5, we extend the expressive distributed aspects has been developed.5 power of pointcuts with causality, based on a temporal This paper develops the formal foundations of dis- logic. Section 6 describe an extension of the calculus tributed AOP using a chemical calculus, essentially a with different weaving semantics per reaction. The is- variant of the distributed join calculus [17]. The join sue of decentralized aspect weaving is addressed in Sec- calculus is a functional name-passing calculus founded tion 7 by developing the concept of weaving registries. on the chemical abstract machine and implemented in Section 8 shows how to extend the core aspect join cal- several mainstream languages like OCaml [19], C# [6] culus to expose migration of localities as join points. and Scala [21]. Chemical execution engines are also be- Section 9 describes Aspect JoCaml, an implementation ing developed for Cloud computing [37,34]. Due to its of the aspect join calculus on top of JoCaml. The weav- chemical nature, the join calculus is well-suited to de- ing is based on a transformation from the aspect join scribe parallel computation. The explicit treatment of calculus into the core join calculus; the correctness of localities and migration in the distributed join calcu- this translation is given by a bisimilarity proof, in Ap- lus make it possible to express distribution-related con- pendix A. Finally, Section 10 discusses related work and cerns directly. Section 11 concludes. 2 http://www.springsource.org 2 The distributed objective join calculus 3 http://www.jboss.org 4 http://cloudstack.apache.org/ 5 This article builds upon a previous conference publica- We start by presenting a distributed and object-oriented 6 tion [43]. Much of the text has been completely rewritten. The version of the join calculus. This calculus, which we aspect join calculus has been simplified and clarified, in particu- call the distributed objective join calculus, is an origi- lar by removing the type system and the management of classes, nal, slightly adapted combination of an object-oriented because they are orthogonal to the extensions considered in this work. In addition, the technical treatment has been extended version of the join calculus [18] and an explicit notion in many ways: advanced quantification (in particular temporal of location to account explicitly for distribution [16]. pointcuts of Section 5), per-reaction weaving (Section 6), decen- tralized weaving (Section 7), and migration join points (Section 8) 6 There is a good reason why we choose a variant of the join are all new. Finally, an implementation based on JoCaml is pre- calculus with objects; we discuss it later in Section 3.3, once the sented (Section 9) and provided online. basics of aspects in the calculus are established. Chemical Foundations of Distributed Aspects 3 2.1 Message passing and internal states P ∶∶= Processes 0 null process Before going into the details of the distributed objec- x:M message sending obj x D init P in Q object definition tive join calculus, we begin with the example of the = go(H); P migration request object buffer presented in [18]. The basic operation of H[P ] situated process the join calculus is asynchronous message passing and, P & P parallel composition accordingly, the definition of an object describes how D Definitions messages received on some labels can trigger processes. ∶∶= M ▷ P reaction rule For instance, the term D or D disjunction obj r = reply(n) ▷ out:print(n) M ∶∶= Patterns l(v¯) message defines an object that reacts to messages on its own M & M synchronization label reply by sending a message with label print and D ∶∶= Named Definitions content n to an object named out that prints on the x:D object definition terminal. In the definition of an object, the ’▷’ symbol H[D∶ P ] sub-location definition defines a reaction rule that consumes the messages on D or D disjunction void definition its left hand side and produces the messages on its right ⊺ hand side.
Recommended publications
  • Deborah Schiffrin Editor
    Meaning, Form, and Use in Context: Linguistic Applications Deborah Schiffrin editor Meaning, Form, and Use in Context: Linguistic Applications Deborah Schiffrin editor Georgetown University Press, Washington, D.C. 20057 BIBLIOGRAPHIC NOTICE Since this series has been variously and confusingly cited as: George- town University Monographic Series on Languages and Linguistics, Monograph Series on Languages and Linguistics, Reports of the Annual Round Table Meetings on Linguistics and Language Study, etc., beginning with the 1973 volume, the title of the series was changed. The new title of the series includes the year of a Round Table and omits both the monograph number and the meeting number, thus: Georgetown University Round Table on Languages and Linguistics 1984, with the regular abbreviation GURT '84. Full bibliographic references should show the form: Kempson, Ruth M. 1984. Pragmatics, anaphora, and logical form. In: Georgetown University Round Table on Languages and Linguistics 1984. Edited by Deborah Schiffrin. Washington, D.C.: Georgetown University Press. 1-10. Copyright (§) 1984 by Georgetown University Press All rights reserved Printed in the United States of America Library of Congress Catalog Number: 58-31607 ISBN 0-87840-119-9 ISSN 0196-7207 CONTENTS Welcoming Remarks James E. Alatis Dean, School of Languages and Linguistics vii Introduction Deborah Schiffrin Chair, Georgetown University Round Table on Languages and Linguistics 1984 ix Meaning and Use Ruth M. Kempson Pragmatics, anaphora, and logical form 1 Laurence R. Horn Toward a new taxonomy for pragmatic inference: Q-based and R-based implicature 11 William Labov Intensity 43 Michael L. Geis On semantic and pragmatic competence 71 Form and Function Sandra A.
    [Show full text]
  • A Language for Concurrent Disributed Programming for Cluster and GRID
    Russian Academy of Sciences Program Systems Institute MC#: a Language for Concurrent Disributed Programming for Cluster and GRID Architectures Introduction Novel Constructs of MC#: Movable Methods, Channels, and Handlers MC# is a high-level object-oriented programming language based on the .NET platform created for developing complex industrial software systems Movable methods are the methods that can be scheduled for execution on intended for running on multiprocessor architectures. remote machines. Such methods in the code are labeled with the special In contrast with the wide-spread MPI (Message Passing Interface) appro- keyword movable; for example: ach in MC# programs there is no need to movable Compute( int x, double y ){ (a) explicitly manage the distribution of computational processes over // method body cluster nodes or GRID machines, and } There are two forms of calling movable methods: (b) manually program the serialization of complex objects (data) for send- ing them to another processors. ! object.method( arguments ) — in this case the node where movable method will be executed is scheduled by the runtime system, The MC# language is the adaptation of the base idea of the Polyphonic C# language (nowadays also known as Cw — Benton N., Cardelli L., Fournet ! [email protected]( arguments ) — explicit indication of node C., Microsoft Research Laboratory, Cambridge, UK) for the case of con- where this method must be executed. current distributed computations. Channels and handlers are tools for interaction among distributed obj- Asynchronous methods of Polyphonic C# in the MC# language can be ects. Typically, they are defined with the chord construct as in the follow- scheduled for execution on other machines in two ways: ing example where channel sendInt for sending single integers and cor- responding handler are declared: ! automatically (typically a machine with the least workload is taken); ! manually through explicit indication by a programmer.
    [Show full text]
  • New Doc 2018-11-09 13.48.56
    Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Scanned by CamScanner Seminar Nasional Informatika 2013 (semnasIF 2013) ISSN: 1979-2328 UPN ”Veteran” Yogyakarta, 18 Mei 2013 SISTEM PENCARIAN FORUM BERBASIS ONTOLOGI DAN LABEL Adi Wibowo1), Gregorius Satiabudhi2) , Yulius Pranata3) 1,2,3)Program Studi Teknik Informatika Universitas Kristen Petra Surabaya Jl. Siwalankerto 121-131 Surabaya Telp (031)-2983455 e-mail : 1) [email protected], 2) [email protected] Abstrak Salah satu kegiatan yang sering dilakukan pengguna internet adalah berdiskusi melalui sebuah forum. Setiap forum terbagi ke dalam beberapa kategori, dan setiap kategori memiliki beberapa percakapan (thread). Setiap percakapan dapat diberi label (tag) baik oleh pengguna yang membuka percakapan tersebut, atau peserta forum. Masalah yang muncul adalah bila sebuah forum telah menjadi besar mencari percakapan yang tepat yang sesuai kebutuhan pengguna menjadi lebih sulit. Penelitian ini bertujuan mengusulkan metode rekomendasi percakapan di sebuah forum internet yang menggunakan label dan didukung oleh ontologi yang sesuai dengan kategori percakapan.Penelitian ini mengkhususkan pada forum dengan kategori teknologi komputer. Forum tersebut adalah StackOverflow. Pada setiap percakapan pada forum tersebut terdapat label-label yang menjelaskan isi percakapan, misalnya C#, recursive, programming, dll. Label-label tersebut dikembangkan (diperbanyak) menggunakan ontologi komputer. Hasilnya adalah setiap percakapan akan diwakili oleh label- label asli dari StackOverflow, dan ditambah dengan label-label baru yang berasal dari ontologi. Label-label tersebut digunakan dalam proses pencarian berbasis Vector Space Model (VSM).Hasil penelitian menunjukkan bahwa penggunaan ontologi sebagai metode keyword extension meningkatkan nilai recall dari metode VSM tersebut.
    [Show full text]
  • Concurrency Expression in High-Level Languages, Best Practice and Amenability to H/W Compilation
    Concurrency expression in high-level languages, Best practice and amenability to h/w compilation. (povocative statements for BoF Panel Discussion !) David Greaves University of Cambridge Computer Laboratory [email protected] [email protected] Field Programmable Logic and Applications (FPL) 2nd September 2014, Munich. Parallel Programming Disciplines ➲ Hardware is parallel (massively). ➲ Software must go parallel owing to end of clock frequency growth. ➲ Hardware is software is hardware – we need (an) effective expression language(s) amenable to codesign. So: three classes of parallelism: ● 1. Embarrassingly parallel – no control or data interaction between strands. ● 2. Stream processing – pipelined parallelism – great if there are no control hazards. ● 3. General, fine-grained parallel programming! [email protected] Field Programmable Logic and Applications (FPL) 2nd September 2014, Munich. Eager versus Lazy Dichotomy ➲ Separating control and data flows often mooted: ● It is the key enabler for 'Spatial Computing' ● `A New Dataflow Compiler IR for Accelerating Control- Intensive Code in Spatial Hardware' A M Zaidi and DJ Greaves @ IPDPS'14. ● But why are people happier with OCAML than Haskell ? General purpose language must keep them quite close together – e.g. call-by-value in ML/Java/C etc.. [email protected] Field Programmable Logic and Applications (FPL) 2nd September 2014, Munich. Von Neumann Imperative Parallelism ➲ Shared-memory imperative programming is stupid – how have we got there? ➲ Using strongly typed C/C++/C# we can compile pointers and abstract data struc- tures quite safely. ➲ But aliasing problem restricts available par- allelism (w.r.t. critical ALU path) by: ● Factor of 100 by conservative static analysis ● Factor of < 10 in reality (Jonathan Mak's PhD).
    [Show full text]
  • Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism By
    This is (Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism By Jennifer Anne Schradie A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Sociology and the Designated Emphasis in New Media in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Kim Voss, Chair Professor Claude Fischer Professor Abigail DeKosnik Fall 2014 Abstract This is (Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism by Jennifer Anne Schradie Doctor of Philosophy in Sociology University of California, Berkeley Professor Kim Voss, Chair This dissertation addresses longstanding sociological questions about organizational democracy in the context of contemporary advances in digital technology. To date, most of the scholarship on digital activism suggests that the Internet enables social movements to be less hierarchical, more participatory, and more egalitarian. However, such claims are weakened by researchers’ tendency to study only high levels of digital activism, rather than investigating digital practices across a range of organizations with differing levels of digital engagement. In contrast, I explore political, labor and social movement organizations across an entire political field. My units of analysis are the 34 groups in North Carolina active on both sides of a political issue: public employee collective bargaining rights. The organizations range from Tea Parties to rank-and-file labor unions and from conservative think tanks to progressive coalitions. I collected data on over 60,000 Tweets, Facebook posts and Web site metrics of the organizations. I then created an index to measure the extent of digital engagement of each group, and I developed a typology of online social movement activities and platforms.
    [Show full text]
  • Algorithmic Music Analysis: a Case Study of a Prelude from David Cope's
    ALGORITHMIC MUSIC ANALYSIS: A C ASE STUDY OF A PRELUDE FROM DAVID COPE’S “FROM DARKNESS, LIGHT” Reiner Krämer, B.M., M.M. Dissertation Prepar ed for the Degree of DOCTOR OF P HILOSOPHY UNIVERSITY OF NORTH TEXAS May 2015 APPROVED: David Bard-Schwarz, Major Professor Andrew May, Minor Professor Thomas Sovík, Committee Member Frank Heidlberger, Chair of the Department of Music History, Theory, and Ethnomusicology Benjamin Brand, Director of Graduate Studies James C. Scott, Dean of the College of Music Costas Tsatsoulis, Interim Dean of the Toulouse Graduate School Krämer, Reiner. Algorithmic Music Analysis: A Case Study of a Prelude from David Cope’s “From Darkness, Light.” Doctor of Philosophy (Music Theory), May 2015, 433 pp., 16 tables, 57 figures, 125 examples, bibliography, 278 titles. The use of algorithms in compositional practice has been in use for centuries. With the advent of computers, formalized procedures have become an important part of computer music. David Cope is an American composer that has pioneered systems that make use of artificial intelligence programming techniques. In this dissertation one of David Cope’s compositions that was generated with one of his processes is examined in detail. A general timeline of algorithmic compositional practice is outlined from a historical perspective, and realized in the Common Lisp programming language as a musicological tool. David Cope’s compositional output is summarized with an explanation of what types of systems he has utilized in the analyses of other composers’ music, and the composition of his own music. Twentieth century analyses techniques are formalized within Common Lisp as algorithmic analyses tools.
    [Show full text]
  • Sistem Pencarian Forum Berbasis Ontologi Dan Label
    Seminar Nasional Informatika 2013 (semnasIF 2013) ISSN: 1979-2328 UPN ”Veteran” Yogyakarta, 18 Mei 2013 SISTEM PENCARIAN FORUM BERBASIS ONTOLOGI DAN LABEL Adi Wibowo1), Gregorius Satiabudhi2) , Yulius Pranata3) 1,2,3)Program Studi Teknik Informatika Universitas Kristen Petra Surabaya Jl. Siwalankerto 121-131 Surabaya Telp (031)-2983455 e-mail : 1) [email protected], 2) [email protected] Abstrak Salah satu kegiatan yang sering dilakukan pengguna internet adalah berdiskusi melalui sebuah forum. Setiap forum terbagi ke dalam beberapa kategori, dan setiap kategori memiliki beberapa percakapan (thread). Setiap percakapan dapat diberi label (tag) baik oleh pengguna yang membuka percakapan tersebut, atau peserta forum. Masalah yang muncul adalah bila sebuah forum telah menjadi besar mencari percakapan yang tepat yang sesuai kebutuhan pengguna menjadi lebih sulit. Penelitian ini bertujuan mengusulkan metode rekomendasi percakapan di sebuah forum internet yang menggunakan label dan didukung oleh ontologi yang sesuai dengan kategori percakapan.Penelitian ini mengkhususkan pada forum dengan kategori teknologi komputer. Forum tersebut adalah StackOverflow. Pada setiap percakapan pada forum tersebut terdapat label-label yang menjelaskan isi percakapan, misalnya C#, recursive, programming, dll. Label-label tersebut dikembangkan (diperbanyak) menggunakan ontologi komputer. Hasilnya adalah setiap percakapan akan diwakili oleh label- label asli dari StackOverflow, dan ditambah dengan label-label baru yang berasal dari ontologi. Label-label tersebut digunakan dalam proses pencarian berbasis Vector Space Model (VSM).Hasil penelitian menunjukkan bahwa penggunaan ontologi sebagai metode keyword extension meningkatkan nilai recall dari metode VSM tersebut. Kata Kunci : Forum, Ontologi, Label, Search 1. PENDAHULUAN Forum menyediakan tempat bagi pengguna untuk saling berkomunikasi. Setiap pengguna dapat mengajukan pertanyaan, atau pendapat mengenai sebuah topik dalam sebuah percakapan (thread) antar pengguna.
    [Show full text]
  • What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism
    UC Berkeley UC Berkeley Electronic Theses and Dissertations Title This is (Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism Permalink https://escholarship.org/uc/item/80z6106p Author Schradie, Jennifer Anne Publication Date 2014 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California This is (Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism By Jennifer Anne Schradie A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Sociology and the Designated Emphasis in New Media in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Kim Voss, Chair Professor Claude Fischer Professor Abigail DeKosnik Fall 2014 Abstract This is (Not) What Democracy Looks Like: How Ideology, Hierarchy and Inequality Shape Digital Activism by Jennifer Anne Schradie Doctor of Philosophy in Sociology University of California, Berkeley Professor Kim Voss, Chair This dissertation addresses longstanding sociological questions about organizational democracy in the context of contemporary advances in digital technology. To date, most of the scholarship on digital activism suggests that the Internet enables social movements to be less hierarchical, more participatory, and more egalitarian. However, such claims are weakened by researchers’ tendency to study only high levels of digital activism, rather than investigating digital practices across a range of organizations with differing levels of digital engagement. In contrast, I explore political, labor and social movement organizations across an entire political field. My units of analysis are the 34 groups in North Carolina active on both sides of a political issue: public employee collective bargaining rights.
    [Show full text]
  • Programmed Method
    Digital Methods SUMMER SCHOOL 2016 Only Connect? [reader] 27 JUNE - A Critical Appraisal of Connecting Practices in the Age of Social Media 08 JULY 2016 #dmi16 Table of Contents Week 1: Connective action, global diaspora studies and digital methods Bennett, W. L., & Segerberg, A. (2012). The logic of connective action. Information, Communication & Society. 15(5), 739-768. doi: 10.1080/1369118X.2012.670661 Borra, E. & Rieder, B. (2014). Programmed method. Developing a toolset for capturing and analyzing tweets. Aslib Journal of Information Management. 66(3), 262-278 Diminescu, D. (2012). Introduction: Digital methods for the exploration, analysis and mapping of e-diasporas. Social Science Information. 51(4), 451–458. Kok, S., & Rogers, R. (2016). Rethinking migration in the digital age: Transglocalization and the Somali diaspora. Global Networks. doi:10.1111/glob.12127 Madianou, M. & Miller, D. (2012). Introduction. In M. Madianou & D. Miller (Eds.). Migration and New Media: Transnational Families and Polymedia. London: Routledge. Nayar, P. (2008). Postcolonializing Cyberculture: Race, Ethnicity and Critical Internet Studies, LittCrit, 34(1), 3-15. Odin, J. (1997). The Edge of Difference: Negotiations Between the Hypertextual and the Postcolonial. Modern Fiction Studies, 43(3), 598-630. Ponzanesi, S. and Leurs, K. (2014). On Digital Crossing in Europe. Crossings, Journal of Migration and Culture. 5(1), 3-22. Rieder, B. (2013). Studying facebook via data extraction: The Netvizz application. Proceedings of ACM Web Science 2013. New York: ACM. Rogers, R. (2017). Digital methods for cross-platform analysis: Studying co-linked, inter-liked and cross-hashtagged content. In J. Burgess, A. Marwick & Thomas Poell (Eds.). Sage Handbook of Social Media.
    [Show full text]
  • Eine Kleine Nachtmusik, K 525 the Life and Music of Wolfgang Amadeus Mozart
    A Music History Overview Janet Lopinski, Joe Ringhofer, and Peteris Zarins Acknowledgements The authors would like to thank the following people for their valuable assistance in preparing this publication: Dr. Laura Beauchamp-Williamson, Editor Elaine Rusk, Director of Publishing, The Frederick Harris Music Co., Limited Aimee Velle, Project Administrator Contents How to Use this Book ...................................................... 6 Unit One—The Materials of Music Building a Musical Vocabulary . 8 Performing Forces ............................................................ 10 Supplemental Activity: Seating Plan of an Orchestra . 13 Recommended Listening: The Young Person’s Guide to the Orchestra ............... 14 Timeline: Four Major Style Periods in Music History ............................. 16 Review and Reflection . 16 Unit Two—The Baroque Period Building a Musical Vocabulary . 18 Listening for Elements of Baroque Style ......................................... 19 Vivaldi and The Four Seasons The Musical Style and Contributions of Antonio Vivaldi . 21 Building a Musical Vocabulary .............................................. 21 Required Listening: “La Primavera” (“Spring”) from Le Quattro Stagioni (The Four Seasons), op. 8, no. 1 . 22 Recommended Listening for Vivaldi . 26 Bach and The Well-Tempered Clavier The Life and Music of Johann Sebastian Bach ................................. 26 Building a Musical Vocabulary .............................................. 28 Supplemental Activity: Identifying Fugal Answers ............................
    [Show full text]
  • Scalable Efficient Composite Event Detection*
    Scalable Efficient Composite Event Detection? K. R. Jayaram and Patrick Eugster Department of Computer Science, Purdue University fjayaram, [email protected] Abstract. Composite event detection (CED) is the task of identifying combinations of events which are meaningful with respect to program- defined patterns. Recent research in event-based programming has fo- cused on language design (in different paradigms), leading to a wealth of prototype programming models and languages. However, implement- ing CED in an efficient and scalable manner remains an under-addressed problem. In fact, the lack of scalable algorithms is the main roadblock to incorporating support for more expressive event patterns into prominent event-based programming languages. This lack of scalable algorithms is a particularly acute problem in event stream processing, where event pat- terns can additionally be specified over time windows. In this paper we describe GenTrie, a deterministic trie-based algorithm for CED. We de- scribe how complex event patterns are split, how each sub-pattern maps to a node in the trie, and demonstrate through empirical evaluation that GenTrie has higher throughput than current implementations of related languages. 1 Introduction An event-based system consists of a set of software components that interact by notifying each other of events, where an event is any happening of inter- est { typically a change in the state of a component. Mouse clicks, keyboard events, timers, OS interrupts, sensor readings, stock quotes, and news articles are all examples of events. Events have data attributes attached to them. A stock quote, for instance has the name of the corporation and the price of the stock as attributes.
    [Show full text]
  • University of Oklahoma Graduate College
    UNIVERSITY OF OKLAHOMA GRADUATE COLLEGE BETTY JOHNSON, MIDWEST PIONEER OF THE BASSOON: HER LIFE AND LEGACY A DOCUMENT SUBMITTED TO THE GRADUATE FACULTY in partial fulfillment of the requirements for the Degree of DOCTOR OF MUSICAL ARTS By ANNA RESNICK Norman, Oklahoma 2015 BETTY JOHNSON, MIDWEST PIONEER OF THE BASSOON: HER LIFE AND LEGACY A DOCUMENT APPROVED FOR THE SCHOOL OF MUSIC BY ______________________________ Dr. Eugene Enrico, Chair ______________________________ Mr. Rodney Ackmann, Co-Chair ______________________________ Dr. Suzanne Tirk ______________________________ Dr. Jennifer Saltzstein ______________________________ Dr. Bruce Hoagland © Copyright by ANNA RESNICK 2015 All Rights Reserved. DEDICATION This document is dedicated to my first bassoon teacher, Betty Johnson. What a blessing it was to learn from you and spend time with you during my early years as a bassoonist. The first thing anyone told me about you was that you were considered the Grandmother of the Bassoon. After learning more about your life, that title makes perfect sense and is deserved. I’m sure you are too humble to figure out why I decided to tell your story. It is because your story is worth being told. ACKNOWLEDGEMENTS This labor of love would not have been possible without the unending help and support of many people. I began this project by contacting Betty’s daughter, Joan Straach. She instantly invited me to her home, welcomed me into the family, provided many hours of information-filled interviews, and gave me a comfortable place to stay for many nights while I conducted research. The remembrances and memories she shared brought up old memories and forgotten emotions.
    [Show full text]