This website uses Javascript. Your browser either doesn't support Javascript or you have it turned off. To see this website as it is meant to appear please use a Javascript enabled browser.

 
 
 
Xi FAQ's
No-nonsense answers to questions about Xi
What is Ebase Xi exactly?
Xi is a rapid web application development platform that supports the development of sophisticated user interfaces, workflow processing, and data integration with pretty much anything that presents an API.

Our aim is to make it fast and easy for people to develop powerful, good looking web apps without needing to be an expert in low level programming or any number of supporting technologies.

The product focus is totally about productivity. We go to enormous lengths to take away all of time consuming complexity that people have to deal with when they work directly with web standards such as CSS, JavaScript and XML, and low level programming languages like JAVA, C#, PHP, and Ruby.

In essence Xi is a single-technology platform that covers the entire scope of web app requirements and massively simplifies the development process.

Why should I use it rather than anything else?
Simple, you'll deliver your application much faster and cheaper. The argument is all about money - if you need to spend the least amount getting your app delivered, and potentially we're talking about one tenth of the amount of money you might be used to, then Xi is going to be good for you.
What do people use it for?
All types of web applications, anything that needs to collect data, validate it, present it, workflow it or integrate it with some sort of back office system. Includes web sites ranging from the virtually static through to ones where every user action gets collected and processed, electronic forms, commercial software products, business process engineering projects, web service API publication, SOA projects, intranets, content management systems, etc.
How mature is it?
Development began 2001, first release August 2002, now on V4.4. Thousands of applications and products developed and in production.
Who uses it?
Used by 50% of UK local government, blue chips like Vodafone and AXA, major software vendors such as Northgate PLC and Capita. Multiple references at almost every level can be provided.
Ok, so it's fast to develop...but how fast?
Impossible to quantify but...for example, Ebase did a project for the UK Home Office - we delivered in one month with one guy what the Home Office's supplier had failed to deliver with a team of 60 in eight months. Another example, Toyota in the US budgeted $240K for a worldwide parts management system but delivered it for under $30K using Xi.
I'm worried that Xi is proprietary or niche - Am I right to worry?
Yes...and no. Yes, if we weren't planning to roll Xi out to the global web app development community but no, because that's exactly what we are doing. And doing it with a free Community Edition and a pricing model that we reckon will make cost a non-issue.

We've also introduced support for other programming languages within Xi too, starting with JavaScript, which will allow existing development communities to position Xi as a complementary rather than competing technology.

How quickly can my guys get up to speed?
A good developer will be up and running after a few days, certainly for the ADP stuff (user interface development), and then factor in another week to take in the Workflow and Integration Server. So, a couple of weeks all up.

For channel partners we compress the whole training program into one intensive week. But people coming out of that are ready to roll.

We also publish all of our training materials online so if you prefer the self-taught approach then that's another option.

How much does it cost and what do I get?
All Xi licenses include the entire platform - we don't restrict any functionality.

All development and test licenses are free of charge. Production licenses are server-based (the hardware server that executes the Xi application server, that is) and are charged in proportion to the total maximum amount of concurrent sessions that you need across all of the Xi applications that you're running.

We have the following editions, charged as follows:

If you want to include fix packs and new releases then we charge 20% extra per annum. Fix packs and new releases are included with the Community Edition free of charge though.

The Server Edition refers to a server with maximum 2 CPU's (any type).

The Enterprise Edition is a negotiated price for people who need to buy a lot of Server Edition licenses.

A couple of examples to make things clear:

You want to build a number of applications in Xi and run them on your Intranet. Your maximum concurrency across all of the applications is 5. All you need then is the Community Edition and there's nothing to pay.

You want to build a product and sell to lots of people. Your customers are going to vary in size and you won't know their run-time requirements until you've sold. No problem, at the point of installation you need to buy an Xi licence of the right size to run that customer. If your customer is small you could probably get away with the zero cost Community Edition. If they're medium size, say maximum concurrency of 20 for your app then a Professional licence at £1,200 will do it. If they're mega (congratulations) then you're probably safest with a Server licence and then there's no limit at all (apart from whatever the hardware can manage of course).

You want to set up a Cloud and run a 100,000 people concurrently across a wide range of Xi applications. You work it out that you need say 20 virtual servers in a cluster. Buying Server licenses for each of those would work out expensive so, no problem, you give our sales guys a call and we use the Enterprise Edition to work out a better deal.

What do you mean by "concurrent users" exactly?
Whenever a user accesses an Ebase application it creates a session in the Ebase Server and we count that as one concurrent user. After a while, assuming that the user's stopped doing anything, the session times out and gets removed. The length of this timeout is something that you set for the Xi Server.
We want to set the timeout to be really long. Does that mean we'll quickly exceed our concurrency limit?
No, Xi only counts user sessions that have been active in the last 15 minutes.
It seems very cheap - how come?
If it all seems like incredibly good value then cool, use it!
The Community Edition - what am I allowed to do with that?
Whatever you like...build applications, commercial products for re-sale, whatever. It's completely free and shippable, just bear in mind that the run-time limit on concurrency is 10.
How much would it cost me to get something equivalent to Xi from elsewhere?
Hard to say, and whatever we said people would say we're not comparing like with like. But, for sure, if you approached the major development tools vendors like Microsoft, IBM, Software AG, Adobe and the like then you'd be talking $100,000 plus, plus annual maintenance, plus a serious increase in complexity and overall cost of ownership.
How do you define a CPU?
By a CPU we mean one logically independent CPU core. For example, if your server has a quad-core Core i7 supporting Hyper-Threading, then that would be 8 CPUs, whilst a quad-core Q6700 (no Hyper-Threading) would be counted as 4. Strictly speaking the Ebase Xi Server counts the number of CPUs available to its operating JVM using the JAVA availableProcessors() method.
How does it hang together architecturally?
Two parts, the Xi Designer and the Xi Server: the Xi Designer runs on your desktop and connects to the Xi Server. As you develop, your application is stored as data in the Xi Server repository (database).

At run-time your application is called via a URL to the Xi Server, which executes it and dynamically constructs the HTML, etc. that gets returned to the browser.

The Xi Designer is a JAVA Swing application; the Xi Server is a JAVA Servlet and runs on any J2EE compliant application server (Tomcat, JBOSS, etc).

The Xi repository is any database that has a JDBC driver available.

You typically have three server environments, development, test and production. You move applications between the three via the Xi import/export mechanisms.

We run .NET - will it work alongside that?
Yes, no problem.
Can I run it on my servers?
Yes, it's designed to work that way.
Can I run it in the Cloud?
Yes, the Xi Server is optimised for very high concurrency and supports hardware server clustering for horizontal scaling if required.
What operating systems will the Xi Server run on?
Any that will run JAVA. So, all flavours of Windows and UNIX for sure, any sort of mainframe or mainstream mid-size computer, and pretty much everything in between.
What sort of server do I need to run the Xi Server?
Well, not to dodge the question, but the answer is that it depends entirely on what your application does and how many people are going to be running it at the same time. Having said that, and in the absence of any more information, we'd suggest go you for something like a 2-CPU server, RAID-5 disks, 4Gb RAM and a 64-bit OS. Either Windows or UNIX will be fine. A server like that, running a typical Xi app, will be able handle a lot (thousands) of concurrent users and their associated data processing. Also, if you go 64-bit, you'll be able to scale your hardware up as you add more apps.
Does Ebase provide a Cloud I can run my Xi apps in?
No, not at present, although there's nothing stopping you installing your Ebase on something like the Amazon cloud. We do also regularly host Xi applications for our customers - prices on request.
What does Xi integrate with?
Out of the box integration with databases (JDBC driver needed) including stored procedures and functions where supported, various XML transport mechanisms including Web Services (calling and publishing), flat files, PDF, email, MQ Series, JMS Messaging. Also ships with an SDK that allows people to create custom integration (Resources, in Xi parlance) and plug them into the platform for use by Xi developers.
How does integration work?
Xi represents everything outside of your app that you want to exchange data with as a Resource of an appropriate type, e.g. web service Resource, database Resource, etc. Each Resource will have fields that can be used to pass data to the Resource or read data from it. The developer then simply maps (binds) the fields in his app to fields in the Resource and makes calls to the Resource using simple FPL commands to move data in or out of the app.

Xi provides various wizards for creating Resources, e.g. creating a web service Resource by importing a WSDL or reading the meta-data from an underlying database to create a database Resource representing a particular table.

For example, you have a database table called PEOPLE. You want to read and write to it from your app at some point. No problem, you point Xi at the database that holds it and follow the wizard to create a database Resource called, say, PEOPLE_RESOURCE. You then use the wizard to map your application fields to the Resource fields and that's it, now you can read and write to it from your application. Typically, creating a new database Resource to the point where you can use it in an app will take less than a minute. So, to now use the Resource you just issue FPL commands to it, e.g. to read data in from the PEOPLE table:

Fetch PEOPLE_RESOURCE;

To insert new data:

Insert PEOPLE_RESOURCE;

To update existing data:

Update PEOPLE_RESOURCE;

To delete existing data:

Delete PEOPLE_RESOURCE;

And that's it. Database integration in Xi distils down to four simple commands with the Resource handling everything else on your behalf.

This principle of using simple FPL command verbs to interact with Resources of different types is one of the key productivity features of Xi. In Xi all data communication with the outside world has been simplified to a small set of very simple command verbs that you address to a Resource of a particular type, e.g. to send an email

Sendmail EMAIL_RESOURCE_NAME;

To call a web service:

Call WEB_SERVICE_RESOURCE_NAME;

The result of this approach is that the application developer doesn't need to be a low-level expert in every technology around and doesn't need to spend valuable time hand-coding every integration point. You simply let Xi set up the Resources for you and then address them via simple FPL commands. You end up with a very small amount of code and a correspondingly small maintenance effort when things need to be changed.

Can I use it to interface to my existing databases?
Yes. Xi will communicate with any database that has a JDBC driver available.
What databases is it able to access?
Xi will communicate with any database that has a JDBC driver available. This includes Postgres, MySQL, Oracle, SqlServer, IBM UDB, and Ingres to name just a few.
Can Xi call Web Services?
Yes, Xi provides a wizard to create an Xi web service Resource straight from a WSDL file. You then bind the web service Resource to your app and call the web service using the FPL call command. Very simple. Take a look at the FAQs on integration for more background.
Can it publish Web Services?
Yes, this is the job of the Integration Server module. The publishing process is wizard driven and usually takes less than a minute. The web service's processing is implemented using FPL, Ebase's processing language. Have a look at the business logic FAQ for some more info about FPL.
I have a load of legacy systems - can Xi integrate with these?
Yes, almost certainly. Integration is one of Xi's strongest points and the ability to bring data together from any number of separate systems is a core part of its value proposition. Built-in integration support for databases, web services, flat files, email, PDF's, etc. plus the facility to (create custom (JAVA-based) integrations and plug them into the platform for Xi developer use.
Can I use it to take payments?
Yes, we've integrated a wide range of payment engines including PayPal, WorldPay, NetBanx and HSBC, to name a few. Two mechanisms are supported: direct, via whatever API the payment service provides, or indirect via a decorated URL transferring control to the payment service provider's web site (with a subsequent return to the Xi application on completion of the payment).
Can Xi send text messages?
Yes, available as a Resource type. You just need to set up an account with an SMS service provider and then you'll be able to text under Xi app control.
Can Xi send data via FTP?
Yes, available as a Resource type.
How is business logic implemented?
You have a choice. You can either use FPL, Xi's built-in processing language, or from V4.4 onwards, you can code in JavaScript and address Xi's internal API.

If you're a software engineer and you want the full power of an object oriented language at your disposal then you'll probably want to use JavaScript. On the other hand, if your app doesn't need all that sophistication, or maybe you just prefer an easy to use scripting language, then FPL would be a good choice. Or, you can mix and match - have some logic in JavaScript, some in FPL.

Can it access the software I've already developed?
Yes, via FPL using Custom Functions or Custom Resources, or, if you're coding in JavaScript, you can also call Java classes directly (and from Java you can pretty much call anything).

Custom Functions are JAVA-developed extensions to FPL, whilst Custom Resources are JAVA-developed custom integration modules. Both may be plugged into Xi and addressed directly from FPL or from JavaScript.

Is FPL easy to learn?
Any software engineer is going to find FPL very, very simple. It's procedural, English-like (you can pretty much guess the commands) and intuitive. For experienced IT guys learning FPL is more about discovering which commands do what, rather than having to learn anything. For comparison, if JAVA was 90/100 for difficultly then FPL would somewhere around 1/100.

FPL is designed to be very simple and easy to use, made up of intuitive and easy to use commands. FPL provides app developers with run-time control over every aspect of run-time validation, navigation, processing, data integration, workflow process step routing, web service processing, etc.

FPL has a library of arithmetic, character and date functions, supports if-then-else processing, loop constructs, sub-routines, and dynamic command generation. Also enables dynamic addressing of all Xi control properties, data integration via Xi Resources and printing control.

A few simple examples:

To hide a field: hide FIELD_NAME;

To show a field: show FIELD_NAME;

To call a different Xi app passing in some data: call XIAPP param1=somedata;

To read some data in from a database Resource: fetch DATABASE_RESOURCE_NAME;

FPL scripts fire in response to Xi application events, e.g. when an application loads, an event fires, when someone changes a field value, an event fires, and so on.

FPL is also extensible with Custom Functions. Custom Functions are developed in JAVA against a shipped API and are typically used to call out to an external code library to provide some service, e.g. an external graphing package.

We use JAVA for business logic - can Xi call that?
Yes, via Custom Functions or Custom Resources, or if you're using JavaScript, directly - you just invoke your Java classes and call the methods, as simple as that. Take a look at the FAQ about using software already developed.
Can I design reusable application components?
Yes, very strongly supported and encouraged in Xi. Three types: field, part-page and page. Each can exist entirely independently of an application that uses it. Each can have its own independent integration mechanisms and processing. Xi components can be nested, i.e. built out of other components. A component can be as simple as a single field with a validation check or as complex as an entire sub-application.

Xi components are maintained independently of the applications that use them at run-time. Changes to a component are automatically synchronised across all of the applications that they are deployed to.

Components are designed to enhance productivity through re-use.

What is the Xi workflow exactly?
Xi's workflow allows the individual steps that make up a business process to be modelled and executed as discrete tasks, each of which must be completed in sequence. The sequence may be pre-defined, or can be determined dynamically at run-time. For example, if a loan application gets approved then the workflow goes one way, if it's rejected, it goes another.

The individual tasks may be interactive, i.e. will turn up on someone's task list and must be actioned by them for completion, or may be system-based, in which case the task will be something that can be executed by software, e.g. the integration of a piece of data with an external system.

Xi's workflow supports parallel processing (splits and joins), sub-processes, escalation events, wait events (waiting for an external event before proceeding), and a task assignment mechanism that can map on to any externally defined security (authorisation) model.

Workflow routing is controlled by Xi's FPL language, as is any data integration processing.

Interactive workflow tasks are mapped to Xi browser apps. When a user selects an allocated task from their task list the Xi app automatically fires up with all mapped data being automatically passed in. Wizards are provided to make the binding between interactive tasks and Xi browser-based apps fast and easy.

Does it handle splits and joins?
Yes.
Can I design my own task lists?
Yes, Xi workflow task lists are simply Xi apps working against the workflow API. You can use the shipped samples or you can create your own using normal Xi development methods.
Does Xi workflow come with an administrator dashboard?
Yes, ships with an Xi application that provides a full administration console. Also ships with an API that allows additional administration consoles to be developed if required.
How does Xi handle styling?
Xi provides a layer of functionality designed to simplify the process of laying-out and styling browser apps. Xi supports panels, corresponding to HTML DIV tags, which act as containers for Xi controls (e.g. fields, menus, tab sets, lists, etc).

But, additionally, Xi supports a number of Layout Types that allow a developer to easily position content (such as controls, or other panels) within a panel. Layout Types include horizontal, vertical, column, flow and field grid and may be combined to effortlessly represent any page layout without any knowledge of CSS positioning, and with complete confidence that the design will render exactly the same in any browser.

All Xi controls may be styled using CSS against their defined properties. To assist developers, the styling associated with a particular control may be saved as a Property Set and be shared and reused as a default for that control type. This functionality allows developers to create an Xi Presentation Template, a complete styling set for a development project which gets automatically applied whenever a developer selects a control to use.

All styling properties and Presentation Templates may be addressed at run-time via FPL, Xi's processing language. This gives developers the ability to dynamically control application look and feel as required, e.g. to colour-wash an application running in the Cloud (for different users), to hide or show content depending on a user's authorisation, and so on.

Can it support rich client stuff?
Yes, we specifically support the jQuery library. Any jQuery control may be applied to an Xi browser app. Have a look at the Resource centre for some examples of what you can do and how to do it.

Take a look at the following resources:

Can it support AJAX processing?
Yes, we typically implement AJAX processing using the jQuery library.
Can I build mobile web apps with Xi?
Yes, have a look at some of the examples in the Resource Centre. We typically use the jQuery mobile framework to provide the mobile phone touch-style interface. The Xi Designer working area can be set to match any screen size, so makes the development process straightforward.

Take a look at the following resources:

Do Ebase provide page layout templates?
Yes, we ship a number of examples. More can be found in the Resource Centre, plus video examples of how to take a CSS template and turn it into an Xi layout.
Can I create my own page templates?
Yes, fully supported in the Xi Designer.
How does printing work in Xi?
Printing in Xi is very simple. The FPL outputpage command will automatically create a PDF rendering of any Xi application page (or group of pages) within an app. Options allow designers to specify behaviour around expanding lists of data, page breaks, text areas, and so on.
Can I generate PDFs?
Yes, this is the standard Xi printing function.
Can I write out to existing PDFs?
PDF forms are a type of Xi Resource and so can be mapped directly to an application and written out to at run-time via FPL.
Can I write out barcodes?
Yes, various formats supported.
I need to authenticate my users - does it support that?
You can run any Xi application with security turned on. In that mode Xi will insist that a user be authenticated before accessing an application. Various authentication mechanisms are supported, i.e. lookup to LDAP, via passed in cookie, parameter or HTTP session variable. If no authentication token is passed then Xi will automatically present the user with a logon screen.

Authentication and authorisation are comprehensively handled within Xi's security support and allow for easy synchronisation with single sign-on systems. Xi security is designed to be very flexible and to assume that application security will be managed outside of the Xi environment.

Can Xi use my LDAP set-up?
Yes, fully supported.
We've built our own security system - can Xi work with that?
Yes, fully supported. Have a look at the FAQ on authentication.
Does Xi handle the OWASP top 10?
Yes, penetration testing against the OWASP top 10 is a routine part of Xi testing.
Does Xi support large development teams?
Yes, all developers sign on to the Xi Designer with a username and password. Each developer will have a security profile that determines which projects and other Resources they may access. Xi allows Resources to be project specific or to be shared across teams.

If required, Xi will support multiple teams working completely independently of each other, and completely unaware of each other's presence in the design environment.

Can I use Xi to develop my electronic forms?
Yes, Xi is the leading electronic forms platform for 120 UK local government organisations.
Can I use Xi to provide an SOA?
Yes, the Xi platform lends itself very well to service oriented solutions. Have a look at the SOA white paper for a detailed explanation.
Does Xi perform?
Ebase Xi is highly optimised for performance and will scale linearly both vertically and horizontally, i.e. by simply adding CPU, memory and IO bandwidth to one Ebase server, or across a cluster of separate hardware servers.

We routinely limit test Xi for high volume concurrency and expect that an adequately specified Xi Server environment will support many hundreds of thousands of users.

Does Xi support all international languages for application run-time?
Yes, all languages are supported. Note though that language texts have to be defined as part of the application development process, i.e. Xi makes no attempt to do a run-time language translation.
Does it handle international settings like date and number format?
Yes, fully supported. Xi will detect a user's international type from their browser settings and will automatically render an application using the right formats.
Is the Xi Designer available in languages other than English?
No, English only.
What does Xi do to help developers meet the WAI accessibility guidelines?
Xi applications are automatically rendered to meet the requirements for a WAI AAA accessibility rating.
Can I design and plug in my own controls?
No, not in the current version, but planned for a later release, take a look at the roadmap FAQ for more information.
Is there a library of controls I can access?
Xi ships with a ready-made palette of controls for a variety of functions. Later plans will enable developers to create their own Xi controls.
FPL, Xi's language, can I extend it with my own functions?
Yes, via Custom Functions or Custom Resources. Both of these are JAVA-developed extensions that work against an API shipped with Xi.
Is Xi suitable for Cloud operations?
Short answer: yes, for sure and we've plenty of examples of successful deployments. But, let's be clear about what we mean. By Cloud operation we mean a hosted run-time environment with all of the following:

  • Scalable performance, both vertically and across a cluster
  • Robust, reliable and high availability operating environment
  • Very high run-time concurrency (10,000 plus)
  • Multi-tenancy applications, meaning, one instance of an Xi application serving multiple independent customers. Individual customer renderings colour washed to match styling requirements, etc.
  • Easy app deployment and upgrade (no take down)
  • Flexible security models for user authentication and authorisation.

And by Cloud we mean Public, Private and Hybrid cloud operations.

What's planned for Xi and when?
Current version is 4.4.

A 4.5 version is planned for July 2013 and introduces a new client-side API supporting direct read/write/execution of server-side data/processing logic from JavaScript executing on the browser, improved support for URL bookmarking and adds intellisense for client script development within the Xi Designer. The new client-side API will greatly simply the integration of rich client controls with Xi server-side data.

Next major version is V5, which will be Beta released Q4 2013 and brings in an architectural shift from the current local client/shared server set up to a local client/local server model. Each developer will work on a local Xi implementation and check application modules into their local environment from a shared source repository (such as CVS). V5 will deliver:

  • Improved version control and team working
  • One click publishing (to target deployment)
  • Improved project organisation (folders)
  • An active data dictionary, enabling code-assist type features, design-time code parsing, tight coupling and referential integrity, object usage search and reference.

V5 lays the way for the release of the V5.1 Netbeans/Eclipse plug-ins planned for November 2013.

How is Xi supported?
At Ebase we offer a range of support packages (Platform, Premier and Platinum) to help every customer from those who are just starting out to organisations with large, mission critical installations. Ebase Xi users can also register on the Ebase Technical Forum and Customer Portal to access additional support channels.
Can I get local support if I need it?
Yes, you need to contact your local distributor and see what packages they're offering. Take a look at our Partners website page to find contact details.
Can I get local development services if I need them?
Yes, contact your local Distributor.
Can I get local training delivered if I need it?
Yes, contact your local Distributor.
What courses are there for Xi?
Various, ranging from 4-day fundamentals to more advanced topics like security, workflow and advanced integration. We also run accelerated courses for people who can meet the pre-requisites. Courses can delivered publicly, on-site or online (virtual classroom), as required.
How much do they cost?
It will vary from country to country but, for example, in the UK we charge £1,200 per training day for an on-site class of up to 8 people and £550 per person per day for public courses.
We can't afford to pay for training, how do we proceed?
The training courses are all downloadable from the web site, so try that. Also, you can use the Resource Centre, and forum areas to ask other people for help. If you get stuck you can buy web-based support - have a look at the Support FAQ.
Can I get training in my area?
Yes, if we have a Distributor in your area. Have a look on our Partners page for the list of official Xi Distributors.
Does Ebase have a partner program?
Yes, three types of Partner: Development Partners, Solution Partners and Distributors. Development Partners use Xi to create their own commercial software products, Solution Partners are accredited Xi users who typically create bespoke solutions or products using Xi, whilst Distributors are our representatives in one or more geographies. Distributors can provide local Xi support, deliver official Xi training courses, can re-sell Xi licenses and make a margin, etc. Have a look at the Partner pages for more details.
Are there Ebase partners in my area?
Take a look at the Partners pages on the web site.
How do I become an Ebase partner?
Talk to us. We're always looking for serious and professional software companies wishing to distribute Ebase Xi. Our channel program caters for all sizes and style of company, from single person consultancies wishing build a new app through to mature software vendors and system integrators dealing with blue chip organisations. Have a look at our partner pages for more details.
Why would I bother to join Ebase's partner program?
We will list you on our web site, pass you leads, work on joint marketing initiatives with you, and so on. You get an inside track on the Xi software and free attendance to Ebase partner events and product seminars. Also, the partner accreditation training program is a very cost effective way to get up to speed with Xi asap.

Also, Distributors can buy Xi licenses and support packages at a discount so make a margin when they re-sell. Distributors can also offer professional services packages for their local market, such as consulting days, hosting, training courses, and account management.

Unless otherwise indicated, all contents of this site are Copyright © Ebase Technology 2005 - 2012
Registered in England and Wales No. 3850999
Registered Office: 2-5, St. George's Tower, Hatley St. George, Sandy, Bedfordshire SG19 3SH