The Internet of Things has gained extraordinary popularity recently and is only expected to grow in the coming years. Being able to receive data and information from Things anywhere in the world will bring big changes in every facet of people's daily lives. These Things are service providers themselves. A user should be able to find a Thing and ask for a service that will be provided by the Thing. But problems come with find and select services on too many Things. Users must be select the most appropriate and beneficial smart object to carry out a given task. All of these are some of challenges that are rising from the popularity of the Internet of Things. This research will investigate the above questions and try solve them using two well established computer science concepts; Service-oriented Architecture (SOA) and context-awareness. The goal of this research will be to introduce a Service-oriented Context-aware Architecture for the publication and provision of services in the Internet of Things. A prototype implementation of the architecture will also be introduced.