120 likes | 258 Views
Pete Boysen. ThinkSpace. Outline. Demo Programming Environment System Architecture Example Code. Demo. ThinkSpace in hosted mode. Programming Environment. Enterprise Development Thousands of users Clustered computers Must support Windows,Mac and Linux
E N D
Pete Boysen ThinkSpace ThinkSpace Design
ThinkSpace Design Outline • Demo • Programming Environment • System Architecture • Example Code
ThinkSpace Design Demo • ThinkSpace in hosted mode
ThinkSpace Design Programming Environment • Enterprise Development • Thousands of users • Clustered computers • Must support Windows,Mac and Linux • Multiple diverse applications • Limited Staff (me) • Limited Funds • Bottom Line: can one person support the needs of the many?
ThinkSpace Design Oh, CRUD • Many widgets will issue CRUD operations automatically • You can directly call DataSources to fetch(read), add(create), remove(delete) or update(update) • You can add datasource parameters if needed
ThinkSpace Design System Architecture Browser XQuery think?a=1&b=2 SmartGWT ThinkSpace XML Tomcat Model – XML files and DB data View – SmartGWT Controller - XQuery AFS DB
ThinkSpace Design Available Resources • HTML Editor • Librarian Widget (file manager) • Note Taker • Video and chat conferencing tool
ThinkSpace Design <profile help="false" photo="" forward="" provider=""theme="SilverWave"> <apps> <app> <id>libraryapp</id> <name>Library of files</name> <description>Manage your files</description> <icon>apps/Notes.png</icon> <category>Utility</category> </app> </apps></profile> Example - Profile • Theme • Email Forward • Cell Provider • Photo • Selected Apps
ThinkSpace Design Profile - Browser • Create DataSource dataSource = new ProjectDataSource ("ThinkSpace", "ThinkSpace", "profile.xq"); • FetchData dataSource.fetchData(); • Parse XML photo = XMLTools.selectString(data,"/response/data/profile/@photo"); • Populate Interface
ThinkSpace Design Testing • TestServiceImpl is provided to test data transfer in hosted mode • _operationType is sent to servlet along with name of xquery file • Servlet looks for file path (model=ThinkSpace, xq=profile.xq)data/ThinkSpace/profile.xq.xml
ThinkSpace Design profile.xq.xml • <xq> <fetch> <response> <status>0</status> <data> <profile help="false" photo="" forward="" provider="" theme="SilverWave"> ..... </profile> • </data> </response> </fetch> <add>...</add> <update>....</update> <remove>...</remove></xq>
ThinkSpace Design Suggestions • What object does a widget need? • Separate small XML files is preferable to one large file • Data can be paged (example: gradebook of 1000 students) • Browser limits async calls to two at once