Not wanting to spoil any K2 announcements and presentations at the Microsoft SharePoint in Las Vegas, I decided to wait until now to start posting on some of the events and information at the K2 Insider Conference held last week.
The conference started of with the Keynote Presentation by SourceCode CEO, Adriaan Van Wyk. Adriaan spoke about SourceCode’s need to ensure that software quality and performance were the number one priority for the K2 line of products. He went into the roadmap going forward and mentioned that even in the current economic climate SourceCode was performing well – profitable and cash flow positive.
He reiterated that K2 blackpearl was all about solving business problems, and was it was the natural progression from K2.net 2003 solving some of the latter’s challenges, a lack of proper event monitoring, policies and reporting functionality. In addition, it added the SmartObjects layer which provides a single source of data for workflows.
Going forward, the next major release for K2 blackpearl is currently called 090x. It includes some new features and enhancements to the current version, including:
- K2 blackpearl and K2 blackpoint will originate from the same code base. As a result K2 blackpearl will include all of the features that currently exist in the K2 blackpoint. K2 blackpoint will be a true subset of K2 blackpearl.
- K2 connect will be updated for 90x compatibility (clustering made easier).
- Enhanced installer platform allowing for:
- Simple / full installation.
- Custom installation.
- A configuration manager and health checking feature to make for a simple installation process.
- Platform enhancements including:
- Workflow Server enhancements to improve scalability and resource management.
- Smart Objects enhancements to improve performance and scalability.
- New APIs and enhancements to existing ones.
- An improved browser experience, including the following new features:
- A new K2 Designer for Microsoft SharePoint.
- Inline Functions, the ability to include more functions in workflows without needing to resort to code.
- Process portals for Microsoft SharePoint.
- Enhanced reporting.
- An improved development experience including:
- K2 Studio for K2 blackpearl development. The K2 Studio is an Office-like development tool geared at power-users.
- Visual Studio 2008 and Visual Studio 2005 support.
- Inline Functions.
- SmartObject Filters.
While no official release date for the 090x version was announced, it can be assured that it will be after a stringent QA cycle has been completed, ensuring the highest quality with a much user experience being the top priority.
K2 Release Management
This provided a nice segue into the Release Management presentation by Olaf Wagner, Senior VP for Product Management. Olaf spoke about the four main areas of SourceCode’s release management cycle:
- K2 Release Strategy:
- Major releases every 3/4 years. The version being slated for 2011.
- Minor releases twice per year. The next release being 090x. Minor releases will Includes new features.
- Updates (hotfixes) to be released every 2nd Tuesday. They are cumulative but customers can access older updates.
- Support strategy:
- Major release support – includes the current and previous version (e.g. K2.net 2003)
- Minor release support – includes the current and previous minor version of current major version, i.e. currently K2 blackpearl.
- Updates release support – current updates are supported
- It is possible to export from older client to an updated server unless specifically stated in release notes.
- Product Shipping Vehicle:
- It will be simpler with the single codebase after the release of 090x.
- K2 blackpoint will be a true subset of K2 blackpearl.
- All products will ship on the same day, which means that new features will not ship in one product ahead of another.
- The above mentioned point will allow for enhanced quality assurance from SourceCode for the entire product line.
What’s new in K2 blackpearl 090x
The next presentation by Holly Anderson and Renier Britz from SourceCode delved into the new features and enhancements around the upcoming 090x release. These include so many new features and enhancements, I’ve decided to list them in point form:
- The Installation and Configuration wizard are merged into a single wizard for a simpler installation process.
- New install options allowing for simple or custom installation.
- A new Configuration Analysis Tool to check the K2 environment for potential issues.
- The ability to install to a non-Active Directory environment. It must be noted that there is no support Forms based authentication in SharePoint at this time.
- The ability to perform unattended installs.
- The option to activate K2 features on default SharePoint site collections.
- Auto-chaining with the latest K2 update.
- K2 has been updated for SharePoint administration tools.
- All K2 features are deployed as solutions to the SharePoint environment.
- The ability to manage the K2 server from SharePoint.
- Enhanced SharePoint SmartObject administration.
- The Process Portal site will be available on any SharePoint site.
- Scalability enhancements.
- SmartObject performance enhancements.
- New Dynamic SQL ServiceObject supporting stored procedures (with Out parameter), views and tables.
- Windows 2008 R2 and SQL Server 2008 support.
- SSL support for SharePoint.
- Internationalization support.
- End User Experience
- Process Portals with process and user reports.
- Silverlight based View Flow.
- Design and Development Experience
- K2 Designer for Visual Studio
- Visual Studio 2008 support
- Enhancements to ADO.Net data provider including: Paging, ANSI SQL Support and Query performance enhancements.
- ServiceObject APIs.
- Instance Management APIs.
- Inline Functions including Math, String formatting, Expressions, Integration with SmartObjects. These are also extendable.
- K2 Studio
- Targets non-developers and SharePoint power users. It’s a full breadth designer, minus the code.
- K2 studio is an office-like think client designer.
- No Visual Studio dependencies.
- No additional licensing requirements.
- Assemble item and non-item based workflow applications and solutions.
- No code.
- Line-Of-Business (LOB) integration.
- A Reference Wizard which can call out to an external assembly/web service.
- Use SharePoint records management and publishing.
- K2 Designer for SharePoint
- Silverlight based workflow designer aimed at less technical users and Microsoft Office power users.
- It requires no client site installation and includes a rich design experience.
- The layout is workflow controlled and is focused on item-based workflows
- The ability to quickly create SharePoint based workflow applications and solutions with no need to burden IT resources.
- No coding required.
- InfoPath forms supports.
- Inline Functions.
- Custom task notifications.
- Task groups allowing multiple destination sets.
- Export process to K2 studio (downstream movement only).
- Process data fields.
- Use SmartObject in process design.
- Ability to connect sibling nodes.
- Save workflows and workflow steps into favourites.
- New wizards, including:
- Set folio and process data field.
- Switch InfoPath view.
- The ability to save email templates.
- The ability to split workflow from the Start activity.
- Process Portals – administration view of process and instances.
Custom Inline Functions
Koos Du Preez, SourceCode CTO, spent some time going over the Inline Functions to be introduced in the 090x version, and how to build custom ones.
Building custom Inline Functions are quite simple. The steps are:
- Create .Net 3.5 project Visual Studio 2008.
- Add references to:
- Add Using statements for the referenced assemblies.
- Declare the class with a Category (single category per class) – you can reuse K2 categories or create your own.
- Declare the “Name”, “Description” and “Icon” methods for the inline function.
- Declare method parameters as function parameters (inside the method signature).
- Provide the function implementation (use static functions).
To install the function the Design Time steps are:
- Quit the designer.
- Copy the assembly to K2 Bin folder
- Restart designer.
The Runtime steps are:
- Stop the K2 Host Server.
- Copy the assembly to K2 bin folder.
- Start the K2 Host Server.
It is important to note that you will need to manually deploy on alls clients and servers for all environments and reference the assembly deployed manually (including in the GAC).
Debugging the functions is simple to. Simply start the K2 Host server, attach to the K2HostServer.exe process and debug.
090x Performance & Stability Enhancements
Koos also spent some explaining some the performance and stability enhancements that will come with the 090x version. These include:
- Design Experience
- There was a big effort to analyze process memory allocation and usage patterns using tools like windbg with SOS, CLR profiler, perfmon and of course code reviews.
- IDisposable pattern extensively
- Freed memory early disposing large resources like images, icons, etc.
- Replaced all string manipulations with StringBuilder
- Remove unnecessary cloning and creation of objects
- Wizard framework rewritten using XAML and control templates. No control via code.
- K2 Workflow Server
- There was a big effort to analyze process memory allocation and usage patterns using tools like windbg with SOS, CLR profiler, perfmon, code review
- Ensure unused objects disposed early
- Process runtime state management improvements (kept current version only)
- Bypassed socket transmissions for local IPC’s
- IPC authentication cashing implemented
- Used SQL Profiler to isolate longest and most expensive queries
- Common Table Expressions rewrite of Worklist (not using temp tables anymore)
- Actions per Item refactored to use Common Table Expressions for action union
- Additional indexes on Transaction and Log databases
- Added constraints to force integrity
- Validating investment
- The Microsoft Technology Centre experience, where SourceCode did some benchmarking using 0807 release.
- SmartObjects & ADO.NET
- High Level Enhancements
- There was a great deal of SmartObject stack analysis, to minimise client/server calls.
- “Join Discovery” identified as a bottleneck & implemented relationship caching.
- Bypassed discovery and force/allow the use of SQL joins in reports.
- Schema retrieval indentified as bottleneck & implemented object definition caching.
- ADO data sets returns less than 15-20k results in batch (rather than row by row).
- ADO Direct Execution (Including Bulk Insert) – option for Service Object to directly execute SQL code. Supported by
- Dynamic SQL Service
- K2 Reports
- Compressed Double Buffering (more involved than a one-liner).
- Double Buffered Data Readers.
- Server Side Paging (SmartObject API & ADO).
- Greatly enhanced SQL Syntax support for ADO.
- Pushed 50 GB database and analysed built-in reports.
- SQL Profiler to most expensive queries.
- Pushed for ADO based paging (SSRS does local paging)
- Report Query optimizations
- Altered log database indexes
With that we ended the first day of the conference. It made for a long but rewarding day of sessions. Next, to dinner and a chance to meet some of the new Insiders.
SourceCode, K2, K2 blackpearl, K2 blackpoint, 090x, Microsoft SharePoint