Bem pessoal, há apenas algumas poucas horas desde que saí da prova, então lá vai:
São 150 questões e 3 horas e 15 minutos para responder. A prova é horrivelmente cansativa e pesada. Depois de 30 questões a minha cabeça já estava doendo. Com 80 questões já estava com problemas de não conseguir ler direito as questões por causa do cansaço. Com 140 questões as palavras pareciam dançar na frente dos meus olhos e minha mente já não tinha capacidade de formar qualquer coisa inteligível a partir do que estava escrito no enunciado e nas respostas.
Bem, manjo pouquíssima coisa de webservices e fui fazer a prova sem a menor esperança de passar. Pelo grau de dificuldade, eu acho que devo acertar algo entre 10% a 20% das questões, ainda mais porque nas últimas eu já não estava nem aí em tentar pensar direito para aumentar a pontuação.
Usei quase todo o tempo da prova, sobrando apenas 10 minutos. No entanto eu não fiz revisão da prova. Voltei apenas nas questões que apareceram como “resposta incompleta”.
Não há drag’n’drop. Há perguntas muito difíceis e intrigantes, há algumas com respostas dadas de graça e alternativas absurdas e há poucas pegadinhas, mas no geral as questões são difíceis. Quase todas as questões tem enunciados curtos e respostas curtas, havia somente umas 5 ou 6 que eram longas. Destas longas, havia duas sem-noção que eram gigantescas e difíceis de analisar, deixei um comentário acerca delas.
A prova é fortemente teórica, com 80% das questões pedindo para você comparar uma coisa com outra, dizer quais são as vantagens de A em relação a B, quando é que X é mais adequado que Y, do que que XXX é composto, o que você deve usar para fazer alguma coisa, citar quais são as respostas que se aplicam a algum caso mostrado o enunciado. Os outros 20% você vai ver trechos de código java, mensagens SOAP, XMLs e WSDLs e dizer o que está certo e o que está errado. Só teve umas três questões mostrando código java para montar mensagens SOAP e fazer algum processamento de XML, portanto não é preciso saber muita coisa nisso daqui além do nome e pacote das classes e o nome dos métodos mais importantes. EDIT: Para deixar claro, é cobrado pouquíssimo conhecimento sobre a API, não mais do que umas 5 a 10 questões.
Os tópicos mais importantes para se estudar são WS-I Profile, SOAP, WSDL e XML-namespaces.
[quote]Section 1: XML Web Service Standards
* 1.1 Given XML documents, schemas, and fragments determine whether their syntax and form are correct (according to W3C schema) and whether they conform to the WS-I Basic Profile 1.1.
* 1.2 Describe the use of XML schema in Java EE Web services
Section 7: Java EE Web Services
* 7.4 Describe the role of the WS-I Basic Profile when designing Java EE Web services. [/quote]
Estes objetivos caem com grande peso na prova. Havia dezenas de questões falando sobre o WS-I Basic Profile (que eu nem sei para que serve, portanto me ferrei) e um bom número de perguntas mostrando XMLs abarrotados de namespaces e questões sobre os namespaces. Por vezes essas questões aparecem misturadas com outras coisas da pova, tal como SOAP e WSDL.
[quote]Section 2: SOAP 1.2 Web Service Standards
* 2.1 List and describe the encoding types used in a SOAP message.
* 2.2 Describe the SOAP Processing and Extensibility Model.
* 2.3 Describe SOAP Message Construct and create a SOAP message that contains an attachment.
Section 5: REST, JSON, SOAP and XML Processing APIs (JAXP, JAXB and SAAJ)
* 5.7 Create and use a SOAP message with attachments using the SAAJ APIs.
Section 9: Developing Web Services
* 9.5 Implement a SOAP logging mechanism for testing and debugging a Web service application using Java EE Web Service APIs.
* 9.6 Given a set of requirements, create code to handle system and service exceptions and faults received by a Web services client.
Section 11: General Design and Architecture
* 11.3 Describe how to handle the various types of return values, faults, errors, and exceptions that can occur during a Web service interaction.
[/quote]
DECOREM O SOAP! Decorem todas as formas possíveis de estrutura das mensagens, o nome dos elementos. Formas válidas e inválidas de mensagens SOAP. SOAP faults. E também tem questões de nível mais arquitetural perguntando se o webservice deve retornar um soap fault ou não em determinada situação, quando é mais conveniente que a mensagem seja assim ou assado.
[quote]Section 3: Describing and Publishing (WSDL and UDDI)
* 3.1 Explain the use of WSDL in Web services, including a description of WSDL’s basic elements, binding mechanisms and the basic WSDL operation types as limited by the WS-I Basic Profile 1.1.
* 3.2 Describe how WSDL enables one to separate the description of the abstract functionality offered by a service from concrete details of a service description such as “how” and “where” that functionality is offered.
* 3.3 Describe the Component Model of WSDL including Descriptions, Interfaces, Bindings, Services and Endpoints.
Section 9: Developing Web Services
* 9.3 Given an XML schema for a document style Web service create a WSDL file that describes the service and generate a service implementation.
[/quote]
Assim como vocês devem decorar todas as regras do SOAP, vocês também devem decorar tudo sobre WSDL! Tem que saber como são os elementos WSDL, todas as formas possíveis que ele deve ter.
[quote]Section 4: JAX-WS
* 4.1 Explain JAX-WS technology for building web services and client that communicate using XML
* 4.2 Given a set of requirements for a Web service, such as transactional needs, and security requirements, design and develop Web service applications that use JAX-WS technology
* 4.3 Describe the Integrated Stack (I-Stack) which consists of JAX-WS, JAXB, StAX, SAAJ
* 4.4 Describe and compare JAX-WS development approaches.
* 4.5 Describe the features of JAX-WS including the usage of Java Annotations.
* 4.6 Describe the architecture of JAX_WS including the Tools SPI that define the contract between JAX-WS tools and Java EE.
* 4.7 Describe creating a Web Service using JAX-WS.
* 4.8 Describe JAX-WS Client Communications Models.
* 4.9 Given an set of requirements, design and develop a Web service client, such as a Java EE client and a stand-alone client, using JAX-WS.
* 4.10 Given a set of requirements, create and configure a Web service client that accesses a stateful Web service. [/quote]
Não caem muitas questões sobre isso, mas também não cai pouco. Cai questões solicitando a relação do JAX-WS com as outras sopas de letrinhas. Caiu duas questões pedindo sobre o APT (Annotation Processing Tool). Questões bem teóricas aqui. [color=red]Haviam questões acerca de migração de JAX-RPC para JAX-WS e diferenças entre os dois, mas isso não está nos objetivos![/color]
[quote]Section 5: REST, JSON, SOAP and XML Processing APIs (JAXP, JAXB and SAAJ)
* 5.1 Describe the characteristics of REST Web Services.
* 5.2 Describe the characteristics of JSON Web Services.
* 5.3 Compare SOAP web services to REST Web Services.
* 5.4 Compare SOAP web services to JSON Web Services.
* 5.5 Describe the functions and capabilities of the APIs included within JAXP.
* 5.6 Describe the functions and capabilities of JAXB, including the JAXB process flow, such as XML-to-Java and Java-to-XML, and the binding and validation mechanisms provided by JAXB. [/quote]
Sobre JSON há poucas questões. Há 3 ou 4 perguntando quando é melhor começar com WSDL e depois ir para o java e quando começar com o java e depois ir para o WSDL (com as ferramentas wsimport e schemagen). Algumas discutindo REST vs SOAP, o funcionamento do JAXB e as etapas na geração de classes java a partir de um WSDL pelo wsimport.
[quote]Section 3: Describing and Publishing (WSDL and UDDI)
* 3.4 Describe the basic functions provided by the UDDI Publish and Inquiry APIs to interact with a UDDI business registry.
Section 6: JAXR
* 6.1 Describe the function of JAXR in Web service architectural model, the two basic levels of business registry functionality supported by JAXR, and the function of the basic JAXR business objects and how they map to the UDDI data structures.
* 6.2 Create JAXR client to connect to a UDDI business registry, execute queries to locate services that meet specific requirements, and publish or update information about a business service. [/quote]
Há várias questões sobre UDDI, normalmente perguntando como você a acessa, como você usa, onde é adequado usar, como publicar alguma coisa nela e como ela integra com o JAXR. Sobre o JAXR por si só também tem um monte, inclusive pedindo qual classe faz isso e qual faz aquilo e como usar. Como não entendo nada de JAXR, apenas chutei as respostas que pareciam ser as mais corretas com base no puro achismo. :lol:
[quote]Section 7: Java EE Web Services
* 7.1 Identify the characteristics of and the services and APIs included in the Java EE platform.
* 7.2 Explain the benefits of using the Java EE platform for creating and deploying Web service applications.
* 7.3 Describe the functions and capabilities of the JAXP, DOM, SAX, StAX, JAXR, JAXB, JAX-WS and SAAJ in the Java EE platform.
Section 9: Developing Web Services
* 9.2 Given a set of requirements, develop code to process XML files using the SAX, StAX, DOM, XSLT, and JAXB APIs.
[/quote]
Não há muitas questões sobre isso. Os objetivos 7.1 e 7.2 são apenas uma decorebinha de conceitos. O objetivo 7.3 envolve comparar SAX, StAX e DOM (quem é pull e quem é push, saber que SAX só lê e que DOM e StAX lêem e escrevem, saber que DOM trabalha com árvores enquanto que SAX e StAX são lineares, saber que SAX é one-way, StAX é two-way e DOM permite acesso aleatório). E também saber dizer para que serve o JAXP, o JAXR, o JAXB, o JAX-WS e o SAAJ.
[quote]Section 8: Security
* 8.1 Explain basic security mechanisms including: transport level security, such as basic and mutual authentication and SSL, message level security, XML encryption, XML Digital Signature, and federated identity and trust.
* 8.2 Identify the purpose and benefits of Web services security oriented initiatives and standards such as Username Token Profile, SAML, XACML, XKMS, WS-Security, and the Liberty Project.
* 8.3 Given a scenario, implement Java EE based web service web-tier and/or EJB-tier basic security mechanisms, such as mutual authentication, SSL, and access control.
* 8.4 Describe factors that impact the security requirements of a Web service, such as the relationship between the client and service provider, the type of data being exchanged, the message format, and the transport mechanism.
* 8.5 Describe WS-Policy that defines a base set of constructs that can be used and extended by other Web specifications to describe a broad range of service requirements and capabilities. [/quote]
Havia umas 10 a 15 questões sobre isso. Não estavam espalhadas, mas sim concentradas uma seguida da outra em seqüência, sem quase se misturar com os outros tópicos da prova. Nestas daqui eu virei cego em campo de futebol, chutando quase tudo Não entendo quase nada disso, só um pouco de assinatura digital. Não vi absolutamente nada acerca de Liberty Project.
[quote]Section 9: Developing Web Services
* 9.1 Describe the steps required to configure, package, and deploy Java EE Web services and service clients, including a description of the packaging formats, such as .ear, .war, .jar, annotations and deployment descriptor settings. [/quote]
Caiu duas ou três questões só.
[quote]Section 11: General Design and Architecture
* 11.1 Describe the characteristics of a Service Oriented Architecture (SOA) and how Web services fit to this model.
* 11.2 Given a scenario, design a Java EE web service using Web Services Design Patterns (Asynchronous Interaction, JMS Bridge, Web Service Cache, Web Service Broker), and Best Practices.
* 11.4 Describe the role that Web services play when integrating data, application functions, or business processes in a Java EE application. [/quote]
Poucas questões nestes objetivos. Duas ou três sobre SOA. Sobre os padrões, caiu uma sobre o Web Service Cache, uma sobre o Web Service Broker, e não vi nada acerca de Asynchronous Interaction e nem de JMS Bridge. Mas, como não conheço esses padrões, talvez estivessem implícitos em outras questões.
[quote]Section 9: Developing Web Services
* 9.4 Given a set of requirements, create code to create an XML-based, document style, Web service using the JAX-WS APIs.
Section 12: Endpoint Design and Architecture
* 12.1 Given a scenario, design Web Service applications using information models that are either procedure-style or document-style.
* 12.2 Describe the function of the service interaction and processing layers in a Web service.
* 12.3 Design a Web service for an asynchronous, document-style process and describe how to refactor a Web Service from a synchronous to an asynchronous model.
* 12.4 Describe how the characteristics, such as resource utilization, conversational capabilities, and operational modes, of the various types of Web service clients impact the design of a Web service or determine the type of client that might interact with a particular service. [/quote]
Há um número substancial de questões nestes objetivos. Bastante decoreba e questões do tipo “fulano quer fazer X, o que ele deveria usar?”. Várias das questões nestes objetivos acerca de EJB vs Servlets como endpoints, document-style vs procedure-style, interaction layer vs processing layer e webservices stateful vs stateless.
[quote]Section 10: Web Services Interoperability Technologies
* 10.1 Describe WSIT, the features of each WSIT technology and the standards that WSIT Implements for each technology and how it works.
* 10.2 Describe how to create a WSIT client from a Web Service Description Language (WSDL) file.
* 10.3 Describe how to configure web service providers and clients to use message optimization. [/quote]
Um número significativo de questões também. Como não entendo nadica de nada, não sei nem o que comentar.
[size=18][color=red]AGORA A PIOR PARTE:[/color][/size]
[quote]Section 10: Web Services Interoperability Technologies
* 10.4 Create a Microsoft Windows Communication Foundation (WCF) client that accesses a Java web service.
* 10.5 Describes the best practices for production and consumption of data interoperability between WCF web services and Java web service clients or between Java web services and WCF web service clients. [/quote]
As questões envolvendo isso daí me deixaram tão horrorizado e revoltado que eu não acreditava no que estava vendo. ERAM QUESTÕES SOBRE .NET!!! :evil: :!:
Havia uma questão inclusive que me deixou furioso que perguntava como o .NET gerava webservices. Inclusive lembro mais ou menos de três das cinco respostas (deveria escolher duas). Uma alternativa afirmava que o Visual Studio usa menus e wizards. Outra dizia que o .Net 3.0 gera quetro tipos de webservices e outra alternativa dizia que o .Net 3.0 fazia alguma coisa. As outras duas alternativas também eram coisas do .Net. [color=red]Enfim, havia uma questão puramente .Net em uma prova de certificação java![/color] Deixei um comentário bem extenso alegando que esta questão deveria ser eliminada e que era inválida.
As demais questões envolvendo WCF também envolviam .NET, mas fazendo alguma comparação entre o .NET e o Java. No total havia umas 8 a 12 questões com alguma coisa de .NET. :thumbdown: :thumbdown: :evil:
[size=22][color=red]SOLICITO A TODOS QUE FIZEREM A PROVA QUE DEIXEM COMENTÁRIOS INDIGNADOS SOBRE AS QUESTÕES RELATIVAS A .NET PARA QUE ELAS SEJAM DESCARTADAS ANTES DE IREM PARA A PROVA DEFINITIVA! VAMOS REPUDIAR OS OBJETIVOS 10.4 E 10.5![/color][/size]
Havia também uma questão que citou o Ant e o Netbeans e duas que citaram o Kerberos. Deixei comentários dizendo que isto não deveria estar na prova. Gostaria que quem for fazer a prova deixe comentários assim também.