280 likes | 455 Views
Platform Architecture. My Background. Data visualizationUser interface designVideoconferencing systemsCollaboration tools Teleimmersion. Platform Architecture. My Inspirations. Databases are the core that can drive just about anythingScientific American article (1999)?The emergence of XMLTim
E N D
1. Platform Architecture Open SourceSemantic Web Tools / Platform Allan Spale
Kaleidoscope
2. Platform Architecture My Background Data visualization
User interface design
Videoconferencing systems
Collaboration tools
Teleimmersion
3. Platform Architecture My Inspirations Databases are the core that can drive just about anything
Scientific American article (1999)?
The emergence of XML
Tim Berners-Lee's vision of the semantic web
Dr. Dobb's Journal (2000)?
Mismatch between relational databases and artificial intelligence systems
4. Platform Architecture One “Moment” Friend had to collect data from people in the field
He knew nothing about databases and did not particularly care about them
Ended up importing data from a PDA into an Excel worksheet
Solving the problem
How could I abstract the complexities of the database?
5. Platform Architecture Another “Moment” Working in a university data mining research lab
Friend recommended Jeff Hawkins' book On Intelligence
The brain stores a basic invariant form of information
Higher level structures of meaning are built above this basic structures
Connections among the structures
6. Platform Architecture Current State of Web 2.0 Mashups (Google Maps)?
Web services (Amazon Web Services)?
User-generated content (Flickr, YouTube)?
Social networking (MySpace, Facebook)?
Rich internet applications (AIR, Silverlight)?
RSS
And more…
7. Platform Architecture Shortcomings of Web 2.0 The web is still mostly document-driven
End-users cannot easily remix data from different sites
Seamless integration among web services and devices of any size
Remote, centralized data repositories
8. Platform Architecture Solution Separate the content data from the original application
Protect data and migrate data where it is needed
Provide a way for users to acquire, manipulate, and share static and live data
Allow any device and any content to interoperate within this platform
9. Platform Architecture Kaleidoscope Database abstraction
Users store data without having to know about relational databases
Collaboration system
Messaging facility for humans and machines
Programmable
Symbolic language, supports Unicode names
End-user environment
Embrace widgets, toolbars, and canvases
10. Platform Architecture Database Abstraction Relational database back-end
Big as PostgreSQL or as small as SQLite
Provide a few basic table structures
Set of items, relations between items
Encode data at various levels of detail
Scale from individual words to documents
React to changes in the data
User-defined and system-level triggers
11. Platform Architecture Collaboration System Social networks of people
Processing networks of machines
Gather data from people and machines
Process the data
Discuss the data
Stream data to people and machines
Repeat…
12. Platform Architecture Programmable Sequential or event-driven
Uses symbolic operators and keywords to allow for internationalization
Unicode names for everything
Access local and remote data stores
Creates distributed pipelines that enable peer-to-peer applications
13. Platform Architecture End-User Environment Lots of widgets that interoperate with each other (reusable parts)?
Move away from large-scale applications with huge feature sets
Pick and choose the functions needed
Blur the distinction between internet and desktop application
Move toward a toolbox and canvas metaphor
14. Platform Architecture System Parts Databases
PostgreSQL (disk), SQLite (memory)?
Python
Stackless, SQLAlchemy, PyXMPP
Jabber / XMPP
ejabberd
Utilize server plug-in architecture to integrate other components
XML-RPC
15. Platform Architecture Integration of System Parts Run both database and Jabber server on the target device
Database will refuse remote connections
All database commands will originate from users connected to the local Jabber server
Running a Jabber server allows for integration of local devices
PDA / smart phone, home automation
Support assistive / accessibility technologies
16. Platform Architecture Integration of System Parts Jabber provides contact management and security
Jabber contact list is imported as individual users that are also organized into user groups
Content can be encrypted and checked for tampering using checksums
Use of Jabber will overcome dynamic IP addressing problems
17. Platform Architecture Managing Contacts Remote users will register on the Jabber server to gain access
Remember, this differs from one’s own personal contact list.
Registration will trigger a Jabber server component that will update the user list on the databases
18. Platform Architecture Managing Devices Jabber provides the ability to add services
This will allow for external programs and device drivers
Through Jabber, one can manage the availability of these devices and restrict who can access them
19. Platform Architecture Securing Data Table Access
Restricted access using user ownership and group ownership
Access can be further restricted by applying read, write, and execute permissions for each user and group owner
Database Encryption
PostgreSQL natively supports encryption
SQLite will require an external encryption module
20. Platform Architecture Importing / Exporting Data Text is the most important part of the system
Word and phrase tables used by all text encoders/decoders
External programs will encode and decode files and data streams of various formats and map them into user tables and system tables
Use multi-level encoders
Start with “mechanical encoders” (few heuristics)?
Feed that encoding into the next higher-level encoder
Repeat…
21. Platform Architecture Constructing Functions Bead programming language
Direct support for Stackless tasklets instead of threads
Acts like a database object relational mapper
Remote data access and function calls occur using XML-RPC
Function code will reside in user tables
External programs can be connected as Jabber server components (better performance) or through XML-RPC
22. Platform Architecture Building Widgets Use existing widget-building models
AJAX, Flash/AIR, Silverlight, etc.
Make widgets Kaleidoscope-compatible
Data resides Kaleidoscope containers
Mapping of user actions to Bead scripting functions
23. Platform Architecture Using Environment Desktop is just a surface for widgets
Canvas widgets for displaying data
Text editing, drawing, 3-D modeling
Widget tools for interacting with elements on the canvas widgets
Font chooser, shape chooser, paintbrush, etc.
Import widgets and related functions from other users or run them remotely
24. Platform Architecture Empowered by Kaleidoscope Separates data from application
Data from a program does not become obsolete
Data can be annotated with various layers of meaning
Text document has formatting, sentence structure, reviewer notes, etc.
Functions can be remixed from various programs without relying on a single application
Pick and choose what is needed
25. Platform Architecture Empowered by Kaleidoscope Widget environment allows the user to operate on data with a toolbox
Choose a set of tools to manipulate data
Data is not dependent upon the tools
User can choose one’s own interface to operate on the data
26. Platform Architecture Computational Semantic Platform Encode data with meaning
Write programs that utilize both data and meaning
Collaboration among communities of users
Customizable and portable interfaces
27. Platform Architecture Discussion What open-source parts can be assembled to deploy your semantic web application?
How do you encode your data?
How do you import / export data?
How does the user interact with the semantic web application?
Think beyond the “web” and think about the separation of data from an application...
28. Platform Architecture Process data your way.