Managing Application Configuration Data with CIM

Size: px
Start display at page:

Download "Managing Application Configuration Data with CIM"

Transcription

1 Managing Application Configuration Data with CIM Viktor Mihajlovski IBM Linux Technology Center, Systems Management Introduction The configuration of software, regardless whether it falls into the category of system software, middleware or application software, is a major contributor to the complexity in large enterprise environments. The root of the problem is - as nearly always - missing interoperability caused by diversity. The diversity encompasses various aspects like configuration data location and format and also semantical information. In order to change the configuration of a system or some software it is necessary to know where to look for the configuration data and what to change in order to achieve the desired result. Sometimes one software component needs another software component to be configured in a particular way which could require a different skill profile. Finally, different versions of a particular software (with differing capabilities and configuration options) might coexist in a networked environment. Systems like Windows feature a common configuration repository (Registry, Active Directory) that solves the location and format issue. That helps a lot for certain situations but is not sufficient as there's still no semantical information available (other than perhaps some written documentation). Another (maybe more severe) problem is that this requires "legacy" applications to rewrite their configuration component to make use of the central configuration repository. Especially multi-platform components (like Apache HTTPD, Mozilla) don't do that. They feature their own (usually complex) configuration file instead (at least as long as there's no multi-platform configuration repository). There are good reasons to propose CIM as an approach to tackle this problem. First of all it offers the conceptual underpinning to model the configuration data and second it leads the way to implementations (based on WBEM and CIMOMs) enabling for a unique way to access this data. The clear advantage of WBEM based configuration management is that it's not proprietary, that it's platform-independent and does not require legacy or multi-platform applications to forsake their configuration data. While the CIM classes dealing with configuration do not yet really solve the semantical issues (through common data models for special categories of software) they sure do prepare the ground for it, as we will outline later in this document. Settings and Configurations We strongly recommend that you read the DMTF White paper on the CIM Core Model, especially the chapter about Settings and Configurations (Chapter 16) to have a certain understanding of the concepts presented therein. As the prefix CIM_ is a little bit bulky, it is regularly omitted for the classes CIM_Setting, CIM_Configuration and CIM_Service. Settings in the CIM Core Model designate configurable items for a CIM_ManagedElement (the root class for nearly all CIM classes - including Setting). A setting usually contains (and groups) properties with close relationship. IP address and network mask would be a April 9, 2002 Page 1 of 6

2 meaningful setting of a network adapter, as they are closely tied together. Configurations are used to aggregate multiple Settings for a CIM_ManagedElement. Settings and Configurations can be associated to all derivations of CIM_ManagedElement. We've mentioned the network adapter as an example for Logical Device. While not being principally different, we are more interested in software configuration (well, device configuration is in fact device driver configuration which could be considered as a form of software). Therefore, we need to identify the CIM class to which (Software) Configuration and Settings apply. The class we have chosen is Service, which might be a little surprising, so we will explain the rationale behind it. Service as the Configuration Owner The Service class is denoted as the class representing the information needed to manage function in CIM models. This notion makes it more suitable for anchoring configuration data than CIM_SoftwareElement from the Application Model, which might be another class that could be considered. However, the Software Element is designed to support deployment rather than configuration, so it deals with more concrete items like files making up a package and requirements against other Software Elements (existence, version). Examples of Software Elements would be RPMs or Installshield Packages. Another difficulty with Software Elements would be that you can have multiple logical functional instances based on one installation (e.g., run multiple HTTP servers on one system). Usually there's a connection between a Software Element and a Service, i.e. the executables needed by (or implementing) the function. It is represented by the association class CIM_SoftwareElementServiceImplementation. Note also that Services do not only describe things like daemons or servers (although these will be the most common to deal with in large installations): it's really about function and each client or word processing program provides - function. The Model and How to Get There Before we can make configuration data accessible via a CIMOM and appropriate instrumentation (more about that later), we have to conceive a data model for the configuration data based on the CIM Model. Not necessarily a surprise, this will possibly be the hardest part. Mostly, because there are no predefined schemas, which means that we will have to figure out exactly what is to be configured and how it's done. Further, we should keep in mind that a very important aspect of CIM is interoperability, which makes modeling even harder, as it may require some additional abstraction. We will put this issue aside for now, and pick it up later. As you have probably read in the DMTF White paper on the Core Model, Settings do not represent the current operational data of a Service (in this case). Those things (as far as being a matter of interest and being observable) are best represented by properties in the Service itself. Settings are representing items from the configuration repository (e.g., config file) of the application and usually it is necessary to (re)start (or notify) the Service in order to apply the Settings, i.e. make them effective. So one possible approach - although not particularly helpful - would be to map all the configuration items in (let's say) a config file to Setting instances, or to properties of one single Setting instance. This would work for the most simple cases only, since many configuration files tend to have structure or hierarchy (some even recursive and of arbitrary depth) and a variable number of distinct, similar or equal items. However, all the basics and composition mechanism are there to design a hierarchical data model for Application Configuration. Settings can be aggregated via Configurations and April 9, 2002 Page 2 of 6

3 Configurations can be nested from other Configurations. Therefore, the modeling task will be mainly to find out a suitable mapping. As always an example will help best to illustrate this. Note: the section below is still incomplete and adding a few pictures will help. This is a document still in progress! Apache Configuration Configuring the Apache web server can be quite a challenge. There's a high number (>200) of so-called directives to define the behavior of the HTTP daemon, some of them interdependent. This example is also interesting in that, even if configuration tools are used by the administrator, it doesn't relieve her or him from understanding the way Apache is working and how the configuration file is being interpreted. This is also true for the modeler: in order to come up with a semantically correct data model it is necessary to understand the operational concepts. This document is not an Apache configuration tutorial (nor is it intended to be one) therefore it will be incomplete and oversimplified in many things. We hope nevertheless it will serve the purpose to shed some light on the "black art of modeling". One property of configuration directives is the context in which they appear and for which they apply. The available contexts are Server, Virtual host, Directory and Location, where the context can be nested in this order (e.g., Directory can be specified in Virtual Host and Server, but not in Location). Further, directives are being implemented by modules, that can either be statically bound to the server executable or be loaded dynamically if needed. There's a one-to-one relationship between a directive and the implementing module. The core module is mandatory and required to be present. Finally, directives can be grouped logically by functional area, thus identifying possibly meaningful Setting classes. Taking this all together, Settings have to contain only properties for directives that are implemented by the same module are valid in the same context are functionally related (a matter of taste sometimes) Context Scoping Usually the directives allowed for an inner context can be also specified for the enclosing one (with few exceptions). These directives are inherited by (or propagated to) the inner directives, if not specified or overridden there. Server Configuration The outermost context is the Server context. It is represented by the Apache_HTTPServerConfiguration class and aggregates all the Settings for a Server (basically the global settings for the daemon). Currently there are only two Setting classes available. Apache_HTTPModule defining whether a module is present and active and Apache_HTTPServerSetting containing properties for all the directives valid for the Server context and implemented by the Core module. Virtual Host The Virtual Host context is used to introduce a sub-server listening to a separate address. Modeling is not yet complete for virtual hosts. Directory/Location These contexts are used to configure the (virtual) server behavior on a per directory/file name base. Not yet completed. Modules April 9, 2002 Page 3 of 6

4 Each Apache module is represented by an instance of Apache_HTTPModule. Other Settings can depend on the existence of certain Modules. Nearly all of the base settings depend on the Core module. BTW: This could be probably be modeled by a special CIM_Dependency association. We don't do that currently as we would rather model the fact that certain Setting types are dependent on a Module type. The pure instance dependency seems to be rather pointless for real world scenarios. Implementing the Model Once the configuration model has been completed, it will be necessary to write instrumentation code (in form of CIMOM providers) implementing the data model by mapping the configuration repository data to and from the CIM objects. Unless the repository is accessible via a nice API, this means parsing (or scanning) configuration files and rewriting them upon configuration changes. Depending on the format and complexity of the configuration files, this will be more or less effort and the use of tools like generated parsers or scanners might be beneficial, although they usually do not help when it comes to file updates. Further, it will be necessary to transform and map the parsed/scanned data to instances of Settings and Configurations. Using conventional technology, this will have to be handcrafted too. In the next section we discuss a more advanced approach for (complex) configuration file access. Using the Parser/Modifier to Access Configuration Files Many of the configuration files have simple syntactical structures that can be expressed via regular expressions or context free grammars, making them suitable to be processed by a generated scanner or parser. The syntax description for a configuration file can easily be extended to add support for syntactical correct modification of the respective text file 1 to the parser. A parser/modifier generated from a syntactical description like an annotated context free grammar transforms the textual representation of the configuration file into an internal abstract syntax tree (AST). This AST can be accessed by a program (e.g., a generic CIMOM provider for text file access) and offers functions to navigate and modify the tree structure. The modified AST can then be transformed into text and written back to the configuration file. In order to exploit a parser/modifier it is necessary to have mapping rules between nodes in the AST and instances and properties in a CIM Schema. Once these mapping rules are established, a generic CIMOM provider can be written to perform the actual mapping by invoking the parser/modifier and by operating upon the AST. The figure below shows how a generic 1 This approach is successfully being used within zos Managed Systems Infrastructure for Setup, where the Java based Parser Generator JavaCC is used for this purpose. April 9, 2002 Page 4 of 6

5 provider for text file access would work. Generic Provider CIM Instances Parser/Modifier AST config file Mapping Rules The question on how and where to specify the mapping is still open. It could be a part of the syntax description, a separate description format (e.g., XML) or an extension to the Schema (e.g., additional special-purpose qualifiers). Beyond Applications Although being very specifically geared towards, some of the concepts will also apply to the persistent configuration of other system components, namely devices. The real challenge here is that - at least in the Linux area - no standards exist where and how the configuration data for an Ethernet adapter is stored. This is typically defined by the distributor and we can find at least two schemes today (it's probably more). This should however not discourage us, since devices (in contrast to applications) have usually well defined data models, which was the hard part to get (you remember). So it's becoming "only" a question of the providers. With appropriate instrumentation for the respective distributions, it will be possible to manage persistent device configurations regardless of the distribution. That's were the strengths of CIM start to show (if we only had that instrumentation already). Thoughts on Interoperability As we have already mentioned, the CIM models for devices are far more developed and interoperable than those for applications. For instance it is possible to manage a network adapter regardless whether it's Ethernet or Tokenring (e.g., can set the IP address and net mask). This is possible since CIM offers an object-oriented model and thus allows to define generic base classes as well as specialized classes by subclassing. It is obvious that software also falls into categories. If we take the Apache web server as an example we could create a model for it by subclassing from a hypothetical Web Server class (or more precise classes necessary to describe the server and the configuration). April 9, 2002 Page 5 of 6

6 It is also clear that certain settings are pertinent to all Web Servers, like address, document root directory, etc. Even more advanced features like virtual servers/hosts can be found with other Web Servers. Now, in the absence of more abstract base models for applications what can be done to avoid ending up with a data model that's not interoperable? First of all, we don't have the final answer. Taking into consideration other implementations of software in the given category might help to create the necessary abstractions. Discussions within DMTF work groups seem also to be a reasonable way to get some feedback. April 9, 2002 Page 6 of 6

KVM Forum 2007 Tucson, Arizona

KVM Forum 2007 Tucson, Arizona Standard-based Systems Management Solution for KVM KVM Forum 2007 Tucson, Arizona Heidi Eckhart heidieck@linux.vnet.ibm.com Open Hypervisor Team IBM Linux Technology Center August 30 th 2007 Linux is a

More information

WBEM Web-based Enterprise Management

WBEM Web-based Enterprise Management 1 WBEM Web-based Enterprise Management Outline What is Enterprise Management? What are the drivers in Enterprise Mgt.? Distributed Management Technology Forum (DMTF) Web Based Enterprise Management (WBEM)

More information

Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.

Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3. Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.3 Revision 1 Table of Contents Preface 3 Chapter 1 Introduction 3 Chapter

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the

More information

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet.

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. 1 2 3 The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. That's because XML has emerged as the standard

More information

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Modeling Applications using Language Mappings Programmer s Reference Manual How to use this Reference Card: The consists of a set of fundamental modeling elements which appear

More information

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Slide 1: Cover Welcome to the speech, The role of DB2 in Web 2.0 and in the Information on Demand World. This is the second speech

More information

I'm reposting here an I wrote since it was well-received on the CouchDB marketing list, but its formatting did not display well there.

I'm reposting here an  I wrote since it was well-received on the CouchDB marketing list, but its formatting did not display well there. I'm reposting here an email I wrote since it was well-received on the CouchDB marketing list, but its formatting did not display well there. One of CouchDB's developers asked, How can we make it that CouchApps

More information

Generic Operations. Document number: DSP0223. Date: Version: Document type: Specification. Document status: DMTF Standard

Generic Operations. Document number: DSP0223. Date: Version: Document type: Specification. Document status: DMTF Standard 1 2 3 4 Document number: Date: 2012-08-30 Version: 1.0.1 5 6 7 8 9 10 11 12 13 14 15 16 Document type: Specification Document status: DMTF Standard Document language: en-us 17 18 19 Copyright notice Copyright

More information

Parser Design. Neil Mitchell. June 25, 2004

Parser Design. Neil Mitchell. June 25, 2004 Parser Design Neil Mitchell June 25, 2004 1 Introduction A parser is a tool used to split a text stream, typically in some human readable form, into a representation suitable for understanding by a computer.

More information

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration Who am I? I m a python developer who has been working on OpenStack since 2011. I currently work for Aptira, who do OpenStack, SDN, and orchestration consulting. I m here today to help you learn from my

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 5.1 Introduction You should all know a few ways of sorting in O(n log n)

More information

Query Processing and Optimization using Compiler Tools

Query Processing and Optimization using Compiler Tools Query Processing and Optimization using Compiler Tools Caetano Sauer csauer@cs.uni-kl.de Karsten Schmidt kschmidt@cs.uni-kl.de Theo Härder haerder@cs.uni-kl.de ABSTRACT We propose a rule-based approach

More information

What is a multi-model database and why use it?

What is a multi-model database and why use it? What is a multi-model database and why use it? An When it comes to choosing the right technology for a new project, ongoing development or a full system upgrade, it can often be challenging to define the

More information

CIM Interop Model White Paper CIM V2.7. CIM Interop Model White Paper CIM Version 2.7 Version 0.9 June 19, 2003

CIM Interop Model White Paper CIM V2.7. CIM Interop Model White Paper CIM Version 2.7 Version 0.9 June 19, 2003 CIM Interop Model White Paper CIM Version 2.7 Version 0.9 June 19, 2003 Abstract The DMTF Common Information Model (CIM) is a conceptual information model for describing computing and business entities

More information

In this simple example, it is quite clear that there are exactly two strings that match the above grammar, namely: abc and abcc

In this simple example, it is quite clear that there are exactly two strings that match the above grammar, namely: abc and abcc JavaCC: LOOKAHEAD MiniTutorial 1. WHAT IS LOOKAHEAD The job of a parser is to read an input stream and determine whether or not the input stream conforms to the grammar. This determination in its most

More information

CIM Common Information Model

CIM Common Information Model CIM Common Information Model Web-based Enterprise Management Matthias Hölzer-Klüpfel 2004-08-22, akademy, Ludwigsburg Overview What's the problem? Distributed Management Task Force Common

More information

Exheritance Class Generalisation Revived

Exheritance Class Generalisation Revived Exheritance Class Generalisation Revived Markku Sakkinen Information Technology Research Institute University of Jyväskylä P.O.Box 35 (Agora) FIN-40351 Jyväskylä Finland sakkinenm@acm.org or sakkinen@cs.jyu.fi

More information

Lesson 10 BPEL Introduction

Lesson 10 BPEL Introduction Lesson 10 BPEL Introduction Service Oriented Architectures Module 1 - Basic technologies Unit 5 BPEL Ernesto Damiani Università di Milano Service-Oriented Architecture Orchestration Requirements Orchestration

More information

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014 CS2112 Fall 2014 Assignment 4 Parsing and Fault Injection Due: March 18, 2014 Overview draft due: March 14, 2014 Compilers and bug-finding systems operate on source code to produce compiled code and lists

More information

Using SMI-S with the Cloud Data Management Interface Scott Baker September 21th, 2010

Using SMI-S with the Cloud Data Management Interface Scott Baker September 21th, 2010 Using SMI-S with the Cloud Data Management Interface Scott Baker September 21th, 2010 Scope CDMI is an interoperable & vendor neutral interface for cloud offerings consisting of. Data path Management /

More information

This book is licensed under a Creative Commons Attribution 3.0 License

This book is licensed under a Creative Commons Attribution 3.0 License 6. Syntax Learning objectives: syntax and semantics syntax diagrams and EBNF describe context-free grammars terminal and nonterminal symbols productions definition of EBNF by itself parse tree grammars

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Some Notes on Metadata Interchange

Some Notes on Metadata Interchange Some Notes on Metadata Interchange Ian A. Young V2, 3-Sep-2008 Scope These notes describe my position on the issue of metadata interchange between SAML federations. I try and lay out some terminology and

More information

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting

Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Prescriptive Design Patterns Proactive Guidance for Real-World Systems. Kevin Mullet REACTOR Experience Design

Prescriptive Design Patterns Proactive Guidance for Real-World Systems. Kevin Mullet REACTOR Experience Design Prescriptive Proactive Kevin Mullet REACTOR Experience Design Patterns are Good Capture Real Design Insights Represent Knowledge in Structured Form Impose Discipline on Design Team Encourage Designers

More information

RESTful Services for CIM (CIM-RS)

RESTful Services for CIM (CIM-RS) July 22-26, 2013 City Center Marriott Portland, OR RESTful Services for CIM (CIM-RS) Andreas Maier (IBM) STSM, Systems Management Architecture & Design maiera@de.ibm.com Disclaimer The information in this

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

White Paper on RFP II: Abstract Syntax Tree Meta-Model

White Paper on RFP II: Abstract Syntax Tree Meta-Model White Paper on RFP II: Abstract Syntax Tree Meta-Model OMG Architecture Driven Modernization Task Force August 18, 2004 Contributors: Philip Newcomb, The Software Revolution, Inc. Ed Gentry, Blue Phoenix,

More information

mismatch between what is maybe possible today and what is going on in many of today's IDEs.

mismatch between what is maybe possible today and what is going on in many of today's IDEs. What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to

More information

Design Pattern: Composite

Design Pattern: Composite Design Pattern: Composite Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. Motivation

More information

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist IBM Podcast [ MUSIC ] Welcome to this IBM podcast, Realizing More Value from Your IMS Compiler Upgrade. I'm Kimberly Gist with IBM. System z compilers continue to deliver the latest programming interfaces

More information

CptS 464/564 Lecture 18

CptS 464/564 Lecture 18 CptS 464/564 Lecture 18 2nd November 2004 Checkpoint What have we covered so far? Paradigms and Models: frameworks for the discussion of DS What is the plan ahead? Next: examples of distributed systems

More information

This guide records some of the rationale of the architecture and design of Axis.

This guide records some of the rationale of the architecture and design of Axis. 1. Axis Architecture Guide 1.2 Version Feedback: axis-dev@ws.apache.org 1.1. Table of Contents Introduction Architectural Overview Handlers and the Message Path in Axis Message Path on the Server Message

More information

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

Compiling and Interpreting Programming. Overview of Compilers and Interpreters Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments

More information

Thoughts about a new UI for the Eclipse BPEL Designer

Thoughts about a new UI for the Eclipse BPEL Designer Thoughts about a new UI for the Eclipse BPEL Designer Author: Vincent Zurczak EBM WebSourcing Version: 1.0 Status: draft Date: 10/02/2011 Table of Content 1 Context...3 1.1 BPEL modeling?...3 1.2 Few words

More information

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures Chapter 6 Site Types and Architectures Site Types Definition: A public Web site, an Internet Web site, an external Web site or simply a Web site is one that is not explicitly restricted to a particular

More information

Security Enterprise Identity Mapping

Security Enterprise Identity Mapping System i Security Enterprise Identity Mapping Version 6 Release 1 System i Security Enterprise Identity Mapping Version 6 Release 1 Note Before using this information and the product it supports, be sure

More information

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces CaptainCasa & Java Server Faces 1 Table of Contents Overview...3 Why some own XML definition and not HTML?...3 A Browser for Enterprise Applications...4...Java Server Faces joins the Scenario!...4 Java

More information

Object Relationships

Object Relationships Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of

More information

Integrated Enterprise Management Using WBEM/SNMP Gateway

Integrated Enterprise Management Using WBEM/SNMP Gateway Integrated Enterprise Management Using WBEM/SNMP Gateway So-Jung Lee*, Hong-Taek Ju** and James W. Hong* *Dept. of Computer Science and Engineering, POSTECH, Korea ** Dept. of Computer Engineering, Keimyung

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages

More information

Languages and Compilers

Languages and Compilers Principles of Software Engineering and Operational Systems Languages and Compilers SDAGE: Level I 2012-13 4. Lexical Analysis (Scanning) Dr Valery Adzhiev vadzhiev@bournemouth.ac.uk Office: TA-121 For

More information

CDM Implementation Requirements

CDM Implementation Requirements Document Number: DSP0255 Date: 2009-05-19 Version: 1.0.0 Document Type: Specification Document Status: DMTF Standard Document Language: E DSP0255 Copyright Notice Copyright 2009 Distributed Management

More information

Incorporating applications to a Service Oriented Architecture

Incorporating applications to a Service Oriented Architecture Proceedings of the 5th WSEAS Int. Conf. on System Science and Simulation in Engineering, Tenerife, Canary Islands, Spain, December 16-18, 2006 401 Incorporating applications to a Service Oriented Architecture

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Welcome to another episode of Getting the Most. Out of IBM U2. I'm Kenny Brunel, and I'm your host for

Welcome to another episode of Getting the Most. Out of IBM U2. I'm Kenny Brunel, and I'm your host for Welcome to another episode of Getting the Most Out of IBM U2. I'm Kenny Brunel, and I'm your host for today's episode, and today we're going to talk about IBM U2's latest technology, U2.NET. First of all,

More information

CMPSC 497 Attack Surface

CMPSC 497 Attack Surface Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA CMPSC 497 Attack Surface

More information

Trees. Carlos Moreno uwaterloo.ca EIT https://ece.uwaterloo.ca/~cmoreno/ece250

Trees. Carlos Moreno uwaterloo.ca EIT https://ece.uwaterloo.ca/~cmoreno/ece250 Carlos Moreno cmoreno @ uwaterloo.ca EIT-4103 https://ece.uwaterloo.ca/~cmoreno/ece250 Standard reminder to set phones to silent/vibrate mode, please! Announcements Part of assignment 3 posted additional

More information

Proposed User Experience for Handling Multiple Identity Providers in Network Identity Manager 2.0

Proposed User Experience for Handling Multiple Identity Providers in Network Identity Manager 2.0 Proposed User Experience for Handling Multiple Identity Providers in Network Identity Manager 2.0 The current architecture of Network Identity Manager is designed around a single identity provider and

More information

XPath Expression Syntax

XPath Expression Syntax XPath Expression Syntax SAXON home page Contents Introduction Constants Variable References Parentheses and operator precedence String Expressions Boolean Expressions Numeric Expressions NodeSet expressions

More information

Web Application Expectations

Web Application Expectations Effective Ruby on Rails Development Using CodeGear s Ruby IDE Shelby Sanders Principal Engineer CodeGear Copyright 2007 CodeGear. All Rights Reserved. 2007/6/14 Web Application Expectations Dynamic Static

More information

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use

More information

LECTURE 3. Compiler Phases

LECTURE 3. Compiler Phases LECTURE 3 Compiler Phases COMPILER PHASES Compilation of a program proceeds through a fixed series of phases. Each phase uses an (intermediate) form of the program produced by an earlier phase. Subsequent

More information

Inheritance (Chapter 7)

Inheritance (Chapter 7) Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance

More information

Response to the. ESMA Consultation Paper:

Response to the. ESMA Consultation Paper: Response to the ESMA Consultation Paper: Draft technical standards on access to data and aggregation and comparison of data across TR under Article 81 of EMIR Delivered to ESMA by Tahoe Blue Ltd January

More information

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Minimal List Common Syntax is provided by XML To allow remote sites to interact with each other: 1. A common

More information

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships Instructor: Craig Duckett Lecture 04: Thursday, April 5, 2018 Relationships 1 Assignment 1 is due NEXT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday,

More information

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up

Make sure you have the latest Hive trunk by running svn up in your Hive directory. More detailed instructions on downloading and setting up GenericUDAFCaseStudy Writing GenericUDAFs: A Tutorial User-Defined Aggregation Functions (UDAFs) are an excellent way to integrate advanced data-processing into Hive. Hive allows two varieties of UDAFs:

More information

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful? Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

More information

The XML World View a personal vision with challenges

The XML World View a personal vision with challenges IBM Thomas J. Watson Research Center The XML World View a personal vision with challenges Kristoffer H. Rose krisrose@us.ibm.com Document Engineering 2004 October 28, 2004 Dreaming 2 The XML World View

More information

Comp 411 Principles of Programming Languages Lecture 3 Parsing. Corky Cartwright January 11, 2019

Comp 411 Principles of Programming Languages Lecture 3 Parsing. Corky Cartwright January 11, 2019 Comp 411 Principles of Programming Languages Lecture 3 Parsing Corky Cartwright January 11, 2019 Top Down Parsing What is a context-free grammar (CFG)? A recursive definition of a set of strings; it is

More information

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views 1 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES Outline for Today 2 Architecture views C&C Views 1 Components and Connectors (C&C) Styles 3 Elements Relations Properties

More information

Compilers. Prerequisites

Compilers. Prerequisites Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization

More information

Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments

More information

Programming Assignment IV

Programming Assignment IV Programming Assignment IV 1 Introduction In this assignment, you will implement the static semantics of Cool. You will use the abstract syntax trees (AST) built by the parser to check that a program conforms

More information

Draft SDMX Technical Standards (Version 2.0) - Disposition Log Project Team

Draft SDMX Technical Standards (Version 2.0) - Disposition Log Project Team Draft SDMX Technical s (Version 2.0) - Disposition Log Project 1 Project 2 Project general general (see below for exampl es) In the document Framework for SDMX technical standards, version 2) it is stated

More information

Joining the BRICKS Network - A Piece of Cake

Joining the BRICKS Network - A Piece of Cake Joining the BRICKS Network - A Piece of Cake Robert Hecht and Bernhard Haslhofer 1 ARC Seibersdorf research - Research Studios Studio Digital Memory Engineering Thurngasse 8, A-1090 Wien, Austria {robert.hecht

More information

Diagnosing Java code: Designing extensible applications, Part 3

Diagnosing Java code: Designing extensible applications, Part 3 Diagnosing Java code: Designing extensible applications, Part 3 Examine when, where, and how black box extensibility works best Level: Introductory Eric Allen (eallen@cs.rice.edu), Ph.D. candidate, Java

More information

Application Runtime and CIM

Application Runtime and CIM Application Runtime and CIM Modeling beyond today s CIM Application Model Authors: Andreas Köppel (SAP AG) andreas.koeppel@sap.com Version 1.1, June 19 2003 Agenda Introduction SAP System Landscape Directory

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

Compilers and Interpreters

Compilers and Interpreters Overview Roadmap Language Translators: Interpreters & Compilers Context of a compiler Phases of a compiler Compiler Construction tools Terminology How related to other CS Goals of a good compiler 1 Compilers

More information

QuickSpecs. ISG Navigator for Universal Data Access M ODELS OVERVIEW. Retired. ISG Navigator for Universal Data Access

QuickSpecs. ISG Navigator for Universal Data Access M ODELS OVERVIEW. Retired. ISG Navigator for Universal Data Access M ODELS ISG Navigator from ISG International Software Group is a new-generation, standards-based middleware solution designed to access data from a full range of disparate data sources and formats.. OVERVIEW

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent

More information

Credential Management Profile

Credential Management Profile 1 2 3 4 Document Number: DSP1082 Date: 2011-09-16 Version: 1.0.0 5 6 7 8 Document Type: Specification Document Status: DMTF Standard Document Language: en-us 9 DSP1082 10 11 Copyright notice Copyright

More information

Late Binding; OOP as a Racket Pattern

Late Binding; OOP as a Racket Pattern Late Binding; OOP as a Racket Pattern Today Dynamic dispatch aka late binding aka virtual method calls Call to self.m2() in method m1 defined in class C can resolve to a method m2 defined in a subclass

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

Browsing the Semantic Web

Browsing the Semantic Web Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 237 245. Browsing the Semantic Web Peter Jeszenszky Faculty of Informatics, University

More information

Evaluation of Visual Fabrique (VF)

Evaluation of Visual Fabrique (VF) Evaluation of Visual Fabrique (VF) Dr Peter Lappo www.smr.co.uk Scope and Method This is a review of Visual Fabrique (VF) V1.0.371 EAP Release. In order to conduct this evaluation I followed the tutorial

More information

programming languages need to be precise a regular expression is one of the following: tokens are the building blocks of programs

programming languages need to be precise a regular expression is one of the following: tokens are the building blocks of programs Chapter 2 :: Programming Language Syntax Programming Language Pragmatics Michael L. Scott Introduction programming languages need to be precise natural languages less so both form (syntax) and meaning

More information

UNIT V *********************************************************************************************

UNIT V ********************************************************************************************* Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common

More information

Components of a Puppet architecture

Components of a Puppet architecture Components of a Puppet architecture This tutorial has been taken from the second edition of Extending Puppet. Until January 9th you can pick it up for just $5. In fact - you can pick up any ebook or video

More information

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Agent-Enabling Transformation of E-Commerce Portals with Web Services Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:

More information

WWW Applications for an Internet Integrated Service Architecture

WWW Applications for an Internet Integrated Service Architecture WWW Applications for an Internet Integrated Service Architecture T. V. Do, B. Kálmán, Cs. Király, Zs. Mihály, Zs. Molnár, Zs. Pándi Department of Telecommunications Technical University of Budapest Fax:

More information

CS02b Project 2 String compression with Huffman trees

CS02b Project 2 String compression with Huffman trees PROJECT OVERVIEW CS02b Project 2 String compression with Huffman trees We've discussed how characters can be encoded into bits for storage in a computer. ASCII (7 8 bits per character) and Unicode (16+

More information

Language Extension and Composition with Language Workbenches

Language Extension and Composition with Language Workbenches Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

The Essence of OOP using Java, Nested Top-Level Classes. Preface

The Essence of OOP using Java, Nested Top-Level Classes. Preface The Essence of OOP using Java, Nested Top-Level Classes Baldwin explains nested top-level classes, and illustrates a very useful polymorphic structure where nested classes extend the enclosing class and

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides for both problems first, and let you guys code them

More information

Web Ontology for Software Package Management

Web Ontology for Software Package Management Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 331 338. Web Ontology for Software Package Management Péter Jeszenszky Debreceni

More information

Java EE 7: Back-end Server Application Development 4-2

Java EE 7: Back-end Server Application Development 4-2 Java EE 7: Back-end Server Application Development 4-2 XML describes data objects called XML documents that: Are composed of markup language for structuring the document data Support custom tags for data

More information

Categorizing Migrations

Categorizing Migrations What to Migrate? Categorizing Migrations A version control repository contains two distinct types of data. The first type of data is the actual content of the directories and files themselves which are

More information

Heap sort. Carlos Moreno uwaterloo.ca EIT

Heap sort. Carlos Moreno uwaterloo.ca EIT Carlos Moreno cmoreno @ uwaterloo.ca EIT-4103 http://xkcd.com/835/ https://ece.uwaterloo.ca/~cmoreno/ece250 Standard reminder to set phones to silent/vibrate mode, please! Last time, on ECE-250... Talked

More information