Bruce E. Martin, Ph. D.
820 Humboldt Road
Brisbane, California 94005, USA
+1-415-467-0714
email: martin@xbeans.org

http://www.xbeans.org/bmartin

Education History

Ph.D. Computer Science, University of California, San Diego. June, 1988. The title of my dissertation is Concurrent Nested Object Computations.

MS Computer Science, University of California, San Diego. December, 1984.

BA Computer Science, University of California, Berkeley. December, 1980.

 

Employment History

June, 2005 to present; Sungard Higher Education

Director, Advanced Concepts. I lead a group that is responsible for innovating the company's business through technology. In particular, we look at higher education business problems, research solutions, provide vision and produce proof of concepts for possible future products and services. Our current projects include work in composite applications, SOA and rich internet applications.

Technology Strategy Architect. As a member of the CTO's Technology Strategy Group, I am responsible for developing technology strategy for Middleware and user interface technologies to be used in the company's higher education products. I work with customers, product management, product development and technology vendors.

September, 1999 to December 2004: teaching, writing and consulting

Senior Enterprise Architect. In cooperation with jGuru and The Middleware Company, I have been writing, teaching and consulting about J2EE and distributed object technologies. I created The Middleware Company's popular Architect's Course and has given it to several hundred enterprise architects. The reviews of this course have been outstanding.

September, 1996 to September, 1999: Borland Corporation, San Mateo, CA.

Product Architect. I lead an effort to design and implement a tool and framework for rapidly constructing distributed applications out of CORBA components, implemented in Java. I did the majority of the design and implementation of the product. The product became known as the VisiBroker Application Partitioner for Java. The product was in beta testing when Borland acquired Visigenic Software. At Borland, I was an architect of Borland's first (pre J2EE) CORBA-based application server product and made a significant contribution to the implementation of it.

September, 1991 to September, 1996: Sun Microsystems, Mountain View, California

Senior Staff Engineer. At SunSoft, I was instrumental in the definition and architecture of NEO, SunSoft’s OMG CORBA-based distributed object product. I defined the distributed application model for NEO and lead a group in the implementation of it. Previously I was the architect of the Object Services in the NEO product. The service specifications were accepted as part of the OMG’s CORBA Object Services (COSS) standards. I am the principal author of five COSS standards.

July, 1988 to August, 1991: Hewlett-Packard Laboratories, Palo Alto, California

Researcher. I performed research in distributed object systems to support distributed applications. I participated in the design and implementation of the Common Services distributed C++ object system. I advised HP product divisions that are producing HP’s distributed New Wave computing. I worked on concurrency models for distributed and cooperative applications. I wrote several papers on distributed object systems, long-lived transactions and interfaces in C++. I organized a workshop on transactions and objects at the 1990 OOPSLA conference.

September 1983 to June, 1988: University of California, San Diego

Research Assistant. I was supported by the Computer Systems Research Group at UC San Diego, doing research in distributed systems. I designed, implemented and managed a team of students in two distributed systems projects: a parallel procedure call system and a replicated, distributed file system for UNIX. This work resulted in several papers and invited presentations.

Instructor. I taught four upper division courses in the UC San Diego Computer Science Department.

February, 1981 to April, 1983: Amdahl Corporation, Sunnyvale, California.

Software Engineer. I participated in the design, implementation, maintenance and training phases of a product to help programmers maintain software. I designed a week long course and video training material for the product. I presented a paper related to the product at the 6th IEEE International Software Engineering Conference in Tokyo, Japan.

 

Professional Activities

 

Invited Presentations

"Uncovering Database Access Optimizations in the Middle Tier with TORPEDO" IEEE International Conference on Data Engineering. April 2005. Tokyo, Japan.

"Enterprise Java Architecture Workshop", Decemer 6-9, 2004. London, England.

"Architecting Challenging Scalable Enterprise Applications", Software Develoment Expo", Boston, Massachusettes, September 23, 2004

"Transactions, Distributed Objects and J2EE" The Server Side Symposium, Boston, Massachusetts, June 27, 2003.

"Transparent Server Side Xbeans", XML One, Boston, Massachusetts, August 26 - 30, 2002

"Data Exchange Using Xbeans Release Two", The 2001 O'Reilly Open Source Convention, San Diego, California, July 25, 2001.

"XSLT Translation using Xbeans", XML DevCon 2001, New York City, April 10, 2001.

"Distributed Xbean Applications" , The 2nd International Symposium on Distributed Objects and Applications, September 22, 2000, Antwerp, Belgium.

"XML and Java Based Distributed Applications with Xbeans", XML DevCon 2000, June 28, 2000, New York City, New York. and XML DevCon 2000, San Jose, November 14, 2000, San Jose, California.

"Constructing Distributed Applications Using Xbeans", XML Europe 2000, June 15, 2000, Paris, France.

"Implementing Distributed, XML-based, Data Exchange Applications Using Xbeans", XML SIG Silicon Valley Software Development Forum, May 25, 2000, Palo Alto, California.

"Xbean Distributed Applications", Xtech 2000, March 2, 2000, San Jose, California.

“Java and Shared CORBA Objects on the Web.” Advanced C++ Special Interest Group, June 14, 1997, San Jose, California.

“Developing Distributed Applications Using CORBA”, SGI Developer’s Conference, June 11, 1997. Burlingame, California.

“Distributed Object Computing in the Internet Age”, DBExpo, May 14, 1997, San Francisco, California.

“Java and Shared Service Objects on the Web”, Object Expo Europe, September, 1996, London, England.

“Introduction to CORBA and CORBA Services” Tutorial given at 2nd USENIX Conference on Object-Oriented Technologies and Systems, June 17, 1996, Toronto, Canada.

“Asynchronous Notifications Among Distributed Objects” Paper given at 2nd USENIX Conference on Object-Oriented Technologies and Systems, June 17, 1996, Toronto, Canada.

“The Separation of Interface and Implementation in C++.” Software Entrepreneurs’ Forum, Advanced C++ Special Interest Group, July 14, 1995, Santa Clara, California.

“Relating Distributed Objects,” 20th International Conference on Very Large Data Bases, September 15, 1994. Santiago, Chile.

COSS: The Common Object Services Specifications, 1994 ACM SIGMOD International Conference on the Management of Data, May 27, 1994, Minneapolis, Minnesota.

The Common Object Services Specifications (COSS), presented to the Object Management Group, OMG Meetings in Dublin(8/94), Pittsburgh (6/94), Salt Lake City (2/94), Austin (12/93), Chicago(7/93) and Paris(5/93).

“Long-lived Concurrent Activities,” International Workshop on Distributed Object Management, August, 1992, Edmonton, Canada.

“The Separation of Interface and Implementation in C++.” The 3rd USENIX C++ Conference, April 24, 1991, Washington, D.C.

“Transaction Guarantees and Long-lived Concurrent Activities,” Workshop on Transactions and Objects, in conjunction with 1990 OOPSLA/ECOOP Conference, Ottawa, Canada, October 21, 1990.

“Access Transparency in CommonServices,” Colloquium, Institut National de la Recherche en Informatique et Automatique (INRIA), Rocquencourt Cedex France, October 9, 1990.

“Access Transparency in CommonServices,” ISA/ANSA Workshop on C++ in distributed environment, Chorus Systemes, Paris, France, October 8, 1990.

“Concurrent Nested Object Computations,” Colloquium, Computing Laboratory, University of Newcastle upon Tyne, Newcastle, UK, May 23, 1990.

“Concurrent Nested Object Computations,” Colloquium, Centre de Recherche en Informatique de Montpellier (CRIM), University of Montpellier, Montpellier, France, June 28, 1989.

“Concurrent Nested Object Computations,” Colloquium, Department of Computer Science, Columbia University, New York, New York, February 13, 1989.

“Experience with PARPC,” Winter 1989 USENIX Conference, San Diego, California, February 1, 1990.

“Concurrent Nested Object Computations,” Colloquium, Department of Computer Science, University of California, Santa Cruz, November, 1988.

“Concurrency Control vs. Concurrent Programming,” Workshop on Object-based Concurrent Programming, in conjunction with 1988 OOPSLA Conference, San Diego, California, September 27, 1988.

“Concurrent Nested Object Computations,” Colloquium, MCC, Austin, Texas, April, 1988.

“Concurrent Nested Object Computations,” Colloquium, Department of Computer Science, University of California, Santa Barbara, February 11, 1988.

“Modeling Concurrent Activities with Nested Objects,” The 7th International Conference on Distributed Computing Systems, Berlin, West Germany, September 25, 1987.

“PARPC: A System for Parallel Procedure Calls,” The 1987 International Conference on Parallel Processing, St. Charles, Illinois, August 17, 1987.

“Parallel Remote Procedure Call and the Portable C Stub Compiler,” IEEE Workshop on Design Principles of Experimental Distributed Systems, October, 1986. Purdue University.

“The Gemini Fault Tolerant File System,” Berkeley UNIX Workshop, October, 1985.

“Simulando Abstract Data Types en Lenguajes de Programación,” Computer Science Department Colloquium, (given in Spanish) at Instituto Tecnológico de Monterrey, México City Campus, September 21, 1984.

“Experience with A Module Package in Producing Production Quality PASCAL Programs,” The 6th International Software Engineering Conference, Tokyo, Japan, September 13, 1982.

 

Publications

"Uncovering Database Access Optimizations in the Middle Tier with TORPEDO" Appeared in Proceedings of the 21st IEEE International Conference on Data Engineering. April 2005. Tokyo, Japan.

"ACID is Good. Take it in Short Doses." The Server Side. http://www.theserverside.com/articles/article.tss?l=AcidShortDoses With Mark Little.

"Distributed Xbean Applications" Proceedings of the 2nd International Symposium on Distributed Objects and Applications, published by IEEE Computer Society Press, September 2000.

"Lowering the bar of the DOM API A few easy steps to begin accessing XML data in Java" IBM DeveloperWorks, March, 2000.

"Build distributed applications with Java and XML" JavaWorld, February, 2000.

“Asynchronous Notifications Among Distributed Objects” In Proceedings of the 2nd USENIX Conference on Object-Oriented Technologies and Systems, June 17, 1996, Toronto, Canada.

“Relating Distributed Objects.” In Proceedings of the 20th International Conference on Very Large Data Bases, edited by Bocca, Jauke and Zaniolo, published by Morgan Kaufmann. September, 1994. pg. 730-739.

“Long-lived Concurrent Activities.” In Distributed Object Management, edited by Ozsu, Dayal and Valduriez, published by Morgan Kaufmann. Also in Proceedings of the International Workshop on Distributed Object Management, August, 1992, Edmonton, Canada.

“An Object-Based Taxonomy of Distributed Computing Systems.” In Readings in Distributed Computing Systems, published by IEEE Computer Society Press. Also in IEEE Computer special issue on distributed computing systems, August, 1991.

“The Separation of Interface and Implementation in C++.” In The Evolution of C++, edited by Jim Waldo, published by MIT press. Also in Proceedings of the 3rd USENIX C++ Conference, April, 1991, Washington, D.C.

“Transaction Guarantees and Long-lived Concurrent Activities.” In Proceedings of the 1990 OOPSLA/ECOOP Workshop on Transactions and Objects, Ottawa, Canada, October, 1990. Edited by Martin and Ramamritham.

“Experience with PARPC.” In Proceedings of the 1989 Winter USENIX Technical Conference, San Diego, California, February, 1989.

“Concurrency Control vs. Concurrent Programming.” In Proceedings of the Workshop on Object-based Concurrent Programming, 1988 OOPSLA Conference, San Diego, California, September, 1988.

“Concurrent Nested Object Computations.” Ph.D. dissertation, Department of Computer Science and Engineering, University of California, San Diego, June, 1988.

“Modeling Concurrent Activities with Nested Objects,” In Proceedings of the 7th International Conference on Distributed Computing Systems, Berlin, West Germany, September, 1987. Published by IEEE Press.

“PARPC: A System for Parallel Procedure Calls,” In Proceedings of the 1987 International Conference on Parallel Processing, St. Charles, Illinois, August, 1987. Published by the Pennsylvania State University Press.

“The Gemini Replicated File System Test-bed,” In Proceedings of the 3rd International Conference on Data Engineering, Los Angeles, California, February, 1987, Published by IEEE Press. Also in Information Sciences, an International Journal.

“Experience with A Module Package in Producing Production Quality PASCAL Programs,” In Proceedings of the 6th International Software Engineering Conference, Tokyo, Japan, September, 1982, Published by IEEE Press.

Numerous technical reports at Sun Microsystems, HP Labs, University of California, San Diego and National Bureau of Standards.

 

Software Systems

TORPEDO

I created The Testbed of Object-Relational Products for Enterprise Distributed Objects (TORPEDO). TORPEDO is designed to reveal the sophistication of Object-Relational mapping software in accessing databases in single server and clustered environments. TORPEDO defines a set of realistic application-level operations that detect a significant set of database access optimizations. TORPEDO supports different Java APIs for O-R mapping including Container Managed Persistence (CMP 2.x), Java Data Objects (JDO), Oracle TopLink, and Hibernate. More information on TORPEDO is available at www.middlewareRESEARCH.com/torpedo and a paper about TORPEDO is to appear at the 21st IEEE International Conference on Data Engineering in Tokyo.

Xbeans

I lead an open-source project to create a repository of Xbeans. Xbeans are Java Beans that process XML and can be easily composed into distributed data flow applications. More information about the project is available at www.xbeans.org. The project has produced two releases and has been downloaded by several thousand people. I have spoken about the project at numerous industrial and academic conferences.

Application Partitioner for Java, Inprise Application Server

I lead an effort to design and implement a tool and framework for rapidly constructing distributed applications out of CORBA components, implemented in Java. I did the majority of the design and implementation of the product. The tool and framework allow application designers to graphically partition and connect Java components into distributed applications. The product provides a novel and flexible binding and instantiation model for distributed application components.

Object Services

I was the architect for a group designing and implementing distributed Object Services for relationships, events, externalization, object life cycle, naming and object properties. The services are a key component of SunSoft’s NEO family of products. The services have been standardized by the Object Management Group (OMG) as the COSS standard. I am the principle author of six of the COSS standards.

CommonServices

I participated in the design and implementation of the CommonServices system at HP Laboratories. My principle contribution was the design and implementation of the interface definition language, compiler and run-time library. The system provides a C++ programming model of distributed objects. Application programmers simply write distributed, object-oriented applications as CommonServices interfaces and C++ class implementations. The system was the basis of HP’s submission to the Object Management Group’s (OMG) CORBA standard.

PARPC

I designed, implemented and supported the PARPC system at the University of California, San Diego. The PARPC system adds parallel remote procedure calls to C and C++ programs. Parallel remote procedure calls are useful in a distributed environment for multi-cast communication, replication and remote procedure calls. PARPC supports a high-level network process model. The system is available on a variety of platforms and has been given to several universities and research institutions.

Gemini file system

I participated in the design and implementation of the Gemini file system at the University of California, San Diego. The Gemini file system is a UNIX compatible replicated file system. It was used as a test-bed for experimenting with file replication policies.

 

Patents

"Method and Apparatus for Determining Equality of Objects in a Distributed Object Environment." Patent Number 6,697,877. With Jeff Dinkins and Mark Hapner. Awarded February 24, 2004.

 

Personal

I am fluent in Spanish due to living and traveling in Mexico since I was a teenager.
Willing to travel, willing to relocate for the right position.