Telechargé par amin_1401

Pi Concepts

publicité
flexsys
belgium
Pi
Personal Information
flexsys
belgium
What
• Pi is a Personal Information system based on a configurable
framework.
• Was initially started by Full Circle Development (a join venture
between Hfx.co.uk and Flexsys Belgium) and taken on by Flexsys
Belgium in 2017.
• Is retailed to distributors which configures it for their country and
customers.
• Only one release version. Customisation is performed in the
integrated development environment.
2018 August 6
2
flexsys
belgium
Design goal
• Must works for a wide range of customers starting at 50
employees with no upper limit.
Our biggest customer is in Portugal: 9400 employees.
• Must use a modern user interface.
• Should use the latest software technologies.
• Must not be a T&A application - only • Must be extensible by plug-in
• Must be easily localized and must support multi languages
• Human interface independent (Web)
2018 August 6
3
flexsys
belgium
Multi languages
•
•
•
•
Enabled for –simultaneous- different languages
Each person is linked to is own locale
Unlimited number of supported locale
Use standard free tools for text translation (gnuGetText - Flexsys
has also developed its own set of tools)
• Actually, database text translation has to be done manually.
• Support adding locales on a running system (if the locale is
unknown, revert to the programmer's language)
2018 August 6
4
flexsys
belgium
Application Layer
Architecture
MS Windows Application
Web application
Application Layer
Module 1
Module N
Business Layer
Core components
Core engine
DATA Access Layer
Business Logic Layer
2018 August 6
DATA ACCESS LAYER
Database
Database
5
flexsys
belgium
Database
• Only SQL database servers
• Currently all versions of MSSQL server (Free MSDE for small
installation)
• Other on demand (Oracle, DB2, Sybase, Informix…)
• Currently implemented as a two tiers layers but can be extensible
to a multi tiers layers by writing a new database driver.
2018 August 6
6
flexsys
belgium
Database Connection
• Database abstraction layer between the applications and the real
database drivers
• The layer allows the applications to connect to multiple databases
simultaneously
2018 August 6
7
flexsys
belgium
Authentication
• Pi implements an authentication plug-in mechanism (PANAM) so
that virtually any authentication method can be used.
– Basic (user name + password + password policies)
– Active directory
– LDAP
– EDirectory (Novel)
– Radius
– Chip card etc.
In bold currently supported authentication modules
2018 August 6
8
flexsys
belgium
Authentication …
• The authentication mechanism consists of one or more pluggable
authentication modules.
• Since several modules can be plugged, a stack of authentication is
formed.
• The stack is referred to as the authentication schema and different
applications (Pi, PiStudio, PiWebServer…) can have different
authentication schemas. A chain is followed through this stack
before the user is authenticated.
2018 August 6
9
flexsys
belgium
The directory
•
•
•
•
Is a well-known structure.
Provides a uniform way of work.
Is the main source for security.
Each folder can be connected to a “handler” that provide
functionalities. Handlers are developed by Flexsys and/or Partners.
• The layout by itself is not important, all is about the FolderID
which defines the folder handler used by a folder.
2018 August 6
10
flexsys
belgium
The directory …
2018 August 6
11
flexsys
belgium
Authorisation and Security
• Means ‘who’ is authorised to do ‘what’
• Once a user is authenticated, an authorisation schema is attached
to it
• The authorisation schema defines what the authenticated user
can do
• Security concept defines who has rights to make actions on what
• Security also handle the rights on the user own personal record.
2018 August 6
12
flexsys
belgium
Authorisation and Security
2018 August 6
13
flexsys
belgium
Personal Record Definition
•
•
•
•
•
Pi handles ‘persons’
A person is composed of fields from several tables
Fields are ‘grouped’ into Categories.
Some Fields may have histories (values are changing over time)
Can be extended with custom programming (Pace) for example:
Children.
• All persons are a potential user
IPN
Display
Name
Creation
Date
Table 1
Manager
Table 2
State
...
...
...
Table 3
MSSQL
Server
2018 August 6
14
flexsys
belgium
Personal Record Security – Vertical partition
• Defines which fields a user can see, and which actions can be done
– Category Rights
• Fields can be assigned to categories and categories can be secured
– Field definition
• Fields can be grouped into folders that are secured.
• Fields have properties e.g. enabled, read only
• Fields security always take precedence over Category security
2018 August 6
17
flexsys
belgium
Personal Record Security – Horizontal partition
• Defines which persons a user can see, and which actions can be
done on those persons
– Category Rights
• Main Categories folder handler introduces additional rights for handling
personal records
– Group membership
•
•
•
•
Administrator group can see all personal records
Managers group can see all records which they manage*
Self group defines the rights of the user to see his own record*
All groups can be restricted based on personal record field values.
* Providing the group has the ‘Read personal record’ right
2018 August 6
18
flexsys
belgium
Personal Record Security
Horizontal Partition
User has rights to
own record and
some other personal
records
2018 August 6
Vertical Partition
User has rights to
fields 1,3 and 4
The Final List
Finally, the user has access
to his own and some other
personal records. In each
personal record he has
access to some fields
19
flexsys
belgium
System names
•
•
•
•
•
Define a mapping between a number and a name
This name can be localized
All names in Pi are referenced by system names
As a generality: Unlimited number of system name
Are stored into folders so can be secured
2018 August 6
20
flexsys
belgium
Counter definitions and Counters
• Counters are 32 bits values, result of computation (in Pace)
• They are linked to one date and one person
• Global counters are similar but not linked to a person
• Counter definition define what could be stored in a counter and
how to display it (format, colour schema):
– Data definition: Integer, Date, Time, Tick (Date and time), Duration, Decimal 1,
Decimal 2, Decimal 4, Link to a system name, Flag (32 individual Boolean).
– Colour schemas: define the formatting rules for counter values. For example:
red bold if negative, blue italic between two value etc.
An unlimited of rules may be define for an unlimited number of colour
schema. One counter definition is attached to one colour schema.
2018 August 6
21
flexsys
belgium
Correction and Correction reasons
• Correction are used to modify ‘something’ in the system.
• The ‘something’ is defined by Pace rules that process the
corrections. For example, absences are processed as corrections
• A correction is person and day based. For a period, a correction
exists for each day composing the period
• The correction reason define what the correction is composed by
and how to process then.
• Several format style
• Corrections are versioned by a status.
• This status allows to handle workflows with an unlimited number
of levels.
2018 August 6
22
flexsys
belgium
Correction reasons
2018 August 6
23
flexsys
belgium
Pace
• Pi Application Compiling Environment
• Is a “subset” to the Borland Delphi language with access to the
internal Pi objects
• Is compiled by our compiler to a Win32 binary code that is
executed by a Pace runner
• Source and binary are stored in the database
• Design programs, screens, reports and web pages not only in term
of layout but also in term of functionalities.
• Is part of the integrated development environment - Pi studio
2018 August 6
24
flexsys
belgium
Pi Studio
•
•
•
•
•
Is the tools used be our Partners to customize their application.
Contains the Pace compiler
Contains a complete debugger: breakpoint, step by step, watch …
Contains a database explorer
Has an extensive help
2018 August 6
25
flexsys
belgium
PiStudio
2018 August 6
26
flexsys
belgium
Time recording module
Where all our time recording knowledge
is implemented
2018 August 6
27
flexsys
belgium
Time recording
•
•
•
•
•
•
•
•
•
•
Day type
Calendar
Booking rounding
Daily program parameter
Daily program
Windowing
Working schedule parameter
Working schedule pattern
Working schedule
Time recording assignment
2018 August 6
28
flexsys
belgium
Day types
• Is the base of the calendar
• Define special day type for which you will apply different daily
programs
• Main usage: Public Holidays
2018 August 6
29
flexsys
belgium
Calendars
•
•
•
•
Collection of special day types events
Events can be recurrent
Are assigned to working schedules and/or to persons
Main usage: Public holidays calendar but not only
2018 August 6
30
flexsys
belgium
Booking rounding
• Define how booking should
be rounded
• Roundness and tolerance
for input and output
booking
2018 August 6
31
flexsys
belgium
Daily program parameters
• Define the building
blocks of daily program
• One parameter can have
up to three (integer)
values
• Several parameters are
defined in standard
• All customizations
related to one day can
de defined here
• Available in Pace for the
computation engine
2018 August 6
32
flexsys
belgium
Time recording version concept
• Several parameters (daily program, working schedule patterns,
working schedule…) support the version concept.
• A version defines a starting date when the parameters are active.
• The date may be in the future. For example, it is possible to define
that for daily program “x” the working time will be “y” starting at
date “z”). The change of parameters will be done automatically.
• If the date is in the past, a re-computation will be performed with
those parameters.
• There is no end date.
2018 August 6
33
flexsys
belgium
Daily programs
• Are versioned.
• Totally define a day in term of:
–
–
–
–
–
2018 August 6
Working time
Supplementary time (time exceeding the maximum day time)
Slices time (time between slots)
Booking rounding
And other custom parameters defined in the Daily Program
Parameters.
34
flexsys
belgium
Daily program
2018 August 6
35
flexsys
belgium
Windowing
• Are versioned
• Automatically select a daily program from a booking.
First input booking in standard but can be changed by Pace in the
computation engine
• Are attached to a person
2018 August 6
36
flexsys
belgium
Working schedule parameters
• Define parameters for working schedules
• Used in Pace for special computation
2018 August 6
37
flexsys
belgium
Working schedule pattern
• Are versioned
• Define reusable set of daily programs as blocks
• Working schedule can use patterns
2018 August 6
38
flexsys
belgium
Working schedule – Daily program mode
•
•
•
•
Are versioned
Define a set of daily program composing a working schedule
Set a pivot date that starts the cycle
Define a public holiday calendar and parameters
2018 August 6
39
flexsys
belgium
Working schedule – Pattern mode
•
•
•
•
•
Are versioned
Define a set of pattern
Set a pivot date that starts the cycle
Define a public holiday calendar and parameters
Personal record assignments select the starting pattern
2018 August 6
40
flexsys
belgium
Time recording assignment
• Assign daily programs, calendar, windowing and working schedule
to a person.
• Completely define which daily program and which day type will be
applied for a date.
2018 August 6
41
flexsys
belgium
The computation engine
• The computation engine is Pace based.
• Its main role is to compute the counters and to process
corrections. But it may do things more (like sending emails).
• It is called each time a booking or a correction is processed and
each day by a scheduled task to process the complete day.
• It may be called by the user to update the current values.
• Several components exist to help working with bookings,
corrections and counters but the final computation is performed
in Pace.
• Each partners can customize it for its own customer needs.
2018 August 6
42
flexsys
belgium
Web interface
• The web server is a standalone program and a service insure the
web server is up and running.
• The web server supports all authentication modules including
Active directory SSO.
• Web pages are designed in Pace.
2018 August 6
43
flexsys
belgium
Terminal hardware independent.
• Pi is virtually able to connect to any hardware provider by
leveraging to Pace the real work (import/export).
2018 August 6
44
flexsys
belgium
Import - Export
• Pace is use to handle Import and Export.
• It can be scheduled
2018 August 6
45
Téléchargement