we describe a system to facilitate the creation and management of symbiotic relationships between one or more mobile devices and one or more environmental services ( i . e ., services offered by environmental devices ). these environmental services may include : high resolution display services , computational offload services , transportation scheduling services , product review services , and many more . by establishing symbiotic relationships between mobile computers and environmental computing devices , users receive the advantages of mobile computing devices such as the portability , sole ownership , and privacy as well as the advantages of the richer set of capabilities of non - mobile environmental devices such as larger display sizes , access to abundant resources such as computing power and energy , and faster network communication . establishing such symbiotic relationships in a seamless fashion , as and when required ( on demand ), to a multitude of different users with differing needs in a variety of settings is a difficult challenge addressed by ongoing work in the field of pervasive computing , also known as ubiquitous computing , or ubicomp . pervasive computing is the next generation computing environment making information and communication technology available everywhere , for everyone , at all times by embedding computing into existing human systems . as an example , ibm is working with distributed display surfaces called “ blue boards ” that , combined with wireless technology , allow users to access personal content anywhere and anytime . referring to fig2 there is shown a ubiquitous computing environment 200 including environment services brokers , according to an embodiment of the present invention . the system 200 of fig2 includes a metropolitan area network ( man ) 225 , and a hosting center 240 including three remote environmental services brokers 220 . two service zones , 260 and 280 , are shown , each with its own environmental services broker a service zone is a physical public space where several environmental services are available for use by mobile devices . examples of such spaces may be a meeting room , a train / bus or other transportation vehicle , a shopping mall , a bus station , a section of an airport , and so on . generally service zones are located in public areas that experience a high density of mobile users , for at least a significant portion of the day . the man 225 and the hosting center 240 are connected to the internet 230 . environmental services broker . central to the environment of fig2 is the environmental services broker 220 . an environmental services broker ( esb ) 220 is a special kind of environmental service that is aware of the other environmental services available in a particular zone and manages the use of these services , making them available to mobile devices that visit the zone ( are in range of the zone ). the esb 220 is configured to provide services that are customized to its service zone , taking into consideration the location of the zone , and the device configurations within the zone . such customized services may include media transcoding services which are characteristic of the device capabilities in the zone . the esb 220 can be aware of the other environmental services through the use of location - aware applications . the esb 220 may also carry out some of the requested environmental services . the esb 220 is essentially a machine offering a collection of services to the mobile devices that transit a service zone . it facilitates the creation and management of symbiotic relationships between one or more mobile devices and one or more environmental services and also helps manage the other services that are deployed in the zone . managing the services includes authenticating the mobile devices transiting the zone , maintaining a registry of the services available in the zone , some of which are offered by the mobile devices , controlling access and metering access to these services . each service zone is managed by an esb and the esb may either be resident in the zone itself , such as for zones 260 and 280 , or housed at a remote hosting center , such as the hosting center 240 . an esb could also be responsible for multiple service zones . in this way the reach of the esb is easily extended rather than adding additional esbs for every additional service zone . additionally , an esb could delegate its services to another processor if that is what is necessary to accommodate the requirements of the service zone . note that even though an esb in this scenario is not performing all of the broker services itself , it is still managing the service zone . service zones . the system 200 shows two service zones , 260 and 280 . a service zone is a physical space where several environmental services are available for use by mobile devices . examples of such spaces may be a meeting room , a bus / train station , a section of an airport , a train / bus or other transportation vehicle , and the like . each zone may offer several environmental services , examples of which include high resolution display services , high speed wireless network connectivity services , and computation offload services . the service zones 260 and 280 include computing power with a network interface , high - speed wireless connectivity and an everywhere interactive display ( eid ). the eid is a steerable projector equipped with a motion - detecting web cam . these are just some examples of the services offered in service zones . mobile devices such as the pdas and cell phones shown in fig2 can access the computing power of the service zones 260 and 280 through a wireless connection , such as wi - fi or bluetooth . service zones can be implemented in just about any location equipped with environmental devices and are configured to accommodate a wide variety of devices , with multiple interconnection technologies and types of services . a service zone can scale from a small service zone with one or two environmental devices , such as in a bus station , to hundreds of devices in a large zone , such as a major train station . infrastructure . the networking infrastructure of the environment 200 accommodates existing interconnect technologies and is designed to accommodate emerging technologies . as such , the infrastructure is scalable . the backbone of a service zone is preferably an ip lan implemented using switched 100 / 1000 mbps ethernet . access points for available wireless communication technologies , such as wifi , bluetooth , and irda ( infrared data association ), are connected to the lan . all these access points are configured in bridging mode . as a result , bluetooth - connected clients can communicate seamlessly with wifi , irda or wired ethernet - connected mobile or environmental devices , or with bluetooth - connected devices on a different piconet ( a network of devices connected in an ad hoc fashion using bluetooth technology ). this is an example of using off - the - shelf products to provide a robust solution to assuring interoperability between mobile devices with different connection technologies . the design of the architecture 200 makes every attempt to be independent of the networking technologies , hardware platforms , operating systems , runtime frameworks and programming languages used for its initial implementation . however , given the self - describing nature of xml ( extensible markup language ) documents , including web service interfaces and messages , and the growing popularity of web service technologies , for now it is desirable to use web services for inter - device communication and other open , xml - based standards for describing device capabilities and other elements of the architecture 200 . users should also be provided with adequate security and privacy guarantees . adequate safeguards must be in place to ensure that the information exchanged between a user &# 39 ; s mobile device and the environmental services are protected from various kinds of attacks . there should be a way for environmental services to certify to the users that they will protect the confidentiality of the information they receive from the mobile devices , and also a way for the mobile devices to transparently validate these certifications without explicit involvement of the users of the mobile devices . well - tested cryptographic technologies , such as ssl are used to protect the communication between client and broker from attacks . a client agent on the mobile device can automatically authenticate the device to the broker using standard account / password techniques or directly , by using ssl connections configured with client authentication . in order to realize the vision of such a wide - spread deployment of services , the architecture needs to ensure that the entry barrier to deploying such a service zone is low . in addition the service zone should be immediately accessible and usable by a wide range of mobile devices already in existence . further , once deployed , a service zone should be easy to manage and administer . as newer devices are introduced in the market , and newer services are developed , it should be easy to roll out support for these to existing zones . the administrative cost of managing such roll - outs should be minimal . towards these goals , service zones should be adequately equipped with equipment for remote testing of existing and newly deployed services and for intelligently monitoring and reporting problems that mobile users experience . the esb 220 could conduct the monitoring and testing . since service zones are in public spaces , service providers may have to procure licenses for operation and abide by local regulations . compliance could include maintaining a secure log with the identity of the individuals utilizing services , ensuring that standards of decency are maintained , such as disallowing viewing of content suitable only for mature audiences , providing zone services without discrimination , documenting zone quality and user satisfaction and obtaining a certified rating from a local governing body , and so on . this collection of stringent requirements mandates incorporating as many proven technologies as possible into the service zone architecture and its implementations . for simplicity and clarification , fig2 is shown with only a few environmental devices and two service zones . the environment 200 as shown is easily extensible to support more than two service zones . fig3 shows ubiquitous collaboration system architecture 300 , according to an embodiment of the invention . the esb 220 in this example is shown as a single device such as a server . in actuality , the esb 220 may be any computing system or even program code stored in a computing system . local producers 365 are devices within the zone that host services , such as an intelligent display or a thermostat accessible across a wireless connection . remote producers are internet sites that provide services , such as amazon . com which provides a web services - based interface for shopping . a large collection of plug - ins is used to customize the esb to the requirements of the zone and its users . roughly , the plug - ins are either application plug - ins 340 , which enhance the application - level functionality of the devices ( fixed or mobile ) in the zone or even that of the esb 220 when viewed as a device providing application - level services , or infrastructure plug - ins 350 , which enhance the ability of the esb 220 and zone devices to interact with each other in an efficient ( secure , scalable , maintainable , cost - efficient ) manner . this system 300 also includes an upnp ™ ( universal plug and play ) gateway 380 to accommodate upnp ™ clients . upnp ™ uses standard tcp / ip protocols and can be supported on most operating systems . it offers pervasive peer - to - peer network connectivity of pcs of all form factors , intelligent appliances , and wireless devices . some of the services available in the service zone 330 are : large display 318 , pc 316 , handheld or watch 314 , speaker or handset 312 , and others 310 . some of these devices may need custom plug - ins to make them work well with the local esb or directly with the mobile devices in the zone . these plug - ins are stored and managed by the esb . fig4 shows the elements of the esb 220 . note that these elements are logical constructs , defined here to illustrate the different functions of the esb 220 . all of the different aspects of the esb 220 services can be installed on any computing device that is network connected and has adequate computing resources to perform these operations in an efficient manner . the esb 220 services can be embedded into devices that are appropriate for the zone being managed . for instance , if the zone is in a user &# 39 ; s home then the broker services may run on a set top box and manage the services offered by various large screen displays in the home , personal computers in the home and the like . wireless access points are also suitable devices where the broker services may be embedded . any device offering a service , such as a projector or a high resolution display , may host broker services so that other devices in the vicinity may register themselves with it . input / output manager 405 : this element of the esb 220 handles the interaction with the mobile devices 415 and the environmental services 425 hosted on environmental devices . all inputs and outputs to / from the esb 220 are handled by the i / o manager 405 . discovery and use of the services should be intuitive and readily apparent even to users who do not possess a high degree of technical skills ; they should also be quick , as users may be only traversing the zone . in many scenarios , mobile devices can interact with environmental devices without the intervention of the user . the mobile device will attempt to get the attention of its owner only after it is determined that the user attention is desired or necessary . the architecture and its implementations are context aware , therefore they should be aware of the level of cognitive load they place on the users . it should be easy for users to express their intentions to their mobile device as well as to the environmental services . user annoyance as a result of devices seeking user attention unnecessarily should be minimized . inside a zone , the mobile device should solicit the user attention based on the available services , user profile and context , such as time of day , day of the week , purpose of the trip , and based on who else is in zone — e . g ., friends , family , and so on . as mobile users integrate usage of certain celadon services into their daily routines , they will expect these services to be highly available ( inside the zones ) and exhibit predictable response times . these expectations will be enforced by their usage of cell phones as the preferred mobile device , which is typically associated with the highly available cellular service . registration and query manager 410 : the esb 220 provides a centralized registration service where different environmental services 425 register themselves with it and for mobile devices 415 to be able to query and learn about these services . when an environmental service 425 becomes available in a service zone , it must first register itself with the esb 220 . it must provide information on its address , capabilities and functionality . similarly , mobile devices transiting the zone can register the services they host with the local esb using the registration and query manager 410 . mobile devices can query the broker to discover these services eliminating the need for complex protocols such as multicasts . the discovery of the esb 220 itself is piggy - backed on the ip address assignment in cases where the mobile devices only have local connectivity . when a mobile device obtains a local ip address from the zone - local . dhcp server , we use a naming convention that enables the mobile device to find the location of the esb 220 by performing a dns lookup for esb 220 in the assigned domain name . in cases where the mobile device has an ip address assigned by a dhcp server outside of the local service zone , the mobile device finds the esb 220 using a dns lookup for the name of the esb 220 that manages the zone in question . for example , when a mobile device 415 enters a service zone , it first discovers the esb 220 services and communicates with it to discover the other services that are present in the zone and also to discover the ones that are currently free and available for the mobile device 415 to use . the mobile device 415 can “ discover ” the esb 220 services because it is equipped to receive radio frequency ( rf ) signals from at least one wireless access point assigned to the zone and connected over the lan to the esb 220 , or directly from the esb 220 if the esb 220 is implemented in the access point device . when the mobile device 415 is within range of a service zone , it will pick up the rf signal characteristic to the service zone . the user of the mobile device 415 will be made aware of the signal by an led ( light - emitting diode ), a beep or some other signal . if the user wishes to receive information about the services currently offered in this service zone , the user will acknowledge the signal . referring to fig7 there is shown the pda 314 of fig3 with an active led 715 using irda standards , indicating communication from the esb 220 . the display , screen 720 shows a textual representation of the services available . rather than a textual representation , the display might be generic icons corresponding to the different services . for example , a printer icon would resemble a printer , or a sheet of paper . the pda 314 might also be fitted with sensors and actuators to receive information about the services available . once the signal is acknowledged by a mobile device 415 , the esb 220 transmits information about the services . fig9 is a simplified illustration of a mobile device 900 with an embedded agent supporting the rich client platform . the mobile device 900 contains embedded rich client platform ( ercp ) bundles , which are used for the user interface . these ercp bundles act as an embedded agent , handling the communication between the mobile device 900 and the esb 220 . a sensors 915 and actuator 935 facilitates the communication between the device 900 and the esb 220 . session manager 420 : when the user of a mobile device 415 discovers that there are services in the zone that are of value to it , and that these services 425 are currently available as shown in fig7 , the user can request the esb 220 to enable the device 415 to use these services 425 . the esb 220 then sets up a session where the services 425 are reserved for the requesting mobile device 415 . until the mobile device 415 has released the service 425 , it will not be made available to another user . the esb 220 also enables the mobile device 415 to remove services 425 from the session that was created . session management also includes the operations required to tear down sessions ( for example when the mobile devices 415 in a session leave the zone ). in a service zone , available services can be in use by multiple mobile devices . in a simple scenario , each mobile device uses one or more services independent of the other mobile devices . in a more complex scenario , there may be multiple users who wish to work collaboratively , sharing the environmental services amongst their own devices and exchanging data and control between their mobile devices as well as the environmental services . the owner of a mobile device 415 may wish to include the mobile devices of other users in the session . the esb 220 facilitates this as well . when requested by a mobile device , the esb 220 sets up a session where the requested subset of the zone services is reserved for the requesting mobile device . these services are usable only by the devices that are part of the session . the esb 220 also enables the user of the mobile device to add or remove services from the session that was created . in addition , the esb 220 facilitates including the mobile devices of other users in the session , if the mobile user who started the session wishes to do so . this way the esb 220 can support both the simple usage scenario , where there is a single mobile device that is using one or more of the services in the zone , and the more complex scenario where multiple users get together at a zone to share information . in the latter case , one of the mobile devices creates the session and then allows the other mobile devices to join the session . active sessions are made apparent to any mobile device 415 within the zone by the esb 220 . to join a session , the user of the mobile device 415 may select a session based on off - channel information , such as verbal communication with other mobile device users in the same area . once in the session , the devices have access to all of the services that have been reserved for that session . the actual coordination of the usage of these services is managed by way of associations that are described below . the esb 220 offers session management services , which provide the operations required to set up and tear down sessions , and to ensure that devices in different sessions are prevented from interfering with each other . in addition , the esb maintains session ownership , which includes mediating the transfer of session ownership from one device to another . session tear down may either be explicitly initiated when the owner of a mobile device decides to terminate a session that it owns , or when the mobile devices in a session simply exit the zone . association manager 430 : within a particular session one or more mobile devices 415 may act as clients for the services 425 that have been reserved for that session . while some services 425 may be simultaneously usable by more than one client , some services 425 such as the use of display services such as an eid may support only one client at a time . the esb 220 also manages the relationship between such single - use services and its clients . the management of such relationships is called association management . an association is a relationship between a service and the client that is authorized to use the service . an association is like a pipeline where you can send a message only in one direction at a time . there may be several associations within a session . associations may be created and terminated several times within the same session . the esb 220 manages associations , ensuring that devices in a zone can work together without interfering with each other . if a particular service can support only one client at a time , the esb 220 ensures that the current association is terminated before creating a new one . as part of the association management , the esb 220 also creates and distributes access control tokens to the service provider and the consumer of the service to ensure that unauthorized clients are prevented from accessing services that are not permitted . access tokens are destroyed when the corresponding association is terminated . transcoder 440 : the esb 220 also provides conventional transcoding services to help perform syntactic transformation of data , if necessary , from the mobile devices 415 to the services 425 . this is necessary when the mobile devices 415 use a different format than the format accepted by the environmental services 425 . for example , an environmental display service 425 may be capable of displaying only adobe ® pdf and postscript formats , yet the mobile device 415 needs a display for a document in microsoft word . the transcoding service provided by the esb 220 will transform the user &# 39 ; s word document into pdf or postscripts formats , so that the display service can display it to the user . service providers may add their own transcoding services and could include language translation , or document format conversions , such as size and resolution reduction , color depth conversion , and the like , and make them available in the service zones . metering and logging manager 450 : some environmental services 425 are made available on a pay per use basis , where the owners of the mobile devices 415 pay a certain usage fee to use these environmental services 425 . within a particular session one or more mobile devices may act as clients for the services that have been reserved for that session . since the esb 220 manages the set - up and tear - down of sessions and associations , it also logs the usage of the services and tracks their usage so that the mobile device owners can be billed for the usage of these services 425 . some environmental services are made available on a pay - per - use basis . service providers may use existing payment mechanisms to allow users to enjoy pay - per - service facilities . the esb 220 is also responsible for upgrades and installation of new capabilities , especially on mobile devices . the esb 220 performs these responsibilities so that the mobile user does not have to . access control manager 460 : the esb 220 also manages the access permissions associated with the environmental services 425 , which represent all services available in the zone . although environmental services 425 are shown in fig4 as being external to the esb 220 , in certain zones , some of these services are implemented as esb plug - ins ; note that the collection of environmental services is dynamic , as mobile services transiting the zone can host and register services they host . the access control manager 460 authenticates a new device entering the zone and identifies the subset of environmental services 425 the new device is allowed to use , if any . dynamic code provisioning manager 470 : in many cases the mobile devices 415 may not have the appropriate code installed to use the services that are available in a particular service zone . the esb 220 also maintains required client code for the services 425 that are under its purview and enables mobile devices 415 to download and run the client code so that the mobile devices 415 can use the services 425 that are available . different mobile devices 415 may support different code execution environments ( i . e ., code containers ) and the esb 220 keeps copies of the client code for each such container and dynamically identifies and supplies the appropriate version of the client code that is suitable for the code container supported on the mobile device 415 . the dynamic code provisioning aspect operates at a much finer granularity compared to the code provisioning that osgi ( universal middleware ) or other similar software lifecycle management tools use . in the service zone architecture , mobile devices that enter a zone may come in without the code required to interact with the services in the zone . the requisite code is downloaded on demand into the mobile devices ; when the mobile device exits the zone , and the downloaded code is no longer relevant , it may be deleted from the mobile device . this aspect of the architecture enables the deployment of mobile devices that require a minimum level of pre - installation or pre - configuration in order to use the services in the service zones . all that a mobile device needs is an environment into which code may be downloaded from and executed . when the device enters the zone , the device enters into a dialog with the esb 220 to help the broker determine the type of code container that the device supports . the broker 220 then directs the device to download the appropriate code that matches the code container on the mobile device . additional parameters that represent the context of the mobile device may be provided as part of this initial dialog so that the code that is downloaded to the mobile device can be customized to suit the context of the mobile device , such as its screen resolution or battery level , the ambient noise level , the users preferences , etc . for dynamic code provisioning on mobile devices and environmental services and on the esb 220 , service management framework ( smf ), which is ibm &# 39 ; s implementation of osgi , is the preferred framework . smf is a proven solution for dynamically managing the lifecycle of the software components in these devices . for environmental devices and the esb 220 , smf helps reduce management costs . for mobile devices , smf allows for context - aware on - demand provisioning of these resource - constrained platforms . i / o mapping 480 : some services may support control operations that can be sent to them from the mobile devices 415 . for instance a high resolution display service may support zoom and pan operations . the i / o mapping function supported by the esb 220 helps users find a way to use the i / o controls that are available on their mobile device 415 to generate the appropriate control operations required by the service . the esb 220 maintains descriptions of various mobile device types and the types of i / o controls that are available on each device type . it also maintains a collection of mappings between the i / o controls and the service operations . when a user wishes to control a particular service with his mobile device 415 , the esb 220 searches through its mapping database and shows the user the possible ways in which his mobile device can generate the appropriate control operations and allows the user to choose one of the mappings . once such a mapping is chosen , the user can generate the appropriate control operations by manipulating the controls on his device 415 . the esb 220 dynamically provisions code to the user &# 39 ; s mobile device 415 that can capture the manipulation of the control signals , and maps these operations to the appropriate control operations that the service 425 understands . queues 490 : the esb 220 maintains queues for sessions waiting for a service 425 to become available . the esb 220 sets up an association between such single - use services and the corresponding clients when requested and queues up requests from other clients so that the other clients wait until the current association is ended . when the current association is ended , the single - use service will be made available to the next client in the queue . network access 495 : an esb 220 is typically connected to a lan which has one ore more wifi or bluetooth access points connected to it as well . mobile devices talk to the access points which communicate with the esb 220 over the lan ( or the lan + man for remotely located esbs ). the esb 220 can be equipped with a wireless interface for those situations when the esb 220 is also performing as a wireless access point for the zone . all of the different aspects of the esb 220 service can be installed on any computing device that is network connected and has adequate computing resources to perform these operations in an efficient manner . the esb 220 service can be embedded into devices that are appropriate for the zone being managed . for instance if the zone is in a user &# 39 ; s home the esb 220 service may run on a set top box and manage services offered by various large screen displays in the home , personal computers in the home . wireless access points ( waps ) are also suitable devices where the esb 220 service may be embedded . in an embodiment of the present invention , the esb 220 can be linked to , and share space with , internet hotspots , providing an excellent symbiosis between the wifi capabilities of the currently available internet hotspots and the broader range of services offered by the esb 220 . in fact , any device offering a service such as a projector or a high resolution display may host the esb 220 service so that other devices in the vicinity may register themselves with it . the esb 220 should have ample storage used for its own programs and plug - ins , the code that it dynamically provisions to mobile devices , for storing metering and logging information , and so on . referring to fig5 there is shown a flowchart 500 illustrating an information processing method according to an embodiment of the invention . this method is shown from the perspective of the mobile device 415 . the process begins at step 510 with a mobile device 415 entering a service zone range . the mobile device 415 , once it is within range , receives an rf signal emitted by the esb 220 . the mobile device always acknowledges the rf signal . this is how mobile devices attach to an access point . during that process , which includes the exchange of more than one rf signal , it is determined if the mobile device 415 is allowed to attach to the access point . once attached , the device can try to get a network address , which also requires multiple rf signals and link - level messages to be exchanged . the messages could be in the form of audio messages , visual messages , vibrations , or any other message type representative of the device in use . only after that , the mobile device 415 authenticates himself to the esb 220 . if the authentication is successful and if the user of the mobile device 415 is interested in accessing available services in the zone , the esb 220 identifies itself to the device 415 at that point . the device 415 will then request the list of services available and accessible to it ( based on the result of the device authentication step ). overall , there a lot of messages between the esb 220 and the mobile device 415 until the list of services , if any , is provided to the device 415 . also , note that this list is only provided by the esb 220 upon request . assume the mobile device 415 has authenticated itself in step 520 . this indicates that the user is interested in an environmental service 425 offered at this service zone . once the esb 220 receives the acknowledgment from the user , it transmits a listing of currently available services . these are all of the services which have been registered in that service zone . once in receipt of the list of services , the user , by selecting a particular service , submits the query in step 530 to the registration and query manager 410 ( via the input / output manager 405 ). selecting a particular service may be as simple as clicking on a service listed on the user &# 39 ; s display 720 as shown in fig7 . the esb 220 starts a session to process the user &# 39 ; s request in step 540 . also in step 540 a device can come into the service zone at this point and join an existing session . next , in step 550 the esb 220 creates an association for the requested service 425 , which also includes the creation of access token for the mobile device to use when accessing this service . this access control token is then provided to the mobile device 415 and to the service 425 so that the service 425 can authenticate that the device 415 is authorized to use the service 425 . it is up to the environmental service 425 to authenticate this access token . if an access control token presented by a mobile device is not valid , the environmental service 425 ignores the request and informs the esb about the security violation . every session must have an owner and the owner is the device with the access control token . a new device wishing to join an ongoing session must defer to the owner of the session and that owner can establish an association for the new device . if the owner of the session leaves the session before transferring the access control token , the session is terminated because it does not have an owner . this concept is analogous to a conference call situation where the call is terminated when the primary caller hangs up . if the token is accepted , the mobile device 415 must query the association manager 430 ( via the input / output manager 405 ) if the device is currently available for use in decision 550 . if the device is not available , in step 560 the mobile device 415 request is placed in a queue until the device becomes available . once the device becomes available , in step 570 the request is processed and the mobile device 415 uses the services it needs . the mobile device 415 may invoke the service or any other service in the zone hosted by a device included in the same session multiple times . therefore , if the mobile device 415 wishes to invoke another service in step 575 , the processing loops back to step 560 where it is determined if the requested service is available . once finished with invoking the services in that session in step 575 , the mobile device 415 signals to the esb 220 that the session is ended . in step 585 the association between the mobile device 415 and the service 425 is terminated . if the departing mobile device 415 is the owner of the session then in step 585 the session is torn down and the process ends . alternatively , the mobile device 415 , as owner of the session , could simply exit the service zone and this will automatically trigger the esb 220 to tear down the session . a departing device may choose to transfer the access token to a device just joining a session in order to keep the session going . it is important to note that sessions are not established and terminated every time a mobile device 415 invokes a service . the same service , or the same collection of services can be invoked multiple times from within the same session . sessions are modified when interactions with new devices are necessary , i . e ., the new device ( s ) are added to the existing session or the mobile device 415 terminates its session and joins the ongoing session with which the desired devices are already associated . sessions can be thought of as “ non - overlapping groups of devices ”. referring to fig6 there is shown a flowchart of the above process , but from the perspective of the esb 220 . the process begins at step 605 when the esb 220 receives a registration request for an environmental service 425 in the service zone . note that the service can be hosted either by an environmental device 425 , in which case the registration request is issued when the environmental device 425 is installed in the zone , or by a mobile device 415 , in which case the registration request is issued when the mobile device enters the zone . service registrations are removed when the environmental device 425 is shut down , say for maintenance or upgrade , or when the mobile device 415 leaves the zone . at this point the esb 220 must determine if it can effectively accommodate this service 425 or , if this service 425 does not conflict with an existing service or if it is even necessary or desirable ( from a regulatory perspective ) in this service zone . if so , the esb 220 registers the service in step 610 . registering a service involves receiving information from the service , including the physical location of the service , its name , interfaces , capabilities , compatibility , limitations , and soundness after the service is registered in step 610 , the esb 220 waits for other services to be registered or for a mobile device 415 to enter its service zone . when a mobile device 415 enters the zone it picks up the rf signals that are being constantly emitted by the wireless ( wifi , bluetooth ) access points connected to the esb 220 , or by the esb 220 itself if the esb 220 is implemented on the access point device . this is similar to the signals picked up by users entering a wifi hotspot . after authenticating the device , the esb 220 receives a query for services in step 615 and then acknowledges receipt of the query in step 620 . additionally , at this time the esb 220 informs the mobile device 415 of the services available to it in that service zone . next in step 625 the esb 220 sets up a session and later an association between the device 415 and the service 425 . setting up the session involves creating a session id , allocating the mobile device 415 and the device 425 hosting the service to the session and registering the new session in the registry . the mobile device 415 becomes the owner of the new session . alternatively , as stated earlier , the device 415 can join an existing session if the service or services it wants to access are already assigned to a session . the mobile device 415 can join an existing session only with the permission of the owner of the existing session . similarly , after the mobile device 415 joins an existing session , the esb 220 will have to establish an association in step 630 between the mobile device 415 and the environmental service 425 . at any time , the session owner can transfer the session ownership to another device in the session . this is necessary if the owner device leaves the zone but wants the session to continue . once the association is made in step 630 , if the service 425 determines in step 635 that the access control token supplied by the device 415 is invalid , the environmental service 425 ignores the request and the esb 220 is informed about the security violation . if the session is valid , the esb 220 performs any intervention services needed by the mobile device 415 in step 645 . the esb 220 may determine that i / o mapping is necessary . if so , the mapping is done . it may be necessary to manage the queuing of the device 415 if the service is in use and / or at capacity . if dynamic code provisioning is necessary , it is done at this point . likewise if transcoding is required , it is performed . if the session is a pay - per - service session , then the esb 220 must perform metering and logging tasks . an alternative to a pay - per - service financial arrangement is a subscription service where a user pays a monthly fee . another alternative is a no - contract debit card similar to phone service cards available today . a user would purchase a card for a set amount , enter the key code from the card into the mobile device 415 and would use the services 425 until the card zeroed out . these are just a few examples of the services performed by the esb 220 , and should not be construed as limitations to the scope of the capabilities of the esb 220 . in step 670 the esb 220 receives an indication from the service 425 that the association is ended . this indicates that the mobile device 415 has no further need of the environmental service 425 . the session , however , is still ongoing until the owner of the session ends it . if , in step 665 the mobile device 415 wishes to use another service , it will loop back to step 630 and begin another association to partake of another environmental service 425 . after the association is ended the process is complete until the next request is received , or until a new device enters the zone to participate in that existing session . if , however , the owner of the session wishes to terminate the session and / or leaves the zone , then in step 670 the session is torn down in order to make availability for a new session . in another embodiment the esb 220 provides services for multiple zones and these services are aggregated and run on a back - end network server that is physically far removed form the zone where the services are found . aggregating the environmental services brokering services and running them on a network server enables easy management and load balancing . “ context refers to the physical and social situation in which computational devices are embedded . one goal of context - aware computing is to acquire and utilize information about the context of a device to provide services that are appropriate to the particular people , place , time , events , etc . for example , a cell phone will always vibrate and never beep in a concert , if the system can know the location of the cell phone and the concert schedule .” see thomas p . moran , ibm almaden research center and paul dourish , university of california , irvine , “ introduction to this special issue on context - aware computing ,” special issue of human - computer interaction , volume 16 , 2001 , which is fully incorporated by reference as if fully set forth herein . the esb 220 is capable of managing context - aware provisioning of public services to the participants . location - aware applications can be utilized to assist the services in conforming to a participant &# 39 ; s surroundings . a further advantage of the esb 220 and the infrastructure in which it operates is its scalability . because it operates within a wireless infrastructure , the entire system can be extended by simply adding more services or even by the addition of another lan with its own esb 220 and its own selection of services . referring to fig8 there is shown a high - level block diagram of a computing system configured to operate according to an embodiment of the invention . the system 800 includes a processor 810 which may include several microprocessors . it also includes memory 820 , a usb interface and slots 830 , a bios 840 , flash memory 850 , a network interface 860 , mass storage 870 , wireless interface 880 and a cdrom 890 . a upnp ( universal plug and play ) resides in the software operating system . therefore , while there have been described what are presently considered to be the preferred embodiments , it will understood by those skilled in the art that other modifications can be made within the spirit of the invention .