Tuesday, 1 May 2018

Development Changes in Siebel IP 2017 -> Composer & Workspaces




Since a while, the biggest change in Siebel has come up with Siebel IP 2017. Along with its Unique Architecture, it’s brought in a major change in the traditional Development approach till date.  Yes the change is big, for Siebel Developers, well being used to Developing in local, testing changes in Local Client (SRF – Dedicated Client) and then pushing it to Server, it’s a big change but the best part is that the change is for good !!!
I can only think of pros with the new Development Approach in IP17, the only Con is the “Resistance to ones nature of Work

Let’s dig deep into the Concepts of Composer & Workspaces Development Concepts in IP 2017


What’s New!!!


Composer                  : Siebel Web Tools + Added Features
Siebel Web Tools      : Came out in IP15, matured with IP17
Added Features        : Workspace Management & Change Validation
Workspaces               : An instance of Siebel Repository (like a Branch in GIT)



Terminologies to get acquainted to


Web Tools: Siebel Web Tools is essentially the same Siebel Tools over Web. The entity runs on Siebel WebTool Component (Alias: SWToolsObjMgr_<lang>). To enable the Component you will have to enable its Comp Group: SiebelWebTools (Alias). Once you have the Component enabled, all you have to do is add the Application within your AI Profile (in SMC). Say, if you have added the Application in your AI Profile with name – "webtools" & lang as "enu". Here’s how the URL will look like:

 
Now, important to note that if you are logging in with your Developer Account, it needs to have Workspace Admin Responsibility to be able to view the Web Tools Content.
What’s not included in Composer: Workflow designer, Task UI editor or drag and drop composition of applets.Schema, Dock objects, EIM mapping, scripts, and any wizards are still part of Siebel Tools and will be transitioned to Composer in the near future.

Ref: Oracle Blog

Workspaces: Magic Beans!!! Yes that’s correct. With the concept of Workspaces, there is no more a need to carry out steps like Generate DB + DB Extract + Full Get (Consuming around 1 – 2 days of Development Life Cycle). Instead, you just have to create a Workspace. Book Definition would be an “Instance of Repository”. Logically it’s a Copy of Repository where you make your changes, validate and merge into MAIN (consider MAIN as your actual “Siebel Repository”).
Basically by default, the Component Parameter “WorkspaceBranchName” points to MAIN. Now how is it Useful and how will Siebel Data Model acknowledge this?
Workspace brings in a set of RR Tables (consider these as a replacement to the Physical SRF file) + S_LST_OF_VAL where records are tagged with a Column WS_ID

Simple example as below:

SELECT COUNT(*) FROM S_LST_OF_VAL;
V/s
SELECT COUNT(*) FROM S_LST_OF_VAL WHERE WS_ID=(SELECT ROW_ID FROM S_WORKSPACE WHERE NAME='MAIN' AND REPOSITORY_ID=(SELECT ROW_ID FROM S_REPOSITORY WHERE NAME='Siebel Repository'));

{Same Count}

By default Workspaces are available in both Siebel Tools & Siebel Web Tools (or I can say for the DB as both are just the UI pointing to same DB Instance)


Working with Composer & Workspaces



1.    Login to https://myserver.mycompany.domain.com:<AIPort>/siebel/app/webtools/enu
       You’ll see something like below: 


figure 1


2.    Captured in Red is the Navigation to Workspaces. Once you click on it you will get a
       view like below:

figure 2


       So If I start developing, I will create a New Workspace for me by Clicking on Create.
       Suppose I have created a Workspace named dev_sadmin_varun1, then on the top
       right hand corner, I will see dev_sadmin_varun1 instead of MAIN.


3.    Now to start off making changes in the Workspace, I will have to click on the Close
       Button (top-right corner) and I will be taken back to the view mentioned in figure,
       with the only difference that this time I will be seeing the contents of
       dev_sadmin_varun1 instead of MAIN (Siebel Repository). Important to note that,
       so far Oracle has not released any feature in figure 1 stage that can help to
       determine the current Workspace (in case you are unsure). The only way is to Click
       on "Workspace" icon in figure 1, and check the version in figure 2, and then if you
       wish to make any changes you have to click on Close {X} Icon again.


4.    Once you have made the changes, your changes will reflect in "Changes Over
       here" section in figure 2.


5.    Now here comes, the Best part, testing your changes. To Test your changes you do
       not need to start client push srf and all. Instead with your Workspace as Active, you
       just need to click on Inspect (E) in figure 2, it will automatically Launch Web Client
       for you to validate your changes ? now that’s quick & convenient.

       Once you are sure on your changes you can click on Version (A), which will put a
       Checkpoint on the Workspace, no further changes after this.


6.    Next step is to Submit (B) your changes, now in case by the time you have made
       changes; in case someone had delivered the same objects with some changes, then
       you will be given a choice to Rebase (C) the Object.


7.    Finally Deliver (F) your changes. This will deliver your changes to the
       Parent Branch – MAIN. All it does is an Incremental Publish to the RR Tables,
       much like the Incremental SRF deployment in previous Releases.



You can perform all the Activities in the Traditional Siebel Tools (Workspace Explorer under Worskspace Tab) as well, however, the only missing feature over there is Inspect <the True Magic>


There You Go !!! That’s Developing without SRF(Downtime) in Siebel IP 2017

  

Thursday, 19 April 2018

Migration Strategy --> Siebel IP2017



What’s New !!!


No Downtime !!!
What’s replacing the SRF ??? What !!! No SRF   : Runtime Repository (RR Tables)
What’s replacing IIS/SWSE Unit???                              : Application Interface (AI)
What’s replacing Siebel/Gateway Config wizards??? : Siebel Management Console (SMC)
What’s replacing siebs.dat ???                                     : Zookeeper



Terminologies to get acquainted to




Application Interface (AI):
Refers to containerized (ready to Use or plug and Play) Unit in IP 2017 which has replaced IIS/Siebel Web Server Extension (SWSE) Unit from previous Versions. It’s built on (basically) Tomcat as the default Web Server packaged into the installable. So essentially, it’s the Tomcat Component which has replaced the IIS Web Server. Then what has replaced SWSE??? Let’s mark it as Stuck_In_My_Mind


Siebel Management Console (SMC):
As the name suggests, it is UI based configuration utility which comes up online as soon as AI is installed. Basically a containerized app (within the AI Unit) comes available as soon as AI is installed. Purpose of SMC is to provide Siebel & Gateway Configuration Profile management & Deployment UI. We do remember that with earlier versions we had to launch Gateway & Siebel Configuration Wizards but not anymore with IP2017.

For instance, if my Tomcat Manager URL after AI installation is:

                https://<AIHost-FQDN>:Port

                Important to note:
                HTTPS à More Security, is it? An elaborative security discussion in itself.                                 Bottom-line: IP2017 is https by default.

Then, my SMC would be:

                  https://<AIHost-FQDN>:Port/siebel/smc


However, for DB related Configuration tasks we still have to follow the traditional approach as with the previous Siebel Versions.



Step By Step Implementation Strategy



1.    Backup the current Configuration… Although with IP 2017, rollback to previous configuration is pretty easy. Specifically SES
    Reference -      
   
2.    Establish whether you are doing a Migration Installation or a fresh Installation.
    For the Current Enterprise (SES), you have to do a Migration Installation
    For SWEAPP, in case you have different Enterprises with only 1 IIS (SWSE Instance), you will need to separate AI instances for all Enterprises as it is not possible in SMC to call multiple Siebel Enterprises, there can only be 1 Enterprise deployed per SMC.

3.    Now, before starting with the Installation we need to make sure that we have the Certificates, as IP2017 is now HTTPS enabled. HTTPS won’t work without Certificates.  Following are the attached documents we need to follow for Generating Certificates  and adding it in JavaKeyStore/TrustStore.
 

Reference-

https://blogs.oracle.com/siebelcrm/siebel-crm-webcast-series-replays-innovation-pack-170
Creating Self-Signed SSL Certificates for Siebel Innovation Pack 2017 (Doc ID 2294567.1)

    JavaKeyStore/TrustStore: Refers to a container Unit which acts as a Pointer to Validate my Certificates, both CA & Server Certificates. We declare this Pointer in one of the Installation Screens. You can keep both as the same file (.jks) or they can be different. I prefer keeping it same to simplify the process.
   
4.    In earlier Version the Installable package used to contain to directories:
    a.    Siebel_Enterprise_Server
    b.    Siebel_Web_Server_Extension
    But with IP 2017, you will have only 1 folder, Siebel_Enterprise_Server, depending on your choices post launching the Installation Wizard, AI OR SES Installation happens.
   
5.    When you are doing Migration Installation. Prerequisite is to have SWSE Migrated as AI Installation OR you need to have a fresh instance of AI. Reason being there are few screens in Migration Installation of SES that needs to be populated with AI Installation Information.


    Fresh Installation & Migration Installation Documentation Available at Support Web:   

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=434202565303477&id=2297461.1&displayIndex=5&_afrWindowMode=0&_adf.ctrl-state=sxhz1f8a9_77#aref_section25
 
6.    AI Installation: We won’t be discussing the details of Installation as I will be posting a separate blog to cover this in details. However, it is pretty straightforward. However, after selecting the Migration Installation in the wizard if it doesn’t populate the Oracle Home Name/Oracle Home Location, don’t proceed further, that just means you have missed running the module.exe and that is important.


    As soon as AI installation completes, you can check if you are able to launch the Tomcat Home Page and SMC. Good gosh !!!


    See you will be able to login to SMC with the provided credentials in the Wizard (preferred: admin/admin)
   
7.    SES Installation: Same as above. In this case, it is SES Home & SES Home Location, however module.exe remains the same. Be careful about Application Interface Inputs screen, Application Interface Truststore Name. More on this in my coming up blogs.
    That was easy… What do I expect now.
   
8.    So once I have done a Migration Installation of AI & SMC, will I be able to see my Enterprise Gateway, Siebel Server & other Configuration in SMC or will I be able to login to SMC with SADMIN ?. The answer is only if you have Siebel installed in C: Drive. In case, you have done the installation in a driver other than C:\ drive refer to below Article from Oracle:

https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=x9ylbo4g2_9&_afrLoop=430506753899637#SYMPTOM
 
    Following the Article in case you are running the Bootstrap utility and getting any sort of errors, make sure that you are running this on base IP2017.0 (no patch set Installed), I have learnt it the hard way.
   
9.    Once the utility is successfully completed and get a success message regarding the Bootstrap Migration in the Bootstrap.log make sure that you are able to LOGIN to SMC with SADMIN. After Signing in, the SMC should not be prompting you to enter any information. You should be able to see your Enterprise/Siebel Profiles as Migrated on the default Page after Logging in (migrated profiles are marked as Blue).


    This will confirm that the Migration Installation has happened successfully.
   
10.    Next follows up the Repository Upgrade, you need to do this in a traditional way. Start off with the Repository Upgrade (make sure you refer to the Upgrade Guide and followed the prerequisite Instructions for changes in the tools.cfg before starting off the Upgrade). Not listing out the detailed steps but pointing out 2 screens, where in one of the screens you need to provide path to Custom scripts, hope the development team have not modified the vanilla scripts, instead created new Custom scripts.


    Second, you need to provide Path to the Custom Web Templates, this may get confusing and advice is to take your time. This will save your time later while bringing up the Application.


    With the input you provide in these 2 screens SWT2CLOB scripts are called behind which will migrate your scripts in the DB. Manually running the SWT2CLOB usually fails, in case you have missed onto few scripts, you can try running SWT2CLOB, but in my case there was only 1, hence I copied it directly in the WebTools (another elaborative topic of discussion, wait for my blog on this one to cover all the development related changes introduced with IP2017 - Composer & Workspaces in Action)


    Now I encountered a few errors during the Upgrade, I will be covering those during the detail discussion on Upgrade.
   
11.    Share the Conflicts sheet with the Development team, sort out the conflicts & mark all the conflicts as Resolved.

12.    Once conflict resolution is marked completed, you can launch the upgphys & it will fail, something new in IP2017, before running upgphys, you have to execute FullPublish command, only 1ce for all languages together. Details to be discussed later.

13.    Once, FullPublish completes & you get a sign off on all the errors from Development. Refer Bookshelf for running the utility (including prerequisites) or wait for a detailed blog on DB Upgrade.

14.    Run upgphys. Verify the logs for completion.

15.    All set, now there are few pre-requisites for bringing up the Environment.

    •    Recreate Siebel Service.
    •    Create & Deploy Application Interface Profile – Remember Stuck_In_My_Mind
        This is an answer to it. Application Interface Profile is the entity which replaces the SWSE.
        Against SWSE which is pretty static in nature, this is Dynamic, this will let you pick only the    active Components from the enterprise which is fascinating.

16.    Startup Siebel Service, observe that the processes are coming up. Connect with ServerManager, make sure you are using the FQDN for Gateway. Now if you are able to launch the Application in 1 GO you are probably tailor-made for Siebel and if not then you will learn a lot more about your Application.



Now, when we say how is Siebel Ready for Cloud with this Architecture, here's an explanation. With earlier versions of Siebel, it was a pretty tightly coupled Architecture & with the changes incorporated with IP2017, we are moving to loosely Coupled Architecture and that is a basic requirement for any preferred Cloud based Application.