This is of course the most important layer from a service definition- and delivery point of view. It is realized in both the WBC-SP node and in the user mobile terminal. In the former, it is concerned with organizing the service advertisements in an efficient way in order to reduce the user access time and tuning time. In the latter, the focus is on the MT discovering all services of interest to its user and associating with the ‘best’ wireless access network for each particular teleservice according to predefined user-policies or directly with live interactive user decisions - all of which are supportive of, and enabling of, full user-driven ABC&S paradigm realization. To achieve an extensible, flexible, and intelligent structure, the WBC service layer's architecture is built on three tiers, as shown in Figure 1 and explained below.
Figure 1: The WBC service layer's architecture
Taking into account that the Java 2 platform Enterprise Edition / Java 2 platform Micro Edition (J2EE/J2ME) is an effective, hardware-independent platform for building both enterprise applications and portable-devices applications, the WBC service layer was implemented in Java in order to provide system uniformity, distribution, and portability. There are three actors in this tier:
- Service providers (xSPs), who submit descriptions of their services to the WBC content database in a competitive way via the WBC-SP web portal;
- WBC service provider (WBC-SP), who maintains the roles and databases, and defines WBC broadcasting parameters;
- Mobile consumer-users, who discover and associate with ‘best’ services based on their own price/performance preferences specified in their user profiles.
The tier is sub-divided into three sub-tiers:
- Presentation sub-tier - which acts as an interface between the actors (WBC-SP, xSPs, users) and the system; Business sub-tier - which follows the delegate design pattern to decouple the business logics and codes, and exposes simpler interfaces for other two tiers; and
- Persistence sub-tier - which is concerned with the storing/retrieving of plain old Java objects (POJOs) in/from databases, i.e service descriptions’ database, xSP database, WBC system parameters’ database, broadcasting database, WBC-SP/user intelligent rules’ database, user/terminal profiles’ database, etc.
Figure 2: The three-layer WBC architectural model
To simply the WBC system design and enable decoupling, in this tier an expert system is implemented which has ‘responsibility’ for maintaining the business logic and WBC algorithms. Present also are a set of application programming interfaces (APIs), such as common APIs, ontology APIs, services’ data processing APIs, intelligent rule-engine APIs etc, which are shared with the other two tiers.
The core WBC algorithms include WBC intelligent schemes for SDs’ collection, clustering, scheduling, indexing, discovery, association, and WBC-IPDC. To uniform the expert knowledge base in the WBC system, an ontology technique is used to describe concepts and their relationships. The design pattern of ontologies follows the singleton design pattern to enable the sharing of the same ontology object among the three tiers. Two ontology types are used: data source ontology and task ontology. To achieve a loose-coupling system and enable WBC data organizing algorithms to run in an intelligent way, a rule-based expert system (knowledge-based system) was designed for facilitating the data broadcasting by the WBC-SP node and data reception by the user mobile terminal (Figure 3). The key advantage of using a rule-based expert system is that the business solutions could be found much more easily, i.e., the end user can change the rules (very close to a natural language) without having to recompile the source code.
Figure 3: The WBC rule-based expert system
There are two basic elements in the WBC rule-based expert system: facts (all ontologies act as shadow-facts asserted into the working memory) and rules (different area and different time may cause running different rules). On the WBC-SP side, the collecting rule defines the broadcasting frequency of each service description (SD) based on the user access times and advertisements’ fees paid by the service providers; the clustering rule clusters SDs with a category type, frequency, CC/ PP, QoS, scope list etc, and defines the properties of segments (SDs are grouped into fixed-size segments for broadcasting over WBCs); the scheduling rule locates the position of each segment in the broadcasting sequence; the indexing rule generates indexed-segments; and the broadcasting rule determines the broadcasting time for each final sequence. On the mobile user's side, the user profile rule includes three sections: an advertisement-filter rule used for blocking of ‘uninteresting’ services, a discovery rule that discoveries "best" services within a received advertisement (group of services), and an association rule facilitating the association with the "best" (wireless) network/service.
A new advertisements delivery protocol (ADP) for wireless services’ IP Datacasting was proposed in, based on the modified asynchronous layered coding (ALC) protocol. ADP uses a forward error correction with a Reed-Solomon coding scheme to guarantee packet-level reliable data delivery at the WBC service layer.
This tier acts as an agent run-time environment for facilitating the (wireless) services advertisements’ collection, clustering, scheduling, indexing, broadcasting, discovery, and association with application layer's APIs. A shared blackboard and gateway agent are used for agents’ communication and tiers’ communication respectively.
Based on the foundation for intelligent physical agents (FIPA) framework (Bellifemine et. Al., 2001), MAS job is to provide agent management system (AMS) and directory facilitator (DF) services, ‘yellow pages’ service, message transport service, etc. Each running instance of MAS is called a container with a set of agents. The main WBC container must be always active so that other containers can register with it. All WBC agents (i.e., the collecting agent, clustering agent, scheduling agent, indexing agent, and broadcasting agent - on the WBC-SPnode, and the discovery agent, association agent, and personal profile agent - on the user mobile terminal) use the agent communication language (ACL) for interactions with each other. A content manager performs automatic conversion and check-up operations between the ACL byte stream and ACL ontology Java object. With this communication mechanism, the MAS tier runs in a peer-to-peer mode. A blackboard is used for sharing the information and common static objects. To communicate with other tiers, a gateway agent is used to receive/send messages via a shared message channel. All agents except the personal profile agent are logic-based agents that work with the knowledge-based system for ADA processing. The personal profile agent is a belief-desire-intention (BDI) agent, whose actions depend on the user history records, plans, beliefs/desires, and intentions.
Blackboard - a basic element in expert systems and multi-agent systems, serving as sharing data structure during the execution cycle.