Harold Carr, Ph.D.

P. O. Box 58166
Salt Lake City, Utah 84158 USA

Current as of August 14, 2014


Harold Carr is the architect of InfiniBand communication in WebLogic Server at Oracle. He is also responsible for SOAP web service technology at Oracle (a position he also held at Sun Microsystems). He designed the pluggable transports, the asynchronous client and service APIs, and streaming I/O used in Oracle's SOAP stack. He also lead the consolidation of Oracle's three SOAP stacks down to one centering on the Sun SOAP stack (aka Metro). Previous to this role he designed the core architecture used in Sun's JAX-WS 2.0 reference implementation, in Sun's CORBA ORB and in the and the scalable socket communications architecture (aka Grizzly) used in GlassFish and IIOP remoting. He was responsible for RMI-IIOP load-balancing and fail-over in the GlassFish application server. He was part of the DOE/NEO team that built a C++ forerunner to EJBs. He was chairperson of the OMG Portable Interceptor specification and helped write the OMG Portable Object Adapter specification. Previous to Sun, he did distributed computing research at Hewlett-Packard Research Laboratories and Schlumberger Research Laboratories, was Chief Architect of Visual Lisp technology at Autodesk, and was a logic simulation consultant for Cirrus Logic. He holds a Ph.D., in Computer Science from the University of Utah where he worked as a research programmer on Portable Standard LISP, Utah Common LISP, Concurrent Utah Scheme and Distributed C++.


1994Ph.D., Computer Science, University of Utah (Summa cum Laude)
Dissertation: Distributed C++


2/2010 - presentConsulting Member of Technical StaffOracle, Redwood Shores, CA
Detail follows:
12/2013 - presentWebLogic Server InfiniBand Communication Architect., (Oracle)
Design protocol to tunnel HTTP, IIOP, etc., over InfiniBand between Oracle Traffic Director and WebLogic Server.
Design architecture to integrate InfiniBand WLS' existing networking subsystem.
2/2010 - 11/2013Architect of SOAP-based Web Service Technology., (Oracle)
Shipped SOAP stack in WebLogic Server 12c, 11gR1; GlassFish 4.0, V3.1.2.2, V3.1.2, V3.1.1, V3.1; JavaSE 7, JavaSE 6 (updates 19-*).
Oracle's SOAP stack is the wiring in Oracle Fusion Middleware (FM) and Oracle Fusion Applications.
Designed, APIed, patented, implemented, tested, documented "DISI: Dynamic Invocation and Service Interface".
DISI enables layered software (e.g., FM) to take control of the input/output of the SOAP stack. In particular, pluggable transports and asynchronous, streaming I/O.
Designed, APIed, patented method for associating two or more WS-ReliableMessaging sequences in a SOAP intermediary (used by Oracle Service Bus).
Consolidated Oracle's three SOAP stacks to use Sun's SOAP stack as the core.
Designed "configuration architecture" to enable SOAP stack to be dynamically configured by Oracle Web Services Manager and Oracle Enterprise Manager.
Designed "Life-Cycle Notification API" for client proxies and service endpoints lifetimes and various points in the request/response life-cycle.
Helped design a "Session API" to decouple WS-ReliableMessaging from WS-Security/SecureConversation implementations (since security is owned by another team in Oracle.
Helped design a "Persistence API" with pluggable providers (e.g., Coherence, JDBC, file).
Worked with customers (e.g., Verizon, AT-T, Siemens, Capital One, Harris, Mitre, ...) on their SOAP requirements and issues.
Worked with new Oracle acquisitions to transition them from external SOAP stacks (e.g., CXF) to Oracle's SOAP stack.
Lead distributed team: Beijing, India, Europe, East/West U.S.A.
2/1999 - 2/2010Senior Staff EngineerSun Microsystems, Santa Clara, California
Detail follows:
11/2005 - 2/2010Architect of SOAP-based Web Service Technology., (Sun)
Shipped SOAP stack (JAX-WS, Metro) in OpenSSO 8.0; OpenESB; GlassFish V2, V2.1; JavaSE 6 (updates 1-18).
SOAP stack project known as "Tango" and "WSIT" and "Metro". Funded by Sun CTO. Quarterly in-person reports to Sun CTO, Greg Papadopoulos, on Project Tango status.
Lead a global team of engineers working closely with Microsoft engineers (including numerous onsites in Redmond over a several year period, weekly concalls, daily email) to implement WS-* specifications (i.e., WS-Trust, WS-Security, WS-SecureConversation, WS-AtomicTransactions, WS-Coordination, WS-ReliableMessaging, WS-MakeConnection, WS-Policy, WS-BP, WS-BSP, WS-RSP, WS-Addressing, WS-Metadata-Exchange...) enabling Java enterprise SOAP interoperability with Microsoft Windows Communication Foundation.
Non-interop specifications implemented in product: WS-SOAP/TCP, FastInfoset.
Worked with NetBeans team to ensure IDE support for the SOAP stack in all areas (e.g., Trust, Security, AtomicTransactions, ...). Note: Microsoft engineers told us that our IDE support was much better than theirs, especially in the security/trust area.
Worked with customers and partners (e.g., American Express, Boeing, U.S. Navy, Motorola, Credit Suisse, Canadian Health Infoway/HIAL, NHIN, Erickson, Siemens, Vodafone, Telefonica, MedPlus, BEA, JBOSS/Redhat, Oracle, Layer 7, Forrester, Noemax) on SOAP issues and requirements.
Guided ThoughtWorks engineers (paid for by Microsoft) in implementing Apache Stonehenge to demonstrate SOAP interoperability in a realistic application.
Guided ThoughtWorks engineers (paid for by Microsoft) in testing WS-RSP interoperability with Microsoft and IBM.
Participated in Sun's Mentoring Program as mentor to Alexei Mokeev (Russia), Nicholas Solter (Colorado), Alfredo Kojima (Argentina), 3 interns in India.
1/2005 - 10/2005High Availability Engineer, (Sun)
Shipped CORBA (with HA features) in Sun Java Application Server 8.2 Enterprise Edition.
Designed RMI-IIOP dynamic load-balancing and failover system used in Java Application Server 9.0/EE, and lead implementation team.
11/2001 - 12/2004CORBA Engineer, (Sun)
Shipped CORBA in Sun Java Application Server 8.1 Enterprise Edition.
Shipped CORBA in Sun Java Application Server 8.0 Platform Edition.
Shipped CORBA in Java Standard Edition 5
Shipped CORBA in J2EE 1.4 Reference Implementation.
Shipped CORBA in Java Standard Edition 1.4
Designed RMI-IIOP static load-balancing and failover system used in Java Application Server 8.1/EE, and lead implementation team.
Created and patented PEPT 1.0: an adaptable remoting systems architecture.
Rewrote Sun's ORB to use PEPT 1.0 architecture.
Created and patented PEPT 2.0.
Used PEPT 2.0 as the implementation architecture for JAX-WS.
Used PEPT architecture to build clients and servers which use both IIOP and SOAP transparently to the programming model.
Designed and implemented RMI-IIOP static load-balancing and failover system used in Java Application Server 7.1/EE.
Designed and implemented a high-level, scalable framework on top of Java NIO. This became Project Grizzly.
Lead communications team comprised of JAX-RPC, CORBA, JMS, JAXM and Connectors.
Sun representative on OMG Java-to-IDL Revision Task Force.
Worked with customers (e.g., NTT) on their CORBA/RMI-IIOP requirements and issues.
Participated in Sun's Engineering Mentoring Pilot Program with mentor David Ungar.
Participated in Sun's Mentoring Program as mentor to Darryl Mocek.
4/2000 - 10/2001ORB Interceptor Architect and Implementor, (Sun)
Shipped CORBA in J2EE 1.2 and 1.3. Reference Implementation.
Shipped CORBA in iPlanet Application Server.
Chairperson of OMG Portable Interceptor (PI) Finalization and Revision Task Forces. Wrote OMG Portable Interceptor specifications: ptc/2001-10-25, ptc/2001-03-04, ptc/2000-08-06, and reports: ptc/2001-10-24, ptc/2000-08-05.
Lead and scheduled a team of 3 implementing the OMG PI specification.
Member of Sun team which wrote the OMG Object Reference Template (ORT) specification ptc/01-08-31 and gave OMG presentation orbos/2000-06-21 which led to the ORT RFP orbos/00-09-30.
Designed and implemented proprietary ORB connection interceptors used by J2EE and iPlanet.
2/1999 - 3/2000ORB Interceptors and GIOP 1.4 Architect and Implementor, (Sun)
Shipped CORBA in J2SE 1.3
Sun's representative to OMG Portable Interceptor RFP orbos/98-07-10, which lead to adopted specification ptc/2000-04-05 (which included close collaboration with the CSIv2 Security and the Transaction specifications).
Sun representative on OMG Messaging Revision Force, Interoperable Naming Service and Interop Task Forces.
Designed implementation architecture for OMG GIOP 1.4 (formal/99-10-11), notably: fragmentation.
Designed and implemented proprietary IOR and Request/Reply interceptors for use by J2EE Reference Implementation.
3/1998 - 2/1999Chief Architect, LISP TechnologyAutodesk, San Rafael, California
Shipped Visual LISP in AutoCAD 2000
Shipped Visual LISP 1.0 plug-in product for AutoCAD R14 on Windows 95/98/NT. Voted a top CAD product of 1998 by Cadence magazine.
Replaced AutoLISP command-line interpreter with VM/compiler/IDE-based Visual LISP. (LISP is the main customization language used by AutoCAD's 2 million users.)
Designed API for Visual LISP 1.0
Led a team of engineers in Moscow and California.
12/1994 - 2/1998Staff Engineer, SoftwareSunSoft (Sun Microsystems), Mountain View, California
Detail follows:
9/1997-2/1998CORBA Sustaining Engineer, (Sun)
Defined architecture to transition NEO(C++)/Joe(Java) CORBA users to Visigenic Visibroker (C++) and JavaIDL ORBs.
Worked with Visigenic (Inprise/Borland) on phased, prioritized delivery of transition architecture.
Worked with chief architects at British Telecom, Siemens Nixdorf, and the Royal Danish Navy implementing specific transitions.
SunSoft representative at OMG technical meetings.
5/1997-8/1997Portable Object Adapter Project Lead, (Sun)
Responsible for SunSoft's implementation of OMG's Portable Object Adapter (POA) on the Joe (Java) ORB.
6/1996-4/1997Object Development Framework (ODF) Project Lead, (Sun)
(ODF is the programming API on top of Sun's C++ CORBA ORB.)
Member of SunSoft team which developed the OMG Portable Object Adapter specification: orbos/97-04-14.
Responsible for ODF portion of NEO 2.0 FCS and Joe 3.0 Beta.
Chief architect/implementor of ODF implementation which includes the following features: server-side ORB APIs; extensions to OMG naming service; automatic factory creation and registration; server lifecycle; server agent for remote administration; automatic tracing, logging, locking, delegation; third-party persistence integration.
Took course: "Advanced Java Networking, RMI and Joe".
12/1994 - 5/1996Member of the ODF team., (Sun)
Shipped NEO 1.0 (SunSoft C++ CORBA product).
On team responsible for ODF portion of NEO 1.0.
Responsible for implementing and maintaining server-side APIs for the NEO product (SunSoft's OMG CORBA ORB).
Performance testing of SunSoft's implementation of OMG Naming, Events, Property and Relationship Services.
Designed and implemented selective locking, selective delegation, wait for commit (of transparent persistence).
Developed and documented examples of usage of NEO's advanced features: locking, delegation, object lifecycle, subobjects (i.e., flyweights), user-defined persistence, tracing and logging, refdata.
Maintained and extended ODF compiler.
Creation and codemerge of automatically generated server code.
Source code gatekeeper
Took course: "SunOS Internals for Employees".
12/1983 - 1/1994Senior Systems ProgrammerCenter for Software Science, Department of Computer Science, University of Utah, SLC, UT
Designed and implemented a distributed version of C++ for network workstations and the Mayfly Parallel Processing System.
Visualization of distributed systems, specifically, Distributed C++, Concurrent Utah Scheme, and Mach Shared Objects.
Lisp (Scheme) language design and compilation for the Mayfly Distributed Parallel Processing System (joint research with Hewlett-Packard Research Laboratories, Palo Alto, California), and for the FAIM-1 Symbolic Multiprocessing System (joint research with Schlumberger Research Laboratories, Palo Alto, California).
Closure analysis and representation.
Development, maintaining, and porting of Utah Common Lisp and Utah Scheme (compiler, interpreter, debuggers).
Implemented "modularization" of Utah Lisp to a minimal system LISP base on top of which we built Utah Scheme, Utah Common Lisp Subset and Utah Common Lisp
Developed a retargetable, highly optimizing Lisp compiler based on an architectural description of the target machine.
Retargeted the Portable Standard Lisp (PSL) compiler to produce C code, then using that compiler to compile the PSL runtime system. The resulting C files are ported to new Unix/C machines within one week.
Development, maintaining, and porting of PSL and Portable Common Lisp Subset (PCLS) (compiler, interpreter, debuggers) on various machines.
Increased PSL portability by implementing a portable linker to support export programs (delivery vehicles) and bootstrapping Lisp systems.
1/1981 - 12/1983VLSI-CAD Systems ProgrammerPatil Systems, Inc., SLC, UT
Designed, implemented, documented and maintained an asynchronous, event driven, gate and functional level logic simulator including a signal algebra. Prototype in Lisp. Production version in C/Unix. Wrote Lisp interpreter in C to provide a fully programmable user interface to the simulator.
Designed and implemented a high-level Hardware Description Language (before VHDL and Verilog) to drive and check simulation results.
Note: Patel Systems became Cirrus Logic.


3/1994 - 11/1994Cirrus Logic, Inc., Fremont, California
Extended CAD tools to interface with SPF, SDF and EDIF.
6/1985 - 3/1992Cirrus Logic, Inc., Fremont, California
VLSI Logic simulation, and Lisp frontends to C tools.
Wrote, maintained and extended a mixed mode (functional and gate-level) logic simulator written in C with an embedded Lisp extension language which was in daily production use from 1985 until 1992. Work included the the design of a signal algebra and the design, implementation, and documentation of a hardware design and control language.
6/1986 - 12/1987Schlumberger, Palo Alto, CA
Parallel Lisp Compilation and FAIM-1 Instruction Set Design.
3/1985 - 9/1986Hewlett-Packard Labs, Palo Alto, CA
Ported Lisp (PSL) to HP's HP-PA RISC Processor.
7/1984 - 8/1984Hewlett-Packard Labs, Palo Alto, CA
Bootstrapped PSL's Microkernel.


"System and Method for Associating two or more WS-ReliableMessaging Sequences for use in a SOAP Intermediary", patent filed 2014 (with U. Joshi and M. Upton).

"System and Method for Providing a Dynamic Invocation and Service Interface for use in a Middleware or other Environment", patent pending 13/427,574, filed 2012 (with Ryan Eberhard).

"Method and System for Servicing Requests in a Dynamic Cluster", patent number 7743167, filed 2006, issued 2010 (with Ken Cavanaugh).

"Method and Apparatus for RMI-IIOP Implementation with Java Serialization", patent number 7533156, filed 2005, issued 2009 (with Ram Jayaraman and Ken Cavanaugh).

"Method and Apparatus for Determining Data Encoding Format in RMI-IIOP Messages", patent number 7574710, filed 2005, issued 2009 (with Ram Jayaraman and Ken Cavanaugh).

"Method and Apparatus to Isolate Change in Remoting System Servers", patent number 7475402, filed 2004, issued 2009.

"Method and Apparatus to Isolate Change in Remoting System Clients", patent number 7487510, filed 2004, issued 2009.

"Systems and Methods Employing a PEPt Architecture for RPC", patent pending 10/677,434, filed October 2003.

Refereed Journal Articles

"Implementing Concurrent Scheme for the Mayfly Distributed Parallel Processing System", Lisp and Symbolic Computation, An International Journal, Volume 5 Number 1/2, pp 73-94, May 1992 (with R. Kessler, L. Stoller, and M. Swanson).

"Moped (A Portable Debugger)", Lisp and Symbolic Computation, An International Journal, Volume 3 Number 1, pp 39-66, January 1990 (with R. Kessler, and Mohammad Pourheidari).

"An Emulator for Utah Common Lisp-s Abstract Virtual Register Machine", The Journal of Forth Application and Research, Volume 5 Number 1, pp 113-116, 1987 (with R. Kessler).

"Putting Lisp on a Forth Base", The Journal of Forth Application and Research, Volume 5 Number 1, pp 117-120, 1987 (with R. Kessler).

"Forth for AI?", The Journal of Forth Application and Research, Volume 4 Number 2, pp 177-180, 1986 (with R. Kessler).

"A Forth-Based Object File Format and Relocating Loader Used to Bootstrap Portable Standard Lisp", The Journal of Forth Application and Research, Volume 3 Number 2, pp 119-122, 1985 (with R. Kessler).

Refereed Conference Papers

"IIOP and SOAP Failover in Static Clusters", Proceedings of the 2005 International Conference on Communications in Computing, June 2005, pp 61-66, Las Vegas (with K. Cavanaugh).

"llava - Java in Lisp Syntax", Proceedings of the 2005 International Lisp Conference, June 2005, pp 89-100, Stanford, CA.

"Server-side Encoding, Protocol and Transport Extensibility for Remoting Systems", Proceedings of the Second International Conference on Service Oriented Computing, November 2004, pp 329-334, New York.

"Client-side Encoding, Protocol and Transport Extensibility for Remoting Systems", Proceedings of the 2004 International Conference on Communications in Computing, June 2004, pp 51-57, Las Vegas.

"PEPt - A Minimal RPC Architecture", OTM Confederated International Workshops HCI-SWWA, IPQ, JTRES, WORM, WMS and WRSM 2003 Proceedings, November 2003, pp 109-122, Catania, Sicily.

"One-Page PEPt," Middleware 2003 Workshop Proceedings, June 2003, Rio de Janeiro, Brazil.

"The AutoLISP Platform for Computer-Aided Design", Lisp In the Mainstream, November 1998, Berkeley, California (with R. Holt).

"Compiling Distributed C++", Proceedings of the Fifth IEEE Symposium on Parallel and Distributed Processing, December 1993, pp 496-503, Dallas, Texas (with R. Kessler and M. Swanson).

Parallel C++ Workshop Report, with M. Chandy, C. Kesselman (California Institute of Technology), D. Gannon, (Indiana University) et. al. Marina Del Ray, California, May 1993.

"Distributed C++", Workshop on Languages, Compilers, and Run-Time Environments for Distributed Memory Multiprocessors,ACM Sigplan Notices, Volume 28, Number 1, p 81, January 1993 (with R. Kessler and M. Swanson).

"EPIC - A Retargetable, Highly Optimizing Lisp Compiler," Proceedings of the SIGPLAN '86: Symposium on Compiler Construction, June 1986, pp 118-130, (with G. Duggan; R. Kessler; J. Knell; J. Krohnfeldt; J. Peterson).

"A Portable Linker for Exporting Lisp Programs and Bootstrapping Portable Standard Lisp," Proceedings of the 1986 ACM Mountain Regional Conference, April 1986, (with R. Kessler).

Conference Responsibilities

2006-2014Program Committee Member Java One.
2005-2010Program Committee Member International Symposium on Distributed Objects and Applications: 2005, 2006, 2007, 2008, 2009, 2010.
2004Program Committee Member ACM/IFIP/USENIX 5th International Middleware Conference.

Invited Talks (selected)

2014-04Why Use Monads - What They Can Do, LambdaConf, Boulder, CO
2013-09"SOAP over WebSockets and InfiniBand with JAX-WS Pluggable Transports", JavaOne, San Francisco
2012-10"Remoting Retrospective: DCE, DCOM, CORBA, RMI/JINI, RMI-IIOP, SOAP, REST, WebSockets", JavaOne, San Francisco (video)
2012-10"SOAP and/or REST and/or WebSockets", JavaOne, San Francisco (video)
2011-06"When To Use SOAP and when REST", Jazoon, Zurich, Switzerland (with Marek Potociar).
2009-06"Metro Web Services Security Usage Scenarios", Jazoon, Zurich, Switzerland (with Jiandong Guo).
2009-06"Microsoft General Session", JavaOne (keynote), San Francisco (with Dan'l Lewin, Steven Martin, Greg Leake - all Microsoft).
2009-06"Using Java Technology in the Windows Azure Cloud via the Metro Web Services Stack", JavaOne, San Francisco (with Clemens Vasters, Microsoft).
2008-05"Interoperable Business Web Services Using Project Metro and .NET 3.5", JavaOne, San Francisco (with Kevin Wittkopf, Microsoft).
2007-12"The Metro Web Services Stack (Project Tango in GlassFish)", JavaPolis, Antwerp, Belgium.
2007-12"Metro and REST: Everyday Web Services", Sun Tech Days, Frankfurt, Germany (with Carol McDonald).
2007-06"Project Tango Features", Jazoon, Zurich.
2006-11"JAX-WS and WSIT - Tangoing with .NET", Sun Tech Days, Prague.
2006-11"Java EE 5 and GlassFish: A Plunge into The Aquarium", Sun Tech Days, Prague.
2006-05"Composable Web Services Using Interoperable Technologies from Sun-s Project Tango", JavaOne, San Francisco (with Nick Kassem).
2005-02"The PEPT Service-Oriented Architecture", Colloquium speaker, University of Utah.
2001-06"OMG Portable Interceptors", JavaOne, San Francisco.
2001-06"New CORBA Features in J2SE 1.4", JavaOne, San Francisco.
1998-11"The Future of Lisp", Panel Member, Lisp in the Mainstream Conference.
1993"Compiling Distributed C++", Colloquium speaker, University of Texas at Austin

Continued Education and Personal Projects

2014-07Attended Utrecht Summer School: Applied Functional Programming in Haskell (certificate)
2013-11Completed Functional Programming Principles in Scala (certificate - with distinction)
2013-07Attended Oregon Programming Languages Summer School
2012-07Attended O-Reilly Open Source Convention
2012-02Attended O-Reilly Strata
2011-07Attended O-Reilly Open Source Convention
2011-03Took course on Oracle Coherence In-Memory Data Grid
2011-02Attended O-Reilly Strata
2009-06Attended Semantic Technology Conference
2006-2008Wrote RDF Triple Browser. Two versions: Java/Swing and Java/GWT.
2008-05Attended Semantic Technology Conference
2006-10Attended Microsoft Professional Developers Conference
1997-2005llava - Java in Lisp Syntax
2002-02Took course "Effective Presentations"
2002-02Took course "The 7 Habits of Highly Effective People"
2002-02Took course "Time Management and Personal Leadership"
2001-02Took course "Solaris System and Network Administration"
1998-09Attended International Conference on Functional Programming


Phi Kappa Phi (General Scholastic Honorary)
Tau Beta Pi (Engineering Honorary)
Sperry Rand Computer Science Undergraduate Scholarship
Army/Navy Science Award