The WIDE toolkit provides meta-services or building blocks to support input forms, reports, databases, documents, multimedia, maps, charts, graphs, agents, notifications and alerts, publish-subscribe, indexing and searching, workflow, and collaboration through mediated social networks and shared web presentations. Part of the meta-toolkit supports specifying the operational relationships among components. Services are usually derived from the meta-components by completing one or more forms that specialize the meta-component. Each meta- component has an accompanying meta-test generation suite that is used to create tests for the derived component semi-automatically. In the next several sections we describe these meta-components and the kind of services that can be instantiated from them.
Forms support the input of discrete elements of data, as opposed to documents. They usually appear in two formats:
- data entry where the data about a single item such as a person’s record is being entered showing information such as name, address, gender, birth date and height and is being entered into a database; or as
- data input to a program to control its behaviour such as might happen where the parameters of a search are being specified.
The format of the form and the storage location of the data are entered through a set of forms into a form database. The form format is generated dynamically from the database each time the form is used. Static versions can also be generated once from the form database but this functionality has not yet been implemented.
Reports are discrete elements of data, as opposed to documents. They usually appear in two forms:
- lists showing a number of items such as appear in the body of an invoice or report card; or as
- a record about a single item such as a personal record showing information such as name, address, gender, birth date and height.
Reports are created by storing the format of the report and the source of the data to populate the report in a report database similar to the form database already described. The report format is generated dynamically from the database each time the form is used. Static versions can also be generated once from the report database but this functionality has not yet been implemented.
The meta-toolkit supports mapping: namely creation of maps, delivery of maps and use of maps as visualization, retrieval, searching, and storage tools. The meta-mapping system consists of three meta-components namely, the map-tile processor, the map server, and the map client.
Map Tile Processor – This meta-tool processes images of properly geo-referenced maps and produces set of tiles that are connected together to create a complete map. The tiles are produced so that it is possible to zoom-in and zoom-out at discrete levels using the map server and client described later in this section.
Map server – This map server delivers the maps produced by the Map Tile processor and supports the zoom-in and zoom-out functionality and positioning over an area of interest. The map server does not use traditional GIS software to support any of the mapping functionality. However, the server does support the current version of the Open Geospatial Consortium (OGC) standards. Supporting these standards allows direct communication between applications based on the interactive map and connected databases and any GIS incorporating the OGC standard. Thus, it is possible to communicate with GIS systems used by community governments that support the OGC standard or shapefiles.
Map client - The map client interface is interactive and contains a map and a bounding box with controls. The map is delivered from the map-server of properly geo-referenced base maps and features such as roads and water courses or lakes described previously. The map client can also use maps delivered from the Open Street Maps (OSM) Map Server.
The base maps are delivered as tiles while any features are overlaid on the map as translucent tiles, vectors or points represented as dots or other symbols. The maps can represent any spatial or map-based concept including thematic maps such as ones showing environmental or demographic data, roadmaps or even floor plans. Combinations of maps or map layers can be displayed such as a road map with a superimposed thematic map. Vector-based maps can also be displayed where required.
The map client controls in conjunction with the map server support zoom-in or zoom-out functionality and positioning over areas of interest. Positioning can be performed by scrolling the map with a pointing device such as a mouse or finger.
When connected to a database or directory of geo-referenced information the controls on the interactive map can be used to:
- Search for geo-referenced data in multiple databases. The map area searches are defined by the frame around the map (touch screen) or a shape including a circle, rectangle or general polygon (desktop browser). The search function displays the results as the search frame is defined.
- Display the results of the search as an icon, point, circle or polygonal shape on the map depending on the result of the search. For example, a building would be displayed as a point or icon while a park would be displayed as a polygon.
- Interact with the location and shape of a geo-referenced object by re-locating it or changing its shape (desktop browser).
- Interact with a geo-referenced object to cause more information about the object to appear on or next to the map in separate frame.
- Interact with a geo-referenced object by displaying a form associated with the object in a frame. The form can be completed to add to the information about the object in the geo-referenced databases.
- Display layers of information related to different datasets. By supporting map layers and their associated data it is possible to show how different groups of data are related geographically.
- Import or export shapefiles that once displayed on the map can be edited graphically, stored and be exported to other systems such as a commercial geographic information system (GIS) that can read such data formats.
The API for the Google and bing map clients can also be used and enhanced with the same functionality as is provided by the map client just described.
The meta-toolkit contains a set of meta-components to build and manage document repositories as well as creating, retrieving and presenting documents. Indexing and searching these documents is described later.
There are extensive statistical analysis capability meta-components. Charts and graphs are also implemented.
Access control - security
There are meta-components for an access control security system based on Role-based Access Control (RBAC) a model for access control commonly used in business.The meta-components generate the database tables for the access control system and also can create the login-panel when security is needed in an application system.Meta-components can “co-operate” on shared resources and it has often proven to be very helpful to administer RBAC definitions using Social Network group definitions and memberships (see later).
Mediated Social Networks
A social network is a structure usually composed of individuals or organizations that are related through common interests or interdependencies. The social network meta-component supports the creation of online communities allowing people to share ideas through various forms of interaction. Groups can be formed around common interests and the openness of the interaction can be determined by the group using the access control meta-components described earlier. Such social network meta-components can be used to build a social network asset consisting of components such as My Profiles, My Contacts, My Groups, My Messages, My Recommended Content, My Forums, managed threads and posts, My Bookmarks, Document development with content upload, writing, and WIKI linking.
There are meta-components for constructing agents. In our context, agents act autonomously to perform utility tasks within a software system often to manage redundancy. For example, agents could be defined to verify the content of ”local” databases against authoritative source databases or to allow a user to type information once while submitting the data to multiple databases or Web sites.
ADL is a language under development consisting of building blocks or meta-components that can be configured and put together rapidly to create applications for mobile platforms such as smartphones and tablets. Current supported smartphones and tablet supported are those using the Android (Google), and IOS (Apple) operating systems. Support for the BB10 (BlackBerry) is under way. As part of the design it is intended that ADL has access to the other meta-components in the meta-toolkit. Application can be defined directly through textual input or can be defined through an integrated development interface (IDE) provided as a Eclipse plug-in.
Indexing and searching
Meta-components exist to support indexing and searching of documents, spreadsheets and databases. Indexing of documents and other content is implemented using iFilters, a technique supporting access to different file types. Once these objects are indexed there is a meta-search engine that can be configured to search the types already mentioned based on keyword or stemmed search. The results from Web searches are categorized based on different search criteria such as the proximity of words in a phrase. The results of combined database and Web searches can be presented together. Temporal searches are also possible where the results of a search can be saved and the search then re-executed periodically at later times. The results of the two searches can be compared to see if new results have appeared in the intervening time interval. Multilingual searching across languages (search on synonyms) including vernacular and jargon is also possible but not currently implemented. For example in a document repository containing both French and English documents, a search for réseau will yield all documents containing the words réseau and network.
Publish-subscribe - notification
The Web is a pull medium. A user must look for information by “pulling” it out of the Web. The general publish-subscribe (notification) meta-component allows developers to create systems that allow users to subscribe and specify conditions under which they wish to have information published to them. For example, someone who is buying a house could request notification if a house meeting his/her requirements becomes available.
The collaboration meta-component allows users in different locations to use the Web to work together on a common goal. It has protocols to determine who is in control of the collaboration to ensure smooth operation among the members of the group working together. Any material that can be presented over the Web such as maps and diagrams can form the basis for the collaboration. All interactions can be recorded for future playback. The collaboration allows an authorized user to host a session at any time. Other participants then join the session and will see in near real-time a copy of the host's current page view in the system. This can allow participants a temporary view into the system of data or features that they would not necessarily have under their own login credentials. As the host navigates the site, browses or draws on a map, or changes form data, the view for all of the participants reflects the current state of the host's page. Typically, a collaboration session would coincide with a teleconference so that the users would be able to discuss what is happening in the session, though there is a chat function which would allow this to happen via text messaging. The host can also temporarily share control with any participant, thus allowing that user to make changes to the data which are displayed to the host and other participants. This interplay can continue until the goal of the session is accomplished.
A workflow meta-component is being implemented that allows the definition of a workflow to be stored in a database. Thus, the workflow is no longer in a programmatic form and can be easily and dynamically modified. Workflow will be defined directly through an integrated workflow development interface (IWDE) provided as a Eclipse plug-in.
The meta-toolkit supports the creation of test outlines which are automatically completed when the component is defined from the meta-component. As components change, their accompanying test also changes. A software system can then be tested by simply “pushing” a button. Testing includes testing for side effects where only the data that was intended to change is actually modified.
The academy – documenting and integrating components
The academy meta-component is used to support widespread dissemination of “documentation” and knowledge describing how applications can be built from the WIDE Toolkit. Documentation includes APIs for meta-components and derived components, demonstration videos and best practices as well as principles of proper design for the Web and mobile applications.
Service API Definition
Most of the meta-components that are used to create services already have APIs that have been defined and used extensively while working in conjunction with our current partners. These meta-components include: Forms, Reports, Maps, (Map Tile Processor, Map server, Map client), Documents, Data Visualization, Access control – security, Mediated Social Networks, Agents, ADL, Indexing and searching, Publish-subscribe – notification, and Collaboration. These meta-components will be modified during the period of this project and new augmented APIs will be defined and published.
It is planned to deliver all the meta-components described earlier in this section and which includes: Forms, Reports, Maps, (Map Tile Processor, Map server, Map client), Documents, Data Visualization, Access control – security, Mediated Social Networks, Agents, ADL, Indexing and searching, Publish-subscribe – notification, Collaboration and Workflow.
Our team currently interacts with our user community to ensure that the defined APIs deliver the functionality required. We are in constant communication with the user community as new systems are developed.
Two of the meta-components namely ADL and workflow will have a user interface that will guide the user in completing the meta-component. In the case of workflow a service is created, whereas ADL provides a complete mobile application.
Client libraries are not required as the meta-components are self-contained.
The Academy described earlier will contain training materials to illustrate how to create services and to combine those services into applications.
The items to be delivered are meta-components that can be used to create services and then composed into applications if desired by the user. There will be meta-components to provide services for Forms, Reports, Maps, (Map Tile Processor, Map server, Map client), Documents, Data Visualization, Access control – security, Mediated Social Networks, Agents, ADL, Indexing and searching, Publish-subscribe – notification, Collaboration and, Workflow. Details about each of these meta-components are provided earlier in this section. The functionality for the meta-components is as has been described earlier including any new functionality.
Since the meta-components are already defined and have been used in many applications there is very little risk related to the implementation. There are six professional software engineers on the implementation team who can trade places when needed to cover any absences that might impact the schedule.
Currently the WIDE toolkit operates and is accessible on a cloud infrastructure. Making this infrastructure cloud operational on the CANARIE IaaS system should be possible.
Testing as mentioned earlier is an important part of the meta-components we will be providing. Meta-test will be generated for each meta-component and these will be completed in conjunction with the meta-component becoming a service. Thus each service will have an associated testing service.