The author describes the state of the art in models of concurrency. The models are analyzed along two dimensions: communication and computation. Some problems which make it difficult to realize large-scale concurrent systems are examined. Such problems include compositionality, heterogeneity, debugging, resource management, and concurrency control. Some useful comparisons are drawn to problems in distributed databases, and it is argued that solutions to these problems cross disciplinary boundaries. Finally, the author discusses trends in building concurrent computers and provides some expectations for the future.