View
177
Download
2
Category
Preview:
DESCRIPTION
Citation preview
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
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
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!
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!
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
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…
Easier WebEasier Web
= Real Bonus= Real BonusDevlopmentDevlopment
Let‘s Compare:
A WAP, XML, development combination
against a much simpler
UForms Solution...
Wireless surfers want to see this...
Using WAP/XML, what is a developer required to write?
Easier WebEasier Web
= Real Bonus= Real BonusDevlopmentDevlopment
* @(#)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...
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!
Less CodeLess Code
And And MoneyMoneySaves Saves TimeTime
UForms gets you over this wall...
And WAP with XML can’t hardly match this yet...
Inside UForms…
How is it designed?
The UFormsThe UForms
EngineEngine……SServererver
All rights reserved. © 1998 - 2006 - Universal Objects Inc
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…
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.
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
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.
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.
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.
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.
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.
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
UFormsUForms
AntiAnti-aliasing-aliasingFont & Image Font & Image
UFormsUForms
AntiAnti-aliasing-aliasingFont & Image Font & Image
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...
UForms Benefits...
Why does the web and wireless need it?
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
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
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.
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.
Recommended