Archive for the 'Web 2.0' Category

11
Jun
09

Recipe for Social Commerce

As a continuation to my previous post on Social Commerce, this one follows the implementation of a Social Commerce project I led as a technical director for almost 1.5 years. The project was for a very well known instrument manufacturer that set on a mission to create a very unique site offering engaging eLearning content, entertainment videos, Social Networking and eCommerce.

Site Features

With a laundry list of features, and a highly customized online eLearning system, we set out to deliver the following core site features/functions.

> User and group-level blogging and forums
> Live Chat sessions
> Streaming HD eLearning and entertainment video content (live and pre-recorded)
> Streaming audio content (live and pre-recorded)
> YouTube-like video sharing
> Flickr-like photo sharing
> News articles
> Wikipedia-like library of articles
> eCommerce Store
> End-to-end site search
> Single sign-on user accounts

Technology

To deliver the site, a combination of platforms and technical solutions were used.

> Community Server
- User for all social networking features and functionality
> AspDotNetStorefront
- Used for all eCommerce features and functionality
> Custom eLearning System
- This was built on a customized eLearning database, layered with rich .NET and Flash user controls (e.g. video players, chat with instructor, note taking etc.)
> Custom Flash Video Player
- These were used throughout the site to stream video content at multiple angles, resolutions and chapters/sections
> LHTTPD
- Used to allow for “scrubbing” across a video at any position and start the stream at that position without having to wait for all of it to buffer.
> FFMPEG
- Used to convert multi-format video content to Flash format when users and content producers uploaded their video and audio files.
> Representational State Transfer (REST) Web Services
- The core API that wrapped Community Server and AspDotNetStorefront API was built on REST for improved response times, scalability, compatibility.
> CuteChat for Community Server
- Used to deliver the live chat sessions

30
Jan
08

Single Sign On with AspDotNetStorefront and Community Server

The ongoing debate and question continues… However, as of late, some breakthroughs on my end in this area.

Basically, with a little bit of tweaking, hacking, cheating, and fooling, AspDotNetStorefront (ASPDNSF) and Community Server (CS) can live happily ever after in a single user session and “share” user account information.

And now, for the approach… In broad strokes:

1. Setup ASPDNSF and CS in their own virtual Webs within the same domain (e.g. domain.com/community, domain.com/store/)
2. Set both ASPDNSF and CS Web.config machine keys and cookie names to be identical.
3. Modify ASPDNSF code where it reads/writes to the cookie to reference the new shared name.
4. Add a column in ASPDNSF customer table that stores the CS user name (so when a user account is created on CS it will create a user account in ASPDNSF with a matching user name)
5. Modify ASPDNSF code where it reads cookie to pickup the user name (since CS will write the user name to the cookie and not a ASPDNSF GUID as ASPDNSF normally does out of box), then using that user name lookup ASPDNSF’s customer GUID in the DB and reference that for the ASPDNSF session.
6. Locate all locations in stored procedures that create/update user accounts to handle the new CS user name column.

This will ultimately allow you to sign into CS, then go to domain.com/store/ and get automatically signed into ASPDNSF since the cookie already has your sign-in information and a matching session record is located in ASPDNSF’s database.

As for the rest of the details – specific code changes, stored procedures etc., more details to come later when time permits.

Finally, since CS and ASPDNSF have URL re-writing engines we can elegantly handle those elaborate URL’s so things look nice and clean when a user view’s a ASPDNSF page and a CS page.

Hope that helps with some people out there… Enjoy!

10
Jun
07

Solutions Customization and Integration – Part II

Update on this project… So far I am in the stages of selecting an Learning Management System (LMS) that is SCORM compliant and offers tools to manage courses, students, learning material and deliver it in a lightweight format. One of the biggest hurdles is selecting one that has an open API/SDK to interface with Flash Streaming Video and even synchronize content with the video – e.g. time coding frames etc.

As for the social networking and commerce tools, I have selected Community Server 2007 Enterprise and AspDotNetStorefront ML. Integrating both solutions should not be too complicated since they are both .NET 2.0 solutions, offer the entire source code with the license, and operate on IIS, SQL Server 2005, ASP.NET etc.

The biggest challenge with integrating these pieces is architecting a single sign-on model. LDAP and Active Directory are possible options, with the latter more in the headlights since we are working in a 100% Windows environment. ASPDNSF and CS 2007 can integrate fairly easily for the single sign-on, and since both are somewhat independent systems, there should be little effort to get that going.

The LMS solution will be more involved since we have to map data across the community site and LMS site (e.g. learning material, class forums and discussion groups, blogs on courses etc.). Table structures are fairly open and scalable, however we will very likely use SQL Server Replication and SSIS packages to handle the back-end integration and sharing of data across systems. On the user-facing site, meshing everything together will involve a blend of ASP.NET Master Pages (what CS 2007 uses), and XML/XSLT packages (what ASPDNSF uses), and possibly a customized Master Page and .ascx control architecture for the LMS solution.

The physical architecture that has been mapped out so far includes:

> 2 load balanced Windows 2003 Web servers – 200GB HD, 4GB RAM, 32-bit dual-core, RAID config.
> Single 64-bit SQL Server, 8GB RAM, 200GB HD.
> 1TB SAN (EMC or DELL) – blogs, photos and a subset of videos.
> Fibre Channel across all machines
> Load balancer, firewall etc.
> Content Delivery Network for bulk of Flash videos and larger photos

More details on these integrations in my next post…

13
May
07

Solutions Customization and Integration – Part I

When faced with a Web project, one always wonders: Someone must have done that before, right?

Almost always the answer is a resounding “Yes!”, and that puts you on the path towards purchasing, customizing and launching the solution to meet the project’s requirements.

Recently, I took on a project involving a “mash-up” of a Social Networking, eLearning and eCommerce site. How do you even start on a project like that? What are the implications and costs? These are only a few of the questions that come to mind with a project of this size.

Aligning Requirements with Solutions

After extensive online research, and referencing past experiences with projects of a similar nature, I finalized the foundation of the site down to 3 products: AspDotNetStorefront ML (eCommerce), Community Server 2007 (Social Networking) and Adobe Connect Professional (eLearning).

The biggest task is to start aligning the client’s expectations and requirements with what each of the products above offer “out of the box”, and to also produce customization points that will be required in the final site.

This process generally involves hands-on meetings, product demos, documenting and the like, all towards an effort to produce documentation outlining the User Experience supported with Use Cases and Business Requirements.

Design Phase

Approaching the design is probably one of the most challenging parts of any IT project, as it requires you to essentially build the solution on paper. However, in this situation we have to approach things a little differently.

Since we are not building everything from scratch, we have to create documentation that supports several key areas of the project:

  • Integration Requirements – how each solution will integrate together and deliver functionality, such as “single sign on” and data sharing
  • Customization Requirements – what parts of each solution need to be customized accross all 3 layers (UI, business logic, database)
  • Physical Requirements – what type of hardware and networking equipment are needed to meet the demands of the site and each solution

These documents create a foundation for us to start the project and move towards the development phase with near 100% certainty as to what the final site should look like and function. Furthermore, these documents should dictate the tasks required by a developer to be heads down in the project without much concern on how everything should be done.

Next month I will post an update on this project, with details on how the design phase progressed.




Share This


Bookmark and Share

About Me

Technical architect and project manager, with more than 10 years of progressive experience in ERP, e-Commerce, Internet/Web platforms and solution/enterprise architecture. Trained in Microsoft/SAP business products and platforms, with formal educational background in Computer Science, Software Architecture/Engineering and Relational Databases.

View Patrick Rayes's profile on LinkedIn

Blog Stats

  • 15,940 hits

del.icio.us

Flickr Photos

dyson airblade

winter road

closing time

More Photos

Twitter

Calendar

July 2009
M T W T F S S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031