UPCS-Gen3 Installation Instructions UPCS7 Components UPCS7 is made up of four main components UPCS7 client (Install files) Data service (Web service) running on IIS7 UPCS7 SQL database Quartz Windows service. UPCS-Gen3 Manual Installation Main Client Main client is a Windows Presentation Foundation (WPF) application which does not need any formal installation on the client machine. In the simplest form, the client executable 'CHSSYS.UPCS.exe' and its configuration file (and supporting DLLs) can be just copied to a client machine and as long as the configuration file has correct settings, the application will work. The configuration file (CHESSYS.UPCS.exe.config) is an xml file which, among other things, contains information about location (URL) of the data service. All data in UPCS is obtained using the data service which is essentially a web service fulfilling all requests for data from all the clients. For the sake of easy distribution of the client, we use Click-Once technology which makes deploying the client very convenient. In Click-Once technology, the application can be 'published' to a website or to a shared folder location visible to client machines. There are two ways to get the UPCS client installed on the user s machine. First, when a user navigates to the shared location and double clicks the CHSSYS.UPCS.Application, the click-once technology downloads all the required files and installs the application on the user s local machine. If a newer version is placed on the shared location, all users will automatically get the newer version when running the application the next time from the shared location. Another way to provide the UPCS application is to create a simple HTML page and place a link there to the CHSSYS.UPCS.Application file this provides an alternate way to direct users to the client without having to create a shared drive. Data Service The Data Service is a Windows Communication Foundation (WCF) service which exposes the data using entity framework. It is a RESTFull web service which runs on IIS7. The configuration file for the web service (web.config) contains the database connection string. Each request for data from the client takes the form of a URL request to the data Web service, which in turns get the data from the database and returns the results to the client in the response. UPCS Database The UPCS Database can be SQL server 2008/R2 or Oracle database. Chesapeake System Solutions, Inc. Page 1
Quartz Window Service Quartz Windows service is the scheduler service used by UPCS7. It is a Windows service written in c#.net and it uses its own set of tables in SQL server for managing job schedules and firing of triggers to start scheduled jobs. The configuration file (Quartz.Server.Service.exe.config) contains database connection strings for connecting the Quartz database. The UPCS client communicates with the Quartz server using a TCP port which is configurable. Normally we use port 555. The Service config file specifies this port. Additionally, UPCS client config file has a setting for this port so it knows how to talk to the scheduler. Component Interactions User requests UPCS client: Click-once technology installs the client on user s machine. User requests info within UPCS client: Client calls data service on the application server to get data. Data Service gets data from Database and returns it to data web service which returns it to client. User schedules a job: Clients connects to Quartz scheduler to create a job. Quartz scheduler connects to database to enter job details (what type of job, when to run). Scheduler gets job specific data from data service and carries out the job (import, search letters etc.). All of the UPCS components can be installed on a single server or they can be distributed for load balancing purposes. Normally, at least the SQL server should be installed on a separate server. Chesapeake System Solutions, Inc. Page 2
Using centralized application server architecture for providing data to the client application has several advantages. Database access and the connection information is limited to single App server, every computer running the client does not connect to database directly thus improving the security and minimizing administrative overhead. Also, all the resource intensive processes are performed on the application server - freeing up all client machines from having to provide computing power for big jobs like creating state reports, search letters etc. When updates to the client application are available, only the App server needs to be updated with the new software. The next time client machines request the application from the app server, they get the updates transparently - no need to manually update each client. Installation Steps Minimum System Requirements: Server: Windows 7 or Windows 2008 server, 4 GB RAM, 100GB free space, Framework 4 or better installed, IIS installed and enabled for app hosting, SQL Server: Windows 7 or Windows 2008 server, 4 GB RAM, 1 GB free space (depending on the data). Installation files are provided as a set of files in 5 folders: UPCSDataBase UPCSDataService QuartzService UPCS7Client UPCSProcessBot Copy the above folders to the local file system. Install Databases: Restore the file " UPCSDataBase\ABCDatabaseName.bak" as database "UPCS7Gen3 Create a SQL account called "UPCS7DSUser" with password "cssi" and give the 'dbowner' permissions to "UPCS7Gen3". Install UPCSDataService on App server (IIS): In IIS create an "Application Pool" with name "UPCS7AppPool". Select the Application pool created and go to basic settings. Make sure the.net framework versions is pointing to ".Net Framework V4" Make sure the Managed Pipleline mode is selected to "Integrated". Select the Application pool and go to advance settings. Change the Application pool Identity under "Process Model" to run with an account which has administration rights on machine. Chesapeake System Solutions, Inc. Page 3
Select "Site"and create a new website called "UPCSDataService". Select the Application Pool "Created in step 1 called "UPCS7AppPool". For Physical path browse to folder location "UPCSDataService" in your local file system. Go to UPCSDataService Folder and open "web.config" file in notepad. Create a Folder called "UPCSFileUploads" under UPCSGEN3 and share it and give 'everyone' read/write access. Create 11 sub folders under "UPCSFileUploads" named 'AutoUpdate','CustomImport','OwnerUpdate','StandardImport','StateReports','SearchL etters', 'Compliance', Extracts, PdfReports, GeneralSearchLetters, RecurringJobFiles Create two other Sub folders under Compliance Folder * ComplianceExtract * ComplianceUpdate Compliance => ComplianceExtract, ComplianceUpdate Edit highlighted entries in bold according to your environment. <connectionstrings> <add name="upcsdataentities" connectionstring="metadata=res://*/upcsdatamodel.csdl res://*/upcsdatamodel.ssdl res://*/upc SDataModel.msl;provider=System.Data.SqlClient;provider connection string="data Source=ServerName;Initial Catalog=UPCSGen3;user id=upcsgen3acct;pwd=upcs7;multipleactiveresultsets=true"" providername="system.data.entityclient" /> </connectionstrings> Install Quartz Scheduler: Goto "QuartzService" folder and double click RegisterQuartzService.bat" file to register the quartz windows service. Open the "Quartz.Server.exe.config" file in notepad and edit the highlighted entries to match the entries in step 1.2 and 1.3. <add key="quartz.datasource.default.connectionstring" value="server=servername; Database= QuartzDatabase ;user id=upcsgne3acct;pwd=upcs7"/> Edit the highlighted entries in Appsettings section according to your configuration. 'Processbot location' will be determined during the ProcessBot Installation. <Appsettings> <add key="processbotlocation" value="c:\program Files\Chesapeake\UPCS ProcessBot\ProcessBot.exe"/> <add key ="ProcessBotConnectionString" value="dotnet='yes' Oracle='no' ServerName=ServerName' Database='UPCS705' UserID='UpcsAcct' DatabasePassword='upcs7'"/> <add key ="EmailServerUserName" value="info@company.com"/> <add key ="EmailServerPassword" value="password"/> <add key ="EmailFrom" value=" info@company.com"/> Chesapeake System Solutions, Inc. Page 4
<add key ="SMTPServer" value="smtp.mail.microsoftonline.com"/> <add key ="SMTPPort" value="587"/> <add key ="EnableSsl" value="true"/> <add key ="UseDefaultCredentials" value="true"/> <add key ="DataServiceUri" value="http://servername/upcsdataservice/upcsdataservice.svc/"/> <add key="fileuploadfolder" value="\\servername\\upcsbeta7\ UPCSFileUploads\\" /> <add key="encryptionconnectionstring" value="server=upcswin701;initial Catalog=UPCSNew_Nov28;user id=upcsdsuser;password=cssi"/> <add key="enabledebuglog" value="true"/> <add key="logfilename" value="c:\\upcs7_logfiles\\upcs_scheduler_errorlog.txt"/> </appsettings> Goto "services" under ControlPanel Administrative Tools and edit the QuartzServer" properties, and under "Logon" tab run the service with an account which has local admin privilege. Start the Quartz Service. Install UPCS 7 Client: Go to Folder UPCS7Client" and share it, and give everyone read permissions. Go to the sub folder 1.0.0.1 and edit following settings in CHESSYS.UPCS.exe.config file. In AppSettings section change the highlighted text to your server name <add key="companyname" value="chessys"/> <add key="version" value="geniii - 7.0.5"/> <add key="build" value="1177"/> <add key="dataserviceuri" value="http://upcswin701/upcsdataservice/upcsdataservice.svc/"/> <add key="quartzscheduleruri" value="tcp://upcswin701:565/quartzscheduler"/> <add key="uploadfolderlocation" value="\\upcswin701\upcsfileuploads"/> <add key="helpfile" value="\\upcswin701\helpfiles\webhelp 7.0/upcs_7.0.htm"/> <add key="maxwaittimeinseconds" value="500"/> <add key="adminhelpfile" value="\\upcswin701\helpfiles\upcs 7 Admin\upcs_security_administration.htm"/> <add key="allowhoderdeleteonlyifnoproperties" value="false"/> <add key="clientsettingsprovider.serviceuri" value=""/> <add key="enabledebuglog" value="true"/> <add key="remindidletimeperiod" value="580"/> <add key="logfilelocation" value="c:\upcs7_logfiles\upcs7logfile.txt"/> <add key="iscitrixinstallation" value="false"/> <add key="archievereportslocation" value="\\upcswin701\upcsfileuploads\pdfreports"/> Double click Deploy_1000_Onlineonly.bat" file. This batch file will create a deployment package out of the UPCS binaries and create a file called 'CHESSYS.UPCS.Application' in his folder. This application file is the one users use to run the application. Install UPCSProcessBot: Go to "UPCSProceessBot" folder and double click on Processbot.exe. During the installation, copy the location where Processbot.exe is installed and use the same location in step 3.3 <app key ='Processbotlocation' value = 'ProcessBot exe Location'> Chesapeake System Solutions, Inc. Page 5
Supply dummy information for the database connection information during the ProcessBot - since all the actual database information is supplied to ProcessBot at run time Publish Application to users: To publish UPCS to users, provide the UNC path of the CHESSYS.UPCS.Application from Step 4 of Install UPCS 7 Client to users. For example, if the server name on which the application was published is UPCSServer, the UNC path users will use will be \\UPCSServer\UPCS7Client. The user will go the above file and double click the CHESSYS.UPCS.Application. The first time the user will get a security waning about installing a new application. Upon accepting the warning, the Click Once technology will download and install the application on the users machine. To provide users with access to UPCS client using a web server, create a website and place a link on a simple HTML page to the CHESSYS.UPCS.Application file. A sample html file is provided (publish.htm) which can be customized for company specific needs. ** Name(s) harcoded for Database username and Password is for sample, it can be changed. Please do not change the UPCSFileUploads folder names. Chesapeake System Solutions, Inc. Page 6