Ubiquitous and pervasive computing are recent paradigms with a goal to provide computing and communication services anytime and everywhere. In ubiquitous computing, the main objective is to provide users the ability to access services and resources all the time and irrespective to their location, while in pervasive computing, the main objective is to provide spontaneous emergent services created on the fly by mobiles that interact by ad hoc connections. The design and development of ubiquitous and pervasive applications require new protocols and architectures to efficiently use resources and services. Gaber's classification of interaction paradigms emphasizes two alternative paradigms to the traditional client-to-server paradigm (CSP) to design and implement Ubiquitous and Pervasive applications, which are the Adaptive Services-to-Client Paradigm (SCP) and the Spontaneous Service Emergence Paradigm (SEP). These paradigms involve context awareness, auto-adaptive and emergence principles that could be implemented by self-organizing and reactive intelligent networks. Approaches and protocols that are mainly proposed to meet these requirements can be classified into two major research directions. The first direction addresses semantic languages to specify and describe application components, including complex planning mechanisms that utilize these descriptions to generate the whole application or composite service. The second direction aims to develop architectures that enable scalable, fault tolerance, and adaptive applications in dynamic environments. This talk will survey current approaches and protocols proposed to design and built ubiquitous and pervasive applications. We will present service-oriented architecture principles with service description languages. We will also highlight new research directions that can leverage the tremendous potential of this new category of applications.