With the adoption to Web service technologies, more and more existing non-service-oriented software systems turn to be legacy systems. They require a service-oriented reengineering process in order to survive in serviceoriented computing environment. In this paper, we present an architecture-based service-oriented approach to support service-oriented reengineering. It integrates and reuses software components as services over Internet by wrapping underlying computing models with XML. Service identification and service packaging processes are described in details, which are the keys to serviceoriented reengineering. Target services are defined according to service identification, which is based on a comparison of analyses in both problem domain and legacy systems. Clustering techniques are applied in service identification process to analyse recovered architectural information and to identify related modules. Service packaging is benefit from architecture-based development and reuse.