Greg Lavender

Greg Lavender

Greater Seattle Area
15K followers 500+ connections

About

Greg Lavender is Executive Vice President, Chief Technology Officer (CTO) and General…

Articles by Greg

Activity

Join now to see all activity

Experience

  • Intel Corporation Graphic

    Intel Corporation

    United States

  • -

  • -

  • -

  • -

  • -

    Palo Alto, CA

  • -

  • -

    Palo Alto and New York City

  • -

    San Francisco Bay Area

  • -

    San Jose, CA

  • -

    Menlo Park, CA

  • -

    Menlo Park, CA

  • -

  • -

  • -

    Austin, Texas Area

  • -

  • -

    Austin, Texas Area

  • -

  • -

  • -

  • -

  • -

    Reston, Virginia, United States

  • -

Education

  • Virginia Tech Graphic

    Virginia Tech

    -

    Activities and Societies: American Mathematical Society, IEEE Computer Society, Association for Computing Machinery

    Dissertation: Polymorphic Types for Constructing Concurrent Objects and Layered Communication Protocols, 1993
    Outstanding Doctoral Student Award, 1993
    Outstanding Young Alumnus Award, 2003
    Distinguished Alumnus Award, 2010
    Academy of Engineering Excellence, 2014

  • -

    Activities and Societies: President of Student ACM Chapter

    Scholarly Graduate Study Award, 1988

  • -

    Activities and Societies: Phi Beta Kappa, Pi Mu Epsilon Honorary Mathematics Society

Volunteer Experience

Publications

  • Intel Innovation 2022 CTO Keynote

    Intel Corporation

    Intel's premier annual developer conference

    See publication
  • Lifting Transformational Models of Product Lines

    Lectures Notes in Computer Science (LNCS) Vol. 5063

    Model driven development (MDD) of software product lines (SPLs) merges two increasing important paradigms that synthesize programs by transformation. MDD creates programs by transforming models, and SPLs elaborate programs by applying transformations called features. In this paper, we present the design and implementation of a transformational model of a product line of scalar vector graphics and JavaScript applications. We explain how we simplified our implementation by lifting selected…

    Model driven development (MDD) of software product lines (SPLs) merges two increasing important paradigms that synthesize programs by transformation. MDD creates programs by transforming models, and SPLs elaborate programs by applying transformations called features. In this paper, we present the design and implementation of a transformational model of a product line of scalar vector graphics and JavaScript applications. We explain how we simplified our implementation by lifting selected features and their compositions from our original product line (whose implementations were complex) to features and their compositions of another product line (whose specifications were simple). We used operators to map higher-level features and their compositions to their lower-level counterparts. Doing so exposed commuting relationships among
    feature compositions in

    Other authors
    • Don Batory
    • Greg Freeman
    See publication
  • Langiappe: Multi-* Programming Made Simple

    International Conference on Computer Communications and Networks, IEEE Press

    In this paper we describe the design of Lagniappe, a programming environment that simplifies the design of portable, high throughput applications on multi-* architectures.

    Other authors
    • Harrick Vin
    • Taylor Riche
    See publication
  • Method an Apparatus for Data Synchronization between Stores

    UK Patent GB2397410

    Information, e.g., password or other access credential information is synchronized, amongst directory spaces or repositories, that employ dissimilar protective transformations, e.g., hashes, encryption, etc. In some embodiments, directory spaces are embodied as directory servers, services or similar components of computer operating systems. The mechanism includes detecting changes to information encoded in a first information store and invalidating a corresponding entry of a second information…

    Information, e.g., password or other access credential information is synchronized, amongst directory spaces or repositories, that employ dissimilar protective transformations, e.g., hashes, encryption, etc. In some embodiments, directory spaces are embodied as directory servers, services or similar components of computer operating systems. The mechanism includes detecting changes to information encoded in a first information store and invalidating a corresponding entry of a second information store. The invalidating triggers information synchronization upon a subsequent attempt to authenticate against this entry in the second store. The detection may be administered without reversing a protective transform of the entries.

    Other authors
    See publication
  • Method and Apparatus for Data Synchronization

    UK Patent GB2397409

    Information, e.g., password or other access credential information, may be synchronized amongst replicated directory spaces or repositories. In some embodiments, directory spaces are embodied as directory servers, services or similar components of computer operating systems, including LDAP, UDDI, Active Directory or other standardized or proprietary directory environments. In one embodiment in accordance with the present invention, a method includes invalidating an entry of at least one replica…

    Information, e.g., password or other access credential information, may be synchronized amongst replicated directory spaces or repositories. In some embodiments, directory spaces are embodied as directory servers, services or similar components of computer operating systems, including LDAP, UDDI, Active Directory or other standardized or proprietary directory environments. In one embodiment in accordance with the present invention, a method includes invalidating an entry of at least one replica store. The invalidation of the entry of the replica store triggers information synchronization of a corresponding invalidated entry of a master store to a corresponding entry of an authoritative store on a next attempt to authenticate against the invalidated entry of the replica store.; The method may include propagating information of the synchronized master store entry to at least one other replica store.

    Other authors
    See publication
  • Internet Directory Services Using the Lightweight Directory Access Protocol

    Handbook of Practical Internet Computing, CRC Press

    The paper surveys the history, development and usage of directory services based on the Lightweight Directory Access Protocol (LDAP). We present a summary of the naming model, the schema model, the principal service models, and the main protocol interactions in terms of a C language application programming
    interface.

    Other authors
    See publication
  • Adaptive Configuration: an Object Structural Pattern for Adaptive Applications

    3rd Annual Pattern Languages of Programming Conference

    The Adaptive Configuration pattern described in this paper decouples the compositional structure of modules, which perform transformations on a data stream, from the algorithms used to implement these modules. Both may be changed dynamically and independently, to allow an implementation to adapt its functionality and resource requirements to the run-time environment. This pattern distinguishes itself from purely configurable pipeline patterns by addressing the tension
    between modularity and…

    The Adaptive Configuration pattern described in this paper decouples the compositional structure of modules, which perform transformations on a data stream, from the algorithms used to implement these modules. Both may be changed dynamically and independently, to allow an implementation to adapt its functionality and resource requirements to the run-time environment. This pattern distinguishes itself from purely configurable pipeline patterns by addressing the tension
    between modularity and performance.

    Other authors
    See publication
  • An Adaptive Framework for Developing Multi-Media Software Components

    Communications of the ACM

    Recent improvements in microprocessor performance have made possible the migration of continuous media processing from specialized hardware, such as decompression and digital signal processing boards, to software. The extensibility and configurability of software libraries allows multimedia applications to access a wider range of multimedia objects, stored in a variety of compressed formats, and to employ an extensible set of tools for processing these objects. Furthermore,
    configurable…

    Recent improvements in microprocessor performance have made possible the migration of continuous media processing from specialized hardware, such as decompression and digital signal processing boards, to software. The extensibility and configurability of software libraries allows multimedia applications to access a wider range of multimedia objects, stored in a variety of compressed formats, and to employ an extensible set of tools for processing these objects. Furthermore,
    configurable software libraries enable applications to take advantage of new audio and video compression standards as they emerge, rather than becoming obsolete.

    Other authors
    See publication
  • Presentation Processing Support for Adaptive Multimedia Applications

    SPIE'96 Multimedia Computing and Networking Conference

    This paper describes the design of and implementation of Presentation Processing Engines (PPEs) that provide flexible control over QoS to manage heterogeneity in networks, end-systems and compression formats. Development of PPEs is facilitated by a framework that provides the modular architecture, data types, and transformations common to most codecs, filters, transcoders etc. to facilitate the implementation of emerging compression standards and their integration into media processing…

    This paper describes the design of and implementation of Presentation Processing Engines (PPEs) that provide flexible control over QoS to manage heterogeneity in networks, end-systems and compression formats. Development of PPEs is facilitated by a framework that provides the modular architecture, data types, and transformations common to most codecs, filters, transcoders etc. to facilitate the implementation of emerging compression standards and their integration into media processing applications. By allowing fine-grained composition of compression and image processing modules, the framework facilitates the development of extensible presentation processing engines that can be dynamically configured to adapt to changes in resource availability and user preferences.

    Other authors
    See publication
  • Active Object: An Object Behavioral Pattern for Concurrent Programming

    2nd Annual Pattern Languages of Programming (PLoP) Conference

    This paper describes the Active Object pattern, which decouples method execution from method invocation in order to simplify synchronized access to a shared resource by methods invoked in different threads of control. This pattern is commonly used in distributed systems requiring multi-threaded servers.

    Other authors
    • Douglas C. Schmidt
    See publication
  • Programming with ASN.1 using Polymorphic Types and Type Specialization

    Proceedings of the IFIP TC6/WG6.5 International Conference on Upper Layer Protocols, Architectures and Applications

    A set of object-oriented abstractions is described that permits direct programming with ASN.1 specified types. The design and implementation also supports the flexible use of different encoding rules. The implementation is in C++ and makes use of class templates for representing polymorphic types, class inheritance for type specialization, and typedefs for de?ning ASN.1 types as instances of class templates. Encoding/decoding performance data is provided as evidence that this work is suitable…

    A set of object-oriented abstractions is described that permits direct programming with ASN.1 specified types. The design and implementation also supports the flexible use of different encoding rules. The implementation is in C++ and makes use of class templates for representing polymorphic types, class inheritance for type specialization, and typedefs for de?ning ASN.1 types as instances of class templates. Encoding/decoding performance data is provided as evidence that this work is suitable for serious application development.

    Other authors
    • Dennis Kafura
    • Robert Mullins
    See publication
  • Using Polymorphic Types to Structure Flexible Protocol Stacks

    Unpublished

    A new approach to structuring layered protocols using polymorphic service access points and type inheritance between protocol machines is presented. Polymorphic service access points facilitate the flexible instantiation of protocol machines containing the minimal functionality required by an application. The type inheritance structure is induced by a vertical partitioning of the upper layers of the ISO Reference Model resulting in a non-monolithic protocol stack that supports concurrent…

    A new approach to structuring layered protocols using polymorphic service access points and type inheritance between protocol machines is presented. Polymorphic service access points facilitate the flexible instantiation of protocol machines containing the minimal functionality required by an application. The type inheritance structure is induced by a vertical partitioning of the upper layers of the ISO Reference Model resulting in a non-monolithic protocol stack that supports concurrent object-oriented applications such as Actor systems. The results presented represent a modest contribution to the research and practice of advanced protocol development. The type structures in?troduced demonstrate to software engineers, particularly those developing layered systems software, that object-oriented programming techniques facilitate and enhance the implementation of layered
    architectures. In addition, the results presented provide justification for object-oriented language designers that polymorphic and extensible type structures are useful for efficiently implementing layered communication protocol architectures.

    See publication
  • ACT++: A Class Library for Concurrent Programming in C++ Using Actors

    Journal of Object-Oriented Programming

    ACT++ 2.0 is the most recent version of a class library for concurrent programming in C++. The underlying model of concurrent computation is the Actor model. Programs in ACT++ consist of a collection of active objects called actors. Actors execute concurrently and cooperate by sending request and reply messages. An agent, termed the behavior of an actor, is responsible for processing a single request message and for specifying a replacement behavior which processes the next
    available request…

    ACT++ 2.0 is the most recent version of a class library for concurrent programming in C++. The underlying model of concurrent computation is the Actor model. Programs in ACT++ consist of a collection of active objects called actors. Actors execute concurrently and cooperate by sending request and reply messages. An agent, termed the behavior of an actor, is responsible for processing a single request message and for specifying a replacement behavior which processes the next
    available request message. One of the salient features of ACT++ is its ability to handle the Inheritance Anomaly - the interference between the inheritance mechanism of object-oriented
    languages and the specification of synchronization constraints in the methods of a class - using the notion of behavior sets. Another feature of ACT++ is its realization of I/O as an actor operation. A special type of actor, called an interface actor, provides a high level interface for a file. Interface actors are sent request messages whenever I/O is necessary and can also transparently perform asynchronous I/O. ACT++ has been implemented on the Sequent Symmetry multiprocessor using the
    PRESTO threads package.

    Other authors
    • Dennis Kafura
    • Mani Mukherji
    See publication
  • Concurrent Object-Oriented Languages and the Inheritance Anomaly

    Parallel Computers: Theory and Practice, IEEE Press

    A survey of concurrent object-oriented languages is presented. The survey is organized around three models: the Animation Model that describes a variety of relationships between threads and objects, an Interaction Model that classi#es the possible semantics of invocations and returns between a client object and a server object, and a Synchronization Model that shows di#erentways in which concurrentinvocations can be managed bya server.Anumber of representative languages are brie#y presented…

    A survey of concurrent object-oriented languages is presented. The survey is organized around three models: the Animation Model that describes a variety of relationships between threads and objects, an Interaction Model that classi#es the possible semantics of invocations and returns between a client object and a server object, and a Synchronization Model that shows di#erentways in which concurrentinvocations can be managed bya server.Anumber of representative languages are brie#y presented. The problem of synchronization in concurrent object-oriented languages is considered in detail including a discussion of the inheritance anomaly. A synchronization mechanism, called a behavior set , is shown to avoid this anomaly in certain cases. The implementation of behavior sets in ACT++, an actor-based concurrent programming framework implemented in C++, is described.

    Other authors
    • Dennis Kafura
    See publication
  • Implementing Communication Protocols Using Object-Oriented Techniques

    Microelectronics and Computer Technology Corporation Technical Report

    Appropriate use of object-oriented programming mechanisms in the implementation of communication architectures results in a type structure that reflects the architectural model and increases the run-time performance of the protocol machines at each layer. This result is important since it contradicts the assertion by some that layered protocol architectures, such as the ISO Reference Model, necessarily suffer in performance because of layering, thus forcing implementors to violate the layering…

    Appropriate use of object-oriented programming mechanisms in the implementation of communication architectures results in a type structure that reflects the architectural model and increases the run-time performance of the protocol machines at each layer. This result is important since it contradicts the assertion by some that layered protocol architectures, such as the ISO Reference Model, necessarily suffer in performance because of layering, thus forcing implementors to violate the layering principle in search of efficiency. The result substantiates the experience of others, notably Clark, that sound network programming methodology leads to efficient implementations that are also understandable. In this paper, elements of an object-oriented implementation of the upper layer OSI protocols are presented. The purpose of the paper is two-fold: first, to communicate to software engineers, particularly those developing systems software, that object-oriented programing techniques facilitate and enhance the implementation of layered architectures; second, to convey to language designers that object-oriented language features are useful in building communication protocols. The focus is on the requirements for the upper layer OSI protocols and how inheritance, subtyping, and polymorphic functions effect their implementation.

    Other authors
    • Dennis Kafura
    • Chris Tomlinson
    See publication
  • Ph.D. Dissertation: Polymorphic Types for Constructing Concurrent Objects and Layered Communication Protocols

    Virginia Tech

    Polymorphic type abstractions are proposed for constructing concurrent objects and layered peer-to-peer communication protocols, both of which exhibit inherently asynchronous behavior. The type abstractions are shown to be both expressive and efficient in the context of a statically typed object-oriented
    language. Where appropriate, the utility of the type abstractions is illustrated by demonstrating their usefulness in concurrent programming using the Actor model. The results of this work…

    Polymorphic type abstractions are proposed for constructing concurrent objects and layered peer-to-peer communication protocols, both of which exhibit inherently asynchronous behavior. The type abstractions are shown to be both expressive and efficient in the context of a statically typed object-oriented
    language. Where appropriate, the utility of the type abstractions is illustrated by demonstrating their usefulness in concurrent programming using the Actor model. The results of this work have direct applicability to problems in concurrent programming, distributed systems, and communication
    protocol architectures.

    See publication
  • A Polymorphic Future and First-Class Function Type for Concurrent Object-Oriented Programming

    Unpublished

    A "future" is a typed synchronization mechanism used to represent a value that will come into existence at some point in time after the creation of the future. In this paper, a polymorphic future type is introduced that di?ffers from previous mechanisms in that it provides a ?first-class, extensible facility for expressing synchronized access to the typed result value of a concurrent computation. The proposed mechanism requires write-once/read-many synchronization, which is implemented in terms…

    A "future" is a typed synchronization mechanism used to represent a value that will come into existence at some point in time after the creation of the future. In this paper, a polymorphic future type is introduced that di?ffers from previous mechanisms in that it provides a ?first-class, extensible facility for expressing synchronized access to the typed result value of a concurrent computation. The proposed mechanism requires write-once/read-many synchronization, which is implemented in terms of common thread synchronization primitives, thereby ensuring a high-degree of e?fficiency. The type definition and type specialization features of C++ are used to illustrate how one would implement a polymorphic future type in a strongly typed object-oriented language supporting polymorphic type de?nitions.

    Other authors
    • Dennis Kafura
    See publication
  • The Carnot Extensible Services Switch

    Enterprise Integration Modeling, MIT Press, 1992

    The Carnot project for developing a flexible framework for integrating heterogeneous information resources and applications, both within and among organizations, is reviewed. The effective use of such systems requires a way to flexibly and efficiently orchestrate related tasks on far-flung computing systems. A central component of the Carnot project, the extensible services switch (ESS), which provides interpretive access to applications and to communications and information resources at…

    The Carnot project for developing a flexible framework for integrating heterogeneous information resources and applications, both within and among organizations, is reviewed. The effective use of such systems requires a way to flexibly and efficiently orchestrate related tasks on far-flung computing systems. A central component of the Carnot project, the extensible services switch (ESS), which provides interpretive access to applications and to communications and information resources at distributed sites, is discussed. The ESS is described as essentially a programmable glue that enhances interoperability by binding software components to one another.

    Other authors
  • Characterizing and Inheriting Synchronization Constraints using Behavior Sets

    MCC Technical Report

    Using CCS behavior equations to specify and reason about the observable behavior of concurrent objects, the nature of the conflict in inheriting synchronization constraints is explicated. Using behavior equations as a formal representation of concurrent object behavior results in the definition of behavior sets and a behavior function. A behavior set represents a subset of the methods defined as part of an object’s interface. The behavior function is a mapping from the domain of object states…

    Using CCS behavior equations to specify and reason about the observable behavior of concurrent objects, the nature of the conflict in inheriting synchronization constraints is explicated. Using behavior equations as a formal representation of concurrent object behavior results in the definition of behavior sets and a behavior function. A behavior set represents a subset of the methods defined as part of an object’s interface. The behavior function is a mapping from the domain of object states to the domain of behavior sets. A behavior set is used to represent the synchronization constraints of actor-like concurrent objects and may be extended via inheritance. By expressing relevant object states, behavior sets, and the behavior function as first-class, inheritable,and mutable entities in a concurrent object-oriented language, the conditions are defined that must be met in order to inherit synchronization constraints free of known anomalies.

    Other authors
    • Dennis Kafura
    See publication

Honors & Awards

  • Stephen B. Olin Fellow

    Randolph-Macon College

    The Olin Fellows are named for the first President of Randolph-Macon College

  • Visionary in Cloud Networking

    Arista Networks, Inc.

    Award for Citi's leaf-spine IP fabric for SDN enabling scale-out compute and a IP-based 40gbe storage fabric for global data center networking.

  • Academy of Engineering Excellence

    College of Engineering, Virginia Tech

    The Academy is an elite group of engineering alumni who have achieved multiple honors throughout their careers. As of spring 2014, the academy consists of only 127 people out of Virginia Tech’s more than 60,000 living engineering alumni.

    http://www.eng.vt.edu/news/virginia-tech-s-college-engineering-inducts-new-academy-members-honors-outstanding-young-alum-1

  • Networking Thought Leadership Award

    Open Networking Users Group (ONUG)

    Keynote talk on Software Defined Networking at Citigroup

  • Phi Beta Kappa

    Phi Beta Kappa Society

    Alpha Chapter at the University of Georgia

Recommendations received

More activity by Greg

View Greg’s full profile

  • See who you know in common
  • Get introduced
  • Contact Greg directly
Join to view full profile

Other similar profiles

Explore collaborative articles

We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.

Explore More

Others named Greg Lavender in United States