COMPETITIVENESS AND INNOVATION FRAMEWORK PROGRAMME ICT Policy Support Programme (ICT PSP) ICT PSP call identifier: ICT PSP-2008-2 ICT PSP main Theme identifier: CIP-ICT-PSP.2008.1.1 Project acronym: SPOCS Project full title: Simple Procedures Online for Cross-border Services Grant agreement no.: 238935 Technical Overview of WP4 Interoperability Framework and Development Activities - Update Deliverable Id : D4.7 Deliverable Name : Open Modules Status : Draft Dissemination Level : SPOCS Internal Due date of deliverable : 31.08.2011 Actual submission date : 31.08.2011 Work Package : WP4 Interoperable eService Directories Organisation name of lead contractor for this deliverable : BVA (DE) Author(s): Partner(s) contributing : Fraunhofer FOKUS (DE) Document: Modules: SPOCS.AT, ICTU (NL), YPES (GR), EBR Feedback: all WP4 partners Abstract: This deliverable provides the code of the open modules and describes an updated technical overview of the modules, their technical integration, technical main decisions and development guidelines. This deliverable represents the updates of deliverable D4.4 including amendments from partners of the first piloting as well as partners of the enlargement. The updated schemas, specifications and guidelines are described in the dependent deliverable D4.6. 1 History Version 2 Date Modification reason Modified by 0.1 15.06.2011 Initial draft and inclusion of D4.4 content FOKUS 0.5 01.08.2011 Deliverable ready for Internal Review FOKUS 0.7 <<T – 20 days>> Deliverable ready for External Review 1.0 <<T – 5 days>> Deliverable ready to be submitted to the European Commission Table of contents History ....................................................................................................................................... 2 Table of contents ....................................................................................................................... 3 List of figures ............................................................................................................................. 6 List of Tables ............................................................................................................................. 7 List of Abbreviations ................................................................................................................... 8 1 Introduction to the deliverable ............................................................................................12 The project: SPOCS ..............................................................................................................12 1.1 Methodology ...................................................................................................................13 1.2 Relations to internal SPOCS environment ......................................................................13 1.3 Relations to external SPOCS environment .....................................................................14 1.4 Quality management ......................................................................................................14 1.5 Risk Management ..........................................................................................................14 2 2.1 2.2 3 3.1 Technical Overview ............................................................................................................15 Components ...................................................................................................................16 2.1.1 Search .................................................................................................................16 2.1.2 Transformation.....................................................................................................17 2.1.3 MIDB access........................................................................................................18 2.1.4 Outlook ................................................................................................................19 Information / Data Objects ..............................................................................................19 2.2.1 Equivalence Information ......................................................................................21 2.2.2 Change Information .............................................................................................23 2.2.3 Outlook ................................................................................................................24 Technical Decisions ...........................................................................................................25 Data Sources and Integration .........................................................................................25 3.1.1 Frontend vs. Backend Integration ........................................................................25 3.1.2 Quality Criteria Information Retrieval and Data Source Selection.........................26 3.2 Change Tracking ............................................................................................................26 3.3 MIDB Technology and Query Language .........................................................................29 4 4.1 3 Implementation ..................................................................................................................31 Development ..................................................................................................................31 4.1.1 Environment ........................................................................................................31 4.1.2 Programming Conventions...................................................................................31 4.1.3 Code / Inline Documentation ................................................................................31 4.1.4 4.2 4.3 4.4 4.5 4.6 5 Status and Outlook ..............................................................................................32 Dependency Management..............................................................................................32 4.2.1 Mechanism ..........................................................................................................32 4.2.2 Maven Project Object Model ................................................................................33 4.2.3 WP4 eServices Building Block Project Structure ..................................................34 4.2.4 Status and Outlook ..............................................................................................35 Project Versioning and Conventions ...............................................................................36 4.3.1 Versioning Schema ..............................................................................................36 4.3.2 SVN .....................................................................................................................36 4.3.3 Namespaces ........................................................................................................37 4.3.4 Status and Outlook ..............................................................................................37 Logging ..........................................................................................................................37 4.4.1 Mechanism and Conventions ...............................................................................37 4.4.2 Logging Levels.....................................................................................................38 4.4.3 Dependency to Monitoring ...................................................................................38 4.4.4 Status and Outlook ..............................................................................................38 Error Handling and Exceptions .......................................................................................38 4.5.1 Mechanism ..........................................................................................................38 4.5.2 Fault Conventions ................................................................................................39 4.5.3 Status and Outlook ..............................................................................................39 Testing and Quality Assurance .......................................................................................39 4.6.1 Mechanism and Test Methods .............................................................................39 4.6.2 Test Models, Cases and Conventions ..................................................................39 4.6.3 Test Automatisation .............................................................................................40 4.6.4 Test Results Presentation ....................................................................................40 4.6.5 Sonar and Quality Assurance ..............................................................................40 4.6.6 Status and Outlook ..............................................................................................40 Distribution and Change Management ...............................................................................41 5.1 Deployment for the Pilots ...............................................................................................41 5.2 Release Management ....................................................................................................41 5.3 Change Management .....................................................................................................42 Conclusions ...........................................................................................................................43 A. Appendix A – Acceptance Criteria ......................................................................................45 B. Appendix B – Risk List .......................................................................................................48 C. Appendix C – Technical Code Lists ................................................................................50 4 D. Appendix D – Enlargement Activities ..............................................................................51 E. Appendix E – Task list before WP1 / WP4 scrum ...............................................................52 F. Appendix F – Obsoleted Parts of Deliverable D4.4 ............................................................60 2 Technical Overview ................................................................................................................60 2.2 Components........................................................................................................................61 2.2.1 Sequences ................................................................................................................62 2.2.2 Access ......................................................................................................................65 2.2.3 Provision ...................................................................................................................66 2.2.4 Search ......................................................................................................................67 2.2.5 Transformation ..........................................................................................................68 3.4 Routing and Message Technology ......................................................................................69 5 List of figures Figure 1: WP4 Relations to National Infrastructure and WP1 ....................................................15 Figure 2: Inter-WP Relations .....................................................................................................16 Figure 3: Overview WP4 Search Interface and Relations ..........................................................17 Figure 4: Overview WP4 Transformation Interface and Relations .............................................18 Figure 5: Overview WP4 MIDB Access (Example Service Entity)..............................................19 Figure 6: Overview Core Objects of MIDB and Schemas ..........................................................20 Figure 7: Multilingual Realisation (Update) ................................................................................21 Figure 8: Configuration Set .......................................................................................................21 Figure 9: Equivalence Information .............................................................................................22 Figure 10: Change Information (Update) ...................................................................................23 Figure 11: Overview WP4 Open Modules (OMs), their Integration Points (WP4 NCs) and the Technical Use Cases they support (Deprecated) ......................................................................61 Figure 12: Inter-WP Relations (Deprecated) .............................................................................62 Figure 13: Sequence for search within MIDB (Deprecated) .......................................................63 Figure 14: Sequence for cross-border lookup scenario (usage of WP4 IL) (Deprecated) ..........64 Figure 15: Access Component (Deprecated) ............................................................................65 Figure 16: Access Components (Update) (Deprecated) ............................................................66 Figure 17: Provision Component for Search Core Info at MIDB Scenario (Deprecated) ............66 Figure 18: Provision Component for Lookup Full-Info Scenario (Deprecated) ...........................67 Figure 19: Search Component for SearchCore Info at MIDB Scenario (Deprecated) ................67 Figure 20: Search Component for Lookup Full Info Scenario (Deprecated)...............................68 Figure 21: Transformation Components (Deprecated) ..............................................................68 6 List of Tables Table 1: Examples for Equvialence ...........................................................................................22 Table 2: Content table with version numbers ............................................................................28 Table 3: Change table for versioning.........................................................................................28 Table 4: Content tables with different version status .................................................................28 Table 5: Acceptance Criteria List ..............................................................................................47 Table 6: Example risk list ..........................................................................................................48 Table 7: Exception codes ..........................................................................................................50 Table 8: Task list before alignment of WP1 / WP4 development ...............................................57 7 List of Abbreviations Abbreviation Explanation API Application Programming Interface CET Central European Time CIP Competitiveness and Innovation Framework Programme CR Candidate for Release CS Configuration Set CXF CeltiXFire DAO Data Access Object DB Database DNS Domain Name System DoW Description of Work EIF European Interoperability Framework eSD eService Directory EU European Union FK Foreign Key GA General Available HTML Hypertext Markup Language ICT Information and Communication Technology ID Identifier ISO International Standardization Organization JAX-B Java Architecture for XML Binding JAX-WS Java API for XML – Web Services JDK Java Development Kit 8 JPA Java Persistence API JNDI Java Naming and Directory Interface JRE Java Runtime Environment JUnit Java Unit Testing Framework LIB Library MIDB Meta Information Database MS Member State NACE Statistical Classification of Economic Activities in the European Union NC National Connector OM Open Module OWL Web Ontology Language PHP Hypertext Preprocessor PK Primary Key POM Project Object Model PSC Point of Single Contact PSP Policy Support Programme QA Quality Assurance RDF Resource Description Framework RDFS RDF Schema REA Real Estate Agent SC Service Catalogue SCM Source Code Management SLF4J Simple Logging Façade for Java SOAP Simple Object Access Protocol SparQL SparQL Protocol and RDF Query Language SPOCS Simple Procedures Online for Cross-border Service 9 SQL Structured Query Language SVN Subversion TA Technical Annex TSL Trust-Service Status List UDDI Universal Description, Discovery and Integration URL Uniform Resource Locator UTC Coordinated Universal Time UTF Unicode System Transformation Format WP Work Package WS Web Service WSDL Web Services Description Language WSLIB Web Services Library XML Extensible Markup Language XSD XML Schema 10 Executive summary SPOCS – Simple Procedures Online for Cross-border Services – aims at providing seamless cross-border electronic procedures for setting up a business in another EU country in the context of the Services Directive. The project builds on solutions developed in Member States as they implement the Services Directive. Building on compliancy with the Services Directive, SPOCS is also about competitiveness and it has been set up on the basis of the 2008 CIP ICT PSP Programme of Work (project reference: 238935). As described in the SPOCS Technical Annex, the current deliverable is the result of the task “T4.10: Update Modules”. The update of the modules has to integrate the requirements from the enlargement participants to enable them connecting with pilots from the first pilot phase and including their approaches from the specific national infrastructure. The update is based on the updated specifications and schemas as well as feedback of pilots related to the existing architecture and scenarios. This deliverable represents the code of the modules and gives an described technical overview. After several discussions with enlargement participants and pilots from the first phase a simplification of the WP4 architecture and scenarios was realized. The main purpose is to focus on syndication as cross-border interoperability mechanism and use WP4 as connection between National Connectors and the Meta Information Database storing the national and syndicated foreign information in a common schema and with common loading and querying functionality. Based on the decisions some components were merged like search and provision, some are extended like transformation and some are deprecated like routing (see section 2). The specific amendments and change requests of the partners are integrated in the update of the specification and schemas as described in deliverable D4.6. This deliverable focuses on the technical aspects and gives an overview about decisions and development as well as implementation guidelines. From a technical perspective no major changes apart from the described realignment of the components are required. The enlargement activities related to technical descriptions are listed in the appendix D. Using different technologies in the enlargement member states has actually no impact on the described SPOCS solution. Section 3 describes main technical decisions. So far there are no major changes to the description in D4.4. As there were many bilateral discussions and explanations as well as missing documentation about the implementation approach a section describing the main approaches is integrated. This concentrates on the scope of developers for the SPOCS modules (see section 4) and for the integration with and deployment to the national infrastructure (see section 5). The described approaches are technical guidelines covering the lifecycle of the WP4 modules. Every section is giving a status and outlook. There is still work to be done realigning and refactoring some parts of the components as well as for the support of the lifecycle. Required activities are planned and will include feedback from the piloting phase and results from the semantic task within the next releases. 11 1 Introduction to the deliverable WP4 is handling information needed to select the right procedures, documents, services and eServices within an application process between Service Provider and Point of Single Contact. WP4 focus on providing foreign information cross-border based on a common specification implemented by open modules that enhance the Point of Single Contact solutions. The information of different member states is combined to improve the user experience by wellknown services and documents from his home member state. Moreover WP4 is a basement to support further alignment, discussions and orchestrations of services and eservices. The deliverable D4.7 “Update Modules” provides the updated code of the WP4 open modules and gives a technical overview of the component structure, decisions and implementation guidelines. The update integrates requirements from the first piloting partners and the enlargement particpants describing their technical infrastructure. The deliverable is an update of deliverable D4.4 “Open Modules” and has a strong dependency to deliverable D4.6 “Updated common governance scheme/guideline”. The Open Modules are the implementation of the defined scenarios, architecture and specifications updated by the feedback of the partners. The modules will be further developed during the piloting phase as support (bugfixing) and integration of new or changed functionality (new releases) and involvement of results of the semantic task (T4.11 / D4.8 – release 2.0). The project: SPOCS SPOCS – Simple Procedures Online for Cross-border Services – aims at providing seamless cross-border electronic procedures for setting up a business in another EU country in the context of the Services Directive. The project builds on solutions developed in Member States as they implement the Services Directive. Building on compliancy with the Services Directive, SPOCS is also about competitiveness and it has been set up on the basis of the 2008 CIP ICT PSP Programme of Work (project reference: 238935). In other words, SPOCS is expected to: Improve the competitiveness of European businesses and particularly SMEs by providing a fully interoperable PSC (point of single contact) across all Member States. Enable all Member States to quickly adopt the solutions developed and enable all businesses to benefit from the reduction of administrative burdens. Furthermore, SPOCS is also expected to: 12 Build on MS activities as they implement the Services Directive Improve the efficiency of cross-border cooperation Support service innovations for businesses by reducing time and energy loss Increase cross-border activities Foster competitiveness and contribute to the development of trade Accelerate the development of common technology requirements Modernise the services offered by the public administrations. The output of the project is to provide for the necessary building blocks to achieve the second generation Points of Single Contact (PSC) by providing seamless cross-border electronic procedures. 1.1 Methodology The deliverable has four parts: the coding of the modules including inline documentation, the onboarding of the enlargement participants related to technical issues, the description of the technical overview within this document and the coordination of the activities with the pilots. The coding was done by the development team. The development coordination was aligned with the WP1 development activities as the dependency of both development activities is very strong and the used resources are the same. Development coordination was changed from WP4 specific task list (appendix E) and coordination to WP1/WP4 scrum approach including different user stories and acceptance tests for WP4. Further information is available through WP1. The onboarding was realized through several bilateral discussions between enlargement participants and WP4 coordination. The descriptions are organized by the enlargement participants on their own. A basic analysis was made by the WP4 coordination. Feedback of first pilots and enlargement was combined. The technical overview is written as documentation of the activities and for getting a better understanding through the implementation. The overview is written by the WP4 technical coordination. Partner contribution was envisaged but not available. The coordination with the pilots is also organized on bilateral and regular WP4 conference calls. The results are integrated into the task list. After alignment of the development activities the implementation issues are forwarded to this group and other issues are discussed bilaterally or forwarded to WP5 and WP7. There was no specific task force or group concentrating on a specific subtask. The results and feedbacks are discussed in an open approach within the whole WP4 group. There is no difference in requirements or priorities between amendments of enlargement participants or first pilots. The priority is based on the given timelines and available resources. Moreover all common procedures (e.g. QA) are used to align WP4 activities with SPOCS framework. 1.2 Relations to internal SPOCS environment The WP4 open modules are using results from WP1 to synchronize the information crossborder. Moreover the piloting feedback influenced the update of the modules and lead to changes in the usage of the scenarios. The update of this deliverable leads to the need of an update of the syndication and slight adjustments of the National Connectors (WP5). The dependencies are managed through conference calls and with WP1 through the combined development coordination. This deliverable is especially dependent on deliverable D4.6 describing the update of the schemes and specifications as well as guidelines. 13 1.3 Relations to external SPOCS environment The results of this deliverable are represented in the reference environment and can be used by external stakeholders. There is actually no standardization activity as previously the semantic tasks needs to produce first results and piloting feedback needs to show the usability of the concept. The basic solution is envisaged to be used also in different scenarios. The main idea of the update is also to switch to uncoupled catalogues and directories that can be combined for different objectives and projects. WP4 starts collaborating with specific member state projects. Industry stakeholders are mainly involved through the piloting activities using WP4 results to connect / enhance their products. 1.4 Quality management The quality management follows the described quality assurance process from WP7. The acceptance criteria are listed in the appendix. The quality assurance of the code is tested by the specific developers (see also section 4.6). The technical overview is checked by several internal and an external reviewer. 1.5 Risk Management The risks have to be assigned to the different subtasks within this deliverable. For the coding risks are discussed within the development team and forwarded to the WP and SPOCS coordination. Risks are often addressed and measures defined. Most of the measures did not lead to a complete successful handling. Impacts based on this are also addressed especially to the SPOCS coordination and pilots. The risks of this deliverable are listed in the appendix. The risks related to resources and development is also listed in the risk reports for WP7 and the executive board. Risks and problems are addressed by technical coordination through WP coordination up to SPOCS coordination. 14 2 Technical Overview This section gives an overview about the WP4 building block with the open modules / components and the dependency to the national infrastructure and WP1 syndication. It is based on the description of the scenarios within deliverable D4.2 “specifications”. The pilots will concentrate on the usage of syndication as the interoperability mechanism related to discussions with them. Thus the interoperability layer is not further developed until there is a specific request from pilots. The actual scenario for WP4 eservices is to query information through the search open module and to load information through transformation and to cross-border synchronizing them through WP1 syndication. The old scenario description of deliverable D4.4 is updated through this section and the obsoleted description attached in the Appendix F – Obsoleted Parts of Deliverable D4.4 for information purposes related to the evolution of the WP4 solution. The main purpose is to focus on syndication as interoperability mechanism, merge search and provision open module for simplifying communication with the national connectors and to skip the access open module as information is provided as Open Data. cmp SPOCS SPOCS MS A National Infrastructure WP4 eserv ices MS B WP1 syndication WP1 syndication WP4 eserv ices National Infrastructure Figure 1: WP4 Relations to National Infrastructure and WP1 Figure 1 shows the dependency of WP4 eservices to the national infrastructure and WP1 syndication. The national infrastructure is using WP4 eservices open modules to load and search the Meta Information Database (MIDB). The WP4 eservices open module is using the syndication to provide national information for other member states. The WP1 syndication open modules use the WP4 eservices open modules to integrate foreign information to the MIDB. The WP1 and WP4 modules are used in both directions. The national infrastructure manages to gather and provide the needed information within their central or decentral structures from Service Catalogues, eService Directories and other information sources. The invocation of the SPOCS open modules is done through the National Connector developed by each piloting member state integrated to their Point of Single Contact solution or a central instance handling the complete information management of this member state. The following sections describe the components and interfaces as well as the underlying information structures for the MIDB. The updated specification of the MIDB is described in the guidelines deliverable D4.6 as it concentrates on the semantic issues and the usage of the attributes in specific contexts. Keep in mind that the following sections give just a technical overview. There is also inline documentation provided with the WP4 eservices open modules. 15 2.1 Components This section describes the WP4 eservices open modules and their relations including the interfaces. WP4 eservices modules are related to WP1 for the syndication and to WP5 / piloting for the connection to the national infrastructure. The specific interfaces and methods / operations are described in the following sections. Figure 2 shows the three main parts search, transformation and midb access. The search is used for querying the MIDB to provide information about the services, eservices, organizations, documents and professions including their relations to the National Connector. This National Connector is requesting the information and then integrating the provided information to the Point of Single Contact solution. The search is using the midb access for querying the tables in the MIDB. The transformation is used for loading information to the MIDB through the midb access and invocating the syndication modules. The syndication modules are delivering information from foreign member states to the national MIDB instance. Search and Provision from previous descriptions are merged to simplify the connection with the National Connector. The Access is skipped as information is provided as Open Data. cmp WP4 eserv ices WP4 eservices WP4 transformation National Infrastructure WP1 syndication WP4 midb access WP4 search Figure 2: Inter-WP Relations 2.1.1 Search Figure 3 shows that the WP4 search open module is invoked by the National Connector of the Point of Single Contact solution. This National Connector invokes the operations of the SearchInterface realized through the SearchOM. Offered are operations for querying services and eservices based on the defined XML schema of the request. The request structure will evolve within the upcoming releases as well as the amount of offered operations always related to requirements of the pilots. The search is offered as web service. Future releases will separate more consequently between Java implementation and Web service implementation. 16 cmp WP4 search WP4 search «interface» SearchInterface National Infrastructure:: National Connector + + handleSearchErequest(RequestEservice) : List<AnswerEservice> handleSearchRequest(RequestService) : List<AnswerService> SearchOM WP4 midb access:: Client Figure 3: Overview WP4 Search Interface and Relations The SearchOM is invoking the Client class of the midb access to retrieve the needed information from the MIDB. The SearchOM is handling the extraction and building of the XML based requests and answers. 2.1.2 Transformation Figure 4 shows the invocation of the transformation module by the National Connector. The National Connector can invoke the Java interface or the Web service interface. Both interfaces are offering the same operations for loading and obsoleting service, eservice, organization, document, profession and equivalence information. The interfaces are realized through the components TransformationOM (Java interface implementation) and TransformationImpl (Web service interface implementation). The TransformationImpl is handling the WSDL and XSD based entities and operation and invokes the relevant operations within TransformationOM with the MIDB based entities. The TransformationOM is handling the MIDB based entities and invokes the relevant data access objects through the *Home classes. The *Home classes are handling the operations through the Hibernate persistence layer. 17 cmp WP4 transformation WP4 midb access:: DocHome WP4 transformation WP4 midb access:: Eserv iceHome Java API «interface» TransformationInterface + + + + + + + + + + + + loadDocument(Doc) : void loadEquivalence(String, String, String) : void loadEservice(Eservice) : void loadOrganization(Org) : void loadProfession(Prof) : void loadService(Service) : void obsoleteDocument(String) : void obsoleteEquivalece(String, String) : void obsoleteEservice(String) : void obsoleteOrganization(String) : void obsoleteProfession(String) : void obsoleteService(String) : void WP4 midb access:: OrgHome TransformationOM WP4 midb access:: ProfHome WP4 midb access:: Serv iceHome National Infrastructure:: National Connector WP4 midb access:: Equiv alenceHome Webservice «interface» Transformation + + + + + + + + + + + + loadDocument(Doc) : void loadEquivalence(String, String, String) : void loadEservice(Eservice) : void loadOrganization(Org) : void loadProfession(Prof) : void loadService(Service) : void obsoleteDocument(String) : void obsoleteEquivalence(String, String) : void obsoleteEservice(String) : void obsoleteOrganization(String) : void obsoleteProfession(String) : void obsoleteService(String) : void TransformationImpl Figure 4: Overview WP4 Transformation Interface and Relations 2.1.3 MIDB access Figure 5 shows as example the invocation of related data access classes by the ServiceHome class. Invoked are the text and all mapping objects between two entities. Simple mappings between entities are directly stored through the data access class. The *Home classes are also handling the change tracking. 18 cmp Serv iceHome SagencyHome SinterHome Serv iceHome SesHome StextHome NeeddocHome OutdocHome Figure 5: Overview WP4 MIDB Access (Example Service Entity) 2.1.4 Outlook The components and there relations will be further aligned to the practical needs of the pilots. This could include e.g. extension of functionality for search module. Moreover the components will be refactored related to separation of java interfaces and web services as well as harmonisation of naming and structuring classes and operations. Components and their functionality will be aligned with changes in the scenarios and communication with the National Connectors and / or WP1 syndication. Components might be changed or extended related to integration of another technology approach based on the results of the semantic task. 2.2 Information / Data Objects The section “Information / Data Objects” is taken from deliverable D4.4. It is only slightly adjusted. The update of the MIDB schema with the specific changes of attributes is described in deliverable D4.6. Based on the updated MIDB schema and the defined operations for the interfaces WSDLs and XSDs are defined and classes generated upon them as well as on the MIDB schema. The files are located in the resource folders and integrated into build and generation processes. 19 Figure 6 shows the information objects and their relations considered by WP4. They are Service, eService, Organization, (Process)Document and Profession. Service and eService are the main objects for retrieval. For the first piloting phase, the relations of the information objects are directly linked in the data model and schemes. Moreover Equivalence is shown as it has a direct dependency to the SPOCS scenario. Equivalence is described in section 2.2.1. class MIDB Profession Organization cross-border belongs to offers offers Serv ice Equiv alence cross-border eServ ice electronically operates cross-border needs produces Document Figure 6: Overview Core Objects of MIDB and Schemas For the update version of the data model and scheme, an uncoupling of the information objects is envisaged as this simplifies the complexity. The functionality will realise mechanisms to use uncoupled information objects based on reference with SPOCS identifiers. The uncoupling was realised for the XSD structure referenced by the transformation WSDL. Within the MIDB there are still direct references to ensure backward compatibility. For release 2.0 a complete uncoupling within the data structures and a linkage within the functionality of the modules is envisaged. Moreover for release 2.0, an assessment of further information objects is planned. Information objects can be split into several tables or classes to realise normalisation. Many-toMany associations are realised through junction tables. The association is actually directly implemented in the data model and XML scheme. For release 2.0 only SPOCS identifiers without internal identifiers and relations are envisaged. Furthermore, more detailed descriptions of information objects can be found in deliverable D4.2 and D4.6. Multilingualism is realised by establishing separated textual tables with one-to-many relations to the information object. Each textual table is associated with one language. The update uncoupled the direct association and replaced it with a referencing directly the ISO coding and offering an uncoupled codelist language table as shown in Figure 7. The update simplified the data model. Where necessary, navigation intelligence will be implemented by functionalities of the Open Modules. 20 class MultilingualUpdate Serv iceText Serv ice 1 1..* - Language Language: IDO639v3 - ISO639v3: varchar Configuration Set (External code lists) Figure 7: Multilingual Realisation (Update) Next to the information objects some further entities are stored in the data model as shown in Figure 8. The entities are uncoupled and could be externalised to a Configuration Set (CS) for separating content and internal functionality. The CS includes change (of national part) which is storing the version information for the information that needs to be syndicated. Moreover CS is storing Access and Routing which are necessary for the internal routing between the modules and the user verification for cross-border search requests. Access and routing are deprecated related to the changed usage of the interoperability framework as described before. Also the CS contains the code lists. The associations are uncoupled, but for some codes only referenced by internal identifiers. This will be changed with one of the next releases like done for language. class ConfigurationSet Access Routing Change Language DocumentType Status SPOCSAttributes Internal Functionality Code Lists Figure 8: Configuration Set 2.2.1 Equivalence Information Storage of equivalence information is not changed as there is so far no feedback from the piloting. Related to the semantic task and piloting feedback an update can be realised with one of the next releases. The loading of equivalence information is now directly possible through the transformation module. 21 Equivalence is stored based on information objects. Therefore always two identifiers are combined to be equivalent. The data model uses the SPOCS defined identifiers, but is not checking semantic correctness of equivalence. Thus the definition of equivalence between e.g. organization and document is possible. Open Modules need to verify the semantic correctness. Feedback of the pilots has to show whether more information, e.g. like for a thesaurus, is needed. Key question is for example whether an equivalence relation is bidirectional regarding the acceptance. Figure 9: Equivalence Information Equivalence stores the basic information about the equivalence of two information objects o id is the internal identifier for the MIDB equivalence table and primary key. As equivalence information is actually not supposed to be syndicated or exchanged a SPOCS identifier for the equivalence record is not necessary. Furthermore piloting will show whether more types of relation are needed (e.g. parent-child). o id1 is the SPOCS identifier of object 1. id1 should be the more common object (e.g. european or international identifier like NACE) o id2 is the SPOCS identifier of object 2. id2 should be the more specific object. o remarks can be used for further information on the equivalence relation defined by id1 and id2. The equivalence relation is bidirectional for technical purposes. It is recommended to set the more common identifier as id1. If two identifiers of an equivalence relation have the same level the id1 could be the one of the hosting country which established the equivalence the first time. More information on naming scheme for SPOCS identifiers and equivalence is described in D4.3 “guidelines” Section 3.1 and 3.4. The following table shows one example of equivalence for real estate agent (EU to GR) and one example of equivalence for birth certificate (EU to GR). ID_1 ID_2 SPOCS:Prof:REA:EU.NACE:L68.3.1 SPOCS:Prof:REA:GR.Ermis:6831 SPOCS:Doc:Bi:EU.SPOCS:BiC SPOCS:Doc:Bi:GR.Ermis:BiDoc1 Table 1: Examples for Equvialence 22 2.2.2 Change Information Change information represents the versioning of the content of the MIDB. Versioning is a requirement from WP1 and scenarios as the retrieval of content for a specific timestamp and with a specific version is needed. Figure 10 shows the Service with its object and the separated textual part. Versioning is based on information object level and not textual parts. This means every change in a text or other associated table leads to an update of the complete entity. Service has two attributes describing the actual version: version start number (vstart) and version end number (vend). This allows marking a record when it was updated by another one. The actual record has vend “null”. The textual part references the composite primary key of the entity. The text part should be unique based on the composite primary key of the entity and the iso code for the language (iso639v3). In further releases the actual internal identifier could be exchanged by usage of a composite key based on the composite primary key of the entity and the iso code. Update, insert or delete of information to the MIDB needs to reflect the change tracking. The difference of origin is marked by the origin attribute. The change table stores the transactions related to an entity (objectid). The information can be retrieved directly from the records, but the change table increases performance as only one simple request is necessary. Thus Change includes the objectid which is a SPOCS identifier, vstart and vend as well as a timestamp. Remarks are optional. Further information on change tracking and an example is described in Section 3.2. Figure 10: Change Information (Update) 23 The above mentioned and in Figure 10 shown tables have the following parameters: Object / Entity table (e.g. Service) attributes (relevant extract): o id stores the SPOCS identifier and is primary key composite with vstart. o vstart stores the version number the record starts with and is primary key. o vend stores the version number the record ends with. If it is null than the record is the actual one. o origin indicates the origin of the information based on national (N), foreign (F) or local (L). The origin level is especially needed for the syndication as national information is syndicated to others and foreign information is syndicated by others. Textual table (e.g. Stext for service texts) attributes (relevant extract): o id stores the internal identifier and is primary key. o service is the referenced SPOCS identifier of the entity (here service). o servicevstart is the vstart of the referenced entity (here service). o iso639v3 is the three character alphanumeric code for languages. Change table o id stores the internal identifier and is primary key. o objectid represents the SPOCS identifier of an information object. o vstart stores the version number the record starts with. o vend stores the former version number which is now obsolete. o timestamp indicates the date and time when a version was created. o remarks are additional information related to the change tracking. 2.2.3 Outlook The information / data objects are based on the specifications and the schemas (see deliverable D4.2 / D4.6). As far as there are updates based on piloting experience or results from semantic task the underlying schemas will be updated. The core approach as described in these sections seems to be suitable and needs actually no update. Equivalence information might be represented in a different way if the results of the semantic task show a different structure and definition. Change tracking might be changed or skipped based on the experience of the pilots and impact analysis for other WPs, esp. WP1. 24 3 Technical Decisions This section describes the main technical decisions made during the development task. The section concentrates on integration, change tracking, MIDB storage technology and routing. Furthermore technical decisions about used technologies and tools are described in the Reference Environment1 especially the technical wiki. This section is mainly copied from the old deliverable D4.4 where the decision has not changed, thus for integration, change tracking and MIDB technology. The section routing is shifted as obsoleted part to the “Appendix F – Obsoleted Parts of Deliverable D4.4” as the usage of the interoperability mechanism “interoperability layer” is deprecated to usage of the syndication as main mechanism. There is no final decision about changing the change tracking mechanism, thus there is actually no change on the description. Change tracking was slightly adjusted to different understandings related to recording of updates, the usage of next internal number instead of always 1 for insert. Change tracking was originally integrated as WP1 focused on this requirement. The piloting will show whether a change tracking is really needed or whether the original requirement will be changed like for WP1 to store within the MIDB only actual information and change tracking can become obsolete at all. MIDB technology decision will be further investigated within the semantic task. 3.1 Data Sources and Integration This section reflects the technical decisions and recommendations for the integration and connected data sources of the national infrastructure. The decisions from this subsection are especially relevant for the information management related to the national infrastructure and the role of the National Connectors. 3.1.1 Frontend vs. Backend Integration Integration can be realized on different levels. This section marks the difference between frontend and backend integration as it is relevant for the information flow and the functionality of the Open Modules. Frontend integration means that the integration functionality is located between the portal or solution and the application. Within SPOCS WP4 this would mean that the integration point for the information is located directly at the PSC portal or solution. Based on the defined architecture, the National Connectors are the integration point between PSC and SPOCS common solution. The advantage is that the solution can have various presentation layers. Backend integration means that the user is working only with one application and integration is realised behind this application. The application is requesting functionality of other applications. Within SPOCS WP4 the Open Modules of the Interoperability Framework are backend integration to the NCs and PSC solution. The advantage is that the existing applications with their functionality can be used. The user of the portal or solution is not recognizing that different applications, and for SPOCS in different member states, are connected through the WP4 interoperability framework. 1 https://dev.spocs.bos-asp.eu 25 The SPOCS WP4 solution with the common specifications and Open Modules is mainly a backend integration using asynchronous communication. Results from SPOCS WP4 interoperability mechanisms are given to solutions or portals of Points of Single Contact. But the results can also be used directly for presentation to the end-user, e.g. giving the XML answer directly to the Service Provider maybe as part of a more complex information package or for a further usage within a solution of the Service Provider. For the common SPOCS understanding NCs are representing the frontend integration point. 3.1.2 Quality Criteria Information Retrieval and Data Source Selection This Subsection marks some criteria that are relevant for information retrieval related to technical decisions and especially the data sources. Thus this Subsection mainly reflects the national infrastructure, which is the information source for SPOCS. The listed criteria are not a comprehensive list, but reflect the main criteria discussed with member states. Moreover the criteria have a strong dependency to the recommendations within deliverable D4.3. The used data sources should be stable and have a long term perspective. The stability is a main criteria as SPOCS is intend to support automated process chains and a missing source will lead to failures for the processing. Moreover the stability includes not only the availability, but also the stability of the structure. Thus the defined information model needs to be sustainable. The provided information should be retrieved from official data sources that are storing quality approved and reliable information. This is especially relevant for retrieving legal information and data used within automated processes. The usage of community or industry based information is not restricted, but needs quality mechanisms as established for the official ones. The provided information should include traceability, thus that a user knows the original source and the information generation path. Information should be collected from the original source or from an official centrally organized data source. The provided information has to use common code lists, thus no complex mapping or conversion is necessary and the delivered information has always the same level of quality. Provided information should be based on simple structures like directories or simple databases. This allows a multiple usage of the content in different contexts and simplifies maintenance as well as information management processes and responsibilities. At least provided information should reflect the recommendations from the deliverable D4.3, especially about how to write descriptions or models. 3.2 Change Tracking Change Tracking concentrates on the decision about realisation of methods for managing changes of the records leading to the need for documentation. The following Subsection describes strategies as options for realising change tracking, the criteria for selecting an approach, the decision for an approach and an example. The change tracking strategies, also known as Change Data Capture (CDC), are describing the methods and patterns of tracking the changes of data and therefore are part of the technical decision for change management within WP4 IF especially the MIDB. Solutions often combine the following approaches. The decision is concentrating on the seven strategies: 26 Replication-based is realized by writing every change to a table or list Trigger-based is a method where every manipulation leads to an action / event Time-based is realized by attaching timestamps to every record and retrieve changes for the defined intervals Version-based is defining version numbers which increase for every change. A reference table stores the occurrence of changes. Status-based defines a status of a record and changes result in changes of the status value. Log-based is a method where every manipulation is logged into a file and changes are retrieved based on the logged meta information Snapshot-based is realized by defining a timestamp and make a copy of all information at this timestamp, changes between two snapshots can be assessed by comparison (delta) Key criteria for the decision are the dependencies to other WPs and their methods including the requirements from Member States as well as the implementation effort and sustainability regarding the usage of WP4 IF. Another core criterion is the level where changes are tracked. Possible levels are the full MIDB, a table of an information object (e.g. service), a record of an information object or the supporting textual table (e.g. service text). SPOCS concentrates on retrieval of information objects which represent core information blocks, e.g. service, eService or organization. This is actually also decided for the usage of SPOCS identifiers. If an extension of the SPOCS identifiers to the textual elements is planned, a change of the level for versioning would be interesting. For versioning see also Section 2.2.2. WP1 requires snapshot mechanism for major releases (full information). Minor changes are handled by fragments (differential updates with respect to another fragment or snapshot). Each change of a record (fragment) is stored in the MIDB. Snapshot and fragment mechanisms are described in deliverable D1.4. The technical decision realizes the change tracking as described in 2.2.2.WP4 is using a combination of timestamps, version numbers and snapshots. Transformation module and syndication interface are handling the setting of the attributes for the specific methods. Actual situation The realized way to implement a history with snapshots and fragments in the database is the use of two version columns in the object table. These columns are called “VersionStart” (vstart) and “VersionEnd” (vend) indicating from which version to which version the data in that row is valid. The “Change” table supports the identification of loading transactions (insert, update, delete) related to timestamps. An example of a regular data table is Table 2. SPOCS ServiceID Name Fee VersionStart VersionEnd SPOCS:Service:REA:GR.Ermis:12345 Service REA in GR 10 1 2 SPOCS:Service:REA:GR.Ermis:12345 Service REA in GR 12 2 null Service Bi in DE 50 1 2 SPOCS:Service:Bi:DE.Leika:67890 27 Table 2: Content table with version numbers A corresponding change table is Table 3. ObjectID VersionStart VersionEnd TimeStamp 1 null 16.02.2011 18:07 UTC+2 1 null 17.02.2011 09:02 CET 2 1 18.02.2011 20:54 UTC+2 null 1 19.02.2011 06:36 CET SPOCS:Service:REA:GR.Ermis:12345 SPOCS:Service:Bi:DE.Leika:67890 SPOCS:Service:REA:GR.Ermis:12345 SPOCS:Service:Bi:DE.Leika:67890 Table 3: Change table for versioning “Service REA in GR” was inserted at the 16th. “Service Bi in DE” was inserted at the 17th.” “Service REA in GR” was updated on the 18th. regarding the fee. “Service Bi in DE” was deleted at the 19th.” By selecting the records with a timestamp before the given datetime, change table will present the result set. This set has to be minimized by all previous records of an objectid with lower vstart (skipping earlier versions of the update) and minimized by all previous records of an objectid, if vstart is set to null (object deleted). The result produces the snapshot at the specific time. vend can be used for verification of status / snapshot calculation. Moreover it can be used to check the integrity related to duplicates and missing version numbers. The following table shows the status of the regular table for the 17.02.2011 10:00 CET. SPOCS ServiceID SPOCS:Service:REA:GR.Ermis:12345 SPOCS:Service:Bi:DE.Leika:67890 Name Fee Service REA in GR 10 Service Bi in DE 50 The following table shows the status of the regular table for the 18.02.2011 21:00 UTC+2. SPOCS ServiceID SPOCS:Service:REA:GR.Ermis:12345 SPOCS:Service:Bi:DE.Leika:67890 Name Fee Service REA in GR 12 Service Bi in DE 50 The following table shows the status of the regular table for the 19.02.2011 8:00 CET. SPOCS ServiceID SPOCS:Service:REA:GR.Ermis:12345 Name Fee Service REA in GR 12 Table 4: Content tables with different version status Data manipulation use cases Insert of a new object is realised by inserting a new row to the data table with the next free vstart number. Also a new row within the change table with the objectid and this vstart and vend = null and timestamp = time of the change has to be inserted. 28 Update is realised by selecting the actual row of the object (vend = null) and setting vend = Vstart+1. A new row with the update is inserted into the data table with setting vstart = vend of previous row and vend = null. Also a new row within the change table with the objectid and vstart and vend (vstart of old record) and time is integrated. Delete is realised by selecting the actual row of the data table and setting vend to vstart+1. Also the change table gets a new record with objectid, vstart = null, vend = vstart of the old record and the timestamp. Note that this mechanism does not allow for high-throughput independent sequential updates on the database as the change table becomes a bottleneck. However, for the purposes of SPOCS this is not a problem as the data in the MIDB is fairly static. In this scheme, obsolete data can be removed from the MIDB easily based on the version number attributes. Semantic and deployment support task will check whether the change table and the change tracking at all can be skipped. This solution would be useful to simplify data model complexity. Moreover semantic and deployment support task needs to assess data cleaning, data scrubbing and data auditing strategies and methods related to the SPOCS needs. 3.3 MIDB Technology and Query Language MIDB Technology and Query Language are concentrating on three main options: Relational solution and SQL, XML and XQuery / XPath, Semantic Approach with RDF / RDFS / OWL and SparQL. The WP4 group, especially the ones related to MIDB development, have discussed the different solutions and possible implementation technologies. Criteria are based on implementation effort, operational aspects, sustainability of solution and technical criteria like performance. The WP4 group had no final decision as the interpretation and analysis showed that the users and developers within the different member states had different requirements. Some of them are mandatory based on the political and legal bindings related to IT architecture and management, e.g. no usage of Semantic Technologies or Open Source software. Some of the criteria are not further interpreted as the project framework is defining requirements and objectives, e.g. development of Open Modules. Moreover some of the criteria are prioritised for realisation of release 1 (old SPOCS planning) and some are shifted to update of open modules and release 2 (onboarding). Moreover resource difficulties arise with the implication that advanced solutions like semantic approaches needed to be postponed regarding the establishment of further experience in semantic technology. The relational solution is a well-established solution in most member states. The operators know the technology very well and can easily adjust their implementations. Moreover relational solutions are widely accepted by legal frameworks and have established persistence and transaction functionalities. Nevertheless relational solutions are mostly static and dependent on 29 the defined data model. For relational database MySQL version 5.12 is used. The DB scheme can be found in the appendix and is based on the defined specification in deliverable D4.2. XML technology is widely used for information exchange and close to the defined message formats. Necessary transformation needs less effort as different transformation options can be realised. Moreover semantic information is, by the scheme, well defined. XML technology is not widely used for storage of information. Semantic technology is not widely established. Persistence solutions are very rare, especially in the implementation of open source technology. The approach follows a more dynamic solution and further focus onto semantic interoperability. For these criteria, semantic technology allows the realisation of most of the objectives for WP4. For the semantic storage of information different solutions are investigated. If semantic solutions are realised, SPOCS WP4 will concentrate on Jena framework3 and persistence realisation with SDB4. It supports storage of RDF in relational DBs and SparQL. As a result, WP4 is realising a relational solution based on MIDB and internal SQL queries. Results from MIDB will be provided by Java objects and transformed to XML format for Provision OM. Syndication will handle RDF/XML (see deliverable D1.3 and D1.4). RDF as MIDB technology will be integrated for the second phase and with the support of onboarding tasks about semantic concept. Finally, WP4 has to support all technologies including transformation between them. Transformation in the context of RDF is complex and needed especially for syndication. Release 2 will align transformation of XML, relational DB and RDF within transformation module. Another discussed option, but with no actual result, is the usage of TSL approach for publishing the service and eService information. Actually this solution is not verified and completely assessed as it is mainly described for Certificate Authority services. Extended usage is discussed within WP3, but needs further examination. Framework solutions like UDDI etc. are integrated with their ideas, but with limitation to practical solutions and needed effort it is actually not further assessed. 2 MySQL – http://www.mysql.com 3 Jena Framework – http://jena.sourceforge.net 4 SDB Persistence for Jena - http://openjena.org/wiki/SDB 30 4 Implementation This section describes conventions and recommendations for the implementation. This and the next section are requested by several partners developing national connectors and needed to understand the coding and their frameworks. Thus the following parts are concentrating on the frameworks and the specified conventions for the development. This section is new related to deliverable D4.4. Some lines of the former section 4 “Implementation” where used as basis for following parts like the dependency management, programming conventions, logging and testing. Others are realigned to the updated specification part in deliverable D4.6. 4.1 Development This section represents the development framework with the used development environment and the programming conventions. It includes also recommendations for inline documentation. 4.1.1 Environment The developer can choose an appropriate development environment. As recommendation the developer should use Eclipse5 as most of the SPOCS WP4 developers are using this environment and support is easier using the same. The developers have mainly used the Helios version of Eclipse. The environment needs to be enabled to communicate with the reference environment6, especially the SVN. Therefore the developer has to setup the connection and plugins as recommended in the development wiki of the reference environment.7 The environment needs to be set to UTF-8 to support multilingualism in coding. 4.1.2 Programming Conventions The SPOCS WP4 application uses Java 1.6 as programming language. The code has to fulfil the standard coding conventions thus the code becomes easily readable and maintainable. This includes e.g. appropriate length of classes and methods, comprehensible inline documentation, no usage of exceptions to control the application process, no empty catch and else blocks, grouping of statements and methods. 4.1.3 Code / Inline Documentation All classes, except generated ones from an automatic build, must include documentation. The documentation consists of: one common header based on the project and building block information, one class description detailing the functionality of the class, one description for each constant or property of the class, one description for each method including constructors. 5 http://www.eclipse.org 6 See https://svnext.bos-bremen.de/SPOCS 7 See https://dev.spocs.bos-asp.eu/wiki/ 31 The documentation has to be in comprehensible English and should use HTML tags for structuring the documentation. The documentation must be based on Javadoc8 including the usage of the common annotations. The developer can use tools or plugins like Jautodoc9 for support and generation of documentation if the tools / plugins are configured to produce comprehensible documentation. Mainly the developer has to improve the generated documentation. Class documentation must explain the objective of the class and if needed relations to other classes. Method documentation must explain the parameters, results and main functionality. The developer can use specific comments related to single or groups of statements. This should be done only for improving the readability. The format has to be as defined in the default Eclipse configuration, especially the page margin is a must-have. 4.1.4 Status and Outlook The code is using Java 1.6, but not all options of this state-of-the-art version are used, especially the annotation options. There should be improvements like using more annotations to improve code clarity and simplify coding at all. Moreover the code clarity needs to be improved related to different objectives also mentioned in some of the following sections. The code needs to be checked and aligned for the compliance to the programming conventions. Inline documentation is done but needs to be aligned to the mentioned conventions and needs to be improved to fulfil better readability and comprehensibility. This should include the formatting of the code. 4.2 Dependency Management The WP4 modules are using several external frameworks which need to be managed. Thus WP4 is using the Maven mechanism and defines dependencies. The following section shortly describes the main aspects using the mechanism and the structure of the project. 4.2.1 Mechanism The WP4 modules are based on Maven.10 WP4 is using at least Maven with version 2.2.1. Thus each project within the building block eServices defines a project object model (pom) file used to support the project in the full lifecycle. This includes generation of code, compilation, building and deployment. The external dependencies are capsulated through repositories and Nexus server. The nexus servers are mirrors used as interfaces and APIs for the dependency management. Referenced are the main repositories of Maven11, Codehaus12, Atlassian13 and JBoss14. SPOCS is offering 8 http://java.sun.com/j2se/javadoc 9 http://www.jautodoc.sourceforge.net 10 http://maven.apache.org 11 http://search.maven.org 32 also a Nexus server within the reference environment to offer the own packages as well as main 3rd party libraries.15 Repositories are referenced in the pom.xml under repositories and pluginRepositories if they are needed in a specific project or in the common part of a building block if they are needed often. At least the SPOCS nexus is referenced in the common pom.xml as it is used for the distribution management. The developers are using local settings.xml files for their Maven repositories. Inherited libraries are exported from the external repositories to the local one. For the development Maven and related plugins require to run a full java development kit (JDK) and not only the runtime environment (JRE). The environment needs to be configured to use the JDK directly, e.g. through extension of the environment configuration file (like eclipse.ini). For the deployment the administrator and developer in the national infrastructure can use the libraries directly from the nexus. Therefore an automatic release process would be needed, best through a continuous integration tool like Hudson. 4.2.2 Maven Project Object Model Each project defines a project object model file (pom.xml). Based on the project scope the project is packaged as pom (only management), jar (libraries and java apps) or war (web apps) project. The pom defines the groupId, artefactId, version and parent information to resolve the identification of the project within the nexus and dependency hierarchy. pom projects can be used as parents. The path in the folder structure of the SVN needs to be set to appropriate level, thus for parent projects one folder above. The pom projects define properties for the encoding (UTF-8), the SPOCS nexus, the SPOCS SVN and the child projects (modules). Moreover they define the path to SVN16 /source code management - SCM), connection parameter to the issue management (JIRA)17 and the continuous integration (Hudson)18. Main task of the pom files are the definition of dependencies to libraries and projects (external and internal) as well as the usage of plugins to support the lifecycle process, especially maven plugins19. The pom projects are defining the common dependencies, mainly under dependencyManagement and the plugins under pluginManagement. The child projects can use them as managed dependencies and plugins thus they do not need to address further properties like version etc. At least they have to integrate used libraries and projects with their groupId and 12 https://nexus.codehaus.org 13 https://maven.atlassian.com 14 https://repository.jboss.org/nexus 15 https://dev.spocs.bos-asp.eu/nexus 16 http://subversion.apache.org 17 http://www.atlassian.com/software/jira 18 http://hudson-ci.org and http://hudson.java.net 19 http://maven.apache.org/plugins/ 33 artifactId. The used dependencies and plugins can be extended with scope, configuration etc. to be used within lifecycle activities like definition of output package for generated classes. Some dependencies and plugins are often used like junit for the testing or javadoc plugin for the generation of documentation based on the inline comments. They are recommended to be managed by the parent projects. 4.2.3 WP4 eServices Building Block Project Structure The eServices building block provided by WP4 defined the following project structure. eservices-overall – common project managing the main objectives o eservices-midb-access – project for accessing the MIDB including DB based entities and data access objects as well as all resources for setting up and running the MIDB, generation of entities through Hibernate Tools20, SQL code development and MIDB test management through MySQL Workbench21 o eservices-transformation – project for loading information to the MIDB o eservices-search – project for querying information within the MIDB and providing it to the national connectors o eservices-xml-model – project for XML based actions including the generated entities, generation through JAX-B22 o eservices-db-xml-conversion – project for transforming between DB and XML entities o eservices-routing – project offering routing information between different instances of the SPOCS WP4 modules o eservices-integration-test – project offering testing for the usage of integrated modules and projects Subprojects can define own subprojects like for example for the transformation. eservices-transformation – common project managing the transformation objectives o eservices-transformation-lib – interface project for the java connection to the midb access and syndication (core part of transformationOM) o eservices-transformation-ws – webservice offering the connection to the transformationOM o eservices-transformation-wslib – library of the generated WSDL and XSD based entities to be used within the webservice, generation through CXF23 and JBossWS / JAX-WS24 as well as JAX-B25 20 http://www.hibernate.org/subprojects/tools.html 21 http://www.mysql.de/products/workbench/ 22 http://jaxb.java.net/ 23 http://cxf.apache.org/ 24 http://www.jboss.org/jbossws 25 http://jaxb.java.net/ 34 It is planned to refactor the project structure after having an updated architecture and improved building and generation processes. For example the xml-model project could be included into the wslib projects and the db-xml-conversion to the lib projects. Some of the projects seem to be not used in future versions like the routing as the architecture changed. Testing should be included into the specific projects. Project names are using minus character where packages are using dots. Each project uses the maven main source folder structure and within the defined package naming (see 4.3.3). Thus the main folder structure based on the project scope can contain the following: src/main/java – java code src/main/resources – resources needed for the operation src/test/java – test code for the java code target/wsconsume/java – generated code, here e.g. for the wslib Further folders can be defined, e.g. for documentation, configuration, resources or testing if they are not used operationally. pom projects do not contain any source folder only the submodules (child projects) and the pom.xml file. 4.2.4 Status and Outlook The WP4 projects are defined and structured aligned to the actual status of the architectural decisions and based on the described mechanism. They have to be aligned within future releases. This includes the alignment of the dependencies and used plugins like the usage of one wslib generation plugin and the definition of versions in the management instead within the specific dependencies. Moreover the lifecycle processes are used on a basic level. This will be extended related to more automatisation on build / generation, testing and deployment / distribution / release. The usage of different repositories has to be aligned based on the SPOCS nexus. The central nexus needs to be part of the sustainability planning as the storage of code within only an external forge or repository might not allow maintenance of 3rd party dependencies. Moreover a standard pom for all SPOCS building blocks and a common naming for folders and projects need to be further aligned. The common pom should manage the main dependencies and plugins to simplify maintenance. Further attributes should be included like categories or developers to increase quality of code awareness outside SPOCS. The main objectives in this context are common conventions and mechanisms for inline documentation including the generation of documentation that can be navigated from stakeholders. Moreover documentation has to be increased on the scope of manuals and hand-outs for architects and executives. Another objective has to be the discussion of a test and / or production solution. Several times the setup of a central instance for at least testing was discussed, but not used in a good manner. Also the central instance could be a mirror to increase availability and performance. This has to be discussed within sustainability actions and underlined with use cases and scenarios. 35 4.3 Project Versioning and Conventions The versioning represents a numbering schema for addressing different states of the application or the code. Moreover this section is detailing some SPOCS WP4 wide technical conventions like namespaces. 4.3.1 Versioning Schema The versioning realized in a standard way based on the following structure: <MajorVersion> . <MinorVersion> . <DeveloperVersion> . <BuildVersion> - <Qualifier> All attributes are numbers except the qualifier which is a string. The versioning has to realize at least the major version. The versioning needs to connect to the common release plan. Every version number of a component has to be aligned with the versioning to the release versions of the related building block. The major version represents a major release with major new and updated functionality. A major version does not need to be backward compatible. The minor version represents a minor release with small new functionality. A minor version needs to be backward compatible. A developer version is an update of a minor release related to fixed bugs and errors. A build version is a specific developer version related to a specific build time. If necessary there can be automatic daily builds on the code thus that always a daily fresh build of the code is available. The qualifier is a code for defining the status of a build. Different qualifiers are allowed to related versioning standards. At least the SNAPSHOT qualifier has to be used to mark development builds of the code used only by developers. Other qualifiers like CR, GA, ALPHA or BETA for pre-releases etc. with their specific status in the development and release lifecycle have to be defined by the common SPOCS release plan. 4.3.2 SVN For the versioning of the code SVN is used. The SVN is available through the reference environment.26 SVN offers a revision number for retrieving a specific state of the code. The revision number is not related to the versioning itself. Within the SVN the code for SPOCS WP4 is located under AllWPImplementation in the SPOCS_WP4_OMs subfolder. The trunk is used for the development code, branches can be used for diverting development activities and the releases are available under tags with their specific version numbers. Every code and folders generated by the build process as well as local settings have to be set to ignore within SVN. 26 See https://svnext.bos-bremen.de/SPOCS 36 4.3.3 Namespaces All WP4 projects are starting with “eservices-“. SPOCS project defined a generic namespace for the code and the packages. The packages within all SPOCS modules and components start with “eu.spocseu” followed by the building block and the subprojects or submodules. For WP4 the following main packages are available: eu.spocseu.eservices eu.spocseu.eservices.midb eu.spocseu.eservices.transformation eu.spocseu.eservices.search The XML namespace should start with “http://example-domain.toplevel/eservices” where the “example-domain.toplevel” is exchanged by the locally used namespace. For the development the namespace is set to “http://www.eu-spocs.eu/eservices/ns/midb”. The namespace can be differentiated by subfolders for modules or components. 4.3.4 Status and Outlook The development is using the versioning schema and the SVN as described. For future versions and the support phase a more detailed usage is envisaged. There is actually no regular and especially no daily build of the code as the development is still making major changes. Thus daily builds would not be without errors in code and dependencies. Also there is actually no automatic release and build process through Hudson (continuous integration). Moreover a clear picture of package naming and namespaces will arise during the piloting phase and the deployment within the national infrastructures. The naming for SPOCS common packages will be aligned in upcoming versions. 4.4 Logging The logging stores states of the application at a specific position in the programming code. It can be enriched by information of used objects and variables. Within the context of SPOCS WP4 logging is used for the development and for the maintenance to retrieve bugs and errors within the code. 4.4.1 Mechanism and Conventions An output through System.out is not allowed, especially for exceptions and errors including the stack trace. A logging framework has to be used. The logging is realised by the Simple Logging Facade for Java (SLF4J) 27 version 1.6.1. The logging framework is defined as dependency within the Maven pom file. It refers to slf4j-api and slf4j-log4j12. 27 37 See http://www.slf4j.org The logging properties are stored in the log4j.properties file related to the defined logging levels. The file is always located in the root of the resource folder. The logging code lines are located within the specific methods. Generated log statements like within the hibernate need to be refactored to slf4j conformity. The logger statement is the first code line within a class to define a logger object based on the class. 4.4.2 Logging Levels The following levels are defined for the logging: trace – for following the application process debug – information for the development info – information for the operation of the application warn – for bugs and errors without impact to the functionality error – for bugs and errors with impact to the functionality 4.4.3 Dependency to Monitoring The logging should be used for monitoring the usage of the application. This is important for maintaining the application on a technical level but also for improving the sustainability of the architecture and for the business objectives. 4.4.4 Status and Outlook The logging as described before is not realized in all classes and is not verified through the correct usage related to the mentioned conventions and levels. The logging needs to be improved until the end of the project to fulfil completely the mentioned conventions and levels within every line of code. The logging is actually not used for logging monitoring information on business objectives as they are not defined until now in the piloting and sustainability documentations. Moreover based on the monitoring concept and with respect to the security and privacy constraints the usage of logging for the monitoring should be used until the end of the project. 4.5 Error Handling and Exceptions The modules must send exceptions and handle errors. Therefore exceptions have to be defined and errors to be handled. 4.5.1 Mechanism The modules are not defining exceptions for used external frameworks, but they still will be thrown if they arise. External exception can be thrown e.g. by the runtime environment (virtual machine), Hibernate (persistence to MIDB) and if the web services are used by the SOAP, Webservice or HTTP stack. SPOCS is defining application exceptions for his own scope. The exceptions are focusing on verification of parameters with checking for null, empty, semantically wrong (not fulfilling naming 38 schema) and referenced entities not registered (for uncoupled entities) or multiple entities registered (MIDB corrupt / versioning corrupt). Errors that are not handled by exceptions should be thrown only if fatal problems arise. They have to be logged with error logging level. 4.5.2 Fault Conventions The SPOCS application exceptions / faults follow a common structure. They extend the Java Exception class and define code, description and the current time. The code is defined in an exception code list (see C.1 Exception codes). The SPOCS application exception is used in the Java interfaces and libraries. For the web services a XML based exception with the same structure is defined. The web services will transform the SPOCS application exceptions into their structure. 4.5.3 Status and Outlook The WP4 modules are using the exception mechanism and error logging. The usage needs to be improved by aligning the different codes and by including further exception handling within the modules. Where possible the exceptions should be defined and thrown by capsulated classes like the UpdateChecker. 4.6 Testing and Quality Assurance The code must be tested by the developers and a testing team. The developers are realizing unit tests and the testing team is checking the integration between the modules and building blocks (for WP4 especially with WP1). 4.6.1 Mechanism and Test Methods External frameworks like junit28 and testng29 are used for testing. Each developer defines test classes in the src/test folders with appropriate test data. Moreover for the integration test a specific project is defined to run the test between different modules and building blocks. 4.6.2 Test Models, Cases and Conventions The test data needs to be as realistic as possible, but also needs to be identifiable as test data. The test cases should reflect at least all exception handlings and the correct operation. Test cases can be consolidated to one test case if constraints are defined (e.g. successful obsoleting is only possible if correct data is already in the MIDB). 28 http://www.junit.org 29 http://testng.org 39 4.6.3 Test Automatisation The tests need to be integrated into the build and deployment process. For the development stage they might be skipped. For releases they have to be in operation. Thus the tests cannot be dependent on external configuration like existing data records in the MIDB. But they can be dependent on the configuration for setting up the solution. 4.6.4 Test Results Presentation Test results have to be represented to monitor the activities of the development. This can be integrated into the Hudson monitoring but should also reflect offline documentation. 4.6.5 Sonar and Quality Assurance The quality of code is important for the sustainability of the modules. Therefore a quality assurance mechanism is established. This includes manual checks of the code as well as the usage of Sonar.30 The quality assurance reflects the chosen architecture, coding rules, comments / inline documentation and the unit testing. Results have to be shown online related to the reference environment (integrated into continuous integration / Hudson) as well as within offline documentation. 4.6.6 Status and Outlook The testing is realized only on a basic approach with some relevant unit and integration tests between WP1 and WP4. Simple test data is defined by the developers for their unit testing. The unit and integration testing as well as the test cases and test data need to be improved. Moreover the automatisation of testing needs to be integrated into the lifecycle process. Also the quality check using, e.g. Sonar, needs to be setup integrated into a complete continuous integration. 30 http://www.sonarsource.org/ 40 5 Distribution and Change Management This section describes how the WP4 results are distributed to the pilots and how their feedback is integrated into the technical work. Therefore this section builds on the main approach of the previous section, the description of the reference environment and the change management plan. The description is a new section related to the deliverable D4.4. 5.1 Deployment for the Pilots The results of the WP4 building blocks are automatically build as jar and war files by the specific Maven lifecycle process. These files are distributed to the reference environment within the SVN and Nexus. The pilots can integrate the results as external dependencies / packages to their national connector implementation. If they are implementing their national connectors they can check out the projects as maven projects and the build process generates all needed classes. Based on the used results the pilots have to configure the settings of the MIDB connection to their local MIDB within the midb-access projects hibernate configuration. In the future this configuration will be aligned across the modules and checked for update to application contexts and usage of JPA.31 This requires the usage of a managed application server including JNDI32 references. Moreover they can align the logging settings. The pilots can use the Java interfaces (lib projects) or the web services for communication between national connector and WP4 modules. The national connectors themselves need to connect with the national infrastructure. Therefore the pilots can define mirrors and / or wrappers to connect between national infrastructure and WP4 modules. The national connectors are transforming the content to the SPOCS common schema used in the WP4 modules. The pilots need to reconfigure the address of the web services and if needed of the target namespaces if they are establishing web services in their environment based on the SPOCS offered solution. The XML based schema for the information based on the common specification does not need to be reconfigured. WP4 gives deployment best practices and guidelines within the next releases based on the experience of the first and second piloting wave. 5.2 Release Management This section is related to the described release plans in the change management (section 3). The following text describes the planned activities for the WP4 releases. In the SPOCS context a releases is a given package of code as a complete bundle for the specific building block. SPOCS releases are only focusing on common code and not on national implementations and connectors. WP4 plans for major, minor and update releases. The major release includes major new and updated functionality, but also cannot assure to be backward compatible. The minor releases include only new functionality and improvements to the internal code. The updates are focusing on solving bugs and errors. There can be further internal builds and updates without releases. 31 http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html 32 http://www.oracle.com/technetwork/java/jndi/ 41 WP4 plans the following releases: Release 1.0 (May 2011) – includes the basic functionality to load, transform, search and provide information. Release 1.1 (June 2011) – includes the dependency to the syndication of information between pilots. Release 1.2 (August 2011) – includes the merged search and provision based on the new architecture and the additional / updated functions for the extended data model. Release 1.5 (September 2011) – includes improvements in project structure, error and exception handling, documentation, testing and additional exchange of equivalence information. Release 2.0 (March 2012) – includes all feedback of pilots and the results of the semantics task impacting to a major update of underlying data schema and maybe used technology. There might be further releases between the planned ones to solve updated dependencies to other building blocks or realized change requests of the pilots. Release 2.0 is not required to be piloted but recommended to upgrade at least with the end of the project as this major release includes all feedback of the pilots and work within the semantic task. Further information is described in the change management plan. 5.3 Change Management The change management section describes the process how change requests are managed. Before the complete establishment of the procedure as described in the change management plan (section 2) issues and feedback was discussed in conference calls and listed in a document whit defined tasks and assignment to partners. The list (see Appendix E – Task list before WP1 / WP4 scrum) will not further used. Results are integrated into the aligned development planning within the WP1 / WP4 scrum sessions including the backlog. Further feedback on a technical level will be only through JIRA33 as described in the change management plan. The internal planning will include the issues into the development planning of WP1 and WP4. Semantic and organizational issues as well as request about architecture and major new functionalities will be previously discussed within WP4 conference calls. 33 http://www.atlassian.com/software/jira 42 Conclusions This deliverable contains different objectives and tasks. The main purpose is to update the open modules for WP4 based on the feedback of the first pilots and the enlargement participants. Moreover this deliverable shows the progress of implementation and used environment. In sum there is one major decision to focus on syndication as cross-border interoperability mechanism. WP4 is concentrating on common schema for the MIDB and modules for loading and querying the MIDB. The update of the modules is also concentrating on further establishment of interfaces, especially Web Service interfaces, and realignment of components and project structure. This is done and will be continued within the next releases. Some previously modules are skipped like access verification and routing as they are not needed anymore. Thus the restructuring of the modules and the refactoring of the code lead to simplified modules that can be used more efficiently in the piloting scenarios. The alignment with the pilots still needs to be enhanced. Further feedback and also further coding is expected based on ongoing feedback of the pilots and results from the semantic task. Extensions of the MIDB are integrated with the code, especially for document information and relations between document and service as well as service and eService. The main technical decisions are not changed. But there is still the request to further analysis whether change tracking is needed or whether it can be skipped based on framework and governance decisions. The analysis of the MIDB technology is mainly dependent on the results of the semantic task. Another main objective of the task and this deliverable is to improve code and documentation to have a better understanding of the relations and functionality. This is done by realigning project structure and introducing dependencies and lifecycle management. Moreover logging and error handling is improved. Standards and conventions for the implementation are defined. Some of them will be completely enhanced with the next releases. An open issue is the uncoupling of the entities. For the transformation uncoupling was realized to simplify maintenance. The MIDB schema can only be updated for this with release 2.0 as otherwise a backward compatibility is not possible. The deliverable shows the progress of using frameworks and extensions to fulfill the change requests of the pilots. Restructuring and refactoring was done. Further requirements and activities are defined and planned for the next releases. Further major improvements can only be expected by release 2.0. 43 44 A. Appendix A – Acceptance Criteria Acceptance criteria Norm Process 1. Conform to SPOCS template Template issued by Gov2u(122009) Check against template by WP6 2. Language & Spelling English (UK) Review by an English language specialist by PD 3. Readability o related aim groups Executive Summary (e.g. for members of the Commission or reference groups, who expect a rapid overview of the results) comprehensible English Clear structure & interesting presentation Highlight of outcomes and advantages Review by PD High Review by each partner and general review by FOKUS High Main Part and Conclusion o comprehensible for the technical experts Structured sections especially a hierarchical structure no complicated structure, no nested sentences, - in this context- no unusual vocabulary Alignment between this deliverable and the DoW regarding the effected account/statements about objectives and the description of the deliverable 4.6 No contradictions and unnecessary repetitiveness Priorit y High Mediu m High Review by FOKUS High Review by each partner, FOKUS and PD Layout o 4. 5. 45 Clearness of the sentences Consistency with description in DoW Consistency within the document Examine this deliverable and the DoW and compare the effected account/statements. Explain differences and methodology. Review by FOKUS and partners High To check that there are no contradictions and needless repetitiveness Review by FOKUS and partners High 6. Content is suitable for purpose The deliverable fulfils the objectives of the DoW (See some items in next paragraph. The deliverable provides the needed facts to inform the target groups, forms the basis for the preparing and realisation the second wave of the piloting phase. 7. Contents is fit for use This deliverable provides current information for future users especially for the second wave piloting countries: Overview of WP4 and in addition the integration of the open modules by the countries of the first wave of piloting Benefits from using WP4 are marked, WP4 open modules are interconnected with the expected results as described. The documentation includes the needed information for specialists to handle the integration The open modules implement the specs from D4.2 the experience of the first wave of piloting countries The WP4 open modules can be used from PSC to access SC and SD corresponding the preassigned official process Partners of WP are aware of this acceptance list. Commitment by every WP4 partner to the WP4 functionality, process integration and deliverable input. Planning for the Work Package 8. Commitment within WP 9 Delivered on time 46 To check towards the result list and usability. Check for according consequences resulting in revised versions of D4.2, D4.3. and D4.4 Reviewed by Work Package Leader and SubLeader in collaboration with relevant partners (piloting countries) if needed. To Check towards this result list and usability. High High Reviewed by WPL in collaboration with relevant partners if needed. (e.g. authors D4.7) The experts of the partners are involved in QA-Process. Review by e-mailing and commitment by conference call High Check the Project plan at regular intervals and contact the suppliers to confirm the agreed delivery dates WP-Leader together with Sub Leader High Table 5: Acceptance Criteria List Legend: Deliverable - a description of the deliverable for which the acceptance criteria must be met. Acceptance criterion – a description acceptance criterion Norm – a description of the norm that is applied to measure conformance Process – a description of the process that is used to test conformance Priority – the priority to meet a acceptance criterion (Low = nice to conform to, Medium = important to conform to, High = necessary to conform to) 47 B. Appendix B – Risk List Threat Consequence(s) Modules are not running Pilots cannot go live in time Technologies or external frameworks cannot be integrated / used Pilots cannot go live in time Measure(s) Major Restructing of changes in modules, components, specifications interfaces and scenarios Missing resources and partner contributions Delays for modules, deliverables and pilots Missing / Lack of expertise in a specific technology Delays for modules, deliverables and pilots Feedback lead to insolvable issues live Quality of code is not good enough Pilots need more time to understand integration and deployment Missing / Late feedback Coding without alignment to pilots needs Deliverables provided to late Update of deliverable Technical Overview deliverable is not accepted Pilots cannot go Chance Impact Risk Testing of modules Improvement of code Bugfixing Change of underlying frameworks and technologies Change of concepts Raising awareness at pilots L H M L H M Improvement of feedback mechanisms Raising awareness at pilots Increasing development resources Realigning concepts and specifications Realignment of work Reconfiguration of release scope and functionality Improvement of awareness and communication Communication with partners and coordination Realignment of used technologies M H M H H H M M M Complete restructuring of architecture L H L Improve code clarity Define conventions Increase communication with users Increase awareness and communication H L L H M M Analysis of failures / expectations Increase resources for deliverable update M H H Table 6: Example risk list 48 Legend: Threat - Description of a potential danger towards the project. Consequence - Description of the negative effect the threat can have towards the project. Measure - Description of the measures that can be taken to prevent a threat from happening or to reduce negative the effects. Chance - Defines the likelihood of a threat to happen. Impact - Measure of the negative effect on the project. - 49 Risk - Chance * Impact, representing the priority. C. Appendix C – Technical Code Lists This section contains all implementation based code lists like exception codes. The content based code lists like language are part of the updated MIDB schema and located in the deliverable D4.6. C.1 Exception codes The following exception codes are defined until 29th July 2011. Code Description 001 at least one mandatory attribute null 002 origin is not N (National), F (Foreign) or L (Local) 003 identifier is not fulfilling the naming scheme 004 at least one associated entity is not registered 005 entity not registered 006 multiple entities registered - corrupt DB 007 code is not registered in MIDB Table 7: Exception codes 50 D. Appendix D – Enlargement Activities This section lists the undertaken activities describing the national architecture (Task T4.7) and amendments to the schemas and specification (Task T4.8) from the enlargement partners focusing on piloting. The descriptions shall be based on the same structure like for the descriptions of the previous partners and with the same scope of service catalogues and eservice directories. The basement is an analysis of D4.1 and D4.2 by the enlargement partners and bilateral discussions with WP4. Contributions: Lithuania o Analysis of WP4 scenarios and components including an overview diagram and questions o Comments on MIDB schema, esp. related to Service-Eservice relation and preconditions o Comments on Webservice interfaces Romania o Comprehensive description (approx.. 70 pages) of national solution related to SPOCS scope, scenarios, architecture o Results of the questionnaire o Feedback on schemas (no amendment so far) Malta o Overview description of the national infrastructure related to SPOCS components and scenarios o Feedback on schemas (no amendments so far) Slovenia o Small verbal feedback with no amendment requests Portugal o No specific feedback with amendment requests The provided descriptions can be downloaded from the SPOCS website. As an analysis there is no major barrier to use the described architectures. Microsoft and Oracle solutions are not creating impacts. Some partners are using Tomcat servers instead of JBoss thus there is an ongoing discussion within SPOCS at all about the used infrastructure. The main changes are related to improve using web services for connecting National Connector and WP4 modules. The other main analysis result is focusing on update of the schemas, scenarios and guidelines as described in deliverable D4.6 (Task T4.8). The main impact was from Greece trying to use Oracle database and Lithuania requesting a different scenario approach and thus further mapping tables. 51 E. Appendix E – Task list before WP1 / WP4 scrum The following list was used to gather open issues and define tasks for upcoming releases and development / deliverable activities. The list was used before the alignment of WP1 and WP4 development activities. The issues are consolidated into user stories, tasks, etc. in the actual planning and releases. The priority column is just for information to show the status before the alignment. The priorities and timelines are reorganised related to new resource planning and partner contributions. The table is reduced by the owner column which related the assignment of partners to specific tasks as it was not completed and not every task could be assigned to a partner. The colours of the rows were used to show the status before the alignment. They had a direct relationship to the timelines. The table is representing more than just development activities. Activities outside the development are assigned to the relevant task as described in the Technical Annex. Nr 1 2 3 4 Description Verification of cardinality between XSD and SQL schemes Multiple Output Documents, thus change of cardinality Definition and comparison of profession code lists Details / Practical Example 1 2 Category Data Schemes Data Schemes Semantic Development 5 Description of deployment example incl. e.g. jndi.properties, jboss configuration, maven build, … Performance testing for collection handover 6 WP1-WP4 integration test Test 7 Development 12 Update of change tracking, especially usage of change table Development of Webservice Interface for Transformation Possibility to create query which accepts ID of document and returns info of service which issues this document. Why eService attribute “ServiceReference” is not in MIDB? eService is missing attribute “FurtherInformation” (URL) which is present in Service Why Service/eService PreConditions is mandatory? 13 Guidelines for validityStart field 8 14 Formatted text in text fields; limited set of supported html tags could be defined Change of cardinality for Condition 9 8 9 10 11 15 52 Test 3 Development 4 Development 5 Data Schemes Data Schemes Data Schemes 6 7 10 Data Priority / Timeline Mid May (Rel. 2) Mid May (Rel. 2) Mid Jun (Rel. 2) End May (Rel. 2) Mid Jun (Rel. 2) End Apr (Rel. 1) Mid Apr (Rel. 1) Mid Jun (Rel. 2) Mid Oct (Rel. 3) Mid May (Rel. 2) Mid Jun (Rel. 2) Mid Jun (Rel. 2) Mid Jul (Rel. 2) Mid Jun (Rel. 2) Mid May Nr Description Details / Practical Example (Rel. 2) Mid Jul (Rel. 2) 12 Data Schemes Mid Oct (Rel. 3) 13 Data Schemes Data Schemes Data Schemes Mid Jul (Rel. 3) Mid Oct (Rel. 3) Mid Oct (Rel. 3) Mid Jun (Rel. 2) 11 18 19 Uncoupling of information objects 14 20 Integration of version number into SPOCS identifier => proof whether needed and if needed also integration by transformationOM Skipping of semantics from SPOCS identifier => complete revision of identification scheme 17 21 22 Update of Technical Overview Data Schemes, Semantics Deliverables 23 Update of Guidelines Deliverables 24 Assessment of ontology from WP1 Semantics 25 Semantics 26 Assessment of equivalence, is the actual structure enough or do we need further attributes, e.g. equivalence between neededdocs, localized docs (see also Nr. 39) Definition of equivalence exchange => if needed 27 Assessment of semantics for professions Semantics 28 Definition / Update of ontology for professions Semantics 29 Definition / Update of ontology for documents Semantics 30 Definition / Update of ontology for services Semantics 31 Definition / Update of ontology for eServices Semantics 32 Definition / Update of ontology for organizations Semantics 33 Definition / Update of ontology for responsibilities and roles Update of Data Scheme related to responsibilities / roles Update / Assessment of used formats for attributes in MIDB Assessment of structured legal descriptions => proof whether necessary 34 35 36 53 Priority / Timeline Schemes Data Schemes To manage the ‘self-declaration scenario’ => proof whether scenario can be handled with existing document type To manage the ‘geographical area’ concept (apart from the textual attribute ‘Territory’ in ServiceText and OrganisationText) => to be checked whether to complex and not useful Uncoupling of code lists 16 Category Development 15 Semantics 16 Data Schemes Data Schemes Semantics 17 Mid Aug (Rel. 2) Mid Aug (Rel. 2) Mid Jul (Rel. 2) Mid Oct (Rel. 3) Mid May (Rel. 2) Mid Sep (Rel. 3) Mid Sep (Rel. 3) Mid Sep (Rel. 3) Mid Oct (Rel. 3) Mid Oct (Rel. 3) Mid Sep (Rel. 3) Mid Sep (Rel. 3) Mid Oct (Rel. 3) Mid Jul (Rel 2) Mid Nov (Rel. 3) Nr 37 Description Details / Practical Example Category Assessment of conditions => proof whether necessary Update / Assessment of technical Interface 18 Assessment of localization => proof whether necessary Integration of TSL routing to other modules 20 21 45 Again Assessment whether access prove is needed and if yes in which way Update of list of attributes used for search (SPOCSattributes table) Assessment and update whether it is useful to change from lists to collections (e.g. HashSet) Update of guidelines related to the description of scenarios, especially the two step scenario and alternative solutions Setup of an Triple Store 46 Description of an RDF solution for MIDB Deliverable 47 Update of assessment related to orchestration and process models incl. the question whether crossborder process chains make sense Update and description of automated generation process for development configuration Update and description of builds and testing Deliverable 38 39 40 41 42 43 44 48 49 50 51 52 53 54 55 56 57 54 19 Data Schemes Data Schemes Semantics Development Development Development 22 Development Deliverable Development 23 Development 24 Development Assessment of benefits and needed enhancements for connection to the solutions of other regions within the member state and connection to their standards SPOCS identifier for text records 25 Deliverables 26 Deliverable Structuring of legal information that are the basis for the relations within MIDB Assessment which languages are supported by the pilots, needed for the final report What level of logging is needed for monitoring the success; Assessment what can be taken from existing logging and where update is needed; definition of different logging levels and standardized logging messages; assessment of analytic tool and setup Assessment of SPOCS WP4 results related to EIF v2.0 Definition of a structure for semantic task and deliverable Recommendations for alignment of administrative procedures in the cross-border context, including 27 Semantics Deliverable Semantics Semantics Deliverable Priority / Timeline Mid Nov (Rel. 3) Mid Jul (Rel 2) Mid Oct (Rel. 3) Mid Aug (Rel 2) Mid Aug (Rel. 2) Mid Aug (Rel. 2) Mid Nov (Rel. 3) Mid Aug (Rel. 2) Mid Sep (Rel. 3) Mid Sep (Rel. 3) Mid Nov (Rel 3) Mid Jun (Rel. 2) Mid Jun (Rel. 2) Mid Oct (Rel. 3) Mid Jun (Rel 2) Mid Nov (Rel. 3) Mid Dec (Rel. 3) Mid Jun (Rel. 2) Mid Dec (Rel. 3) Mid Jun (Rel. 3) Mid Dec (Rel. 3) Nr Description Details / Practical Example Category 59 options for automating process chains Assessment and description of linked data and semantic web technologies Update of back office best practices 60 Update of guidelines for descriptions and formats Deliverable 61 Update of versioning description, especially relation to WP1 Check backward compatibility Deliverable Development 64 Documentation of source code, location of JavaDoc; template and guidelines for describing code Add Equivalence exchange => see also Nr. 26 65 Add Attribute Category for Services Semantics 66 Definition of Code List for Services Category Semantics 67 Make test data more realistic Test 68 Improve error handling including check of wrong parameters (wrong length, missing setting of reverse navigation using hibernate objects, …) Check logger type Development Semantics 72 Sustainability activities, e.g. German usage of release 3 results/plans Integrate check for change table whether change record already exists in the MIDB (failure handling, inconsistent DB) Bug with update / checkForUpdate mechanism 73 Improve coding of checkForUpdate methods Development 74 How is delete of a service text without deleting service realized? Make the tables not case sensitive Development 58 62 63 69 70 71 75 76 77 78 79 80 55 Change SQL Query in DAO objects for method getNextInternalID to a hibernate based query; using criteria etc. and not Query or SQLQuery Make vstart and vend in change table mandatory Error regarding parameters of getSearchResult in ProvisionOM/Interface Update of answer ID, should consist of datetime and random number and sender Improve NC interface and exchange “Object” Semantics Deliverable Test Development Test Development Development Data Schemes Development Data Schemes Development Development Development Priority / Timeline Mid Dec (Rel. 3) Mid Aug (Rel. 2) Mid Aug (Rel. 2) Mid Aug (Rel. 2) Mid Jul (Rel. 2) Mid May (Rel. 2) Mid May (Rel. 2) Mid Jun (Rel. 2) Mid Jun (Rel. 3) Mid Jun (Rel. 2) Mid May (Rel. 2) Mid May (Rel. 2) Mid Oct (Rel. 3) Mid Apr (Rel. 1) Mid Apr (Rel. 1) Mid May (Rel. 2) Mid July (Rel. 2) Mid Apr (Rel. 1) Mid Jun (Rel. 2) Mid May (Rel. 2) Mid Apr (Rel. 1) Mid Apr (Rel. 1) Mid May Nr 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 Description Details / Practical Example parameter with specific ones Fix errors in search and provision OM Development Prepare JUnit examples as templates for pilots, e.g. especially the NationalConnector Check SPOC WP4 solution on other environments (e.g. Oracle and Microsoft) Organization and documentation of Junit tests, quick start codes for piloting countries developers. Ensuring that Unicode character specification will be present in all modules, MIDBs, etc. MIDB creation script incompatible with Oracle Development Development Test Development Data Scheme Development Support for Oracle database throughout the OM code? Including e.g. DATETIME-DATE and LONGTEXT-CLOB => see also Nr. 83 Finalize maven configuration and release Write installation manuals based on testing experience => see also Nr. 4 Loading of dependent entitities through Transformation OM should be separate from services/eServices to increase effectiveness => see in addition Nr. 19 (first additional methods rel. 2, second uncoupling rel. 3) Transformation API to include methods returning lists of non-obsolete IDs to support loading of deleted objects => proof whether findActuals methods can deliver a full list of all actual objects (through transformation) Missing API for obsoleting organisations in MIDB => see also Nr. 90 Missing possibility to change name of ProcessDocument in Transformation OM ShortName seems too short (25 chars) in MIDB. Category Development Development Development Development Mid Jun (Rel. 2) Mid Jun (Rel. 2) Mid Jun (Rel. 2) Mid Oct (Rel. 3) Mid May (Rel. 2) Mid May (Rel. 2) Mid May (Rel. 2) Mid June (Rel. 2) Mid June (Rel. 2) Mid May (Rel. 2) Data Schemes Data Schemes Development 97 98 Synchronize folder structure in WP4 project Development 99 Exchange all System.out.println with logger statements Check whether only one receiver for searchOM and provisionOM is useful including realization Align eclipse configuration, especially to avoid errors with annotations like @override Development 100 101 56 Mid Apr (Rel. 1) End May (Rel. 2) Mid Jun (Rel. 2) Mid Jun (Rel. 2) Do we need some kind of variants for services / docs => see also Nr. 17 and 39 Upgrade WP4 project to CXF2.x and DynamicWebProject2.5/3.0 facets Usage of @override Annotationen 96 29 (Rel. 2) Mid Apr (Rel. 1) Mid May (Rel. 2) Mid Jul (Rel. 2) Mid Jul (Rel. 2) Mid Jul (Rel 2) Mid Apr (Rel. 1) Mid Jul (Rel. 2) Development Development 28 Priority / Timeline Development Development Development Nr 102 103 104 105 106 Description Details / Practical Example Category Priority / Timeline Check tests with a complete empty database as getNextInternalNr() is producing NullPointerException without any entries in the DB Check whether a change of the database configuration to JPA makes sense and realize it Check NullPointerException on DAO/Home objects Development Mid May (Rel. 2) Development Assess whether further plugins/tools can help WP4 development, testing and deployment, make a short description Realize syndication interface notification Development Mid July (Rel. 2) Mid June (Re. 2) Mid July (Rel. 2) Development Development End April (Rel. 1) Table 8: Task list before alignment of WP1 / WP4 development Details: 1. Related to e.g. forms, conditions 2. Service XY produces Doc1 and Doc2 3. Germany has an PHP solution for connection to WP4 information in the national infrastructure 4. Heiko answered: “For release 1 you would need to retrieve the full service and eService from foreign SC/eSD.”. Not sure if understood correctly: do this mean that we need to retrieve all service info objects and iterate through them to find one which outputs certain document? 5. It would be more effective to be able to find related eServices directly from MIDB (not through WP4 IL) 6. It is expected that LT eService descriptions will have this URL pointing to more detailed info. 7. LT do not expect to have any info for PreConditions field (what info which is not covered by other fields is expected here?) 8. LT do not expect to collect dates of real start of services and/or organisations? Can it be left unfilled or filled with other date (like date of data entry)? 9. Formatting like bullets, underlines or similar are usual in LT service descriptions 10. ITALY: the table 'Condition' could be used to represent the 'pre-requisites' needed to start a service? Some examples regarding the Italian service ' applying for a REA license': to be of age, to be an Italian or EC citizen, capacity to exercise civil rights, no bankruptcy, ...If so, a connection table is needed alsom in this case, because the cardinality is n:m 11. ITALY: Another issue that could be interesting to address in MIDB is the 'self-declaration' concept. According to a local legislation, in Italy a SP/enterprise sometimes may 'self-certify' or 'self-declare' some information, without providing specific certificates.Some examples of selfdeclarations: to have achieved a High Scool Diploma, to have an insurance guarantee, ... In general (but not always) this concerns the information that can be provided by Public Administrations. In case, a PA can check the truthfulness of these declarations by contacting the corresponding PA. 12. ITALY: We have this case: the 105 Chambers of Commerce provide some services concerning the chosen professions. The Chambers of Commerce are different organisations, located in the Italian provinces; anyway the services concerning the professions are similar, also the input and 57 output documents are the same. How can we represent this fact in MIDB? If we have many occurrences of 'Organisation' (one per each Chamber) we need to duplicate the 'Service' occurrences, and this seems not logical ... may we use the table 'ServiceAgency' 13. Code lists are not directly defined as relation within MIDB, only the code is stored (e.g. for language “de”, “gr” and no internal numbering) and the code lists are externalized or stored as uncoupled tables in the MIDB; has to include the assessment whether we have all and the right code lists 14. Relations of Information objects are not defined as relations within the MIDB, only the SPOCS identifier is stored, allows less complexity and reusability in different context; leads to more intelligence in modules and further development; e.g. getting a description owner would result in two requests one for the service/eService and one for the organization 15. For the relation of an organization and a service or eService there might be a more generic data structure called responsibility or roles, some examples are already defined like intermediary or agency, maybe this should be an own information object; this should include e.g. the definition of priorities for the relation of an organization to the eService in the context of a service and it includes assessment of criteria for defining the responsibility (e.g. area, number of employees, …) 16. Do we need more complex formats for some attributes, e.g. pricing to be able calculating with the information and not only publishing them 17. Do we need detailed structures for legal descriptions, e.g. do we only reference to a legal basis or do we process them anyhow? 18. Do we need more complex condition descriptions, How are they used, How can they be used? 19. Some communication adapter / technical interfaces need more than an address to be reachable 20. Do we need more localization directly integrated into data schemes? 21. This means another assessment whether there are information (full) that should be only available to a restricted number of persons beside the core information; this includes an assessment for open data; does it make sense to have also a central platform with all (core) information – e.g. open cities project, open the information to society or other systems 22. WebService specifications prefer the usage of collection objects as parameter 23. The description should contain a complete description of what is needed to configure the properties for code generation and persistence correctly (e.g. hibernate revenge, properties, generation strategies, …) 24. This includes especially all maven, sonartype, svn, etc. 25. What are standards and requirements within your member states, make an update not only concentrating on your piloting regions 26. SPOCS identifiers for text objects meaning an extension of SPOCS identifier for an existing information object by text or version or …; relation to existing mechanisms like core and extension texts, how are content management solutions realizing it, … 27. Responsibilities, services, eServices, organizations are oftenly described in a legal context, do we want to structure them and work directly on them; leads e.g. to some kind of criteria catalogue, rule-based solutions and inference engines 28. Length up to 200-300 chars is totally possible. For example unofficial friendly name of permit could sound like „Licencija mažmeninei prekybai alumi ir pan. (ne daugiau 13 procentų), bei natūralios fermentacijos sidru (ne daugiau 8,5 procento), parodose“. 58 29. how we should model the case than the same permit is issued by different LT municipalities. Process (service) will be different for each municipality BUT it would be good to mark these different services as a kind of “group” as output of these services is same (permit for different territories) 59 F. Appendix F – Obsoleted Parts of Deliverable D4.4 This section contains obsoleted texts of the deliverable D4.4. The texts are still in the appendix to show evolution of decisions on architecture and implementation. The numbers are related to the headings in D4.4. The first paragraph gives a short explanation for making this part obsolete. 2 Technical Overview The technical overview is updated related to the realignment of the scope for the scenarios and usage of the open modules. The focus for the piloting scenario is based on the interoperability mechanism syndication. The interoperability layer is not further developed until a specific request of pilots. Moreover provision and search module are merged. Access is skipped as the provided information will be set as open data and thus a verification of the users not needed anymore. Information / Data objects are only slightly adjusted and integrated above. The Section “Technical Overview” gives an overview about the Open Modules and how they are related to each other. The main dependencies and components are also shown in Figure 11. It is based on the description of the scenarios within deliverable D4.2 “specifications”. WP4 scenarios are using the Metainformation Database (1) storing the core information of services and eServices, transformation module (2) for loading and updating data of the MIDB, syndication (3) for synchronizing the MIDB information, search (4), access (5) and provision module (6) for requesting and providing full information in the cross-border lookup scenario. Integration points on the member states domain are the national connectors linking SPOCS WP4 modules with the national infrastructure (Service Catalogue, eService Directory, User Management, Point of Single Contact solution/portal). 60 Member State A Member State B WP4 INTEROPERABILITY FRAMEWORK (WP4 IF) Use Case “Lookup full information” (5) Access module Use Case “Search Core Information” (6) Provision module UM (4) Search module PSC optional Use Case “Load & update MIDB” (2) Transformation module SC (1) MIDB eSD (7) Orchestration module Use Case “Execute semi-automatic transaction” (optional) (3) Syndication Interface Use Case “Syndication” optional,will initially NOT be available SPOCS configuration Legend internal connections of WP4 IF and within MSs are not shown WP4 Open Modules Existing national infrastructure Integration Points (WP4 National Connectors) Figure 11: Overview WP4 Open Modules (OMs), their Integration Points (WP4 NCs) and the Technical Use Cases they support (Deprecated) The following sections detail the core objects / classes, sequences and components. Section 2.1.4 describes the information entities / objects used in the MIDB (DB model / SQL script) and for the exchange format of the WP4 Interoperability Layer (XSD schema) including information about WP4 Configuration Set, Equivalence and Change. Section 2.1 starts with a package overview and dependencies to other WPs followed by a description of the sequences based on the scenarios for search and lookup and ends with descriptions of the components as mentioned in Figure 11. Further detailing like interface descriptions, detailed sequences or method declarations can be added if needed. Keep in mind that this section is giving just a technical overview. There is also inline documentation provided with the Open Modules. 2.2 Components The Section ”Components” describes the modules and their relations including the interfaces. Figure 12 shows the modules of WP4 as described in the WP4 IF concept. WP4 modules are related to WP1 for the Syndication scenario and to WP5 for the connection to the national infrastructure. The specific interfaces and methods / operations are described in the following Sections. The following Subsections are describing Access, Provision, Search and Transformation. MIDB and National Connectors are described as referenced objects. Configuration needed for WP4 is actually part of the MIDB (see Section 2.1.4). Configuration might be shifted to “SPOCS 61 Common Package” in the Reference Environment what is also reflecting other WPs and deployment. Moreover Syndication is already described in WP1 deliverable D1.4. Figure 12: Inter-WP Relations (Deprecated) Deployment of WP4 modules into the application server is done through the building process of Maven and the underlying libraries and dependencies. The binaries and libraries as well as the maven building file (pom.xml) are part of the WP4 distribution located in the Reference Environment (https://dev.spocs.bos-asp.eu, https://svnext.bos-bremen.de/SPOCS/ ) in the package “SPOCS_WP4_OMs”. National Connector needs to be deployed based on the internal deployment process of the host (e.g the PSC). Configuration of the hosting application server is necessary for the deployment including deployment folder, setting of URLs and credentials for administration. This information is given by your application server solution. 2.2.1 Sequences Sequences are based on the scenarios described in deliverable D4.2. This Section concentrates on the two scenarios “search within the MIDB” and “cross-border lookup”. “Loading” and “Syndication” is not detailed in sequences but the related components are addressing the procedural aspects. 62 sd Search MS A :NationalConnector :SearchOM :ProvisionOM MIDB handleSearchRequest() getMIDBAnswer(request) :result getSearchResult() getAnswer() Figure 13: Sequence for search within MIDB (Deprecated) Figure 13 shows the sequence for search within the MIDB. All components and the MIDB are deployed in the domain of MS A. The National Connector is invoking the handleSearchRequest method of Search OM. The Search OM is retrieving the information from the MIDB using data access objects. The result is given as parameter to the getSearchResult method of the ProvisionOM. The Provision OM is invoking the getAnswer method of the National Connector. 63 sd Lookup MS A :NationalConnector :ProvisionOM MS B :SearchOM :SearchOM :AccessOM :ProvisionOM :NationalConnector (foreign MS) handleSearchRequest() findOtherSearchOM() :routing createSOAP() : SOAPmessage handleSearchRequest() verifyAccess() verifyUser() :boolean :boolean getSearchRequest() handleAnswer() findOtherProvisionOM() :routing createSOAP() : SOAPmessage handleAnswer() getAnswer() Figure 14: Sequence for cross-border lookup scenario (usage of WP4 IL) (Deprecated) 64 Figure 14 shows the sequence for cross-border lookup using the WP4 Interoperability Layer. The National Connector of MS A is invoking handleSearchRequest method of Search OM of MS A. The Search OM retrieves necessary routing information and creates the SOAP message. SOAP message is sent cross-border to handleSearchRequest method of SearchOM of MS B. The Search OM of MS B is invoking verifyAccess method of Access OM of MS B which is invoking method verifyUser of the National Connector of MS B. The methods deliver the verification result (boolean). If access is granted Search OM of MS B invokes the getSearchRequest method of National Connector of MS B. The National Connector of MS B is using the request for retrieving within the national infrastructure and invokes the handleAnswer method of Provision OM of MS B. The Provision OM of MS B is retrieving routing information and creates the SOAP message. After that Provision OM invokes the handleAnswer method of Provision OM of MS A. The Provision OM of MS A forwards the answer by invoking the getAnswer method of National Connector of MS A. Messages are based on XML schema and using Java interfaces. The cross-border messages between Search OMs or Provision OMs of different MSs are using standard SOAP envelopes and Web Services. The methods are mainly not delivering a result as the communication is asynchronous. Requests are handled by Search OM and response (answers) is handled by Provision OM. The update of the modules will assess the need for failure management and acknowledges as direct results of invoked asynchronous methods. 2.2.2 Access Access OMs are handling the verification of the requester for the cross-border lookup of full information. This mechanism is established to protect the technical information used in automated process. Figure 15 shows the flow for the verification invoked by the Search OM for cross-border requests. The Access OM is retrieving the MIDB for the user and checking the password. Actually only a request within MIDB and only simple password mechanism is realized. cmp Access Search::SearchOM AccessOM verifyAccess MIDB::MIDB verifyUser Figure 15: Access Component (Deprecated) Figure 16 shows the change for the second piloting phase where the user verification will be done through the NC, which is connected to the user management of the PSC portal / solution. The NC will support a specific technology approach like LDAP or Active Directories. Access OM will extract the user credentials and create a request as demanded by the NC. Moreover the exchange of user information will be assessed, whether tokens or other secure transports are possible. The five star solutions would implement STORK activities, but the first piloting has to show whether such an advanced solution is necessary. 65 cmp AccessUpdate Search::SearchOM NationalConnectors:: UserManagement AccessOM verifyUser verifyAccess LDAP, Active Directory, ... Figure 16: Access Components (Update) (Deprecated) 2.2.3 Provision Provision OMs are handling the answers based on the SPOCS XML scheme. The flow is separated to the two different scenarios: Search for core information in MIDB and Lookup of full information at the foreign SC / eSD. Figure 17 shows the flow for the provision of information invoked by a local search within the MIDB (request FullInfo “false”). The Search OM is requesting the result from MIDB and provides the Provision OM the result based on Java objects generated on the database model. Therefore the Search OM invokes the getSearchResult method (see Section 2.1.1). The Provision OM is than creating the XML objects. At least the ProvisionOM invokes the getAnswer method of the NC. cmp Prov ision Search::SearchOM NationalConnectors:: NationalConnector Prov isionOM getSearchResult Java rel.DB objects getAnswer XML objects Figure 17: Provision Component for Search Core Info at MIDB Scenario (Deprecated) Figure 18 shows the flow for the provision of information invoked by the foreign NC based on a cross-border full information lookup (request FullInfo “true”). The foreign Provision OM handles the answer provided by the foreign NC and retrieves the corresponding Provision OM of the request sender. Than the Provision OM processes the provideExtAnswer method to send a cross-border message based on the defined XML schema to the Provision OM in the domain of the request sending PSC. This Provision OM is handling the answer and forwarding it to the NC by invoking the getAnswer method of the NC. 66 cmp Prov isionCrossBorder SPOCS Cross border XML based on SPOCS xsd provideExtAnswer NationalConnectors:: NationalConnector (foreign MS) handleAnswer NationalConnectors:: NationalConnector Prov isionOM handleAnswer getAnswer XML based on SPOCS xsd XML based on SPOCS xsd Figure 18: Provision Component for Lookup Full-Info Scenario (Deprecated) 2.2.4 Search Search OMs are handling the requests based on the SPOCS XML scheme and retrieving the MIDB. The flow is separated to the two different scenarios: Search for core information in MIDB and Lookup of full information at the foreign SC / eSD. Figure 19 shows the flow for the search of information invoked by the NC (request FullInfo “false”). The Search OM is requesting the result from MIDB and provides the Provision OM the result based on Java objects generated on the database model. Therefore the Search OM processes the getMIDBAnswer method. The Search OM is than invoking the getSearchResult method of the Provision OM. cmp Search NationalConnectors:: NationalConnector SearchOM handleSearchRequest MIDB::MIDB getMIDBAnswer XML based on SPOCS xsd Figure 19: Search Component for SearchCore Info at MIDB Scenario (Deprecated) Figure 20 shows the flow for the search of information invoked by the NC based on a crossborder full information lookup (request FullInfo “true”). The Search OM handles the request provided by the NC and retrieves the corresponding Search OM of the request recipient. Than the Search OM processes the provideExtSearchRequest method to send a cross-border message based on the defined XML 67 schema to the foreign Search OM in the domain of the request receiving PSC. This Search OM is handling the request and verifying the access through Access OM. If access is granted Search OM forwards the request by invoking the getSearchRequest method of the NC. cmp SearchCrossBorder SPOCS Cross border XML based on SPOCS xsd provideExtSearchRequest NationalConnectors:: NationalConnector handleSearchRequest SearchOM handleSearchRequest getSearchRequest XML based on SPOCS xsd XML based on SPOCS xsd NationalConnectors:: NationalConnector (foreign MS) Figure 20: Search Component for Lookup Full Info Scenario (Deprecated) 2.2.5 Transformation Transformation OMs are handling the loading of the national data to the MIDB. Moreover Transformation OM offers transformation methods for other OMs to convert data from one SPOCS format to another one. Transformation is internally handling the change tracking. Figure 21 shows the flow for the uploading of information invoked by the NC. The Transformation OM loads the data and converts them to the needed format of the MIDB. For the first piloting phase the loading is realised by receiving Java objects based on the XML scheme and the update of the MIDB is realised through the Java objects based on the relational MIDB data model. Future versions will support more formats for the loading from the NC as well as for the MIDB. cmp Transformation NationalConnectors:: NationalConnector MIDB::MIDB TransformationOM loadData updateData XML based on SPOCS xsd Java rel.DB objects later support of plain formats planned: Mapping GUI [plain <-> XML SPOCS] stored in simple list or CSV later support of RDF Triple Store and XML DB planned Figure 21: Transformation Components (Deprecated) 68 3.4 Routing and Message Technology The routing is obsolete as the architecture scope for using the interoperability mechanisms is switched from supporting two approaches with the interoperability layer to exchange XML based information and the syndication to synchronize the databases based on a feed. The syndication will be the further supported mechanism and thus a routing is actually not needed for WP4. WP1 has it’s own routing description. The described tables and functions etc. will be deleted for upcoming releases. For the first piloting phase, routing will be realised as a simple routing table. The routing information is stored in the MIDB and consists of: idRouting - Internal identifier for a unique record of the routing table. Represents the primary key. ModuleID – Represents a SPOCS identifier for the module. The ID is based on the identification scheme and can have the types: SearchOM, ProvisionOM, SyndicationOM, TransformationOM and AccessOM. The first three types are directly used within the scenarios. ModuleName – Represents the textual name of the module. Address – Represents the URL of the module to be addressed within the scenarios. ModuleOwner – Represents the name of the owner of the module. Remarks – Optional attribute to allow further comments for the usage. Routing can be retrieved through a Routing Open Module. The Routing OM can provide the full Routing info or only the address based on type and owner. Moreover the Open Module can provide a list of all routing addresses of a specific type to allow a notification mechanism like it is needed for syndication. The Open Modules of the WP4 Interoperability Mechanisms (WP4 Interoperability Layer and Syndication) are registered as extension in a trusted service list (TSL - see deliverable D3.3). The TSL mechanism allows a minimum level of trust to avoid electronic attacks. Other routing alternatives like DNS are not further discussed as the decision of the Consortium was to avoid central infrastructure regarding to the need of sustainability. Exchange of routing information is not realised so far, but will be updated. Another option is the storage of the modules as eService records. The feedback of the pilots will assess whether this is another option. The messages are transported based on SOAP and XML. The SOAP solution is used for all cross-border transports. The feedback of the piloting phase might check whether further WP3 results can be used for routing and transport. Between the Open Modules of one deployment, Java interfaces are used and Java objects based on XML or relational data model are provided. 69