el. For example, many applications support the notion of User Defined Data Fields. When displayed on the screen in the right context Chapter 6 - Integrating the OSS Platform "1MB" could easily be interpreted as a line speed in one context, or a calling feature in another. Doing this programmatically means establishing and codifying the rules that determine the context, which again can be extremely difficult and time consuming. Determining the right programmatic context for any given event is really the core challenge. From a programing viewpoint, the integration code needs to contain the rules that understand the metadata of the specific configuration, e.g., the configuration of a particular instance of the product catalog structure or the network model, and the specific business rules of those configurations. In short, integration is not only a syntactic mapping of data from one application to another, it is also a semantic mapping of the meaning of the data in a given context. In order to accomplish this semantic mapping, significant logic and processing is required in the integration layer to interpret metadata successfully and to extract a business event from a source application. Equally significant effort is required to insert data into a target application and update the associated metadata in the correct context. Process and Data Assumptions While flexibility is key to packaged application software, it has a limit. Some fundamental process assumptions, necessary to provide the application's framework, are inherent in all packaged applications. For example, consider how an order number is assigned to an order, and how is it derived. Some packages assign an order number when the order is started, some when it is completed. Some packages generate an order number internally and insist on its use, others will accept an externally generated number. Similar assumptions exist in such things as the creation of customer account structures, the organization of network elements and the identifiers and codes that go a