An Integrated Framework for Web-based Learning Daramola, J.O and Bamigbola, O.M Department of Mathematics and Computer Science, University of Ilorin, Ilorin, Nigeria. Ombamigbola@hotmail.com and wandi_ex@yahoo.com Abstract Limited infrastructures and resources for training and learning at the tertiary level in many third world countries, has resulted in instances of overcrowding of lecture rooms and reduction of staff to students ratio which has further depleted the existing academic standard. A potential antidote is the adoption of Webbased learning, which has proved relevant to both distant and on-site learning In this paper, we introduce an integrated framework model for web-based learning. This is an ongoing work at the Department of Computer Science, University of Ilorin, and Ilorin, Nigeria. The framework architecture made up of four core components includes an on-line classroom component, on-line result checking component, on-line course assessment component and on-line course registration component. This framework model is presented as an instance of novel integration of component-based development, multimedia streaming technology and web services that is based on reliable software architecture. 1. Introduction Web-based learning entails the use of the web technology as an aid for the learning process in terms of knowledge acquisition and delivery. This include the use of web-based resources i.e. information, knowledge base, electronic libraries and so on and also the uploading of useful information on the web, which can be readily accessed remotely by students. The web-based learning framework is an integration of reusable components for on-line classroom, on-line assessment, on-line result checking and on–line registration functionalities. This has been implemented as a framework using the 1 software product-line engineering paradigm because of the desire to achieve massive reuse of system components by making the components to be generic entities that can be parameterized for variability in a number of other web-based learning software products. 2. Definition of Key terms 2.1 Components: There exist a flora of different definitions of components that are slightly different. According to C. Syperski [5] and [12], “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by a third party “. This definition, which is widely, accepted today states that a component is part of software in binary form (i.e., it is not necessary to rebuild it) with contractually specified interfaces (i.e., defined API and all assumptions in which the components can work). A component can be deployed independently (i.e. it can be dynamically loaded into the system, or dynamically replaced). It is subject to composition by a third party (i.e. component must have a mechanism which makes it possible to integrate it into the system without modifying and rebuilding it). To capture the view of a component completely and to ensure its correct integration and updating, the specification of a component should include a set of interfaces and an implementation. The set of interfaces specifies the services provided to or required from the environment. The interfaces specifies how the component will interact with other components while the implementation is an executable code in a programming language like C/C++, Java etc. which can be coupled to the code of other components via interfaces [8] and [10]. 2.2 Web Services: A web service is an interface that describes operations that are network-accessible through standardized XML messaging. A web service is described using a standard, formal XML (Extensible Markup Language) notion called its service description. It covers all details necessary to interact with the service, including message formats, transport protocols and 2 location. The interface hides the implementation details of the service, allowing it to be used independently of the hardware or software platform on which it is implemented and also independently of the programming language in which it is written. Web services allow applications to be integrated more rapidly, easily and less expensively than ever before. Web services facilitate program to program interaction using existing and emerging standards like HTTP, XML, Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL) and Universal Description Discovery and Integration (UDDI) [6]. 2.3 Streaming: this is a technique for transferring data such that it can be processed as a steady and continuous stream. Streaming is the process of playing a multimedia file while it is still downloading. Streaming technology, also known as streaming media, lets a user view and hear digitized content — video, sound and animation — as it is being downloaded. This ensures that streamed sounds and images can arrive within seconds of a user's click when using a web browser plug in. Streaming technologies are becoming increasingly important with the growth of the Internet because most users do not have fast enough access to download large multimedia files quickly [11]. 2.4 E-learning : This entails education via the Internet, network, or standalone computer. e-learning is essentially the network-enabled transfer of skills and knowledge. e-learning refers to using electronic applications and processes to learn. e-learning applications and processes include Web-based learning, computer-based learning, virtual classrooms and digital collaboration. Content is delivered via the Internet, intranet/extranet, audio or video tape, satellite TV, and CD-ROM [13]. 3. Methodology The Software product-line engineering paradigm has been adopted for the framework architecture because we would like to define various system instances dictated by prospective users requirements from the same core architecture. Secondly, we want the evolution of the various system instances to be well managed and also to be time and cost effective without trading away 3 reliability. This is what a product-line concept offers, since it embraces system evolution as part of the core practice. A Software product-line is a set of Software intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core asset in a prescribed way [2] and [3]. It entails the production of a set of software products using common core assets. The core asset may be a software component, a process model, a plan, a document or any other useful resource for building a system. For example, one of the most important core assets is the software architecture for the productline. Another important one is the product-line’s scope, which is a statement of what products the core assets are intended to support. The scope defines the commonality and variability (ways in which they differ from each other) that defines every product in the software product-line. Software architecture provides a context in which other assets can be developed with the right flexibility to satisfy the products in the product line. Software product-line engineering, which is based on exploring interproduct commonality, is rapidly emerging as a viable and important software development paradigm. Also, it facilitates the production of tailor-made systems built specifically for the needs of particular customers or customer groups by exploiting the commonalities shared by software products to realize order-ofmagnitude improvements in time to market, cost, productivity, quality and other business drivers. It also enables rapid market-entry and flexible response, and provides a capability for mass customization of software products [9]. A product in the software product-line is formed by taking applicable components from the base of common asset, tailoring them as necessary, through pre-planned variation mechanisms such as parametization or inheritance, adding any new components that may be necessary and assembling the collection according to the rules of a common reference architecture. This connotes that building a system in a product-line becomes more of a matter of 4 assembly or generation than of creation. The predominant activity also becomes integration rather than programming. Therefore, the software product-line practice is typically the systematic use of core assets to assemble, instantiate or generate the multiple products that constitute a software product-line. The essential activities [9] that are involved software product-line practice include: -Architecture Definitions; -Architecture Evaluation; -Component Development; -Commercial Off The Shelf (COTS) tools Utilization; -Mining Existing Assets; -Requirement Engineering; -Software System Integration; -Testing and -Understanding Relevant Domain. 4. Design and Implementation of the Web-based Learning Framework 4.1 Framework Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. The externally visible properties refer to those assumptions other elements can make of an element (component), such as its provided services, performance, characteristics, fault handling, shared resource usage and so on [1] and [3]. The success of any software project depends on the architecture because it is the primary and most fundamental artifact of a system. Also, the quality and attribute of a system such as performance, modifiability, reliability, usabilibity and so on, all derives directly from the architecture. In a product-line, the dominant core asset is the reference architecture for the product-line, which is used at every product instantiation. The framework architecture is made up of four core components, which includes an on-line classroom component, on-line result 5 checking component, on-line course assessment component and on-line course registration component. [See Figure 1.0] 4.2 Description of Components 4.2.1 On-line Classroom: This implements the functionalities of a computerized model of the classroom session for the purpose of teaching and instruction. The input parameter to trigger this function is the selected course represented with its course code and course title. This compound component has four subcomponents. (See Figure 4.1) These are: - User Interface: This component has an interface that implements access validation and verification methods to admit prospective users into the on-line classroom. This serves as the inlet into the other component interfaces. - Streaming Component: This provides multimedia presentation of classroom sessions that have been recorded and stored on video files creating an instance of a virtual classroom. This functionality will be achieved by using a COTS component that will be integrated into the system. - Portal Service: The portal service component offers on-line search functionalities for sourcing additional materials on selected course subjects. A portal is essentially a web interface that provides access to information in a condensed form. It displays personalized information from various sources in a single page. This may be displayed in various rectangular areas called portlets on a single page thus, allowing the user to efficiently access the information instead of visiting various sites one after the other. Now that Web services have become the predominant ways of making information and application programmatically available on the Internet, therefore the portal component will be integrated with web services as data sources. Therefore, the various portlets will use web services as backend. This will ensure that the portlet code runs locally on the portal and uses the web service to access information [9]. - Content Builder Component: This component is responsible for course content building and the periodical uploading of content on the web. It has a verifier interface that certifies the identity of the user since this is meant to be a classified operation. The course lecturer is the primary responsible for supplying 6 the relevant needed information, while the software administrator assist in the actual technical process of uploading information. See Figure 4.1 for the statechart diagram of the On-line Classroom Component [7]. 3.2.2 On-line Assessment Component: with this component, lecturers can deploy test and assignments under the respective course pages. This component implements a database management systems where the various test and assignments submitted are stored for future access by the course lecturer. It has a verifier interface that determines the eligibility of students for test and assignments. It also implements a timer method that determines the period of test taking and duration of assignment. The content builder interface allows the publishing of new test and assignment on the web. See Figure 4.3 for the statechart diagram of the On-line Assessment Component [7]. 3.2.3 On-line Registration Component: This component enables stale students of the university to do sessional course registration. The list of available courses, course information like title, credit, status and prerequisites are made available. The verifier Interface evaluates Student’s eligibility to register for courses based on past performance and also verifies the evidence provided for the payment of school fees for the current session. It disallows students who have suspended their studies or are under disciplinary measures from registering. Also, it implements methods to Add courses and to drop previously registered courses. See Figure 4.4 for the statechart diagram of the On-line Registration Component [7]. 3.2.4 On-line Result Checking Component: This component connects to the central database where students’ results are stored [4] and enables students to check their results in the web browser. The inputs are the matriculation number, the access number obtained from the scratch card purchased for the purpose of checking results, which can be used for a maximum of four accesses. The verifier method of this component ensures that result of final year students are not displayed and also those of students undergoing disciplinary measures. See Figure 4.5 for the statechart diagram of the On-line result-checking component [7]. 7 WEB CLIENT (Web Browser) FRAME WORK (MAIN) On line Class Room - On line Assessment User Interface Verifier() On line Registration On line Checking of Result User Interface Verifier() User Interface Verifier() Streaming Component Portal Service Content Builder Assessment Interface User Interface -Verfier() Content Builder Course Registration Figure 4.1 Conceptual view of Integrated Framework for Web-based learning Architecture Verifier Display Successful do/ Call verifier Fail Invalid On-line Classroom do/ Message Exit/Quit program. do/ show content Streaming functions Portal Service Content Builder Figure 4.2 State Diagram for on-line Class Room Component 8 Verifier Assessment Interface Successful do/ Call verifier do/ show content Exit/ after set time Fail Publish new info. Invalid do/ Message Exit/Quit program. Check User Status Fail pass Invalid On-line Assessment Content Builder do/ Message Exit/Quit program. do/ upload content Figure 4.3 State Diagram for on-line Assessment Component Verifier Successful do/ Call Fees_payment do/ call pre-requites do/ call disciplinary list do/ Add courses do/ Drop courses Exit/ after set time Fail Invalid On-line Registration Course Registraion do/ Message Exit/Quit program. Figure 4.4 State Diagram for on-line Registration Component 9 Verifier Successful Check Result do/ Display result do/ Call student id do/ call confirm access number do/ call disciplinary list Fail Invalid On-line ResultChecking do/ Message Exit/Quit program. Figure 4.5 State Diagram for on-line Result-checking Component 4.3 Implementation of Framework components The Microsoft.Net framework will be used for the implementation and integration of system components. This is because it offers the platform for the publishing of component interfaces and implementation easily. The .NET is a "software platform". It's a language-neutral environment for writing programs that can easily and securely interoperate. Rather than targetting a particular hardware/OS combination, programs will instead target ".NET", and will run wherever .NET is implemented. .NET is also the collective name given to various bits of software built upon the .NET platform. These include both Visual Studio.NET and Windows.NET Server products. The Portlets of the portal component whose backend will be implemented as web services will use the service description specified in the Web Service Description Langauge (WSDL) file to bind with other available and relevant web service application in the service registry using the XML-based Simple Object Access Protocol (SOAP). 10 5.0 Expected Result It is expected that the implementation process which has already started will be concluded smoothly, yielding the desire to achieve massive reuse of system component to service many other products that will be derived from this webbased learning framework architecture. 6.0 Conclusion This on going work is expected to be a sucessful demontration of the software product-line engineering initiative and a worth while case study for other practitioners in this field of software engineering practice. The emerging products are also expected to be reliable web-based learning systems that will lift the standard of tertiary learning. References 1. Allen, R.J. (1997): A Formal Approach to Software Architecture. Ph.D. Thesis, School of Computer Science, Carnegie Mellon University, U.S.A 2. Bass, L., Clements, P., Cohen, S., Northrop, L., and Whitney, J. (1997): Product-line Practice Workshop Report (CMU/SEI-97-TR-003, ADA327610) Pittsburgh, P.A. ; Software Engineering Institute, Carnegie Mellon University. 3. Bass, L., and Kazman, R. (2003): Software Architecture in Practice; AddissonWesley, M.A. 4. Bamigbola O.M., Olugbara O.O. and Daramola J.O. (2003): An ObjectOriented Software Model for Students’ Registration and Examination Result Processing in Nigerian Tertiary Institutions; Science Focus; Vol. 6, [70-80]. 5. Crnkovic, I. (2001): Component-based Software Engineering- New Challenges in Software Development; Software Focus; 2(14), [127-133] 6. H. Kreger (2001) : Web services Conceptual Architecture WSCA 1.0: IBM Group 7. OMG: OMG-Unified Modelling Language Report V1.5; Object Management Group; http//www.omg.org/ 11 8. Microsoft (1996), The Component Object Model Specification; Report V 0.99, Microsoft Standards, Redmond WA. 9. www.sei.cmu.edu/: A Framework for Software Product-line Practice version 10. Sun microsystems: Javabeans 1.0 Specification; http://www.java.sun.com/beans 11. http://www.realnetworks.com/devzone/feature/ archive_features/get_started_faq.html : Introduction to streaming. 12. Szyperski, C. (1998): Component Software Beyond Object-Oriented Programming; Addison-Wesley, Massachusetts. 13. http://www.webopedia.com/TERM/E/e_learning.html 12