Web services are becoming the prominent paradigm for distributed computing and electronic business. This has raised the opportunity for service providers and application developers to develop value-added services by combining existing web services. However, current web service composition solutions do not address software engineering principles for raising the level of abstraction in web-services by providing facilities for packaging, re-using, specializing and customizing service compositions. In this paper we propose the concept of service component that packages together complex services and presents their interfaces and operations in a consistent and uniform manner in the form of an abstract class definition. Service components are internally synthesized out of reused, specialized, or extended complex web services and just like normal web services are published and can thus be invoked by any service-based application. In addition, we present an integrated framework and prototype system that manage the entire life-cycle of service components ranging from abstract service component definition, scheduling, and construction to execution.