Konstantin Läufer | Loyola University Chicago (original) (raw)
Papers by Konstantin Läufer
Electronic Notes in Theoretical Computer Science, 1998
This paper describes compositional semantics (operational, denotational and logical) for a proces... more This paper describes compositional semantics (operational, denotational and logical) for a process algebra enhanced with input/output actions and preemption combinators, in the presence of fairness. The context of this paper is Triveni, a process-algebra-based design methodology that combines threads and events in the context of object-oriented programming [CJJ + 98a, CJJ + 98b]. Triveni has been realized as an API, JavaTriveni [CJJ + 98a], in the Java programming language. A case study in JavaTriveni is described in [CJJ + 98b], involving the re-implementation of a piece of telecommunication software -the Carrier Group Alarms (CGA) software of Lucent Technologies' 5ESS switch.
This paper describes the architecture and implementation of a constraint-based framework for rapi... more This paper describes the architecture and implementation of a constraint-based framework for rapid prototyping of distributed applications such as virtual simulations, collaborations and games. Our framework integrates three components based on (concurrent) constraint programming ideas: (1) Hybrid cc, a (concurrent) constraint modeling language for hybrid systems, (2) Sisl, a (discrete) timed constraint language for describing interactive services with flexible user interfaces and (3) Triveni, a process-algebraic language for concurrent programming. The framework is realized as a collection of tools implemented in Java. The utility of the ideas are illustrated by sketching the implementations of simple distributed applications.
ACM Sigsoft Software Engineering Notes, 2000
Constraint-based languages can express in a concise way the complex logic of a new generation of ... more Constraint-based languages can express in a concise way the complex logic of a new generation of interactive services for applications such as banking or stock trading, that must support multiple types of interfaces for accessing the same data. These include automatic speech-recognition interfaces where inputs may be provided in any order by users of the service. We study in this paper how to systematically test event-driven applications developed using such languages. We show how such applications can be tested automatically, without the need for any manually-written test cases, and efficiently, by taking advantage of their capability of taking unordered sets of events as inputs.
Combining SOA and BPM Technologies for Cross-System Process Automation
... Combining SOA and BPM Technologies for Cross-System Process Automation.Sebastian Herr John Sh... more ... Combining SOA and BPM Technologies for Cross-System Process Automation.Sebastian Herr John Shafaee Konstantin Läufer, Loyola University Chicago George K. Thiruvathukal, Loyola University Chicago Guido Wirtz. Abstract. ...
Computing in Science and Engineering, 2006
This is the second article in an occasional series on Web application development. The first inst... more This is the second article in an occasional series on Web application development. The first installment, published in the September/October 2005 issue ("A Hike through Post-EJB J2EE Web Application Architecture," vol. 7, no. 5, pp. 80-88), focused on the upper tiers that comprise the user interface; here, the author focuses on the lower tiers. He started with a blueprint of a typical post-Enterprise JavaBeans (EJB) Java 2 Enterprise Edition (J2EE) Web application architecture. Several functional and nonfunctional requirements drive such architectures, and they've become relatively standard. Within this architecture, we looked at the core functionality of our running example - linear regression over a persistent set of points - and then hiked our way upward through successive user interface layers, including dynamic behavior, presentation, internationalization, navigation, layout, and visual styles. During the hike, we looked at typical technologies for each layer. In this article, we descend into our application's invisible innards. Specifically, the author examines business service objects, object-relational mappings, lightweight containers (for painlessly connecting the various pieces), security, and concurrency. Our ultimate goal is to facilitate the development of reliable, flexible, and efficient server-based Web applications
Computing in Science and Engineering, 2005
Since the mid-nineties, server-based Web applications have emerged as a convenient way to provide... more Since the mid-nineties, server-based Web applications have emerged as a convenient way to provide functionality to a user audience without any specific software or system requirements except the need for a reasonably up-to-date Web browser. The tricky integration, installation, and configuration tasks are under the control of an expert on the server side. These advantages apply to both the general public and small research teams. Typical Web applications have browser-based user interfaces for one or more user roles and might keep some information in persistent storage, such as a relational database. Since the early days of common gateway interface (CGI) scripting, technologies for developing Web applications have evolved by leaps and bounds to address growing expectations with respect to reliability, maintainability, extensibility, performance, scalability, and other goals. In this article - the first in a planned series about Web application development - we take an exploratory hike through the architectural layers of a Web application built with state-of-the-art, widely used technologies. The paper focus on the upper layers that provide the application's user interface. By no means intended as a complete treatise on Web application development, this article is an overview meant to spark your interest and provide a starting Doint for further exploration.
Computing in Science and Engineering, 2007
By incorporating automated component, integration, and acceptance testing into the various tiers ... more By incorporating automated component, integration, and acceptance testing into the various tiers of a lightweight lava 2 Enterprise Edition (J2EE) Web application architecture, developers can shorten the development cycle and increase the quality of their work
Computing in Science and Engineering, 2006
Testing is an important part of application development hardware engineers, in particular, have a... more Testing is an important part of application development hardware engineers, in particular, have a long established history of testing for the obvious reason that it's awfully hard to rebuild a microprocessor every time a bug pops up in the design stage-not to mention the enormous headaches such bugs generate on the software side. In this installment of Scientific Programming, we'll discuss the role of testing in the software development process and examine ways to leverage automated unit testing in your projects
Computing in Science and Engineering, 2004
This paper looks at Plone, one of the best content management systems. Plone is distributed under... more This paper looks at Plone, one of the best content management systems. Plone is distributed under a free open-source license: the cost of getting started is only limited to the time you have available to set up the software on a server. Plone is written in Python and uses the Zope application server infrastructure; it runs on most modern operating systems. Plone can be customized for the maintenance of content - entirely over the Web.
The Computer Journal, 2000
In Java, an interface specifies public abstract methods and associated public constants. Conforma... more In Java, an interface specifies public abstract methods and associated public constants. Conformance of a class to an interface is by name. We propose to allow structural conformance to interfaces: Any class or interface that declares or implements each method in a target interface conforms structurally to the interface, and any expression of the source class or interface type can be used where a value of the target interface type is expected. We argue that structural conformance results in a major gain in flexibility in situations that require retroactive abstraction over types.
We describe Triveni, a framework and API for integrating threads and events. The design of Triven... more We describe Triveni, a framework and API for integrating threads and events. The design of Triveni is based on an algebra, including preemption combinators, of processes. Triveni is compatible with existing threads standards, such as Pthreads and Java threads, and with the event models structured on the Observer pattern. We describe the software architecture and algorithms underlying a concrete implementation of Triveni in Java. This environment includes specification-based testing of safety properties.
International Journal of Speech Technology, 2000
Modern interactive services such as information and e-commerce services are becoming increasingly... more Modern interactive services such as information and e-commerce services are becoming increasingly more flexible in the types of user interfaces they support. These interfaces incorporate automatic speech recognition and natural language understanding, and include graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms. To what extent can the user interface software be decoupled from the service logic software (the code that defines the essential function of a service)? Decoupling of user interface from service logic directly impacts the flexibility of services, or, how easy they are to modify and extend.
We describe the interaction of objects and concurrency in the design of Triveni, a framework for ... more We describe the interaction of objects and concurrency in the design of Triveni, a framework for concurrent programming with threads and events. Triveni has been realized as JavaTriveni, a collection of tools for the Java programming language. We describe our experiences in JavaTriveni with an example from telecommunication.
Modern interactive services such as information and e-commerce services are becoming increasingly... more Modern interactive services such as information and e-commerce services are becoming increasingly more flexible in the types of user interfaces they support. These interfaces incorporate automatic speech recognition and natural language understanding, and include graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms. To what extent can the user interface software be decoupled from the service logic software (the code that defines the essential function of a service)? Decoupling of user interface from service logic directly impacts the flexibility of services, or, how easy they are to modify and extend.
Electronic Notes in Theoretical Computer Science, 1998
This paper describes compositional semantics (operational, denotational and logical) for a proces... more This paper describes compositional semantics (operational, denotational and logical) for a process algebra enhanced with input/output actions and preemption combinators, in the presence of fairness. The context of this paper is Triveni, a process-algebra-based design methodology that combines threads and events in the context of object-oriented programming [CJJ + 98a, CJJ + 98b]. Triveni has been realized as an API, JavaTriveni [CJJ + 98a], in the Java programming language. A case study in JavaTriveni is described in [CJJ + 98b], involving the re-implementation of a piece of telecommunication software -the Carrier Group Alarms (CGA) software of Lucent Technologies' 5ESS switch.
This paper describes the architecture and implementation of a constraint-based framework for rapi... more This paper describes the architecture and implementation of a constraint-based framework for rapid prototyping of distributed applications such as virtual simulations, collaborations and games. Our framework integrates three components based on (concurrent) constraint programming ideas: (1) Hybrid cc, a (concurrent) constraint modeling language for hybrid systems, (2) Sisl, a (discrete) timed constraint language for describing interactive services with flexible user interfaces and (3) Triveni, a process-algebraic language for concurrent programming. The framework is realized as a collection of tools implemented in Java. The utility of the ideas are illustrated by sketching the implementations of simple distributed applications.
ACM Sigsoft Software Engineering Notes, 2000
Constraint-based languages can express in a concise way the complex logic of a new generation of ... more Constraint-based languages can express in a concise way the complex logic of a new generation of interactive services for applications such as banking or stock trading, that must support multiple types of interfaces for accessing the same data. These include automatic speech-recognition interfaces where inputs may be provided in any order by users of the service. We study in this paper how to systematically test event-driven applications developed using such languages. We show how such applications can be tested automatically, without the need for any manually-written test cases, and efficiently, by taking advantage of their capability of taking unordered sets of events as inputs.
Combining SOA and BPM Technologies for Cross-System Process Automation
... Combining SOA and BPM Technologies for Cross-System Process Automation.Sebastian Herr John Sh... more ... Combining SOA and BPM Technologies for Cross-System Process Automation.Sebastian Herr John Shafaee Konstantin Läufer, Loyola University Chicago George K. Thiruvathukal, Loyola University Chicago Guido Wirtz. Abstract. ...
Computing in Science and Engineering, 2006
This is the second article in an occasional series on Web application development. The first inst... more This is the second article in an occasional series on Web application development. The first installment, published in the September/October 2005 issue ("A Hike through Post-EJB J2EE Web Application Architecture," vol. 7, no. 5, pp. 80-88), focused on the upper tiers that comprise the user interface; here, the author focuses on the lower tiers. He started with a blueprint of a typical post-Enterprise JavaBeans (EJB) Java 2 Enterprise Edition (J2EE) Web application architecture. Several functional and nonfunctional requirements drive such architectures, and they've become relatively standard. Within this architecture, we looked at the core functionality of our running example - linear regression over a persistent set of points - and then hiked our way upward through successive user interface layers, including dynamic behavior, presentation, internationalization, navigation, layout, and visual styles. During the hike, we looked at typical technologies for each layer. In this article, we descend into our application's invisible innards. Specifically, the author examines business service objects, object-relational mappings, lightweight containers (for painlessly connecting the various pieces), security, and concurrency. Our ultimate goal is to facilitate the development of reliable, flexible, and efficient server-based Web applications
Computing in Science and Engineering, 2005
Since the mid-nineties, server-based Web applications have emerged as a convenient way to provide... more Since the mid-nineties, server-based Web applications have emerged as a convenient way to provide functionality to a user audience without any specific software or system requirements except the need for a reasonably up-to-date Web browser. The tricky integration, installation, and configuration tasks are under the control of an expert on the server side. These advantages apply to both the general public and small research teams. Typical Web applications have browser-based user interfaces for one or more user roles and might keep some information in persistent storage, such as a relational database. Since the early days of common gateway interface (CGI) scripting, technologies for developing Web applications have evolved by leaps and bounds to address growing expectations with respect to reliability, maintainability, extensibility, performance, scalability, and other goals. In this article - the first in a planned series about Web application development - we take an exploratory hike through the architectural layers of a Web application built with state-of-the-art, widely used technologies. The paper focus on the upper layers that provide the application's user interface. By no means intended as a complete treatise on Web application development, this article is an overview meant to spark your interest and provide a starting Doint for further exploration.
Computing in Science and Engineering, 2007
By incorporating automated component, integration, and acceptance testing into the various tiers ... more By incorporating automated component, integration, and acceptance testing into the various tiers of a lightweight lava 2 Enterprise Edition (J2EE) Web application architecture, developers can shorten the development cycle and increase the quality of their work
Computing in Science and Engineering, 2006
Testing is an important part of application development hardware engineers, in particular, have a... more Testing is an important part of application development hardware engineers, in particular, have a long established history of testing for the obvious reason that it's awfully hard to rebuild a microprocessor every time a bug pops up in the design stage-not to mention the enormous headaches such bugs generate on the software side. In this installment of Scientific Programming, we'll discuss the role of testing in the software development process and examine ways to leverage automated unit testing in your projects
Computing in Science and Engineering, 2004
This paper looks at Plone, one of the best content management systems. Plone is distributed under... more This paper looks at Plone, one of the best content management systems. Plone is distributed under a free open-source license: the cost of getting started is only limited to the time you have available to set up the software on a server. Plone is written in Python and uses the Zope application server infrastructure; it runs on most modern operating systems. Plone can be customized for the maintenance of content - entirely over the Web.
The Computer Journal, 2000
In Java, an interface specifies public abstract methods and associated public constants. Conforma... more In Java, an interface specifies public abstract methods and associated public constants. Conformance of a class to an interface is by name. We propose to allow structural conformance to interfaces: Any class or interface that declares or implements each method in a target interface conforms structurally to the interface, and any expression of the source class or interface type can be used where a value of the target interface type is expected. We argue that structural conformance results in a major gain in flexibility in situations that require retroactive abstraction over types.
We describe Triveni, a framework and API for integrating threads and events. The design of Triven... more We describe Triveni, a framework and API for integrating threads and events. The design of Triveni is based on an algebra, including preemption combinators, of processes. Triveni is compatible with existing threads standards, such as Pthreads and Java threads, and with the event models structured on the Observer pattern. We describe the software architecture and algorithms underlying a concrete implementation of Triveni in Java. This environment includes specification-based testing of safety properties.
International Journal of Speech Technology, 2000
Modern interactive services such as information and e-commerce services are becoming increasingly... more Modern interactive services such as information and e-commerce services are becoming increasingly more flexible in the types of user interfaces they support. These interfaces incorporate automatic speech recognition and natural language understanding, and include graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms. To what extent can the user interface software be decoupled from the service logic software (the code that defines the essential function of a service)? Decoupling of user interface from service logic directly impacts the flexibility of services, or, how easy they are to modify and extend.
We describe the interaction of objects and concurrency in the design of Triveni, a framework for ... more We describe the interaction of objects and concurrency in the design of Triveni, a framework for concurrent programming with threads and events. Triveni has been realized as JavaTriveni, a collection of tools for the Java programming language. We describe our experiences in JavaTriveni with an example from telecommunication.
Modern interactive services such as information and e-commerce services are becoming increasingly... more Modern interactive services such as information and e-commerce services are becoming increasingly more flexible in the types of user interfaces they support. These interfaces incorporate automatic speech recognition and natural language understanding, and include graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms. To what extent can the user interface software be decoupled from the service logic software (the code that defines the essential function of a service)? Decoupling of user interface from service logic directly impacts the flexibility of services, or, how easy they are to modify and extend.