You are in the College of Computing SciencesCollege of Computing Sciences

Department of Computer Science

Gehani, Narain

Contact Info
Title: Professor
Office: 4304 GITC
Phone: 973-596-2318
Dept: Computer Science Department

About Me

Narain Gehani, PhD, a world- renowned expert in web technologies, software and databases, is a Professor in the Department of Computer Science at New Jersey Institute of Technology. Gehani, who has worked at NJIT since 2003.

Prior to joining NJIT’s faculty, held positions of increasing responsibility with Bell Labs – Lucent Technologies from 1978 through 2001. His most recent position was as vice president of a software research laboratory. While at Bell Labs, Gehani was engaged in leading-edge technology projects such as office computing access for mobile workers, collaborative telephone/Web environment, Voice XML and XML query languages. His past projects included working on a web-based contact center and network management applications. Earlier, he was president and co-founder of Maps on Us, a website providing maps, routes, and yellow pages. He has taught computer science at the State University of New York at Buffalo.

Gehani is the author of nine software systems, 10 books and 70 scholarly papers. He is the co-holder of 12 patents.

Gehani is the founding director of the NJIT Science and Technology Enrichment Program (STEP), a highly selective program for high school students interested in hands-on technology. The program, which began in the fall of 2005, aims to encourage high school students to study science and technology and to one day work as professional scientists, engineers and technologists.


  • Ph.D in Computer Science, Cornell University, August 1975

  • MS in Computer Science, Cornell University, May 1975

  • BS in Mechanical Engineering, Stevens Institute of Technology, 1971

  • BTech in Mechanical Engineering, Indian Institute of Technology, 1969

Courses I Teach



CIS431 - Database System Design & Management


  • Apparatus For And Method Of Displaying A Data Item Of A Database Using the Display Function of a Selected Data Item (with R.Agrawal). US Patent Number 5,412,774, granted 05/02/1995.
  • Method For Making Data Objects Having Hidden Pointers Persistent (with A. Biliris and S. Dar). Issued on 12/31/96 as US Patent Number 5,590,327.
  • Maintaining Consistency of Database Replicas (with M. Rabinovich). Issued on 6/9/98 as US Patent Number 5,765,171.
  • Maintaining Consistency of Database Replicas (with A. Kononov & M. Rabinovich). Issued on 8/1/00 as US Patent Number 6,098,078 (continuation of patent number 5,765,171)
  • Technique for Obtaining Information and Services over a Communication Network (with Vinod Anupam), European Patent number 98303057.8, 6/23/98.
  • Technique for Obtaining Information and Services over a Communication Network (with Vinod Anupam), US Patent Number 6,070,185, May 30, 2000.
  • Preventing Conflicts in Distributed Systems (with M. Rabinovich). Issued on 9/1/98 as US Patent Number 5,802,062.
  • Technique for Obtaining and Exchanging Information on the World Wide Web (with Vinod Anupam and Ken Rodemann). November 23, 1999; US Patent Number 5991796.
  • Technique for Sharing Information on the World Wide Web (with W. D. Roome). June 29, 1999; US Patent Number 5918009.
  • Technique For Obtaining And Exchanging Information On World Wide Web (with Vinod Anupam & Ken Rodeman). US Patent Number 5991796.
  • Geo-Enabled Personal Information Managers (with Rich Trapp and W. D. Roome). Issued on 8/31/99, US Patent Number 5946687.
  • Method And Apparatus For Sharing Asymmetric Information And Services In Simultaneously Viewed Documents On A Communication System (with Vinod Anupam). Issued on 03/05/2002 US Patent Number 6353851.
  • Apparatus and Method for Sharing Information In Simultaneously Viewed Documents On A Communication System (with Vinod Anupam). Issued on 03/19/2002, US Patent Number 6360250.
  • Apparatus and Method for Sharing Information In Simultaneously Viewed Documents On A Communication System (with Vinod Anupam). Issued on 06/25/2002, US Patent Number 6411989.
  • Filed: Apparatus And Method For Sharing Information In Simultaneously Viewed Documents (with Vinod Anupam).
  • Filed: Technique For Fine-Grained Logging Of Web User Activity (with Vinod Anupam).
  • Filed: Update Propagation in Epidemic Replicated Data Bases (with Misha Rabinovich).
  • Filed: Technique For Sharing Information On World Wide Web (with Vinod Anupam).
  • Filed:Technique For Obtaining Information And Services Over A Communication Network (with Vinod Anupam).
  • Filed: WebDirect: Web-Based Cooperative Browsing (with Vinod Anupam).

Software Systems Developed

 Software Systems Developed:  

MapsOnUs (
  • Launched new commercial web service Maps On Us offering maps, route planning and yellow pages.
  • Maps On Us has been reviewed in numerous places as the best in class (during 1997)
  • Sold it to SwitchBoard
  • Developed business plan, marketing and sales strategy
  • Assembled team, managed development and launch
  • Led product management (including P&L), product development, marketing, and sales function
  • Pioneering object-oriented database that was distributed to over 500 universities and research institutions
  • Lead to numerous research publications and some patents
  • Concurrent C/C++
  • Parallel version of C and C++ that was distributed to over 700 universities and research institutions
  • Lead to numerous research publications
  • Converged voice and data for a PBX
  • Web-based customer care center
  • Lead to numerous patents – including one the notion of “cobrowsing” which is used in many customer care systems
  • Several patents
Network Contact Center
  • Puts the call center capabilities in the network
  • Unfiied handling of voice and web customer requests
  • Adds trigger capabilities to LDAP directories
  • Published research papers
Exceptional C
  • Extends C by providing exception handling capabilities
  • Published research paper



  • The LTAP Trigger Gateway for LDAP Directories (with R. M. Arlein and D. Lieuwen). Software – Practice and Experience., 30(9), pp. 1003-1024, July 2000.

  •  Making LDAP Active with the LTAP Gateway: Case Study in Providing Telecom Integration and Enhanced Services (with R. M. Arlein, J. Freire, D. Lieuwen, and J. Ordille). Workshop on Telecommunications in Databases, Edinburgh, UK, September 1999.

  • Versions in Ode: Implementation & Experiences (with D. Lieuwen). Practice & Experience, v29, no. 5, pp. 397-416, May 1999.

  • Accessing Extra Database Information: Concurrency Control and Correctness (with K. Ramamritham, Shanmugasundaram, & O. Shmueli). Accepted for publication in  Information Systems: An International Journal, 23(7), pp. 439-462, 1998.

  •  WorldFlow: A System for Building Global Transactional Workflow (with M.Kamath, D. Lieuwen, K. Ramamrithan). HPTS ´97 (High Performance Transaction Systems), Asilomar, CA.

  •  Ode Triggers: Monitoring the Stock Market. Software – Practice & Experience 27(8), 905-927, August 1997. (with Dan Lieuwen).

  • The Ode Active Database: Trigger Semantics and Implementation (with Bob Arlein and Dan Lieuwen). ICDE-12, New Orleans, LA, 1996.

  •  Scalable Update Propagation in Epidemic Replicated Database (with Michael Rabinovich and Alex Kononov). EDBT 1996, France

  •  Active Database Facilities in the Ode Object-Oriented Database System. (with Jagadish). In Active Database Systems, J. Widom and S. Ceri, Morgan Kaufman, 1996.

  • Queries in an Object-Oriented Graphical Interface (with Dar, Jagadish & Srinivasan). Journal of Visual Languages and Computing, March 1995.

  • ASSET: A System for Supporting Extended Transactions. SIGMOD, Minneapolis, M N, 1994. (with A. Biliris, S. Dar, H. V. Jagadish, & K. Ramamritham).

  • OdeFS: A File System Interface to an Object-Oriented Database (with H.V. Jagadish & W. D. Roome).VLDB 94, Santiago, Chile.

  • The Ode Object-Oriented Database: An Overview. In Object-Oriented Database Systems edited by A. Dogac, M. Tamer Ozsu, A. Biliris, and T. Sellis. Lecture Notes in Computer Science, Springer Verlag. Vol. F 130, September 1994.

  • Active Database Facilities in Ode (with H. V. Jagadish). IEEE Database Engineering, v15, no. 1-4 January 1993.

  • Making C++ Objects Persistent: Hidden Pointers (with S. Dar & A.Billiris). Software Practice & Experience, v23(12), p1285-1303, December 1993.

  • Compose: A System for Composite Event Specification and Detection (with Jagadish & Shmueli). Workshop, Advanced Database Concepts and Research Issues, edited by Nabil R. Adam and Bharat Bhargava, Lecture Notes in Computer Science, Springer Verlag, 1993.

  • The O++ Database Programming Language: Implementation and Experience. (with R. Agrawal and S. Dar). Proc. IEEE 7th Int´l Conf. Data Engineering, Vienna, Austria, 1993.

  • Event Specification in an Active Object-Oriented Database SIGMOD, San Diego, CA, 1992 (with Jagadish & Shmueli).

  • Composite Event Specification: Model & Implementation (with Jagadish & Shmueli). VLDB 92, Vancouver, BC, Canada.

  • CQL++ A SQL for a C++ Based Object-Oriented DBMS. EDBT 92, Vienna, Austria (with S. Dar and H. V. Jagadish).

  • Ode as Active Database: Constraints and Triggers. VLDB 1991. (with H. V. Jagadish).

  • Implementing Concurrent C. Software Practice & Experience, v22, no.3 (March), 1992. (with W. D. Roome).

  • Concurrent C: Real-Time Programming and Fault Tolerance. Software Engineering Journal (Great Britain), May 1991, v6, no.6 pp. 83-92.

  • Real-Time Concurrent C: A Language for Programming Dynamic Real-Time Systems. Real-Time Systems Journal, v3, no.4, December 1991, pp. 377-405. (with Krithi Ramatritham).

  • Experience with Multiple Processor Versions of Concurrent C (with R. F. Cmelik & W. D. Roome). IEEE Transactions on Software Engineering, v15, no. 3 (March), pp. 335-344, 1989.

  • Concurrent Programming & Robotics (with I. J. Cox). International Journal of Robotics Research, v8, no. 2, 1989, pp. 3-16.

  • Dimensional Analysis using C++ Data Abstraction Facilities (with R. F. Cmelik) IEEE Software, May 1988, pp. 21-27.

  • Fault Tolerant Concurrent C: A Tool for Fault Tolerant Distributed Programming.(with Cmelik & Roome) The 18th International Symposium on Fault-Tolerant Computing (June 1988), pp. 56-61, Tokyo, Japan.

  • Concurrent C++: Concurrent Programming With Class(es) (with W. D. Roome). Software Practice & Experience, v18, no. 12, pp. 1157-1177 1988.

  • Message Passing: Asynchronous vs. Synchronous. Software Practice & Experience, v20, no. 6, pp. 571-592,1990.

  • Capsules: A Shared Memory Access Mechanism. IEEE Transactions on Parallel and Distributed Systems. v4, no. 7 (July 1993), pp. 795-811.

  • (Fault Tolerant) Concurrent C. Proceedings of IFIP/IFAC Conference on Hardware and Software for Real Time Process Control edited by J. Zalewski and W. Ehrenberger, pp. 87-100, Warsaw, Poland, June 1988.Published by North-Holland.

  • Exceptional C or C with Exceptions. Software Practice & Experience, v22, no. 10 (October), pp. 827-848.

  • Ode: Object Database & Environment. SIGMOD, Portland, Oregon, 1989. (with R. Agrawal). Also in Object-Oriented Databases with Applications to CASE, Networks and VLSI CAD edited by R. Gupta and E. Horowoitz.

  • Rationale for the Design of Persistence and Query Processing Facilities in the Database Programming Language O++ (with R. Agrawal). 2nd International Workshop on Database Programming Languages, pp. 1-16,Portland, Oregon, 1989.

  • Object Versioning in Ode. (with R. Agrawal, S. Buroff and D. Shasha). 1991 IEEE Data Engineering Conference, Kobe, Japan.

  • OdeView: The Graphical Interface to Ode. (with R. Agrawal and J. Srinivasan). SIGMOD, Atlantic City, 1990.

  • OdeView: A User-Friendly Graphical Interface to Ode (Video Presentation; with R. Agrawal and J. Srinivasan). SIGMOD, Atlantic City, 1990.

  • Concurrent C: Design Decisions and Overview. Byte, v15, no. 13 (December), 1990, pp. 327-334. (with W. D. Roome)

  • Using Exceptions to Handle Errors in Robotics (with I. Cox). IEEE Computer, March 1989.

  • Concurrent C: A Tool for Distributed Programming. UNIX Review, May 1989, pp. 60-70. (with W. D. Roome).

  • Ode & OdeView: An Object Database & Environment. AFCEA 90 (with S. Dar).

  • Concurrent C for Real-Time Programming. Dr. Dobbs. Journal, November 1989. (with W. D. Roome)

  • Discrete Event Simulation in Concurrent C. Dr. Dobbs. Journal, Special Winter Issue 1989. (with W. D. Roome)

  • Ada Tasking: Expressiveness & Real-Time Programming. 3rd International Workshop on Real-Time Ada Issues, pp. 137-146, Pittsburgh, PA, June 1989.

  • Concurrent C/C++ and its Application to Robotics (with I. Cox). Presented at the OCATE Second Annual Workshop on Parallel Computing, April 12-13, 1988, Portland, OR.

  • Rendezvous Facilities: Concurrent C and the Ada Language (with W. D. Roome). IEEE Transactions on Software Engineering, v14, no. 11, November 1988, pp. 1546-1553.

  • Concurrent C and Robotics (with I. J. Cox). 1987 IEEE Conference on Robotics and Automation, pp. 1463-1468, March 1987, Raleigh, NC.

  • Concurrent C (with W. D. Roome). Software Practice & Experience, v16, no. 9, pp. 821-844, September 1986.

  • UNIX Document Formatting and Typesetting. IEEE Software, v3, no. 5, p15-24, Sept. 1986.

  • Flex: A High Level Language for Specifying Customized Computers (with D. E. Comer). IEEE Transactions on Software Engineering, vSE-11, no. 4, pp. 387-395, April 1985.

  • Ada´s Derived Types and Units of Measure. Software Practice & Experience, v15, no. 6, pp. 555-569, June 1985.

  • Concurrent Programming in the Ada Language: The Polling Bias. Software Practice & Experience, v14, no. 5, pp.413-427, May 1984 (with T. A. Cargill).

  • Broadcasting Sequential Processes (BSP). IEEE Transactions on Software Engineering, vSE-10, July 1984.

  • An Electronic Form System: An Experience in Prototyping. Software Practice & Experience, v13, pp. 479-486, 1983.

  • High Level Form Definition in Office Information Systems. Computer Journal, v26, no. 1, pp. 52-58, February 1983.

  • Specifications: Formal and Informal A Case Study. Software Practice & Experience, v12, no. 5, pp. 433-444, May 1982. Also in Software Design Techniques (4th Edition) edited by Peter Freeman and Anthony Wasserman, IEEE Computer Society Press, 1983 and in System and Software Engineering Requirement Engineering edited by Richard H. Thayer and Merlin Dorfman, IEEE Computer Society Press.

  • Databases and Units of Measure. IEEE Transactions on Software Engineering, vSE-8, no. 6, pp. 605-611, November 1982.

  • Concurrent C An Overview. Winter 1985 USENIX Technical Conference, Dallas, Texas, January 1985. (with W. D. Roome)

  • Concurrency in Ada and Multicomputers. Computer Languages, v7, no. 1, 1982.

  • A Study in Prototyping. ACM Software Engineering Notes, v7, no. 5, December 1982. (Presented at ACM SIGSOFT Second Software Engineering Symposium: Workshop on Rapid Prototyping, Columbia, Maryland, April 1982.)

  • The Potential of Forms in Office Automation. Special Issue of the IEEE Transactions on Communications on Communications in the Automated Office, vCOM-30, no. 1, January 1982.

  •  Program Development by Stepwise Refinement and Related Topics. Bell System Technical Journal, pp. 347-378, March 1981.

  • A High Level Data Structure the Grid. Computer Languages, v4, no. 2, 1979.

  •  Some Ideas on Data Types in High Level Languages. CACM, v20, no. 6, June 1977. Also presented at the ACM Conference on Data in Salt Lake City, Utah, March 76 (with David Gries).

  •  Units of Measure as a Data Attribute. Computer Languages, v2, no. 3, 1977.

  • A New Data Structure the Grid. Computer Methods in Applied Mechanics and Engineering, 11(1977),  pp. 295-308.

  • A Comparison of the Programming Languages C and Pascal. ACM Computing Surveys, v14, no. 1, March 1982.Also in Interface, v1, no. 4 and no. 5, 1982 (with A. Feuer).

  • Generic Procedures: An Implementation and an Undecidability Result. Computer Languages, v5, pp. 155-161, December 1980.

  • Denotational Semantics for the Data-Flow Language VAL (with C. S. Wetherell). Presented at the Workshop on Applicative Languages and Parallel Computation, July 1980, Dedham, MA.


  • Concurrent Programming. Encyclopedia of Computer Science & Engineering edited by A. Ralston and E. D. Reilly, Van Nostrand Reinhold, 1993.
  • A Methodology for Comparing Programming Languages (with A. Feuer). In Comparing and Assessing Programming Languages edited by Alan Feuer and Narain Gehani. Prentice-Hall, 1985.
  • An Early Assessment of the Ada Programming Language. In Comparing and Assessing Programming Languages edited by Alan Feuer and Narain Gehani. Prentice-Hall, 1984.
  • Informal and Formal Specifications with Stepwise Refinement. In Software Engineering: Developments, edited by Peter Wallis. State of the Art Report (11:3),Pergamon Infotech, 1983.


  • Bell Labs: Life in the Crown Jewel , Silicon Press, 2003
  • Concurrent C (co-author W. D. Roome). Silicon Press & Prentice-Hall Intl., 1989.
  • Concurrent Programming (co-editor A. McGettrick). Addison-Wesley, 1988
  • Document Formatting and Typesetting on the UNIX System. Silicon Press, 1987.
  • Document Formatting and Typesetting on the Unix System, Volume 2 (co-author S. Lally). Silicon Press, 1988.
  • C: An Advanced Introduction. Computer Science Press, 1985.
  • Software Specification Techniques (co-editor A. McGettrick). Addison-Wesley, 1985.
  • Comparing and Assessing Programming Languages (co-editor A. R. Feuer) Prentice-Hall, 1984
  • Ada: Concurrent Programming. Prentice-Hall Intl. Edition, 1994
  • Ada: An Advanced Introduction. Prentice-Hall, 1983