Efficient SOAP processing for tiny embedded servers

Size: px
Start display at page:

Download "Efficient SOAP processing for tiny embedded servers"

Transcription

1 Efficient SOAP processing for tiny embedded servers Jan Janeček Dept. of Computer Science and Engineering, Czech Technical University in Prague This text gives a survey of activities in the project supported by the grant of Microsoft Research Cambridge, which has been aimed to the following areas: - development of an effective framework for applications running on tiny microcontrollers, giving them ability to communicate by the SOAP protocol, - development of an HW/SW framework that allows integration of cryptographic functions implemented in FPGA into PDA/Windows CE architecture, - use of the operating system Windows CE as a development tool for students projects in the course Application of Microcomputers. The report presents results obtained in the first and third area till 30/07/2004, the second area is covered by a separate material prepared by Dr. Jan Schmidt. Idea of a tiny SOAP server/application Middleware technologies based on the well standardised XML-based SOAP protocol are widely used for web services. Servers are powerful computers, which provide access to huge data sources, clients provide primarily a (graphical) user interface, and are available on desktops, notebooks, PDAs and smartphones. Communication between a client and server is generally limited to exchange of several messages, effectiveness is not therefore as important as non-restricted interoperability. Readability of data transferred in XML format can be advantage in some cases, but a simple and well-defined syntax of messages is more important: a common XML parser can be used to convert SOAP messages of different applications into data structures. The goal of our research has been to explore possibility of using SOAP communication in systems, where more small sensors are providing information to clients, which are, similarly as with web services, providing the user interface and evaluating/storing data, and in systems, where clients are sending commands to small controllers (Fig.). clients sensors / controllers web services Fig. System with tiny SOAP servers Advantage of SOAP in systems of this type is evident, development tools designed for web service clients can be used without changes. On the other side, technologies used in current web servers have system requirements, which small sensors/controllers cannot accomplish. Moreover, real-time behaviour of classical web server technology does not correspond to requirements of many control systems.

2 2 Structure of the SOAP analyser Any XML document/message, e.g. a SOAP request/ response and WSDL definition, can be described by a suitable language model: tree and hedge grammars are frequently used by theoreticians. Respecting requirements of effective implementation we selected a string based model: XML grammars. XML grammars form a subset of the context-free class, and we could use obvious compiler-compiler technologies (e.g. yacc/lex, JavaCC) to create a suitable validating parser. However, some features of XML (as defined by W3C, specifically common use of namespaces) and regular structures of XML grammar productions allow designing of more efficient analysers (from the viewpoint of the code length and space required) and analyser generating tools without enormous initial effort. The language of XML documents can be described in two layers by two grammars: - G t = {N t, T t, P t }, that describes the structure of XML tags, - G v = {N v, T v, P v }, that describes parenthetic structure of XML expressions/elements. The alphabet of tags T, which serve as terminal symbols for the grammar G v, contains opening tags a A and closing tags a A, i.e. T = A A. Each symbol a A has a corresponding counterpart a A. Tags are recognised by a tag analyser, which function corresponds, from the G v grammar viewpoint, to a lexical analyser in the standard compiler architecture. The tag analyser accepts words of the language generated by the rules of the grammar G t : T < ns : tname P > < /ns : tname > 2 < ns : tname P / > 3 < tname P > < /tname > 4 < tname P / > 5 P ns:aname = aval 6 aname = aval. Nonterminals T and P of the grammar G t represent tags and attributes. Terminals ns, tname, aname, and aval represent identifiers of namespaces, tag names, attribute names, and values correspondingly. The rules describe empty tags (lines 2 and 4 in the above definition) in addition to opening and closing tags. To simplify the description, empty tags can be eliminated omitting the corresponding lines and replacing each empty tag by the sequence of the corresponding opening and closing tag. The set of nonterminal symbols N v of the grammar G v has one-to-one correspondence with the set of opening tags A. If we denote these nonterminals X a N v, all productions of the grammar G v have one of the forms: X a a µ a a, X a a ν a a, µ a R a, R a N v ν a V al a where R a is a regular set over N v and V al a is set of strings that represents values of atomic elements. The production selected when an opening tag is presented by the tag analyser depends only on this opening tag. We have a single production for each opening tag, the set of opening tags and the set of productions is constructed from the WSDL document and used during a SOAP message reception. Since SOAP messages contain no type definitions, which are defined in the corresponding WSDL document, the set of productions is static. However, support for dynamic enhancement of the production set does no complicate significantly the implementation of the analyser, this fact is useful when documents with type definitions are analysed (e.g. WSDL documents). 3 SOAP analyser The overall structure of the engine that analyses SOAP messages, based on the G v grammar, is described in Fig.2. Each production entered during the parsing process is represented by a finite automaton plane bound to the element in the stack. The structure of each finite automaton, which is defined by the corresponding regular expression µ a is stored as a constant only once. All necessary state information (i.e. automaton state, namespace information, and variables required to prepare the invocation) is accessible through the stack. Therefore, the stack is the only dynamic structure required to analyse SOAP messages and prepare parameters for method invocations. All the overhead required by dynamic memory management of a standard DOM parser can be avoided, our SOAP analyser respects the pulling SAX model. Moreover, if SOAP is not used to transfer recursively defined data structures (this condition is obviously fulfilled), no automaton is referenced more than once from the stack and all the state information may be allocated memory space statically.

3 Because of the facts mentioned above, all the common functionality of the stub can be concentrated into predefined library routines, a specific definition of an interface may be stored as nonvolatile data and all the state information of activated finite automata may be stored in a statically allocated memory. The SOAP engine starts with the empty stack and an automaton that accepts the envelope of the SOAP message. When an opening tag is accepted by the tag analyser, a reference to the corresponding automaton and its data space is pushed in the stack. A correct closing tag pops a reference from the stack. The automaton that controls response generation and the automaton used by the analyser have the same format. µ b b b µ a a a µ ε Fig. 2 Data structures for the tiny SOAP analyser The framework developed to test the approach consists of a compiler, which creates a description of the SOAP automata (receiver serves to analysis of requests, sender forms responses) from the WSDL description of the service. (The WSDL description is generated from the server code or interface description prepared in a suitable programming language, we utilised WSDL descriptions generated from C# in Visual.Net and from Java by java2wsdl tool from Axis). The description is completed by definition of structures and corresponding access/construction methods, and linked to the common code of the server, TCP/IP stack and real-time kernel (Fig 3a.). definitions SOAP automaton data types system support interface application code TCP/IP Ethernet R/T kernel Fig. 3a Structure of SOAP processor Fig. 3b Charon II module The size of generated description and the size of common system support limits usefulness of the technology for systems with small program/data memory. Our implementation requires about 5 kb of the code memory for the 8-bit Atmel s Atmega28 and about the same size for the Intel s PC. With a (restricted) TCP/IP stack and a simple real-time kernel the application fits into a small microcontroller, we tested the technology at the Charon-II module (Atmega28, 28 kb Flash, 32 kb RAM, Mbps Ethernet, egnite s NutOS and TCP/IP stack - Fig.3b). These requirements are significantly lower than requirements of other technologies developed for embedded servers (CE.Net SOAP, esoap, ksoap), and lower than gsoap, based on yacc/lex technology.

4 4 Example of a tiny SOAP server To illustrate usage of a compiled SOAP application we can describe the interface between a client, implementing, for example, a graphical user interface and a multichannel sensor. The interface of the multichannel sensor, playing a role of the server is: namespace Sensor { public class Sample { public int Channel; public int Value; public int TimeStamp; } public class Service: System.Web.Services.WebService { Sample[] storage=new Sample[storageSize];... public Service() public void Initialize(int Channel, int Range) public Sample GetSample() public void SetSample(Sample val) public Sample[] GetAll() } } The sensor converts samples from its analog inputs into integer values stored in a memory buffer storage. Since we require both, synchronous sampling controlled by an internal clock, and asynchronous sampling controlled by external events, values are stored together with time stamps (represented as integers) and channel numbers in records of the type Sample. Individual samples stored in memory can be transferred to the client by the method GetSample. In addition, the method GetAll returns sequence of samples. The method Initialize defines parameters of the A/D conversion and empties the memory buffer storage. Another method SetSample inserts a marker or remotely measured value (e.g. a value from another sensor playing the server s role) into the sequence. There is no method to synchronize the clock of the sensor, a conversion of time stamps to the real time is provided by the control system. 5 Performance evaluation To have some comparison for the compiled SOAP application, we measured response times on general (e-business) purpose web servers. The servers were running on the.3 GHz Centrino, the clients were running on the.09 Ghz Athlon. Machines have been directly interconnected by their Base-T interfaces. A sequence of 00 calls to the Initialize method of our example (two long parameters, an empty response) has been measured, no additional load has been presented to servers. The processor s cycle counter has been used to measure time, providing resolution lower than ns. Results obtained for the Axis server (Fig.4) illustrate influence of the bytecode JIT compiler and adjusting of multithreading inside JVM. Response time has a high variation during stabilization period, mainly due to the fact that calls are opening its own TCP connections.

5 The IIS server gives better results. After a rather high delay for the firsts call (due to compilation of the server s code), the IIS server provides a more stable service. The drawback of the implementation lies in the fact, that the SOAP request is passed to the server only after the server responds to the HTTP POST header by an HTTP O.K message carrying the Continue clause (the time required by the first phase of the remote call is represented in Fig.5 by smaller points - lower line ) Fig. 4 Axis SOAP - response time Fig. 5 IIS SOAP - response time Response time of the compiled SOAP application has been measured on the 8-bit microcontroller, Atmel s Atmega28, with the clock frequency MHz running NutOS real-time kernel. Response time of.57 ms (for Initialize call) has a very small deviation (Fig.6), analysis of the SOAP request consumes only 2.7 ms and is faster than generation of the response from short textual items. To compare performance and behaviour of our SOAP analyser with Axis and IIS servers we compiled the same application for PC (the same compiler, gcc, has been used). Response time, presented in Fig.7, is shorter and has much lower variation, the SOAP analyser itself consumes only 8 µs (represented by smaller points - lower line - in Fig.7) Fig. 6 Charon II - response time Fig. 7 Charon PC - response time Performance evaluation of the compiled SOAP application proved the ability of the method to give reasonable response time even for tiny servers. The real-time behaviour (variation of the response time) of the compiled application is better than behaviour of the same service running on a general web server. We would like to complete performance data with measurements over wireless connections (Bluetooth, WiFi) till September Use of Windows CE in students projects We included semestral projects aimed to Windows CE applications on embedded systems into the programme of the subject Applications of Microcomputers in the summer semester 2003/04. The projects were aimed to applications, which communicate over TCP/IP. The hardware used in projects was acquired with the help of the MSR grant.

6 Specifically, we have used the following hardware: AMD Alchemy DBAu Development Board ( piece) Configuration: AMD MIPS processor 64 MB SDRAM 32 MB Flash memory / Mbps Ethernet two PCMCIA slots USB host/device controller flexible LCD/CRT controller touch screen interface JTAG interface bsquare s CE.Net BSP VIA processor based book-size PC (2 pieces) Configuration: VIA Eden/C3 500 Mhz processor 256 MB DDR SDRAM three / Mbps Ethernets PCMCIA slot IDE/DiscOnChip interface USB host controller Voipac PXA255 Development Board (2 pieces) Configuration: Intel Xscale PXA 255/300 Mhz processor 64 MB SDRAM 32 MB Flash memory two / Mbps Ethernets two PCMCIA interfaces LCD interface and display touch screen interface JTAG interface The selection of HW respects requirements of the education: AMD is a nice high-performance MIPS board supported by CE.NET (bsquare), the book-sized PC is a low-price compact system suitable for embedded use, and PXA255 is a typical industry-level board equipped with widely used Xscale processor. Work on the project resulted in the definition of three diploma theses that will be finished and defended in February 2005.

PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670

PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670 PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670 Features RoHS 520MHz Low-power ARM processor w/ 800 x 600 Color LCD Power Over Ethernet and 10/100BASE-T Ethernet GPS module

More information

Hardware Support for a Wireless Sensor Network Virtual Machine

Hardware Support for a Wireless Sensor Network Virtual Machine Hardware Support for a Wireless Sensor Network Virtual Machine Hitoshi Oi The University of Aizu February 13, 2008 Mobilware 2008, Innsbruck, Austria Outline Introduction to the Wireless Sensor Network

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars

MIT Specifying Languages with Regular Expressions and Context-Free Grammars MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Language Definition Problem How to precisely

More information

Compiler Theory. (Semantic Analysis and Run-Time Environments)

Compiler Theory. (Semantic Analysis and Run-Time Environments) Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful

More information

List of Figures. About the Authors. Acknowledgments

List of Figures. About the Authors. Acknowledgments List of Figures Preface About the Authors Acknowledgments xiii xvii xxiii xxv 1 Compilation 1 1.1 Compilers..................................... 1 1.1.1 Programming Languages......................... 1

More information

Security Based Heuristic SAX for XML Parsing

Security Based Heuristic SAX for XML Parsing Security Based Heuristic SAX for XML Parsing Wei Wang Department of Automation Tsinghua University, China Beijing, China Abstract - XML based services integrate information resources running on different

More information

Method-Level Phase Behavior in Java Workloads

Method-Level Phase Behavior in Java Workloads Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS

More information

2. REAL-TIME CONTROL SYSTEM AND REAL-TIME NETWORKS

2. REAL-TIME CONTROL SYSTEM AND REAL-TIME NETWORKS 2. REAL-TIME CONTROL SYSTEM AND REAL-TIME NETWORKS 2.1 Real-Time and Control Computer based digital controllers typically have the ability to monitor a number of discrete and analog inputs, perform complex

More information

Derivations of a CFG. MACM 300 Formal Languages and Automata. Context-free Grammars. Derivations and parse trees

Derivations of a CFG. MACM 300 Formal Languages and Automata. Context-free Grammars. Derivations and parse trees Derivations of a CFG MACM 300 Formal Languages and Automata Anoop Sarkar http://www.cs.sfu.ca/~anoop strings grow on trees strings grow on Noun strings grow Object strings Verb Object Noun Verb Object

More information

MSc. Software Engineering. Examinations for / Semester 1

MSc. Software Engineering. Examinations for / Semester 1 MSc. Software Engineering Cohorts: MSE/16B/PT Examinations for 2016 2017/ Semester 1 MODULE: Service Oriented Architecture MODULE CODE: WAT 5101C Duration: 3 Hours Instructions to Candidates: 1. Answer

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

High Volume Transaction Processing in Enterprise Applications

High Volume Transaction Processing in Enterprise Applications High Volume Transaction Processing in Enterprise Applications By Thomas Wheeler Recursion Software, Inc. February 16, 2005 TABLE OF CONTENTS Overview... 1 Products, Tools, and Environment... 1 OS and hardware

More information

Introduction to Lexing and Parsing

Introduction to Lexing and Parsing Introduction to Lexing and Parsing ECE 351: Compilers Jon Eyolfson University of Waterloo June 18, 2012 1 Riddle Me This, Riddle Me That What is a compiler? 1 Riddle Me This, Riddle Me That What is a compiler?

More information

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional SUN 311-232 Java Platform Enterprise Edition 6 Web Services Developer Certified Professional Download Full Version : http://killexams.com/pass4sure/exam-detail/311-232 QUESTION: 109 What are three best

More information

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN: Friendly ARM MINI2440 & Dalvik Virtual Machine with Android Sangamesh Gama 1 and Manjula C 2 1 Assistant Professor, Department of Computer Science and Engineering, BKIT Bhalki, India 2 Associate Software

More information

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 STUDENT ID: INSTRUCTIONS Please write your student ID on this page. Do not write it or your name

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Massachusetts Institute of Technology Language Definition Problem How to precisely define language Layered structure

More information

Building Robust Embedded Software

Building Robust Embedded Software Building Robust Embedded Software by Lars Bak, OOVM A/S Demands of the Embedded Industy Increased reliability Low cost -> resource constraints Dynamic software updates in the field Real-time capabilities

More information

The Active Embedded Ubiquitous Web Service Framework

The Active Embedded Ubiquitous Web Service Framework The Active Embedded Ubiquitous Web Service Framework Dugki Min 1, *, Junggyum Lee 1, and Eunmi Choi 2, ** 1 School of Computer Science and Engineering, Konkuk University Hwayang-dong, Kwangjin-gu, Seoul,

More information

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724 ID 730L: Getting Started with Multimedia Programming on Linux on SH7724 Global Edge Ian Carvalho Architect 14 October 2010 Version 1.0 Mr. Ian Carvalho System Architect, Global Edge Software Ltd. Responsible

More information

LL Parsing, LR Parsing, Complexity, and Automata

LL Parsing, LR Parsing, Complexity, and Automata LL Parsing, LR Parsing, Complexity, and Automata R. Gregory Taylor Department of Mathematics and Computer Science Manhattan College Riverdale, New York 10471-4098 USA Abstract It

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Compiler Construction in4303 April 9, 2010 14.00-15.30 This exam (6 pages) consists of 52 True/False

More information

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 20th May 2016 Time: 14:00-16:00

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 20th May 2016 Time: 14:00-16:00 Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Compilers Date: Friday 20th May 2016 Time: 14:00-16:00 Please answer any THREE Questions from the FIVE Questions provided This is a CLOSED

More information

A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors *

A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors * A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors * Hsin-Ta Chiao and Shyan-Ming Yuan Department of Computer and Information Science National Chiao Tung University

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: Internet of Things , Raj Kamal, Publs.: McGraw-Hill Education Lesson 5 Arduino Prototype Development Platforms 1 Arduino Boards, Modules And Shields Popular AVR MCU based products Each board has clear markings on the connection pins, sockets and in-circuit connections

More information

Wireless Embedded Modules

Wireless Embedded Modules Wireless Embedded Modules North American Sales Meeting July 2003 Product Overview Product Summary Embedded 802.11b wireless modules Ultra-compact, single component solutions Pin-compatible and interchangeable

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Lecture 1 Introduction Pervasive Computing MIT & SMA 5508

Lecture 1 Introduction Pervasive Computing MIT & SMA 5508 Lecture 1 Introduction Pervasive Computing MIT 6.883 & SMA 5508 Larry Rudolph (MIT) Tat Jen Cham (NUT) 1 Course Structure Overview Two sets of students -- MIT and SMA Two parts to class Individual technologies

More information

CSE 5317 Midterm Examination 4 March Solutions

CSE 5317 Midterm Examination 4 March Solutions CSE 5317 Midterm Examination 4 March 2010 1. / [20 pts] Solutions (parts a j; -1 point for each wrong answer, 0 points for each blank answer, 2 point for each correct answer. Therefore, the score for this

More information

EMBEDDED HARDWARE. Core Board. ARM7 Development board. ARM7 Evaluation Board. Page 1 of 5

EMBEDDED HARDWARE. Core Board. ARM7 Development board. ARM7 Evaluation Board. Page 1 of 5 Core Board * Size: 71.2mm *50.8mm * Industrial grade 32-bit RISC micro-controller * Mass storage device support * Industrial grade 16C550 Serial Interface * 10/100M Industrial Ethernet interface * USB

More information

CS 415 Midterm Exam Spring SOLUTION

CS 415 Midterm Exam Spring SOLUTION CS 415 Midterm Exam Spring 2005 - SOLUTION Name Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you

More information

Question Points Score

Question Points Score CS 453 Introduction to Compilers Midterm Examination Spring 2009 March 12, 2009 75 minutes (maximum) Closed Book You may use one side of one sheet (8.5x11) of paper with any notes you like. This exam has

More information

538 Lecture Notes Week 1

538 Lecture Notes Week 1 538 Clowes Lecture Notes Week 1 (Sept. 6, 2017) 1/10 538 Lecture Notes Week 1 Announcements No labs this week. Labs begin the week of September 11, 2017. My email: kclowes@ryerson.ca Counselling hours:

More information

CSCE 314 Programming Languages. Type System

CSCE 314 Programming Languages. Type System CSCE 314 Programming Languages Type System Dr. Hyunyoung Lee 1 Names Names refer to different kinds of entities in programs, such as variables, functions, classes, templates, modules,.... Names can be

More information

I Introduction to Real-time Applications By Prawat Nagvajara

I Introduction to Real-time Applications By Prawat Nagvajara Electrical and Computer Engineering I Introduction to Real-time Applications By Prawat Nagvajara Synopsis This note is an introduction to a series of nine design exercises on design, implementation and

More information

Compiler Construction

Compiler Construction Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Conceptual Structure of a Compiler Source code x1 := y2

More information

Compute Node Design for DAQ and Trigger Subsystem in Giessen. Justus Liebig University in Giessen

Compute Node Design for DAQ and Trigger Subsystem in Giessen. Justus Liebig University in Giessen Compute Node Design for DAQ and Trigger Subsystem in Giessen Justus Liebig University in Giessen Outline Design goals Current work in Giessen Hardware Software Future work Justus Liebig University in Giessen,

More information

LANCOM Techpaper IEEE n Indoor Performance

LANCOM Techpaper IEEE n Indoor Performance Introduction The standard IEEE 802.11n features a number of new mechanisms which significantly increase available bandwidths. The former wireless LAN standards based on 802.11a/g enable physical gross

More information

Measuring the Performance of XML-Based Data Standards

Measuring the Performance of XML-Based Data Standards Measuring the Performance of XML-Based Data Standards Gino Crispieri gino.crispieri@ismi.sematech.org International SEMATECH Manufacturing Initiative SEMATECH, the SEMATECH logo, AMRC, Advanced Materials

More information

GigaX API for Zynq SoC

GigaX API for Zynq SoC BUM002 v1.0 USER MANUAL A software API for Zynq PS that Enables High-speed GigaE-PL Data Transfer & Frames Management BERTEN DSP S.L. www.bertendsp.com gigax@bertendsp.com +34 942 18 10 11 Table of Contents

More information

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES *

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES * ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES * Pradip Peter Dey, Mohammad Amin, Bhaskar Raj Sinha and Alireza Farahani National University 3678 Aero Court San Diego, CA 92123 {pdey, mamin,

More information

VIA Apollo P4X400 Chipset. Enabling Total System Performance

VIA Apollo P4X400 Chipset. Enabling Total System Performance VIA Apollo P4X400 Chipset Enabling Total System Performance High performance DDR400 chipset platform for the Intel Pentium 4 processor Page 1 Introduction The VIA Apollo P4X400 is a core logic chipset

More information

Contents: Computer definition Computer literacy Computer components Computer categories Computer usage. Tablet PC

Contents: Computer definition Computer literacy Computer components Computer categories Computer usage. Tablet PC bas design Prepared by: Assoc. Prof. Dr Bahaman Abu Samah Department of Professional Development and Continuing Education Faculty of Educational Studies Universiti Putra Malaysia Serdang Contents: Computer

More information

Determining Differences between Two Sets of Polygons

Determining Differences between Two Sets of Polygons Determining Differences between Two Sets of Polygons MATEJ GOMBOŠI, BORUT ŽALIK Institute for Computer Science Faculty of Electrical Engineering and Computer Science, University of Maribor Smetanova 7,

More information

EEC-682/782 Computer Networks I

EEC-682/782 Computer Networks I EEC-682/782 Computer Networks I Lecture 16 Wenbing Zhao w.zhao1@csuohio.edu http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at

More information

COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR

COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR By Prof. Anand N. Gharu (Assistant Professor) PVGCOE Computer Dept.. 22nd Jan 2018 CONTENTS :- 1. Role of lexical analysis 2.

More information

LabVIEW ON SMALL TARGET

LabVIEW ON SMALL TARGET LabVIEW ON SMALL TARGET Silviu FOLEA *, Marius GHERCIOIU **, Horia HEDESIU *, Crisan GRATIAN **, Ciprian CETERAS **, Ioan MONOSES ** * Technical University of Cluj-Napoca, ** National Instruments USA,

More information

Lecture 1 Introduction Pervasive & Mobile Computing MIT 6.883

Lecture 1 Introduction Pervasive & Mobile Computing MIT 6.883 Lecture 1 Introduction Pervasive & Mobile Computing MIT 6.883 Larry Rudolph (MIT) 1 Pervasive Computing MIT 6.883 Spring 2007 Larry Rudolph Course Structure Overview Class is hands-on but also lectures

More information

Unlocking the Potential of Your Microcontroller

Unlocking the Potential of Your Microcontroller Unlocking the Potential of Your Microcontroller Ethan Wu Storming Robots, Branchburg NJ, USA Abstract. Many useful hardware features of advanced microcontrollers are often not utilized to their fullest

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

Top down vs. bottom up parsing

Top down vs. bottom up parsing Parsing A grammar describes the strings that are syntactically legal A recogniser simply accepts or rejects strings A generator produces sentences in the language described by the grammar A parser constructs

More information

AT-501 Cortex-A5 System On Module Product Brief

AT-501 Cortex-A5 System On Module Product Brief AT-501 Cortex-A5 System On Module Product Brief 1. Scope The following document provides a brief description of the AT-501 System on Module (SOM) its features and ordering options. For more details please

More information

Lexical Scanning COMP360

Lexical Scanning COMP360 Lexical Scanning COMP360 Captain, we re being scanned. Spock Reading Read sections 2.1 3.2 in the textbook Regular Expression and FSA Assignment A new assignment has been posted on Blackboard It is due

More information

Client-side SOAP in S

Client-side SOAP in S Duncan Temple Lang, University of California at Davis Table of Contents Abstract... 1 Converting the S values to SOAP... 3 The Result... 3 Errors... 4 Examples... 4 Service Declarations... 5 Other SOAP

More information

Just-In-Time Compilation

Just-In-Time Compilation Just-In-Time Compilation Thiemo Bucciarelli Institute for Software Engineering and Programming Languages 18. Januar 2016 T. Bucciarelli 18. Januar 2016 1/25 Agenda Definitions Just-In-Time Compilation

More information

CSCI312 Principles of Programming Languages!

CSCI312 Principles of Programming Languages! CSCI312 Principles of Programming Languages!! Chapter 3 Regular Expression and Lexer Xu Liu Recap! Copyright 2006 The McGraw-Hill Companies, Inc. Clite: Lexical Syntax! Input: a stream of characters from

More information

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table COMPILER CONSTRUCTION Lab 2 Symbol table LABS Lab 3 LR parsing and abstract syntax tree construction using ''bison' Lab 4 Semantic analysis (type checking) PHASES OF A COMPILER Source Program Lab 2 Symtab

More information

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication Dr Markus Hagenbuchner markus@uow.edu.au CSCI319 SIM Distributed Systems Chapter 4 - Communication CSCI319 Chapter 4 Page: 1 Communication Lecture notes based on the textbook by Tannenbaum Study objectives:

More information

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id XML Processing & Web Services Husni Husni.trunojoyo.ac.id Based on Randy Connolly and Ricardo Hoar Fundamentals of Web Development, Pearson Education, 2015 Objectives 1 XML Overview 2 XML Processing 3

More information

Software development from a bird's eye view Ulrich Kloidt, Senior Application Engineer, Altium Europe GmbH

Software development from a bird's eye view Ulrich Kloidt, Senior Application Engineer, Altium Europe GmbH Software development from a bird's eye view Ulrich Kloidt, Senior Application Engineer, Altium Europe GmbH A modular software application can help designers focus on the essential part of their task -

More information

Smart Transducer Networks

Smart Transducer Networks Smart Transducer Networks Wilfried Elmenreich Bernhard Huber Implementation Requirements 2 Definition A smart transducer is the integration of an analog or digital sensor or actuator element, a processing

More information

Lesson 3 SOAP message structure

Lesson 3 SOAP message structure Lesson 3 SOAP message structure Service Oriented Architectures Security Module 1 - Basic technologies Unit 2 SOAP Ernesto Damiani Università di Milano SOAP structure (1) SOAP message = SOAP envelope Envelope

More information

Embest SOC8200 Single Board Computer

Embest SOC8200 Single Board Computer Embest SOC8200 Single Board Computer TI's AM3517 ARM Cortex A8 Microprocessors 600MHz ARM Cortex-A8 Core NEON SIMD Coprocessor POWERVR SGX Graphics Accelerator (AM3517 only) 16KB I-Cache, 16KB D-Cache,

More information

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,,

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,, CMPSCI 601: Recall From Last Time Lecture 5 Definition: A context-free grammar (CFG) is a 4- tuple, variables = nonterminals, terminals, rules = productions,,, are all finite. 1 ( ) $ Pumping Lemma for

More information

MIDTERM EXAM (Solutions)

MIDTERM EXAM (Solutions) MIDTERM EXAM (Solutions) Total Score: 100, Max. Score: 83, Min. Score: 26, Avg. Score: 57.3 1. (10 pts.) List all major categories of programming languages, outline their definitive characteristics and

More information

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays

A First Book of ANSI C Fourth Edition. Chapter 8 Arrays A First Book of ANSI C Fourth Edition Chapter 8 Arrays Objectives One-Dimensional Arrays Array Initialization Arrays as Function Arguments Case Study: Computing Averages and Standard Deviations Two-Dimensional

More information

CS 415 Midterm Exam Fall 2003

CS 415 Midterm Exam Fall 2003 CS 415 Midterm Exam Fall 2003 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you can to

More information

Introduction to Microcontrollers

Introduction to Microcontrollers Introduction to Microcontrollers June 2017 Scott A. Theis W2LW Rev 5 ( 0 8 / 0 2 / 2 0 1 7 ) What s it all about How to get started What are some of the common controller options General introduction to

More information

CS143 Handout 20 Summer 2011 July 15 th, 2011 CS143 Practice Midterm and Solution

CS143 Handout 20 Summer 2011 July 15 th, 2011 CS143 Practice Midterm and Solution CS143 Handout 20 Summer 2011 July 15 th, 2011 CS143 Practice Midterm and Solution Exam Facts Format Wednesday, July 20 th from 11:00 a.m. 1:00 p.m. in Gates B01 The exam is designed to take roughly 90

More information

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University Talen en Compilers 2017-2018, period 2 Jurriaan Hage Department of Information and Computing Sciences Utrecht University November 13, 2017 1. Introduction 1-1 This lecture Introduction Course overview

More information

Precise Continuous Non-Intrusive Measurement-Based Execution Time Estimation. Boris Dreyer, Christian Hochberger, Simon Wegener, Alexander Weiss

Precise Continuous Non-Intrusive Measurement-Based Execution Time Estimation. Boris Dreyer, Christian Hochberger, Simon Wegener, Alexander Weiss Precise Continuous Non-Intrusive Measurement-Based Execution Time Estimation Boris Dreyer, Christian Hochberger, Simon Wegener, Alexander Weiss This work was funded within the project CONIRAS by the German

More information

Chapter 02. Authors: John Hennessy & David Patterson. Copyright 2011, Elsevier Inc. All rights Reserved. 1

Chapter 02. Authors: John Hennessy & David Patterson. Copyright 2011, Elsevier Inc. All rights Reserved. 1 Chapter 02 Authors: John Hennessy & David Patterson Copyright 2011, Elsevier Inc. All rights Reserved. 1 Figure 2.1 The levels in a typical memory hierarchy in a server computer shown on top (a) and in

More information

M359 Block5 - Lecture12 Eng/ Waleed Omar

M359 Block5 - Lecture12 Eng/ Waleed Omar Documents and markup languages The term XML stands for extensible Markup Language. Used to label the different parts of documents. Labeling helps in: Displaying the documents in a formatted way Querying

More information

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 INSTRUCTIONS

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 INSTRUCTIONS RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 STUDENT ID: INSTRUCTIONS Please write your student ID on this page. Do not write it or your name

More information

1.0 The System Architecture and Design Features

1.0 The System Architecture and Design Features 1.0 The System Architecture and Design Features Figure 1. System Architecture The overall guiding design philosophy behind the Data Capture and Logging System Architecture is to have a clean design that

More information

Overview. 1/13/ Preliminary Product Brief

Overview. 1/13/ Preliminary Product Brief aj--102 Diispllay Evalluattiion Kiitt aj--102dek Overview The ajile aj-102dek is a compact and versatile display evaluation kit for the aj-102 SOC that directly executes both Java bytecode instructions,

More information

Design and Development of an Asynchronous Serial Communication Learning Media to Visualize the Bit Data

Design and Development of an Asynchronous Serial Communication Learning Media to Visualize the Bit Data Journal of Physics: Conference Series PAPER OPEN ACCESS Design and Development of an Asynchronous Serial Communication Learning Media to Visualize the Bit Data To cite this article: D Hariyanto et al 2018

More information

Acceleration Techniques for XML Processors

Acceleration Techniques for XML Processors Acceleration Techniques for XML Processors Biswadeep Nag Staff Engineer Performance Engineering XMLConference 2004 XML is Everywhere Configuration files (web.xml, TurboTax) Office documents (StarOffice,

More information

MDR-1 Mobile Document Reader

MDR-1 Mobile Document Reader MDR-1 Mobile Document Reader SPC_MDR-1 1/7 Mobile Document Reader MDR-1 Security Printing Consulting AG The new MDR-1 document reader fulfill the needs for fast and reliable reading, verification and authentication

More information

Getting to know the Arduino IDE

Getting to know the Arduino IDE Getting to know the Arduino IDE I ve heard about Arduino, what the heck is it? Arduino is a development environment Combination of hardware and software Hardware based on Atmel AVR processors Software

More information

Introduction to Parsing. Lecture 8

Introduction to Parsing. Lecture 8 Introduction to Parsing Lecture 8 Adapted from slides by G. Necula Outline Limitations of regular languages Parser overview Context-free grammars (CFG s) Derivations Languages and Automata Formal languages

More information

RDGL Reference Manual

RDGL Reference Manual RDGL Reference Manual COMS W4115 Programming Languages and Translators Professor Stephen A. Edwards Summer 2007(CVN) Navid Azimi (na2258) nazimi@microsoft.com Contents Introduction... 3 Purpose... 3 Goals...

More information

Implementation of Sequential Function Charts with microcontrollers

Implementation of Sequential Function Charts with microcontrollers Implementation of Sequential Function Charts with microcontrollers N. A. Ivanescu, Th. Borangiu, S. Brotac and A. Dogar University Politehnica, Bucharest, Romania Abstract The paper describes an efficient

More information

Pushdown Automata. A PDA is an FA together with a stack.

Pushdown Automata. A PDA is an FA together with a stack. Pushdown Automata A PDA is an FA together with a stack. Stacks A stack stores information on the last-in firstout principle. Items are added on top by pushing; items are removed from the top by popping.

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC The Business Objective Automated Business Collaboration Facilitating exchange of information

More information

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; }

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; } Ex: The difference between Compiler and Interpreter The interpreter actually carries out the computations specified in the source program. In other words, the output of a compiler is a program, whereas

More information

Syntax Analysis, VII One more LR(1) example, plus some more stuff. Comp 412 COMP 412 FALL Chapter 3 in EaC2e. target code.

Syntax Analysis, VII One more LR(1) example, plus some more stuff. Comp 412 COMP 412 FALL Chapter 3 in EaC2e. target code. COMP 412 FALL 2017 Syntax Analysis, VII One more LR(1) example, plus some more stuff Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon,

More information

CSEP 501 Compilers. Languages, Automata, Regular Expressions & Scanners Hal Perkins Winter /8/ Hal Perkins & UW CSE B-1

CSEP 501 Compilers. Languages, Automata, Regular Expressions & Scanners Hal Perkins Winter /8/ Hal Perkins & UW CSE B-1 CSEP 501 Compilers Languages, Automata, Regular Expressions & Scanners Hal Perkins Winter 2008 1/8/2008 2002-08 Hal Perkins & UW CSE B-1 Agenda Basic concepts of formal grammars (review) Regular expressions

More information

Lexing, Parsing. Laure Gonnord sept Master 1, ENS de Lyon

Lexing, Parsing. Laure Gonnord  sept Master 1, ENS de Lyon Lexing, Parsing Laure Gonnord http://laure.gonnord.org/pro/teaching/capm1.html Laure.Gonnord@ens-lyon.fr Master 1, ENS de Lyon sept 2017 Analysis Phase source code lexical analysis sequence of lexems (tokens)

More information

Module 1. Introduction. Version 2 EE IIT, Kharagpur 1

Module 1. Introduction. Version 2 EE IIT, Kharagpur 1 Module 1 Introduction Version 2 EE IIT, Kharagpur 1 Lesson 3 Embedded Systems Components Part I Version 2 EE IIT, Kharagpur 2 Structural Layout with Example Instructional Objectives After going through

More information

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info. A FPGA based development platform as part of an EDK is available to target intelop provided IPs or other standard IPs. The platform with Virtex-4 FX12 Evaluation Kit provides a complete hardware environment

More information

Functional Specification

Functional Specification EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH ORGANISATION EUROPEENE POUR LA RECHERCHE NUCLEAIRE White Rabbit Switch Functional Specification Version: 0.c Date: September 6 of 2010. Author: J. Gabriel Ramírez

More information

EVALUATION OF WEB SERVICES IMPLEMENTATION FOR ARM-BASED EMBEDDED SYSTEM

EVALUATION OF WEB SERVICES IMPLEMENTATION FOR ARM-BASED EMBEDDED SYSTEM EVALUATION OF WEB SERVICES IMPLEMENTATION FOR ARM-BASED EMBEDDED SYSTEM Mitko Petrov Shopov, Hristo Matev Matev, Grisha Valentinov Spasov Department of Computer Systems and Technologies, Technical University

More information

STM32 Cortex-M3 STM32F STM32L STM32W

STM32 Cortex-M3 STM32F STM32L STM32W STM32 Cortex-M3 STM32F STM32L STM32W 01 01 STM32 Cortex-M3 introduction to family 1/2 STM32F combine high performance with first-class peripherals and lowpower, low-voltage operation. They offer the maximum

More information

Parsing. source code. while (k<=n) {sum = sum+k; k=k+1;}

Parsing. source code. while (k<=n) {sum = sum+k; k=k+1;} Compiler Construction Grammars Parsing source code scanner tokens regular expressions lexical analysis Lennart Andersson parser context free grammar Revision 2012 01 23 2012 parse tree AST builder (implicit)

More information

Smart Transducer Networks. Embedded Systems Engineering Armin Wasicek

Smart Transducer Networks. Embedded Systems Engineering Armin Wasicek Smart Transducer Networks Embedded Systems Engineering Armin Wasicek Overview Motivation & Design Principles TTP/A Fieldbus Protocol Implementation Requirements Smart Transducer Interface Standard Conclusion

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information