Tehnologii XML -- Managementul conferintelor -- Design -- 2007-2008 -- info.uvt.ro
Appearance
Use cases
[edit]Am redactat un document de Use-Cases pentru proiect, pe baza unei discuţii cu domnul profesor, şi vă rog să veniţi cu completările de rigoare dacă este cazul. Documentul poate fi găsit la UseCase.doc.
Entităţi
[edit]- Actori
- Organizator
- Program committee
- Invited speaker
- Participant
- Date
- Articol
- Abstract
- Full article
- Review report
- Articol
Activităţi
[edit]- Organizator
- Invită -> Program committee
- Invită -> Invited speaker
- Approves -> Article
- Rejects -> Article
- Publică -> Article / Abstract / Full article
- Program commitee
- Review -> Articol
- Requests -> Abstract
- Requests -> Full article
- Reports -> Review report -> Organizer
- Review -> Articol
- Participant
- Registration request
- Submit -> Article / Abstract / Full article
Cicluri de viaţă
[edit]- Articol
- Proposal -> New / Deleted
- Reprezintă doar promisiunea lucrării
- New -> Active / Deleted
- Reprezintă doar o propunere însoţită de document
- Active -> Inactive / Deprecated
- Inactive -> Deprecated
- Deprecated -> Historic
- Lucrarea a fost acceptată
- Historic
- Lucrearea va fi publicată
- Proposal -> New / Deleted
- Operaţii generice
- initiatie / deinitiate | instantiate / deinstantiate
- se iniţializează procesul
- commission / decommission
- se furnizează informaţii
- activate / deactivate
- se prelucrează informaţiile
- initiatie / deinitiate | instantiate / deinstantiate
Constrângeri
[edit]- Deadline
Invitare Program committee / Invited speaker
[edit]Organizator | UI | PC / IS |
---|---|---|
1) | invitaţie | email + creare cont vid |
ştergere cont vid | automatic | 2) (ignorare) |
ştergere cont vid | UI refuzare | 3) |
modificare / validare cont | UI acceptare | 4) |
Interfeţe utilizator
[edit]- Organizator:
- invitare PC/IC;
- ştergere PC/IC;
- liste cu:
- PC/IS confirmaţi / neconfirmaţi;
- Program committee / invited speaker:
- adăugare / modificare date personale;
- adăugare / modificare capabilităţi;
Schema bazei de date
[edit]Tabele:
- Credentials:
- nume de utilizator;
- parolă;
- tipul utilizatorului;
- starea contului;
- Date personale
- Capabilităţi
- Lucrări / articole + informaţii de stare
- Reviews + informaţii de stare
Database Tables Description
[edit]- Credentials [accountid*, username, password, role, accountstatus]
- role = ORGANIZER | INVITED_SPEAKER | REVIEWER | PARTICIPANT
- accountstatus = INACTIVE | ACTIVE
- Obs.:
- INACTIVE means void account.
- This table has one “hard-coded” record:
- [1, organizer, organizer, ORGANIZER, ACTIVE]
- Personaldata [id*, accountid**, firstname, lastname, email, phone, country, city, university]
- Capabilities [id*, accountid**, maindomain, domain1, domain2]
- Papers [paperid*, accountid**, title, abstract, paperurl, status]
- status = NEW | ON_PROCESSING | ASSIGNED | REJECTED | ACCEPTED
- Obs:
- NEW --> at submission
- ON_PROCESSING --> has not been assigned to all the requested reviewers
- ASSIGNED --> has been assigned to all reviewers
- REJECTED --> if at least one reviewer has rejected it
- ACCEPTED --> if all the reviewers have accepted it
- Reviews [id*, participantaccountid*, revieweraccountid*, comment, status]
- status = ON_PROCESSING | ACCEPTED | REJECTED
- Obs.: * Primary Key; ** Foreign Key
The Web Services – to be developed using XAware
[edit]Used by organizer
[edit]- CreateVoidAccount?username=...&password=...&role=...
- role can only have 2 values: INVITED_SPEAKER | REVIEWER
- ==> create new record in Credentials table with accountstatus = INACTIVE
<CreateVoidAccountResponse> <Response> OK | NOK </Response> <AccountId>...</AccountId> </CreateVoidAccountResponse >
- the above XML document structure represents the structure of the XML data returned by the XAware web service (the response)
- ActivateAccount?accountId=...
- ==> update the record with the given account id in the Credentials table by setting accountstatus=ACTIVE
<ActivateAccountResponse> <Response> OK | NOK </Response> </ ActivateAccountResponse >
- DeleteAccount?accountId=...
- ==> delete the record with the given account id (active account) from the Credentials table
<DeleteAccountResponse> <Response> OK | NOK </Response> </DeleteAccountResponse>
- GetIS-PCStatus
- ==> select records from Credentials table where role=”INVITED_SPEAKER”
<InvitedSpeakers> <Member> <UserName> … </UserName> <AccountStatus> … </AccountStatus> </Member> <Member>...</Member> ... </InvitedSpeakers>
- ==> select records from Credentials table where role=”REVIEWER”
<Reviewers> <Member> <UserName>…</UserName> <AccountStatus> … </AccountStatus> </Member> ... <Member>…</Member> ... </Reviewers>
- OQ: Is it useful to include information from the Personaldata table in this response (like firstname, phone, email,...) ?
- Obs. IS = Invited Speakers; PC = Program Committee
General use
[edit]- Login?username=...&password=...
<LoginResponse> <Response>OK | NOK</Response> <AccountId> the account id </AccountId> </ LoginResponse >
Used by IS/PC (after their account is active and they are logged-in)
[edit]- 1. …AddPersonalData?accountId=…&firstname=…&lastname=…&email=…&phone=…&country=…&city=…&university=…
- ==> insert new record in Personaldata table
<AddPersonalDataResponse>
<Response>OK | NOK</Response>
<AddPersonalDataResponse>
- 2. AddCapabilities?accountId=…&maindomain=…&domain1=…&domain2=…
- domain1, domain2 are optional
- ==> insert new record in Capabilities table
<AddCapabilities>
<Response>OK | NOK</Response>
</AddCapabilities>
TODO
[edit]- ... to be reviewed
- ... to be implemented for next monday
- ... to be continued and updated with new services
WSDL & XSD
[edit]validarea parametrilor de input prin restricţii în schema xml
[edit]- accountId / paperId
<xsd:restriction base="xsd:int"> <xsd:minInclusive value="1"/> </xsd:restriction>
- role
<xsd:restriction base="xsd:string"> <xsd:pattern value="ORGANIZER|INVITED_SPEAKER|REVIEWER|PARTICIPANT"/> </xsd:restriction>
- username
<xsd:restriction base="xsd:string"> <xsd:pattern value="[a-zA-Z][\w\.\-]{5,17}"/> </xsd:restriction>
- password
<xsd:restriction base="xsd:string"> <xsd:pattern value="[a-zA-Z0-9][\w\.\-]{7,23}"/> </xsd:restriction>
- firstname / lastname
<xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:pattern value="[a-zA-Z][a-zA-Z\-\.\s]+"/> </xsd:restriction>
<xsd:restriction base="xsd:string"> <xsd:pattern value="[a-zA-Z0-9][\w\-\.]+@[a-zA-Z0-9][\w\-\.]+\.[a-zA-Z]{2,3}"/> </xsd:restriction>
- phone
<xsd:restriction base="xsd:string"> <xsd:pattern value="[\+]?[\d]{2,20}"/> </xsd:restriction>
- country / city
<xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:pattern value="[a-zA-Z][a-zA-Z\-\.\s]+"/> </xsd:restriction>
- university
<xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> <xsd:pattern value="[a-zA-Z][a-zA-Z0-9\s\-\.\,\;]+"/> </xsd:restriction>
- maindomain / title / abstract
<xsd:restriction base="xsd:string"> <xsd:minLength value="1"/> <xsd:whiteSpace value="collapse"/> </xsd:restriction>
- domain1 / domain2
<xsd:restriction base="xsd:string"> <xsd:minLength value="0"/> <xsd:whiteSpace value="collapse"/> </xsd:restriction>
- paperurl
<xsd:restriction base="xsd:string"> <xsd:pattern value="[(https?|ftp)?(\:\/\/)?]?[a-zA-Z0-9][\w\c\p{P}\p{S}\p{Zl}\p{Mn}]+" /> </xsd:restriction>
- paperstatus
<xsd:restriction base="xsd:string"> <xsd:pattern value="NEW|ON_PROCESSING|ASSIGNED|REJECTED|ACCEPTED"/> </xsd:restriction>
- accountstatus
<xsd:restriction base="xsd:string"> <xsd:pattern value="ACTIVE|INACTIVE"/> </xsd:restriction>