Creating a Solution

In this Lesson

You will be learning about Soiree Solutions. You will then create a Solution definition which will be used later to run the scenes that you are creating in this tutorial.

Concepts

A solution is the gate through which your customers enter into some portion of your product.

A Soiree Solution can best be described by starting at the end of the story. The product development cycle ends when you place an icon on your customer’s device so let’s begin there.

What happens when your customer clicks on that beautiful icon you provided? Well, for a server centric application like Soiree, two very basic things need to happen

  1. The client needs to connect to the server.
  2. The client and server must negotiate what should be presented.

Most environments have the client take the lead as the client and server perform their intricate dance. The client asks the server for things and the server either responds affectionately or gently rebuffs its suitor.

With Soiree the roles in the dance are reversed. The client ‘serves up’ the requests made by the server. When your customer clicks on your gorgeous icon three things happen

  1. The client connects to the server.
  2. The client then taps the server on the shoulder and requests the type of dance to be performed. The server then takes the lead in their dance.
  3. The server sends requests to the client – telling it what to display – and the Soiree client reacts accordingly. The server makes all the decisions about each move, not the client.
Whoa!
Are we telling a story backwards and reversing all the roles? Yep, I believe we are!

This reversed dance is where Solutions enter the story.

The Soiree Server/Client Waltz

When a Soiree client is installed on a device it knows only two things. Well, actually three things

  1. It knows it likes to dance. We call this attitude.
  2. It knows who its dance parter is. We call this a URL.
  3. It knows the name of the dance it should perform. We call this a Solution.

Oddly enough, the client does not actually know anything about the dance that it is requesting.

Yikes!
Are we telling a story backwards, reversing all the roles, and working with actors that possess no skills?
No. We are dealing with actors that have a very particular set of really awesome skills.

The Soiree client has no knowledge of the purpose or content of the application that has been given to your customer. What the client does know is how to perform any dance move instantly upon request. The request of which moves to perform comes from its dance partner: the Soiree server.

When the client connects it sends a Product ID and Solution ID to the server. From that moment on the Server tells the Soiree Client what to do. The server asks the client to perform all of those awesome moves you have choreographed into your product’s design. The client then responds with all the right moves.

Back to the Beginning

So, we have made our way back to the beginning of the product development story.

A solution is the gate through which your customers enter into some portion of your product.

The Solution definition contains things such as

  • What is the first thing a person should see?
  • A list of all the scenes that should be allowed to be used on the device. These may be only a subset of everything your application is capable of doing.
  • What type of person authentication services are needed, if any.
  • What menus are available in the application, if any.
  • A few other things that we will save for a later discussion.

Create a Solution

In this exercise you will create a Solution for a desktop client to run the scene you created in the previous lesson.

  1. Open the Solution wizard.
    • Left click on the com.example.party package to select it.
    • Press Command + N (OS X) or CNTL + N (Windows).
    • Select Solution from the Soiree section.
  2. Enter the following values into the Solution editor
    Package: com.example.party.solution
    Name: PartyPool
    Description: Solution for the party pool



  3. Select the product to which this solution belongs.



  4. Open the Solution Scene Names section

    This section is used to declare which scenes are allowed to be used by this solution. You may authorize multiple scenes by adding a name pattern. This allows scenes to be automatically added to the solution based on their scene ID.

    • Press the Add Name Pattern button



    • Enter com.example.party.scene.* in the Scene Name Pattern windows and press OK. This will add to the solution all scenes contained in that package or in any of its sub-packages.



  5. Notice your scene no longer appears in the Available Scenes list after the Scene Name Pattern is added because your scene qualifies for the name pattern.



  6. Tip
    Scene Name Patterns are your friend. They keep you from having to change your solution definition as new scenes are created. However, to ensure they stay friendly you need to use well organized package structures to contain your Scenes.
    Too Tippy
    There are times when you need to select specific scenes to be included in a solution that is offering a subset of your product. You can do this by dragging scenes from the Available Scenes to the solution’s scene list.
    Tipped Over
    You remove scenes and scene name patterns from a Solution by dragging them from the solution’s scene list and into the Available Scenes list.
  7. Specify the first scene that should be displayed when the solution. You know what to do.



  8. Click the Finish button because you are done with this lesson.

You are one step closer to running your scene!