The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.03 - July-September (2010 vol.3)
pp: 214-227
Published by the IEEE Computer Society
K. Scott , Lakehead University, Ontario
R. Benlamri , Lakehead University, Ontario
ABSTRACT
This paper describes a cost-effective infrastructure for building ubiquitous collaborative learning spaces. It uses techniques from the Semantic Web and ubiquitous computing to build a learner-centric service-based architecture to transform existing traditional learning spaces (e.g., classrooms, computer labs, meeting rooms, and hallways) into intelligent ambient learning environments. This is achieved by blending a number of inexpensive technologies which are optimally configured to provide services that can perceive a learners' location and schedule, identify current learning activity, recommend learning resources, and enable effective real-time collaboration and resource sharing between learners and their instructors. These services are semantically defined and homogeneously integrated using a shared ontology, service policies, and inference rules. Service invocation and coordination are triggered at runtime by context-changes in the learning environment, thus offering full context awareness and providing real-time support for various learning modes, including formal, informal, and Ad hoc collaborative learning. Furthermore, the learning is supported by a range of mobile devices that are commonly used by learners to enable better instruction and communication. A prototype system is developed and tested using different learning scenarios. The system has also been tested by a group of learners whose feedback is provided for performance assessment.
Introduction
Traditionally, smart learning spaces have been configured to support teaching and learning by providing rows of computers connected through wired networks in a lecture-style classroom setup. Furthermore, smart classrooms have sometimes been criticized as wasteful misallocation of resources [ 1] as they include much expensive multimedia equipment while offering limited facilities as far as learners' mobility, interaction, and collaboration are concerned. The uses of technology for teaching have evolved, however, and so must the design and configuration of learning spaces. Learning spaces must transform into flexible, technology-enhanced spaces where learners should be the key drivers in learning space design. This paper suggests a cost-effective architecture to transform existing learning spaces into effective spaces that enable better learning and collaboration, given the resource limits of a university setting.
The recent widespread adoption of mobile computing devices and the availability of wireless access in most learning spaces have greatly impacted the learning process. These tools are allowing learners and instructors to find new ways to communicate, collaborate, and interact [ 2]. Ubiquitous access to information has helped to shift the emphasis of education away from the simple transmission of information to an active acquisition of skills and knowledge [ 3]. Thus, giving rise to applications that facilitate team-based, collaborative, and inquiry-based approaches to constructing knowledge [ 3]. It is rooted in the assumption that knowledge is socially constructed by consensus among peers [ 4]. When learners bring their experiences and ideas to the intellectual conversation, the understanding of other participants is enriched, resulting in active learning [ 5]. Many ubiquitous learning systems are being developed to build collaborative learning environments [ 6], [ 7], [ 8], [ 9]. The main challenge, however, is that it is not well known how these technologies can be integrated to develop learning spaces that can support various learning modes (e.g., formal, informal, ad hoc, and virtual learning) without major reconfiguration [ 10], [ 11], [ 12]. We also believe that research in learning space development has received less focus than research in special purpose e-learning/m-learning systems. This paper addresses this shortcoming by investigating news ways in which on-campus spaces are augmented with new emerging communication and information technology to provide better and varied collaborative learning opportunities. The proposed learning space is designed to meet three main pedagogical objectives. First, it provides a conducive environment to enhance collaborative learning and face-to-face interaction among learners and instructors. Second, it creates new patterns of social and intellectual interactions. Third, it provides activity-based resource discovery and retrieval mechanisms that promote knowledge dissemination and sharing. To achieve the above-mentioned objectives, the proposed approach combines many patterns of formal (i.e., scheduled instructor-directed), informal (i.e., independent, self-directed, and collaborative), and ad hoc (collaboration in an unscheduled on-the-fly manner) learning supported by a variety of devices that are commonly used by learners to enable better instruction for various learning situations.
The proposed system uses inexpensive technology consisting of infrared-based location sensors, basic networking facilities including ad hoc and zero configuration (Zeroconf) [ 13] networks, personal laptops, and various handheld devices. These technologies are optimally integrated and configured to provide flexible and extensible services, making use of recent advances in wireless communications, mobile computing, ubiquitous computing, and the Semantic Web. Such technology has the ability to perceive learners' location and schedule, identify current learning activity, retrieve needed learning resources, provide learning recommendations, and share learning resources and interact with peers. All of these services are semantically defined and homogeneously integrated using a shared ontology, service policies, and inference rules. Service invocation and coordination are triggered at runtime by context changes in the learning environment, thus offering full context awareness and providing real-time support for various learning situations.
The main contributions of this work can be summarized in the following:

    1. infrastructure to support social and intellectual interactions,

    2. efficient integration and convergence of instructional technology and services to support both formal and informal learning in various learning environments, and in a seamless way,

    3. ontology-based model for knowledge dissemination and sharing, and

    4. reliable location awareness system to enable both learner and device mobility.

The remaining of the paper is structured as follows: Section 2 describes the background and surveys of major research work in learning space design. Section 3 describes the system design and architecture in detail. Section 4 presents a few learning scenarios, while Section 5 analyzes users' feedback for performance assessment. Finally, conclusions are drawn and further research is suggested.
2. Background and Related Work
As mobile and wireless technology rapidly advances, new physical and virtual learning spaces are changing the way learners access and share resources, acquire knowledge, and interact and collaborate with each other. In these modern ubiquitous learning spaces, technology can move beyond the relatively predictable wired classroom computers and dissonant presentation systems. Learning technology expands to include diverse embedded sensors, wireless instructional devices such as handheld computers, and a variety of interconnected technologies. These platform advancements pave the way for context awareness, ubiquitous computing, and Semantic Web technologies to create innovative learning interactions. These enhancements allow learning to expand beyond the classroom to labs, field-trip locations, meeting rooms, and even hallways and study areas. Thus, offering various cooperative learning opportunities, enabling a higher level of reasoning, a deeper level of understanding, a greater motivation to learn, and greater social competencies [ 14]. With all these concerns, designing ubiquitous collaborative learning spaces becomes a complex and challenging task that involves many computational and learning paradigms. This paper proposes a solution to some of these challenges, in particular, those related to context perception and management of learner/activity mobility, social and intellectual interactions, and seamless knowledge dissemination and sharing. Before addressing these challenges, we first survey some of the ubiquitous learning systems reported in the literature.
There are many existing technologies that have the potential to be developed into powerful learning enhancement tools [ 15], [ 16], [ 17], [ 18], [ 19], [ 20]. The uClassroom [ 7] project is a more modern ubiquitous computing environment that is designed for school applications, created at Nagoya University of Japan. It uses context to provide optimized educational information via a web interface. While uClassroom mentions location data as part of its context awareness, it is not intended to provide any potential system for attaining this location information. Additionally, it does not involve the communication between individual systems, limiting potential applications in collaborative and peer-to-peer situations.
KERIS, a leading e-learning organization in Korea, has developed a ubiquitous smart classroom environment called uClass [ 8]. uClass combines teaching methodologies and learning resources from homes, schools, and communities through a ubiquitous, interactive network. Diverse educational materials, including electronic blackboards, electronic podiums, video lecturing facilities, magic mirrors, RFID tags, and media books on an invisible network naturally connect the teaching activities of instructors to the learning activities of learners. Although uClass provides an RFID attendance checking system, it is restricted to closed spaces (physical classrooms) limiting the location awareness ability of the system. In addition, uClass is designed to support formal instructor-directed learning, thus limiting its use in peer-to-peer and collaborative learning situations.
Jones and Joe at Griffith University of Australia [ 9], have developed a Ubiquitous Learning Environment (ULE). ULE is an adaptive teaching system using ubiquitous technology. The two main factors in ULE design are the “what” and the “how.” The “what” is the model itself which resembles an interactive learning gallery and uses a wireless network with both Bluetooth and WiFi technologies. The “how” is the inclusion of pedagogical information which is based on constructivist theory, allowing students to create knowledge from what they see, hear, read, and perceive. Students using the ULE will intuitively interpret their surroundings and construct their own knowledge. ULE provides an interesting perspective on ubiquitous learning, however, it does not adapt well to enhancing conventional learning spaces and interaction styles. The system is more suitable to learning in environments such as science and technology museums and other similar setups.
Before suggesting a specific architecture, a study was performed to identify the requirements of learners in various learning situations and these results were used to inform decisions for the architectural design. This was done with the aim to bring the learner's voice into the design process. One key aspect of these findings is that new learning spaces should be designed to provide facilities that encourage collaboration and active learner participation by exploiting the new emerging technologies to their full potential. Indeed, active engagement with the learning object, whether a lecture, laboratory process, discussion, or creative medium, increases the likelihood that the learner will both retain and be able to use the acquired knowledge and skills later [ 6]. Another key aspect of these findings is that learners are drawn to spaces, both physical and virtual, that are open, easy to use, and stimulating. European researchers have found that, although many projects exist that bring theoretical advancements to learning situations, many of the features and devices are not taken advantage of [ 21]. They emphasize the importance of focusing not on the mobile technology itself but on the social practices enabled by the technology. In terms of learning space design, this is reflected by three system-flexibility dimensions: 1) learning spaces should offer a variety of learning opportunities and levels of engagement (e.g., instructional spaces, seminars, labs, meetings, and virtual spaces) for both formal and informal learning and without major reconfiguration, 2) learning space architecture should allow for integration and convergence of technologies and services seamlessly based on an invisible network infrastructure, and 3) learning spaces should effectively support different location/activity awareness capabilities. Furthermore, a learning space should enable social and intellectual interactions, allowing learners to get to know each other, engage in dialogue, interact in a variety of ways, exchange and share learning resources, and maintain communication and interaction across spaces without being tied to a physical location [ 3].
In this paper, each of the above-mentioned requirements has been thoroughly addressed, yielding a learner-centric service-based architecture based on a hybrid peer-to-peer/client-server networking model which uses Zeroconf resource detection and web standard Asynchronous Javascript And XML (AJAX) communication systems. Context awareness and service adaptation, however, rely on Semantic Web reasoning. An ontology powers a comprehensive reasoning system for knowledge dissemination and sharing, relying on inference rules coded in the Semantic Web Rule Language (SWRL) [ 22]. The system also relies on Semantic Web standards for user profiling by adopting the W3C Composite Capability/Preference Profiles (CC/PP) standard [ 23].
3. System Design and Architecture
In the development of a modern technological system for enhancing the learning experience, four aspects of the modern learning process were considered to have the greatest potential for technological enhancement, setting four main goals for the system. First, learners are becoming more mobile with their technology, and the system must be able to not only accommodate but also utilize this mobile nature. Second, an education system should be able to connect learners and their instructors through complex and dissonant systems without any confusion or configuration. Third, a technological learning enhancement must be flexible enough to adapt to the teaching style of the instructor as well as the learning style of the learner. Finally, the system must be seamless, inexpensive, and easy enough to use in learning situations that it actually becomes adopted by learners and instructors alike. By examining these requirements, it is possible to create an effective technological learning enhancement system.
The first aspect calls for a system that takes advantage of the ubiquitous, mobile technologies to enhance the education system. Mobile computing devices accompany learners to the places they already engage in learning activities. The system can take advantage of this mobility and the interaction with other learners in a common space by utilizing location awareness technologies. Learners in proximity can combine their learning resources to provide a more comprehensive experience, and students in lectures can connect with their instructors while they are in the same space.
The second aspect is a little more difficult to provide a solution for. Many of the advantages from a mobile device in education come when it is linked to other devices and information sources. Large networks can make it difficult to connect two computers together; the vast collections of computers and complex routing systems can make even adjacent devices virtually distant. Additionally, some learning spaces have no educational network infrastructure available to them at all. A successful learning enhancement system requires a networking functionality that facilitates communications between learners while they work together, without all of the hassle of network management.
The third aspect deals with the uses of a learning system. The system should facilitate collaboration among learners and their instructors. It should provide information to learners when and where they need it, and allow them to interact to enhance their learning experiences. It should also encourage an active learning style, and encourage participation to ensure that the learners are receiving the most out of their educational experiences.
Finally, the system should be seamless enough to integrate into existing learning environments and provide benefits, not distractions. The system should provide advancements to the learning experience that could not be offered by less technological systems. As well, it should integrate with other systems well to form a comprehensive learning system, rather than aim to replace educational support systems that are already comfortable for learners. The bottom line is that the learning system must be capable of supporting a learner's educational interactions in a way that is always enhancing and never detracting.
To address the problems mentioned above, the system is designed to fully automate the navigation, the interaction, and retrieval and sharing of the learning resources, giving the learners instant access to the relevant information for their current lecture, lab, or learning session. It does this by implementing context awareness in several forms. By knowing its own location, the identification of the learner, and the current time, a learner's computer/handheld device has everything it needs to retrieve and use all of the supporting information automatically based on current learning activity. In the following sections, the main components of the architectural design are described in detail.
3.1 Location Awareness and Learner Mobility
Location data are used to determine the physical and social context of the learner, that is, they discover the location, surroundings, and nearby learners and instructors. The system should be designed for low granularity (the location of a device within a learning space is irrelevant) but high accuracy (devices near the boundary of two learning spaces must be resolved to the correct one). Any of several sources of location information maybe used to determine learner context, however, some are better suited to learning environments than others.
One of these potential sources is radio frequency (RF) trilateration [ 24]. This option is a lucrative one in the location awareness field, due to the prevalence of wireless transceivers in mobile devices, however, it is far from ideal for interior spaces. Trilateration calculations assume uniform degradation in every direction. This is almost never the case, especially, in indoor environments where there are many sources of interference. Also, RF-based systems have no sense of physical space separators, such as walls and dividers, causing the accuracy requirements for location data to skyrocket.
Another common location detection technology is the Global Positioning System, or GPS [ 25]. GPS has an accuracy advantage over RF, and GPS is accurate enough to resolve a learner's location to a room-sized area. While it may provide adequate accuracy to use as a source of location context data in outdoor environments, its requirement on a clear view of the sky makes it severely limited for indoor learning spaces.
An alternative technology that is better suited to indoor spaces is infrared (IR) location detection. IR provides short range, line-of-sight transmissions that are ideal for the small areas and light-blocking boundaries (i.e., walls) that exist within a building. In Active IR systems, such as ALTAIR [ 26], a location detection system from the Nara Institute of Science and Technology, every device to be located is equipped with a small IR transmitter. The room is equipped with several IR cameras and detectors which are used with triangulation algorithms to determine a device's position. While this IR system would work well for the interior learning situations, the hardware efficiency can still be improved. An Active IR system requires a specialized network of sensors and cameras within the room, which must be connected to a computer. This all results in large amounts of overhead that is not at all necessary for the task.
Our system uses a novel Passive IR system that addresses both of these concerns and provides an ideal solution for this kind of interior context awareness. A passive system takes advantage of user-side computer power, which eliminates the need for location-side intelligence, decreasing the overall cost and complexity of the system.
The system depends on the implementation of Passive IR beacons, installed in common work areas such as classrooms, lecture halls, labs, libraries, and anywhere learners may gather to collaborate (see Fig. 1). In larger rooms and halls, multiple beacons can be used to cover the entire room and act as a single logical location. For labs and similar locations with multiple work areas, beacons can be arranged to split the room into smaller logical locations. As IR light fixtures, the beacons illuminate the room in invisible IR light. The signals are stopped by obstructions or walls, making it impossible for a learner sitting against the wall of a room to be mistakenly identified as being in the adjacent room.


Fig. 1. Infrared beacon coverage in various room types.




The beacons themselves are fairly simple devices, based on a power supply, inexpensive PIC microcontroller, a set of DIP switches, and one or more IR transmitting LEDs (see Fig. 2). The microcontroller is designed to simply transmit a location identifier, predefined by the administrators using the DIP switches, whenever transmission is triggered.


Fig. 2. Simple block diagram to show the main hardware components of the transmitters (left) and receivers (right).




This triggering system had to be designed to allow for the synchronization of multiple beacons in a large learning location. The power supply of a beacon contains a diode-based circuit to extract a 5 V/60 Hz trigger pulse from the AC signal. This trigger pulse is used to start the transmission of the location identification signal. Beacons in the same location are most likely to be connected to the same electrical phase. The result is an array of IR beacons that are synchronized to fire in unison, collectively covering the learning space with location data.
The system uses an eight-bit Manchester-style encoding (see Fig. 3). Logical LOWs are signaled with an ON-OFF signal transition, and logical HIGH with an OFF-ON. The signal itself is modulated by a 40 kHz carrier, and IR receiver modules use integrated bandpass filters to eliminate unmodulated and differently modulated IR noise.


Fig. 3. Encoded Infrared Signal.




One of the problems that have been encountered while designing the location awareness system is that each location cycle is time-limited to a 1/60 Hz period of 16.7 ms (50 Hz systems have slightly more time, with 20 ms). By narrowing the separation time between pulses to its minimum, it was possible to fit a full eight bits in the allotted time and still maintain the rest of the Manchester specifications, allowing for 256 distinct learning areas. For particularly, large or complex institutions where more than 256 locations are required, these data may be supplemented by subnets, server allocations, and other traditional network-based allocations.
On the reception end, the location identification signals are detected by sensors attached to the learners' personal computers or mobile devices. The primary clients for the system are portable notebook computers which use a USB interface to communicate with the sensors. The sensors are designed to be extremely simple and low cost, with a per-unit production cost of $5-10. The sensors are powered by the USB bus and operate using the Human Interface Device (HID) protocol [ 27]. The devices are very simple, consisting of a PIC microcontroller with integrated USB module and a standard IR transducer which is frequency matched to the carrier of the IR signal. The microcontroller detects the repeating signal and decodes it into an eight-bit binary value, which is relayed to the computer and used to connect or create the local learning network.
3.2 Infrastructure for Flexible Learner Interaction
Once the context is determined, the system establishes a network with the other learners in the same location. Depending on the type of system implemented and the current learning context, different types of connections may be required. The system is designed to allow freedom in learning style and situation while maintaining a consistent user experience, with the constant goal to maximize learning time and minimize effort. This supports the first research objective that is to minimize manual reconfiguration with changing learning environments and situations.
Many existing and even developing learning systems, such as the Mobile and Active Learning Environment (MILE) [ 28], rely on traditional client-server paradigms for information exchange and distribution. This architecture makes sense in some formal learning situations, where learners gather in a specific place, connected to a specific network, on a regular basis. Providing flexible, adaptable, and dynamic learner interactions in any environment, without a single bottleneck or point-of-failure, however, requires a more peer-to-peer-based solution.
One way to fulfill the need for a dynamic network has been developed and it is known as Agent technology. Agent frameworks, like JADE [ 29], are designed to allow for peer-to-peer (P2P) communications between different nodes in a network. When a system starts up, the Agent framework in the software connects and registers itself on a central Agent Management Service (AMS). Information is exchanged between Agents in a special format known as Semantic Language (SL). It contains syntax specific to semantic events, and when connected, the Agents exchange information directly as events happen.
While an Agent system provides a standard and protocol for P2P communications, it is not necessarily ideal for a dynamic learning environment. Agent systems require a central, known server to act as the AMS which limits the system's versatility. As well, the system relies on an uncommon message format. While SL might be ideal for systems based purely on ontologies, there are many more aspects to the system than can be effectively mapped in ontologies. Additionally, Agents must only communicate with other Agents using their specific protocols and encoding. This would eliminate the use of any existing complementary learning systems alongside the Agents, decreasing the available resources.
With the wide adoption of HTTP-based semantic formats like Resource Description Framework (RDF) [ 30], it is more beneficial for a system to adopt an existing common language. RDF is a format based on XML that allows the same level of semantic description as SL, but in a medium that is more portable and compatible with common web systems. This allows for interactions with existing web-based information sources and devices without translation or conversion. Below is described an alternative approach to developing a hybrid peer-to-peer/client-server model for enabling flexible interaction and service creation on the top of an invisible reconfigurable network model.

3.2.1 Service Creation This system uses standard web server technologies to share information between peers and to the central servers. Using modern bidirectional web techniques, like REST [ 31], it is possible to transfer messages to and from HTTP servers with standard protocols. Bringing the client-server frameworks of the web to a peer-to-peer system presents some interesting challenges, but the advantages of a standards-based technology are plentiful.

Web interactions involve a client and a server. This system looks to eliminate these requirements for a server, and instead embeds server functionality into every client. Frameworks, like those available from the CocoaHTTPServer project [ 32], package the functionality of a web server into Object-Oriented classes. This allows for the trivial inclusion of web serving capabilities into a regular user application, and it allows the server to be created and destroyed just as simply as any other object. Other projects, such as the Opera Unite [ 33] project and the Plain Old Webserver Firefox plug-in [ 34] aim to similarly embed a web server in their respective browser. These systems differ from the system described here, however, because they provide server capabilities regardless of the network configuration. Our system is unique in that the initialization of the server depends on the current server situation.

When a user connects to a network and their computer or device is able to establish its location, it immediately checks the network for the availability of servers at that location. It first checks for a conventional central server. Traditional servers are used for support information, non-real-time aspects of the system, and user authentication and network management. The peer then checks for existing peer servers (or “supernodes”) in the current location. Depending on the results of these checks, the peer will instantiate a server object and promote itself to a local supernode. This means that the peer has server capabilities, hosting the web-style network in that location. The result is a small location-based network created on-the-fly, without any permanent or existing architecture.

By adapting web technologies into the core of the system, it allows the system to be expanded in several ways. First, it facilitates the integration of exiting web services and systems into the classroom, including existing e-learning systems. It also allows the system to work with third-party clients. Since information is already transferred in HTML, XML, and Javascript calls, it is trivial to also extend support to other clients and indeed other devices where the fully featured peer software is not available. This functionality could also be used by stationary classroom devices, like display systems. As long as the projected image can show the session's dynamically created webpage, it may function as a fully capable client. Using custom javascript and CSS information from browsers on mobile devices, the system is even able to present CSS-modified pages relative to their screen size. All of this is done without adding any additional software or hardware to the system: everything is already inherently extensible.

It is worth noting that third-party servers that contribute information to the system are not considered peers in the overall P2P architecture employed by our system, and neither are third-party web clients and browser systems. This provides an interesting dynamic twist on the traditional client-server and peer-to-peer system. The peers themselves are both independently functional clients and servers, with the possible expansion to other pure clients and pure servers to expand capabilities and accessibility (see Fig. 4).



Fig. 4. Peers can communicate with each other as well as traditional server and client devices.





3.2.2 Service Publishing and Discovery Rather than using a centralized service directory, the system uses a decentralized service publishing and discovery technology known as Zeroconf [ 13]. Zeroconf is an open source project, based on a form of DNS-based Service Discovery (DNS-SD) that takes advantage of the broadcast capabilities in the TCP/IP stack.

Zeroconf and DNS-SD are closely related to Multicast DNS (mDNS) [ 35]. Unlike traditional DNS, mDNS URI requests are sent to a broadcast IP instead of a known server. The node which is intended to respond to the given URI will respond, and all other nodes ignore the request. Zeroconf takes the same concept but instead applies it to available services. It is a service discovery system and it uses broadcast messages to advertise the availability of services offered. When a peer initializes, a request is broadcasted for a server with the same location ID. If no server exists the peer promotes itself to supernode status, enabling its own server capabilities. It then advertises its own HTTP services on the Zeroconf system using the location ID, and any subsequent peers will be able to detect it.

This Zeroconf system, combined with the application-space HTTP server, has several advantages over other P2P systems. The most prominent of these advantages is the independence from any central server. Most P2P systems rely on a central server, or at the very least a known address for an existing peer to maintain coherence and connectivity [ 36]. Due to the context and location dependence of this system, however, peers will always be assumed to be within physical and logical proximity. The single supernode for a location may actively advertise its existence on the local network without fear of saturation or interference. In fact, it is asserted that the broadcast messages from mDNS-type systems, like Zeroconf, are of the same order of magnitude as standard Address Resolution Protocol (ARP) packets that are continuously sent on TCP/IP networks without issue [ 35]. Also, the nature of these type of broadcast messages prevents them from being routed to external networks, making this decentralized discovery possible without conflicting with other locations. As an added advantage, this also eases the distribution of location identifiers. As long as there are no two identical location identifiers within the same routed subnet, a unique location-based network grid will be created for each location ID as nodes attempt to connect. The result is the automatic assembly and management of web-style connections, all without the requirements that come with managing a static server.


3.2.3 Adaptable Network Architecture The real-time classroom system is designed around a Hybrid Supernodal P2P architecture. The best way to accommodate instructor-learner information flow is to adopt some of the one-to-many structure of a client-server system while still maintaining the autonomy and self-contained nature of P2P. The system, therefore, uses a Supernodal architecture. The supernode concept was developed by KaZaa [ 37] for their P2P filesharing application, and the same technology was migrated to the Skype [ 38] Voice-over-IP system. Every peer in a supernodal system includes the capabilities to act either as a standard client-type peer or a supernodal server-type peer. If the supernode disconnects, another peer may initialize its server capabilities, promoting itself to be a new supernode and continuing the learning session.

A hybrid P2P network maintains a traditional server for some functions. Generally, a server is used during the initial connection process and then neglected in favor of P2P communications as nodes become connected. In this location-based network system, the central server is auxiliary. If present and available, it provides user authentication and permissions, location-based network management functions, and recommendation and support information on request of the peers. It is important to note that no persistent connection (or, indeed, no connection at all) to the central server is required. While it may help in negotiating small subnetworks, the peers have enough connection logic to handle connection management autonomously.

The best way to examine the versatility of the network is to look at the various modes and configurations in which it can operate (see Fig. 5). A lecture or other one-to-many situation would benefit most from a structured network setup. In this situation, the location, content, participants, and session leader are all predetermined and registered with the central server. In this system, this type of situation is known as a Formal learning session. Group work, like lab lessons or collaborations, requires a slightly less-structured, more communal type of connection. This is a kind of context where the location and content are known but the participants and leader may vary between schedule time and the event time, or even during the session itself. This is known as an Informal learning session. Sometimes there is a need to collaborate in an unscheduled on-the-fly manner with a group of learners, and this type of situation is also possible using the same system. In this case, there is no prescheduled session on the central server at all, and in fact the server is not even required. This is known as an Ad Hoc Collaborative learning session. The system senses the current learning context and automatically reconfigures itself to provide the best learning setup and the most efficient interaction mode.



Fig. 5. The network setup process. Note that a failure to detect location or a failure to connect to the central server results in an unauthenticated ad hoc session.




Formal learning. After establishing its context, the computer connects to a centralized school server and provides its location and context information (see Fig. 6). The server authenticates the connecting peer to determine its current role. It also determines if there is another user in the same location who is scheduled to lead a lesson, or another user with higher authority. If a location leader exists, this information is sent back to the learner. The learner's computer uses the Zeroconf system to detect the existing session leader. If the given user is to lead the lecture themselves their own computer is set up as a supernode and broadcasts its availability using the Zeroconf system (see Fig. 7).



Fig. 6. After establishing location information, each peer connects to the central server for authentication.






Fig. 7. In this case, the instructor is authenticated as the location leader, and is assigned as a supernode for the other nodes to connect to.




A formal learning session includes several other nuances. Formal sessions are most likely a one-to-many situation, where one instructor is leading a session (primarily providing information) and many learners are participating in the session (primarily receiving information). The software is configured to provide the instructor with complete control over the slide progression, in order to lead the lesson uninhibitedly. Learners are free to take notes, and these notes are tied to their contextual slides. The chat functionality maybe disabled, limited to instructor-learner only, or fully functional, depending on the preference of the session leader. Question functionality is enabled for use by learners for submitting questions to the instructor, and these questions maybe anonymous at the discretion of the learner. The system may also be used for learner survey and quizzes, and these answers are aggregated by the instructor. All of these configuration choices optimize the system for a traditional lecture-style learning situation.

Informal learning. If the central server has no formal structured lecture scheduled for that particular context the system will function autonomously. Without a preestablished leader, the first learner in a given location context is designated to be the session leader. Their computer acts as the location's supernode, and all subsequent learners to arrive in the same location will detect their system and connect to it (see Fig. 8). Informal sessions include open lab sessions, where learners work together in a specific space on a specific task, but without a predetermined leader.



Fig. 8. Without a scheduled leader, the supernode is arbitrarily selected based on authentication order.




Even though one of the nodes is established as a supernode for networking purposes, all learners in an unstructured session are treated equally. Users may cycle through the main content pane at will, and they may chat and share data freely. Since informal sessions tend to be contained in smaller workstation-sized locations, such as in a lab, it makes sense to have the entire location “on the same page,” literally. If a lecturer or other leader arrives in a location that currently contains an Informal session, they are authenticated as the leader. The central server connects them to the current supernode and they may take control of the session, converting it to a Formal session, if they so choose.

Ad hoc collaborative learning. Due to the autonomous, peer-to-peer aspect of the learning network, the system is able to expand beyond traditional lessons and environments, even beyond the access to the central server. If the system is unable to detect the central server, it can operate in an entirely ad hoc P2P fashion. The system will attempt to establish its context, using IR beacons if they are available, or using other location awareness technologies such as RF trilateration or GPS, if available. If absolutely no location data are available, the user may choose to specify a location, chose a random location identifier, or simply consider the entire available wired or wireless network to be a single location. This aspect is particularly useful for small off-campus locations such as a home or coffee shop. The computer will search the network using Zeroconf for a supernode created by another learner in the same location. If one exists, the computer connect to it directly (see Fig. 9). If the peer arbitrarily designated as the supernode must disconnect from the network, the other nodes detect the loss of connectivity and a randomized reallocation of the supernodal status occurs automatically.



Fig. 9. Without any schedule or authentication, one node will randomly assign itself as a supernode and all subsequent nodes will connect to it.




Ad Hoc sessions are especially useful for group work, collaborating on projects, or in group study sessions. The system has no means of authentication or configuration, so all of the interactive aspects of the system remain unlocked. While this may initially cause security concerns, the learning network is, of course, no less secure than if the devices connected manually over the same network. Lecture data are shared from any of the learners to the supernode, which then distributes it to the rest of the peers. Users notes, usually personal, may also be shared between users. The notes are collaborated into one document, maintaining all of their metadata and remaining organized by slide. The learners are then able to review their collaborated notes together, along with the relevant slides, providing a comprehensive account of the information obtained in class.


3.2.4 Web-Based Real-Time Communication The system is designed to implement as much of the functionality for a regular, nonsupernodal peer as possible using web technologies. The basis of the system is the integrated in-application web server, a feature which can be enabled and disabled by the software freely depending on the requirements. This radically changes the current architecture of the web, which is designed around centralized servers hosting applications and content. The primary Mac OS X version of the application uses the CocoaHTTPServer [ 32] to embed web serving capabilities into a regular application, providing a simple Object-Oriented method for starting and stopping the service capabilities. This is a paradigm shift from traditional web servers like Apache [ 39], which require system-wide setup and configuration. The result is a complete learning session hosted on a server that seems invisible.

To provide communications between learners, web technology developed for interactive web applications provides impressive groundwork. The entire system is based primarily on AJAX. AJAX is a fundamental concept that revolves around the separation of a static page and its dynamic content. Since AJAX is an asynchronous system, the learner may still interact with their computer while data requests are pending. When the results are ready, the server returns them and the contents of the page are modified live.

AJAX is an impressive technology for changing the contents of a page, or transferring data for a web application, on-the-fly. It still, however, requires that the information request be initialized by the user. In a system designed for real-time synchronization of information, a push-type transmission is more beneficial. The system uses a novel variation on AJAX that provides push functionality without any additional overhead. The concept is known as “long polling,” or more distinctly as “Comet” [ 40]. On the peer node side, a Comet request functions identically to a normal AJAX request. Thanks to the asynchronous nature of AJAX, even a long delay between request and response is feasible without degrading user performance. The Comet request remains idle until one of the push-worthy data items (e.g., slides, chat, questions, etc.) changes. These characteristics of Comet minimize or eliminate the strain on any node or supernode until the point when the systems are refreshing their data content. Once a piece of data is changed, the response is assembled by the supernode and returned to the learner's node. Local javascript on the learner's side parses the returned data and modifies the contents of the page to reflect the new data, then makes another long-poll request, restarting the cycle.


3.2.5 Device Connectivity and Integration Existing technology for learning spaces includes stationary computers and projection systems. While the described system can create a complete learning environment without any of these existing systems, it is designed to work together with them. This supports our second research objective that is to create a system that integrates with other technologies and services. It allows the system to expand to include existing resources, lowering the barrier to entry and easing the potential adoption of the system in a learning situation. A classroom computer will have a static location identifier. When activated, it connects to the local supernode. In a lecture situation, there is likely to be a computer connected to one or more projectors. Using the same minimal interface mode that the instructor uses, the projector displays the lecture notes and slides. Just as content is synchronized to the learners, it is also synchronized to the projection system and displayed in real time. This gives the lecturer the freedom to use their own computer without the hassle of setting up the projection system. As well, it makes it possible for any participant to lead the lecture. Once they are given control of the learning space, the system distributes their resources and slides to the other learners, and to the in-class projector, in real time.

This sort of automatic client connections can also be extended for laboratory spaces, or other locations where interfacing to special hardware is required. A lab computer connected to the specific machinery can act as a static peer and provide resources to learners in the same learning space. A software link must be created between the learning software and the equipment (via a plug-in or utility). Then, much like the projector, the static peer can connect to an existing area supernode. In a lab situation, peers are given privileges to contribute information, so the stationary computer is able to send its information directly to the learners.

The system also allows for integration with mobile devices, for situations when a full computer may not be practical. Since the entire system is based off of web standards like HTTP and XML, any mobile device with a web interface is technically capable of interacting with lesson information, recommendations, interactions, and everything that the system has to offer full computer users (see Fig. 10). Without the IR-based location awareness, the automation of the system is limited, but the functionality remains. In addition to standard web technology, all of the frameworks and components used in the Mac OS X version used in our prototype client are portable to the iPhone OS. This means that a complete fully functional peer, including the ability to act as a supernode, is possible for users of the iPhone and iPod Touch. Furthermore, with the introduction of more sophisticated devices and mobile software, such as the iPhone OS 3.0, allocations for third-party hardware make IR location detectors viable [ 41]. In this case, it would be possible to create a location sensor for the iPhone, for instance, and have a complete, fully functional learning enhancement device. An instructor may come into a lecture with only their smartphone and have the ability to conduct a technologically enhanced lecture to hundreds of students. These capabilities would not be possible without the consideration of standard web and networking technologies.



Fig. 10. The system running on a mobile client.




3.3 Resource Sharing and Collaboration
Once established, these automatically configured networks can be used to provide advantages, enhancements, and assistance in any learning environment. The system is designed with two key adjectives in mind: seamless and real time. The act of setting up the network autonomously and connecting learners of a similar context already puts the system above e-learning systems designed for use outside of the classroom in terms of seamless operation. Our third research objective is taken into consideration at this point, thus supporting context-aware collaborations, interactions, and communications between learners, enhancing their learning experience and taking advantage of the same space fundamentals of this learning technology. The functionality of the system, once it is connected to its peers, demonstrates the importance of a real-time learning space system in enhancing the learning experience.

3.3.1 Real-Time Resource Sharing The primary and most obvious learning resource for a one-to-many lecture situation is to provide lecture slides and related notes from the current lecture (see Figs. 11 and 12). It is common for instructors to create a slideshow presentation to accompany their lecture. In this system, learners are automatically connected to their instructors by their common location and context. Notes and slides are transferred directly to learners at the time that they need them: during the lesson. Rather than simply delivering a slideshow file to learners, the system provides an interactive interface for displaying the slides as the lecture progresses, changing them in real time and synchronized with the session leader. The instructor imports their existing slideshow files into the system, and the system converts the slides into a series of images, capable of being displayed as part of an HTML file. When the session commences, the slide resources are sent to the supernode, where they are pushed to the connected learners incrementally. This makes the presence of technology in the classroom even more useful than ever, while simultaneously simplifying a task that, without this system, takes time and attention away from the content itself.


Fig. 11. The primary student interface.






Fig. 12. Main interface running on a portable computer and a smartphone.





3.3.2 Personal Notes and Information With lesson content delivered and displayed in real time, there are new and innovative ways that this information can be used to enhance the learning experience. As the lesson progresses, learners have the ability to make personal notes. The notes are stored locally in memory, and each note contains contextual metadata, such as the time of the note as well as the currently displayed content and slide (see Table 1). They are displayed with their relevant slide, and are organized to follow the flow of the lesson notes. When reviewing notes at a later time, this allows the learner to view their own notes alongside the instructor-provided lesson notes and slides. This provides a comprehensive set of personal notes while allowing learners to concentrate on the lesson as it occurs. When a session finishes, the notes are stored to the local storage, and may also be synchronized to the central server.

Table 1. Note Data Are Stored in XML Format and Includes Metadata about the Time, Date, and Context of the Note's Creation



3.3.3 Learner Interactions and Questions Bidirectional communication opens up the possibilities for even more interaction and comprehension during a learning session, and increases the engagement of the learners. In addition to taking notes, learners may submit questions to the session leader. Questions may be submitted with the learner's name, or they may be submitted anonymously. These questions, like the personal notes, are encoded in XML format and include metadata about their context. When a question is submitted, the session leader receives a subtle indication that there are questions waiting for them. Depending on the preference of the instructor, they may choose to address questions immediately or to wait until an appropriate point in the session. When the session leader selects a question to address, the slide that was visible during the submission of the question is shown along with the question itself. This provides context for the question to help the instructor fully understand what is being asked as well as helping them answer the question by proving the relevant information.
3.3.4 Peer Collaboration The learning enhancement system provides the greatest advantages in sessions where information should be shared not only from a single instructor to many learners, but also when learners are participating and sharing information with each other. Learners may collect information and participate in a real-time chat with others within the same session. Chat data are also tagged with context about the time and content that is being displayed in the main content pane. While the physical proximity of the learners may make this seem redundant (after all, the participants are, by design, all in the same location), the ability to share data, URLs, and other text snippets with participants can make the system even more powerful. Additionally, recording information along with the main content is useful for later review, providing a comprehensive account of the learning session.
3.4 Learning Task Recommender
The system is designed to provide a more technologically rich learning environment, but it also takes the experience beyond the lesson. It does this by offering suggestions and related information via a sophisticated rule-based engine. This system runs on the central server of the institution, and combines information from individual courses and lectures into an overall learning ontology (see Fig. 13). When an instructor or administrator registers a course with the system, he or she may include metadata and keywords to classify the course. The content is uploaded to the server and categorized during the session itself. This categorization is all done using established ontological standards, such a CC/PP Document standard [ 23]. Finally, as learners connect to a session, their context information is used to update their profile as well. These profiles are also stored in a CC/PP standard, the standard for Consumers.


Fig. 13. A sample ontology, showing the relationships between items that maybe used to determine required resources and recommendations.




This information is all evaluated using a series of SWRL semantic rules by the server, and relationships between courses, lectures, and learners are inferred (see Table 2). Any time a learner is accessing the system, he or she may request additional information and recommendations. Using their lecture history and profile, the central server creates a list of recommendations of additional information, lectures, and courses. This information can be specific to a lecture or note that the student is currently accessing, or more general course-level recommendations for planning an academic career. This lets the system provide the best related information-based specifically on a learner's experiences.

Table 2. Sample SWRL Rules to Provide Recommendations of Learning Sessions and Courses When Requested by the Learner


Communications with the recommendation engine are client-server, and the information is delivered in RDF-formatted XML. These recommendations and profiles bring the described system beyond the traditional learning environment and really show the power of including technology in every aspect of the learning process. Since the system has profiles built for courses and learners, providing recommendations provides a greater enhancement to the overall learning experience while maintaining the focus on automation and ease-of-use.
4. Case Studies
4.1 University Lecture Hall
The most obvious usage for this system is in a university lecture hall. Many university students have their own laptop computers, and their computers become location aware with the addition of a small USB infrared receiver. Upon entering the lecture hall and launching the student software, the computer uses the IR receiver to detect its current location. Ideally, the student will already have their user ID information stored. The client sends a request with this location and user information to the school server, which also has information about the lecture schedule. The server detects that a scheduled session exists for that student in that location, and instructs the student's computer to act as a standard node. The student's computer uses Zeroconf to connect to the professor's computer, acting as the location's supernode. As the professor leads the class in the lecture, the students are able to follow along on their own clients, as well as on the projected screen of the professor's client. If one of the students has a question, they can simply press a button on their own client and submit it to the professor without interrupting the lecture. A small indicator appears on the professor's screen, and the time and presentation slide number when the question was submitted is recorded. The professor may chose to answer the question immediately, or return to it later in the lecture. When the lecture finishes, the professor indicates the dismissal on the client, and the server records the session's progress. The material covered is marked as completed for the course, so that the next lesson is automatically selected at the beginning of the next lecture. The profiles of the present students are also updated, so that the server can provide for them accurate recommendations in the future.
4.2 High School Lab
A high school science lab is another excellent application for this ubiquitous learning technology. In a high school situation, students are less likely to have their own portable computers, so the school could offer laptops already equipped with location detection devices for the students to use. In a lab situation, it makes sense for the class to be separated into logical groups. This means that the lab could be separated into different locations with different infrared identifiers for each workstation. The infrared beacon would be situated so that it illuminates the workstation itself, and any IR-aware systems placed on the workstation would join the small workstation network. The system connects to the central server. This server determines that there is no scheduled leader for that particular workstation location, and assigns the first active student to be the supernode for that location. The server also retrieves specific information about the current lesson or lab that is assigned to that specific workstation. As the system knows that there is no assigned leader, all peers are treated as collaborators, and the supernode allows input from all students equally. Students in the same workstation subnet can record data on their own clients, and the data from all of the clients at a workstation will be combined automatically, keeping lab information coordinated and organized. At the end of the lab session, the teacher sends the dismissal signal to the server. The server saves the lab data, linking it to each of the participating students' profiles. It updates the lesson data, course data, and student experience data for future recommendations and processing, just like the lecture situation.
4.3 Library Study Group
Currently, when learners gather in a library or study room with their laptop computers, those systems are not any more associated than when those learners are anywhere else, on campus or off, even though they are physically in the same room. By equipping these machines with infrared receivers, and setting up location beacons to cover the work tables, the systems now have the ability to associate with each other. Without an official schedule, this system will act as an ad hoc network. The first peer to connect will allocate itself as the location supernode. Other peers will detect the supernode, know that it is for the location based on its advertised location information and their own IR location identifier, and connect. Since ad hoc systems have no way of determining hierarchy or authentication, all peers in a meeting are treated as equals, much like the lab situation examined above. That way, anyone who has an idea to share may do so, and all of the others in the room can see it on their own screen. Learners may share their notes and slides related to the class for which they are studying. When the session is concluded, the data are saved by each computer on its own local storage. Participants may revisit these data in the future on their machine, and review their own notes taken during the meeting along with any shared information from others.
5. Experimental Results
5.1 Learner Response and Feedback
To test the validity, reliability, and utility of the system, a small focus group of 12 students was set up in a classroom on the Lakehead University campus. The small group of students was given an opportunity to test the system and provide feedback in the form of a user survey. In addition, the system was benchmarked with a classroom full of computers (see Fig. 14), to test the strain that would be put on the individual computer that is selected to act as a supernode.


Fig. 14. Test lecture setup.




The focus group was given a sample session with the learning enhancement system, and asked some detailed questions about their reactions. First, the entire group (100 percent) agreed that the system primarily functions as a way to keep students engaged with the course content while minimizing the amount of note-taking, which supports our original research goals. The majority (80 percent) of the group found that the context-aware note-taking is the best feature of the system, providing contextual information for learning sessions. This aligns with our third objective, providing context-aware data entry facilities. They were more than satisfied (92 percent) with the ease-of-use of the system, and the group agreed (92 percent) that the system supplies the course content in a way that is not distracting, supporting our first objective by minimizing reconfiguration.
The synchronized content slides (100 percent) and context-aware notes (100 percent) were both found to be the most useful features, with the question submission system also very highly rated (92 percent). The least useful, as defined by the group, is the location-based chat room (72 percent). The chat function is designed to be an additional means to share text-based content with a group, and may prove to be more useful in smaller groups and sessions than in the test case lecture situation.
Of the three main learning session types that the system is designed for (lecture, lab, and group study), the focus group found the lecture situation to be the most useful (96 percent), and the lab situation (where work is often individual rather than collaborative) to be the least (80 percent). Lectures and learning sessions that include large numbers of students show the most potential for technology, as they are the situations where everyone in a location is working on the same content at the same pace. Interestingly, group study (40 percent) was considered to be just as compelling as a lecture (40 percent) in terms of use. The group was interested in the potential applications of the system in nonclassroom learning situations that still maintain a physical proximity, such as private study groups and collaborative projects (88 percent).
Overall, the response to the system was very positive. The group could easily see the need for improved classroom technology, and could appreciate this learning enhancement system and the solutions that it provides.
5.2 Supernode Scalability
In addition to these user feedback test, some technical tests were conducted to investigate the viability of the system on a classwide scale. The main concern for the system is the scalability of the supernodes. Acting as a peer-server for a given location, supernodes have to be able to maintain connections to all of the other peers in a session.
In this experiment, a supernode was set up in an Ad Hoc session. The first machine to connect to the network was a 2 GHz MacBook running the learning enhancement software, and the supernode functionality was activated in the software. At this point, an increasing number of clients was connected, and five standard slide-changes were performed at each point. These data were recorded using Instruments, a benchmarking and analysis tool that is included with the Apple XCode IDE [ 42], and the results can be seen in Fig. 15. Note that the data reported in Fig. 15 represent the peak CPU usage, at the very point when the slide is changing for every peer simultaneously.


Fig. 15. CPU usage on supernode with increasing number of connections.




The results show that there is no appreciable trend in CPU usage as the number of users increases. With a greater number of peers, the peak processor usage still remains within an acceptable 60 percent range. As tested, the system is configured to push so that any given peer is never more than 0.25 seconds out of sync with the leader. With all 20 peers connected, some experimentation was done to modify this update cycle, however, there was no significant change in the overall performance or system utilization with this update change.
The system is able to scale so well due to its significant use of threading. Every peer connection is allocated its own processor thread, segmenting the processor load into small managed pieces. Sleeping the threads minimizes their CPU load until they are needed, decreasing the overall utilization. At the point when some information is changed, the threads reactivate, push their information to their respective peers, and terminate. A new thread is started for by each peer every time the previous one is terminated, and this new thread is again slept until it is needed. Functioning this way not only minimizes CPU load, but also decreases network traffic, thereby increasing overall system efficiency.
6. Conclusions and Future Work
Despite advances in mobile, interactive, and ubiquitous technology, the adoption of instructional technology and learning aids in traditional learning spaces has been lackluster. The system described in this paper is designed from the ground up to be affordable to implement, easy to operate, and most importantly, it is designed to keep the focus on the learning material by offering flexible and efficient learning interactions. It includes a cost-effective room-level location detection system based on IR light. This provides context awareness and allows the system to dynamically adapt based on its surroundings. Finally, the system provides efficient knowledge dissemination and sharing, and collaboration capabilities based on Semantic Web technology. It is designed to enhance traditional learning situations with modern instructional technology including handheld devices. The system has the potential to expand beyond indoor learning spaces through the use of mobile technology and other communication systems, thus providing a completely comprehensive learning experience.
This learning enhancement system was designed to provide a truly useful, practical, and realistic way to incorporate technology into traditional social learning situations. Research is currently underway on using other sources of location information to provide context in outdoor and alternative learning spaces. We are also investigating the enhancement of other parts of the learning experience, based on content and information from learning sessions. One concept is in the expansion of lesson plans and event schedules. As instructors and administrators plan tests, assignments, and course milestones, they input them into the system to be uploaded to the central server. Using the context awareness of the current system with semantic reasoning, this can notify learners of these events only when and where they are relevant.
In conclusion, the system succeeds at its goals to incorporate technology into the classroom in a way that is both seamless and comprehensive. In doing so, it helps to address the issues with ubiquitous technological adoption in traditionally nontechnical situations as well as providing practical solutions to these issues. It minimized reconfiguration, maximizes compatibility, and encourages interaction among learners. This work can provide a basis with which to finally create smart learning spaces that will actually be used by learners and instructors alike.

Acknowledgments

This work was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC).

    K. Scott can be reached at 913 McIntosh St., Thunder Bay, Ontario, P7C 3A9, Canada. E-mail: kscott4@lakeheadu.ca.

    R. Benlamri is with the Department of Software Engineering, Lakehead University, 955 Oliver Road, Thunder Bay, Ontario, P7B 5E1, Canada. E-mail: rbenlamr@lakeheadu.ca.

Manuscript received 11 Oct. 2009; revised 16 Mar. 2010; accepted 2 June 2010; published online 14 July 2010.

For information on obtaining reprints of this article, please send e-mail to: lt@computer.org, and reference IEEECS Log Number TLT-2009-10-0142.

Digital Object Identifier no. 10.1109/TLT.2010.12.

References



Kristopher Scott received the bachelor's degree in electronics from the RCC Institute of Technology, Canada, in 2007 and the master's degree from the Department of Software Engineering at Lakehead University. His research interests are in the area of Semantic Web and ubiquitous computing for mobile learning. He is a senior member of the IEEE.



Rachid Benlamri received the master's and PhD degrees in computer science from the University of Manchester, United Kingdom, in 1987 and 1990, respectively. He is an associate professor and the chair of the Department of Software Engineering at Lakehead University, Canada. He is currently a senior member of the IEEE. His research interests are in the areas of Semantic Web, ubiquitous computing, mobile learning, and semantic video analysis. He has more than 60 publications in referred journals, book chapters, and conferences.
29 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool