Dashboard > WSO2 WSF/C > Home > Solutions
  WSO2 WSF/C Log in | Register   View a printable version of the current page.  
  Solutions
Added by Samisa Abeysinghe , last edited by Glen Daniels on Dec 14, 2007  (view change)
Labels: 
(None)

Some notes:

  1. Our objective is to build visibility of the C stack and go form hundreds to thousands and them form there to millions of downloads
  2. We have to select the killer app or apps that would help us achieve the above
  3. In order to be accessed and used by millions, we have to find out where the millions are and target them
    1. One option is the Desktop (e.g. Firefox)
    2. Another trend where millions are flocking around is social networking sites
    3. And millions blog every day

James suggested these evaluation criteria, we can use them as guidelines when evaluating:


So what are the factors that are important in making people want a product? At the risk of stating the obvious, I would suggest they include the following:
 
A -the product does something useful and/or entertaining
B - it is easy for people to realize that the product will be useful/entertaining to them
C - it is potentially useful/entertaining to lots of people (preferably not just developers)
D - it is the only product (open source or commercial) that does this useful/entertaining thing (or at least it is very obviously and tangibly better than any competing product)
E - it requires minimal expertise in order for users to make it do this useful/entertaining thing (preferably no expertise beyond what any ordinary computer user has)
F - it requires minimal time and mental effort for users to make it do this useful/entertaining thing (preferably it's a click to download, a very short wait while it downloads, a couple of clicks to install, and a couple of clicks to make it start doing whatever it is that it does); in particular, it's good if they don't have to wait for some massive download, they don't have to read any documentation, they don't have to write any code and they don't have to perform any configuration


Short Listed
ID Solution Brief Details
1 Secure Document Transfer Application
Both server side and client that helps deal with MTOM in a secure manner
1. Should work on Windows desktop, tightly integrated like svn client (right click and get the job done)
2. Document service could be locally hosted on PC or centrally hosted.
3. Notification scheme when docs received like in the case of email


2 Flickr Client with Windows Shell Extension
Upload, Manage, View Photos by right clicking on file with Windows Explorer
  • Have to implement the abstraction layer on top of Windows
  • Should implement the "Send to" as well as mounting as a folder like "My Documents"
  • Question - why would people use this instead of the other Flickr clients that are already available? (Glen)
3 Consuming web services through Mobiles
Embedding to Mobile Platforms [1] is an usage of gSOAP in consuming web services through mobiles. Since our feature list is far better than gSOAP we can do it better.
[1] http://developer.sonyericsson.com/site/global/newsandevents/latestnews/newsnov06/p_new_webservices_uiq3gsoap_tutorial.jsp
4 wsclient Leveraging the power of command line and shell scripting
  • I think we can make wsclient a separate project
  • Build a suite of scripts to consume widely used web services (e.g. Flicker)
  • Can be quite appealing to Linux geeks
  • Have to look into how we can provide a usability layer where you do not have to deal with that much XML
  • May be we should also integrate the proposed C implementation of WSDL mode with this so that you can consume  wide array of services with ease
  • Have the potential for being the killer app on command line for Web services
  • We can wrap it with a KDE or Gnome GUI and make it a hit on Linux desktops
  • Can do the same for Windows desktops as well with a GUI
  • For the last two point above, WSDL mode would be very useful
  • Universal service consumer - Given a service, consume that for me
  • restclient - wsclient wrapper for REST only stuff
Related to Short Listed
Related ID form Short Listed Solution Brief Details
All
NOTE:  This is a desired feature that we want to have in some or all of the selected solutions
Occasionally connected client for desktop
Client with online/off-line usage capabilities
  •  Connect and consume when online
  • Keep on using when offline
1 Secure doc management suite
Leverage WS-Security and MTOM features
  • Medical report management
  • Sales orders
  • Business reports
2 Desktop service which determine status of the environment and do things.  A desktop service which will be activated when ideal situation met This desktop service will be activated when ideal situation met. For example I need to upload a large amount of images to the web and I'm in a remote area where no network connection available. I put all the images to my service specific folder with a description file which contain information such as where to upload etc. When the connection is availble the service will automatically detect the content  to upload and do it appropriately. We may also use other attributes like network usage, connection status etc to decide when to upload. We could use wsclient in connection with web services enabled popular sites to accomplish this. Also savan, rampart and RM could be utilized.
2 Web service driven P2P application
P2P application which not only share files, but also provide distributed business logic.
1. Share files with binary optimized and non-optimized APIs. (Base64 file transferring may useful to avoid firewall barriers)

2. People can provide their own web services with the application installed,  and the application will track their endpoints. (That mean as usually we may provide some search utility on services in our p2p application)

3. In a case there are logic which need to have large processing power, application would be able to distribute the processing power.  (Kind of emulating a cluster of servers)
4. Should need to have a p2p protocol run top of SOAP to find services, announce existence of services and etc.. We already have modules to authentication, privacy and reliability purposes.

NOTE: This is based on the discussion we had with Dr. Sanjiva for final year project ideas last year.
2 S3, EC2 clients
Clients that help work with those services.
1. Could be part of wsclient tools

NOTE: Suggested by Sanjiva
2 Web uploads One part of the Web experience today that is rather painful is uploading files to a web site.  More and more, people are uploading lots of data, often quite large files such as photos and videos.  The normal upload experience using a file upload input field in an HTML form gives a poor experience, especially with big files.  With dowloads, you have downloading programs, and you have the capability of HTTP to download specific byte ranges so that partial downloads can be resumed.  You have neither of these with uploads.
So my idea is to solve this problem.  There would need to be some client side code (at least plugins for IE and Firefox), plus some server-side support that makes it easier for web site developers to take advantage of our solution. An important part of this would be that the protocol that the client and server sides communicate with would be open, documented and preferably standardized.  It might not be just WS-ReliableMessaging because I think the ability to resume partial uploads would be important, and I don't think WS-ReliableMessaging gives you that.  Efficient MTOM support would of course be crucial.

NOTE: Suggested by James
2 Backups  You're probably all familiar with the rsync program.  It's a great way to maintain backups of a directory.  It uses a bunch of techniques to reduce the time needed over low bandwidth, high latency connections.   One simple one is that it can avoid sending a file if the file is unchanged (by using a cryptographic hash).  However, the really clever bit is that if only a small part of a large file has changed, it manages to send only that part rather than the whole file (http://samba.anu.edu.au/rsync/tech_report/node2.html).
 
However, while rsync is very clever, it has some limitations:
 
- it uses a undocumented, not very well designed protocol (even its designer says it's lousy: http://samba.anu.edu.au/rsync/how-rsync-works.html); it's basically a single implementation protocol
 
- the only way to make it secure is to run it over ssh, which is very inflexible
 
- it has a non-extensible, POSIX-centric view of filesystem metadata, which means it won't accurately preserve metadata for Windows or Mac filesystems
 
- it requires a lot of resources from the server, so large sites are reluctant to provide rsync access to clients
 

 
So my idea is to do something a bit like rsync, but make it use an open, documented SOAP-based protocol, which can compose with WS-Security and thus integrate with ActiveDirectory and Cardspace.  It would have extensible model for filesystem metadata so tjhat Windows is supported as a first class citizen.  I would also make it asymmetric: the client would just use the directory to be synced directly, but the server could store additional metadata in some sort of database to make things go faster.  There might be multiple server backends:  as well as a backend that uses the filesystem directly, there could be a backend that uses Amazon S3.  We might have a business model where some backends are free, but the S3 is proprietary and only available from us as a service.
 
From a technical point of view, one thing I like about this is that it is something that fundamentally requires a conversation between the client and server, and thus seems a much better match for SOAP than for a restful HTTP approach.
 
Additional possible features:
 
- make it so that you don't have to trust the server; what's stored on the server is encrypted and signed (it might be difficult to combine this with the rsync bandwidth reduction techniques)
 
- make it store multiple, dated versions of backups (like the rdiff-backup program)
 
- use fuse to allow the backup to be mounted as a filesystem under Linux
 

NOTE: Suggested by James
Discarded with respect to Objectives and Criteria
Solution Brief Details
MySQL Web services plugin Embedding into MySQL
  • Download and install the plugin and now you can expose your database as a Web service
  • Security, Realiability and MTOM capabilities
Desktop blogging tool Blogging and Web services
  •  Blogger.com has a Web Services API
OpenSocial Applications
Using Googles APIs for social networks
Personal service hosting suite
Host something as a service with zero code on PC
  • Personal applications such as calender could be hosted
  • Something like an organizer
Office application suite
Based on a calendering service
  • Could be hosted centrally and consumed by many
  • WSO2 too could benefit form such an application
  • Make use of WS-Security
Office function automation suite
Help with the everyday services consumption in office
  • Purchasing shipping, conferencing, meals, entertainment, and even travel (Consume external services)* SaaS client
Service aggregating application
Aggregate available services
  •  Mashup on desktop
  • May only focus on client side
Project management tool
SOA based tool for PMs
  • Project Management service and client apps
Salesfoce client
Consume SalesForce
  • Command line and/or GUI
  • Can be part of wsclient
Sales support application
Demo the poser of SOA in sales/business domain
  • Can solve our own sales/bizdev problems
  • Good demo of security/reliability
Inventory management suite
Leverage WS-Eventing
  • Services and clients
  • Integrating suppliers
Zero code service suite Click few buttons and get your service 
  • User just configure the system
  • The tool will create the service and deploy
  • May be done in conjunction with the MySQL wrapper (because service config can be in database and exposed as a service based on that)
Translation suite
Language translation service(s) and clients
  • Service could be run as a demon service on OS
  • Applications can leverage that. e.g. Oofice and Thinderbird
  • This can even be a generic framework, and translation could be only one of the services in that framewrok
Development Tools as services Services for devlopers
  • SVN as a service (Embedding WSF/C into svn)
  • Component management service
  • Test framework as a service
Secure Instant Messenger Secure messenger with MTOM support
  • This can be a killer app targeting businesses with distributed operational activities
  • Most of these companies are not satisfied with the level of security provided by the existing IM's
  • This can make use of Sandesha, Rampart and Savan as well
Federated Sign On WS-Security, SAML, WS-Federation, MEX, WS-Trust
News service News on demand service
  • A news agency hosts services.
  • Browsers, Desktop clients, Mobile clients get latests news. Not a new scenario but...
USB/Smart Card authentication Secure authentication using USB hardware smart card tokens
  • User logs in to the system using a smart card with USB interface (the card reader)
  • No need to send passwords for authentication
  • No key strokes
Digital Rights Management Secured media delivery using web services
  • Key based media encryption for pay-per-view or on demand media delivery
Credit card payment gateway payment gateway using WS_Security, WS_RM
  • can be inbuilt to credit card machines
Weather Forecast Application
with MTOM features
  •  Can be a mashup in desktop
  •  Can be embedded to mobiles
Betting Application
Online Betting
  •  The same we did with PHP, we can build as an application.
Online Scorecard
A scorecard to update online
  •  Cricinfo and other commercial sport sites don't provide public web services API. So we may have to do both service and client demos here.
  •  Use case of Savan.
IDE Integration Integrating Web services to various IDEs Just like the Eclipse plugin for Java, integrate PHP and C support for popular IDEs. For example, PDT (http://www.eclipse.org/pdt/index.php) for PHP and Kdevelop (http://kdevelop.org) for C
A D-Bus alternative Replace D-Bus Replace the IPC mechanism of Linux desktop applications with a Web services centric alternative. Imagine talking to an application in the same session which acts as a local app in the current session which actually the app is in another machine on the network or the Internet.
First person shooter game A game like Unreal/Quake A distributed first person shooter game where you communicate with each other using SOAP messages via WSF/C. Textures, Maps etc... doesn't have to be stored on the local machine, they'll be available as MTOM upon request.
File system Web services aware file system Could bind an RSS/Atom feed to a folder which when opened view the feed items as files that can be copied/deleted like files on disk. Also with the ability to bind an endpoint to a folder/file that'll honour the Unix permission scheme.
Web services interfaces for CMSes API calls of CMSes from Web services Expose some/all of the API calls in popular PHP based CMSes as Web services and making the results of those calls available as XML will make it easy to display those information easily on desktop apps as well as web apps. For example number of users who have registered today on OT, or number of blog posts on OT today. This info can then be put to an RSS feed which will greatly be useful for admins.
Feature rich  web services application  that capture the essense of web services paradigm.
A feature rich sample application like  Pet Store for J2EE
At the beginning of J2EE era The Sun's Pet Store J2EE application was a great place to learn new J2EE programming paradigms. It  fabricated an real world problem which could be solved by utilising J2EE concepts to a maximum. If we could provide similar sample application using WSF/C platform it would attract ppl who need to learn how to use web services solutions.
Blog client plugged into Word
Write the doc and right click and publish  to blog
1. Could be either open office, MS office or both

NOTE: Suggested by Sanjiva
Twitter application
-write some twitter application that provide services to clients via xmpp transport.
-time of different timezones
-weather



The following link has a lit of public apis we can use

http://areyouwatchingthis.com/api/

The above link should be corrected to

http://www.programmableweb.com/apilist

For IDE integration, its possible to develop a Microsoft Visual Studio Extensibility package (VsPackages) which facilitate the user to create WSF/C client and service projects with automatic code gen facilities. Most of the Windows users use VS for client and service development.

IF we can create a wsf/c client project by selecting a new project type from the File -> New -> Projects and complete the generated code and just build, it would be really helpful for Windows users, as they are more comfortable with click, click and run.

http://msdn2.microsoft.com/en-us/library/bb166424(VS.80).aspx

Powered by a free Atlassian Confluence Open Source Project License granted to WSO2 Inc.. Evaluate Confluence today.
Powered by Atlassian Confluence 2.7.1, the Enterprise Wiki. Bug/feature request - Atlassian news - Contact administrators