Solution & Benefits

From bemoko developer wiki

Jump to: navigation, search

Introduction

The bemokoLive platform overcomes the challenges associated with delivering mobile content to a wide range of diverse mobile handsets. You don't want to write many different versions of your mobile site for different devices - and you don't need to with bemokoLive. bemokoLive allows you to address the widest range of devices with the minimum investment in development.

The four primary concepts of bemokoLive are context, content, UI (user interface) and site. The context describes who is accessing the site and how. The site provides the configuration of how the web site should be delivered - including page mark up and content integration. The UI engine selects the appropriate UIs to use, i.e. the look & feel as well as user interactions. And finally the content engine pulls in the content from local or remote sources, e.g. local database or remote web service. These are all pulled together by the mobile web controller which is responsible for listening for user requests (a.k.a intents) and delivering the appropriate rendered pages to the user. It delivers these pages through the tweaker layer, which gives the system a final chance to modify the pages in a centralised and consistent manner, e.g. fix known device issues.

The bemokoLive platform is a Java based technology that runs inside any J2EE application server, such as Apache Tomcat. It allows the user to develop web pages using any standard web browser markup which is then delivered to the device making the request.

Content and data for the website is accessed via a plugin mechanism which means we can access data in a variety of formats, most commonly web services or an SQL based database. With the platform hosted by you, this means that we can plugin to your existing web services and therefore slot seamlessly into your environment. The system uses all standard Java components to allow easy operations and monitoring of hosted environments.

bemokoLive Flow

One of the first steps in processing a request from a user is to resolve the context. In particular the context resolution includes the identification of the connecting device and subsequent determination of the appropriate UIs that should be delivered.

A UI (User Interface) in bemokoLive is a collection of resources that define what the site should look like for a given UI segmentation. A UI may either contain all the resources required to render the UI, or may rely on the inheritance fall back to provide the full UI. Each UI is enabled for a given UI segmentation by defining the context rule for which the UI is relevant.

During this request initialisation, bemokoLive also determines the intent of the user. An intent is the desire for a user to do something. An intent is defined against a particular site such that there is a well defined URL which a user can access to achieve what they want to do. This desire to do something, and the appropriate URL that the user should visit, is the same whatever device is being used. In this manner it is very easy to define single services that support multiple means of accessing them.

Prior to rendering a page to the user, bemokoLive loads the plugins that are to be used to integrate the data for the particular intent and context. The default plugin language in bemokoLive is Groovy. Groovy is a widely acclaimed agile scripting language based on Java and is used for creating light-weight data access scripts that are easy to read and require minimal coding.

Finally the templates are processed to generate the page response for the user. A template is a file that provides a part of the UI, for example, an HTML template, a CSS file or an image or any other binary media file. All text UI resources, for example HTML or CSS files, are templatable and can make reference to dynamic data, including context and content. The templates can also be broken down as desired into components which can act as building blocks for the site.

Site Development

bemokoLive site development involves the configuration of the following

  • Site configuration - XML file describing the configuration of UIs, intents and plugins, along with rules of when each of these are appropriate.
  • Plugin creation - creation of plugin scripts that describe how data is integrated - e.g. how to connect to web services and how to process the data. Part of the processing is in preparation of content that is delivered to the user in the templates of the UI.
  • UI configuration - in general involves the creation of HTML & CSS templates along with required images.

Solution & Benefits