28
Introduction Introduction UForms… UForms… To To Universal Forms & Reports (UForms) Universal Forms & Reports (UForms) Product Overview and Mobile Strategy UForms helps companies deliver images, information and data solutions to wireless and digital cellular systems With 3G services available in major cities everywhere, your ability to deliver information must expand… All rights reserved. © 1998 - 2006 - Universal Objects Inc

Introduction UForms... To Universal Forms

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introduction UForms... To Universal Forms

IntroductionIntroduction

UForms…UForms…ToTo

Universal Forms & Reports (UForms) Universal Forms & Reports (UForms)

Product Overview and Mobile Strategy

UForms helps companies deliver images, information and data solutions to wireless and digital cellular systems

With 3G services available in major cities everywhere, your ability to deliver information must expand…

All rights reserved. © 1998 - 2006 - Universal Objects Inc

Page 2: Introduction UForms... To Universal Forms

IntroductionIntroduction

UForms MobileUForms MobileToTo

A message from the CEO,

The entire cellular industry is faced with the challenge of providing dynamic online services to a rapidly growing, very mobile client base. We present UForms Server… it provides an amazingly simple solution for companies who need to deliver the same information imaging and data in all formats desired. We present this information and ask you to consider the vast benefits UForms could provide to service providers to the wireless industry in making the transition to “mMarketing” and “mCommerce” as well as providing many improvements in the area of secure information delivery.

Cellular companies are providing services based on GSM, GPRS and CDMA protocols in every corner of the world. The penetration of this new technology, especially in Asia, North America and Europe, means new opportunities for anyone prepared for the hundreds of millions of full-color small-screen browsers coming into this burgeoning market.

After having tested UForms in Japan for the past five years, we bring you a revolutionary new idea specific to the delivery of dynamic images and information to the wireless web. Present your information and advertising, in color, to all of those new internet-enabled phones coming to the market.

Ken Lahoda, CEO

Page 3: Introduction UForms... To Universal Forms

EntryEntry

LocationLocation

UForms Server stands behind your regular web site helping you support universal mobile browser image and data delivery

Resizes and provides images to accommodate the many variations of device screen sizes

Existing web content isn’t disturbed. No waste, no redesign issues

Contents are altered at the Server, mixed with HTML and Java, and sent to the phone looking like this…

• Address• Rental Rates• Floor Plan• Outside View• Entry• Location

A lovely 2 bedroom, second floor appartment with private outside entry. Safe access to elevators, parking, pool and business amenities nearby. Contact us for a showing.

For greatest impact, images must fully fit the screen size and resolution or they will appear as “lowest common size” or broken images on an unappealing web site…

One site, mobile-One site, mobile-ready!ready!

Page 4: Introduction UForms... To Universal Forms

Web Image Web Image

SolutionsSolutionsManagementManagement

Wireless internet technology helps surfers to see and respond to standard web information so long as it is presented well

UForms dynamically resizes and presents the best image to a client device accommodating the many variations in screen sizes, image formats and resolutions

Mobile surfers can go to the same web site on their phone as they would on their desktop

News feeds, real estate, travel, corporate finance, stock market feeds, advertising, logos, graphs, maps, photos, medical, social sites, auction sites and countless other wireless frontiers will benefit from this solution.

One web site…

Many more browser types!

Page 5: Introduction UForms... To Universal Forms

This is a picture of a one-size floor plan on a mobile site where the designer assured it would not result in a broken picture element on the screen in any event…

This is UForms…Providing full-color, full-screen images resulting in greater selling impact.

This?Or this?

UFormsUForms

And And InformationInformation

Delivers ImagesDelivers Images

Page 6: Introduction UForms... To Universal Forms

UForms ServerHow does it work?

Special Note:

You’ll notice some examples using Japanese characters…

We’ve been active in Japan for many years providing this functionality to I-Mode users in Japan…

Let’s see what’s under the hood…

Page 7: Introduction UForms... To Universal Forms

Easier WebEasier Web

= Real Bonus= Real BonusDevlopmentDevlopment

Let‘s Compare:

A WAP, XML, development combination

against a much simpler

UForms Solution...

Page 8: Introduction UForms... To Universal Forms

Wireless surfers want to see this...

Using WAP/XML, what is a developer required to write?

Easier WebEasier Web

= Real Bonus= Real BonusDevlopmentDevlopment

Page 9: Introduction UForms... To Universal Forms

* @(#)SAXParser.java 2001-03-15 * BS/tenco */ package com.xml.wbmp; import java.io.*; import java.awt.*; import javax.swing.*; public class WirelessBitmap { // Private data members: // Store the dimensions of bitmap. private int m_OriginalWidth, m_height; private int m_OctetWidth; // Take a two dimensional array. We will later (in the // constructor) decide its size. private int BitMapDataArray[][]; // Public member functions:  // Public constructor. public WirelessBitmap(int width, int height) { m_OriginalWidth = width; m_OctetWidth = (width%8 == 0) ? width : width + (8-(width%8)); m_height = height; // Make dynamic allocation of memory for array BitMapDataArray. BitMapDataArray = new int [m_height][m_OctetWidth];  //Initialize. for (int row = 0; row < m_height; row++) for (int col = 0; col < m_OctetWidth; col++) BitMapDataArray[row][col] = 0;  }// WirelessBitmap()  // Public function for drawing lines. // Draws a line from point1 to point2. public void drawLine (float point1x, float point1y, float point2x, float point2y) {  // Draw the point (point1x)(point1). BitMapDataArray[(int)point1y-1][(int)point1x-1] = 1; // If there was only one point to draw, return. if ((point1x==point2x)&&(point1y==point2y)) return;  float slope, intercept; // store slope and intercept.  // Check if there are more points to draw along x- or y-axis. // This check results in more accurate drawing. if (Math.abs(point2x - point1x)>=Math.abs(point2y-point1y)) { // Calculate slope of line. slope = (point1y - point2y) / (point2x - point1x);  // Calculate y-intercept. intercept = (slope * point2x) + point2y; // We need to calculate the values of y for each x // from point1x to point2x, according to the formula: // y = slope * x - intercept. // If point1 lies to the right of point2, we should // rather draw from point2x to point1x. if (point1x>point2x)

if (Math.abs(point2x - point1x)>=Math.abs(point2y-point1y)) { // Calculate slope of line. slope = (point1y - point2y) / (point2x - point1x);  // Calculate y-intercept. intercept = (slope * point2x) + point2y; // We need to calculate the values of y for each x // from point1x to point2x, according to the formula: // y = slope * x - intercept. // If point1 lies to the right of point2, we should // rather draw from point2x to point1x. if (point1x>point2x) { point1x+=point2x; point2x=point1x-point2x; point1x=point1x-point2x; }//if (point1x>point2x)  // Now run a loop from point1x to point2x. for (float count = point1x+1; count <= point2x; count++) { // Check if this point is out of bounds. // If so, bring it into the boundary. int y_coord = ((int)((int)(-(slope * (count)) + intercept))-1 ); if (y_coord<0) y_coord = 1; if (y_coord>m_height) y_coord = m_height;  BitMapDataArray[y_coord][(int)count-1] = 1; }// for } //if else { // Calculate slope of line. slope = (point1x - point2x) / (point2y - point1y);  // Calculate x-intercept. intercept = (slope * point2y) + point2x; // We need to calculate the values of x for each y // from point1y to point2y, according to the formula: // x = slope * y - intercept. // If point1 lies below point2, we should // rather draw from point2y to point1y. if (point1y>point2y) { point1y+=point2y; point2y=point1y-point2y; point1y=point1y-point2y; }//if (point1y>point2y)  // Now run a loop from point1y to point2y. for (float count = point1y+1; count <= point2y; count++) { // Check if this point is out of bounds. // If so, bring it into the boundary. int x_coord = ((int)((int)(-(slope * (count)) + intercept))-1 ); if (x_coord<0) x_coord = 1; if (x_coord>m_OriginalWidth) x_coord = m_OriginalWidth;  BitMapDataArray[(int)count-1][x_coord] = 1; }// for }//else }// drawLine

  // Public function to write WBMP code to file. // Converts the present status of data present in BitMapDataArray // to WBMP format and writes it to file. public void writeWBMPCodeToFile() { // Hold the data into a byte array. byte tempByteArray[] = new byte[m_OctetWidth * m_height]; int indexcounter = 0;  // Hold one byte of data. // We shall later write this data to tempByteArray[]. byte tempByte = 0; for (int y = 0; y < m_height; y++) { for (int x = 0; x < m_OctetWidth; x++) { if (BitMapDataArray[y][x]==1) { // Find the correct position of this bit. // Then write it to its position in tempByte. tempByte = (byte)(tempByte | (1<<(7-(x%8) ))); }  if ((x !=0) && ((x%8)==7)) { // tempByte is full, so write it to tempByteArray. tempByteArray[indexcounter++] = tempByte; // Reinitialize tempByte. tempByte = 0; }//if  }//for (int x = 0; x < m_OctetWidth; x++)  }//for (int y = 0; y < m_height; y++) // Write correctly formatted data to output file. try{ FileOutputStream output = new FileOutputStream( "g:\\wirelessimages\\graph.wbmp"); output.write((byte)0);// WBMP type. output.write((byte)0);// Fixed header. output.write((byte)m_OriginalWidth);// Width.

output.write((byte)m_height);// Height. //Image data. for (int i = 0; i< indexcounter;i++) { output.write(tempByteArray[i]); } output.close(); }//try catch(IOException e){ System.out.println("Error in file handdling"); }//catch }// writeWBMPCodeToFile() }// class  /* * @(#)parser.java 2001-03-20 * BS/tenco */ package com.xml.wbmp; import java.util.*; import java.io.*; import org.xml.sax.*; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import com.xml.wbmp.WirelessBitmap;  public class parser extends HandlerBase { private String CurrentElement = ""; private boolean First = false; private boolean Second = false; private ArrayList x_List = new ArrayList(); private ArrayList y_List = new ArrayList(); private String temp_x = ""; private String temp_y = ""; private WirelessBitmap wirelessbitmap; public void parser(){}  public void parseFile() { First = false; Second = false; // Use the default (non-validating) parser SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser saxParser = factory.newSAXParser(); saxParser.parse( new File("..\\webapps\\examples\\xml_files\\table.xml"), this ); }//try catch (Throwable t) { t.printStackTrace (); }//catch }//parseFile  public void drawGraph() {

wirelessbitmap = new WirelessBitmap(120,90);//size of WBMP wirelessbitmap.drawLine(8,8,8,82);//y-axis wirelessbitmap.drawLine(8,82,112,82);//x-axis for (int k = 0; k < x_List.size()-1; k++) wirelessbitmap.drawLine( Integer.parseInt((String)x_List.get(k)), (82-Integer.parseInt((String)y_List.get(k))), Integer.parseInt((String)x_List.get(k+1)), (82-Integer.parseInt((String)y_List.get(k+1))) ); wirelessbitmap.writeWBMPCodeToFile(); }//drawGraph  //==================================================== // SAX DocumentHandler methods //==================================================== public void startElement (String name, AttributeList attrs) throws SAXException { CurrentElement = name; if (name=="tr") { First = true; Second = false; }//if (name=="tr") }// startElement  public void endElement (String name) throws SAXException { CurrentElement = ""; if ("tr"==name) { First=false; Second=false; x_List.add(temp_x); y_List.add(temp_y); }//if ("tr"==name)  if (name=="td") { if ((First)&&(!Second)) { First=false; Second=true; }//if (First)&&(!Second) }//if (name=="td")  }//endElement  public void characters (char buf [], int offset, int len) throws SAXException { String s = new String(buf, offset, len); if (CurrentElement == "td") if (First && !Second) temp_x = s; else temp_y = s; }//characters }//parser

TheThe

Wall of CodeWall of CodeWAP, XMLWAP, XML

Wireless developers just need a better solution...

Page 10: Introduction UForms... To Universal Forms

UF2.10 Databases.GraphDB {Type=DAO; FilePath="GraphData.mdb"}Queries.GraphData {Type=SQL; Database=GraphDB; Source="GraphQuery"}Page { Axis { Type=PolyLine Vertex1 {x=8; y=8} Vertex2 {x=8; y=82} Vertex3 {x=112; y=82} } Graph { Type=Array; Query=GraphData GraphLine { Type=PolyLine Vertex1 {x=8 + 104 * (Index - 1) / Count; y=8 + 74 * [y1] / 10} Vertex2 {x=8 + 104 * Index / Count; y=8 + 74 * [y2] / 10} } TickMark { Type=PolyLine Vertex1 {x=GraphLine.Vertex2.x; y=78} Vertex2 {x=Vertex1.x; y=86} } }}

TheThe

SolutionSolutionUFormsUForms

Add a bit of HTML to position it...

Solution Provided!

Page 11: Introduction UForms... To Universal Forms

Less CodeLess Code

And And MoneyMoneySaves Saves TimeTime

UForms gets you over this wall...

And WAP with XML can’t hardly match this yet...

Page 12: Introduction UForms... To Universal Forms

Inside UForms…

How is it designed?

The UFormsThe UForms

EngineEngine……SServererver

All rights reserved. © 1998 - 2006 - Universal Objects Inc

Page 13: Introduction UForms... To Universal Forms

The UFormsThe UForms

Engine...Engine...SoftwareSoftware

The UForms Engine was developed in ANSI C++. This eliminated the need to make calls to any proprietary OS/API functions. Benefit:

Minor modifications are required to have the system run on any

new 32, 64 or 128 bit chip or any OS platform that comes

available, whether it be Windows, Linux or Unix.

A new, more powerful server chip on the market with a

new OS? Simply recompile, test and run…

Page 14: Introduction UForms... To Universal Forms

The UFormsThe UForms

Engine cont‘dEngine cont‘dSoftwareSoftware

The UForms Server Engine is THIN. A full compile of the Server Component is less than 800K in size. The benefit? It‘s merely a couple of files installed on any server...

Installation in a server takes seconds… No “DLL Hell” to deal with.

Being small, UForms spawns rapidly in memory, supports clustering and is multi-

threaded. This allows for massive numbers of unique processes to be

performed by powerful servers. Think stock market research or weather data

management… Think about data warehouses managed by UForms feeding a

growing digital cellular demand.

2.5G and 3G wireless systems need efficient servers and thin clients to serve 100’s of millions of

users.

UForms’ small memory footprint provides an ideal tool to bring color images

and ultimately, video to the telecom industry’s desperate need for a common

solution to the 3G and 4G wireless problem.

Page 15: Introduction UForms... To Universal Forms

Rendering Engine

Universal Forms Bus Elements

Property Bus

Control Bus

Data Bus

Imaging Bus

PARAMETERS

Host Application

QUERIES

SQL

ExpressionInterpreter and

Coordinator

CALC

SURFACES

Property Collection

DATABASES

TranSpeed (SPP)

ODBC

DAO

DATABASES

PAGE

Text

Table

Polyline

Rectangle

Report

Array

Picture

Barcode

Ext

ern

al D

ata

So

urc

es

Property Bus

Control Bus

Data Bus

Imaging Bus

USER INTERFACESCOMCORBAHTTP

FONT ENGINE

PNG

PDF

GIF

TrueType

Color Quantizer

Flash 4.0

Raw Pixels

JPeg

PNG

Translate,Rotate, Clip

Rasterizer

Output Image

Vector Graphics

16.7 Million ColorBitmaps

2 - 256 ColorBitmaps

CONVERSIONS

VOICEVIDEO

Future Usability EnhancementsFunctionalityZ-Order of UForms ElementsToolbarSQL Dialog InterfaceText Search & Replace CapabilityGraph DesigningToolEnhanced Window NavigationUForms Script to Database Export ToolAdditional Barcode Formats

Data ExchangeEnhanced Linked Queries

Linux / UnixLinux/Unix Client/Designer Micro OS Kernel Architecture

Java Thin ClientJava Plug-insPERL Plug-insEncryption Plug-insEnhanced XML Support

ImagingImage MessagingPictures in Flash ContainerAnimated GIFsInteractive VectorInteractive FlashAnimated Flash3D ImagingTransparencies, LayersStreaming VideoDigital Voice Communications

TrueTypeRight-to-Left Joined Scriptingfor Arabic, Hebrew, etc.

Future Interface Enhancements

GIS/GPS SupportGIS Tag SupportWeather Markup LanguageDNA Markup LanguageChemical Markup Language

The UFormsThe UForms

SchematicSchematicSoftware Engine Software Engine

This is how the UForms Software Engine is structured in memory. It represents a departure from the standard object-oriented approach in that "virtual buses" or information transfer channels are made available, much like a chip has physical circuits between logic units. Most operating system kernels work similarly. Internal Multi-Threading and Multi-CPU support allow for multiple thousands of possible UForms events to occur simultaneously in the proper server environment.

Page 16: Introduction UForms... To Universal Forms

The UFormsThe UForms

EngineEngineImage Rendering Image Rendering

The UForms Image Rendering Engine provides powerful solutions to rendering TrueType font characters together with graphics and data.

Benefits:Text and Graphics can be output to any resolution of screen in GIF, JPG, PNG,

Macromedia Flash, Raw Pixels and Adobe‘s popular PDF format. All delivered in

real-time and up to date with current information stored in databases.

The Rendering Engine manipulates images below the single pixel level for optimal image presentation. Small, clear images mean faster loading Web sites for cell phone screens.

The UForms Font Engine brings the capability to render TrueType fonts into their primitive “Glyph Elements” for proper resizing to the requested output format to Linux and Unix. Previously, this was possible using only Windows platforms.

Page 17: Introduction UForms... To Universal Forms

Rendering EngineRendering Engine

ManipulationManipulationSub-Pixel-Level Sub-Pixel-Level

The Rendering Engine manipulates images at the sub-pixel-level for optimal image presentation.

This process provides UForms Server the capability to render even scan-able barcodes on the current 2.5G and 3G phone screens available worldwide.

Page 18: Introduction UForms... To Universal Forms

UFormsUForms

RenderingRenderingTrueType Font TrueType Font

The Font Engine manipulates TrueType glyphs at the sub-pixel-level for optimal font-to-screen presentation.

This process provides UForms Server the capability to accurately display more complex characters in languages like Chinese and Japanese. In some cases, users of small screen PDAs and Cell phones can‘t read complex, multi-stroke characters from their own written alphabet.

Page 19: Introduction UForms... To Universal Forms

UFormsUForms

AntiAnti-aliasing-aliasingFont & Image Font & Image

TrueType is the most popular font format. It is used in all Windows systems

Enhancing anti-alias functionality in TrueType Fonts helps display a rounder curve or a less jagged line when it is angled across the screen… Note the lack of anti-aliasing in this standard TrueType font character.

Page 20: Introduction UForms... To Universal Forms

UForms Server’s Font Engine manipulates TrueType glyphs below the single pixel level for optimal font-to-screen presentation.

Providing enhanced Antialiasing functionality to TrueType fonts helps display a rounder curve or a less jagged line when it is angled across the screen...

UFormsUForms

AntiAnti-aliasing-aliasingFont & Image Font & Image

Page 21: Introduction UForms... To Universal Forms

UFormsUForms

AntiAnti-aliasing-aliasingFont & Image Font & Image

Page 22: Introduction UForms... To Universal Forms

UFormsUForms

AntiAnti-aliasing-aliasingFont & Image Font & Image

Page 23: Introduction UForms... To Universal Forms

Add a SystemAdd a SystemTime Stamp!Time Stamp!

+ =

Instead of 12 images handmade for 12 different screen sizes...

UFormsUForms

Images & TextImages & TextServes Up Data, Serves Up Data,

1 image, combined with live data and static text, instantly rendered and scaled to any screen size or resolution…

UForms saves time, money and provides developers the ability to provide real-time, dynamic website updates...

Page 24: Introduction UForms... To Universal Forms

UForms Benefits...

Why does the web and wireless need it?

Page 25: Introduction UForms... To Universal Forms

UForms images and standard HTTP protocols provide a complete 3G wireless solution

Good software is the key element most telecom system implementations are missing

100’s of Millions of 3G wireless surfers already exist today! The technology is now

ready to serve this vast new market

GIF, JPEG, PNG, PDFPDA(Windows CE, Palm OS) Macromedia Flash

ODBC

B to Everyone!

HTTP

UForms Server

Microsoft IIS orLinux/Unix CGI

WirelessWireless

CommerceCommerceMobileMobile

GIF & HTML

NTTDoCoMoI-Mode

JPG, PNG & HTML

JapanTelecomJ-Phone

PNG & HTML

KDDI-Phone

Internet

Page 26: Introduction UForms... To Universal Forms

UForms Thin Client is installed in the chip here…

...to better interpret the enhanced vector images received from UForms Server at the source...

We require the finest rendering possible to ensure the image quality is presented with the least stress and strain for the user in the future. If not, the technology will not be acceptable. UForms software will always make any high resolution display BETTER...

Rendering EngineRendering Engine

Benefits EveryoneBenefits EveryoneTechnology ThatTechnology That

Page 27: Introduction UForms... To Universal Forms

ProvidingProviding

SolutionsSolutionsUFormsUForms

“Despite all the financial woes and turmoil in the telecom sector, investors are also lining up to place bets on wireless startups. Wireless, in fact, is one of the few sectors, along with biopharmaceuticals and medical devices and equipment, in which the net dollars flowing into startup deals are going up. Total spending on wireless equipment and services ventures rose from $59.5 million in the last quarter of 2000 to $93 million in the first quarter of this year, says PricewaterhouseCoopers. "Everyone is looking for the killer application in the wireless space," says Jesse Reyes of Venture Economics.”

Businessweek, May 28, 2001http://www.businessweek.com/magazine/content/01_22/b3734081.htm

This still applies today… Digital Rez International, a sister corporation of Universal Objects, is using UForms to maximize its opportunities in the wireless environment to provide even greater functionality for its travel clients. This ad, released in European Hospitality Technology Magazine, demonstrates the power of UForms and images in the wireless environment.

Page 28: Introduction UForms... To Universal Forms

ProvidingProviding

SolutionsSolutionsUFormsUForms

Reports,

Reports,

Reports!UForms was originally developed to solve the lack of availability of a more robust, dynamic, third-party report tool for developers and IT personnel to add to their retail and custom programs.